ashn
ashn
```sh $ ./minilisp (define a 1) 1 (+ 2a) 3 ``` I noticed that `read_expr` [only checks if the current character being parsed is a digit](https://github.com/rui314/minilisp/blob/71d591419cbd62336e2a4506d03608ed1d4c9a95/minilisp.c#L504) before invoking `make_int`. Perhaps...
Currently, generated C relies on [GNU C statement expressions](https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html) for non-trivial expressions. ``` ~/test$ cat test.sunder func main() void { var x = 1s; var y = 2s; var _...
Currently, addition, subtraction, and multiplication rely on the GCC/Clang builtins `__builtin_add_overflow`, `__builtin_sub_overflow`, `__builtin_mul_overflow`. Replace these builtins with an strictly standards compliant versions wrapping arithmetic functions. Resources: + [C99 compliant bit...
## std::hash_map ``` import "std"; struct foo { var map: std::hash_map[[ssize, foo]]; } func main() void { var x: foo = uninit; } ``` ``` $ sunder-compile test.sunder [std/std.sunder:3100] error:...
Discovered [here](https://github.com/ashn-dot-dev/natac/blob/a23e04a9af4414462582c1f763a7553bc477c09b/Makefile#L12). A non-recursive function, [client_render](https://github.com/ashn-dot-dev/natac/blob/a23e04a9af4414462582c1f763a7553bc477c09b/client.sunder#L878), in natac commit a23e04a9af4414462582c1f763a7553bc477c09b produced a stack overflow on ARM64 macOS when compiled with `-O0` and `-O1` optimization. My default guess would be that...
Discovered on commit `064e8ab19b64664729c1d39145225e9012bca267`. The function `std::read_all_with_allocator` will buffer data 4096 bytes at a time and will call `std::slice[[byte]]::resize_with_allocator` for each buffered read. The default `std::global_allocator` (of type `std::general_allocator`) behaves...