aarvid / sicl Goto Github PK
View Code? Open in Web Editor NEWThis project forked from robert-strandh/sicl
A fresh implementation of Common Lisp
This project forked from robert-strandh/sicl
A fresh implementation of Common Lisp
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.