100% found this document useful (3 votes)
29 views

Writing a C Compiler Early Access Nora Sandler download

The document is an early access edition of 'Writing a C Compiler' by Nora Sandler, which introduces the basics of compiler construction, including lexer, parser, code generation, and code emission stages. It outlines the structure and stages of a compiler, starting with a simple C program and its translation to assembly language. The document also emphasizes the importance of feedback during the early access phase for improving the content before final publication.

Uploaded by

hccgembro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
29 views

Writing a C Compiler Early Access Nora Sandler download

The document is an early access edition of 'Writing a C Compiler' by Nora Sandler, which introduces the basics of compiler construction, including lexer, parser, code generation, and code emission stages. It outlines the structure and stages of a compiler, starting with a simple C program and its translation to assembly language. The document also emphasizes the importance of feedback during the early access phase for improving the content before final publication.

Uploaded by

hccgembro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Writing a C Compiler Early Access Nora Sandler

download

https://ebookmeta.com/product/writing-a-c-compiler-early-access-
nora-sandler/

Download more ebook from https://ebookmeta.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmeta.com
to discover even more!

Engineering a Compiler 3rd Edition Keith D. Cooper

https://ebookmeta.com/product/engineering-a-compiler-3rd-edition-
keith-d-cooper/

Osteopathy and Obstetrics Stephen Sandler

https://ebookmeta.com/product/osteopathy-and-obstetrics-stephen-
sandler/

Windows Security Internals with PowerShell EARLY ACCESS


James Forshaw

https://ebookmeta.com/product/windows-security-internals-with-
powershell-early-access-james-forshaw/

Promises Novel of Alternate Earth M M Fantasy Romance


1st Edition Julie Mannino

https://ebookmeta.com/product/promises-novel-of-alternate-earth-
m-m-fantasy-romance-1st-edition-julie-mannino/
Psychoanalysis and Ethics The Necessity of Perspective
1st Edition Black

https://ebookmeta.com/product/psychoanalysis-and-ethics-the-
necessity-of-perspective-1st-edition-black/

Artificial Intelligence and Healthcare: The Impact of


Algorithmic Bias on Health Disparities 1st Edition
Natasha H. Williams

https://ebookmeta.com/product/artificial-intelligence-and-
healthcare-the-impact-of-algorithmic-bias-on-health-
disparities-1st-edition-natasha-h-williams/

Germanic Languages and Linguistic Universals 1st


Edition John Ole Askedal Ian Roberts Tomonori
Matsushita Hiroshi Hasegawa

https://ebookmeta.com/product/germanic-languages-and-linguistic-
universals-1st-edition-john-ole-askedal-ian-roberts-tomonori-
matsushita-hiroshi-hasegawa/

Integration for Calculus Analysis and Differential


Equations Techniques Examples and Exercises 1st Edition
Marat V. Markin

https://ebookmeta.com/product/integration-for-calculus-analysis-
and-differential-equations-techniques-examples-and-exercises-1st-
edition-marat-v-markin/

Cybersecurity for Small Networks A No Nonsense Guide


for the Reasonably Paranoid 1st Edition Seth Enoka

https://ebookmeta.com/product/cybersecurity-for-small-networks-a-
no-nonsense-guide-for-the-reasonably-paranoid-1st-edition-seth-
enoka-2/
Aristotle and the Stoics 1st Edition F. H. Sandback

https://ebookmeta.com/product/aristotle-and-the-stoics-1st-
edition-f-h-sandback/
R L Y
E A S S
C E
AC
NO S TA RCH PRE SS
E A R LY A C C E S S P R O G R A M :
FEEDBACK WELCOME!

The Early Access program lets you read significant portions of an


upcoming book while it’s still in the editing and production phases, so you
may come across errors or other issues you want to comment on. But while
we sincerely appreciate your feedback during a book’s EA phase, please use
your best discretion when deciding what to report.
At the EA stage, we’re most interested in feedback related to content—
general comments to the writer, technical errors, versioning concerns, or
other high-level issues and observations. As these titles are still in draft form,
we already know there may be typos, grammatical mistakes, missing images
or captions, layout issues, and instances of placeholder text. No need to
report these—they will all be corrected later, during the copyediting, proof-
reading, and typesetting processes.
If you encounter any errors (“errata”) you’d like to report, please fill out
this Google form so we can review your comments.
WRITING A C COMPILER
NOR A SANDLER
Early Access edition, 3/25/22

Copyright © 2022 by Nora Sandler.

ISBN 13: 978-1-7185-0042-6 (print)


ISBN 13: 978-1-7185-0043-3 (ebook)

Publisher: William Pollock


Managing Editor: Jill Franklin
Production Manager: Rachel Monaghan
Developmental Editor: Alex Freed
Production Editor: Paula Williamson
Cover Illustrator: James L. Barry
Interior Design: Octopod Studios
Compositor: Happenstance Type-O-Rama

No Starch Press and the No Starch Press logo are registered trademarks of No Starch Press,
Inc. Other product and company names mentioned herein may be the trademarks of their
respective owners. Rather than use a trademark symbol with every occurrence of a trade-
marked name, we are using the names only in an editorial fashion and to the benefit of the
trademark owner, with no intention of infringement of the trademark.

All rights reserved. No part of this work may be reproduced or transmitted in any form or by
any means, electronic or mechanical, including photocopying, recording, or by any informa-
tion storage or retrieval system, without the prior written permission of the copyright owner
and the publisher.

The information in this book is distributed on an “As Is” basis, without warranty. While every
precaution has been taken in the preparation of this work, neither the author nor No Starch
Press, Inc. shall have any liability to any person or entity with respect to any loss or damage
caused or alleged to be caused directly or indirectly by the information contained in it.
CONTENTS

Introduction

PART I: THE BASICS


Chapter 1: Introduction to Compilers
Chapter 2: Returning an Integer
Chapter 3: Unary Operators
Chapter 4: Binary Operators
Chapter 5: Logical and Relational Operators
Chapter 6: Local Variables
Chapter 7: If Statements and Conditional Expressions
Chapter 8: Compound Statements
Chapter 9: Loops
Chapter 10: Functions
Chapter 11: Static Variables

PART II: IMPLEMENTING TYPES


Chapter 12: Long Integers
Chapter 13: Unsigned Integers
Chapter 14: Floating-Point Numbers
Chapter 15: Pointers
Chapter 16: Arrays and Pointer Arithmetic
Chapter 17: Characters and Strings
Chapter 18: Supporting Dynamic Memory Allocation
Chapter 19: Structures

PART III: OPTIMIZATIONS


Chapter 20: Optimizing TACKY Programs
Chapter 21: Register Allocation

Conclusion: Next Steps

The chapters in red are included in this Early Access PDF.


Writing a C Compiler (Early Access) © 2022 by Nora Sandler

2
RETURNING AN INTEGER

In this chapter, you’ll write a tiny compiler that can


only handle the simplest possible C programs. You’ll
learn how to read a simple assembly program, and
you’ll implement four basic compiler passes that
you’ll keep building on for the rest of the book. Let’s
start by looking at the four compiler passes you’ll
build in this chapter.
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

Figure 2-1: Stages of the compiler

The Four Compiler Passes


The compiler you write in this chapter will process source code in four
stages:
The lexer breaks up the source code into a list of tokens. Tokens are the
smallest syntactic units of a program, and include things like delimiters,
arithmetic symbols, keywords, and identifiers. If a program is like a
book, tokens are like individual words.
The parser converts the list of tokens into an abstract syntax tree (AST),
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

which represents the program in a form that we can easily traverse and
analyze.
The code generation pass converts the AST into assembly. At this
stage, we still represent the assembly instructions in a data structure that
the compiler can understand, not as text.
The code emission pass writes the assembly to a file so the assembler
and linker can turn it into an executable.
This is a pretty normal way of structuring a compiler, although the
exact stages and intermediate representations vary. It’s also overkill for this
chapter; the programs you’ll handle here could be compiled in just one pass!
But setting up this structure now will make it easier to expand your compiler
in future chapters. As you implement more language features, you’ll extend
these compiler stages and add a few new ones. Each chapter in the book
starts with a diagram of the compiler's architecture in that chapter, including
the stages you've already implemented and any you'll need to add. Figure 2-
1 shows the four stages you'll implement in this chapter.
Before you start coding, let’s take a quick look at how to compile C to
assembly with GCC, and how to read assembly programs.

