Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Hygienic Literate Programming for Chez Scheme
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
┌──────────────────────────────────┐ │ ChezWEB: A WEB system for Scheme │ └──────────────────────────────────┘ Copyright (c) 2012 Aaron W. Hsu <firstname.lastname@example.org>. ChezWEB is a system for doing Knuthian style WEB programming in Scheme, and more particularly, it is implemented in Chez Scheme. It has a number of novel features, and is designed to provide a level of integration with Scheme that is not to be found in other Literate Programming systems. In particular, it implements hygienic named sections that perserve hygiene and scoping in the presence of definitions and the like. I have provided the quickstart information first, and you can find the rest of the documentation further down. Installing ChezWEB from Source ────────────────────────────── The fastest way to install ChezWEB is to use the make file provided. There are a few constants defined at the top of the file, which you can change for your particular installation, but otherwise, it should be as easy as: $ make build install You should make sure you edit the constants to do what you want and to install everything where you want them installed. The makefile assumes that you already have a version of Chez Scheme installed. A more complete installation line might look like this: $ make build install \ PREFIX=<your_prefix> \ TEXDIR=... \ DOCDIR=... \ BINDIR=... \ LIBDIR=... You can learn more about these values by running the installit script without any arguments. There are three main components to the ChezWEB system. 1) ChezWEAVE and ChezTANGLE programs 2) chezwebmac.tex macros 3) Runtime library for independent use To get this all working, we have to execute three build scripts to link it all up, followed by one install script. bootstrap Bootstraps the ChezWEB system tangleit Tangles the actual ChezWEB programs weaveit Weaves the ChezWEB documentation installit Installs all the components Building ChezWEB without the compiler ───────────────────────────────────── If you only have Petite Chez Scheme, you can still use ChezWEB. There are two things to change. Firstly, build the system using the 'petite' target instead of the 'build' target. Secondly, make sure that your CHEZWEBHOME environment variable points to the LIBDIR that you specified. System Requirements ─────────────────── ChezWEB is tested on (Petite) Chez Scheme 8.4+, as it is built on R6RS and relies on certain features introduced after version 8.0. Earlier versions may run, but there is no guarantee, and you should really be using the latest version of Chez Scheme 8.x. If you want to actually do the weaving of the main ChezWEB document and get some reasonable output, which includes running the weaveit program, you will need to have a properly configured TeX Live installation with a working MetaPost. There have been some reports of misconfigured TeX Live installations which result in MetaPost not working, which will cause errors in the weaveit part of the build. You do not actually need to do this step if you just want to use the system, but you will not get the documentation. I recommend that you just make sure you have a working MetaPost. Documentation ───────────── A copy of the CWEB manual is included with this distribution. It provides a basic overview of how a system like this should normally work. It does not focus on ChezWEB specifically, which is a known problem that I hope to rectify soon. If there are any volunteers.... Contact/Support ─────────────── Please contact Aaron W. Hsu <email@example.com> if you have any questions about the system, or if you have patches to commit. I welcome any additions and contributions!