Giter VIP home page Giter VIP logo

sicl's Introduction

Welcome to SICL.  It is meant to become a new implementation of Common
Lisp but with a difference.  For one thing, it is intentionally
divided into many implementation-independent modules that are written
in a totally or near-totally portable way, so as to allow other
implementations to incorporate these modules from SICL, rather than
having to maintain their own, perhaps implementation-specific
versions.  More information about this philosophy is available in the
Specification subdirectory. 

As of this writing, no module is completely implemented, but there are
many partial ones.  You will find them in the Code subdirectory.  We
would like to start by distributing some big chunks that could be
useful for people experimenting with new implementations, in
particular the FORMAT function, the LOOP macro, the READ function.

Each module M is organized so that the corresponding implementation
package (let's call it MP) uses the CL package except that it shadows
symbols from the CL package that it supplies itself, and also exports
at least those symbols.  Each module also has a corresponding test
package (let's call it TP) that uses the CL package, except for the
shadowed symbols of MP which are taken from MP  instead.  That way,
the code in TP can be structured so that it looks like it is testing
ordinary CL functionality, except that it is really testing
functionality of MP. 

If you are an implementor with an incomplete CL and you want to
incorporate some module from SICL into your implementation, or if you
have a complete CL implementation, but you want to replace an existing
module with the corresponding SICL module, you need to modify the
package definition of MP so that it doesn't shadow the symbols from
CL.  That way, the definitions of MP will just be added to your CL.

If you want to contribute to SICL, you would either start working on a
new module, or improve an existing one.  Each existing module has a
status.text file that describes what exists and what needs to be
done, how to run the tests etc.  If you want to start a new module, it
is best to copy the structures of existing modules.  

In the Specification subdirectory, there is a document that gives some
hints about the goals of the system, and how these goals are to be
achieved.  The subdirectory Ideas are for ideas that might have to be
examined more thoroughly before being decided upon.  

We have included a copy of the lisp-unit unit testing framework in the
Lisp-Unit subdirectory, and we added an ASDF system definition for it
so make it easier to test the SICL modules.  

sicl's People

Contributors

aarvid avatar bike avatar chkhd avatar drmeister avatar karlosz avatar kingcons avatar robert-strandh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.