Towel

A postfix, stack-based, functional programming (, probably slow) language

Subscribe to updates I use Towel


Statistics on Towel

Number of watchers on Github 5
Number of open issues 0
Main language OCaml
Average time to merge a PR less than a minute
Open pull requests 0+
Closed pull requests 1+
Last commit almost 3 years ago
Repo Created about 3 years ago
Repo Last Updated over 1 year ago
Size 609 KB
Organization / Authorqwert42
Latest Releasev0.1
Contributors1
Page Updated
Do you use Towel? Leave a review!
View Towel activity
View TODOs for Towel (1)
View on github
Latest Open Source Launches
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating Towel for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

The Towel Programming Language

Towel is a typed stack-based postfix-syntaxed general-purposed functional language. A Towel compiler weave that compiles source code in Towel to Towel assembly language (Tasm) which runs on the Towel virtual machine written in OCaml. More robust design and implementation will be scheduled. A Tasm to C compiler is also scheduled.

Build

Some work need to be done before you build this project, otherwise though the project still builds, it won't compile or execute any thing:

  • Modify src/compiler/config.ml and alter the directory to your install destination or this directory
  • Do the same for src/vm/config.ml

We threw away the old Make building system and changed to Waf. Run

waf configure build

to build for Towel compiler executable towel for now.

If you want some documentations, e.g. manuals, run

waf configure build --docs

If you want to build native executable instead of the one of OCaml bytecodes, run

waf configure build --native

To build Towel virtual machine, Run

wal configure build --tvm

After building, run compile_std.sh to compile the standard library.

You are all set!

One thing to note, before you run ./waf test, do mkdir -p tests/temp to create a directory for prefect to place compiled test files.

Don't panic!

See weave -h or the manual.

Roadmap

  • Implement some key standard libraries. Priority 4.

  • Implement type checking algorithm! Priority 5.

  • The module system needs to be detailed designed. Priority 2.5. This is done by now. Parts missing: libpath mechanism, and maybe something else.

  • A script that generates std.w and std.e. Module Std generally covers all the assembly instructions that aren't covered in asm. Priority 2. This is also done by now. Parts missing: IDK.

The Future

Of course the TOWEL-C COMPILER like the cool guys!!! (And of course not javascript, it just sucks.)

See also the related part in the report.

License

This project is licensed under BSD 3-Clause License.

Towel questions on Stackoverflow (View All Questions)
  • Hot Towel Angular-Breeze course - getting breezeProvider errors
  • CSS automatically loaded during running of hot towel angular js SPA application with bootstrap. Couldn't find how?
  • Visual Studio 2015 Hot Towel Angular
  • encountering errors setting up hot towel generator
  • Hot Towel AngularJs Subroute
  • hot towel angular 1.2, playing with the menu
  • Hot Towel gulp build
  • Setting up global variable in SPA (Hot Towel)
  • Adding a user authentication login page to Hot Towel SPA
  • Getting Metadata Query Failed error breeze/Breeze/Metadata on Azure Server Hot Towel Angular
  • How to Install Hot towel SPA on Visual 2013, I cannot see the template in the web section
  • Buttons not clickable in Hot Towel Template UI
  • Distinguish the parameter passed as a query string in hot towel template that uses durandal
  • Call Function on View Loaded (Activate) in Hot Towel/Durandal Single Page App
  • How to use google universal analytics in Hot Towel durandal SPA + typescript
  • Hot Towel - Dynamic Dom element data bindings
  • Failed knockout data-bind on database driven page using Hot Towel API
  • Dropzone control with Hot Towel Template (Knockout and Durandal)
  • Hot Towel, Durandal SPA, Breeze Angular templates for VBNet?
  • SPA Hot Towel: Multiple Database Context
  • How to put Adsense in the hot towel SPA?
  • Hot Towel - Does Durandal need to be patched to use Q instead of jQuery promises?
  • awake hot towel angular 1.2
  • Single Page Application (Hot Towel): Loop through view data using jquery
  • Single Page Application (Hot Towel)
  • Adding JQuery Calendar in MVC 4.0 John Papa hot towel
  • Using return $q.when in Hot Towel Angular datacontext
  • Hot Towel Angular data-ng-show not working during validation
  • how can i optimize and bundling js files easiy of hot towel installed in asp.net mvc solution?
  • Constructing a Hot Towel Breeze API
Towel list of languages used
Other projects in OCaml