Tiny Embeddable Programming Language
License
GeekHorse/Trot
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
--- Info ----------------------------------------------------------------------- What : Trot(TM) Programming Language Version : 0.2.01-wip Author : Jeremiah Martell Copyright : (C) 2010-2014 License : 3-clause BSD Website : http://GeekHorse.com --- Summary -------------------------------------------------------------------- Trot is a small embeddable programming language that gives you control over the virtual programs that it runs. You can control their memory usage, virtual cpu usage, and garbage collection. This is my personal "weekend project", so progress will be slow but steady. It will be usable at version 0.4. (see PLAN) --- Details -------------------------------------------------------------------- - Small Current sizes of the library are: - make small, ~32 KB - make fast, ~38 KB - Easily embeddable It will be easy to embed Trot into your application, say a C program, and have easy Trot and C interactions. - Garbage Collection It can handle anything: Self references, mutual references, etc. Future work will improve it to be incremental and dynamically tunable. - Fast To be determined. - Actor Model Uses the actor model for easy concurrent programming. The actors communicate by pushing messages to each other, so there's no need to worry about mutexes and such. - Simple - Only 2 types: lists and ints. Lists are by reference, so you can create any data structure: heirarchies, maps, graphs, etc. Ints are signed 32-bit integers, so they can also be used for unicode characters. - Code is stack based. --- Quality -------------------------------------------------------------------- - Compiled with gcc's -Wall -Werror and -Wextra. Compiles with 0 warnings. - Many unit tests guarantee everything works correctly. - gcov and lcov is used to make sure we get as much coverage as possible. Current coverage is 100% branch coverage. - Valgrind is used to look for memory leaks and memory corruption. There are 0 memory leaks or errors reported. - Compiles cleanly against C89, C99, and C11 standards. - All code is documented with doxygen comments. - All functions are reentrant. - Contains no third-party code, written entirely by Jeremiah. --- Building ------------------------------------------------------------------- Just run "make". targets: fast - build fast version small - build small version debug - build fast version, with smaller TROT_MAX_CHILDREN debug2 - build debug version, with smaller TROT_MAX_CHILDREN debug3 - build debug version, with smaller TROT_MAX_CHILDREN, TROT_ENABLE_LOGGING, and PARANOID checks. single - build a combined trotSingle.c file profile - build for profiling test - run tests vtest - run tests in valgrind coverage - generate coverage report with gcov and lcov clean - clean up files Trot has no dependencies other than standard C libraries. If you have trouble building Trot with the included Makefile, you can manually build Trot with something like this: cd source/trotLib gcc -c *.c ar rcs libTrot.a *.o The other directories can be built just as easily. --- END ------------------------------------------------------------------------
About
Tiny Embeddable Programming Language
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published