Ian Shehadeh
6aea7c7f70
add int/to-bytes
...
int/to-bytes unpacks the bytes of a 64-bit integer into a tuple.
2022-03-04 08:48:54 -05:00
Ian Shehadeh
75845c0283
int/to-number: restrict input to JANET_INTMAX/MIN
...
Previously int/to-number would fail if the input was outside
the range of an int32.
Because Janet numbers are doubles,
they can safely store larger ints than an int32.
This commit updates int/to-number to restrict the
value to the range of integers a double can hold, instead of an int32.
2022-02-21 12:54:38 -05:00
Ian Shehadeh
88db9751d7
add int/to-number: converts s64 and u64 to numbers
...
(int/to-number value) converts an s64 or u64 to a number.
It restricts the value to the int32 range,
so that `int32?` will always suceeded when called on the result.
2022-02-20 16:16:52 -05:00
Calvin Rose
a097537a03
Fix #919 - strange quasiquote behavior.
...
Nested expression in the quasiquote were being compiled with the "hint"
flag passed to the expression compilation, essentially telling the
compiler to put intermediates into the final slot, possibly overwriting
other intermediate values. This fix removes that flags on any recursive
calls to quasiquote.
2022-02-09 20:31:10 -06:00
Calvin Rose
06f613e40b
Update signature of :missing-symbol hook.
...
don't take env table as explicit argument - it is already available
as the env table of the fiber.
2022-01-27 21:24:01 -06:00
Calvin Rose
61c8c1e8d2
Merge pull request #914 from pyrmont/feature.missing-symbols
...
Support looking up missing symbols during compilation
2022-01-24 18:16:53 -06:00
Calvin Rose
46738825c0
Fix formating on master.
2022-01-21 16:44:11 -06:00
Michael Camilleri
1eb34989d4
Support looking up missing symbols during compilation
2022-01-21 13:07:11 +09:00
Michael Camilleri
2f3b4c8bfb
Consolidate related tests
2022-01-21 13:02:56 +09:00
Ian Shehadeh
651e12cfe4
test nested '& destructure and empty rest array
...
This commit adds two new tests for destructure patterns with '&:
- Test that the rest array can be empty
- Test that & can be nested
2022-01-20 08:54:56 -05:00
Ian Shehadeh
71cffc973d
add test: destructure with a nested tuple before &
...
This test ensures rest patterns work when
preceded by a more complicated pattern.
2022-01-19 14:01:28 -05:00
Ian Shehadeh
db631097b1
add support for & _ to match macro
...
This commit adds support for using & _ syntax to bind the remaining
values in an array in the match macro.
The commit also adds a few tests for the new syntax in suite0008
2022-01-19 13:29:34 -05:00
Ian Shehadeh
0d31674166
remove debug print in test suite0001
2022-01-19 12:49:02 -05:00
Ian Shehadeh
cb5af974a4
POC "rest" pattern in destructuring
...
Add support for using [& rest] to match the remaining values
in an array or tuple when destructuring.
the rest pattern is implemented by pushing remaining values in the
rhs to the stack once & is found on the lhs.
Then tuple is called and the result is assigned
to the next symbol on the lhs.
This commit DOES NOT implement handling for malformed patterns.
2022-01-15 14:51:44 -05:00
Calvin Rose
ffadf673cf
Merge branch 'master' of github.com:janet-lang/janet
2022-01-08 11:27:48 -06:00
Calvin Rose
5b5a7e5a24
Make top level vars reuse ref cell when redefined at the top level.
...
This improves the repl experience while not messing with existing code
very much, if at all.
2022-01-08 11:27:08 -06:00
Michael Camilleri
30a0c77d19
Fix 'redefs' typo in test suite
2022-01-07 13:28:22 +09:00
Calvin Rose
07ec89276b
Disable file read test to help CI.
2022-01-06 20:52:21 -06:00
Calvin Rose
a37dc1af9d
Merge branch 'redefs-work'
...
- Change the global binding name from :redefs to :redef
- Simplify internal representation of "redefinable bindings"
- Store "redefinable bindings in :ref rather than :value inside the
environment entries. This makes such bindings more like vars that
can't be set rather than defs.
2022-01-06 20:45:20 -06:00
Calvin Rose
03458df140
Merge pull request #898 from pyrmont/feature.redefs
...
Support redefinable `def` and `defmacro` bindings using `:redef`
2022-01-06 20:44:18 -06:00
Calvin Rose
99cfbaa63b
Tweaks on redef feature branch.
2022-01-06 20:38:15 -06:00
Ian Shehadeh
8d8a6534e3
add test for calling ev/read on normal fd
...
The test is almost identical to the os/open + :write test.
The only difference is the content is read back in with :read, not slurp
2022-01-06 19:35:30 -05:00
Michael Camilleri
ea9d5ec793
Change metadata keyword back to :redef
2022-01-02 12:35:22 +09:00
Michael Camilleri
ec65f038a8
Support :dynamic-defs dynamic binding
2021-12-29 16:39:00 +09:00
Michael Camilleri
8347439644
Support redefinable bindings
2021-12-18 13:05:16 +09:00
Calvin Rose
8ff2fecb26
Update readme.
2021-12-04 13:25:02 -06:00
Calvin Rose
309c3aaeb8
Merge pull request #867 from pyrmont/feature.custom-out-functions
...
Support sending output to a function
2021-12-04 11:17:58 -06:00
Calvin Rose
6f4af5fef8
Merge branch 'master' of github.com:janet-lang/janet
2021-12-04 10:28:16 -06:00
Calvin Rose
868cdb9f8b
Fix channel packing bug.
2021-12-04 10:28:00 -06:00
Grazfather
a69799aa42
Add tests for mapping different length sequences
2021-12-03 20:47:48 -05:00
Josef Pospíšil
e6babd84f7
Fix math/gamma and add math/log-gamma
2021-11-24 10:55:32 +01:00
Calvin Rose
868ec1a7e3
Add test case for missing struct proto
2021-11-23 23:17:24 -06:00
Calvin Rose
a99500aebf
Update suite0009 assert again.
2021-11-18 20:46:26 -06:00
Calvin Rose
aa5095c23b
Update assert message in suite0009
2021-11-18 20:39:29 -06:00
Calvin Rose
6660c1da38
Don't truncate test output on failures.
2021-11-12 20:06:28 -06:00
Michael Camilleri
4e263b8c39
Support using functions with :out dynamic binding
2021-11-13 01:42:44 +09:00
Calvin Rose
425a0fcf07
Add quoted literal support in the match macro.
2021-11-08 15:33:11 -06:00
Calvin Rose
7205ee5e0a
Update test output.
2021-11-06 19:29:15 -05:00
Calvin Rose
72c5db8910
Update test suite to better distinguish functional errors with
...
localname/peername.
2021-11-06 19:19:49 -05:00
Calvin Rose
2aa1ccdd76
Update test helper to be even les noisy.
2021-11-06 11:20:09 -05:00
Calvin Rose
0284df503f
Make test output less verbose
2021-11-06 11:01:21 -05:00
Calvin Rose
39c6be7cb7
Fix #861 - parser/produce caused state to be invalid for parser/state.
...
parser/produce was leaving a counter in the root state undecremented.
2021-11-04 19:38:37 -05:00
Calvin Rose
9cc4e48124
Update changelog and allow evaluating streams with dofile.
2021-10-30 14:43:06 -05:00
Calvin Rose
34c7f15d6d
Always return port in peername and localname
2021-10-30 10:56:40 -05:00
Calvin Rose
03f99752a7
Merge branch 'master' into struct-proto
2021-10-29 16:42:34 -05:00
Calvin Rose
6e38bf1578
Use more inclusive check for the %j formatter for valid symbols.
...
We did not allow arbitrary utf8 to be printed with %j, even though the parser
allows. Thos changes uses the existing built in utf8 detectiotion to
exclude only unprintable symbols from the docstring.
2021-10-29 11:08:53 -05:00
Calvin Rose
06aa0a124d
Add math/gcd
and math/lcm
to the core.
2021-10-24 11:43:07 -05:00
bakpakin
504411eade
Update suite 009 to do read and write in parallel.
2021-09-28 12:05:28 -05:00
Calvin Rose
cccbdc164c
Add (number combinator to peg).
...
This allows using Janet's number parser without creating
intermediate strings.
2021-09-19 13:02:16 -05:00
bakpakin
40ef224a95
Update test code.
2021-09-11 10:34:08 -05:00