Outdated egg!
This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.
If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.
TOC »
Inclub
Description
The syntax form inclub is a convenience substitute for include for use in multi-file projects. When the program may be run either interpreted or compiled, and may be executed from outside its directory, possibly through a symlink, inclub handles the details of making sure the "inclubbed" files get loaded as intended.
In compiled code, inclub simply expands to include, meaning the inclubbed file will be compiled into the binary.
In interpreted code, inclub resolves any symlinks back to the directory the program resides in, and calls load on the inclubbed file in that directory.
Authors
- John J Foerch
Repository
The source can be obtained or browsed on github.
Requirements
API
- (inclub STRING)syntax
Examples
Basic Usage
To use inclub to load a file called "myfile.scm":
(use inclub) (inclub "myfile")
If myfile.scm contains a module called myfile, add this:
(import myfile)
If the project has multiple modules that need to import a module provided by an inclubbed file, the file should be inclubbed only in the main file; the other files can then import the module.
Acknowledgements
Thanks to Zbigniew for working out the basic mechanism, and also for proposing the name "inclub" — inclub: the brute force include.
License
BSD
Version History
- 0.1: (2012-01-01) initial release
- 0.2: (2012-05-11) trivial update