The Sireum Programming Language (Slang)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ast/shared/src/main/scala/org/sireum/lang/ast
bin
frontend/shared/src
parser/shared/src
tipe/shared/src/main/scala/org/sireum/lang
.appveyor.yml
.gitattributes Reworked build, test, and publish scripts to use Slash -- universal S… Feb 15, 2019
.gitignore
.jitpack.yml
.shippable.yml
.travis.yml
Slang.sc
build.sc
readme.md
syntax-notes.md
syntax.txt

readme.md

The Sireum Programming Language (Slang)

CI Status macOS Linux Windows JitPack
master travis shippable appveyor

This repository holds the Slang front-end components (i.e., parser, symbol resolver, and type checker).

Testing

  • macOS/Linux

    bin/build.cmd test
  • Windows

    bin\build.cmd test

Passing test builds the Slang runtime library and the front-end, then uses the result to parse, resolve, and type check the codebase itself. After type checking, it serializes the codebase AST along with symbol and type information and deserializes them back and check for equivalence before/after de/serialization.

The above runs the Slang front-end test suite under a JVM; to run it under Node.js after the above (caution: it is a lot slower):

  • macOS/Linux

    export NODEJS_MAX_HEAP=4096 # MB
    bin/build.cmd test-js
  • Windows

    set NODEJS_MAX_HEAP=4096
    bin\build.cmd test-js