Calvin Rose
e5893d0692
Fix reference counting for threaded abstract types.
...
Was very borked. The sweep phase should drop references to unused
abstracts but wasn't, resulting in each collection decrementing the
count by one until 0 was hit, even if other threads maintained a
reference.
2023-08-20 14:50:46 -05:00
Calvin Rose
5f5e5cf693
Merge branch 'master' into compile-opt
2023-08-20 13:08:56 -05:00
Calvin Rose
ca4c1e4259
Try to use atomics inside signal handler for ref count.
2023-08-20 08:49:49 -05:00
Calvin Rose
91712add3d
Fix threaded abstracts in min build.
2023-08-19 20:19:05 -05:00
Calvin Rose
7198dcb416
Add sanboxing for signal handling.
2023-08-19 17:44:04 -05:00
Calvin Rose
08e20e912d
Use pthread_sigmask when adding signal handlers.
2023-08-19 17:30:55 -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
2ac36a0572
Merge pull request #1257 from primo-ppcg/any-every
...
Update `any?`, `every?`
2023-08-18 07:20:44 -05:00
Calvin Rose
3df1d54847
Merge pull request #1258 from primo-ppcg/each
...
Update `each` keys before body
2023-08-18 07:16:19 -05:00
Calvin Rose
f3969b6066
Merge pull request #1259 from primo-ppcg/buffer-from-bytes
...
Add `buffer/from-bytes`
2023-08-18 07:15:08 -05:00
primo-ppcg
6222f35bc8
add buffer/from-bytes
2023-08-18 12:35:12 +07:00
primo-ppcg
2f178963c0
update each
keys before body
2023-08-18 10:32:24 +07:00
primo-ppcg
15760b0950
update any?
, every?
...
Updates `any?` and `every?` to be exact functional analogues to `or` and `and`.
2023-08-18 07:39:30 +07:00
Calvin Rose
43a6a70e1e
Merge pull request #1255 from primo-ppcg/sort
...
Special case common `sort` usages
2023-08-16 20:34:17 -05:00
Calvin Rose
cd36f1ef5f
Distinguish between threaded channels and non-threaded when marshalling.
...
Threaded channels _can_ be marshalled, just not for communication
between threads. This is a special case since the same abstract type
is used for both threaded and non-threaded channels.
2023-08-16 14:26:52 -05:00
Calvin Rose
46bda4e6fa
Stub out type inference pass.
2023-08-16 14:09:25 -05:00
primo-ppcg
cdd7083c86
special case common sort
usages
2023-08-15 11:58:22 +07:00
Calvin Rose
fdbf4f2666
Merge branch 'master' into compile-opt
2023-08-13 12:36:19 -05:00
Calvin Rose
8df7364319
Quick fix for discussion #1253
...
Protect against garbage collection during connect.
2023-08-13 12:00:54 -05:00
Calvin Rose
b939671b79
Add check for redefining types.
2023-08-13 11:09:20 -05:00
Calvin Rose
63023722d1
Merge pull request #1246 from wooosh/use-object-typedefs
...
Use typedefs for strings, symbols, keywords, tuples, structs, and abstracts.
2023-08-13 08:33:19 -05:00
Calvin Rose
4b8e7a416f
Have separate instructions for pointer arith
2023-08-12 17:36:06 -05:00
Calvin Rose
79c12e5116
Merge pull request #1252 from primo-ppcg/reverse
...
Rework `reverse`, again
2023-08-12 14:29:23 -05:00
Calvin Rose
1e1e7a5cfd
Update garbage collection for sysir abstract type.
2023-08-12 13:47:23 -05:00
Calvin Rose
91e459e4a5
Format sysir.
2023-08-12 13:43:51 -05:00
Calvin Rose
b6adc257f4
Merge branch 'master' into compile-opt
2023-08-12 13:43:28 -05:00
Calvin Rose
a2bd98390e
More work on the sysir.
2023-08-12 13:42:52 -05:00
primo-ppcg
53e16944a1
rework reverse
, again
2023-08-13 00:54:17 +07:00
Calvin Rose
d9912f38f8
Add union types and change name of type constructor instructions.
2023-08-12 10:29:24 -05:00
Calvin Rose
7475362c85
Merge pull request #1249 from primo-ppcg/compare
...
Speed up `compare` functions
2023-08-11 19:27:42 -05:00
primo-ppcg
9238b82cde
speed up compare
2023-08-11 23:48:29 +07:00
Calvin Rose
7049f658ec
Merge pull request #1244 from primo-ppcg/bytes-indexed-dictionary
...
Move `bytes?`, `indexed?`, `dictionary?` to corelib
2023-08-09 17:56:35 -05:00
wooosh
701913fb19
Use typedefs for strings, symbols, keywords, tuples, structs, and abstracts.
2023-08-09 16:09:34 -04: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
primo-ppcg
831f41a62b
move bytes?
, indexed?
, dictionary?
to corelib
2023-08-08 10:00:05 +07:00
Calvin Rose
de2440d458
Lots todo
2023-08-07 10:54:41 -05:00
Calvin Rose
43ab06467f
Merge branch 'master' into compile-opt
2023-08-07 09:40:27 -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
0ea1da80e7
Merge pull request #1242 from primo-ppcg/reverse
...
Rework `reverse`
2023-08-06 08:10:56 -05:00
Calvin Rose
06eea74b98
Merge pull request #1241 from primo-ppcg/keys-values-pairs
...
Rework `keys`, `values`, `pairs`
2023-08-06 08:10:43 -05:00
primo-ppcg
c8c0e112bc
rework reverse
2023-08-06 16:16:41 +07:00
primo-ppcg
7417e82c51
rework keys
, values
, pairs
2023-08-06 15:39:16 +07:00
Calvin Rose
ecc4d80a5a
Prepare for 1.30.0 release.
2023-08-05 18:58:04 -05:00
Calvin Rose
3df24c52f4
Merge pull request #1236 from primo-ppcg/range
...
Move `range` to corelib
2023-08-05 18:05:37 -05:00
primo-ppcg
8a70fb95b5
slight refactoring
2023-08-05 11:00:23 +07:00
primo-ppcg
d8b45ecd61
better test coverage
2023-08-03 20:39:32 +07:00
primo-ppcg
61712bae9c
speed up range creation
2023-08-02 01:26:03 +07:00