Skip to content

🗯 Compile-to-WebAssembly programming language

License

Notifications You must be signed in to change notification settings

dominikrys/schism

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schism

Build Status Website

Simple programming language that compiles to WebAssembly, written in TypeScript.

Try it here!

Website Screenshot

Background

Based off Colin Eberhardt's blog post on writing a WebAssembly compiler, written using up-to-date versions of TypeScript and Node. Information about the language is provided in the language playground linked above.

The aim of this project was to learn about compilers, TypeScript, and front-end development.

Building Pre-Requisites

Build and Run Instructions

Build compiler:

yarn build

Run compiler tests:

yarn test

Host the website locally and watch for changes (with live reload):

yarn start

Compile the website for production:

yarn bundle

Pre-Commit Checks

For automated pre-commit/pre-push checks, a Lefthook script is included. Run lefthook install to initialize it.

Deployment to GitHub Pages

The GitHub Pages website is deployed off the gh-pages branch. This is automatically done by CI when code pushed to the main branch has been successfully compiled and tested.

Upgrading Libraries

yarn upgrade

Code Structure

  • src: Compiler source code
  • __tests__: Compiler tests
  • web: Website source code