Ajla Programming Language

Version: 
0.2.0
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.2.0 (28/11/2024, Mikulas Patocka) Readme/What's new
===RELEASE 0.2.0 === Fix an internal error if we call dstatfs on a directory open with O_PATH. Implement automatic inlining of functions with just one basic block. Implement integer operations with immediate value opperand - so that we don't have to allocate frame slots for immediates. Move tests for thunks to machine code entry, so that thunks don't have to be checked inside loops. Remember that a pointer is not thunk and do not test it for thunk repetitively. Implement register allocation in the code generator. Fix a bug on alpha that the code generator accidentally used saved register f2
 www.ajla-lang.cz/downloads/binaries/ajla-0.2.0-os2.zip  local copy
Ajla Programming Language v. 0.1.5 (2/10/2024, Mikulas Patocka) Readme/What's new
=== RELEASE 0.1.5 === Fix a bug that swapend.ajla was not present in the distributed archive. It produced spurious make install error (that could be ignored). Haiku support - the pthread implementation fails on Haiku (perhaps, there is some signal race condition in the Haiku pthread implementation), so I added a new file th_haiku.c. Code generator improvements - variables' tags are checked when entering machine code so that they don't have to be checked inside loops. Fix code generator bugs on power1 and power2.
 www.ajla-lang.cz/downloads/binaries/ajla-0.1.5-os2.zip  local copy
Ajla Programming Language v. 0.1.4 (25/8/2024, Mikulas Patocka) 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: 01/12/2024 - 18:29

Translate to...

Add new comment