Calvin Rose
ef2dfcd7c3
More work on a proof of concept frontend.
...
Basic frontend being prototyped in examples/sysir/frontend.janet. Still
a lot of work needs to be done here, and some of this code will
eventually move to C most likely, but this is a good way to better
exercise our backend.
Type inference - at the very least _forward_ inference, is the most
needed change here. While one could do this in the compiler
frontend, doing so in sysir/asm is not so much of an issue. "Inference"
here means inserting "bind" instructions when there is only a single
type that will work correctly.
2024-05-05 14:45:00 -05:00
Calvin Rose
3a782d27b1
Allow for multiple functions in a sysir "context".
...
Allows for in memory linking.
2023-10-22 16:05:38 -05:00
Calvin Rose
6a78b6d1c6
Merge remote-tracking branch 'origin/compile-opt' into compile-opt
2023-10-10 20:28:09 -05:00
Calvin Rose
549ee95f3d
Add os/posix-exec (along os/posix-fork)
...
Useful for old-style unix daemons, start up scripts, and so on.
Easy to add on top of os/execute.
May want to consider allowing the same IO redirection as os/execute
and os/spawn.
May also want to put both fork and exec behind a config switch since I
suppose some systems may not support them, although I don't know of any
concrete examples.
2023-10-08 21:03:08 -05:00
Calvin Rose
84ad161f1e
Add support for weak references in arrays.
...
Also change weak table syntax to not require keyword arguments.
2023-09-30 10:56:43 -05:00
Calvin Rose
b3a6e25ce0
Add weak references in the form of weak tables.
...
Any references exclusively held by a weak table may be collected
without the programmer needing to free references manually. A table
can be setup to have weak keys, weak values, or both.
2023-09-27 23:36:09 -05:00
Calvin Rose
efbc46c69e
Add support for using operators on arrays (and pointers to arrays).
...
Allows more expressive yet type checked representation of array
algorithms.
2023-09-03 12:32:28 -05:00
Calvin Rose
9b9f67c371
Merge branch 'master' into compile-opt
2023-09-03 10:18:54 -05:00
Calvin Rose
21eab7e9cc
Update sigaction to help address #1262 .
...
Update example to have 4 cases - case 3 was previously broken but should
now work.
2023-08-23 09:16:59 -05:00
Calvin Rose
d9605c2856
Allow iterating over generators with pairs, keys, and values.
2023-08-22 19:25:05 -05:00
Calvin Rose
5f5e5cf693
Merge branch 'master' into compile-opt
2023-08-20 13:08:56 -05:00
Calvin Rose
f45571033c
Add os/sigaction for signal handling.
...
Also improve interrupts to work better with busy loops
and signals.
2023-08-19 13:26:29 -05:00
Calvin Rose
b939671b79
Add check for redefining types.
2023-08-13 11:09:20 -05:00
Calvin Rose
4b8e7a416f
Have separate instructions for pointer arith
2023-08-12 17:36:06 -05:00
Calvin Rose
a2bd98390e
More work on the sysir.
2023-08-12 13:42:52 -05:00
Calvin Rose
d9912f38f8
Add union types and change name of type constructor instructions.
2023-08-12 10:29:24 -05:00
Calvin Rose
8007806c8e
Add better support for arrays and struct fields in IR.
...
Also add option for named registers.
2023-08-08 18:56:02 -05:00
Calvin Rose
3fe4cfd14c
Add labels back to sysir
2023-08-07 09:39:35 -05:00
Calvin Rose
75be5fd4c6
Update sysir to have better field support.
2023-08-06 20:00:49 -05:00
Calvin Rose
7c7136fd70
Merge branch 'master' into compile-opt
2023-08-06 17:09:13 -05:00
Calvin Rose
cfa32d58a7
More work on sysir, add initial work for recursive types.
2023-08-06 15:50:21 -05:00
Calvin Rose
4d7baef89e
Merge branch 'master' into compile-opt
2023-07-04 13:52:54 -05:00
Calvin Rose
9a2897e741
Run through astyle with manual corrections
2023-06-08 13:01:49 -05:00
Calvin Rose
ef94a0f0b4
Rename sysdialect to sysir
2023-05-12 18:11:14 -05:00
Calvin Rose
90f212df92
Add length method ffi/jitfn abstract values.
2022-12-04 11:08:17 -06:00
Calvin Rose
aa60c1f36a
Add ffi jit example.
2022-12-03 17:52:23 -06:00
bakpakin
43c47ac44c
Address #1037 - move stack hack after arg writing logic to avoid
...
clobber.
2022-09-20 15:37:20 -05:00
Calvin Rose
1cebe64664
Add some soft test cases for #1037 .
2022-09-20 10:01:12 -05:00
Calvin Rose
3479841c77
Address #1034 - add handling for 8-16 byte structs in FFI.
2022-09-20 09:28:46 -05:00
Calvin Rose
6a899968a9
Allow passing user signals to (signal) as keywords.
2022-09-17 21:18:07 -05:00
bakpakin
c7bc711f63
Add windows FFI example test case for void functions with double
...
argument.
2022-09-15 13:58:54 -05:00
Calvin Rose
1f7f20788c
Add line loop example for awk or sed like processing.
2022-08-26 12:29:23 -05:00
Calvin Rose
c59dd29190
Add stress test for marshalling to examples.
2022-08-26 12:27:53 -05:00
Calvin Rose
f5d11dc656
Address #1014 improve parse errors when bad delimiters are found.
...
Reuse some existing logic for eof errors.
2022-08-24 11:34:59 -05:00
bakpakin
c043b1d949
Add win32 ffi example.
2022-08-14 15:40:09 -05:00
bakpakin
9a6d2a7b32
Fix FFI for reference return values and stack parameter passing.
2022-08-14 15:20:30 -05:00
bakpakin
f8a9efa8e4
Allow binding pre-loaded symbols in windows FFI.
...
Mimic the posix RTLD_NOW setting for dlopen by iterating
opened DLLs to look for symbols.
2022-08-14 13:26:13 -05:00
Calvin Rose
47e91bfd89
Fix docstring.
2022-06-19 18:52:37 -05:00
Calvin Rose
a6f93efd39
Support for array types in ffi.
2022-06-19 08:03:32 -05:00
Calvin Rose
a1aab4008f
Update FFI example.
2022-06-18 10:06:39 -05:00
Calvin Rose
40e9430278
Move examples to example directory.
2022-06-17 17:24:52 -05:00
Calvin Rose
c9f33bbde0
Add rwlocks.
2022-06-05 16:42:18 -05:00
Calvin Rose
e1602618c3
Merge pull request #894 from pepe/fix-numarray-example
...
Improve numarray example
2021-12-09 14:09:11 -06:00
Josef Pospíšil
04e499c97f
Add search on PATH for async execute example
2021-12-09 11:57:21 +01:00
Josef Pospíšil
f586a8a9dc
Add length to method and lib fn to numarray
2021-12-09 11:18:05 +01:00
Josef Pospíšil
5112ed77d6
Fix test import, and add sum as library fn too
2021-12-09 11:12:08 +01:00
Michael Camilleri
e1460c65e8
Fix URL loader example to use os/spawn
2021-11-11 17:33:25 +09:00
Calvin Rose
5464a7a379
Allow passing a function to directly to ev/go.
...
Makes ev/call less useful but ev/go more useful. No need
to construct as many identical intermediate fibers.
2021-08-30 22:22:22 -05:00
sogaiu
5ca6704c4d
Remove threads example
2021-08-21 14:52:51 +09:00
Calvin Rose
b75b3e3984
Working example for threaded channels.
...
Still no marshalling more complex values.
2021-08-15 15:25:07 -05:00