verify: support phis
[ajla.git] / ChangeLog
blobf5ccf2a241bc5cec6099ed9adea9a90298875d7b
1 ===RELEASE 0.2.0 ===
3 Fix an internal error if we call dstatfs on a directory open with O_PATH.
5 Implement automatic inlining of functions with just one basic block.
7 Implement integer operations with immediate value opperand - so that we don't
8 have to allocate frame slots for immediates.
10 Move tests for thunks to machine code entry, so that thunks don't have to be
11 checked inside loops.
13 Remember that a pointer is not thunk and do not test it for thunk repetitively.
15 Implement register allocation in the code generator.
17 Fix a bug on alpha that the code generator accidentally used saved register f2
19 === RELEASE 0.1.5 ===
21 Fix a bug that swapend.ajla was not present in the distributed archive. It
22 produced spurious make install error (that could be ignored).
24 Haiku support - the pthread implementation fails on Haiku (perhaps, there is
25 some signal race condition in the Haiku pthread implementation), so I added a
26 new file th_haiku.c.
28 Code generator improvements - variables' tags are checked when entering machine
29 code so that they don't have to be checked inside loops.
31 Fix code generator bugs on power1 and power2.
33 === RELEASE 0.1.4 ===
35 Use the _Float16 type if available
37 Use -fno-math-errno if the compiler supports it
39 Use the instructions for floating point rounding when available
41 Fix a bug in math_round
43 Define _TIME_BITS=64
45 Make it possible to compile Ajla with TCC
47 Swap the endianity of builtin.pcd when the user runs "make install", so that the
48 file can be mmapped on big-endian machines
50 Fix a memory leak introduced in the release 0.1.3
52 Introduce a "--save" argument that disables saving and loading cache
54 === RELEASE 0.1.3 ===
56 Implement API for signal handling.
58 Support Ctrl-Z for suspending text-mode applications.
60 Invalidate cached compilations when builtin.pcd changes.
62 Implement API for listing mount points.
64 Fix failure on NetBSD when walking the kernfs mount point, because it doesn't
65 support kqueue.
67 Introduce a "vselect" widget that displays vertical list of entries.
69 Incompatible FFI changes:
70 - Change the FFI interface, so that the destructor is freed explictly with
71   ffi_destructor_destroy.
72 - Delete the function ffi_call_function_pure - ffi_unsafe_get_world and
73   ffi_call_function should be used instead.
75 === RELEASE 0.1.2 ===
77 Fix a bug that the tag bit was not checked on the second argument of
78 len_at_least and len_greater_than - this resulted in incorrect result if the
79 value was a box or a thunk.
81 Optimization: don't check index against list length if it can be proved that the
82 index is smaller (such as "for i := 0 to len(l) do ...").
84 === RELEASE 0.1.1 ===
86 Save the JIT-generated machine code to the files in ~/.cache/ajla. This reduces
87 startup time.
89 Introduce stdlib/mutex.ajla
91 Fix crashes on alpha, loongarch64, mips.
93 Incompatible change: Fix misdesigned FFI interface - we need to pass the
94 destructor to the functions that manipulate memory allocated from the
95 destructor, so that the destructor is not freed prematurely. Previously, the
96 "keep" statement was used for this purpose, but it is not reliable.
98 === RELEASE 0.1.0 ===
100 Initial release
102 vim: textwidth=80