LLJS

LLJS: Low-Level JavaScript

  • Owner: mbebenita/LLJS
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

LLJS

LLJS is a typed dialect of JavaScript that offers a
C-like type system with manual memory management. It compiles to JavaScript
and lets you write memory-efficient and GC pause-free code less painfully, in
short, LLJS is the bastard child of JavaScript and C. LLJS is early research
prototype work, so don't expect anything rock solid just yet. The research
goal here is to explore low-level statically typed features in a high-level
dynamically typed language. Think of it as inline assembly in C, or the
unsafe keyword in C#. It's not pretty, but it gets the job done.

Usage

For users of node.js, bin/ljc is provided.

For users of SpiderMonkey js shell, the compiler can be invoked with:

$ js ljc.js

in the src/ directory.

Memcheck

If you would like to compile with support for memory checking (detects
leaks, accesses of unallocated and undefined memory locations, and
double frees) then compile with the -m flag:

$ bin/ljc -m -o myscript.js myscript.ljs

And add the following code to the end of your program run to report
any memory errors:

let m = require('memory');
// for SpiderMonkey do
// let m = load('memory.js')
console.log(m.memcheck.report());

The memory checker uses Proxies so if you use node.js you need to
enable it with:

$ node --harmony-proxies myscript.js

Testing

To run the tests install the Mocha module then run:

export NODE_PATH=src/
mocha --compilers ljs:ljc

from the root LLJS directory.

Main metrics

Overview
Name With Ownermbebenita/LLJS
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 2)
Platform
License:Other
所有者活动
Created At2012-02-06 18:52:37
Pushed At2020-03-11 17:38:19
Last Commit At2017-02-02 19:47:18
Release Count0
用户参与
Stargazers Count1.2k
Watchers Count67
Fork Count89
Commits Count247
Has Issues Enabled
Issues Count34
Issue Open Count23
Pull Requests Count6
Pull Requests Open Count2
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private