codegen: move common code to gen_frame_set_pointer_2
[ajla.git] / README
blobb2a03b73de3ebc51443f20671dd94a5a6867e3e1
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
4 disabled.
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
10 installed.
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.
20 Ajla arguments:
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
30                           mutex-errorcheck)
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
42                           happened
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
48                   using signals
49 --threads=n     - the number of worker threads, the default is the number of
50                   threads on the system
51 --tick=n        - tick time in microseconds, the default is 10000
53 vim: textwidth=80