Giter Site home page Giter Site logo

klasc's Introduction

KLaSC: KLambda Spec Checker

KLaSC (pronounced "classy") is a compliance test suite for implementations of KLambda, the kernel Lisp upon which the Shen programming language is implemented.

The specification for KLambda is contained in the Official Shen Standard. Clarifications to the specification may be found on the KLambda page of the Shen Wiki.

Installing

After cloning the repository, use the following commands to install KLaSC's dependencies:

gem install bundler
bundle install

Running

The current version of KLaSC expects to interact with a Shen REPL. By default, it assumes that the command to launch a Shen REPL is shen. This can be overridden with the SHEN_COMMAND environment variable.

KLaSC is implemented with RSpec and does not yet have a wrapper script. To run it, simply run RSpec:

bundle exec rspec

Use the -fs argument to RSpec to produce documentation-style output instead of progress dots.

Disclaimer

The interpretation of the KLambda specification as tested by KLaSC is in the process of being vetted via discussions on the Shen Online News Group.

All of the tests pass on the Shen-CLisp port, but this does not necessarily mean that they all reflect required behavior. When in doubt, consult the news group.

Known Issues

The test driver is only working against Shen-Clisp. Shen-SBCL and ShenRuby both fail to connect properly. Fixing this is next on the list of things to do.

Roadmap

The following are the priority for near-term development:

  • Support for testing stand-alone KLambda implemenations outside of Shen.
    • This is intended primarily to aid KLambda implemenators who do not yet have an implemenation that is complete enough to run Shen.
  • Adding coverage of the remaining Klambda primitives
  • Full vetting and removal of the above disclaimer

License

KLaSC is Copyright (c) 2013 Greg Spurrier. It is released under the terms of the MIT License. See LICENSE.txt for the details.

klasc's People

Contributors

gregspurrier avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  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.