100% found this document useful (1 vote)
64 views

Beginning Bazel: Building and Testing for Java, Go, and More 1st Edition P.J. Mcnerney instant download

The document is a promotional material for the book 'Beginning Bazel: Building and Testing for Java, Go, and More' by P.J. McNerney, which covers the setup and use of Bazel for building and testing applications in various programming languages. It includes links to purchase the book and additional resources related to other titles. The document also outlines the book's content, including installation instructions and project examples.

Uploaded by

ursuloyamy
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
64 views

Beginning Bazel: Building and Testing for Java, Go, and More 1st Edition P.J. Mcnerney instant download

The document is a promotional material for the book 'Beginning Bazel: Building and Testing for Java, Go, and More' by P.J. McNerney, which covers the setup and use of Bazel for building and testing applications in various programming languages. It includes links to purchase the book and additional resources related to other titles. The document also outlines the book's content, including installation instructions and project examples.

Uploaded by

ursuloyamy
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

Beginning Bazel: Building and Testing for Java,

Go, and More 1st Edition P.J. Mcnerney pdf


download

https://ebookmeta.com/product/beginning-bazel-building-and-
testing-for-java-go-and-more-1st-edition-p-j-mcnerney/

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!

Cambridge IGCSE and O Level History Workbook 2C - Depth


Study: the United States, 1919-41 2nd Edition Benjamin
Harrison

https://ebookmeta.com/product/cambridge-igcse-and-o-level-
history-workbook-2c-depth-study-the-united-states-1919-41-2nd-
edition-benjamin-harrison/

Beginning Cloud Native Development with MicroProfile,


Jakarta EE, and Kubernetes: Java DevOps for Building
and Deploying Microservices-based Applications 1st
Edition Tarun Telang
https://ebookmeta.com/product/beginning-cloud-native-development-
with-microprofile-jakarta-ee-and-kubernetes-java-devops-for-
building-and-deploying-microservices-based-applications-1st-
edition-tarun-telang/

Go for Java Programmers: Learn the Google Go


Programming Language 1st Edition Barry Feigenbaum

https://ebookmeta.com/product/go-for-java-programmers-learn-the-
google-go-programming-language-1st-edition-barry-feigenbaum/

A Women’s History of the Beatles 1st Edition Christine


Feldman-Barrett

https://ebookmeta.com/product/a-womens-history-of-the-
beatles-1st-edition-christine-feldman-barrett/
Murder on Wall Street Gaslight Cozy Mysteries 24
Victoria Thompson

https://ebookmeta.com/product/murder-on-wall-street-gaslight-
cozy-mysteries-24-victoria-thompson/

The Handy Supreme Court Answer Book The History and


Issues Explained The Handy Answer Book 2nd Edition
David L. Hudson

https://ebookmeta.com/product/the-handy-supreme-court-answer-
book-the-history-and-issues-explained-the-handy-answer-book-2nd-
edition-david-l-hudson/

Employee-Centric IT 1st Edition Mark Ghibril

https://ebookmeta.com/product/employee-centric-it-1st-edition-
mark-ghibril/

Adaptive Machine Learning Algorithms with Python: Solve


Data Analytics and Machine Learning Problems on Edge
Devices 1st Edition Chanchal Chatterjee

https://ebookmeta.com/product/adaptive-machine-learning-
algorithms-with-python-solve-data-analytics-and-machine-learning-
problems-on-edge-devices-1st-edition-chanchal-chatterjee/

Homicide in Chicago Architecture Mystery 2 1st Edition


Edward Marston

https://ebookmeta.com/product/homicide-in-chicago-architecture-
mystery-2-1st-edition-edward-marston/
Teaching and Researching Chinese Second Language
Listening 1st Edition Wei Cai

https://ebookmeta.com/product/teaching-and-researching-chinese-
second-language-listening-1st-edition-wei-cai/
Beginning
Bazel
Building and Testing for Java, Go,
and More

P.J. McNerney
Beginning Bazel
Building and Testing for Java,
Go, and More

P.J. McNerney
Beginning Bazel: Building and Testing for Java, Go, and More
P.J. McNerney
Blackhawk, CO, USA

ISBN-13 (pbk): 978-1-4842-5193-5 ISBN-13 (electronic): 978-1-4842-5194-2


https://doi.org/10.1007/978-1-4842-5194-2

