about summary refs log tree commit diff stats
path: root/092stack.subx
Commit message (Collapse)AuthorAgeFilesLines
* mu.subx: 25 failing tests remainingKartik Agaram2020-05-201-0/+3
| | | | | | | | | | | | | | | | | This was again hard to debug, because: - the mapping between recursive calls to emit-subx-stmt-list and the nested blocks of code in the output kept blowing my stack, and - I kept expecting the problem to be there, or in the data attached to variables. But it was in the `emit-cleanup-code-until-depth` for the previous/inner block, in code I thought I'd already fixed (`clean-up-blocks`) that accidentally worked for previous tests. Part of the problem here is that my library for the stack sucks. It's only for 4-byte elements, but I'm using it for 8-byte elements (handles). Which leads to double-pushes and double-pops and -- here -- an insidiously wrong call to `top`. Anyways: halfway there!
* mu.subx: spilling register for reg varsKartik Agaram2020-05-181-0/+3
|
* 6182 - start of support for safe handlesKartik Agaram2020-04-031-13/+13
| | | | | | | | | | | | | | So far it's unclear how to do this in a series of small commits. Still nibbling around the edges. In this commit we standardize some terminology: The length of an array or stream is denominated in the high-level elements. The _size_ is denominated in bytes. The thing we encode into the type is always the size, not the length. There's still an open question of what to do about the Mu `length` operator. I'd like to modify it to provide the length. Currently it provides the size. If I can't fix that I'll rename it.
* 5924Kartik Agaram2020-01-271-6/+6
|
* 5897 - rename comparison instructionsKartik Agaram2020-01-161-4/+4
| | | | | | | Signed and unsigned don't quite capture the essence of what the different combinations of x86 flags are doing for SubX. The crucial distinction is that one set of comparison operators is for integers and the second is for addresses.
* 5887 - reorganize libraryKartik Agaram2020-01-141-0/+413
Layers 0-89 are used in self-hosting SubX. Layers 90-99 are not needed for self-hosting SubX, and therefore could use transitional levels of syntax sugar. Layers 100 and up use all SubX syntax sugar.