1 Before compiling Ajla, install the packages libgmp-dev and libffi-dev. If
2 libgmp-dev is not installed, Ajla will use slow built-in version. If libffi-dev
3 is not installed, the possibility to call C functions from Ajla will be
6 You can compile and install Ajla with ./configure && make && make install
8 If you cloned the git repository, there is no ./configure script. You can
9 generate it with the ./rebuild script. You need autoconf, automake and ed
12 It is recommended to use gcc. clang works, but the compilation is very slow, it
13 may take an hour or more to compile the files ipret.c and ipretc.c.
15 When running ajla programs, it is recommended to set cpu governor to
16 'performance'. Ajla starts and stops threads rapidly and the 'ondemand' governor
17 underclocks the cores, resulting in slower performance.
21 --compile - compile the program without running it
22 --debug - enable all debugging
23 --debug=magic - put a magic value at the start every memory block
24 --debug=redzone - put a redzone value at the end of every memory block
25 --debug=fill - fill the allocated and free blocks with a byte pattern
26 --debug=leak - test for memory leaks
27 --debug=memory - enable "magic, redzone, fill, leak"
28 --debug=mutex-errorcheck- set pthread attribute PTHREAD_MUTEX_ERRORCHECK
29 --debug=mutex - check correct usage of mutexes (also enables
31 --debug=cond - check correct usage of condition variables
32 --debng=thread - check correct usage of threads
33 --debug=tls - check correct usage of thread-local storage
34 --debug=handles - check correct usage of handles
35 --debug=objects - enable "mutex, cond, thread, tls, handles"
36 --nosave - do not save and load compiled code
37 --profile - enable all profiling
38 --profile=function - display functions that took most time
39 --profile=escapes - display files and lines where escape from compiled
40 code to the interpreter happend most often
41 --profile=memory - display files and lines where memory allocation
43 --ptrcomp - use 4-byte pointers and 4-byte integers by default - heap
44 memory is limited to 32GiB
45 --strict-calls - disable auto-parallelization
46 --system-malloc - use system malloc instead of ajla malloc
47 --thread-tick - spawn a thread that increases the tick variable instead of
49 --threads=n - the number of worker threads, the default is the number of
51 --tick=n - tick time in microseconds, the default is 10000