rug-compling/alpinocorpus — comment on commit d118c8de40689c91a01d5d097f5127565f6ec318
File:  line 0
By danieldk:

Why is this necessary? Currently, the user of alpinocorpus needs to know nothing about the configuration state, and was explicitly designed to do so:

1. CorpusReader has a static method that uses the appropriate corpus reader, if available.
2. CorpusWriter has a static method that provides the requested corpus writer, if available.

Exposing configuration/compilation options is a step backward, primarily because it adds coupling:

- The user builds alpinocorpus with DBXML support.
- The user builds a program using alpinocorpus.
- The user rebuilds the library without DBXML support (for whatever reason), and replaces the library.

Suddenly, the program cannot link against the dynamically link against library anymore, since symbols disappeared. With the current setup, the program user will just get a warning that there is no DBXML support, if he/she attempts to use a DBXML file.