Copyright © 2020 by P.J. McNerney


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Editorial Operations Manager: Mark Powers
Cover designed by eStudioCalamar
Cover image designed by Raw Pixel (www.rawpixel.com)
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street,
6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-
sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member
(owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a
Delaware corporation.
For information on translations, please e-mail [email protected]; for reprint, paperback, or audio rights,
please email [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/9781484251935. For more
detailed information, please visit http://www.apress.com/source-code.
Printed on acid-free paper
Table of Contents
About the Author����������������������������������������������������������������������������������������������������� ix

About the Technical Reviewer��������������������������������������������������������������������������������� xi

Chapter 1: Introduction�������������������������������������������������������������������������������������������� 1
What This Book Is�������������������������������������������������������������������������������������������������������������������������� 1
What This Book Is Not������������������������������������������������������������������������������������������������������������������� 1
Features of Bazel�������������������������������������������������������������������������������������������������������������������������� 2
High-Level Build Language������������������������������������������������������������������������������������������������������ 3
Explicit Dependency Management������������������������������������������������������������������������������������������ 3
Advanced Visibility Features���������������������������������������������������������������������������������������������������� 4
Explicit Workspace Management�������������������������������������������������������������������������������������������� 4
Remote Build Execution and Caching�������������������������������������������������������������������������������������� 4
Build Dependency Analysis������������������������������������������������������������������������������������������������������ 4
Fast, Correct Builds (and Tests)����������������������������������������������������������������������������������������������� 4
Who This Book Is For (and Possibly Not For)��������������������������������������������������������������������������������� 5

Chapter 2: Setup and Installation����������������������������������������������������������������������������� 7


MacOS������������������������������������������������������������������������������������������������������������������������������������������� 8
Installing Xcode����������������������������������������������������������������������������������������������������������������������� 8
Installing Bazel������������������������������������������������������������������������������������������������������������������������ 9
Installing Java����������������������������������������������������������������������������������������������������������������������� 10
Verifying Your Python Version������������������������������������������������������������������������������������������������ 10
Ubuntu Linux������������������������������������������������������������������������������������������������������������������������������� 11
Installing Required Packages������������������������������������������������������������������������������������������������ 11
Installing Bazel���������������������������������������������������������������������������������������������������������������������� 11
Installing Java����������������������������������������������������������������������������������������������������������������������� 12

iii
Table of Contents

Windows������������������������������������������������������������������������������������������������������������������������������������� 13
Setting Up Your System��������������������������������������������������������������������������������������������������������� 13
Installing Required Applications�������������������������������������������������������������������������������������������� 15
Bazel Installation������������������������������������������������������������������������������������������������������������������� 17
Final Word����������������������������������������������������������������������������������������������������������������������������������� 21

Chapter 3: Your First Bazel Project������������������������������������������������������������������������� 23


Setting Up Your Workspace��������������������������������������������������������������������������������������������������������� 23
Adding Source Code�������������������������������������������������������������������������������������������������������������������� 24
Hello World, Java Style���������������������������������������������������������������������������������������������������������� 24
Specifying the BUILD Targets������������������������������������������������������������������������������������������������ 25
Building Your Targets������������������������������������������������������������������������������������������������������������� 25
Creating and Using Dependencies����������������������������������������������������������������������������������������� 28
Testing Your Build Targets����������������������������������������������������������������������������������������������������� 33
Build (and Clean) the World��������������������������������������������������������������������������������������������������������� 38
Build Everything (In a Directory)�������������������������������������������������������������������������������������������� 38
Build Everything (At This Directory and Below)��������������������������������������������������������������������� 39
Clean (Mostly) Everything������������������������������������������������������������������������������������������������������ 39
Final Word����������������������������������������������������������������������������������������������������������������������������������� 40

Chapter 4: WORKSPACE File Functionality�������������������������������������������������������������� 43


WORKSPACE Files����������������������������������������������������������������������������������������������������������������������� 43
Adding New Rules to WORKSPACE���������������������������������������������������������������������������������������������� 44
A Deeper Dive into the Load Path������������������������������������������������������������������������������������������ 45
Finding the bazel_tools Repository��������������������������������������������������������������������������������������� 46
Loading Multiple Rules at the Same Time����������������������������������������������������������������������������� 48
Referencing Other Dependencies����������������������������������������������������������������������������������������������� 48
http_archive�������������������������������������������������������������������������������������������������������������������������� 49
git_repository������������������������������������������������������������������������������������������������������������������������ 50
http_archive vs. git_repository���������������������������������������������������������������������������������������������� 52
Employing a New Language�������������������������������������������������������������������������������������������������� 53
Locating the Go Language Rules Repository������������������������������������������������������������������������� 56

iv
Table of Contents

Chapter 5: A Simple Echo Client/Server Program�������������������������������������������������� 57


Setting Up Your Workspace��������������������������������������������������������������������������������������������������������� 57
Go Echo Server��������������������������������������������������������������������������������������������������������������������������� 58
Java Echo Client�������������������������������������������������������������������������������������������������������������������������� 60
Naming the Echo Client and Server��������������������������������������������������������������������������������������� 62
Echoing Between Programs�������������������������������������������������������������������������������������������������������� 65
Upgrading to JSON���������������������������������������������������������������������������������������������������������������������� 67
JSON in Go����������������������������������������������������������������������������������������������������������������������������� 67
JSON in Java������������������������������������������������������������������������������������������������������������������������� 70
Executing the Echo Client/Server with JSON������������������������������������������������������������������������ 72
Final Word: Duplication of Effort������������������������������������������������������������������������������������������������� 74

Chapter 6: Protocol Buffers and Bazel������������������������������������������������������������������� 75


Setting Up Your Workspace��������������������������������������������������������������������������������������������������������� 76
Creating Your First Protocol Buffer���������������������������������������������������������������������������������������������� 76
Using the Protocol Buffer in Java������������������������������������������������������������������������������������������������ 79
Creating the Java Proto Library Target���������������������������������������������������������������������������������� 79
Using Your Java Protocol Buffer Target��������������������������������������������������������������������������������� 80
Using the Protocol Buffer in Go��������������������������������������������������������������������������������������������������� 83
Creating the Go Proto Library Target������������������������������������������������������������������������������������� 84
Using Your Go Protocol Buffer Target������������������������������������������������������������������������������������� 85
Echo Using Protocol Buffers�������������������������������������������������������������������������������������������������������� 88
Dependency Tracking and Management������������������������������������������������������������������������������������� 90
Change Management in Action���������������������������������������������������������������������������������������������� 91
Final Word����������������������������������������������������������������������������������������������������������������������������������� 94

Chapter 7: Code Organization and Bazel���������������������������������������������������������������� 97


Setup������������������������������������������������������������������������������������������������������������������������������������������� 97
Separating the Protocol Buffers�������������������������������������������������������������������������������������������������� 98
Referencing Build Targets Outside of the Current Package�������������������������������������������������������� 99

v
Table of Contents

Target Visibility�������������������������������������������������������������������������������������������������������������������������� 101


Package Visibility����������������������������������������������������������������������������������������������������������������� 102
Individual Target Visibility���������������������������������������������������������������������������������������������������� 105
Mixing Package and Target Visibilities�������������������������������������������������������������������������������� 107
Separating the Client and Server Code������������������������������������������������������������������������������������� 108
Separating the Echo Server Code���������������������������������������������������������������������������������������� 108
Separating the Echo Client Code����������������������������������������������������������������������������������������� 110
Cleaning Up������������������������������������������������������������������������������������������������������������������������� 112
Final Word��������������������������������������������������������������������������������������������������������������������������������� 113

Chapter 8: gRPC and Bazel����������������������������������������������������������������������������������� 115


Setup����������������������������������������������������������������������������������������������������������������������������������������� 115
Dependency Discussion������������������������������������������������������������������������������������������������������ 117
Defining the gRPC in Protocol Buffers�������������������������������������������������������������������������������������� 118
Upgrading the Client to Use gRPC��������������������������������������������������������������������������������������������� 121
Upgrading the Server to Use gRPC������������������������������������������������������������������������������������������� 124
Running the Client and the Server�������������������������������������������������������������������������������������������� 127
Adding Another RPC������������������������������������������������������������������������������������������������������������������ 129
Final Word��������������������������������������������������������������������������������������������������������������������������������� 134

Chapter 9: Bazel and Android������������������������������������������������������������������������������� 135


Setup����������������������������������������������������������������������������������������������������������������������������������������� 135
Workspace��������������������������������������������������������������������������������������������������������������������������� 135
Android Studio��������������������������������������������������������������������������������������������������������������������� 137
Creating the Emulator���������������������������������������������������������������������������������������������������������� 141
Creating the Android Echo Client in Bazel��������������������������������������������������������������������������������� 146
Starting Up the Android Emulator Instance������������������������������������������������������������������������� 151
Bazel Mobile Install������������������������������������������������������������������������������������������������������������� 153
Adding gRPC Support���������������������������������������������������������������������������������������������������������������� 155
Running the Android Client Against the Backend���������������������������������������������������������������������� 160
Final Word��������������������������������������������������������������������������������������������������������������������������������� 162

vi
Table of Contents

Chapter 10: Bazel and iOS������������������������������������������������������������������������������������ 165


Setup����������������������������������������������������������������������������������������������������������������������������������������� 165
Workspace�������������������������������������������������������������������������������������������������������������������������������� 166
Creating the iOS Client in Bazel������������������������������������������������������������������������������������������������ 167
Building for iOS�������������������������������������������������������������������������������������������������������������������� 172
Running the iOS Client in the Xcode Simulator������������������������������������������������������������������������� 174
Executing the App on the Xcode Simulator������������������������������������������������������������������������� 177
Adding the gRPC to the iOS Application������������������������������������������������������������������������������������ 182
Final Word��������������������������������������������������������������������������������������������������������������������������������� 188

Index��������������������������������������������������������������������������������������������������������������������� 189

vii
About the Author
P.J. McNerney is a developer with over 20 years experience as a software engineer,
having worked for a variety of companies, including Google, DreamWorks Animation,
Insomniac Games, Goldman Sachs, and Major League Baseball. He lives in Colorado
with beloved wife, children, and their dogs.

ix
About the Technical Reviewer
Laurent LeBrun is a software engineer at Google in Munich. He has been working
with Bazel since 2011 and helped open-source it in 2015. He led the design and
implementation of Starlark, to provide an extension mechanism to Bazel.
In the past, he has worked on a contract basis with Microsoft using the F# language.
In his free time, he creates real time 3D animations as part of the demo scene.

xi
CHAPTER 1

Introduction
Welcome to the world of Bazel!
In case you haven’t heard about it, Bazel is the open source version of the build
system used at Google (Alphabet). To give a sense of scale, Bazel was designed to solve
some of the core problems of building at Google, namely, having to build literally
millions of lines of code across a multitude of languages, efficiently and correctly, for
multiple platforms (e.g., server, mobile, desktop) and different hardware architectures.
While the build system was initially internal to Google, it was released to open source
a few years ago. Since that time, it has continued to evolve into a high-performance,
powerful, yet simple build system for production-level needs.

What This Book Is


Beginning Bazel is meant as a gentle and practical introduction into using the Bazel build
system. As you progress through the book, you will learn the basics of Bazel through a
series of targeted examples.
These examples are aimed at teaching the core concepts and constructs of Bazel,
including how to set up some basic build targets, construct and cultivate your workspace
to pull in new language rules, and easily build both command line and mobile
applications within the same project across multiple languages.
Through the course of this book, you will build examples in various languages, tying
them together in a cohesive fashion and generating working binaries that could run on a
server and on mobile (with examples covering both Android and iOS).

What This Book Is Not


Beginning Bazel is not a comprehensive reference manual. While you will learn some of
the core commands for Bazel, there are many options and avenues that are not covered

1
© P.J. McNerney 2020
P.J. McNerney, Beginning Bazel, https://doi.org/10.1007/978-1-4842-5194-2_1
Chapter 1 Introduction

in this book (perhaps a future sequel will explore some of the areas). Fortunately, Bazel’s
documentation is excellent: https://docs.bazel.build. This has the information on
latest and greatest advancements happening for Bazel.
Also, while Bazel is able to build most languages, this text only covers a very small
fraction of them. Fortunately, the patterns that you will learn in this book are applicable
across most of the languages that you are likely to encounter and use with Bazel.
New language rules are popping up all the time, so it is worthwhile to check out the
main GitHub organization at https://github.com/bazelbuild. Additionally, Awesome
Bazel (www.awesomebazel.com) is a great site for a curated set of Bazel rules and very
worthwhile to check out to see some fun new possibilities for the language.

Features of Bazel
One of the chief goals of Bazel is to make sure that your builds are hermetic, that is,
that the build dependencies (including both dependent libraries and build tools) are
well known and independent of anything that may or may not be installed on any given
machine. Ideally, any build can be reproduced using only the tools within the given
project’s workspace.
To this end, Bazel takes special care to ensure that you are explicitly specifying all
of your dependencies and eschewing any “magic” in creating your build. Some might
object that this is removing a degree of convenience. However, in reality this explicit
specification allows both Bazel and the user to reason intelligently about the builds and
provide tools to help diagnose and fix issues as they occur.
Bazel has many features that make it attractive as a build system:
• High-level, extensible build language

• Explicit dependency management

• Advanced visibility rules

• Explicit workspace management

• Remote build execution and caching

• Build dependency analysis

• Fast, correct builds

2
Chapter 1 Introduction

High-Level Build Language


Bazel provides a very simple yet powerful set of constructs. These include (but are not
limited to)

• Commands (such as build and test)

• Rules (e.g., for handling different languages)

• Packages (to collate a set of rules and dependencies together)

• Workspaces (to define the working files, outputs, and dependencies


of your project)

Additionally, Starlark (formerly Skylark) is Bazel’s build language (inspired by


Python). Starlark can further extend Bazel to create new language rules, macros to assist
in development, and so on.

Explicit Dependency Management


As previously mentioned, Bazel requires explicit dependency declaration. There is no
proverbial “free lunch” with Bazel as it favors being explicit over any kind of implicit
“magic” (e.g., the location of the header files in C++). When creating a build target (e.g., a
library), you are required to specify each of the files (or some directive collating all of the
files); if you don’t specify it, Bazel will not see it.
Additionally, as you depend upon other targets (e.g., another library), this
dependency must be defined explicitly; otherwise, your build will likely fail. In the limit,
this explicit declaration of dependencies from one target to another forms a directed
dependency graph.
Finally, the directed dependency graph in Bazel is and always must be a directed
acyclic graph. That is, there are no cycles allowed within a Bazel dependency graph. This
is important when attempting to create coherent builds, since cycles in the build tree
imply the need for some kind of heuristic to break the cycle (or let the cycle break the
build). Attempting to create a cycle within a dependency graph and then build against it
will immediately cause Bazel to break the build and warn you of the error.

3
Chapter 1 Introduction

Advanced Visibility Features


One of the best features of Bazel is the ability to limit the visibility of your packages
and targets. That is, you can effectively reduce the scope of what packages can actually
depend upon your build targets. While similar features exist in languages like Java (i.e.,
package visibility) and C++ (i.e., namespaces), Bazel creates the ability to constrain
visibility of dependencies to any language.

Explicit Workspace Management


Similar to dependency graph management, Bazel also gives you the ability to fully
specify the dependencies of your workspace on any other dependencies, including
external repos. This gives you the ability to pull in code, files, and so on from other
sources, often through specific versions of the external dependencies. This helps provide
guarantees of correctness while still giving you flexibility.

Remote Build Execution and Caching


Although Bazel executes locally by default, Bazel also allows you to set up a distributed
build system with intelligent caching. This capability is incredibly useful for speeding up
individual builds as well as helping to accelerate development across an entire team.

Build Dependency Analysis


Another powerful feature is the ability to analyze a build target’s dependencies. For
anyone who has ever tried to introspect into a build product and asked, “How did that
get in there?” Bazel’s ability to understand a build target’s dependency graph will come
as a welcome tool. This is incredibly useful for simplifying dependencies, optimization,
and so on.

Fast, Correct Builds (and Tests)


While all the other features are grand in their own right, together they help to provide the
most important feature of all for Bazel: efficient and reliable builds (and, consequently,
tests). At the end of the day, the purpose of a build system is to transform code and data
into working applications in a speedy and correct fashion.

4
Chapter 1 Introduction

Bazel utilizes its many features to create a coherent and optimized method of
building products. In addition, it has an intelligent caching system to ensure that
rebuilding (since development is mostly all about rebuilding) is quick and correct, with
little need for cleaning.
When all is said and done, the best feature of Bazel is that it works quickly, simply,
and correctly. You can put together a simple Bazel project, execute it, and then easily
extend it over time.

Who This Book Is For (and Possibly Not For)


Beginning Bazel is aimed at introducing Bazel to everyone. The degree of utility you get
out of Bazel, however, will largely be determined by what kinds of problems you are
trying to solve.
As indicated at the beginning of this chapter, Bazel was originally designed to solve
the problems around efficiently and correctly building a massive code base for multiple
languages, platforms, and architectures. However, Bazel also scales really nicely, from
the simplest application to a full-stack set of microservices and mobile applications.
Indeed, Bazel may be most useful if you…

• …are starting from scratch and want a build system that is going to
scale with your needs

• …want to coherently build and depend upon multiple languages

• …want out-of-the-box support for defining and running tests


• …want to easily build against multiple architectures

• …want intelligent caching of build products

• …want deterministic outputs every time you build

• …want a production-level build system

• …are willing to operate within the boundaries of Bazel

This last point may seem a bit strange; however, Bazel is an opinionated build
system. In order to ensure the guarantees of speed and correctness, it will actively
prevent you from doing counterproductive things (e.g., circular build dependencies).
Additionally, Bazel operates best when it is the primary build system. While it can work

5
Exploring the Variety of Random
Documents with Different Content
Infirmary, always taking the operations there in difficult cases, part
of every day had to be spent at it. Early in the morning he saw
patients at home, twice a week gratuitously; at a quarter to ten he
went out, and between that time and three o'clock paid his round of
calls and visited the Infirmary. At three he was at home to receive
patients again; at six he dined; and it very rarely happened that he
had not second visits to pay afterwards. Of course this usual routine
of duty was often varied; visits at a distance had to be paid,
necessitating post-horses to his close carriage, if no rail conducted to
the place; patients hovering between life and death must be seen
oftener than once or twice in the day, perhaps in the night; and
sometimes a terrible case of accident would be brought into the
Infirmary, demanding the utmost skill that the most perfect operator
could give. In those cases of accident it was Dr. Davenal who was
sent for by the house-surgeon; none other of the visiting surgeons
were so sure as he: and Dr. Davenal, though he had a whole dining-
room full of patients waiting their turn to go in to him, guinea in
hand, abandoned them all, and strode away to the Infirmary with his
fleetest step.

The dining-room was on the left of the entrance-hall: it wan of


large proportions. Opposite to it, on the right, was a much smaller
apartment, called by way of distinction "Dr. Davenal's room." It was
in this last the doctor saw his patients, who would go into it from the
dining-room, one by one, each in his turn. The two rooms looked to
the front, on either side the door, and the window in each was very
large. They were not bay windows, but were divided into three
compartments, all of which might be opened separately. Dwarf
Venetian blinds were carried up to the first pane in both windows,
for the house was not sufficiently removed from the street to
prevent curious passers-by from gazing in. Behind the doctor's room
was another room, opening from it, the windows of which looked on
the evergreens skirting the very narrow path that ran between the
side of the house and the railings bordering the lane: a path so
narrow that nobody was supposed ever to go down it. This second
room was Dr. Davenal's bedchamber, used by him as such ever since
the death of his wife. At the back of this chamber was another
apartment, partially partitioned into two, one portion being used as a
butler's pantry, the other as Neal's sleeping-closet, which looked to
the garden at the rear of the house.

Neal had an uncommon partiality for that pantry, and would be in


it all hours of the day or night, though it was never meant that he
should sit in it. It was to all intents and purposes a pantry only, and
a very scantily lighted one. It had a high window of four square
panes, looking dead on the evergreens, very dense just there, and
on nothing else. There was a door by its side, opening on the
evergreens also; and one with a slim figure--as slim as Neal's, for
instance--could go out at that door if so disposed, and entwine
himself along the narrow path, braving the shrubs, past the windows
of Dr. Davenal's bedchamber, and emerge in front of the house. It
was not at all, however, in Neal's stipulated duties to do so. Quite
the contrary. When Neal entered Dr. Davenal's service, he was
expressly ordered to keep that pantry door always fastened. It was
impressed upon him by Miss Davenal that there was no necessity
ever to unlock it: his plate was there, she observed, and light-
fingered beggars frequented Hallingham, as they frequent most
other places.

On the opposite side, behind the dining-room, was the prettiest


apartment in the house. It was called the garden-parlour, and
opened to the garden at the back by means of glass doors. The
state drawing-room was above, over the hall and dining-room, and
the kitchens were downstairs.

Davenal's room was scantily furnished. A shabby Kidderminster


carpet, a square table, some horsehair chairs, and a writing-desk.
Nothing else, except some books ranged round the walls, and a
plaster bust or two. On the table, which was covered with a green-
baize cloth bordered with yellow, lay some writing and blotting paper
by the side of a large inkstand, and the desk was underneath the
table on the carpet. It was the doctor's habit to keep the desk there;
he could not have told why. If he required to open it, which was very
seldom--for he never used it for writing on--he would lift it to the
table and put it back when he had done with it. Some of his patients
sitting at the table waiting for the doctor to come in, or enlarging on
their complaints as he sat before them, had surreptitiously used it as
a footstool, and the result was a considerably scratched surface of
the polished mahogany; but Dr. Davenal did not move it from its
abiding-place.

Tilting himself on a chair, in a fashion that threatened an


overthrow backwards, with his feet on the edge of this very desk,
sat a young man, carelessly humming a popular song. You heard
Neal tell his master he was there--Mr. Cray. His face was a
sufficiently pleasing one, its complexion fair, its eyes a light blue. It
was not a remarkable face in anyway; might have been a somewhat
insipid one, but for these same blue eyes that lighted it up, and a
gay smile that was ever ready on it. All that Mr. Cray appeared likely
to be remarkable for as yet, was a habit of pushing his hair back--
rather light hair, of a shade between brown and flaxen, and he
pushed it off his forehead inveterately, at all times and seasons. But
what with the blue eyes, the winning smile, and a very taking voice
and manner, he was beginning to win his way in Hallingham. Dr.
Davenal was glad that it should be so. He had taken this young man,
Marcus Cray, by the hand, had made him his partner, and he desired
nothing better than that he should win his way.

But to win a way in a town is one thing; to win hearts in it is


another; and Dr. Davenal was certainly not prepared to hear, as he
was about to do, that Mr. Cray had gained one particular heart, and
had come then to ask his, Dr. Davenal's, approbation to his having
done it.

Neal threw open the door of this room for his master, bowed him
in with the air of a groom of the chambers, and Mr. Cray started
from his tilting position to find his feet. As they stood together his
height was somewhat under the doctor's, and his only reached the
middle height.

"Is it you, Mark?" said the doctor, quietly, rather surprised that he
should be there at that hour of the day; for Mr. Cray's routine of
duties did not lie at the house of Dr. Davenal. "Any bad report for
me?"

Mr. Cray had no bad report. He entered upon a different sort of


report, speaking rapidly, but not in the least agitatedly. He wanted
the doctor's consent to his marriage with Miss Caroline Davenal.
Perhaps it was the knowledge that they must so soon be interrupted
by three o'clock and the doctor's country patients, that prompted Mr.
Cray to enter upon the subject at that not over-seasonable hour.
There would be less time for the doctor's objections, he may have
deemed--not that Mr. Cray was one to anticipate objections to any
project he set his fancy on, or to pay much attention to them if they
came.

Dr. Davenal stood against the wall near the window, looking very
grave in his surprise and, it may be said, vexation. He had never
dreamt of this. Mr. Cray had certainly been intimate with his family;
many an evening when the doctor had been out professionally, Mr.
Cray had spent with them; but he had never given a thought to
anything of this sort arising from it. His connection with Mr. Cray was
a professional connection, and perhaps that fact had blinded his
eyes and kept his thoughts from glancing to the possibility that
anything different might supervene.

"You look grave, Dr. Davenal," said Mr. Cray, breaking the silence,
and retaining, in a remarkable degree, his self-possession.

"Yes," replied the doctor, "for Caroline's sake. Mark, I believe I had
cherished more ambitious dreams for her."

"Ambitious dreams!" repeated Mr. Cray. "She will at least occupy a


position as good as yours, sir."
"As good as mine!" echoed the doctor. "But when, Mark?--when?"
he added after a pause.

"In time."

"Ay--in time. There it is. How long must you wait for it?"

"We shall rub on until then, doctor. As others do."

"Mark, I do not think Caroline is one to rub on, as you call it, so
smoothly as some might, unless fortune is smooth about her.
Remember what your income is."

"It is two hundred a-year," said Mark, pushing his hair from his
brow, and speaking with as much equanimity as though he had said
two thousand. "But I thought perhaps you might be induced to
increase it--for her sake."

Dr. Davenal pulled open the green Venetian blind and threw the
window higher up, as if the air of the room were growing too hot for
him. It was the window--or rather the compartment of it--nearest to
the lane, and the doctor was fond of keeping it a little raised.
Summer and winter would the passers-by see that window raised
behind the green staves of the blind.

"Were I to double your income, Mark, and make it four hundred a-


year--a thing which you have no right to expect me to do at present,
or to ask me to do--it would still be an inadequate income for
Caroline Davenal," resumed the doctor, closing the blind again, and
setting his back against it. "I don't believe--it is my opinion, Mark,
and I only give it you as such--that she is one to make the best of a
small income, or to be happy on it."

Mr. Cray had caught up one of the doctor's pens, and stood
opposite to him picking the feather-end of it off bit by bit. His
attitude was a careless one, and his eyes were bent upon the pen,
as if to pick those pieces off and litter the carpet were of more
consequence than looking at Dr. Davenal. Mr. Cray was inclined to be
easy over most things, to take life coolly, and he was
characteristically easy over this.

"Four hundred a-year is not so small an income," he observed.

"That depends," said Dr. Davenal. "Incomes are large or small in


comparison; in accordance with the requirements, the habits, the
notions if you will, of those who have to live upon them. Caroline
has enjoyed the advantages derivable from one amounting to three
times four."

"She may come into that fortune yet," said Mr. Cray.

The first gleam of real displeasure shone now in the eyes of the
doctor as he threw them searchingly on his partner. "Have you been
counting upon that?--Is it the inducement which has called forth this
proposal?"

"No," burst forth Mr. Cray, feeling vexed in his turn and speaking
impulsively, as he flung the dilapidated pen back in the inkstand and
drew nearer the doctor. "I declare that I never thought of the money
or the suit; it did not so much as cross my mind; and were Carine
never to have a penny-piece to the end of her life, it would make no
difference. It is her I want; not money."

Dr. Davenal drew in his lips. "Carine!" They must have become
tolerably intimate for him familiarly to call her that. "Pretty Carine"
was her fond name in the household.

"It was Caroline herself who spoke of the money," resumed Mark
Cray. "We were consulting together as to how far my two hundred a-
year would keep us, and she remembered the Chancery suit. 'Mark,'
she said, 'that fortune may come to me, and then we should have no
care.' It was not I who thought of it, Dr. Davenal. And I am sure I
don't count upon it: Caroline herself would be wise not to do so.
Chancery suits generally absorb the oyster and leave the shell for
the claimants."

"You have spoken to Caroline, then?" questioned Dr. Davenal.

Mark pushed off his hair again. "O dear yes."

"May I ask when?"

"Well--I don't know," answered Mr. Cray, after considering the


point. "I have been--I have been"--

"What?" cried Dr. Davenal, surprised at the unusual hesitation,


"Speak out, Mark."

"I was going to say I have been making love to her ever so long,"
continued Mark, with a laugh. "In fact, sir, we have understood each
other for some time past; but as to the precise period that I actually
spoke out to her by words, I am not sure when it was."

The contrast between the two men was observable in the silence
that ensued. Dr. Davenal grave, absorbed, full of thought and care;
Mr. Cray self-satisfied, looking as if neither thought nor care had ever
come to him, or could come. He lightly watched the passers-by in
the street, over the Venetian blind of the middle window, nodding
and smiling to any acquaintances that happened to appear. Mr. Cray
had made up his mind to marry Miss Caroline Davenal, and it was
entirely out of his creed to suppose that any insurmountable
objection could supervene.

"Mark," said Dr. Davenal, interrupting the gentleman as he was


flourishing his hand to somebody, "you must be aware that
circumstances render it imperative upon me to be more than
commonly watchful over the interests of Caroline."

"Do you think so? But, Dr. Davenal, I would be sure to make her
happy. I would spend my life in it: none would make her as happy as
I."

"How do you know that?" asked Dr. Davenal.

A smile hovered on the young surgeon's lips. "Because she cares


for me, sir; and for none other in the wide world."

"I had thought--I had thought that another cared for her,"
returned Dr. Davenal, speaking impulsively. "At least, a doubt of it
has sometimes crossed me."

Mark Cray opened his eyes widely in his astonishment. "Who?" he


asked.

But Dr. Davenal did not satisfy him: not that he had any particular
motive for observing reticence on the point. "It is of no
consequence. I must have been mistaken," was all he said.

"You will not forbid her to me, sir?" pleaded Mr. Cray.

A spasm of pain passed across the face of Dr. Davenal; the words
had called up bitter recollections.

"So long as I live I shall never forbid a marriage to any over whom
I hold control," he said, in a tone of subdued anguish; and Mark
Cray knew where the sting had pointed, and wished in his good-
nature he had not put the question. "I will urge all reflection,
caution, prudence in my power to urge; but I will not forbid. Least of
all have I a right to do so by Caroline."

The younger man's face lighted up. "Then you will give her to me,
Dr. Davenal?"

"I give you no promise," was the doctor's answer. "I must have
leisure to reflect on this; it has taken me entirely by surprise. And I
must speak to Caroline. There's plenty of time. To marry yet would
indeed be premature."
"Premature!" echoed Mr. Cray.

"Premature in the extreme. A man who does not know how to


wait for good things, Mark, does not deserve them."

A lady, with a slow walk and pale face, turned in at the front gate.
It was patient the first. Dr. Davenal made no observation; he
scarcely saw her, so deeply had he plunged into thought. Mr. Cray,
who stood closer to the window than a doctor expecting patients
generally does stand, smiled and bowed.

"It is Mrs. Scott," he observed, as the knocker sounded. "She


looks very ill today."

Attentive Neal was heard to come forth instantly from his pantry,
open the door, and show the lady into the dining-room. Then he
made his appearance in his master's room.

"Mrs. Scott, sir!"

Instead of the "Show her in," as Neal expected, Dr. Davenal


merely nodded. Mr. Cray made a movement to depart, glancing as
he did so, at the very grave face of his senior partner.

"I have vexed you, sir!"

"I feel vexed in this first moment, Mark; I can't deny it," was the
candid answer. "It is not altogether that Caroline might have been
expected to do better; it is not exclusively that I think her peculiarly
unfitted for a making-shift life, or that with regard to her I feel my
responsibility is weighty: but it is a mixture of all three."

"You consider, perhaps, I have done wrong to ask for her!"

"I consider you have done wrong to ask for her so prematurely. In
your place, I think I should have waited a little while, until
circumstances had been more propitious."
"And perhaps have lost Caroline!"

"Nay," said the doctor; "a girl that cannot wait, and be true while
she waits, is not worth a brass button."

He quitted the room as he spoke. At the risk of keeping his


patients waiting, he must find and question Caroline. His mind was
not at ease.

Mr. Cray went out at the hall-door. Before Neal, who was on the
alert, had shut it, a carriage drove up to the gate, and stopped with
a clatter. A well-appointed close carriage, its servants in claret-
coloured livery, and its claret-coloured panels bearing the insignia of
England's baronetage--the bloody hand.

The footman leaped down for his orders. Mr. Cray, stepping across
the lawn, in too much haste to wind round it by means of the gravel-
path, held out his hand with a smile to its only inmate--a little, grey,
nervous-looking woman, in an old-fashioned purple silk dress.

"How are you today, Lady Oswald?"

And Neal, with his quiet, cat-like steps, had followed in the wake
of Mr. Cray, unseen by that gentleman, and stood behind him in his
respectful attention: there might be some message to carry in to his
master--leaving three patients, who had entered the gate together,
to show themselves in alone.

CHAPTER II.

LADY OSWALD'S LETTER.


The room at the back, looking into the garden, on the opposite
side of the passage to Neal's pantry, was the most charming
apartment in all the house. Not for its grandeur; it was small and
very simple indeed, compared to the grand drawing-room upstairs:
not for its orderly neatness, for it was usually in a litter; a
fascinating, pleasant-looking litter; and perhaps that made its charm.
It was called the garden-parlour. The great drawing-room was kept
sacred by its presiding mistress, to whom you will soon have the
honour of an introduction: sacred, and uncomfortably tidy. Not so
much as a pocket-handkerchief must be laid for an instant on one of
its handsome tables, its luxurious satin sofas and ottomans; not a
footstool must be drawn from its appointed place, let tired legs be
hanging down with weariness; not a hand-screen must be removed
from the handsomely-furnished mantelpiece, were lovely cheeks
being roasted to crimson. Methodically proper, everything in its
appointed spot, must that room be kept: a book put down in the
wrong place was treason; a speck of dust all but warning to Jessy,
the unhappy housemaid. The dining-room was tidy, too; no
extraneous things were allowed there, it must be kept free for the
reception of the patients: the "Times" newspaper and the newest
local journal lay daily on the large mahogany table, and there the
litter ended. Perhaps, therefore, it was no wonder that that other
room was not always in the order it might have been.

A charming room, nevertheless, on a sunny day. Watercoloured


drawings and pencil sketches in plain frames lined the delicately-
papered walls, loose music was strewed near the piano and harp,
books lay anywhere, pretty little ornamental trifles met the eye, and
fancy-work might be seen in more places than one. The glass doors
at the window, large and high, stood open to the few wide steps
that led to the green lawn--a lawn particularly grateful on a sultry
summer's day.
For that lawn lay in the shade; the sun in the afternoon shone full
on the front of the house, and the lawn was sheltered. The scent of
the roses, the syringa, the heliotrope, and other powerfully-
perfumed flowers, filled the air, and butterflies and bees flitted from
blossom to blossom. It was quite a contrast to the other side of the
house, with its busy street, its hot pavement, its jostling traversers,
and its garish sunshine. Here lay the cool shade on the mossy lawn--
the quiet and the repose of the tinted flowers.

Seated on the lawn, on a garden-bench, was a young lady


reading. A graceful girl of middle height, with large hazel eyes quite
luminous in their brightness, a well-formed gentle face, rather pale,
and brown hair that took almost a golden tinge when the sun shone
through it. There was no very great beauty to boast of in the face,
but it was one of those that the eye likes to rest upon--and love. A
far more beautiful face was that of another young girl, who was
restlessly moving amidst the side clusters of shrubs and flowers,
plucking the choicest. A face whose beauty could not be denied,
with its dark violet eyes, its nearly black hair, and the damask
complexion all too bright: these strangely brilliant complexions do
not always go with the soundest of constitutions. She was little,
fairy-like, somewhat pettish and wilful in her movements. A stranger
would say they were sisters, and be puzzled to tell which of the two
was the elder, which the younger. There was really no likeness
between them, save in the dress--that was precisely similar: a thin
gauzy silken material, cool but rich, and no doubt expensive, with a
good deal of delicate coloured trimming upon it, and open sleeves
over white lace. Sisters they were not--only cousins.

Suddenly there was a scream from the midst of the flowers, and
the young lady on the garden-bench raised her eyes to speak.

"What is it, Caroline?"

She came forth in her beauty, flinging down the flowers she had
gathered, and holding out the back of her hand. A deep scratch lay
right across it.

"Just look! I am always tearing myself with those wild-rose


brambles!"

"Poor hand! Sit still, Carine; it is too hot for anything else today.
What do you want with the flowers, that you need trouble yourself
to get them?"

"I don't know what I want with them. Nothing. Picking them
helped to pass away the time."

"Why are you so restless this afternoon!"

"Am I restless? One can't be always as quiet as you--read, read,


read for ever."

An amused smile parted the reader's lips, bringing to view the


pretty teeth, so white and regular. "I will retort in nearly your own
words, Carine--am I quiet? I think not."

"Yes you are, except when the boys are at home. You are noisy
enough then. I shall go and eat some fruit."

"Lend me your pencil first, Caroline."

Miss Caroline Davenal put her hand into her pocket and could not
find her pencil. "I must have left it somewhere indoors," she said.
"You'll see it if you look."

"I must mark a passage here."

"What will Mr. Oswald Cray say to your marking his book?"

"Mr. Oswald Cray asked me to mark anything that struck me. It is


a delightful book."
Caroline Davenal went joyously down the garden, singing a snatch
of a song, as she put her handkerchief over her head to guard it
from the sun. The upper half of the long piece of ground was all
pleasure and flowers; the lower half all usefulness, vegetables and
fruit-trees. Her cousin, book in hand, went up the steps and in at the
glass doors to find a pencil. She was bending over the centre table,
searching for one, when Dr. Davanel entered the room.

"Is Caroline here?"

"She is in the garden, papa."

Dr. Davenal advanced to the window, and stood at it, ostensibly


looking for Caroline. He could not see her; the fruit-trees in the
distance had effectually hidden her, and the doctor appeared lost in
thought. Presently he spoke, without looking round.

"Sara, did you know that--that--in short, have you ever observed
that an attachment was arising between Mr. Cray and Caroline?"

Sara looked up, but did not at once reply. The question was one,
put from a father to a daughter, that brought up the blushes on her
cheeks in her maiden modesty.

"N--o," she replied, at length. But the no, in its hesitation,


sounded almost as much like yes.

"My dear, I did not ask you to deceive me," was the grave answer;
"I ask for the truth."

"O papa, you know--you know I would not deceive you," she
replied, quite in distress. And Dr. Davenal, pained by the tone, drew
her to him and kissed her cheek. He knew how good, how loving,
how dutiful, was this daughter of his.

"The real truth is this, papa. Very recently, only since a day or two,
a faint suspicion has arisen in my mind that it might be so. Caroline
has not spoken, and I have had nothing to guide me to it, except
the fact that Mr. Cray is so much here. Indeed, I do not know
whether it is so or not."

"I believe I have been a little blind," observed Dr. Davenal


speaking quite as much to himself as to his daughter. "The fact is,
Sara, I had a notion in my head that some one else had taken a
fancy to Caroline; and I suppose I could see nothing beyond it. I
speak of Mr. Oswald Cray."

It was well that Dr. Davenal's eyes were fixed on the garden, or he
might have wondered at the startled change in his daughter's face.
It had turned of one glowing crimson. She moved again to the table,
and stood there with her back to the light.

"I suppose I was mistaken; that there was nothing in it, Sara?"

"Nothing, papa, I think; nothing whatever," came the low-toned


answer.

"But Mr. Oswald Cray does come here a great deal when he is at
Hallingham?" pursued the doctor, as if willing to debate the question.

The crimson grew deeper. Dr. Davenal did not seem to observe
that there was no answer.

"How the idea came to arise, I do not understand. Heaven knows


I should be the last man in the world to scheme and plan out
marriages--for Caroline or for anybody else. Such matters are best
left to come about of themselves. But, Sara, I wish one thing--that it
had been Mr. Oswald Cray, instead of Mark."

"Do you, papa?" with the blushing face still turned from him.

"Ay, I do. I could have trusted her to Oswald. How could she
choose the other in preference to him?"
Sara lifted her face. Eager words were on her lips--to the effect
that perhaps Mr. Oswald Cray might not have chosen Caroline. But
they died away unspoken.

"I wish you would go and tell her I want her here, Sara."

Sara slipped by the doctor, passed over the cool lawn to the
distant sunny paths, and met her cousin.

"Papa wants you, Carine."

Caroline recoiled in her self-conscious timidity. "What about?" she


whispered. "Did he say what about?"

"I think," said Sara slowly, scarcely knowing whether she was
doing right to speak or not, "that it is something about Mr. Cray."

For a moment Caroline made no rejoinder. She walked on and had


nearly gained the lawn when she turned her head again. Sara had
lingered behind.

"Sara! Sara! Did he seem angry?" she whispered.

"Not exactly angry. Vexed, I thought."

Dr. Davenal stood at the glass doors still. He put out his hand as
she approached him.

"Did you want me, Uncle Richard?"

"Mr. Cray has been making an application to me concerning you.


Caroline, were you cognisant of it?"

"Now, Uncle Richard! If you are going to be cross, I--I shall be so


unhappy."

"When did you ever know me cross?" he gravely rejoined, and


Caroline Davenal burst into tears.
"Caroline, my dear, we must put away this childishness. You are
but affecting it, and this is a serious moment. I must talk to you very
earnestly. Come in, Sara. It is cooler indoors than out."

Sara, who in her delicacy of feeling would have remained outside,


went within the room and sat down to the table with her book.
Caroline had dried her passing tears, and was stealing a glance at
Dr. Davenal.

"You are angry, Uncle Richard."

"If I am, Caroline, it is for your sake; a loving anger. My chief


emotion, I believe, is surprise. I never gave a thought to this; not a
suspicion of it crossed me."

"I fancied you must have guessed it," was the murmured answer.

"Guessed that! No, child. But the blindness was my own, I believe.
When we ourselves place one view deliberately before us, it tends to
shut out others. I had got it into my head, Carine, that it was to your
score we were indebted for the frequent visits of Mr. Oswald Cray."

Caroline lifted her face, and Dr. Davenal observed how genuine
was the surprise depicted on it. "Uncle Richard!"

"I see. I see now, child, that the idea was void of foundation. But,
Caroline," he gravely added, "I would rather it had been Oswald
than Mark. All the world must respect Oswald Cray."

"I should think it was void of foundation!" indignantly returned


Caroline, resenting the disparagement cast on Mark. "Why, Uncle
Richard, Oswald Cray likes Sara a thousand times better than he
likes me! But not with that sort of liking," she hastened to add, lest a
construction should be put upon the words which most certainly she
never meant to put. "General liking, I mean. Oswald Cray's heart is
buried in his ambition, in his busy life; he gives little thought to
aught else. Uncle Richard, I would not many Oswald Cray if he were
worth his weight in gold. He would find fault with me all day long."

"Well, well; let us drop Oswald Cray, and return to the point,
Caroline. If"----

"Lady Oswald, sir."

The interruption came from Neal. They had not heard him open
the door, and the announcement was the first intimation of his
presence. Of course all private conversation was at an end, and the
doctor half groaned as he turned to Lady Oswald. She came in, her
warm cashmere scarf drawn round her, and her purple gown held up
gracefully on the right side, after the style of walking in the
fashionable world in the days when Lady Oswald was young.

Lady Oswald was one of those imaginary invalids who give more
trouble to their medical attendants than a whole score of patients
with real maladies. Fussy and fidgety, she exacted constant
attendance from Dr. Davenal. She paid him well; but she worried
him nearly out of his life. On his leisure days, when he could really
afford the visit to her, and the quarter-of-an-hour's chat spent in
condoling with her upon her array of ailments and in giving her the
gossip of Hallingham, he spared the time with a good grace; but in a
season of pressure he did chafe at having to pay this daily visit,
when dying men were waiting for him. He had been with her that
morning between ten and eleven: Neal had said she called while he
was out; and now here she was again! Once or twice latterly he had
sent Mr. Cray in his stead, and she had not seemed to object to it.
But she had come for a different object now.

"Only two minutes' conversation with you, doctor," she said, in a


voice naturally feeble. "You must spare it me, though it is Tuesday
afternoon, and I see your dining-room's getting full. Neal said you
were here, so I came in straight, not to be confounded with the
patients. Only look at this letter which was delivered to me this
morning, and see what it must have been to my nerves. Parkins has
been giving me red lavender ever since."

"But you know, Lady Oswald, that I object to your taking red
lavender."

"What am I to do when a shock like that comes to me? Do read it,


doctor."

Dr. Davenal, feeling that he had no time for letters or nerves just
then, was yet compelled in good manners to accede. He opened the
note, which was a very short one, and ran his eyes over the
contents; once and then again; the first time he did not quite master
them.

It was written to Lady Oswald by her landlord, a gentleman of the


name of Low. It appeared that Mr. Low had some little time back
received an intimation from the railway company that they should
require to take a small portion of the grounds attached to the
residence occupied by Lady Oswald, for the purpose of erecting
certain sheds necessary at that bend of the line. This note was to
inform her that he had given his consent, and it ended with a polite
hope and belief that neither the sheds nor the process of their
erection would prove any annoyance to her.

Dr. Davenal folded the letter when read. Lady Oswald looked at
him. "What would you advise me to do?" she asked in a fretful tone.

"Indeed, Lady Oswald, I do not see what you can do," he


thoughtfully answered, "except submit to it."

"Submit to it! submit to their erecting railway sheds in my very


garden!" she ejaculated in astonishment.

"From the very first hour that I knew they were carrying that new
line of rail close to your grounds, I felt sure it would prove an
annoyance to you in some shape or other," observed Dr. Davenal,
speaking more to himself than to Lady Oswald. "It is a great pity, but
we all have to submit occasionally to these untoward things, Lady
Oswald, as we go through life."

"I shall not submit to this," she resolutely returned. "They have no
more right to erect sheds on my grounds, than they have to erect
them upon me. I shall forbid it."

"But the power to do so does not lie with you," objected Dr.
Davenal. "You are but a tenant on lease. In point of fact, I do not
suppose such power lies with any one, not even with Low himself.
The railway companies seem to do pretty much as they please in the
kingdom. Mr. Low will be sure to get well paid, and his consent,
according to the tenor of this note, is already given."

Lady Oswald pushed her grey hair nervously from her brow. "Dr.
Davenal, I don't believe that the law has power so to annoy innocent
people and drive them from their homes. Do you know how long I
have lived in that house?"

"A great many years now. Ever since the death of Sir John."

"I have lived in it fourteen years, and I will not be driven forth at
their pleasure. I expected to die in it, and I will die in it. If they
attempt to touch my grounds, I shall have them warned off as
trespassers, and I will keep a couple of policemen on the watch day
and night."

Dr. Davenal did not then dispute the policy of the avowed plan
with her, or point out its futility. In her present mood he knew it
would be useless, even if he had the time, to attempt it.

"Because I am a widow woman they think that they can put upon
me with impunity," she resumed; "but they will find their mistake. I
have telegraphed for Mr. Oswald Cray, and expect him down by
night-time."
"You have telegraphed for him?" cried Dr. Davenal.

"Of course I have. Who else is there to take my part, doctor, save
him or you? That letter was delivered just after you left me this
morning, and I seat to the telegraph at once. Oswald can fight
them; and he has influence: they will be clever to overreach him."

Dr. Davenal opened his mouth to speak, but suppressed the


impulsive words upon his tongue. To what end recall to Lady
Oswald's attention the fact that Mr. Oswald Cray, as one of the
engineers to the line, must necessarily be against her, if she had not
the sense to remember it? He said a few words to the effect that he
must go to his patients, gave Lady Oswald a half promise to see her
that night, and left her to be entertained by his daughter.

"My dear, why need Miss Carine have run away from me the
moment I came in?"

Sara smiled. "Not from you, Lady Oswald; I think she wanted to
run from us all. And perhaps she thought your visit was only to
papa."

"How is Miss Davenal?"

"Quite well. Will you see her? She is in the drawing-room."

Lady Oswald hesitated.

"My dear, of course I should be glad to see her; I wish to pay her
every respect; but--you know it is so great a trial to me--with my
little weak voice. However, I will go up, as I am here. Is her
deafness better?"

"Not at all," was Sara's answer. "I don't suppose it ever will be
better. It gets worse, we think, as she grows old."

"Grows what?" cried Lady Oswald.


Sara had quick perceptions, and she felt that the word old, as
applied to her aunt, had offended Lady Oswald's ear. How changed
do our ideas of age become as our own years change! To Sara
Davenal, with her twenty years, her aunt, verging on fifty, was old;
to Lady Oswald, who would count seventy-one her next birthday
Miss Davenal seemed but as a youngish woman!

Lady Oswald stepped slowly up the wide staircase, one foot at a


time. Sara followed her, and threw open the door of the handsome
drawing-room. A large square room, beautiful as a show place; and
to keep it beautiful was the hobby of Miss Bettina Davenal.

CHAPTER III.

MISS BETTINA DAVENAL.

Miss Davenal sat in her usual seat near the window, her straight
figure bolt upright, her knitting needles plying fast their work, the
small inlaid table at her right hand holding the open pearl basket of
wool. How many stockings, socks, sleeves, and chest-protectors,
were knitted by Miss Davenal in the course of the year, the poor
alone could tell--for they were the recipients. Hallingham surmised
that she must spend half her income upon wool. There's no doubt
she was a charitable well-meaning woman at heart, but she did not
always show it in her manner.

A beautiful woman in her day must have been Bettina Davenal,


with her pure complexion and her classical features. But the grey
eyes had a cold hard look in them now; and the nose, across the
high bridge of which the delicate skin was drawn so tightly, was
almost painfully thin. The name Bettina had been bestowed on her
at the request of a godmother, a lady of Italian origin; not an ugly
name, but somewhat long for the everyday use of English tongues,
and those familiar with her occasionally shortened it into "Miss Bett,"
a liberty that was resented by Miss Davenal. She laboured under that
troublesome defect, intense deafness, and also under the no less
troublesome conviction (not unfrequently accompanying it) that she
was not deaf at all. Her hair of a pale flaxen, soft and abundant still,
was worn in smooth braids, and was surmounted by a rich lace
head-dress, very high.

She need not have added to her height; she was tall enough
without it; as was seen when she rose to receive Lady Oswald. A
straight-down, thin, upright figure, without crinolines or cordings,
her grey damask dress falling in wrapt folds around her as she held
forth her mittened hand.

"I hope I see you better, Lady Oswald."

The tone was unnaturally high: you may have noticed that it is so
sometimes in deaf people. Lady Oswald, with her weak nerves,
would have put her hands to her ears had she done as she liked.

"I am not well today. I am worse than usual. I have had a most
unpleasant shock, Miss Davenal; an upset."

"A what?" cried Miss Davenal, putting her hand to her ear.

"An upset."

"Bless my heart!" cried Miss Davenal; "did your carriage run


away?"

"Tell her, Sara," groaned Lady Oswald. "I shall be hoarse for two
days if I call out like this."
"Lady Oswald has had some unpleasant news, aunt. She has
received notice that they are going to run the railway through her
grounds."

Miss Davenal caught a word or so, and looked terrified. "Received


notice that they are going to run a railway through her! What do you
mean?"

"Not through her," said Sara, putting her lips close to the deaf
ears. "Through her grounds."

"But I'd not let them," cried Miss Davenal, hearing now. "I'd not
let them, Lady Oswald."

"I won't," screamed Lady Oswald at the top of her voice. "I have
sent for Mr. Oswald Cray."

Miss Davenal was dubious. "What good will that do? Is it to pelt
upon them? I hate those wicked railways."

"Is what to pelt upon them?"

"The clay. Didn't you say you had sent for some clay?"

"Oh dear! Sara, do make her understand."

Poor Sara had to do her best. "Not clay, Aunt Bettina; Mr. Oswald
Cray."

Aunt Bettina nodded her stately head. "I like Mr. Oswald Cray. He
is a favourite of mine, Lady Oswald."

"As he is of everybody's, Miss Davenal," returned Lady Oswald.


"I'd have remembered him in my will but for offending the Oswald
family. They are dreadfully prejudiced."

"Pinched!" echoed Miss Davenal. "Where's he pinched?"


"Prejudiced, Aunt Bettina. Lady Oswald says the Oswald family are
prejudiced."

"You need not roar out in that way, Sara; I can hear, I hope. I am
not so deaf as all that comes to. What's he prejudiced at?--the
railway? He ought not to be, he is one of its engineers."

"Not Mr. Oswald Cray, aunt. The Oswald family. They are
prejudiced against him."

"If you speak to me again in that manner, Sara I shall complain to


your papa. One would think you were calling out to somebody at the
top of the chimney. As if I and Lady Oswald did not know that the
Oswald family are prejudiced against Oswald Cray? We don't want
you to tell it us from a speaking-trumpet; we knew it before you
were born. I don't think he cares for their prejudices, Lady Oswald,"
Miss Davenal added, turning to her.

"He would be very foolish if he did. I don't. They are prejudiced,


you know, against me."

"I think the world must be coming to an end, with all these rails
and stations and sheds," fretfully spoke Miss Davenal.

"The news has made me ill," said Lady Oswald, who liked nothing
half so well as to speak of her own ailments. "I was getting better,
as Dr. Davenal can tell you, but this will throw me back for weeks.
My maid has been giving me red lavender ever since."

Miss Davenal looked at her with a puzzled stare.

"That is poison, is it not?"

"What is poison?"

"Red lead."
"I said red lavender," cried Lady Oswald. "It is very good for the
spirits: a few drops taken on a lump of sugar. Red lav-en-der."

Miss Davenal resolutely shook her head. "Nasty stuff!" she cried.
"Red lavender never did anybody good yet, Lady Oswald. Leave it
off; leave it off."

"I don't touch it once in a month in an ordinary way," screamed


Lady Oswald. "Only when anything beyond common arises to flurry
me."

Miss Bettina stared at her. "What common is flooded? It is dry


weather."

Lady Oswald cast a helpless look at Sara. "Flurried, Aunt Bettina,"


said the young lady. "Lady Oswald said when she was flurried."

Miss Bettina was not in the least grateful for the assistance. She
pushed away her niece with her elbow. It was in fact next to high
treason for Sara to attempt to assist Miss Davenal's deafness. "I
should not allow things to flurry me, Lady Oswald. I never was
flurried in my life."

"Temperaments are constituted differently," returned Lady Oswald.

"Temper!" cried Miss Davenal, as angrily as politeness would allow


her, "what has temper to do with it? Who accuses me of temper?"

"Tem-per-a-ment," corrected Lady Oswald, cracking her voice.


"Sara, I must go."

She rose quickly; she could not stand the interview any longer;
but in spite of the misapprehensions they took leave of each other
cordially. The same scene occurred every time they met: as it did
whenever conversation was attempted with Miss Davenal. It cannot
be denied that she heard better at times than at others, occasionally
tolerably well; and hence perhaps the source, or partially so, of her
own belief that her deafness was but of a slight nature. When alone
with the familiar family voices, and in quiet times, she could hear;
but in moments of surprise and excitement, in paying or receiving
visits, the ears were nearly hopeless.

Neal attended Lady Oswald to her carriage, waiting there at the


gate with its powdered coachman and footman, to the gratification
of the juvenile street Arabs of Hallingham; the same ever-assiduous,
superior servant, quite dignified in his respectability. Lady Oswald
believed him perfection--that there was not another such servant in
the world.

"Your mistress grows more distressingly deaf than ever, Neal," she
remarked, as he put her dress straight in the carriage, her own
footman resigning the office to him with almost the same submission
that he might have resigned it to Mr. Cray, had the young surgeon
been at hand to assist her in, as he had been to assist her out.

"She does, my lady. It is a great affliction. Home," loftily added


Neal to the servants: and he bowed low as the carriage drove away.

CHAPTER IV.

OSWALD CRAY.

The house of Lady Oswald was an old-fashioned red brick mansion


of moderate size, two storeys in height only, and with gable-ends. It
was exceedingly comfortable inside, and was surrounded by rather
extensive grounds. At the opposite end of the town to the station, it
might have been thought that that vulgar innovation, the railroad, so
especially obnoxious to Lady Oswald, would at least have spared it
offensive contact; but that was not to be. There was no accounting
for the curves and tracks taken by those lines of the junction, and
one of them had gone off at a tangent to skirt the very boundary of
her land.

Seated in the front drawing-room, the one chiefly used by Lady


Oswald, was a woman of some forty years, attired in a neat green-
coloured gown, and cap with white ribbons. This was Parkins, Lady
Oswald's maid, recently promoted to be somewhat of a companion,
for Lady Oswald began to dislike being much alone. A well-meaning
faithful woman, with weak eyes and weak will, and given to tears on
very slight occasions. Parkins had also been lately made
housekeeper as well as companion, and the weekly accounts
connected with that department threatened to be the bane of
Parkins's life. Add them up she could not; make them come right she
could not: and she could get neither mercy nor assistance from Lady
Oswald, who had always been her own account-keeper, and never
found any trouble in it. Two tradesmen's books were before Parkins
now, and she was bending over them in despair, during her lady's
absence.

"I can't as much as read the figures," she groaned; "how, then,
am I to add 'em up? Last week there was an overcharge of ten
shillings in this very butcher's book, and my lady found it out, and
hasn't done talking to me for it yet. It isn't my fault; all folks are not
born with a head for figures. And why can't tradespeople make their
figures plain?"

Had she not been so absorbed by the book and its complications
she might have seen the approach of a visitor. A tall and very
gentlemanly man of some eight-and-twenty years, with a
countenance that would have been remarkably frank and pleasing
but for the expression of pride pervading it: nay, that was frank and
pleasing in spite of the pride. He could not help the pride; it was
innate, born with him; he did not make his own face, and the lines
of pride were inherent in it. The pale features were regular, the hair
dark, the eyes dark blue, and lying rather deep in the head, good
and honest eyes they were, searching and truthful: and when he
smiled, as he was smiling now, it made full amends for deficiencies,
obliterating every trace of pride, and imparting a singular charm to
the face.

His approach had been discerned by one of the maid-servants,


and she had come to the hall-door and was holding it open. It was
at her he had smiled, for in manner he was exceedingly affable.
Perhaps the very consciousness of the pride that clung to him, and
was his besetting sin, rendered him resolute that in manner at least
he should not offend.

"How are you, Susan? Is Lady Oswald within?"

"No, sir, my lady's out," was the girl's reply, as she dropped a
curtsey. "Parkins is in the drawing-room, sir, I think: I daresay she
can tell whether my lady will be long."

He laid on the hall-table a small roll of paper or parchment that he


carried, threw off a dusty light overcoat, and took up the roll again.
Susan opened the drawing-room door.

"Mr. Oswald Cray."

Parkins gave a scream. Parkins was somewhat addicted to giving


screams when startled or surprised. Starting up from her chair and
her perplexing books, she stood staring at him, as if unable to take
in the fact of his presence. Parkins believed in marvels, and thought
one had been enacted then.

"Oh, sir! how did you come? You must have travelled surely on the
telegraph wires?"
"Not I," answered Mr. Oswald Cray, smiling at her astonishment,
but not understanding its cause. "I left London by rail this morning,
Parkins."

"A telegraph message went up for you an hour or two ago, sir,"
continued Parkins. "My lady has had bad news, sir, and she sent for
you."

"I had no message. I must have left London previously. What bad
news has she had?"

"It's them railway people, sir," explained Parkins. "They have been
writing a letter to my lady--leastways the landlord has--saying that
they are going to take these grounds and build upon them. I haven't
seen her so upset for a long while, sir. When, she got a bit better
from the shock and had sent to the telegraph, she ordered the
carriage, and set off to tell Dr. Davenal."

"Do you expect her to be long?" he asked, thinking that if so, he


might go about some business he had to do, and come back again.

"I expect her every minute, sir; she has been gone a great deal
longer than I thought she'd be away."

He walked to the window, unrolled the parchment, and began to


look at it. It seemed a sort of map, drawn with ink. Parkins, who,
whatever might be the companionship she was admitted to by her
mistress, knew her place better than to remain in the presence of
Mr. Oswald Cray, gathered up her account-book and her pen and ink,
and prepared to quit the room.

"Shall I order you any refreshment, sir?" she stopped to ask.

"Not any, thank you."

She closed the door, leaving him deep in his parchment. Another
minute, and the carriage was seen bowling quickly up. He went out

You might also like