Calvin Rose
d033412b1f
Add symbol/slice and keyword/slice
2020-06-27 15:22:15 -05:00
Calvin Rose
9c5e97144d
More small changes to help with cross compilation
...
via makefile. Add option to turn off built in
getline via janetconf.
2020-06-27 12:39:16 -05:00
Calvin Rose
8b96289e2f
Merge branch 'master' of github.com:janet-lang/janet
2020-06-27 11:24:03 -05:00
Calvin Rose
51ff43e2f2
Update range checks for 64 bit integers.
2020-06-27 11:23:47 -05:00
Calvin Rose
1e30f4f973
Merge pull request #427 from pyrmont/nil-empty-string
...
Change default string representation of nil to empty string
2020-06-26 22:47:16 -05:00
Jason Pepas
f9f90ba1d6
Support for systems missing O_CLOEXEC
2020-06-26 14:44:57 -05:00
Jason Pepas
51bf8a3538
Add ppc to os/arch
2020-06-26 04:11:21 -05:00
Josef Pospíšil
7b033a48a3
Wrap both reverse and reversed docstring to 80 chr
2020-06-25 09:43:10 +02:00
Josef Pospíšil
1b420f69aa
Fix reverse docstring
2020-06-25 09:35:03 +02:00
Calvin Rose
6a187a384b
Make zipcoll more generic.
...
Work with any iterable (next) type.
2020-06-24 16:10:57 -05:00
Calvin Rose
ac5de1f96e
Change compare-primitive to cmp.
...
cmp is implemented as a VM instruction rather than
a function.
2020-06-24 16:00:00 -05:00
Calvin Rose
6c917f686a
Add :h default peg class, as well as ad \v to whitespace.
2020-06-24 08:40:23 -05:00
Calvin Rose
de9951594e
Allow setting dynamic bindings at C top level.
...
Before, these bindings we just ignored. However, it useful for
controlling janet_printf and janet_eprintf, for example. These can
be called from C code without being inside a call to janet_continue.
2020-06-22 08:56:04 -05:00
Calvin Rose
561fc15ae9
Address #426 parse errors in *out janet_dostring
...
This should make its use a little more robust for
simple usage. To avoid printing to stderr, use
janet_table_put(env, janet_ckeywordv("err"), janet_wrap_false());
2020-06-22 08:34:17 -05:00
Calvin Rose
803f17aa90
Add eachy and repeat to make looping easier.
...
Like eachk and eachp, use eachy and repeat to bring loop
verbs outside of the loop macro. These new macros are very simple
and easy to understand, in contrast to the loop macro which is of
medium complexity.
2020-06-21 18:48:06 -05:00
Calvin Rose
08a3687eb5
Fix #428
...
Add binding check for generate verb in loops. The check is present
in other loop verbs.
2020-06-21 15:57:55 -05:00
Michael Camilleri
c4035b2273
Change string representation of nil to empty string
2020-06-21 17:54:06 +09:00
Calvin Rose
5c364e0f7c
Better roundtrip jdn.
...
Use the most precise format specifier, such that output jdn numbers
are more accurate.
2020-06-18 21:54:34 -05:00
Calvin Rose
9cfc3d9d37
Update to 1.10.1
2020-06-18 19:24:17 -05:00
Calvin Rose
b5e32a9ce5
Expose janet_table_clear.
2020-06-15 15:33:41 -05:00
Calvin Rose
79f5751375
Add array/trim and buffer/trim.
2020-06-14 17:40:48 -05:00
Calvin Rose
106437bd45
Fixes #423
...
Re-add ifdef for realpath config option.
2020-06-14 15:50:09 -05:00
Calvin Rose
1bddb87a0c
Fix MSVC Warnings.
2020-06-14 14:20:38 -05:00
Calvin Rose
19f3568e18
Update for 1.10.0.
2020-06-14 12:15:56 -05:00
Calvin Rose
17bdfbb08b
Fix broken trace functionality.
...
This was an older regression that caused trace to emit
garbage output in most cases.
2020-06-14 11:58:20 -05:00
Calvin Rose
c87a0910d0
Add some flags to creating threads for more control.
...
Allow lightweight/heavyweight threads, and make default lightweight.
This means multithreaded programs can save lots of memory by default.
2020-06-13 09:42:16 -05:00
Calvin Rose
86e12369b6
Add alias for PEG repeat.
...
A tuple where the first element is an integer is
a shortand for this.
2020-06-11 11:23:43 -05:00
Calvin Rose
6d096551f0
Add Peg combinators 'to' and 'thru'.
...
Inpsired by the REBOL operators of the same name, these
combinators match bytes up to or inculding a given pattern.
(to patt) is (almost) equalivalent to (any (if-not patt 1)), and
(thru patt) is equivalent to (* (to patt) patt). The one difference
is that if the end of the input is reached and patt is not
matched, the entire pattern does not match.
2020-06-10 21:18:50 -05:00
Calvin Rose
2595c8a853
Properly hide private functions in boot.janet
2020-06-10 00:02:07 -05:00
Mike Beller
9824a34d76
Remove dead code.
2020-06-06 08:55:20 -04:00
Mike Beller
76c3436377
Remove vestigial comparison methods from int types
2020-06-05 11:07:48 -04:00
Mike Beller
a4178d4b3c
All tests pass for compare.
2020-06-05 10:51:35 -04:00
Mike Beller
3e423722c6
Actually got the comparisons working for s64 (still need to fix u64)
2020-06-04 18:27:48 -04:00
Mike Beller
01837f2bb6
All tests pass.
2020-06-04 15:27:36 -04:00
Mike Beller
411c5da6d3
compare functions now work for built ins and 'objects'
2020-06-04 13:49:09 -04:00
Mike Beller
7658ea8335
primitive tests working. issues remain with polymorphic.
2020-06-04 12:46:58 -04:00
Mike Beller
81d301a42b
Initial commit of base functionality for compare
2020-06-04 12:23:54 -04:00
Leaf
bed02c2f95
Remove unused flags
2020-06-02 09:14:31 +00:00
Leaf
75bc69ba2f
Implement os/realpath on Window with _fullpath
...
This is similar to realpath but differs in that realpath will complain
if the path does not exist. We could add our own exists check if we
really wanted to match that behaviour.
2020-06-02 09:05:41 +00:00
Calvin Rose
eb9f74a273
Silence MSVC warning.
2020-05-30 10:06:39 -04:00
Matthew Carter
ee94828355
Fix for double free on fclose due to GC not knowing it failed
2020-05-28 15:35:09 -04:00
Calvin Rose
fff66649aa
Fix issue #416 .
...
Be really sure we don't pass too large of a size to memcpy.
There seem to be some situations where the slotcount and the ua.count
do not match at all, so use the mimimum for copying.
2020-05-28 10:47:22 -05:00
Calvin Rose
c19bbfce78
Make style consistent.
2020-05-23 11:07:57 -05:00
Calvin Rose
e9fdbe0c89
Merge pull request #411 from LouisJackman/make-ctrl-c-interrupt-current-form
...
Make Ctrl-C Cancel the Current Form; Only Exit if Column 0 Outside of Form
2020-05-23 11:33:19 -04:00
LouisJackman
e220f44953
Simplify and don't replace history for cancelled forms
2020-05-23 08:36:40 +01:00
Calvin Rose
41f8be2c53
Fix flycheck when using the use
macro.
...
Flycheck originally expected `use` to have
the same arguments as `import`, but this is not the case.
2020-05-21 18:51:17 -05:00
LouisJackman
c3e4cbe950
Address compilation warning about modifier order
2020-05-21 18:51:25 +01:00
LouisJackman
50df5000c2
Update older run-context code
2020-05-21 18:47:47 +01:00
LouisJackman
3c8930b72b
Get tests passing again by returning keyword rather than nil from chunks
2020-05-21 18:37:15 +01:00
LouisJackman
f0572c4d5f
Remove REPL-within-form thread-local bool
2020-05-21 18:31:21 +01:00
Calvin Rose
057ba8a4e1
Fixes #409
...
Use the correct count in a memcpy.
2020-05-21 01:35:37 -05:00
Calvin Rose
677737d345
Fixes #412 Lookahead does not move cursor.
2020-05-21 01:22:08 -05:00
LouisJackman
164ed0b325
Get expected behaviour; cleanup after confirming behaviour is desired
2020-05-20 22:40:05 +01:00
Mike Beller
8263789602
Fix issue #408 -- make "next" work for typed arrays, and also fix
...
bug where tarray/new failed to fully check the type of it's last
argument.
2020-05-20 13:30:48 -04:00
Calvin Rose
b72845609f
Add JANET_GIT to jpm.
...
This should allow work arounds for some windows installs.
Also, be clever about finding the location of te current git
executable on windows to avoid some path issues that seem to
occur on some windows installations.
2020-05-19 18:36:58 -04:00
Calvin Rose
e623690295
Use keywords in the assembly interface.
...
This is simply more idiomatic, removes some unused and undocumented
features of the assembly interface, and simplifies it somewhat.
2020-05-19 13:51:39 -05:00
Calvin Rose
0e828792ae
Fix segfault on bad loop. Fixes #407 .
2020-05-19 09:45:45 -05:00
Calvin Rose
b7cfc08fc5
Improve line and col tracking in parser.
...
Unconditionally add line and column information if
a parsed value is a tuple - before, some parsed tuples
had line and col information omitted.
2020-05-18 19:05:27 -05:00
Calvin Rose
92f0e1719b
Be less eager to set macro-form in macex1.
2020-05-18 18:37:41 -05:00
Calvin Rose
9e5f203302
Expose line, col in macros via (dyn :macro-form)
...
This exposes line and column indirectly via
tuple/sourcemap and allows interesting debug macros.
2020-05-18 18:27:35 -05:00
Calvin Rose
df32cd0aca
Update tracev macro to be simpler and single arity.
...
Reference #401
2020-05-18 17:43:41 -05:00
Calvin Rose
ae5dc8c45b
Merge pull request #401 from LouisJackman/add-dbg-core-macro
...
Add a dbg macro for easy var dumping
2020-05-18 18:30:14 -04:00
LouisJackman
b1ed5b0707
Add "trace " prefix missed out from previous commit
2020-05-18 22:02:56 +01:00
LouisJackman
e9a5cfaddd
Adopt Andrew Chamber's suggestions
2020-05-18 21:55:21 +01:00
LouisJackman
e0130e7fd7
"Literal" -> "Expression" for trace-pp msg
2020-05-17 08:18:44 +01:00
LouisJackman
fb491f0d7c
Put back erroneously deleted "Literal"
2020-05-17 08:12:54 +01:00
LouisJackman
9109e369ff
Incorporate suggestions from PR
2020-05-16 20:18:00 +01:00
Calvin Rose
1bb9a9368b
Make sure winsock2.h is included before windows.h
...
This should be true in the normal build, and especially in the
amalgamated build.
2020-05-16 12:41:26 -05:00
LouisJackman
ca3dac7e87
Return an immutable tuple instead
2020-05-16 15:50:47 +01:00
LouisJackman
59302d4f42
Return dbg values to work inside complex exprs
2020-05-16 15:42:16 +01:00
LouisJackman
fabb722c8d
Add a dbg macro for easy var dumping
2020-05-16 15:15:57 +01:00
Calvin Rose
7a84fc4742
Fix infinite loop in some cases.
...
Problem - reusing a tainted variable without reinitializing.
2020-05-16 08:28:50 -05:00
Calvin Rose
cf670153f9
Add :fresh option to import.
2020-05-15 17:19:37 -05:00
Calvin Rose
4ae372262b
1.9.1 release.
2020-05-12 09:19:09 -05:00
Calvin Rose
c947bda604
Remove .breakall and .clearall conditionally.
...
If disasm not available, these functions cannot be implemented.
2020-05-12 08:52:36 -05:00
Calvin Rose
00451777fe
Add meson builds to sourcehut CI.
2020-05-12 08:46:26 -05:00
Calvin Rose
3100080a50
Add NO_UMASK and NO_REALPATH config options.
2020-05-10 23:07:54 -05:00
Calvin Rose
e013381e72
Conditionally ignore pclose as well as popen.
2020-05-10 21:06:52 -05:00
Calvin Rose
d05bb1c125
Fix nanboxing issue.
2020-05-10 20:14:47 -05:00
Calvin Rose
235605bfa4
1.9.0 Release.
...
Fix up some documentation as well.
2020-05-10 16:45:33 -05:00
Calvin Rose
e8b3587946
Silence clang warnings about missing initializers.
2020-05-10 16:00:55 -05:00
Calvin Rose
9040ac6a0c
Silence some warnings about pointer signedness.
2020-05-09 23:58:45 -05:00
Calvin Rose
73dba691b1
Re-disable processes on emscripten build.
2020-05-09 12:04:47 -05:00
Calvin Rose
b1f76139a7
Add several configurable options - #379
2020-05-09 12:00:01 -05:00
Calvin Rose
6b986fecb0
Merge branch 'master' of github.com:janet-lang/janet
2020-05-09 11:07:15 -05:00
Calvin Rose
535ab8302b
Add errorf to core.
2020-05-09 11:06:20 -05:00
Calvin Rose
7125b3430c
Merge pull request #383 from andrewchambers/rngdoc
...
Improve rng doc string accuracy.
2020-05-09 11:35:01 -04:00
Andrew Chambers
057486cf56
Avoid setting O_CLOEXEC on stdin/stdout/stderr.
2020-05-09 22:26:50 +12:00
Andrew Chambers
f94e726271
Improve rng doc string accuracy.
2020-05-09 12:11:08 +12:00
Calvin Rose
95660002e1
fix include sys/fcntl.h to fcntl.h
2020-05-07 14:54:03 -05:00
Calvin Rose
95c669389b
Merge pull request #378 from andrewchambers/tweak
...
Tweak comment, remove extra include.
2020-05-07 10:33:19 -04:00
Calvin Rose
084fc9776d
Use SOCK_CLOEXEC correctly.
2020-05-07 07:55:08 -05:00
Andrew Chambers
1498fdb7b0
Tweak comment, remove extra include.
2020-05-07 20:44:04 +12:00
Calvin Rose
79c3139748
Check for SOCK_CLOEXEC.
...
Not available on all platforms.
2020-05-06 23:44:01 -05:00
Calvin Rose
bdd64f5656
Merge branch 'master' of github.com:janet-lang/janet
2020-05-06 18:52:57 -05:00
Calvin Rose
dc3e9fb77c
Add CLOEXECs when getting file descriptors ( #374 )
...
This should help address leaking file descriptors in multithreaded
programs. There are a few cases where a race can occur though, as
some apis (fopen and mktemp).
2020-05-06 18:33:25 -05:00
Andrew Chambers
06c28f3a4d
Set the CLOEXEC flag on file/temp files.
2020-05-06 11:16:08 +12:00
Calvin Rose
688fe6db5e
Merge pull request #370 from andrewchambers/spawnrace
...
Fix (mostly nonsensible) race condition in multi threaded processes
2020-05-05 10:33:41 -04:00
Calvin Rose
e3862b86b5
Use spork indent on boot.janet.
2020-05-05 09:17:09 -05:00
Calvin Rose
125cd222bb
Pretty print tab characters as \t.
2020-05-05 00:03:12 -05:00
Andrew Chambers
a0f351c9fa
Fix (mostly nonsensible) race condition in multi threaded processes using os/execute with os/setenv.
2020-05-05 16:03:13 +12:00
Calvin Rose
f7b49a2c91
Improve use of @
in match.
2020-05-04 18:28:20 -05:00
Calvin Rose
fd70b47768
Merge branch 'master' of github.com:janet-lang/janet
2020-05-02 23:40:11 -05:00
Calvin Rose
5d1fd390a6
Fix debugger regression.
2020-05-02 23:40:00 -05:00
Calvin Rose
8b5663e385
Merge pull request #363 from uasi/fix-typo-in-doc
...
Fix typo in doc
2020-05-02 12:11:18 -04:00
Calvin Rose
8b5bcaee3c
Add lenprefix combinator to pegs.
...
This lets peg match n repeitions of a pattern, where
n is supplied from other parsed input and is not a constant.
2020-05-02 10:39:35 -05:00
Tomoki Aonuma
ca845aa256
Fix typo in doc
2020-05-02 02:36:55 +09:00
Calvin Rose
761ea65d81
Add fiber/roor and allow net/server to take
...
a numeric port.
2020-04-30 23:21:26 -05:00
Calvin Rose
1dc32d5e3d
Revert inclusion of dedent.
...
Dedent has been moved to spork as misc function.
There are two many different, incompatible ways to 'dedent'
as string, and it seems rather specific to add to the core like it is.
2020-04-30 21:35:22 -05:00
Calvin Rose
1c0a015cc8
s/WSALastError/WSAGetLastError()/g
2020-04-30 13:26:14 -05:00
Calvin Rose
bee415217d
Fix extra bindings.
2020-04-29 21:57:19 -05:00
Calvin Rose
73989f5cc7
Consolidate windows and posix socket code.
...
Also remove code that ignored sigpipe and instead try
our best to ignore through various platform specific mechanisms.
2020-04-29 21:07:21 -05:00
Calvin Rose
dd458c8ab5
Make JANET_NO_ASSEMBLER not break build.
2020-04-28 23:04:24 -05:00
Calvin Rose
63e9790123
Fix flag check in pretty print.
2020-04-28 10:00:24 -05:00
Calvin Rose
70e1f3ac81
Fix regression in repl.
2020-04-28 08:20:07 -05:00
Calvin Rose
67f1872f4a
Expose debugger-env
...
This makes it easier/possible to use the debugging
functionality in a more flexible way.
2020-04-27 23:32:21 -05:00
Calvin Rose
8bbb7907d6
Run parser error handler in the correct env in run-context.
2020-04-27 20:29:16 -05:00
Calvin Rose
c98e1f3cae
Update documentation for net/read and net/chunk.
2020-04-27 19:26:05 -05:00
Calvin Rose
6b0f93ce8a
Update documentation for the -q flag.
2020-04-27 18:57:53 -05:00
Calvin Rose
80f19a0ab7
Fix behavior of -q flag.
...
Don't surpress errors at the repl.
2020-04-27 18:12:22 -05:00
Calvin Rose
41894eb285
Add docstrings to net.c
2020-04-26 14:11:47 -05:00
Calvin Rose
3535efd977
Remove %u format specifiers.
2020-04-26 13:47:36 -05:00
Calvin Rose
f6bd41ada7
Add %M, %m, %N, and %n formatters.
...
These will not truncate long values.
2020-04-26 13:17:28 -05:00
Calvin Rose
7b5f40772f
Disable networking for emscripten build.
2020-04-26 12:37:27 -05:00
Calvin Rose
d2ebf4b52d
Merge branch 'net'
2020-04-26 12:27:37 -05:00
Calvin Rose
ce7d51f9be
Add dedent to core.
...
Makes longstrings easier to use - can be combined with comptime
for overhead free long strings.
2020-04-26 11:53:26 -05:00
Calvin Rose
da4d8254fa
Silence warning in MSVC about VLAs.
...
When janet.h is included as a C++ header in
MSVC, shows warnings.
2020-04-25 17:13:25 -04:00
Calvin Rose
57332c5ccf
Change order of declarations for MSVC C++ support.
2020-04-25 15:42:44 -05:00
Calvin Rose
9bc5ac05c4
Add the parse function.
2020-04-25 12:46:32 -04:00
Calvin Rose
84974d6c56
Make repl printing work from current environment.
...
Although this "unprotects" output in the repl, people
in a repl usually want control, not protection.
2020-04-24 22:29:02 -05:00
Calvin Rose
da438a93e0
Restore lexicographic comparison of tuples.
2020-04-24 16:51:04 -05:00
Calvin Rose
a87015598c
Make janet_equals and janet_compare non recursive
...
This makes these operatios use constant stack space rather
than linear stackspace given the size of the inputs. This is important
to prevent certain parser input from causing a stack overflow - in
general, we try to avoid unbounded recursion.
2020-04-24 16:18:31 -05:00
Calvin Rose
c335bf5dc5
Update doc doc.
2020-04-23 12:15:12 -05:00
Calvin Rose
c876e63010
Fix overflow in exponent estimation in strtod.c.
...
Found by OSS-Fuzz.
2020-04-21 18:32:59 -05:00
sogaiu
5c162ce588
Add flags to fiber/new error message
2020-04-21 13:47:56 +01:00
Calvin Rose
ea46f096c2
Remove placeholder config variables.
2020-04-20 20:10:24 -05:00
Calvin Rose
9b5c6112e5
The -q option no longer disables repl output.
2020-04-20 19:28:30 -05:00
Calvin Rose
d8617514f8
Add jpm rule-tree.
...
Useful for debugging jpm project.janet files.
This tree printing logic can also be reused for
showing dependency information in the future.
2020-04-20 18:32:25 -05:00
Calvin Rose
e579d1d89f
Add jpm rule-tree.
...
Useful for debugging jpm. This funtionality also maybe reused for
for showing a dependency tree as well.
2020-04-20 18:31:14 -05:00
Calvin Rose
42c257d0fc
Merge branch 'master' into net
2020-04-19 13:38:51 -05:00
Calvin Rose
d5e5c98dc8
Merge branch 'net' of github.com:janet-lang/janet into net
2020-04-19 13:37:54 -05:00
Calvin Rose
5054eb4276
Add JANET_MARSH_UNSAFE flag.
...
This allows unmarshal to optional marshal raw
pointers and cfunctions and send them across threads.
This flag is only exposed in the C API as it is very easy
to misuse and cause segfaults.
2020-04-19 10:56:39 -05:00
Calvin Rose
122c77dbf6
Merge pull request #353 from andrewchambers/require
...
Fix outdated require docstring.
2020-04-19 10:44:37 -04:00
Calvin Rose
3c66cab4e7
Remove extra binding in require.
2020-04-19 09:44:02 -05:00
Calvin Rose
738fd479b3
Merge branch 'master' of github.com:janet-lang/janet
2020-04-19 09:41:49 -05:00
Calvin Rose
5c612095a1
Address #352 , #351 , Use :source argument in dofile
...
Also re-add circular dependency detection.
2020-04-19 09:38:18 -05:00
Calvin Rose
3e60e82529
Add circular dependency detection.
...
This detection will not stop compilation, as errors
in general do not stop compilation unless exit on error
is passed inside an import, but should notify the user something
is going on.
2020-04-19 09:35:14 -05:00
Calvin Rose
60f8dd0bfc
Renable :source argument to dofile.
...
Allows for some more interesting usage of
loaders.
2020-04-19 08:54:24 -05:00
Andrew Chambers
2a7008a82c
Fix outdated require docstring.
2020-04-19 23:02:35 +12:00
Calvin Rose
0d3c6abee8
POLLER -> POLLERR
2020-04-18 19:15:59 -04:00