Calvin Rose
8a394f2506
Merge branch 'master' into compile-opt
2024-06-01 13:03:36 -05:00
Calvin Rose
721f280966
Add with-env
.
2024-05-16 21:52:49 -05:00
Calvin Rose
f2d25a0da2
Add test case.
2024-05-04 16:14:26 -05:00
Calvin Rose
9e6abbf4d4
Fix asm roundtrip issue.
2024-03-10 09:07:11 -05:00
Calvin Rose
9142f38cbc
Fix #1341 .
2024-01-01 08:58:31 -06:00
Calvin Rose
a9176a77e6
Prevent bytecode optimization from remove mk* instructions.
...
These instructions read from the stack, and therefor have side effects.
Removing them without clearing the stack results in broken bytecode.
2023-11-22 08:18:23 -06:00
Calvin Rose
a3228f4997
Add changes and test cases for #1324
2023-11-09 11:18:03 -06:00
Calvin Rose
8c90a12e0f
More test cases.
2023-09-29 07:37:33 -05:00
Calvin Rose
e05bc7eb54
Address compiler bug with break
.
...
Using result from `break` expression could trigger code that would
work, yet contain invalid, dead code preventing good marshalling.
2023-09-28 20:14:22 -05:00
primo-ppcg
db366558e7
add :unless
loop modifier
2023-09-13 15:21:46 +07:00
primo-ppcg
a5ff26f602
add more test cases for partition
and mean
2023-09-08 16:30:44 +07:00
primo-ppcg
2f43cb843e
Allow one-term :range
and :down
forms
2023-08-29 10:59:16 +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
primo-ppcg
d8b45ecd61
better test coverage
2023-08-03 20:39:32 +07:00
Calvin Rose
e2459cfb47
Merge pull request #1185 from chris-chambers/macro-lints-fix
...
Fix order in which *macro-lints* is set during expansion
2023-06-18 09:39:25 -05:00
primo-ppcg
2a7ea27bb7
do not expand false branch more than once
...
Fixes #1191
2023-06-11 19:15:48 +07:00
primo-ppcg
1077efd03a
update if-let
...
Fixes #1189
2023-06-11 17:19:29 +07:00
primo-ppcg
94722e566c
if-let better test coverage
2023-06-11 12:07:13 +07:00
Christopher Chambers
163f7ee85d
Add test for maclintf in nested macro invocations
2023-06-10 16:52:20 -04:00
Christopher Chambers
52d3470cbe
Fix order in which *macro-lints* is set during expansion
...
Previously, `*macro-lints*` was set after the `macroexpand1` fiber was
resumed, rather than just before. And, `*macro-lints*` was never
cleared. This behavior was typically fine since the main users of
`compile` pass the same lint array repeatedly, and the first macro
expansion (somewhere in boot.janet) never produces a lint. But, when
compiling with a fresh lint array, if the first macro invocation
produced a lint, the lint was always lost.
2023-06-09 12:53:10 -04:00
primo-ppcg
b5407ac708
take-drop dictionaries
...
Return table for `take` of dictionary types.
Allow `drop` of dictionary types.
2023-06-07 19:20:05 +07:00
primo-ppcg
472ec730b5
take-drop symmetry
...
Allow `take` from the end of bytes or indexed (as `drop` does).
Allow `drop` from fibers (as `take` does).
2023-06-07 18:12:36 +07:00
sogaiu
9675411f35
Reorganize tests
2023-06-02 07:04:07 +09:00