You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Sami Vaarala 1e909e178d add a very experimental dist mechanism for providing a combined source (duktape.c + duktape.h) 11 years ago
api-testcases api doc and test update for duk_get_var; rename duk_api.h to duktape.h (dependencies not fixed yet) 11 years ago
bugs ditz issue update 11 years ago
doc remove scons files, will be replaced by plain makefiles 12 years ago
ecmascript-testcases fix ecmascript testcase for ToNumber() valgrind issue: print something at the end to ensure we reach the end (empty expect string is a bad idea) 11 years ago
examples a bunch of duk_api.h -> duktape.h changes 11 years ago
licenses murmurhash2 license 12 years ago
references Ecmascript E5 and E5.1 specifications as references (license allows redistribution) 12 years ago
runtests a bunch of duk_api.h -> duktape.h changes 11 years ago
src add helper to get current activation 11 years ago
website a bunch of duk_api.h -> duktape.h changes 11 years ago
.gitignore add stripped files to ignore too 12 years ago
LICENSE.txt add a basic README and LICENSE 12 years ago
Makefile top level makefile with variant builds and test targets, replaces sconscript 12 years ago
README.txt update README.txt for 0.5 release 12 years ago
combine_src.py add a very experimental dist mechanism for providing a combined source (duktape.c + duktape.h) 11 years ago
make_dist.sh add a very experimental dist mechanism for providing a combined source (duktape.c + duktape.h) 11 years ago

README.txt

=======
Duktape
=======

Duktape is a small and portable Ecmascript E5/E5.1 implementation.
It is intended to be easily embeddable into C programs, with a C API
similar in spirit to Lua's.

The goal is to support the full E5 feature set like Unicode strings
and regular expressions. Other feature highlights include:

* Custom types (like pointers and buffers) for C integration

* Reference counting and mark-and-sweep garbage collection
(with finalizer support)

* Co-operative threads, a.k.a. coroutines

* Tail call support

This is an early development version which is not intended for actual use.
All basic components are in place: Ecmascript compiler and executor, regexp
compiler and executor, garbage collection, data types, semantics for property
and identifier access, and initial implementations of built-in objects (with
some known issues).

However, there are (known and unknown) bugs here and there. The user API is
also not yet nearly finished, and there is still minimal documentation in this
release. API and internal documentation will be included in future releases.

To build (only Linux at the moment)::

$ scons -s -j 8

To test the command line version::

$ build/400/duk.400
duk> print('Hello world!');
[bytecode length 6 opcodes, registers 4, constants 2, inner functions 0]
Hello world!
= undefined

To run the current test suite, install node.js and then::

$ cd runtests/
$ npm install # installs dependencies
$ cd ..
$ node runtests/runtests.js --run-duk --cmd-duk=build/400/duk.400 \
--num-threads 8 --log-file=/tmp/log.txt testcases/

The source code compiles on Darwin (and maybe OSX), but you need to
change the following in src/SConscript::

- LIBS=['m', 'rt', 'readline', 'ncursesw'])
+ LIBS=['m', 'rt', 'readline', 'ncurses'])

Have fun!

--
Sami Vaarala
sami.vaarala@iki.fi