Module System

From Gambit wiki

(Difference between revisions)
Jump to: navigation, search
Pflanze (Talk | contribs)
(First version)
Newer edit →

Revision as of 23:44, 12 March 2008

This is a project to create a module system primarily for the Gambit Scheme system. It does not have a real name yet.

The system is meant complementary to the Snow! package system: unlike Snow!, this project does *not* focus on distribution, but instead it has the following objectives:

  • good interactive development capabilities (like runtime inspection and modification, included build system for the base case)
  • good code modularity features (parametrization, macros (hygiene, ..), and probably more)
  • generality (run code written in different language styles, to some extent in different module philosophies, interface with OO systems, host languages requiring translation like lazy variants of Scheme or maybe different languages like Arc or XSLT)
  • efficiency (employ cross-module inlining, parametrization specialization)
  • possibly achieve (partial) portability by moving parts into or building parts on top of the Snow framework (maybe not achieving the same level of integration with the host system, but at least make modules written by users portable to other Scheme systems)

The projects wants to deliver a base system usable for everyday use quickly, and explore the more advanced objectives in the longer term.

One essential part of the task involves getting to know the Gambit internals well enough to be able to embed the system well. Another essential one is laying a sound foundation especially for syntax handling (macros), considering the limited knowledge of the current contributors, this involves finding the right literature and people to query.

During a first phase, the project will draw from (and may for some time continue to develop in) the code bases of the chjmodule and the gambit-modules projects.


Google Sommer of Code

This project is attempting to participate in the Google Sommer of Code campaign and intends to accept one student as additional core contributor.

Personal tools