Hello, Assembly!
The simplest possible C program looks like this:
1 int main() {
2 return 32;
}

Listing 2-1 A simple program that returns the number 2.

This program consists of a single function 1, main, containing a single


return statement 2, which returns an integer—in this case, 2 3. Let’s
translate the code in Listing 2-1 into assembly using GCC:
$ gcc -S -O -fno-asynchronous-unwind-tables -fcf-
protection=none return_2.c

These GCC options produce fairly readable assembly:


-S Don’t run the assembler or linker. This makes GCC emit assembly
instead of a binary file.
-O Optimize the code. This eliminates some instructions we don’t care
about right now. When you inspect GCC output in later chapters, you’ll
usually want to turn optimization off so you can more clearly see how
code generation works.
-fno-asynchronous-unwind-tables Don’t generate the unwind table,
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

which is used for debugging. We don’t care about it.


-fcf-protection=none Disable control-flow protection. This is a
security feature that adds extra instructions that we don’t care about.
Control-flow protection might already be disabled by default on your
system, in which case this option won’t do anything.
The result, stored in return_2.s, should basically look like this:
1 .globl main
2main:
3 movl $2, %eax
4 ret

Listing 2-2 The program from Listing 2-1 translated into assembly.

NOTE All the assembly listings in this book use AT&T syntax. Elsewhere, you’ll sometimes
see x64 assembly written in Intel syntax. They’re just two different notations
for the same language; the biggest difference is that they put instruction
operands in different order.

Your .s file might contain a few other assembler directives, but you can
safely ignore them for now. The four lines in Listing 2-2 are a complete
assembly program. Assembly programs have several kinds of statements.
The first line, .globl main 1 , is an assembler directive, a statement
that provides directions for the assembler. Assembler directives always
starts with a period. Here, main is a symbol, a placeholder for a memory
address. An assembly instruction can include a symbol when it needs to
refer to the address of a particular function or variable, but the compiler
doesn’t know where that function or variable will end up in memory. Later,
after the linker has combined the different object files that make up the
executable, it can associate each symbol with a memory address; this
process is called symbol resolution. Then the linker will update every place
that uses a symbol to use the corresponding address instead; this is called
relocation.
The .globl main directive tells the assembler that main is a global
symbol. By default, a symbol can only be used in the same assembly file
(and therefore the same object file) where it’s defined. But because main is
global, other object files can refer to it too. The assembler will record this
fact in a section of the object file called the symbol table. The symbol table
contains information about all the symbols in an object file or executable.
The linker relies on the symbol table during symbol resolution. If the
symbol table doesn’t list main as a global symbol, but another object file
tries to refer to it, linking will fail.
Next, we use main 2 as a label for the code that follows it. Labels
consist of a string or number followed by a colon. This label marks the
location that the symbol main refers to. For example, the instruction jmp
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

main should cause the program to jump to the instruction at line 3. But the
label can’t indicate the final location of main; like I mentioned earlier, we
won’t know that until link time. Instead, it defines main as an offset from
the start of the current section in this object file. (An object file includes
different sections for machine instructions, global variables, debug
information, and so on, which are loaded into different parts of the
program's address space at runtime. The object file produced from Listing 2-
2 will only have one section: the text section, which contains machine
instructions.) Because 3 is the very first machine instruction in this file, the
offset of main will be 0. The assembler will record this offset in the symbol
table so the linker can use it to determine the final address of main during
symbol resolution.

FURTHER READING ON LINKERS


The last couple of paragraphs really oversimplified how linking works! If I included a totally
accurate explanation of linkers, this chapter would be 90% about linkers and 10% about your actual
compiler. But you should go read more about linkers, because you need to understand them in order
to really get what’s going on in a running program. Here are some blog posts on linkers that I like:

• “Beginner’s Guide to Linkers,” by David Drysdale, is a good starting point.


