All Projects → jscl-project → Jscl

jscl-project / Jscl

Licence: gpl-3.0
A Lisp-to-Javascript compiler bootstrapped from Common Lisp

Programming Languages

javascript
184084 projects - #8 most used programming language
lisp
113 projects

Labels

Projects that are alternatives of or similar to Jscl

Lyo
📦 Node.js to browser - The easy way
Stars: ✭ 624 (-9.3%)
Mutual labels:  compiler
Js of ocaml
Compiler from OCaml to Javascript.
Stars: ✭ 643 (-6.54%)
Mutual labels:  compiler
Tiny Compiler
A tiny evaluator and compiler of arithmetic expressions.
Stars: ✭ 680 (-1.16%)
Mutual labels:  compiler
Minic Hosting
A simple stack-based virtual machine that runs C in the browser.
Stars: ✭ 628 (-8.72%)
Mutual labels:  compiler
Cyclone
🌀 A brand-new compiler that allows practical application development using R7RS Scheme. We provide modern features and a stable system capable of generating fast native binaries.
Stars: ✭ 634 (-7.85%)
Mutual labels:  compiler
Gocaml
🐫 Practical statically typed functional programming language implementation with Go and LLVM
Stars: ✭ 653 (-5.09%)
Mutual labels:  compiler
Rhine Ml
🏞 an OCaml compiler for an untyped lisp
Stars: ✭ 621 (-9.74%)
Mutual labels:  compiler
Tiramisu
A polyhedral compiler for expressing fast and portable data parallel algorithms
Stars: ✭ 685 (-0.44%)
Mutual labels:  compiler
Llvmswift
A Swift wrapper for the LLVM C API (version 9.0.1)
Stars: ✭ 641 (-6.83%)
Mutual labels:  compiler
Wirefilter
An execution engine for Wireshark-like filters
Stars: ✭ 677 (-1.6%)
Mutual labels:  compiler
Janino
Janino is a super-small, super-fast Java™ compiler.
Stars: ✭ 627 (-8.87%)
Mutual labels:  compiler
Fastexpressioncompiler
Fast ExpressionTree compiler to delegate
Stars: ✭ 631 (-8.28%)
Mutual labels:  compiler
Amacc
Small C Compiler generating ELF executable Arm architecture, supporting JIT execution
Stars: ✭ 661 (-3.92%)
Mutual labels:  compiler
Sultan
Sultan: Command and Rule over your Shell
Stars: ✭ 625 (-9.16%)
Mutual labels:  compiler
Esper
Esper Complex Event Processing, Streaming SQL and Event Series Analysis
Stars: ✭ 680 (-1.16%)
Mutual labels:  compiler
Clio
Clio is a functional, parallel, distributed programming language.
Stars: ✭ 555 (-19.33%)
Mutual labels:  compiler
Cakeml
CakeML: A Verified Implementation of ML
Stars: ✭ 651 (-5.38%)
Mutual labels:  compiler
Constexpr 8cc
Compile-time C Compiler implemented as C++14 constant expressions
Stars: ✭ 687 (-0.15%)
Mutual labels:  compiler
Mlton
The MLton repository
Stars: ✭ 683 (-0.73%)
Mutual labels:  compiler
Rustc codegen cranelift
Cranelift based backend for rustc
Stars: ✭ 675 (-1.89%)
Mutual labels:  compiler

JSCL

Build Status

JSCL is a Common Lisp to Javascript compiler, which is bootstrapped from Common Lisp and executed from the browser.

JSCL

Getting Started

You can try a demo online here, or you can install the JSCL npm package:

npm install -g jscl

to run jscl-repl in NodeJS.

Build

If you want to hack JSCL, you will have to download the repository

git clone https://github.com/jscl-project/jscl.git

load jscl.lisp in your Lisp, and call the bootstrap function to compile the implementation itself:

(jscl:bootstrap)

It will generate a jscl.js file in the top of the source tree. Now you can open jscl.html in your browser and use it.

Status

JSCL is and will be a subset of Common Lisp. Of course it is far from complete, but it supports partially most common special operators, functions and macros. In particular:

  • Multiple values

  • Explicit control tranfers tagbody and go

  • Static and dynamic non local exit catch, throw; block, return-from.

  • Lexical and special variables. However, declare expressions are missing, but you can proclaim special variables.

  • Optional and keyword arguments

  • SETF places

  • Packages

  • The LOOP macro

  • CLOS

  • Others

The compiler is very verbose, some simple optimizations or minification could help to deal with it.

Most of the above features are incomplete. The major features that are still missing are:

  • The format function

Feel free to hack it yourself

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].