- Notifications
You must be signed in to change notification settings - Fork129
🔱 Javascript's God Mode. No VM. No Bytecode. No GC. Just native binaries.
License
NerdLang/nerd
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
No VM. No Bytecode. No packaging. No Garbage Collector. Fully compiled to native binaries.
Compile JavaScript and NerdLang in native binaries.
NerdLang is a substract of JS with some additions, focus on efficiency.
Nerd is aJavaScript native compiler aiming to make JavaScript universal, Nerd is able to compile native apps for Windows, Mac, Linux, iOS, Android, Raspberry, STM32 and more.
Nerd is in active development, join us onDiscord if you need more information.
- Supporting EcmaScript 3 standard (then 5, 6 ...)
- Supporting NodeJS and NPM ecosystem
- Supporting a maximum of platforms (Windows, Mac, Linux, Android, Arduino, ...)
- Being secure
- Embeding debuging tools
- Compile everything that can be transpiled in JS: Ruby (Opal), Python (Transcript, Brython, JavaScrypthon), TypeScript ...
- WindowsInstall Mingw and Clang for Windows here:http://winlibs.com/ or Clang here:https://releases.llvm.org/
You can also install Linux for Windows and use a linux system on Windows
You need MinGW with POSIX threads
Linux / FreeBSDInstall it with your distro (apt install gcc, yum install gcc, ...).You can use GCC, CLANG, as well as any derivative of those compilers (arm-gcc ...)
Apple iOSInstall xCode and you are ready.
You can check your installation withnpm start njs_test
Simplest way to use Nerd:
nerd file.js / file.ngThe output file name will be automatically chosen regarding the target. You can specify another output with-o something.out
You can select a preset
nerd file.js --preset [none|speed|size]You can also run the compiled executable just after compilation using --run:
nerd file.js --runYou can enable the quiet mode with --quiet:
nerd file.js --quietChanging the stack size (useful on Windows):
nerd --stack 10000000 flood.jsFor more informations about compilation output, use--verbose
For help, use--help
- Need update
Compiled with GCC v10.2.0 on Windows
| NodeJS v12.8.1 | QuickJS 2020-07-05 | Nerd v0.6.104 | |
|---|---|---|---|
| sort(1e6) [No preset] | |||
| - Time: | 0.33s | - | 0.33s |
| - Memory: | 7.0Mb | - | 1.0Mb |
| - Filesize: | 28.6Mb | - | 424Kb |
| sort(1e6) [+Size preset] | |||
| - Filesize: | 28.6Mb | - | 260Kb |
| sort(1e6) [+Speed preset] | |||
| - Time: | 0.33s | - | 0.20s |
| matrix(256) [No preset] | |||
| - Time: | 0.33s | - | 0.21s |
| - Memory: | 7.0Mb | - | 1.0Mb |
| - Filesize: | 28.6Mb | - | 405Kb |
| matrix(256) [+Size preset] | |||
| - Filesize: | 28.6Mb | - | 251Kb |
| matrix(1e6) [+Speed preset] | |||
| - Time: | 0.33s | - | 0.11s |
- Some code can be evaluated compile-time
Actively tested for
- Windows
- win-x86-32
- win-x86-64
- Linux
- linux-x86-32
- linux-x86-64
- linux-arm32v7
- Arduino
- arduino-nano
- arduino-uno
- arduino-mega1280
- arduino-mega2560
- STM32 Nucleo
- nucleo-l152re
- nucleo-l432kc
- nucleo-f446re
- Mobile
- android
- Web
- wasm
- wast
- asm-js
- macOS
- Sun OS
This project is in heavy development and a lot features are not implemented yet.
Nerd already supports more than 80% of ES3.
Prototype
- .call()
- .bind()
Array
- .length
- .push(value)
Class
- constructor
- methods
- static methods
Console
- .log(variadic)
JSON
- .parse(str)
- .stringify(obj)
Math **(DONE)**
- [All static methods and constants]
Object
- .keys
performance
- timeOrigin
- .now()
String
- .length
- .toString()
- .indexOf(needle)
- .lastIndexOf(needle)
- .search(needle)
- .slice(start, end)
- .substring(start, end)
- .substr(start, end)
- .replace(needle, str)
Syntax
- for
- while / do while
- if / else if / else
- try / catch / finally
- function / lambda
- class
- new
- typeof
- instanceof
- undefined
- null
- Infinite
- NaN / isNaN
- true / false
About
🔱 Javascript's God Mode. No VM. No Bytecode. No GC. Just native binaries.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.