Ajla Programming Language

Version: 
0.1.4
Release date: 
Friday, 24 May, 2024

License:

Interface:

Authors/Port authors:

Ajla (pronounced "Ayla") is a purely functional programming language that is easy to use and that has look-and-feel like traditional procedural languages. Ajla is free software released under the GPL3 license.

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. See below for download link(s).

Online documentation:

Following ones are the download links for manual installation:

Ajla Programming Language v. 0.1.4 (25/8/2024) Readme/What's new
=== RELEASE 0.1.4 === Use the _Float16 type if available Use -fno-math-errno if the compiler supports it Use the instructions for floating point rounding when available Fix a bug in math_round Define _TIME_BITS=64 Make it possible to compile Ajla with TCC Swap the endianity of builtin.pcd when the user runs "make install", so that the file can be mmapped on big-endian machines Fix a memory leak introduced in the release 0.1.3 Introduce a "--save" argument that disables saving and loading cache
 www.ajla-lang.cz/downloads/binaries/ajla-0.1.4-os2.zip  local copy
Ajla Programming Language v. 0.1.3 (17/8/2024, Mikulas Patocka) Readme/What's new
=== RELEASE 0.1.3 === Implement API for signal handling. Support Ctrl-Z for suspending text-mode applications. Invalidate cached compilations when builtin.pcd changes. Implement API for listing mount points. Fix failure on NetBSD when walking the kernfs mount point, because it doesn't support kqueue. Introduce a "vselect" widget that displays vertical list of entries. Incompatible FFI changes: - Change the FFI interface, so that the destructor is freed explictly with ffi_destructor_destroy. - Delete the function ffi_call_function_pure - ffi_unsafe_get_world and ffi_call_function should be used instead.
 www.ajla-lang.cz/downloads/binaries/ajla-0.1.3-os2.zip  local copy
Ajla Programming Language v. 0.1.2 (18/6/2024, Mikulas Patocka) Readme/What's new
=== RELEASE 0.1.2 === Fix a bug that the tag bit was not checked on the second argument of len_at_least and len_greater_than - this resulted in incorrect result if the value was a box or a thunk. Optimization: don't check index against list length if it can be proved that the index is smaller (such as "for i := 0 to len(l) do ...").
 www.ajla-lang.cz/downloads/binaries/ajla-0.1.2-os2.zip  local copy
Ajla Programming Language v. 0.1.1 (8/6/2024, Mikulas Patocka) Readme/What's new
=== RELEASE 0.1.1 === Save the JIT-generated machine code to the files in ~/.cache/ajla. This reduces startup time. Introduce stdlib/mutex.ajla Fix crashes on alpha, loongarch64, mips. Imcompatible change: Fix misdesigned FFI interface - we need to pass the destructor to the functions that manipulate memory allocated from the destructor, so that the destructor is not freed prematurely. Previously, the "keep" statement was used for this purpose, but it is not reliable.
 www.ajla-lang.cz/downloads/binaries/ajla-0.1.1-os2.zip  local copy
Ajla Programming Language v. 0.1.0 (24/5/2024, Mikulas Patocka) Readme/What's new
Before compiling Ajla, install the packages libgmp-dev and libffi-dev. If libgmp-dev is not installed, Ajla will use slow built-in version. If libffi-dev is not installed, the possibility to call C functions from Ajla will be disabled. You can compile and install Ajla with ./configure && make && make install It is recommended to use gcc. clang works, but the compilation is very slow, it may take an hour or more to compile the files ipret.c and ipretc.c. When running ajla programs, it is recommended to set cpu governor to 'performance'. Ajla starts and stops threads rapidly and the 'ondemand' governor underclocks the cores, resulting in slower performance. Ajla arguments: --compile - compile the program without running it --debug - enable all debugging --debug=magic - put a magic value at the start every memory block --debug=redzone - put a redzone value at the end of every memory block --debug=fill - fill the allocated and free blocks with a byte pattern --debug=leak - test for memory leaks --debug=memory - enable "magic, redzone, fill, leak" --debug=mutex-errorcheck- set pthread attribute PTHREAD_MUTEX_ERRORCHECK --debug=mutex - check correct usage of mutexes (also enables mutex-errorcheck) --debug=cond - check correct usage of condition variables --debng=thread - check correct usage of threads --debug=tls - check correct usage of thread-local storage --debug=handles - check correct usage of handles --debug=objects - enable "mutex, cond, thread, tls, handles" --profile - enable all profiling --profile=function - display functions that took most time --profile=escapes - display files and lines where escape from compiled code to the interpreter happend most often --profile=memory - display files and lines where memory allocation happened --ptrcomp - use 4-byte pointers and 4-byte integers by default - heap memory is limited to 32GiB --strict-calls - disable auto-parallelization --system-malloc - use system malloc instead of ajla malloc --thread-tick - spawn a thread that increases the tick variable instead of using signals --threads=n - the number of worker threads, the default is the number of threads on the system --tick=n - tick time in microseconds, the default is 10000 vim: textwidth=80 ------------------------------------ === RELEASE 0.1.0 === Initial release
 www.ajla-lang.cz/downloads/binaries/ajla-0.1.0-os2.zip  local copy
Record updated last time on: 31/08/2024 - 06:16

Translate to...

Add new comment