(http://www.lurklurk.org/linkers/linkers.html)

• Ian Lance Taylor’s 20-part essay on linkers goes into a lot more depth. The first post is at
https://www.airs.com/blog/archives/38, and there’s a table of contents at
https://lwn.net/Articles/276782/.

• “Position Independent Code (PIC) in shared libraries,” a blog post by Eli Bendersky, provides an
overview of how compilers, linkers, and assemblers work together to produce position-
independent code, focusing on 32-bit machines
(https://eli.thegreenplace.net/2011/11/03/position-independent-code-pic-in-shared-libraries/).

• “Position Independent Code (PIC) in shared libraries on x64,” also by Eli Bendersky, builds on
the previous article, focusing on 64-bit systems
(https://eli.thegreenplace.net/2011/11/11/position-independent-code-pic-in-shared-libraries-on-
x64).

Next, we have movl 3, an example of a machine instruction, which is


an instruction that appears in the final executable. The movl instruction in
Listing 2-2 moves the value 2 into a register—a very small, very fast
storage slot that has its own name and sits right on the CPU. Here, we move
2 into the register named EAX, which can hold 32 bits. According to our
platform's calling convention, return values are passed to the caller in EAX
(or RAX, the 64-bit equivalent, depending on the return value’s type). Since
the caller also knows about this convention, it can retrieve the return value
from EAX after the function returns. The l suffix in movl indicates that the
operands to this instruction are long integers. In assembly, unlike most
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

modern implementations of C, “long” means 32 bits. A movq instruction


operates on quadwords, which is how x64 assembly refers to 64-bit integers.
I’ll just write mov when I want to refer to this instruction without specifying
its size.
Finally, we have another machine instruction, ret 4, which returns
control to the caller. You might see retq here instead of ret, since this
instruction implicitly operates on a 64-bit return address. I’m skipping a lot
of details, like what calling conventions are, who decides on them, or how
ret knows where the caller is. I’ll come back to those details when we add
function calls in chapter 10.
At this point, it’s fair to ask who the caller is, since main is the only
function in this program. It’s also fair to wonder why we need the .globl
main directive, since there don’t seem to be any other object files that could
contain references to main. The answer is that the linker adds a tiny bit of
wrapper code called crt0 to handle setup before main runs, and teardown
after it exits. (The crt stands for “C Runtime.”) This wrapper code
basically does the following:

1. Makes a function call to main. This is why main needs to be globally


visible; if it’s not, crt0 can’t call it.

2. Retrieves the return value from main.

3. Invokes the exit system call, passing it the return value from main.
Then exit handles whatever work needs to happen inside the
operating system to terminate the process and turn the return value
into an exit code.
The bottom line is that you don’t need to worry about process startup or
teardown; you can treat main like a normal function.
To verify that the assembly in Listing 2-2 works correctly, you can
assemble and link it, run it, and check the exit code with the $? shell
operator:
$ gcc return_2.s -o return_2
$ ./return_2
$ echo $?
2

Note that you can pass an assembly file to GCC just like a regular
source file. GCC assumes any input files with a .s extension contain
assembly, so it will just assemble and link those files without trying to
compile them first.
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

Writing the Compiler Driver


As we saw in the last chapter, a compiler isn’t very useful on its own.
To turn a source file into an executable, you’ll need to write a compiler
driver that invokes the preprocessor, compiler, assembler, and linker. It’s a
good idea to write a compiler driver that works with test_compiler before
starting on the compiler itself, so you can validate each compiler stage
against the test suite as you go. The compiler driver should do the following:

1. Preprocess a source file:


gcc -E -P INPUT_FILE -o PREPROCESSED_FILE

2. By convention, the preprocessed file should have a .i file extension.

3. Compile the preprocessed source file, and output an assembly file with
a .s extension. You’ll have to stub out this step, since you haven’t
written your compiler yet.

4. Assemble and link the assembly file to produce an executable:


gcc ASSEMBLY_FILE -o OUTPUT_FILE

To work with test_compiler, your compiler driver must be a command-


line program that accepts a path to a C source file as its only argument. If
this command succeeds, it must produce an executable in the same directory
as the input file, with the same name (minus the file extension). In other
words, if you run ./YOUR_COMPILER /path/to/program.c, it should
produce an executable at /path/to/program and terminate with an exit code
of zero. If your compiler fails, the compiler driver should return a non-zero
exit code, and should not write any assembly or executable files; that’s how
test_compiler verifies that your compiler catches errors in invalid programs.
Finally, your compiler driver should support a --lex option that directs it
to just perform the lexing pass, as well as a --parse option that directs it
to just run the lexer and parser but stop before code generation. Neither of
these options should produce any output files.
Once you’ve written the compiler driver, you’re ready to start working
on the actual compiler.
You need to implement the four compiler passes I listed at the
beginning of the chapter: the lexer, which produces a list of tokens; the
parser, which turns those tokens into an abstract syntax tree; the code
generator, which converts the abstract syntax tree into assembly, and the
assembly emitter, which writes that assembly to a file. Let’s look at each of
those passes in more detail.

Writing the Lexer


The lexer should read in a source file and return a list of tokens. Before
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

you can start writing the lexer, you need to know what tokens you might
encounter. Here are all the tokens in Listing 2-1:
int: a keyword
main: an identifier, whose value is “main”
( : an open parenthesis
) : a close parenthesis
{ : an open brace
return: a keyword
2: a constant, whose value is “2”
; : a semicolon
} : a close brace
I’ve used two lexer-specific terms here. An identifier is an ASCII letter
followed by a mix of letters and digits; identifiers are case sensitive. An
(integer) constant consists of one or more digits. (C supports hexadecimal
and octal integer constants too, but you can ignore them to keep things
simple. We’ll add character and floating-point constants in part II.)
Note that identifiers and constants have values in the list of tokens
above, but the other types of tokens don’t. There are many possible
identifiers (foo, variable1, or my_cool_function), so each
identifier token produced by the lexer needs to retain its specific name.
Likewise, each constant token needs to hold an integer value. By contrast,
there's only one possible return keyword, so a return keyword token
doesn't need to store any extra information. Even though main is the only
identifier right now, it’s a good idea to build the lexer in a way that can
support arbitrary identifiers later on. Also note that there are no whitespace
tokens. If we were compiling a language like Python, where whitespace is
significant, we’d need to include whitespace tokens.
You can define each token type with a regular expression. Table 2-1
gives the corresponding regular expression for each token in PCRE syntax:

Table 2-1 Tokens

Token Regular Expression


Identifier [a-zA-Z_]\w*\b
Constant
[0-9]+\b
Int keyword
int\b
Return keyword
return\b
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

Open parenthesis
\(
Close parenthesis
\)
Open brace
{
Close brace
}
Semicolon
;

The process of tokenizing a program then looks roughly like this:


while input isn’t empty:
find longest match at start of input for any regex in
Table 2-1
convert matching substring into a token
remove matching substring from start of input
trim whitespace from start of input
if no valid token can be created, raise an error

Listing 2-3 Converting a string to a sequence of tokens

Note that identifiers and constants must end at word boundaries. For
example, the first three digits of 123;bar match the regular expression for
a constant, and can be converted into the constant 123. That’s because ;
isn’t in the \w character class, so the boundary between 3 and ; is a word
boundary.
However, the first three digits of 123bar do not match the regular
expression for a constant, because those digits are followed by more
characters in the \w character class instead of a word boundary. If your
lexer sees a string like 123bar it should raise an error, because the start of
the string doesn’t match the regular expression for any token.
You can assume that your C source file only contains ASCII characters.
The C standard provides a mechanism called universal character names to
include non-ASCII characters in identifiers, but we won’t implement them.
Many C implementations let you use Unicode characters directly, but you
don’t need to support that either.

Testing the Lexer


You can test your lexer against all the programs in tests/chapter_2. The
sample programs in tests/chapter_2/invalid_lex all contain invalid tokens, so
they should all cause the lexer to fail with an appropriate error message. The
sample programs in tests/chapter_2/invalid_parse and tests/chapter_2/valid
only contain valid tokens, so the lexer should be able to process them
successfully. You can use the following command to test that your program
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

fails on the programs in tests/chapter_2/invalid_lex and succeeds on


everything else:
$ ./test_compiler /path/to/your_compiler --chapter 2 --stage
lex

This command just tests whether the lexer succeeds or fails. You may
want to write your own tests to validate that it produces the correct list of
tokens for valid programs and emits an appropriate error for invalid ones.

Implementation Tips
Treat keywords like other identifiers. The regex for identifiers also
matches keywords. Don’t try to simultaneously find the end of the next
token and figure out whether it’s a keyword or not. First, find the end of
the token. Then, if it looks like an identifier, check whether it matches
any of the keywords.
Don’t split on whitespace. It might seem like a good idea to start by
splitting the string on whitespace, but it’s not. It will just complicate
things, because whitespace isn’t the only boundary between tokens. For
example, main() has three tokens and no whitespace.

Writing the Parser


Now that you have a list of tokens, the next step is to figure out how
those tokens are grouped together into language constructs. In most
programming languages, including C, this grouping is hierarchical: each
language construct in the program is composed of several simpler
constructs. Individual tokens represent the most basic constructs, like
variables, constants, and arithmetic operators. Tree data structures are a
natural way to express this hierarchical relationship. A tree representation of
a program is called an abstract syntax tree, or AST. Most compilers use
ASTs internally, and yours will too. Your parser will accept the list of
tokens produced by the lexer and generate an AST. Then your code
generation stage will traverse that AST to figure out what assembly code to
emit.
There are two basic approaches to writing a parser. One option is to
handwrite the code for your parser. The other option is to use a parser
generator like Bison or ANTLR to produce your parsing code
automatically. Using a parser generator is less work than hand-writing a
parser, but this book uses a handwritten parser for a few reasons. Most
importantly, hand-writing a parser will give you a solid understanding of
how your parser works. It’s easy to use a parser generator without really
understanding the code it produces. Many parser generators also have a
steep learning curve, and you’re better off learning general techniques like
recursive descent parsing before you spend a lot of time mastering specific
Writing a C Compiler (Early Access) © 2022 by Nora Sandler

tools.
Handwritten parsers also have some practical advantages over those
produced by parser generators; they can be faster and easier to debug, and
provide better support for error handling. In fact, both GCC and Clang use
handwritten parsers. So writing a parser by hand isn’t just an academic
exercise.
That said, if you’d rather use a parser generator, that’s fine too! It all
depends on what you’re hoping to get out of the book. But I won’t talk
about how to use them, so you’ll have to figure that out on your own. If you
decide to go that route, make sure to research what parsing libraries are
available in your implementation language of choice.
Whichever option you choose, the first step is designing the abstract
syntax tree you want your compiler to produce. It might help to see an
example of an AST first.

An Example Abstract Syntax Tree


Let’s take a look at the AST for this code snippet:
if (a < b) {
return 2 + 2;
}

Listing 2-4 A simple if statement

This is an if statement, so we’ll label the root of the AST if. The if
node will have two children:

1. The condition, a < b

2. The “then” clause, return 2 + 2;


Each of these constructs can be broken down further. For example, the
condition is a binary operation with three children:

3. The left operand, variable a

4. The operator, <

5. The right operand, variable b


Figure 2-2 shows the whole AST for this code snippet:
Another Random Scribd Document
with Unrelated Content
“You served him right,” said Miller, who had himself resented the
young man's childish impetuosity, and felt like slapping him for his
impertinence.
Adele shrugged her fine shoulders. “Let's not waste any more time
talking about him,” she said. “I was going to tell you how happy you
made them all. When I read mother's description of their return
home that night—how she went round looking at each object and
touching it, that she might realize it was hers again; and how father
sat up till past midnight talking incessantly about it; and all the droll
things Uncle Abner said, I cried and laughed by turns. I longed to
see you, to tell you how I felt about what you did, and yet, now that
I'm with you, all I say seems utterly weak and—inadequate.”
“It seems wonderfully nice to me,” Miller declared. “I don't deserve
anything, and yet—well, I like to hear you talk.” He laughed.
“Whether I deserve it or not, I could listen to you for a week on a
stretch.”
In truth, Rayburn Miller had never in all his varied social career
become so suddenly and startlingly interested in any woman. It all
seemed like a dream, and a most delicious one—the gay
assemblage, the intermittent strains of the music, the touch of the
stately creature on his arm, the perfume of her flowers, her hair, her
eyes! He suddenly felt fearful of the passage of time, the leaving of
his train, the approach of some one to claim her attention. He could
not explain the spell she had thrown on him. Was it because she was
his friend's sister, and so astoundingly pretty, frank, and sensible, or
could it be that—?
His train of thought was broken by the approach of Miss Ida
Bishop, Adele's cousin, a rather plain girl, who, with her scrawny
neck and scant hair—which rebelled against being made much of—
would have appeared to better advantage in a street costume.
“Oh, Adele,” she cried, reproachfully, “what do you mean? Do you
know you have mortally offended Mr. Tedcastle? He had the march
with you.”
“And I asked him as a favor to excuse me from it,” said Adele,
simply. “I had just met Mr. Miller, who is to leave on an early train,
and I wanted to talk to him about home. Have you been introduced?
My cousin, Miss Bishop, Mr. Rayburn Miller.”
Miss Bishop bowed indifferently, and looked as if she still saw no
justification in the slight under question.
“I'm awfully sorry,” she said, reprovingly. “Mr. Tedcastle has been
as nice to you as he could be, and this is the way you show
appreciation for it. I don't blame him for being mad, do you, Mr.
Miller?”
“I'm afraid I'd be a prejudiced witness,” he smiled, “benefiting as I
am by the gentleman' s discomfiture; but, really, I can' t think that
any circumstances could justify a man in pressing a lady to fill an
engagement when she chooses not to do so for any reason of hers.”
“I knew you'd say that,” said Adele. “If anybody has a right to be
offended it is I, for the way he has acted without waiting for my full
explanation.”
“Oh, that is a high and mighty course that will do better for novels
than real life,” disagreed Miss Ida Bishop. “The young men are badly
spoiled here, and if we want attention we've got to humor them.”
“They shall not be spoiled by me,” declared Adele. “Why,”
shrugging her shoulders, contemptuously, “if I had to run after them
and bind up their bruises every time they fell down, I'd not
appreciate their attentions. Besides, Mr. Tedcastle and his whole ilk
actually put me to sleep. What do they talk about? Driving, pet dogs,
flowers, candies, theatre-parties, and silly bosh, generally. Last
Sunday Senator Hare dined at uncle's, and after dinner he and I
were having really a wholesome sort of talk, and I was respecting
myself—well, a little like I am now—when in traped 'Teddy' with his
hangers-on. Of course, I had to introduce them to the Senator, and I
felt like a fool, for he knew they were my 'company,' and it was
impossible to keep them quiet. They went on with their baby talk,
just as if Senator Hare were being given an intellectual treat. Of
course, there are some grown-up men in Atlanta, but they are driven
to the clubs by the swarms of little fellows. There comes Major
Middleton, one of the old régime. He may ask me to dance with him.
Now watch; if he does, I 'll answer him just as I did Mr. Tedcastle,
and you shall see how differently he will treat it.”
The Major, a handsome man of powerful physique and a great
shock of curly, iron-gray hair, approached Adele, and with a low bow
held out his hand.
“I'm after the next dance, my dear,” he said. “You are one of the
very few who ever dance with me, and I don't want to go home
without it.”
Adele smiled. “I'm very sorry, Major,” she said; “but I hope you 'll
excuse me this evening.”
“Oh, that's all right, my dear child,” he said. “No, don't explain. I
know your reasons are all right. Go ahead and enjoy yourself in your
own way.”
“I won my bet,” Adele laughed. “Major, I knew so well what you
would say that I bet on it,” and then she explained the situation.
“Tedcastle ought to be spanked,” said the Major, in his high-keyed
voice. “A girl who had not rather hear from home than spin around
with him ought not to have a home. I'm going to mine rather early
tonight. I came only to show the boys how to make my famous
Kentucky punch.”
When the Major and Miss Ida Bishop had gone and left them
together, Adele looked over the railing at the big clock in the office.
“We have only a few minutes longer—if you are to take that train,”
she said, regretfully.
“I never had as little interest in trains in my life,” he said. And he
meant it.
“Not in the trains on our new road?” she laughed.
“They are too far ahead to interfere with my comfort,” he retorted.
“This one is a steam nightmare.”
“I presume you really could not miss it?” Her long-lashed eyes
were down.
He hesitated; the simple thought suggested by her thrilled him as
he had never been thrilled before.
“Because,” she added, “it would be so nice to have you come out
to-morrow afternoon to tea, about four.”
He drew out his watch and looked at it waveringly.
“I could send a night message,” he said, finally. “I really don't
want to go. Miss Adele, I don't want to go at all.”
“I don't want you to either,” she said, softly. “It seems almost as if
we are quite old friends. Isn't that strange?”
He restored his watch to his pocket. “I shall stay,” he said, “and I
shall call to-morrow afternoon.”
Some one came for her a few minutes later, and he went down to
the office and out into the street. He wanted to walk, to feel his
body in action, keeping pace with his throbbing, bounding brain. His
whole being was aflame with a fire which had never burned in him
before.
“Alan' s little sister!” he kept repeating to himself. “Little Adele—
she's wonderful, wonderful! Perhaps she may be the woman. By
George! she is—she is! A creature like that, with that soul full of
appreciation for a man' s best efforts, would lift a fellow to the
highest rung on the ladder of human effort. Alan's little sister! And
the idiot never told me, never intimated that she was—a goddess.”
In his room at the hotel that night he slept little, his brain being so
active with his new experience. He saw her the next afternoon
alone, over a dainty tea-service of fragile china, in a Turkish corner
in William Bishop's great, quiet, house, and then proposed driving
her the next day to the Driving Club. He remained a week, seeing
her, under some pretext or other, every day during that time.
Sometimes it was to call with her on friends of hers. Once it was to
attend a barbecue given by Captain Burton at a club-house in the
country, and once he gave her and her cousin a luncheon at the
Capitol City Club with a box at the matinée afterwards. He told
himself that he had never lived before, and that, somehow, he was
just beginning.
“No,” he mused, as he sat in his train homeward bound. “I can't
tell Alan. I simply couldn't do it, after all the rubbish I have crammed
into him. Then she's his sister. I couldn't talk to him about her—not
now, anyway.”
XXI

M glad you got back.” Rayburn's sister, Mrs. Lampson, said


to him at breakfast the morning following his return on the
midnight train. “We are having a glorious meeting at our
church.”
“Oh, is that so?” said the young man, sipping his coffee. “Who is
conducting it?”
“Brother Maynell,” answered Mrs. Lampson, enthusiastically, a
tinge of color in her wan, thin face. “He's a travelling evangelist, who
has been conducting revivals all over the South. It is really
remarkable the interest he has stirred up. We are holding prayer-
meetings morning and afternoon, though only the ladies meet in the
afternoon. I conducted the meeting yesterday.”
“Oh no; did you, really? Why, sis—”
“Don't begin to poke fun at me,” said Mrs. Lamp-son. “I know I
didn't do as well as some of the others, but I did the best I could,
because I felt it was my duty.”
“I was not going to make fun,” said Miller, soothingly; “but it
seems mighty strange to think of you standing up before all the rest,
and—”
“It was not such a very hard thing to do,” said the lady, who was
older than her brother by ten years. She had gray hairs at her
temples, and looked generally as if she needed out-door exercise
and some diversion to draw her out of herself.
Rayburn helped himself to the deliciously browned, fried chicken,
in its bed of cream gravy, and a hot puffy biscuit.
“And how does Mr. Lapsley, the regular preacher, like this
innovation?” he questioned. “I reckon you all pay the new man a fee
for stirring things up?”
“Yes; we agreed to give him two hundred dollars, half of which
goes to an orphan asylum he is building. Oh, I don't think brother
Lapsley minds much, but of course it must affect him a little to see
the great interest brother Maynell has roused, and I suppose some
are mean enough to think he could have done the same, if he had
tried.”
“No, it's clearly a case of a new broom,” smiled Rayburn, buttering
his biscuit. “Old Lap might get up there and groan and whine for a
week and not touch a mourner with a ten-foot pole. The other chap
knows his business, and part of his business is not to stay long
enough to wear out his pet phrases or exhaust his rockets. I'm sorry
for Lapsley; he's paid a regular salary, and is not good for any other
sort of work, and this shows him up unfairly. In the long run, I
believe he 'll get as many into the church as the other man, and they
will be more apt to stick. Sister, that's the trouble with these tin-pan
revivals. The biggest converts backslide. I reckon you are working
over old material now.”
Mrs. Lampson frowned and her lip stiffened.
“I don't like your tone in speaking of such things,” she said.
“Indeed, Rayburn, I have been deeply mortified in the last week by
some remarks that have been made about you. I didn't intend to
mention them, but you make me do it.”
“Oh, I knew they wouldn't let me rest,” said Miller; “they never do
in their annual shake-ups.”
“Brother, you are looked on by nearly all religious workers in town
as a dangerous young man—I mean dangerous to the boys who are
just growing up, because they all regard you as a sort of standard to
shape their conduct by. They see you going to balls and dances and
playing cards, and they think it is smart and will not be interested in
our meetings. They see that you live and seem to prosper under it,
and they follow in your footsteps. I am afraid you don't realize the
awful example you are setting. Brother May-nell has heard of you
and asked me about you the other day. Some people think you have
been in Atlanta all this time to avoid the meeting.”
“I didn't know it was going on,” said Miller, testily. “I assure you I
never run from a thing like that. The best thing to do is to add fuel
to the fire—it burns out quicker.”
“Well, you will go out to meeting, won't you?” insisted the sweet-
voiced woman. “You won't have them all thinking you have no
respect for the religion of our father and mother—will you?”
Rayburn squirmed under this close fire.
“I shall go occasionally when there is preaching,” he said,
reluctantly. “I would be out of place at one of the—the knock-down
and drag-out shouting-bees.” Then, seeing her look of horror at the
words which had unthoughtedly glided from his lips, he strove to
make amends. “Oh, sister, do—do be reasonable, and look at it from
my point of view. I don't believe that's the way to serve God or
beautify the world. I believe in being happy in one's own way, just
so that you don't tread on the rights of other people.”
“But,” said Mrs. Lampson, her eyes flashing, “you are treading on
the rights of others. They are trying to save the souls of the rising
generation in the community, and you and your social set use your
influence in the other direction.”
“But what about the rights of my social set, if you want to call it
by that name?” Miller retorted, warmly. “We have the right to enjoy
ourselves in our way, just as you have in yours. We don't interfere—
we never ask you to close up shop so we can have a dance or a
picnic, but you do. If we dare give a party while some revivalist is
filling his pockets in town the revivalist jumps on us publicly and
holds us up as examples of headlong plungers into fiery ruin. There
is not a bit of justice or human liberty in that, and you 'll never reach
a certain element till you quit such a course. Last year one of the
preachers in this town declared in the pulpit that a girl could not be
pure and dance a round dance. It raised the very devil in the hearts
of the young men, who knew he was a dirty liar, and they got up as
many dances out of spite as they possibly could. In fact, some of
them came near knocking the preacher down on the street. I am a
conservative sort of fellow, but I secretly wished that somebody
would slug that man in the jaw.”
“I'm really afraid you are worse than ever,” sighed Mrs. Lampson.
“I don't know what to do with you.” She laughed good-naturedly as
she rose and stood behind his chair, touching his head tenderly. “It
really does make me rather mad,” she confessed, “to hear them
making you out such a bad stripe when I know what a wonderful
man you really are for your age. I really believe some of them are
jealous of your success and standing, but I do want you to be more
religious.” When Miller reached his office about ten o' clock and had
opened the door he noticed that Craig's bank on the corner across
the street was still closed. It was an unusual occurrence at that hour
and it riveted Miller's attention. Few people were on the street, and
none of them seemed to have noticed it. The church-bell in the next
block was ringing for the revivalist's prayer-meeting, and Miller saw
the merchants and lawyers hurrying by on their way to worship.
Miller stood in his front door and bowed to them as they passed.
Trabue hustled out of his office, pulling the door to with a jerk.
“Prayer-meeting?” he asked, glancing at Miller.
“No, not to-day,” answered Miller; “got some writing to do.”
“That preacher's a hummer,” said the old lawyer. “I've never seen
his equal. He'd 'a' made a bang-up criminal lawyer. Why, they say
old Joe Murphy's converted—got out of his bed at midnight and
went to Tim Slocum's house to get 'im to pray for 'im. He's denied
thar was a God all his life till now. I say a preacher's worth two
hundred to a town if it can do that sort of work.”
“He's certainly worth it to Slocum,” said Miller, with a smile. “If I'd
been denying there was a God as long as he has, I'd pay more than
that to get rid of the habit. Slocum's able, and I think he ought to
foot that preacher's bill.”
“You are a tough customer, Miller,” said Trabue, with a knowing
laugh. “You'd better look out—May-nell's got an eye on you. He 'll
call out yore name some o' these days, an' ask us to pray fer you.”
“I was just wondering if there's anything wrong with Craig,” said
Miller. “I see his door's not open.”
“Oh, I reckon not,” said the old lawyer. “He's been taking part in
the meeting. He may have overslept.”
There was a grocery-store near Miller's office, and the proprietor
came out on the sidewalk and joined the two men. His name was
Barnett. He was a powerful man, who stood six feet five in his
boots; he wore no coat, and his suspenders were soiled and knotted.
“I see you-uns is watchin' Craig's door,” he said. “I've had my eye
on it ever since breakfast. I hardly know what to make of it. I went
thar to buy some New York exchange to pay for a bill o' flour, but he
wouldn't let me in. I know he's thar, for I seed 'im go in about an
hour ago. I mighty nigh shook the door off'n the hinges. His clerk,
that Western fellow, Win-ship, has gone off to visit his folks, an' I
reckon maybe Craig's got all the book-keepin' to do.”
“Well, he oughtn't to keep his doors closed at this time of day,”
remarked Miller. “A man who has other people's money in his charge
can' t be too careful.”
“He's got some o' mine,” said the grocer, “and Mary Ann Tarpley,
my wife's sister, put two hundred thar day before yesterday. Oh, I
reckon nothin' s wrong, though I do remember I heerd somebody
say Craig bought cotton futures an' sometimes got skeerd up a little
about meetin' his obligations.”
“I have never heard that,” said Rayburn Miller, raising his brows.
“Well, I have, an' I've heerd the same o' Winship,” said the grocer,
“but I never let it go no furder. I ain't no hand to circulate ill reports
agin a good member of the church.”
Miller bit his lip and an unpleasant thrill passed over him as Trabue
walked on. “Twenty-five thousand,” he thought, “is no small amount.
It would tempt five men out of ten if they were inclined to go wrong,
and were in a tight.”
The grocer was looking at him steadily.
“You bank thar, don't you?” he asked.
Miller nodded: “But I happen to have no money there right now. I
made a deposit at the other bank yesterday.”
“Suspicious, heigh? Now jest a little, wasn't you?” The grocer now
spoke with undisguised uneasiness.
“Not at all,” replied the lawyer. “I was doing some business for the
other bank, and felt that I ought to favor them by my cash deposits.”
“You don't think thar's anything the matter, do you?” asked the
grocer, his face still hardening.
“I think Craig is acting queerly—very queerly for a banker,” was
Miller's slow reply. “He has always been most particular to open up
early and—”
“Hello,” cried out a cheery voice, that of the middle-aged
proprietor of the Darley Flouring Mills, emerging from Barnett's
store. “I see you fellows have your eye on Craig's front. If he was a
drinking man we might suspicion he'd been on a tear last night,
wouldn't we?”
“It looks damned shaky to me,” retorted the grocer, growing more
excited. “I'm goin' over there an' try that door again. A man 'at has
my money can't attract the attention Craig has an' me say nothin'.”
The miller pulled his little turf of gray beard and winked at
Rayburn.
“You been scarin' Barnett,” he said, with a tentative inflection.
“He's easily rattled. By-the-way, now that I think of it, it does seem
to me I heard some of the Methodists talkin' about reproving Craig
an' Winship for speculatin' in grain and cotton. I know they've been
dabblin' in it, for Craig always got my market reports. He's been
dealin' with a bucket-shop in Atlanta.”
“I'm going over there,” said Miller, abruptly, and he hurried across
in the wake of the big grocer. The miller followed him. On the other
side of the street several people were curiously watching the bank
door, and when Barnett went to it and grasped the handle and
began to shake it vigorously they crossed over to him.
“What's wrong?” said a dealer in fruits, a short, thick-set man with
a florid face; but Barnett's only reply was another furious shaking of
the door.
“Why, man, what's got into you?” protested the fruit-dealer, in a
rising tone of astonishment. “Do you intend to break that door
down?”
“I will if that damned skunk don't open it an' give me my money,”
said Barnett, who was now red in the face and almost foaming at
the mouth. “He's back in thar, an' he knows it's past openin' time. By
gum! I know more 'n I'm goin' to tell right now.”
This was followed by another rattling of the door, and the grocer's
enormous weight, like a battering-ram, was thrown against the
heavy walnut shutter.
“Open up, I say—open up in thar!” yelled the grocer, in a voice
hoarse with passion and suspense.
A dozen men were now grouped around the doorway. Barnett
released the handle and stood facing them.
“Somethin' s rotten in Denmark,” he panted. “Believe me or not,
fellows, I know a thing or two. This bank's in a bad fix.”
A thrill of horror shot through Miller. The words had the ring of
conviction. Alan Bishop's money was in bad hands if it was there at
all. Suddenly he saw a white, trembling hand fumbling with the
lower part of the close-drawn window-shade, as if some one were
about to raise it; but the shade remained down, the interior still
obscured. It struck Miller as being a sudden impulse, defeated by
fear of violence. There was a pause. Then the storm broke again.
About fifty men had assembled, all wild to know what was wrong.
Miller elbowed his way to the door and stood on the step, slightly
raised above the others, Barnett by his side. “Let me speak to him,”
he said, pacifically. Barnett yielded doggedly, and Rayburn put his
lips to the crack between the two folding-doors.
“Mr. Craig!” he called out—“Mr. Craig!”
There was no reply, but Rayburn heard the rustling of paper on
the inside near the crack against which his ear was pressed, and
then the edge of a sheet of writing-paper was slowly shoved
through. Rayburn grasped it, lifting it above a dozen outstretched
hands. “Hold on!” he cried, authoritatively. “Til read it.” The silence
of the grave fell on the crowd as the young man began to read.
“Friends and citizens,” the note ran, “Winship has absconded with
every dollar in the vaults, except about two hundred dollars in my
small safe. He has been gone two days, I thought on a visit to his
kinfolks. I have just discovered the loss. I'm completely ruined, and
am now trying to make out a report of my condition. Have mercy on
an old man.”
Rayburn's face was as white as that of a corpse. The paper
dropped from his hand and he stepped down into the crowd. He was
himself no loser, but the Bishops had lost their all. How could he
break the news to them? Presently he began to hope faintly that old
Bishop might, within the last week, have drawn out at least part of
the money, but that hope was soon discarded, for he remembered
that the old man was waiting to invest the greater part of the
deposit in some Shoal Creek Cotton Mill stock which had been
promised him in a few weeks. No, the hope was groundless. Alan,
his father, Mrs. Bishop, and—Adele—Miller's heart sank down into
the very ooze of despair. All that he had done for Adele's people, and
which had roused her deepest, tenderest gratitude, was swept away.
What would she think now?
His train of thought was rudely broken by an oath from Barnett,
who, with the rage of a madman, suddenly threw his shoulder
against the door. There was a crash, a groan of bursting timber and
breaking bolts, and the door flew open. For one instant Miller saw
the ghastly face and cowering form of the old banker behind the
wire-grating, and then, with a scream of terror, Craig ran into a room
in the rear, and thence made his escape at a door opening on the
side street. The mob filled the bank, and did not discover Craig's
escape for a minute; then, with a howl of rage, it surged back into
the street. Craig was ahead of them, running towards the church,
where prayer-meeting-was being held, the tails of his long frock-coat
flying behind him, his worn silk hat in his convulsive grasp.
“Thar he goes!” yelled Barnett, and he led the mob after him, all
running at the top of their speed without realizing why they were
doing so. They gained on the fleeing banker, and Barnett could
almost touch him when they reached the church. With a cry of fear,
like that of a wild animal brought to bay, Craig sprang up the steps
and ran into the church, crying and groaning for help.
A dozen men and women and children were kneeling at the altar
to get the benefit of the prayers of the ministers and the
congregation, but they stood up in alarm, some of them with wet
faces.
The mob checked itself at the door, but the greater part of it
crowded into the two aisles, a motley human mass, many of them
without coats or hats. The travelling evangelist seemed shocked out
of expression; but the pastor, Mr. Lapsley, who was an old
Confederate soldier, and used to scenes of violence, stood calmly
facing them.
“What's all this mean?” he asked.
“I came here for protection,” whined Craig, “to my own church
and people. This mob wants to kill me—tear me limb from limb.”
“But what's wrong?” asked the preacher.
“Winship,” panted Craig, his white head hanging down as he stood
touching the altar railing—“Win-ship's absconded with all the money
in my vault. I'm ruined. These people want me to give up what I
haven't got. Oh, God knows, I would refund every cent if I had it!”
“You shall have our protection,” said the minister, calmly. “They
won't violate the sacredness of the house of God by raising a row.
You are safe here, brother Craig. I'm sure all reasonable people will
not blame you for the fault of another.”
“I believe he's got my money,” cried out Barnett, in a coarse,
sullen voice, “and the money of some o' my women folks that's
helpless, and he's got to turn it over. Oh, he's got money some'r's, I
'll bet on that!”
“The law is your only recourse, Mr. Barnett,” said the preacher,
calmly. “Even now you are laying yourself liable to serious
prosecution for threatening a man with bodily injury when you can't
prove he's wilfully harmed you.”
The words told on the mob, many of them being only small
depositors, and Barnett found himself without open support. He was
silent. Rayburn Miller, who had come up behind the mob and was
now in the church, went to Craig's side. Many thought he was
proffering his legal services.
“One word, Mr. Craig,” he said, touching the quivering arm of the
banker.
“Oh, you're no loser,” said Craig, turning on him. “There was
nothing to your credit.”
“I know that,” whispered Miller, “but as attorney for the Bishops, I
have a right to ask if their money is safe.” The eyes of the banker
went to the ground.
“It's gone—every cent of it!” he said. “It was their money that
tempted Winship. He'd never seen such a large pile at once.”
“You don't mean—” But Miller felt the utter futility of the question
on his tongue and turned away. Outside he met Jeff Dukes, one of
the town marshals, who had been running, and was very red in the
face and out of breath.
“Is that mob in thar?” he asked.
“Yes, and quiet now,” said Miller. “Let them alone; the important
thing is to put the police on Winship's track. Come back down-town.”
“I 'll have to git the particulars from Craig fust,” said Dukes. “Are
you loser?”
“No, but some of my clients are, and I'm ready to stand any
expense to catch the thief.”
“Well, I 'll see you in a minute, and we 'll heat all the wires out of
town. I 'll see you in a minute.”
Farther down the street Miller met Dolly Barclay. She had come
straight from her home, in an opposite direction from the bank, and
had evidently not heard the news.
“I'm on my way to prayer-meeting,” she smiled. “I'm getting good
to please the old folks, but—” She noticed his pale face. “What is the
matter? Has anything—”
“Craig's bank has failed,” Rayburn told her briefly. “He says
Winship has absconded with all the cash in the vaults.”
Dolly stared aghast. “And you—you—”
“I had no money there,” broke in Miller. “I was fortunate enough
to escape.”
“But Alan—Mr. Bishop?” She was studying his face and pondering
his unwonted excitement. “Had they money there?”
Miller did not answer, but she would not be put aside.
“Tell me,” she urged—“tell me that.”
“If I do, it's in absolute confidence,” he said, with professional
firmness. “No one must know—not a soul—that they were
depositors, for much depends on it. If Wilson knew they were hard
up he might drive them to the wall. They were not only depositors,
but they lose every cent they have—twenty-five thousand dollars in
a lump.”
He saw her catch her breath, and her lips moved mutely, as if
repeating the words he had just spoken. “Poor Alan!” he heard her
say. “This is too, too much, after all he has gone through.”
Miller touched his hat and started on, but she joined him, keeping
by his side like a patient, pleading child. He marvelled over her
strength and wonderful poise. “I am taking you out of your way,
Miss Dolly,” he said, gently, more gently than he had ever spoken to
her before.
“I only want to know if Alan has heard. Do—do tell me that.”
“No, he's at home. I shall ride out as soon as I get the matter in
the hands of the police.”
She put out her slender, shapely hand and touched his arm.
“Tell him,” she said, in a low, uncertain voice, “that it has broken
my heart. Tell him I love him more than I ever did, and that I shall
stick to him always.”
Miller turned and took off his hat, giving her his hand.
“And I believe you will do it,” he said. “He's a lucky dog, even if he
has just struck the ceiling. I know him, and your message will soften
the blow. But it's awful, simply awful! I can't now see how they can
possibly get from under it.”
“Well, tell him,” said Dolly, with a little, soundless sob in her throat
—“tell him what I told you.”
XXII

HAT afternoon the breeze swerved round from the south,


bringing vague threats About three o' clock Alan, his his
mother and father were in the front yard, looking at the
house, with a view to making some alterations that had been
talked of for several years past.
“I never had my way in anything before,” Mrs. Bishop was running
on, in the pleased voice of a happy child, “and I'm glad you are goin'
to let me this once. I want the new room to jut out on this side from
the parlor, and have a bay-window, and we must cut a wide foldin'-
door between the two rooms. Then the old veranda comes down
and the new one must have a double floor, like Colonel Sprague's on
the river, except ours will have round, white columns instead o'
square, if they do cost a trifle more.”
“She knows what she wants,” said Bishop, with one of his
infrequent smiles, “and I reckon we'd save a little to let her boss the
job, ef she don't hender the carpenters by too much talk. I don't
want 'em to put in a stick o' lumber that ain't the best.”
“I'm glad she's going to have her way,” said Alan. “She's wanted a
better house for twenty years, and she deserves it.”
“I don't believe in sech fine feathers,” said Bishop,
argumentatively. “I'd a leetle ruther wait till we see whether Wilson's
a-goin' to put that road through—then we could afford to put on a
dab or two o' style. I don't know but I'd move down to Atlanta an'
live alongside o' Bill, an' wear a claw-hammer coat an' a dicky cravat
fer a change.”
“Then you mought run fer the legislatur',” spoke up Abner Daniel,
who had been an amused listener, “an' git up a law to pen up mad
dogs at the dangerous part o' the yeer. Alf, I've always thought you'd
be a' ornament to the giddy whirl down thar. William was ever' bit as
green as you are when he fust struck the town. But he had the
advantage o' growin' up an' sorter ripenin' with the place. It ud be
hard on you at yore time o' life.”
At this juncture Alan called their attention to a horseman far down
the road. “It looks like Ray Miller's mare,” he remarked. “This is one
of his busy days; he can' t be coming to fish.”
“Railroad news,” suggested Abner. “It's a pity you hain't connected
by telegraph.”
They were all now sure that it was Miller, and with no little
curiosity they moved nearer the gate.
“By gum! he's been givin' his mare the lash,” said Abner. “She's
fairly kivered with froth.”
“Hello, young man,” Alan called out, as Miller dismounted at a
hitching-post just outside the fence and fastened his bridle-rein.
“Glad to see you; come in.”
Miller bowed and smiled as he opened the gate and came forward
to shake hands.
“We are certainly glad you came, Mr. Miller,” said Mrs. Bishop, with
all her quaint cordiality. “Ever since that day in the office I've wanted
a chance to show you how much we appreciate what you done fer
us. Brother Ab will bear me out when I say we speak of it mighty
nigh ever'day.”
Miller wore an inexpressible look of embarrassment, which he tried
to lose in the act of shaking hands all round the group, but his
platitudes fell to the ground. Abner, the closest observer among
them, already had his brows drawn together as he pondered Miller's
unwonted lack of ease.
“Bring any fishing-tackle?” asked Alan.
“No, I didn't,” said the lawyer, jerking himself to that subject
awkwardly. “The truth is, I only ran out for a little ride. I've got to
get back.”
“Then it is business, as brother Ab said,” put in Mrs. Bishop,
tentatively.
Miller lowered his eyes to the ground and then raised them to
Alan's face.
“Yes, it's railroad business,” said Abner, his voice vibrant with
suspense.
“And it's not favorable,” said Alan, bravely. “I can see that by your
looks.”
Miller glanced at his mare, and lashed the leg of his top-boots with
his riding-whip. “No, I have bad news, but it's not about the railroad.
I could have written, but I thought I'd better come myself.”
“Adele!” gasped Mrs. Bishop. “You have heard—”
“No, she's well,” said Miller. “It's about the money you put in
Craig's bank.”
“What about that?” burst from old Bishop's startled lips.
“Craig claims Winship has absconded with all the cash. The bank
has failed.”
“Failed!” The word was a moan from Bishop, and for a moment no
one spoke. A negro woman at the wash-place behind the house was
using a batting-stick on some clothing, and the dull blows came to
them distinctly.
“Is that so, Ray?” asked Alan, calm but pale to the lips.
“I'm sorry to say it is.”
“Can anything at all be done?”
“I've done everything possible already. We have been telegraphing
the Atlanta police all morning about tracing Winship, but they don't
seem much interested. They think he's had too big a start on us. You
see, he's been gone two days and nights. Craig says he thought he
was on a visit to relatives till he discovered the loss last night.”
“It simply spells ruin, old man,” said Alan, grimly. “I can see that.”
Miller said nothing for a moment—then:
“It's just as bad as it could be, my boy,” he said. “I see no reason
to raise false hopes. There is a strong feeling against Craig, and no
little suspicion, owing to the report that he has been speculating
heavily, but he has thrown himself on the protection of his church,
and even some of his fellow-members, who lose considerably, are
standing by him.”
Here old Bishop, with compressed lips, turned and walked
unsteadily into the house. With head hanging low and eyes flashing
strangely, his wife followed him. At the steps she paused, her sense
of hospitality transcending her despair. “You must stay to early
supper, anyway, Mr. Miller,” she said. “You could ride back in the cool
o' the evening.”
“Thank you, but I must hurry right back, Mrs. Bishop,” Miller said.
“And Dolly—does she know?” asked Alan, when his mother had
disappeared and Abner had walked to the hitching-post, and stood
as if thoughtfully inspecting Miller's mare. Miller told him of their
conversation that morning, and Alan' s face grew tender and more
resigned.
“She's a brick!” said Miller. “She's a woman I now believe in
thoroughly—she and one other.”
“Then there is another?” asked Alan, almost cheerfully, as an
effect of the good news that had accompanied the bad.
“Yes. I see things somewhat differently of late,” admitted Miller, in
an evasive, non-committal tone. “Dolly Barclay opened my eyes, and
when they were open I saw—well, the good qualities of some one
else. I may tell you about her some day, but I shall not now. Get
your horse and come to town with me. We must be ready for any
emergency.”
Abner Daniel came towards them. “I don't want to harm nobody's
character,” he said; “but whar my own kin is concerned, I'm up an'
wide awake. I don't know what you think, but I hain't got a speck o'
faith in Craig hisse'f. He done me a low, sneakin' trick once that I
ketched up with. He swore it was a mistake, but it wasn't. He's a
bad egg—you mind what I say; he won't do.”
“It may be as you say, Mr. Daniel,” returned Miller, with a lawyer's
reserve on a point unsubstantiated by evidence, “but even if he has
the money hidden away, how are we to get it from him?”
“I'd find a way,” retorted Daniel, hotly, “so I would.”
“We 'll do all we can,” said Miller.
Daniel strode into the house and Alan went after his horse. Miller
stood at the gate, idly tapping his boot with his whip.
“Poor Mrs. Bishop!” he said, his eyes on the house; “how very
much she resembled Adele just now, and she is bearing it just like
the little girl would. I reckon they 'll write her the bad news. I wish I
was there to—soften the blow. It will wring her heart.”
XXIII

HAT evening after supper the family remained, till bedtime,


in the big, bare-looking dining-room, the clean, polished
floors of which gleamed in the light of a little fire in the big
chimney. Bishop's chair was tilted back against the wall in a
dark corner, and Mrs. Bishop sat knitting mechanically. Abner was
reading—or trying to read—a weekly paper at the end of the dining-
table, aided by a dimly burning glass-lamp. Aunt Maria had removed
the dishes and, with no little splash and clatter, was washing them in
the adjoining kitchen.
Suddenly Abner laid down his paper and began to try to console
them for their loss. Mrs. Bishop listened patiently, but Bishop sat in
the very coma of despair, unconscious of what was going on around
him.
“Alf,” Abner called out, sharply, “don't you remember what a close-
fisted scamp I used to be about the time you an' Betsy fust hitched
together?”
“No, I don't,” said the man addressed, almost with a growl at
being roused from what could not have been pleasant reflections.
“I remember folks said you was the stingiest one in our family,”
struck in Mrs. Bishop, plaintively. “Law me! I hain't thought of it from
that day to this. It seems powerful funny now to think of you havin'
sech a reputation, but I railly believe you had it once.”
“An' I deserved it,” Abner folded his paper, and rapped with it on
the table. “You know, Betsy, our old daddy was as close as they
make 'em; he had a rope tied to every copper he had, an' I growed
up thinkin' it was the only safe course in life. I was too stingy to buy
ginger-cake an' cider at camp-meetin' when I was dyin' fer it. I've
walked round an' round a old nigger woman's stand twenty times
with a dry throat an' my fingers on a slick dime, an' finally made
tracks fer the nighest spring. I had my eyes opened to stinginess
bein' ungodly by noticin' its effect on pa. He was a natural human
bein' till a body tetched his pocket, an' then he was a rantin' devil. I
got to thinkin' I'd be like 'im by inheritance ef I didn't call a halt, an'
I begun tryin' in various ways to reform. I remember I lent money a
little freer than I had, which wasn't sayin' much, fer thar was a time
when I wouldn't 'a' sold a man a postage-stamp on a credit ef he'd
'a' left it stuck to the back o' my neck fer security.
“But I 'll tell you how I made my fust great big slide towards
reformation. It tuck my breath away, an' lots o' my money; but I did
it with my eyes open. I was jest a-thinkin' a minute ago that maybe
ef I told you-uns about how little it hurt me to give it up you mought
sleep better to-night over yore own shortage. Alf, are you listenin'?”
“Yes, I heerd what you said,” mumbled Bishop.
Abner cleared his throat, struck at a moth with his paper, and
continued: “Betsy, you remember our cousin, Jimmy Bartow? You
never knowed 'im well, beca'se you an' Alf was livin' on Holly Creek
about that time, an' he was down in our neighborhood. He never
was wuth shucks, but he twisted his mustache an' greased his hair
an' got 'im a wife as easy as fallin' off a log. He got to clerkin' fer old
Joe Mason in his store at the cross-roads, and the sight o' so much
change passin' through his fingers sort o' turned his brain. He tuck
to drinking an' tryin' to dress his wife fine, an' one thing or other,
that made folks talk. He was our double fust cousin, you know, an'
we tuck a big interest in 'im on that account. After a while old Joe
begun to miss little dribs o' cash now an' then, an' begun to keep
tab on Jimmy, an' 'fore the young scamp knowed it, he was ketched
up with as plain as day.
“Old Joe made a calculation that Jimmy had done 'im, fust and
last, to the tune of about five hundred dollars, an' told Jimmy to set
down by the stove an' wait fer the sheriff.
“Jimmy knowed he could depend on the family pride, an' he sent
fer all the kin fer miles around. It raised a awful rumpus, fer not one
o' our stock an' generation had ever been jailed, an' the last one of
us didn't want it to happen. I reckon we was afeerd ef it once broke
out amongst us it mought become a epidemic. They galloped in on
the'r hosses an' mules, an' huddled around Mason. They closed his
doors, back an' front, an' patted 'im on the back, an' talked about
the'r trade an' influence, an' begged 'im not to prefer charges; but
old Joe stood as solid as a rock. He said a thief was a thief, ef you
spelt it back'ards or for'ards, or ef he was akin to a king or a corn-
fiel' nigger. He said it was, generally, the bigger the station the
bigger the thief. Old Joe jest set at his stove an' chawed tobacco an'
spit. Now an' then he'd stick his hands down in his pockets an' rip
out a oath. Then Jimmy's young wife come with her little teensy
baby, an' set down by Jimmy, skeerd mighty nigh out of 'er life.
Looked like the baby was skeerd too, fer it never cried ur moved.
Then the sheriff driv' up in his buggy an' come in clinkin' a pair o'
handcuffs. He seed what they was all up to an' stood back to see
who would win, Jimmy's kin or old Joe. All at once I tuck notice o'
something that made me madder'n a wet hen. They all knowed I
had money laid up, an' they begun to ax old Mason ef I'd put up the
five hundred dollars would he call it off. I was actu'ly so mad I
couldn't speak. Old Joe said he reckoned, seein' that they was all so
turribly set back, that he'd do it ef I was willin'. The Old Nick got in
me then as big as a side of a house, an' I give the layout about the
toughest talk they ever had. It didn't faze 'em much, fer all they
wanted was to git Jimmy free, an' so they tuck another tack. Ef
they'd git up half amongst 'em all, would I throw in t'other half?
That, ef anything, made me madder. I axed 'em what they tuck me
fer—did I look like a durn fool? An' did they think beca'se they was
sech fools I was one?
“Old Tommy Todd, Jimmy's own uncle, was thar, but he never had
a word to say. He jest set an' smoked his pipe an' looked about, but
he wouldn't open his mouth when they'd ax him a question. He was
knowed to be sech a skinflint that nobody seemed to count on his
help at all, an' he looked like he was duly thankful fer his reputation
to hide behind in sech a pressure.
“Then they lit into me, an' showed me up in a light I'd never
appeared in before. They said I was the only man thar without a
family to support, an' the only one thar with ready cash in the bank,
an' that ef I'd let my own double fust cousin be jailed, I was a
disgrace to 'em all. They'd not nod to me in the big road, an' ud use
the'r influence agin my stayin' in the church an' eventually gittin' into
the kingdom o' Heaven. I turned from man to devil right thar. I got
up on the head of a tater-barrel behind the counter, an' made the
blamedest speech that ever rolled from a mouth inspired by iniquity.
I picked 'em out one by one an' tore off their shirts, an' chawed the
buttons. The only one I let escape was old Tommy; he never give
me a chance to hit him. Then I finally come down to the prisoner at
the bar an' I larruped him. Ever' time I'd give a yell, Jimmy ud duck
his head, an' his wife ud huddle closer over the baby like she was
afeerd splinters ud git in its eyes. I made fun of 'em till I jest had to
quit. Then they turned the'r backs on me an' begun to figure on
doin' without my aid. It was mortgage this, an' borrow this, an' sell
this hoss or wagon or mule or cow, an' a turrible wrangle. I seed
they was gittin' down to business an' left 'em.
“I noticed old Tommy make his escape, an' go out an' unhitch his
hoss, but he didn't mount. Looked like he 'lowed he was at least
entitled to carryin' the news home, whether he he'ped or not. I went
to the spring at the foot o' the rise an' set down. I didn't feel right.
In fact, I felt meaner than I ever had in all my life, an' couldn't 'a'
told why. Somehow I felt all at once ef they did git Jimmy out o'
hock an' presented 'im to his wife an' baby without me a-chippin' in,
I'd never be able to look at 'em without remorse, an' I did think a
lots o' Jimmy's wife an' baby. I set thar watchin' the store about as
sorry as a proud sperit kin feel after a big rage. Fust I'd hope they'd
git up the required amount, an' then I'd almost hope they wouldn't.
Once I actually riz to go offer my share, but the feer that it ud be
refused stopped me. On the whole, I think I was in the mud about
as deep as Jimmy was in the mire, an' I hadn't tuck nobody's money
nuther. All at once I begun to try to see some way out o' my
predicament. They wouldn't let me chip in, but I wondered ef they'd
let me pay it all. I believed they would, an' I was about to hurry in
the store when I was balked by the thought that folks would say I
was a born idiot to be payin' my lazy, triflin' kinfolks out o' the
consequences o' the'r devilment; so I set down agin, an' had
another wrastle. I seed old Tommy standin' by his hoss chawin' his
ridin'-switch an' watchin' the door. All at once he looked mighty
contemptible, an' it struck me that I wasn't actin' one bit better, so I
ris an' plunged fer the door. Old Tommy ketched my arm as I was
about to pass 'im an' said, 'What you goin' to do, Ab?' An' I said,
'Uncle Tommy, I'm a-goin' to pay that boy out ef they 'll let me.'
“'You don't say,' the old fellow grunted, lookin' mighty funny, an'
he slid in the store after me. Somehow I wasn't afeerd o' nothin'
with or without shape. I felt like I was walkin' on air in the brightest,
saftest sunshine I ever felt. They was all huddled over Mason's desk
still a-figurin' an' a-complainin' at the uneven division. Jimmy set
thar with his head ducked an' his young wife was tryin' to fix some'n'
about the baby. She looked like she'd been cryin.'I got up on my
tater-barrel an' knocked on the wall with a axe-handle to attract the'r
attention. Then I begun. I don't know what I said, or how it
sounded, but I seed Jimmy raise his head an' look, an' his wife push
back her poke-bonnet an' stare like I'd been raised from the grave.
Along with my request to be allowed to foot the whole bill, I said I
wanted to do it beca'se I believed I could show Jimmy an' his wife
that I was doin' it out o' genuine regard fer 'em both, an' that I
wanted 'em to take a hopeful new start an' not be depressed. Well,
sir, it was like an avalanche. I never in all my life seed sech a
knocked-out gang. Nobody wanted to talk. The sheriff looked like he
was afeerd his handcuffs ud jingle, an' Jimmy bu'st out cryin'. His
wife sobbed till you could 'a' heerd her to the spring. She sprung up
an' fetched me her baby an' begged me to kiss it. With her big glad
eyes, an' the tears in 'em, she looked nigher an angel than any
human bein' I ever looked at. Jimmy went out the back way wipin'

You might also like