Never is a simple functional programming language. Technically it may be classified as syntactically scoped, strongly typed, call by value, functional programming language.
In practise Never offers basic data types, assignment, control flow, arrays, first order functions and some mathematical functions to make it useful to calculate expressions. Also it demonstrates how functions can be compiled, invoked and passed as parameters or results between other functions.
It is easy to download and compile Never language. Just clone repository and make the compiler in a few basic steps. To read more visit readthedocs.io site.
Never requires basic Linux installation to be built. The following tools and libraries are needed:
- gcc
- glibc
- bison / flex
- libmath, libdl and libffi
Never can be installed in steps:
- clone repository
cd never
mkdir build; cd build
cmake ..; make
To compile for asm.js or wasm targets use the following commands:
Get the latest sdk: git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
Compile to native asm.js
mkdir build && cd build
emcmake cmake .. -DJS_ONLY=ON
make
Compile to native wasm
mkdir build && cd build
emcmake cmake .. -DWASM_ONLY=ON
make
Run
Now you should see never.js file in your build directory. You can overwrite ../never.js and open never.html, or modify never.html to load build/never.js file or load the file in JS console and run:
python -m SimpleHTTPServer 8000
# http://localhost:8000/never.html
var never = Module.cwrap('never','number',['string']);
never("func main() -> int { 123 }")
All help is welcome! Using it, reporting bugs, spreading the word, writing code samples, blogs, submitting ideas, documentation, new features. Everyone is invited to contribute.
This project is licensed under the MIT License.