Calvin Rose
df32109eea
Small typo fixes in comments.
2026-03-15 20:22:20 -05:00
Calvin Rose
8b89901298
Deduplicate lints.
...
Why see the same message twice?
2026-03-15 18:27:13 -05:00
Calvin Rose
079776d39e
Elaborate comment.
2026-03-15 15:34:52 -05:00
Calvin Rose
6c2f08ef49
Add unit tests for variable shadowing.
2026-03-15 13:34:12 -05:00
Calvin Rose
980999c97b
Make test suite not shadow any variables.
2026-03-15 13:14:10 -05:00
Calvin Rose
1197cfe433
Check redef only once per compile call.
2026-03-15 12:56:10 -05:00
Calvin Rose
c63c6740d9
First pass at linting binding shadowing.
...
Prevent redefining bindings by accident. There are
a few cases where we want to allow this, such as the `default` macro, so
we allow a keyword :shadow to be included in the `def` expression to
turn off this lint.
TODO:
* Clean up test suite to remove binding shadowing
* Make sure that we don't get lints with *redef* turned on
* Add positive and negative tests for lint messages.
* Add location of shadowed binding in message
2026-03-15 11:24:07 -05:00
Calvin Rose
612971503d
Add LLM, AI and tool usage section to contribution guide. ( #1730 )
...
* Add LLM, AI and tool usage section to contribution guide.
* Word order and punctuation.
* Add suggestions.
- No bot PRs
- Define "Large" code contribution
Also try to disuade users from using AI for one-line or simple changes, instead
preferring to treat that as "feedback" and rewrite instead.
* Remove wiggle room for any AI code in the Janet runtime.
Still leave open the possibity for AI / tool usage for static analysis
and bug repots. However, the 5-15 lines of code limitation is fuzzy and
arbitrary. We can just say no.
* Remove word.
2026-03-14 23:13:29 -05:00
PinieP
df56efbae0
Fix: add missing :symbolmap keyword to disasm function ( #1729 )
2026-03-12 19:25:51 -05:00
sogaiu
b160f4f5c0
Macro hygiene tweaks ( #1727 )
...
* Tweak hygiene for when-with, if-with, when-let
* Tweak hygiene for loop1 helper
* Tweak hygiene for repeat
* Tweak hygiene for seq and catseq
* Tweak hygiene for -?> and -?>>
* Tweak hygiene for varfn
* Tweak hygiene for ev/with-deadline
* Tweak hygiene for ffi/defbind-alias + ffi/defbind
---------
Co-authored-by: sogaiu <983021772@users.noreply.github.com >
2026-03-11 19:06:43 -05:00
Calvin Rose
a0cc867f14
Improve macro hygiene in boot.janet.
2026-03-09 19:46:55 -05:00
Calvin Rose
8f446736ed
Fix #1723 - handle prompt longer than terminal is wide.
...
When this happened, we tried to print a buffer with a negative length
that resulted in invalid memmove call. This fix both checks that we
don't tried to append a negative buffer, and truncates a prompt that is
too long for the termimal so that one can still enter text with at least
16 visible characters for data entry.
2026-03-07 15:28:59 -06:00
PinieP
decd7078af
fix janet_make_threaded to return threaded channel ( #1724 )
...
janet_make_threaded previously created a channel with threaded set to 0
2026-03-07 15:01:03 -06:00
McSinyx
b96350f132
Align items in multiline pretty format (%m and %p) ( #1721 )
...
Indentation levels are not sufficiently clear for deeply nested
data structures. Instead, align items in a collection
with its opening bracket, also known as hanging indentation.
To avoid guessing the length of a "short" collection to print it
on one line, items are now always printed on separate lines.
2026-03-05 19:34:05 -06:00
Calvin Rose
aa63adccb4
Update CHANGELOG.md
2026-03-02 19:39:21 -06:00
Calvin Rose
7fc12ff167
Use ConnectEx for non-blocking connect on windows when available.
...
Still fallback to blocking connect with WSAConnect when ConnectEx is not
available or applicable, but ConnectEx is preferred and recommended by
Microsoft.
Also make some changes to our use of OVERLAPPED in various places in the
ev code, replacing all uses with JanetOverlapped. This also let's us
avoid reusing internal fields for OVERLAPPED which may or may not be
used in various places.
2026-03-02 19:39:21 -06:00
Calvin Rose
39f8cf207c
Cast for warning on mingw DWORD printing.
2026-03-01 12:24:03 -06:00
Calvin Rose
95f2e233c5
Try io.h on windows
2026-03-01 12:20:15 -06:00
Calvin Rose
e8f9c12935
Fix regression where private main was not run.
2026-03-01 10:52:52 -06:00
Calvin Rose
32d75c9e49
Dup io file descriptors when marshalling closable files.
...
For unclosable files, no need to dup, but for closable files we can get
a resource leak. Valgrind and similar tools won't catch this but IO will
unexpectedly start going to the wrong descriptor if a file was
transferred to a new thread, closed, and then a new file was created.
2026-03-01 10:39:50 -06:00
Calvin Rose
5fec2aa9df
Move some files around code more defensively for mitigation.
2026-02-27 18:19:40 -06:00
Brett
54fbd7607f
Fix GC collecting active fiber during nested janet_continue ( #1720 )
...
janet_collect() marks janet_vm.root_fiber but not janet_vm.fiber.
When janet_pcall (or janet_continue) is called from a C function,
the inner fiber becomes janet_vm.fiber while root_fiber still points
to the outer fiber. If GC triggers inside the inner fiber's execution,
the inner fiber is not in any GC root set and can be collected —
including its stack memory — while actively running.
This also affects deeply nested cases: F1 -> C func -> janet_pcall ->
F2 -> C func -> janet_pcall -> F3, where F2 is saved only in a C
stack local (tstate.vm_fiber), invisible to GC.
Fix: in janet_continue_no_check, root the fiber with janet_gcroot
when this is a nested call (root_fiber already set). Each nesting
level roots its own fiber, handling arbitrary depth. Top-level calls
(event loop, REPL) skip the root/unroot entirely since root_fiber
is NULL.
Add test/test-gc-pcall.c: standalone C test covering both single
and deep nesting cases.
Co-authored-by: Brett Adams <brett@bletia-9.local >
2026-02-27 18:13:46 -06:00
sogaiu
019829fdf9
Tweak a docstring and a comment ( #1718 )
...
Co-authored-by: sogaiu <983021772@users.noreply.github.com >
2026-02-25 17:51:54 -06:00
Calvin Rose
2602bec017
Check stderr for redirection before turning on/off color.
2026-02-21 08:17:12 -06:00
Calvin Rose
403b2c704a
Add sanitizer test to github actions and sr.ht builds.
...
This will run both clang and gcc sanitizers as part of ordinary testing.
2026-02-20 18:08:09 -06:00
Calvin Rose
ca9ffaa5bb
Avoid memory leak when canceling fibers with threaded channels.
...
Objects in channels are sent as messages that need to be freed by the
consumer. However, in certain cases, no consumer is available and the
messages were being discarded without properly being freed. This should
also fix `-fsanitize=address` on GCC and CLANG with the default test
suite.
2026-02-20 14:47:00 -06:00
Calvin Rose
e61194a8d9
Remove older extra channel unlocks.
2026-02-20 08:17:25 -06:00
Calvin Rose
08e4030487
Add builders for issue #1716
2026-02-20 08:00:36 -06:00
Calvin Rose
56b5998553
Suspicious locking behavior with select.
...
This looks like it could cause deadlocks with threaded channels
(normal channels are unaffected, locking/unlocking is a no-op).
2026-02-20 07:35:18 -06:00
R Fisher
ea997d585b
fix multicast on illumos ( #1717 )
...
illumos, like BSD, expects IP_MULTICAST_TTL to be
an unsigned char
2026-02-20 07:30:30 -06:00
Calvin Rose
fc725e2511
Prepare for next patch release.
2026-02-18 08:46:17 -06:00
Calvin Rose
d636502c32
Fix vestigial doc string.
2026-02-18 08:41:31 -06:00
Calvin Rose
0fea20c821
Prepare for v1.41.2 and indicate vm changes for stack correction.
2026-02-18 08:27:10 -06:00
Calvin Rose
91cc499e77
1.42.2 patch.
2026-02-18 08:19:55 -06:00
Calvin Rose
68850a0a05
Update for 1.41.2 patch.
2026-02-18 08:19:13 -06:00
Calvin Rose
d3d7c675a8
Update CHANGELOG.md
2026-02-17 18:56:21 -06:00
Calvin Rose
b2c9fc123c
Generate JOP_PUT_INDEX in the compiler when possible.
2026-02-17 09:07:01 -06:00
Calvin Rose
fa0c039cd3
Add regression test for issue #1714
2026-02-17 07:59:08 -06:00
Evan Shaw
78ef9d1733
Initialize memory allocated by put ( #1715 )
2026-02-17 07:50:50 -06:00
sogaiu
b6676f350c
Use snprintf instead of sprintf - sequel ( #1713 )
...
Co-authored-by: sogaiu <983021772@users.noreply.github.com >
2026-02-16 09:12:02 -06:00
Calvin Rose
0299620a2d
Code defensively with regard to stack resizes from custom get and put
...
for abstract types.
Abstract types whose get/put/length/etc. implementations allocated fiber
slots could break the VM by invalidating the stack pointer in the
interpreter. This is admittedly a bit unusual but is something most
users would probably expect to work. Debugging this would be a real pain.
2026-02-16 09:02:07 -06:00
Calvin Rose
739d9d9fe3
Expose module/add-syspath and update CHANGELOG.md
2026-02-15 22:20:54 -06:00
Calvin Rose
1557f9da78
Don't reference argv after fiber may have been resized.
2026-02-15 21:54:42 -06:00
Calvin Rose
529d8c9e4a
Improve ability to load modules by full path.
...
Be explicit when we are including this functionality. Add a function
module/add-file-extension that can do this programatically.
2026-02-15 21:10:26 -06:00
Calvin Rose
2df16e5a48
Allow garbage collection to be called inside the module entry.
...
This usually shouldn't be needed, but in the case that it is, or if
garbage collection is triggered manually, we can prevent use-after-free.
2026-02-15 18:46:21 -06:00
Calvin Rose
b0db2b22d6
Remove macos-13
2026-02-15 11:18:40 -06:00
Calvin Rose
8b6d56edae
Patch release to 1.41.1
2026-02-15 10:36:46 -06:00
Calvin Rose
a2a7e9f01e
Add explicit include of inttypes.h
2026-02-15 10:24:56 -06:00
Calvin Rose
4b078e7a45
Use correct format specifier on windows if missing message.
2026-02-15 10:17:16 -06:00
Calvin Rose
5c0bb4b385
Cosmo libc builds were not working.
2026-02-15 09:57:10 -06:00
Calvin Rose
2aaa7dfa10
Sort keys when compiling struct and table literals.
...
Order of evaluation becomes more clear in some cases.
2026-02-15 09:42:55 -06:00
Calvin Rose
10bb17199c
Prepare for 1.41.0 release
2026-02-15 08:45:56 -06:00
Calvin Rose
0aa7dfeb9a
Work on windows for WSAConnect not working.
...
For remote connections, if you did not manually wait for the connection
to settle, the programmer would see unspecified network errors. This is
is because the underlying TCP Connection had not been established yet.
The correct way to deal with this is to use ConnectEx if available
instead of WSAConnect.
2026-02-14 21:11:28 -06:00
Calvin Rose
8f7c32e5cb
Update for msvc build.
2026-02-14 18:31:57 -06:00
sogaiu
abd7bb1110
Use snprintf instead of sprintf ( #1711 )
...
Co-authored-by: sogaiu <983021772@users.noreply.github.com >
2026-02-14 09:04:33 -06:00
Calvin Rose
d81512723b
When pretty printing, don't sort keys for huge tables.
...
This was exposed when printing `(invert (range 200000))`, which
isn't so large that we shouldn't be able to sort it, but was taking
far too long to compute.
2026-02-14 08:57:27 -06:00
Calvin Rose
2a54154976
Don't use preload on absolute paths.
...
When importing full paths, the old preload code was preventing
(import <fullpath> :fresh true) from working as expected.
2026-02-13 19:36:09 -06:00
Calvin Rose
306ce892ea
Merge branch 'make-modules-easier'
2026-02-06 00:31:08 -06:00
Calvin Rose
c7c3821aa6
Remove extra output from peg test.
2026-02-06 00:23:45 -06:00
Calvin Rose
d2685594f9
VERBOSE=1 caused tests to fail as we did more asserts inside the assert.
...
Thenc checked stderr for messages. Since the helper makes assert write
to stderr, this caused extra cruft in our test output.
2026-02-06 00:17:11 -06:00
Calvin Rose
ca5c617fba
More tweaks to peg suite for arm32 failures.
2026-02-06 00:04:18 -06:00
Calvin Rose
16b449a137
Print "actual" output on verbose mode for suite-peg
2026-02-05 23:52:28 -06:00
Calvin Rose
2e8dd90a51
Line endings in tests.
2026-02-05 23:38:55 -06:00
Calvin Rose
196f27af3d
Update CHANGELOG.md
2026-02-05 20:01:00 -06:00
Calvin Rose
42c0096ce7
Allow simpler loading of modules.
...
E.g.
(import project/file.janet :as file)
(import ./project/file.janet :as file)
(import /home/me/project/file.janet :as file)
Will now do what you expect. When loading with a file extension, this
will first check directly if the relative (or absolute) path exists.
Also expands `module/find` to be able to show all matches for a given
module name without needing to try and catch import errors. Lastly, one
can also override the module/find functionality by passing `:loader`
directly.
E.g.
(import ./macoslib.dylib :loader :native :as my-thing)
Which will allow easily bypassing all module/find logic;
"./macoslib.dylib" will be passed directly to the :native loader
`(get module/loaders :native)`.
The module system was previously left open to customization but with
defaults to encourage a more typical style. However, these qol
improvements are more than worth it and can in some cases let people
stop fighting the module system.
2026-02-05 19:45:30 -06:00
Calvin Rose
0194115412
Auto-format janet.
2026-02-05 00:33:52 -06:00
Calvin Rose
f33697d6a0
Show accumulation buffer and tagged capture in peg debug rule.
2026-02-04 21:17:08 -06:00
Calvin Rose
b2bf70eace
Move peg debug output to stderr in line with other internal debug tools.
...
Also allow disabling color in the debug output.
2026-02-04 18:52:20 -06:00
Calvin Rose
855d1f2940
Update changelog.
2026-02-04 18:46:09 -06:00
0xbec163
416bba9bd9
Add ??/debug PEG rule ( #1710 )
...
* Add debug (short-form ??) PEG rule
* Display capture stack to debug PEG rule
* Revise spec_debug to emit just the rule
* Update to proper indentation
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Add a marshal/unmarshal test for ??/debug
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-04 18:44:46 -06:00
Calvin Rose
517e40a17b
Speed up symbol resolution.
...
In my testing of `janet -l spork -e '(os/exit)'`, this speeds up
compilation by ~5%. Allocating and interning symbols from C is often
slow, so avoid it.
Add utility function for looking up keywords in tables more quickly.
More measurement on compiling spork for compilation speed, win
over original code closer to between 1-2% improvement
2026-02-02 21:19:48 -06:00
Calvin Rose
4f9a2af357
Add unmarshal sandbox.
2026-02-02 18:28:08 -06:00
Calvin Rose
a37752708e
Add :compile, :asm, and :threads to sandbox flags.
...
These can be used to limit programs in a very expansive way.
2026-02-02 18:13:46 -06:00
Calvin Rose
5042ad6d4b
More tweaks to changelog.
2026-02-01 14:46:20 -06:00
Calvin Rose
643c0b4976
Update CHANGELOG.md
2026-02-01 10:54:31 -06:00
Calvin Rose
ecb72c9c9a
Revert changes to peg grammar.
2026-02-01 08:08:50 -06:00
Calvin Rose
a95546ff16
Merge pull request #1703 from amano-kenji/peg
...
Make peg-grammar available in all threads for peg/compile
2026-02-01 07:42:28 -06:00
Calvin Rose
d47f82713b
More tweaks for named arity linting.
...
Handle more edge cases where &named is combined with &opt
2026-01-31 23:57:08 -06:00
Calvin Rose
497e363401
Make sure named argumnets are compiled before destructured params.
...
This handles an edge-case when combing destructured and named
parameters that produced spurious and confusing compiler lints.
2026-01-31 19:34:26 -06:00
Calvin Rose
8481da18d0
Add another bounds check for updating labels. Related to #1700
2026-01-31 13:20:45 -06:00
Calvin Rose
8f8382eead
Partially address issue #1654 - better linting for named arguments.
...
While there are still cases that we could improve here, this change will
help in most cases with minimal overhead.
2026-01-31 13:16:02 -06:00
Calvin Rose
8e2ec997f0
Update copyright.
2026-01-31 10:33:57 -06:00
Calvin Rose
ea271b6d6c
Update README with more clarification on versions to use for building.
2026-01-30 19:55:39 -06:00
Calvin Rose
e1897e1865
More documentation.
2026-01-29 07:50:23 -06:00
Calvin Rose
0c1585fdfe
Preserve tuple type to fix #1709
...
Macro expansion as done by `macex1` was incorrectly losing the semantic
tuple information inside the `set` form. Since macro expansion is
usually done by the compiler, and `macex1` is mainly used for debugging
and deep transformations inside other macros, this only surfaced with
certain usage of short-fn macro.
2026-01-29 06:52:43 -06:00
Calvin Rose
a5c4e929e8
Merge pull request #1704 from amano-kenji/os/date
...
Document how to set local timezone for os/date and os/strftime.
2026-01-28 21:37:43 -06:00
Calvin Rose
4c21dc3c06
Merge pull request #1708 from sogaiu/fiber-docstring-tweaks
...
Tweak some fiber-related docstrings
2026-01-28 21:28:50 -06:00
sogaiu
d67b462023
Tweak some fiber-related docstrings
2026-01-29 11:39:05 +09:00
Calvin Rose
24ca108288
Add some extra checks for marshalling code.
2026-01-28 10:55:00 -06:00
Calvin Rose
7366fbed1f
Disallow scheduling already modified fibers.
...
While not strictly needed for correctness, this discourages misuse of
fibers and mixing both coroutine, error handling, and scheduling
purposes.
2026-01-28 10:55:00 -06:00
Calvin Rose
797643716b
Address #1707 - do not schedule non-task fibers.
2026-01-28 10:55:00 -06:00
Calvin Rose
eda2e11d31
MSVC and windows clib does not like fopen(NULL, ...)
...
We were exploiting this behavior on posix when adding shell history for
the built-in readline functionality.
2026-01-28 10:51:18 -06:00
Calvin Rose
ae0afe6198
Add janet_decref_abstract_maybe_free
2026-01-27 13:28:52 -06:00
Calvin Rose
33f5a0b319
Add test case to help address #1705
2026-01-24 12:23:01 -06:00
Calvin Rose
3ecc9bc543
Small tweaks to boot.janet to improve stack traces.
2026-01-24 12:17:24 -06:00
Calvin Rose
339b0751c8
Address #1705 - ev/close affecting ev/select.
2026-01-24 12:17:02 -06:00
amano.kenji
87b1bf1a66
Document how to set local timezone for os/date and os/strftime
2026-01-24 14:21:33 +00:00
amano.kenji
41354ada96
Make peg-grammar available in all threads for peg/compile
2026-01-24 11:36:49 +00:00
Calvin Rose
ee8d816738
Fix test case.
2026-01-23 08:30:15 -06:00
Calvin Rose
0f285855f0
Address #170 - strchr was not properly checking for 0 byte.
2026-01-23 08:13:15 -06:00
Calvin Rose
c43e06672c
Address #1700 and move test cases to suite-compile.janet
2026-01-23 08:01:22 -06:00
Calvin Rose
2fabc80151
Address #1699 and improve test case for #1702
2026-01-23 07:46:31 -06:00
Calvin Rose
4dd08a4cde
Address #1702 with extra bounds check.
...
The buffer overflow happened because we were creating many upvalue
slots in the compiler without using them, along with some faulty logic
that used the wrong length to check for the bitmap's bounds.
2026-01-23 07:33:05 -06:00
Calvin Rose
883dde4fa5
Remove xprintf reference.
2026-01-22 20:14:46 -06:00
Calvin Rose
6111291ede
Revert a number of minor, unneeded changes for persistent REPL history.
2026-01-22 20:13:49 -06:00
Calvin Rose
53b8bf2684
Disable persistent REPL history without JANET_HISTFILE.
2026-01-22 19:17:16 -06:00
Calvin Rose
0c402cf3d6
Add persistent repl history.
2026-01-22 19:17:16 -06:00
Calvin Rose
606a1fc11a
Merge pull request #1696 from amano-kenji/master
...
Document empty? more clearly.
2026-01-20 07:59:00 -06:00
amano.kenji
a2db57b9dc
Document empty? more clearly.
2026-01-20 12:31:28 +00:00
Calvin Rose
f021bb2839
janet-format boot.janet
2026-01-18 13:05:55 -06:00
Calvin Rose
979233dee5
Update changelog and spelling
2026-01-18 11:09:01 -06:00
Calvin Rose
78a785175a
Allow redirecting :err to :out with os/execute, no just os/spawn.
2026-01-17 22:37:35 -06:00
Calvin Rose
268864b072
Don't use new flag on mingw test.
2026-01-17 22:15:03 -06:00
Calvin Rose
06f099d7f9
Make sure to run test with old flags as well.
2026-01-17 20:25:06 -06:00
Calvin Rose
6549903c51
Add option to explicity inherit handles rather than implicitly.
2026-01-17 20:07:12 -06:00
Calvin Rose
c1dff351d9
Improve stacktraces for macros that use defer.
...
Previously, they would show up as `defer` in stack traces.
2026-01-17 19:59:28 -06:00
Calvin Rose
4aa5615a37
On windows, streams created with os/open improved.
...
We now set bInheritHandles to true when creating them, which makes it
possible to pass them to subprocesses. Before, it would fail silently
in strange ways often simply losing data. Also added flags to disable
OVERLAPPED_IO on windows and O_NONBLOCK on posix.
2026-01-17 18:19:17 -06:00
Calvin Rose
67932bbaed
On windows, make sure to use FILE_ATTRIBUTE_NORMAL by default.
2026-01-17 17:04:56 -06:00
Calvin Rose
4575cefb7e
Add shorthand for os test.
2026-01-17 10:11:56 -06:00
Calvin Rose
d5a014baff
Fix reference.
2026-01-17 07:43:43 -06:00
Calvin Rose
eb825772bb
Add more information to process creation failure on windows.
2026-01-17 07:29:45 -06:00
Calvin Rose
ee2985f5e3
Merge pull request #1695 from nfgrusk/add-omitted-word-in-docstrings
...
Add omitted word "is" in docstrings
2026-01-16 21:29:34 -06:00
Nora Gruner
5819408715
Add omitted word "is" in docstrings.
2026-01-17 00:28:58 +01:00
Calvin Rose
8fe284b5eb
Fix pathologically slow insertion pattern.
...
The correct resizing behavior for arrays and buffers was done for
`janet_putindex` but not for `janet_put`. This change copies the correct
behavior to `janet_put`.
2026-01-15 13:04:11 -06:00
Calvin Rose
19b5502f50
Simplify ev/gather and add ev/go-gather.
...
This allows using `ev/gather` semantics on a dynamic number of tasks and
not relying on the macro magic.
2026-01-14 17:33:10 -06:00
Calvin Rose
0a5ff208a8
Disable ipv6 for now in main test.
2026-01-12 08:00:11 -06:00
Calvin Rose
d35f189446
Turn strict linting back on.
2026-01-12 07:57:41 -06:00
Calvin Rose
216c9799f5
Some more work on socket testing and allow setting ipv4 vs. ipv6 on raw
...
sockets.
2026-01-12 07:41:14 -06:00
Peter Rippe
5966017232
use u_char for IP_MULTICAST_TTL sockopt on BSD
2026-01-12 06:06:27 -06:00
Calvin Rose
f80690e4c9
Version bump for wip 1.41.x
2026-01-10 15:40:04 -06:00
Calvin Rose
9bc308532f
Make varfn correctly handle verbose metadata.
...
The macro would previously choke on `(varfn abc {:abc 123} ...)` due
to mishandling of structs and tables as metadata. This caused issues
when running `janet -d` with spork.
2026-01-10 14:04:48 -06:00
Calvin Rose
7a8d8444fe
Simplify dynamic binding setup in cli-main.
...
Instead of manually putting bindings into environment tables, just use
`setdyn` to set the bindings based on the command line flags. This
results in easier to understand behavior and prevents "swallowing" of
options. For example, linting and debug flags should be set in the
root-env by default so that they are used in all loaded modules.
2026-01-10 13:37:42 -06:00
Calvin Rose
15cea60589
Revert "Reworking coloring logic for repl and CLI interface."
...
This reverts commit 10954fe0d7 .
2026-01-10 13:20:02 -06:00
Calvin Rose
10954fe0d7
Reworking coloring logic for repl and CLI interface.
2026-01-10 13:15:46 -06:00
Calvin Rose
70fb13eb48
Fix -w flag with repl.
2026-01-10 12:35:41 -06:00
Calvin Rose
cb355815ee
Turn on strict linting in test suite.
2026-01-10 08:37:09 -06:00
Calvin Rose
ddc7cc5ae4
Warn on unused bindings (strict lint).
...
This does create a lot of warnings, especially in the test suite, but
should improve code and point out real issues.
To disable individual messages, either disable linting, add the metadata :unused to a
binding, or add the prefix "_" to a symbol.
2026-01-10 07:59:11 -06:00
Calvin Rose
84ced08810
Add test case.
2026-01-09 08:15:18 -06:00
Calvin Rose
7b0b9f57e8
Make os/realpath error on windows if path does not exist.
2026-01-09 08:04:07 -06:00
Calvin Rose
80da028aeb
Add linting to address #1688
...
Warn when defining macros on inner scopes, and also point out unused
metadata as well.
2026-01-04 08:19:18 -06:00
Calvin Rose
f881f4dba9
Merge pull request #1690 from pyrmont/bugfix.copyright-2026
...
Update year in copyright disclaimer to 2026
2026-01-03 10:47:57 -06:00
Michael Camilleri
6e4b0b9259
Update year in copyright disclaimer to 2026
2026-01-02 14:14:53 +09:00
Calvin Rose
d5a56caa33
Add fix for issue #1687 - destrucutre + splice
...
An optimization to ellude creation of intermediate tuples was
erroneously flagging a splice as invalid, even though it was valid.
Instead, if we see splice on the rhs, bail out of the optimization.
2025-12-22 07:40:29 -06:00
Calvin Rose
7d672f43fc
Merge pull request #1686 from pyrmont/bugfix.windows-empty-env
2025-12-14 22:05:03 -06:00
Michael Camilleri
7810724ed2
Exclude MinGW on WINE from special case
2025-12-15 12:04:14 +09:00
Michael Camilleri
1e73fa7ec7
Add special case for expected error on MinGW
2025-12-15 11:27:46 +09:00
Michael Camilleri
9b1194b08a
Use double-NULL byte for empty process environments on Windows
2025-12-15 10:00:03 +09:00
Calvin Rose
d3f5b541ee
Merge pull request #1683 from llmII/fix-unix-sockets
...
Fix unix sockets issue on FreeBSD
2025-12-14 13:23:33 -06:00
Calvin Rose
3a3c0dec7a
Merge pull request #1685 from sogaiu/tweak-int-max-min-docstrings
...
Fix math/int-{max,min} docstrings
2025-12-14 13:21:39 -06:00
Calvin Rose
bb3cf7d83b
Add missing uinteger janet_opt* funcitons.
2025-12-14 11:46:57 -06:00
sogaiu
9bc47e766e
Fix math/int-{max,min} docstrings
2025-12-14 13:41:00 +09:00
llmII
978c4e8b69
Fix unix sockets issue on FreeBSD
...
Sometimes a unix socket has a 0 status return which indicates the connection
immediately succeeded, at which point entering the event loop waiting on the
connection to complete actually breaks things.
It seems on FreeBSD with events being edge triggered, we're awaiting a
connection to signal it's writeable (to complete the connection) but that
never occurs (the event already took place before we registered for the
event). Going by status alone to determine if we should enter into the event
loop to await the complete connection seems sensible here.
2025-12-13 16:56:56 -06:00
Calvin Rose
2544c4ae1a
Add os/cpu-count get defaults.
2025-12-13 06:20:50 -06:00
Calvin Rose
7f9d92a73b
Formatting
2025-12-13 06:00:16 -06:00
Calvin Rose
898e93bc4a
Merge pull request #1679 from pixelherodev/master
...
Take 2: 9front port, using 9front's Native Porting/Posix Environment
2025-12-13 05:57:17 -06:00
Noam Preil
715dd413cc
plan9: support %r format to read errstr
2025-12-12 10:32:43 +00:00
Noam Preil
1971d7df0a
plan9: use _Exit
2025-12-12 09:52:30 +00:00
Noam Preil
0d7afc9419
clean up headers
2025-12-12 09:45:39 +00:00
Noam Preil
7e2a57687a
clean test
2025-12-12 09:42:55 +00:00
Noam Preil
2de6d26a46
plan9: restore CLOCK_PROCESS_CPUTIME_ID support
2025-12-12 09:35:37 +00:00
Noam Preil
4a9c9ebefc
plan9: restore sys/wait usage (patched in NPE)
2025-12-12 09:29:23 +00:00
Noam Preil
8887075a8c
plan9: working process support
2025-12-12 09:21:19 +00:00
Calvin Rose
01ac5c32f3
Merge pull request #1681 from tw4452852/push-somyznopprwr
...
Apply :flycheck on def as well
2025-12-11 22:05:06 -06:00
Calvin Rose
b980c2ae17
Merge pull request #1682 from sogaiu/update-macos-runner
...
Update to macos-14 in ci
2025-12-11 21:54:30 -06:00
Noam Preil
7d06faca66
9front: expanded OS support
2025-12-11 21:36:29 -06:00
Noam Preil
352935596a
9front: support (os/cpu-count)
2025-12-11 21:36:13 -06:00
Noam Preil
dc52242d36
add plan9 support to changelog
2025-12-12 07:44:25 +00:00
Noam Preil
dde1a67b77
plan9: 32-bit support
2025-12-12 07:41:05 +00:00
Noam Preil
7c31110195
9front: allow file/open of directories
2025-12-12 04:32:19 +00:00
Noam Preil
d41eeaf7fa
9front: detect compiler as kencc
2025-12-12 04:14:46 +00:00
Noam Preil
53fd2185fc
fix mkfile, rename port to plan9
2025-12-12 04:25:41 +00:00
Noam Preil
2937125633
9front: clean up mkfile
2025-12-12 04:08:00 +00:00
Noam Preil
8284b1f5f2
mkfile: standalone build in place, fix clean target
2025-12-12 03:00:44 +00:00
Noam Preil
04c96296b5
drop fixme, can worry about it later
2025-12-12 02:54:07 +00:00
Noam Preil
d888b1c530
plan9: silence first mk, redisable EV for now
2025-12-12 02:51:22 +00:00
sogaiu
7777a017e2
Update to macos-14 in ci
2025-12-12 11:13:27 +09:00
Tw
d8a074731e
Apply :flycheck on def as well
...
Signed-off-by: Tw <tw19881113@gmail.com >
Change-Id: I7bd10cbaa838b44794f8a881b0deedd06a6a6964
2025-12-12 08:40:18 +08:00
Noam Preil
b723c00b98
mkfile: fix cleanfiles list, drop debugging target
2025-12-11 07:54:39 +00:00
Noam Preil
98bbe9f474
expose os/isatty, fix floating point math
2025-12-10 23:35:24 +00:00
Noam Preil
2f69678f2f
9front port
2025-12-10 12:18:17 +00:00
Calvin Rose
efe66f207f
Merge pull request #1678 from tw4452852/push-swmvxuxkrvsx
...
shell: Prevent buggy moving zero column behavior
2025-12-07 08:02:32 -06:00
Calvin Rose
d6803f7a17
Formatting.
2025-12-04 08:48:12 -06:00
Tw
6e883b8972
shell: Prevent buggy moving zero column behavior
...
According to https://unix.stackexchange.com/a/559331 ,
moving zero column is implemented inconsistently between
different terminal emulators.
In order to fix this inconsistency,
we avoid using this escape sequence entirely.
Signed-off-by: Tw <tw19881113@gmail.com >
Change-Id: I73d4252f8472c769f0cf98b6bbdf2b3d6a6a6964
2025-12-04 08:51:15 +08:00
Calvin Rose
c2cbfa4d5d
Merge pull request #1676 from tsujamin/msvc-runtime-stack-check-ffi-crash
...
Disable MSVC runtime stack checks in janet_ffi_win64
2025-12-02 09:10:50 -06:00
Benjamin Roberts
a85689312a
Disable MSVC runtime stack checks in janet_ffi_win64
...
The MSVC /RTCs argument instrument alloca() to prepend stack allocations
with metadata used to check for memory corruption during the function
prologue. This causes stack-based FFI arguments in janet_ffi_win64 to
become mis-aligned, and also for the alloca()-prepended header to be
corrupted leading to a fatal exception.
2025-12-01 15:37:09 -05:00
Calvin Rose
b9bc89a38c
Fix very old typo in janet.h
2025-11-30 14:22:17 -06:00
Calvin Rose
f79e4d6249
Address #1674 - Add cms combinator to peg.
...
It behaves like `cmt`, but flattens the result and can collect
multiple captures if an indexed data structure is returned.
2025-11-30 14:19:51 -06:00
Calvin Rose
238d6c2e13
Remove type constraint on doc for +.
...
This constraint is no longer true in all cases.
2025-11-30 14:19:51 -06:00
Calvin Rose
be2a1ddf96
Add test case for dollar suffix match.
2025-11-30 14:19:51 -06:00
Calvin Rose
d9105299f1
Allow matching tuples and arrays exactly via a dollar suffix.
2025-11-30 14:19:51 -06:00
Calvin Rose
8efeeaec95
Allow matching tuples and arrays exactly via a dollar suffix.
2025-11-30 14:19:51 -06:00
Calvin Rose
b92992c862
Make additions to core library
...
* Add `thaw-keep-keys` variant of `thaw`.
* Add `walk2` to traverse key-value pairs and fibers. Also add
corresponding `postwalk2` and `prewalk2`
* Built-in `repl` function now respects custom repl prompt.
2025-11-30 14:19:51 -06:00
Calvin Rose
996ad64d01
Merge pull request #1673 from sogaiu/remove-stale-item
...
Remove unused def
2025-11-30 10:17:30 -06:00
sogaiu
bd1641b936
Remove unused def
2025-11-29 23:38:07 +09:00
Calvin Rose
a9e6766958
Merge pull request #1672 from pyrmont/bugfix.bundle-script-loading
...
Improve messages on errors when loading the bundle script
2025-11-23 07:28:44 -06:00
Michael Camilleri
ee46315e1d
Improve messages on errors when loading the bundle script
2025-11-21 22:45:36 +09:00
Calvin Rose
7c1db67749
Merge pull request #1668 from sogaiu/tweak-file-write-docstring
...
Update file/write docstring
2025-11-17 05:27:57 -06:00
sogaiu
4fa1a6947c
Update file/write docstring
2025-11-17 18:51:55 +09:00
Calvin Rose
1449ad8b31
Update changelog.
2025-11-16 17:39:19 -06:00
Calvin Rose
c44592c84d
Prepare for 1.40.1 patch release.
2025-11-16 16:55:28 -06:00
Calvin Rose
37e084969a
Merge pull request #1665 from sogaiu/fix-comment
...
Fix comment about syspath
2025-11-16 08:15:57 -06:00
Calvin Rose
b389f01005
Fix undefined behavior (integer overflow) in hash function.
...
If an intermediate hash value was 0xFFFFFFFF and we tried to add 1 as a
signed addition, this technically triggers undefined behavior.
2025-11-16 08:14:19 -06:00
sogaiu
a886a93d2f
Fix comment about syspath
2025-11-16 15:14:11 +09:00
Calvin Rose
f7d0d065c8
Add sr.ht build for meson reduced builds.
...
This should help better catch configs that break our website emscripten
build.
2025-11-15 09:46:35 -06:00
Calvin Rose
8c2a517cd7
Formatting and fix chroot build.
2025-11-15 09:43:15 -06:00
Calvin Rose
7e0c692d4e
Remove test-install target from sr.ht
2025-11-15 08:39:47 -06:00
Calvin Rose
732fe0ad03
Try new openbsd.
2025-11-15 08:33:41 -06:00
Calvin Rose
0c8622c803
posix_chroot warning
2025-11-15 08:15:26 -06:00
Calvin Rose
94f2494f8d
MSVC warning
2025-11-15 08:14:28 -06:00
Calvin Rose
0f9ecc2da5
Prepare for 1.40.0 release
2025-11-15 07:31:23 -06:00
Calvin Rose
83f5da3b8f
Merge pull request #1662 from McSinyx/dobytes-err-ctx
...
Include context in dobytes' error string
2025-11-09 09:20:23 -06:00
Calvin Rose
9b9f2a1713
Merge pull request #1660 from pyrmont/bugfix.confirm-bundle-files
...
Clarify error message for missing bundle script during bundle installation
2025-11-09 09:06:06 -06:00
Calvin Rose
8df4d47ede
Merge pull request #1663 from McSinyx/dobytes-err-keep
...
Keep dobytes' error string
2025-11-09 08:40:07 -06:00
Nguyễn Gia Phong
1c372fbf32
Keep dobytes' error string
...
The reason for failure would be more useful
than the most recently evaluated value.
2025-11-05 17:00:04 +09:00
Nguyễn Gia Phong
8ace580498
Include context in dobytes' error string
2025-11-05 16:53:19 +09:00
Michael Camilleri
8241d9cbb4
Revert support for bundles without an info file
2025-10-27 09:32:38 +09:00
Michael Camilleri
6bd02bb5b6
Confirm necessary files during bundle installation
2025-10-26 06:53:27 +09:00
Calvin Rose
2a3308005d
Merge pull request #1659 from ianthehenry/try-macro-hygiene
...
fix (try) macro hygiene
2025-10-25 12:15:12 -05:00
Ian Henry
0c34033b72
add some tests for the (try) macro
2025-10-24 21:56:07 -07:00
Ian Henry
f1ec0cc48b
fix try macro hygiene
...
Allow re-using the same symbol for the fiber and error. This allows you to
write code like (try (print "hi") ([_ _] (print "oh no"))), fixing a regression
introduced in #1605 .
2025-10-24 21:33:15 -07:00
Calvin Rose
98265f0637
Merge pull request #1658 from sogaiu/tweak-has-bin-script
2025-10-17 15:44:50 -05:00
sogaiu
1018cb9cca
Support :has-exe as well
...
This is a companion change to spork's issue
As implemented, :has-been-script didn't quite
mean what was intended. :has-exe should
be an improvement.
To prevent breakage, both :has-bin-script and
:has-exe should be supported for a while in
both spork and janet. Eventually
:has-bin-script can be retired.
2025-10-17 22:36:45 +09:00
Calvin Rose
2204209133
Merge pull request #1656 from jpaquim/build-system-consistency
...
Minor adjustments to Makefile
2025-10-15 07:51:12 -05:00
jpaquim
95abff31d9
Fix file mention in CONTRIBUTING.md
2025-10-11 17:48:23 +01:00
jpaquim
a776466423
Add $(RUN) for valgrind/callgrind, add dedicated callgrind-test target
2025-10-11 17:45:44 +01:00
jpaquim
511c1f4b0a
Refactor with image-only variable
2025-10-11 16:32:24 +01:00
jpaquim
c29195596e
Adapt generated file comments to build type
2025-10-11 16:29:14 +01:00
jpaquim
56027227fb
Add missing phony targets and documentation for install-{jpm,spork}-git
2025-10-11 16:11:05 +01:00
jpaquim
c057e14b20
Fix dependencies and variable names in Makefile
2025-10-11 16:02:02 +01:00
Calvin Rose
db7f741dad
Extend environment variable behavior to NO_COLOR and JANET_PROFILE
...
Env vars set to empty strings should behave the same as unset variables.
2025-10-04 13:12:29 -05:00
Calvin Rose
c901edbfb9
Interpret an empty JANET_PATH as unset
...
This is a common idiom with environment variables, where
a variable set to the empty string should behave the same as
an unset variable.
2025-10-04 10:43:55 -05:00
Calvin Rose
8fd1672963
Merge pull request #1652 from sogaiu/fix-bundle-install-breakage
2025-09-29 09:53:47 -05:00
sogaiu
9b99fc44b9
Revert some bundle/install changes
2025-09-29 23:45:53 +09:00
Michael Camilleri
f393531335
Add bundle/add-manpage
2025-09-28 19:27:53 -05:00
Michael Camilleri
6b8e5249ca
Change :dependencies hook to :postdeps
2025-09-28 19:27:53 -05:00
Michael Camilleri
6a96b615f0
Tidy up bundle/ docstrings
2025-09-28 19:27:53 -05:00
Calvin Rose
8ec465d308
Merge pull request #1651 from neuschaefer/a64be
...
Recognise aarch64_be as big-endian
2025-09-27 14:29:47 -05:00
J. Neuschäfer
07bfd34c2f
Recognise aarch64_be as big-endian
2025-09-26 02:07:09 +00:00
Calvin Rose
5f7878c00f
Merge pull request #1649 from jsks/kvs-docstring
2025-09-23 06:42:51 -05:00
Joshua Krusell
aaf8ac2217
Tweak kvs docstring
2025-09-23 11:28:06 +02:00
Calvin Rose
73b1cf547e
Update CHANGELOG
2025-09-21 10:26:49 -05:00
Calvin Rose
ed2ae562c6
Merge pull request #1647 from sogaiu/tweak-flycheck-related-docstrings
2025-09-21 00:53:51 -05:00
sogaiu
dd59d84b51
Tweak some flycheck-related docstrings
2025-09-21 14:09:35 +09:00
Calvin Rose
06873fbf0b
Update CHANGELOG.md
2025-09-20 14:30:10 -05:00
Calvin Rose
1ff26d702a
Refactor flycheck to allow customization. Address #1638
...
Bindings can define their own flycheckers in a simple fashion.
2025-09-20 10:32:16 -05:00
Calvin Rose
4da568254a
Manually declare chroot on macos.
2025-09-19 21:17:02 -05:00
Calvin Rose
357f1f94ca
Add os/posix-chroot
...
Gated in a similar manner to os/posix-fork.
2025-09-19 16:32:45 -05:00
Calvin Rose
015e49c806
Merge pull request #1645 from pyrmont/bugfix.avoid-apc-use
...
Use `SetEvent` rather than `QueueUserAPC` on Windows
2025-09-19 16:31:13 -05:00
Michael Camilleri
6b06ab5f9c
Remove unused function on Windows
2025-09-17 15:51:53 +09:00
Michael Camilleri
fe6c6e15a6
Add workaround to timer resolution issue on Windows
2025-09-17 15:48:37 +09:00
Michael Camilleri
b4eb52ca45
Start worker thread in suspended state on Windows
2025-09-16 11:57:40 +09:00
Michael Camilleri
aca5428846
Use SetEvent rather than QueueUserAPC on Windows
2025-09-16 10:24:24 +09:00
Calvin Rose
3dab9737e2
Fix #1643 , but add features.h
2025-09-15 15:33:18 -05:00
Calvin Rose
e601e8faab
Merge pull request #1640 from sogaiu/add-some-windows-commentary
...
Improve windows-related docs and notes
2025-09-15 15:29:38 -05:00
sogaiu
07cf63622f
Improve windows-related docs and notes
2025-09-11 14:14:07 +09:00
Calvin Rose
8e7b1e9ce0
Don't try for backwards compat with compiled modules - Address #1639
...
This guarantee is difficult to maintain and shouldn't be needed.
2025-09-06 10:35:10 -05:00
Calvin Rose
355c514f0e
Minor version bump for linking.
2025-09-02 07:08:51 -05:00
Calvin Rose
976329abc1
Update CHANGELOG.md
2025-09-01 15:59:39 -05:00
Calvin Rose
ab3e843433
Add test case for string/format %s of buffer
2025-09-01 14:24:51 -05:00
Calvin Rose
148e108864
Remove strnlen and correctly address #1600
2025-09-01 14:04:30 -05:00
Calvin Rose
c90c737345
Revert reordering 2.
2025-09-01 13:46:09 -05:00
Calvin Rose
13b9976382
Revert reordering of janet_deinit
2025-09-01 13:44:55 -05:00
Calvin Rose
095a81286a
Add per-thread finalizer calls in missing places.
2025-09-01 12:38:11 -05:00
Calvin Rose
82416e4e4e
Address #1629 - janet_deinit called before threaded channel message sent
...
to thread.
If we take a reference to another thread inside channel code, make sure
that we increase the refcount to avoid a use after free.
2025-09-01 12:30:29 -05:00
Calvin Rose
ae51434a05
Fix #1604 - Add JANET_DO_ERROR_* defines for failure flags from janet_dobytes.
2025-09-01 09:43:27 -05:00
Calvin Rose
bb6ac423a7
Merge pull request #1637 from jsks/spelling-fixes
...
Small spelling fixes
2025-08-31 09:32:02 -05:00
Joshua Krusell
c5ba3c0513
Small spelling fixes
2025-08-31 12:14:51 +02:00
Calvin Rose
e9c6678614
Update janet for 1.39.1
2025-08-30 08:11:18 -05:00
Calvin Rose
800457c1bf
Update meson.build version.
2025-08-30 08:09:43 -05:00
Calvin Rose
2a85781616
Merge pull request #1632 from jsks/jsks-channel
...
Export channel utilities
2025-08-30 08:08:55 -05:00
Calvin Rose
7c15e7f7dc
Merge pull request #1633 from aeiouaeiouaeiouaeiouaeiouaeiou/janet-legacy-macos1
...
os.c: use JANET_SPAWN_NO_CHDIR macros for macOS <10.15
2025-08-30 08:08:43 -05:00
aeiouaeiouaeiouaeiouaeiouaeiou
896c28b0c8
os.c: use JANET_SPAWN_NO_CHDIR macros for macOS <10.15
...
Signed-off-by: aeiouaeiouaeiouaeiouaeiouaeiou <aeioudev@outlook.com >
2025-08-29 13:43:28 +03:00
Joshua Krusell
e7bb0dd58e
Export channel utilities
2025-08-29 12:19:53 +02:00
Calvin Rose
4e02f27eb9
Prepare for 1.39.0 release
2025-08-24 17:09:39 -05:00
Calvin Rose
fd234461d7
Merge pull request #1628 from snltd/illumos-support
...
illumos support
2025-08-24 16:18:09 -05:00
Calvin Rose
eabb215391
Use janet_gettime instead of clock_gettime in ev.c
...
We made the wrapper, let's use it. Also switch poll implementation to a
monotonic clock instead of realtime to be more inline with epoll and
kqueue.
2025-08-21 19:10:08 -05:00
snltd
deede6bae0
illumos support
2025-08-18 18:39:11 +00:00
Calvin Rose
697fdcff6d
Merge pull request #1627 from nlordell/fix/system-monotonic-clock
...
Read System Clock for Monotonic Time
2025-08-18 07:53:26 -05:00
Nicholas Rodrigues Lordello
ad8a5cb6c7
Read System Clock for Monotonic Time
...
This PR changes the `janet_gettime` implementation for OSX <10.12 to
read the system clock for `(os/clock :monotonic)`. As far as I was able
to find online this is _a_ monotonic clock, although it produces
different values from `clock_gettime(CLOCK_MONOTONIC, ...)` on the same
system. I can speculate that this is related to `SYSTEM_CLOCK` monotonic
time being implemented with `mach_absolute_time` which is documented to
_not advance during sleep_, and I suspect that
`clock_gettime(CLOCK_MONOTONIC, ...)` does.
**Resources**:
- `clock_get_time` implementation for the `SYSTEM_CLOCK`:
<e3723e1f17/osfmk/kern/clock_oldops.c (L284-L296) >
<2ff845c2e0/osfmk/arm/rtclock.c (L248-L260) >
- `mach_absolute_time` and `mach_continuous_time` definitions:
<e3723e1f17/osfmk/mach/mach_time.h (L55-L68) >
- Stack overflow post for implementing `clock_gettime` on OS X before 10.12:
<https://stackoverflow.com/questions/11680461/monotonic-clock-on-osx >
2025-08-18 14:41:09 +02:00
Calvin Rose
99abada2c2
Merge pull request #1626 from nlordell/fix/clocks-per-sec
...
Use `CLOCKS_PER_SEC` instead of `CLOCKS_PER_SECOND`
2025-08-18 07:35:20 -05:00
Nicholas Rodrigues Lordello
0624936711
Use CLOCKS_PER_SEC
...
The POSIX standard defines that `clock(3)` returns a `clock_t` as a
number of clock ticks in `CLOCKS_PER_SEC` and not `CLOCKS_PER_SECOND`,
[source](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html ).
2025-08-18 09:15:30 +02:00
Calvin Rose
f764788b36
Merge pull request #1624 from nlordell/fix/libjanet-ldflags
...
Fix `LDFLAGS` Usage in Makefile
2025-08-17 20:58:40 -05:00
Calvin Rose
4701bc6543
Add test patch for #1625
2025-08-17 20:55:52 -05:00
Nicholas Rodrigues Lordello
156fb0c999
Fix LDFLAGS Usage in Makefile
...
This PR fixes what appears to be a typo `LDFLAGS` written with an
additional `_` in the Makefile for setting the default linker flags for
`libjanet`.
2025-08-18 01:01:38 +02:00
Calvin Rose
bf34340737
Merge pull request #1623 from tttuuu888/work-issue-1622
...
Add `net/socket` for unbound socket creation for #1622
2025-08-16 06:48:43 -05:00
Seungki Kim
20535e8626
Add net/socket for unbound socket creation #1622
2025-08-14 00:40:22 +09:00
Calvin Rose
1ead670e33
Merge pull request #1621 from tttuuu888/work-issue-1620
...
Fix: Correctly flag UDP streams in net/connect #1620
2025-08-12 16:04:52 -05:00
Seungki Kim
3ad86108f2
Fix: Correctly flag UDP streams in net/connect #1620
2025-08-11 20:56:04 +09:00
Calvin Rose
0aee7765cf
Windows quirk fix
2025-08-02 20:04:55 -05:00
Calvin Rose
4894a4673a
Fix abstract unix sockets for issue #1618 - address #1618
2025-08-02 19:00:47 -05:00
Calvin Rose
f00d3199c3
Fix #1609 Remove sigaction if JANET_NO_EV defined.
2025-08-02 18:19:39 -05:00
Calvin Rose
e34a8545e6
Merge pull request #1615 from ifreund/net-server-datagram
...
net/server: improve error for truthy handler and type :datagram
2025-08-02 18:06:24 -05:00
Isaac Freund
f974c0667b
net/server: improve error for truthy handler and type :datagram
...
Since it is invalid to call accept on a datagram socket, net/server
always errors if handler is truthy and type is :datagram.
Add an assert to give a better error message in this case and clarify
the documentation.
References: https://github.com/janet-lang/janet/issues/1614
2025-07-18 09:57:17 +02:00
Calvin Rose
ddc122958b
Merge pull request #1607 from sarna/master
...
Clarify :fresh usage in import
2025-07-13 18:35:56 -05:00
Calvin Rose
2e363bf29c
Remove extra call to filewatcher - address #1608
2025-07-13 18:34:12 -05:00
Calvin Rose
312f9faae8
Address #1609 - compile with JANET_NO_PROCESSES
2025-07-13 18:24:23 -05:00
sarna
8c9cd63cb1
Add tests for import arg validation
2025-07-13 16:32:50 +02:00
sarna
2af3f21d69
Validate optional args to import
2025-07-13 16:31:12 +02:00
sarna
c4e3fa03fa
Clarify :fresh usage in import
2025-07-12 14:38:22 +02:00
Calvin Rose
91b7bcad3d
Merge pull request #1606 from pyrmont/bugfix.bundle-install
...
Support complex dependency coordinates in `bundle/install`
2025-07-06 10:32:54 -05:00
Michael Camilleri
8d2a9c1148
Allow :dependencies value in info.jdn to contain dictionaries for complex dependency coordinates
2025-07-06 05:45:41 +09:00
Michael Camilleri
f1d47bd05a
Use :dependencies argument in bundle/install for dependency checking
2025-07-02 23:38:36 +09:00
Calvin Rose
58b1491592
Merge pull request #1605 from iacore/patch-2
...
Patch try to accept (try body ([] catch-body))
2025-06-29 10:01:32 -05:00
Calvin Rose
21a6ed3bd3
Revert order change from f4ecb5a
...
janet_interpreter_interrupt should always be called before janet_interpreter_interrupt_handled, and the original code ensured that.
2025-06-26 19:20:07 -05:00
iacore
e815c91e85
Patch try to accept (try body ([] catch-body))
2025-06-24 06:18:34 +00:00
Calvin Rose
d96e584869
Remove windows-2019 from github CI
2025-06-19 17:29:48 -05:00
Calvin Rose
f4ecb5a90f
Reorder post event / interrupt sequence in deadline.
...
The interrupt message should come _after_ the post event is made.
2025-06-18 22:13:14 -05:00
Calvin Rose
f181948aa9
Merge pull request #1601 from edsrzf/limit-buffer-read
...
Use strnlen when checking for null byte
2025-06-14 12:25:18 -05:00
Evan Shaw
bbe6b90331
Use strnlen when checking for null byte
2025-06-14 22:29:30 +12:00
Calvin Rose
27f01e2664
Merge pull request #1597 from sogaiu/remove-more-underline-bits
...
Remove some underline bits from doc-format
2025-05-21 21:39:16 -05:00
sogaiu
877967966a
Remove some underline bits from doc-format
2025-05-21 18:38:09 +09:00
Calvin Rose
56c5a0ca09
Address #1591 - remove _ behavior of docstring format
2025-05-20 19:17:32 -05:00
Calvin Rose
f3ad13c2d4
Always cancel thread on windows.
2025-05-18 14:02:32 -05:00
Calvin Rose
8ac4eec370
Change ifdef structure.
2025-05-18 13:20:19 -05:00
Calvin Rose
92e91259c3
Don't call pthread cancel on normal exits.
...
Calling pthread_cancel on threads that can exit normally is not needed.
Instead, we immediately call pthread_join if a thread can exit normally.
2025-05-18 09:52:11 -05:00
Calvin Rose
e355cb07e0
Reorder declarations.
2025-05-18 09:27:01 -05:00
Calvin Rose
5bbfcdacd5
Work on #1596 - No detached threads, make sure to call pthread_join
...
Call pthread_join on all worker threads for timeouts. Previously, we
were leaking some threads, as well as creating a timeout and leaving
has_worker unset on certain timeouts.
2025-05-18 08:36:53 -05:00
Calvin Rose
790a4f2636
Make tests pass with clang sanitizers.
...
Fix some issue with clang sanitizers, name -fsanitize=thread and
-fsanitize=undefined. The threading issue arose from the implementation
of ev/deadlock when allowing for interpreter intrerrupts, as this is
implemented by racing a timeout thread with a worker thread.
The undefined behavior issue arose in some very old code in corelib.c that will
actually work as expected for most compilers, but was both undefined and
unecessary as we have a correct implemenation in util.c.
2025-05-17 21:28:41 -05:00
Calvin Rose
84bb84b0b7
OpenBSD 7.7 -> 7.6 rollback
2025-05-16 18:58:07 -05:00
Calvin Rose
29f2b5c345
Update openbsd package for srht
2025-05-16 18:57:29 -05:00
Calvin Rose
4643c8fa35
Squashed commit of the following:
...
commit c5b3da1ffe
Author: Calvin Rose <calsrose@gmail.com >
Date: Fri May 16 18:35:33 2025 -0500
Inter
2025-05-16 18:49:45 -05:00
Calvin Rose
a8e2c8e5b8
Address #1596 - Use atomic intrinsics to check allow_interrupt flag.
...
Use a relaxed memory order if possible to mitigate performance issues as
much as possible. relaxed memory order should be sufficient.
2025-05-16 18:26:43 -05:00
Calvin Rose
3d3e880f52
Allow configuration of JANET_THREAD_LOCAL. Address #1595
...
This is to better allow configuration on various, unknown compilers.
Previously, we hardcoded how thread local storage was specified for a
few different compilers, but we were not following and C standard. In
C11, there is a standardized storage specifier _Thread_local for this
storage class, however this is now deprecated in various C++ compilers
for a new keyword, confusingly. Janet also does not claim to require the
C11 standard, so for maximum flexibilty, the storage specifier must be
specified at configure time.
2025-05-11 08:37:15 -05:00
Calvin Rose
bef8ba5e06
Merge pull request #1594 from sogaiu/tweak-docstrings
...
Tweak docstrings for better handling
2025-05-08 17:00:32 -05:00
Calvin Rose
523639362c
Merge pull request #1593 from agent-kilo/thread-message-size-check
...
Try to fix cfun registry size check for cross-thread messages
2025-05-08 17:00:22 -05:00
sogaiu
4b6d5e5671
Tweak docstrings for better handling
2025-05-02 18:54:18 +09:00
Agent Kilo
a695454dae
Try to fix cfun registry size check for cross-thread messages
2025-04-28 17:00:23 +08:00
Calvin Rose
f2eaa5dee8
Remove ev/to-stream.
...
The function has more problems than initially expected, both on Posix
systems and on Windows. Given all the caveats, it is probably best not
to include. Any function that can obtain files can use os/open instead.
The standard FILE objects also will not work anyway, and different
operating systems have different work arounds.
2025-04-18 18:20:27 -07:00
Calvin Rose
b27c830d90
Use win32 DuplicatHandle instead of _dup
...
There are constraints when using the posix API on win32
that aren't present with normal win32.
2025-04-11 21:36:08 -05:00
Calvin Rose
92a852f2df
Add ev/to-stream.
...
This function is symmetrical to ev/to-file and can convert a blocking
file to a stream (with caveats).
2025-04-11 21:10:49 -05:00
Calvin Rose
647e218bed
make format
2025-04-09 20:39:23 -05:00
Calvin Rose
5ebe945ffd
Merge pull request #1582 from pyrmont/bugfix.termux-pthread_cancel
...
Fix absence of pthread_cancel in Android
2025-04-09 20:16:57 -05:00
Michael Camilleri
6254fffad0
Update changelog to include change to ev/deadline
2025-04-09 10:40:19 +09:00
Michael Camilleri
5705b2f6c7
Fix absence of pthread_cancel in Android
2025-04-09 10:37:46 +09:00
Calvin Rose
90a33bc88a
Add some systems that support addchdir.
2025-04-07 21:12:28 -05:00
Calvin Rose
1ba077c87d
Add ifdefs for various platforms to check for the support of addchdir.
...
This will need to be expanded but should support most modern systems.
2025-04-07 21:12:28 -05:00
Calvin Rose
34629ae314
Fix signature on windows.
2025-04-07 21:12:28 -05:00
Calvin Rose
3edc4f35b2
Add :cd argument to os/execute and os/spawn.
2025-04-07 21:12:28 -05:00
Calvin Rose
06d01c099f
Merge pull request #1581 from sogaiu/fix-mapcat-and-keep-docstrings
...
Fix mapcat and keep docstrings
2025-04-07 21:11:14 -05:00
sogaiu
d493eaf485
Fix mapcat and keep docstrings
2025-04-06 20:48:52 +09:00
Calvin Rose
332f123abe
Replace if not errorlevel 0 with if errorlevel 1
...
The former is just bad syntax.
2025-04-05 20:59:45 -05:00
Calvin Rose
38e841fc5c
Get rid of test error.
2025-04-05 20:52:47 -05:00
Calvin Rose
e8187fdee5
Fix windows build
2025-04-05 20:26:57 -05:00
Calvin Rose
2fedb67cb3
formatting
2025-04-05 17:32:07 -05:00
Calvin Rose
bdab93c999
Add {:err :out} option to os/spawn.
...
This special case in the os/spawn interface allows easily
redirecting both stderr and stdout to the same pipe.
2025-04-05 17:30:46 -05:00
Calvin Rose
a9ff8b388f
Add os/getpid
2025-04-05 16:20:17 -05:00
Calvin Rose
b12dfd784e
Merge pull request #1578 from sogaiu/tweak-some-docstrings
...
Tweak doc for mapcat, count, keep, all, some
2025-04-04 21:45:09 -05:00
sogaiu
e2cc8f2965
Tweak doc for mapcat, count, keep, all, some
2025-04-05 10:42:04 +09:00
Calvin Rose
17524d2ed3
Merge pull request #1577 from sogaiu/cleanup-unix-domain-socket
...
Remove unix domain socket after test
2025-04-04 07:11:42 -05:00
sogaiu
d2ee4aa074
Remove unix domain socket after test
2025-04-04 20:22:10 +09:00
Calvin Rose
363e32d455
Adopt docstring from #1574
2025-04-03 20:52:40 -05:00
Calvin Rose
31920e574d
Add explicit Alpine Linux directions.
...
Statically linking Janet is quite useful, especially for users who want
to use jpm and janet-pm to build standalone binaries.
2025-04-01 19:47:03 -05:00
Calvin Rose
cf714ed591
Notify user when script is installed during a bundle installation.
...
Lets user know what to add to PATH.
2025-04-01 18:52:23 -05:00
Calvin Rose
b458404b41
Update ffi/write to append to a buffer by default.
2025-03-28 10:00:40 -05:00
Calvin Rose
707463a645
Merge pull request #1575 from pyrmont/feature.ev-interrupt2
...
Expand scope of code that works with `ev/deadline` again
2025-03-26 09:42:51 -05:00
Michael Camilleri
eac37ab869
Avoid leaking memory used for JanetThreadedTimeout struct
2025-03-25 22:02:53 +09:00
Michael Camilleri
a24e5b1eaa
Prevent deadline timeout being less than zero
2025-03-25 21:41:59 +09:00
Michael Camilleri
09ac85b1b9
Move janet_timeout_* function definitions before first use
2025-03-25 21:15:28 +09:00
Michael Camilleri
87c1eab7d4
Define JanetTimeout only if event loop enabled
2025-03-25 21:14:21 +09:00
Michael Camilleri
5a29a28c11
Include <windows.h> in state.h
2025-03-25 20:34:45 +09:00
Michael Camilleri
2ed186664f
Support using a background thread to monitor deadlines
2025-03-25 20:27:44 +09:00
Calvin Rose
73334f3485
Prepare for 1.38.0 release.
2025-03-18 21:14:45 -05:00
Calvin Rose
a5b8da8d67
Merge pull request #1572 from tsujamin/janet-ffi-define-fix
...
Remove janet_lib_ffi() dependency on JANET_EV
2025-03-18 19:12:44 -07:00
Benjamin Roberts
e8cccfced5
Remove janet_lib_ffi() dependency on JANET_EV
2025-03-18 10:54:18 -04:00
Calvin Rose
88984f7ffb
Add bundle/replace
...
Slight generalization of bundle/reinstall to allow inplace upgrades
of a bundle without reinstalling all dependent bundles as well.
2025-03-17 17:58:40 -05:00
Calvin Rose
182170b3be
Make installed manifests nicer to work with.
2025-03-16 20:39:16 -05:00
Calvin Rose
f92412841b
Merge pull request #1569 from sogaiu/vm-bug-1566
2025-03-12 21:13:49 -07:00
sogaiu
18c00e89da
Fix vm bugs from #1566
2025-03-13 11:43:43 +09:00
Calvin Rose
7c38a55a9a
Merge pull request #1568 from rwtolbert/msys2_mingw_build_fix
...
Update Makefile and meson to build with msys2 gcc and clang
2025-03-10 17:56:00 -07:00
Bob Tolbert
a15916ec9c
Update Makefile and meson to build with msys2 gcc and clang
2025-03-10 10:13:36 -05:00
Calvin Rose
3583d4c92f
Fix defdyn in flychecking.
2025-03-08 20:03:02 -06:00
Calvin Rose
a456c67a7b
Merge pull request #1564 from pyrmont/bugfix.qemu-segfault
...
Use Alpine Linux as base image for s390x testing
2025-03-05 05:52:20 -08:00
Michael Camilleri
6e226e4073
Use sh rather than bash on Alpine Linux
2025-03-04 15:19:44 +09:00
Michael Camilleri
d23e6614b1
Use Alpine Linux as the base image rather than Ubuntu
2025-03-04 15:17:07 +09:00
Michael Camilleri
ab6afa72fd
Use simpler base image
2025-03-04 15:01:25 +09:00
Calvin Rose
9538b8a77c
Merge pull request #1562 from pyrmont/bugfix.subprocess-cleanup
...
Improve subprocess-related docstrings and functions
2025-03-03 18:47:59 -08:00
Calvin Rose
36d3804dd2
Merge pull request #1563 from pyrmont/bugfix.copyright-dates
...
Add script to update copyright dates
2025-03-03 18:47:38 -08:00
Michael Camilleri
a34b8ea68f
Update older dates to 2025
2025-03-04 11:32:15 +09:00
Michael Camilleri
55c10f98bb
Check more file extensions
2025-03-04 11:31:56 +09:00
Michael Camilleri
4b5a2a14c0
Update year in copyright disclaimer to 2025
2025-03-04 11:24:09 +09:00
Michael Camilleri
665705d06d
Add Janet script to update copyright disclaimer
2025-03-04 11:23:26 +09:00
Michael Camilleri
cc8cd4bace
Use uraimo GitHub action for s390x testing
2025-03-04 09:14:05 +09:00
Michael Camilleri
8f8b6ed001
Remove note on cancellation and tidy up wording
2025-03-03 23:28:37 +09:00
Calvin Rose
aa9efee868
Expose bundle operations in the CLI.
...
Bundle installation is a fairly natural command on the command line.
2025-03-03 08:14:09 -06:00
Calvin Rose
e0a0e2ed42
Prevent multi-scheduling with os/proc-wait. (address #1562 )
2025-03-02 10:44:15 -06:00
Michael Camilleri
39f5c539d7
Clarify wording of docstrings further
2025-03-02 13:25:14 +09:00
Michael Camilleri
1b6437a4f8
Remove unnecessary returns
2025-03-02 08:30:51 +09:00
Michael Camilleri
c62c1a58f0
Reword documentation relating to subprocess creation
2025-03-02 08:29:32 +09:00
Calvin Rose
3441bcbd69
Add more cases for checking coerce error.
...
Channel operations inside a janet_call could wreak more
havoc later, when scheduled fibers are shooting off when they shouldn't
be. The easiest way to prevent this is simply check that we are not
inside janet_call before doing channel operations. We also get nicer
error messages this way.
2025-02-16 10:40:38 -06:00
Calvin Rose
2e6001316a
Work on bug #1556
2025-02-16 09:09:33 -06:00
Calvin Rose
53bcc15207
Merge pull request #1557 from sogaiu/update-changelog-2025-02
...
Update CHANGELOG.md
2025-02-09 23:22:45 -08:00
sogaiu
dd609bb1bb
Update CHANGELOG.md
2025-02-08 14:29:22 +09:00
Calvin Rose
5c56c7fa91
Formatting in peg.c
2025-02-07 21:05:28 -06:00
Calvin Rose
9a892363a3
Address issue #1558
...
Don't attempt SO_REUSEPORT on unix domain sockets since it doesn't make
sense and may cause a failure to bind without extra effort by the
programmer.
2025-02-07 21:05:07 -06:00
Calvin Rose
5f550ea5d4
Merge pull request #1555 from sogaiu/tweak-apply-short-fn-docstrings
...
Tweak apply and short-fn docstrings
2025-02-06 16:44:45 -08:00
sogaiu
1b6cc023a5
Tweak apply and short-fn docstrings
2025-02-06 22:35:59 +09:00
Calvin Rose
410f8d69bc
Merge pull request #1528 from ianthehenry/til-peg-special
...
add (til) PEG special
2025-02-03 19:07:08 -08:00
Calvin Rose
6da44bdb6a
Get rid of early termination rule in all finite loops.
2025-02-03 07:36:00 -06:00
Calvin Rose
d30fd27575
Address #1554 - capture first 0-width match in repeating rules and
...
optionals.
This fixes some undesirable interplay between lookaheads and looping
(repeating) rules where lookaheads caused the loop to immediately
terminate _and_ discard any captures. This change adds an exception if
there is a 0-width match at the first iteration of the loop, in which
case captures will be kept, although the loop will still be terminated
(any further iteration of the loop would possibly cause an infinite
loop).
This allows optionals to work as expected when combined with lookahead.
There is also a question of whether or not optional should be
implemented as separate rule rather than as `(between 0 1 subrule)`.
2025-02-02 20:34:36 -06:00
Calvin Rose
1b278fc657
Update reduce2 documentation to fix issue #1545
2025-02-01 17:31:55 -06:00
Calvin Rose
eecffe01a5
Add some more test cases for hex floats.
2025-02-01 08:09:57 -06:00
Calvin Rose
f63a33884f
Add hexfloats - Address #1550
2025-01-30 07:36:18 -06:00
Calvin Rose
fa75a395cb
Add support for buffer peg literals - address #1549
2025-01-26 09:48:48 -06:00
Calvin Rose
1f34ec9902
Merge pull request #1547 from pyrmont/bugfix.codeql-upgrade
...
Update CodeQL actions to latest version
2025-01-25 09:24:40 -08:00
Michael Camilleri
f75c08a78e
Add 'tools: linked' to CodeQL workflow
2025-01-24 04:00:52 +09:00
Michael Camilleri
5e93f0e34b
Trigger workflow to run again
2025-01-24 03:02:15 +09:00
Calvin Rose
49f151e265
Allocate parser with GC.
...
This fixes janet_dobytes, which manually allocated a parser on the
stack, and then possibly ran garbage collection before it was
deallocated.
2025-01-22 09:21:56 -06:00
Michael Camilleri
2b73a15ad8
Update CodeQL actions to latest version
2025-01-22 23:47:44 +09:00
Calvin Rose
06d581dde3
Fix #1546 - large ranges.
...
Raise an error for very large ranges instead of internal assert.
2025-01-20 09:02:22 -06:00
Calvin Rose
2b49903c82
Merge pull request #1544 from cideM/docstring-fixes
...
Fix docstrings for int/u64, int/s64 and int/to-number
2025-01-14 06:30:08 -08:00
Florian Beeres
a17ae977a5
docstring int/u64 int/s64: supports number as well
...
Update the docstrings of the u64 and s64 functions to indicate that they
work on numbers as well strings. Previously the docstring only mentioned
string support.
2025-01-11 22:51:21 +01:00
Florian Beeres
8a6b44cb4e
docstring int/to-number: supports int64, not int32
...
Update the cfun_to_number docstring to indicate that it handles values
up to JANET_INTMAX_INT64 (75845c0283 ),
rather than up to int32, what the current docstring says.
2025-01-11 22:46:44 +01:00
Calvin Rose
60d9f97750
Address issue #1539 - infinite loop in peg split
...
Other looping rules ensure forward progress by terminating if an
iteration is at the same location as the previous iteration. Do the same
for split.
2025-01-01 11:28:10 -06:00
Calvin Rose
f252933f62
Merge pull request #1541 from rwtolbert/feature/win_arm64_dist
...
Brief: Add Arm64 .msi support on Windows
2025-01-01 09:19:57 -08:00
Calvin Rose
6dbd7b476c
Merge pull request #1538 from sogaiu/tweak-exit-value-doc
...
Tweak *exit-value* doc - address #1537
2024-12-31 10:28:03 -08:00
Bob Tolbert
a47eb847fb
Brief: Add Arm64 .msi support on Windows
...
Summary: Small update to add Windows on Arm64 support.
Also requires the latest version 3.14 of the WiX toolset.
2024-12-31 11:47:27 -06:00
Calvin Rose
ba5990ef21
Add switch to turn off "reuse" behavior for server sockets.
2024-12-31 09:05:54 -06:00
sogaiu
753911fe2d
Tweak *exit-value* doc - address #1537
2024-12-27 16:02:45 +09:00
Calvin Rose
746ced5501
Revert behavior of deep= on mutable keys.
...
Mutable keys are a minefield for comparisons, as resolving
equality require re-implementing a lot of the internal structures, as
well as dealing with multiple mutable keys that are in the same
equivalency class by deep=.
Simplifying the implementation to not resole mutable keys is much
simpler, faster, and has the benefit that deep= and deep-not= do not
need to allocate.
2024-12-21 09:03:01 -06:00
Calvin Rose
1b49934e4f
Allow table/to-struct to take a prototype.
...
Use this prototype struct in freeze.
2024-12-19 19:41:19 -06:00
Calvin Rose
682f0f584f
freeze with mutable keys should be determinsic help address #1535
2024-12-19 19:31:01 -06:00
Calvin Rose
611b2a6c3a
Add more test cases for #1535
2024-12-19 18:37:51 -06:00
Calvin Rose
8043caf581
Update CHANGELOG.
2024-12-19 18:31:05 -06:00
Calvin Rose
b2d2690eb9
Merge pull request #1534 from pyrmont/bugfix.windows-longstrings
...
Support dedenting long-strings with Windows EOLs
2024-12-19 16:24:21 -08:00
Calvin Rose
7f745a34c3
Allow for mutable keys correctly in deep=
2024-12-19 18:20:05 -06:00
Calvin Rose
b16cf17246
Merge pull request #1533 from pyrmont/feature.file-socket
...
Add `ev/to-file` for synchronous resource operations
2024-12-17 20:50:47 -08:00
Michael Camilleri
67e8518ba6
Support dedenting longstrings with Windows EOLs
2024-12-17 05:14:59 +09:00
Michael Camilleri
e94e8dc484
Remove special casing for MinGW
2024-12-16 08:12:14 +09:00
Michael Camilleri
1a24d4fc86
Raise error if using ev/to-file on MinGW
2024-12-15 21:00:52 +09:00
Michael Camilleri
6ee05785d1
Disable buffering for files created with ev/to-file
2024-12-15 20:37:58 +09:00
Michael Camilleri
268ff666d2
Move <fcntl.h> header to general imports
2024-12-15 20:02:41 +09:00
Michael Camilleri
91bb34c3bf
Add missing <io.h> header for Windows
2024-12-15 19:17:48 +09:00
Michael Camilleri
17d5fb3210
Fix ev/to-file on Windows
2024-12-15 18:56:35 +09:00
Michael Camilleri
687b987f7e
Add ev/to-file for synchronous resource operations
2024-12-15 17:38:01 +09:00
Calvin Rose
4daecc9a41
Prevent await inside janet_call - address #1531
...
This was partially implemented before, but not in the case where the
await or other signal itself was created by a C function. We have to
separate code paths for generating signals - one via normal returns in
janet_vm_continue, and the other via longjump. This adds handling for
the longjump case, as well as improved messaging.
2024-12-14 10:34:36 -06:00
Calvin Rose
a85eacadda
Merge pull request #1532 from strangepete/fstat-directory-test
...
file/open: check if directory
2024-12-14 06:00:41 -08:00
peteee
ed63987fd1
use fileno()
...
Should use fileno() instead of direct
2024-12-14 07:17:28 -05:00
peteee
ff173047f4
file/open: check if directory
...
Adds fstat() directory test after fopen(), which can return non-NULL when passed a directory name on Linux
2024-12-13 00:20:44 -05:00
Calvin Rose
83e8aab289
Prepare for 1.37.1 release and fix CI.
2024-12-05 20:18:16 -06:00
Calvin Rose
85cb35e68f
Prepare for 1.37.0 release.
2024-12-05 17:51:06 -06:00
Ian Henry
952906279c
add (til) PEG special
...
(til sep subpattern) is a specialized (sub) that behaves like
(sub (to sep) subpattern), but advances over the input like (thru sep).
2024-12-04 21:17:10 -08:00
Calvin Rose
5b79b48ae0
Address #1524 - fix meson cross compilation linking.
...
In the cross compilation case, we need to resolve our
dependencies on libc twice, once for the build machine and once for the
target machine. This includes pthreads, -libc, and android-spawn.
2024-12-03 21:05:37 -06:00
Calvin Rose
7c44127bcb
Merge pull request #1526 from sogaiu/master
...
Additional tweak to address #1523
2024-12-02 05:46:00 -08:00
sogaiu
9338312103
Additional tweak to address #1523
2024-12-02 11:21:56 +09:00
Calvin Rose
a0eeb630e7
Correct documentation for issue #1523
...
net/* API documentation was not consistent with the implementation. The
`ev/*` module documentation was, however. On timeout, all networking
function calls raise an error and do not return nil. That was the old
behavior.
2024-12-01 09:04:03 -06:00
Calvin Rose
6535d72bd4
Merge pull request #1522 from sogaiu/remove-pstatus
...
Remove unused var pstatus
2024-11-25 06:15:43 -08:00
sogaiu
a7d424bc81
Remove unused var pstatus
2024-11-25 12:39:53 +09:00
Calvin Rose
2bceba4a7a
Assertf with no arguments does not make sense.
2024-11-24 19:14:18 -06:00
Calvin Rose
e3159bb0f5
Update CHANGELOG.md
2024-11-23 10:29:03 -06:00
Calvin Rose
5d1bd8a932
Add an extra has mix round to string hashes.
...
This should improve hashing quality of strings.
2024-11-17 11:31:12 -06:00
Calvin Rose
bafa6bfff0
Merge pull request #1519 from ianthehenry/fix-string-equal-with-byteview
...
fix janet_string_equalconst
2024-11-17 07:33:47 -08:00
Ian Henry
e2eb7ab4b2
fix janet_string_equalconst
...
Check string length before pointer equality, so that a string is not considered
equal to a prefix slice of itself.
2024-11-16 21:20:26 -08:00
Calvin Rose
9f4497a5ae
Merge pull request #1518 from pyrmont/bugfix.s390x-workflow
...
Update Docker command to use `--platform` flag
2024-11-11 12:24:20 -08:00
Michael Camilleri
70de8bf092
Update Docker command to use --platform flag
2024-11-12 04:02:54 +09:00
Calvin Rose
e52575e23a
Merge pull request #1517 from sogaiu/add-assertf
...
Add assertf and use in boot.janet. Address #1516
2024-10-31 07:27:05 -07:00
sogaiu
10994cbc6a
Add some tests for assertf
2024-10-30 23:41:31 +09:00
sogaiu
abad9d7db9
Add assertf and use in boot.janet. Address #1516
2024-10-30 17:43:00 +09:00
Calvin Rose
5e443cd29d
Merge pull request #1514 from ArtSin/fix-formatb-int32_t-arg
...
Cast arguments to `int32_t` before passing to `janet_formatb` with `%d` format specifier
2024-10-25 05:36:08 -07:00
Calvin Rose
7bf3a9d24c
Merge pull request #1515 from sogaiu/tweak-install-info-in-readme
...
Clarify installation info a bit
2024-10-25 05:34:53 -07:00
sogaiu
d80a7094ae
Clarify installation info a bit
2024-10-25 20:04:56 +09:00
ArtSin
ad77bc391c
Cast arguments to int32_t before passing to janet_formatb with %d format specifier
...
`s->line` and `s->column` in `delim_error` are `size_t`, which is typically 64-bit, but `va_arg` in `janet_formatbv` reads `int32_t` for `%d`.
2024-10-20 12:03:40 +04:00
Calvin Rose
2b84fb14b4
Fix Issue #1512
2024-10-18 18:17:06 -05:00
Calvin Rose
07155ce657
Don't error on empty struct.
2024-10-18 17:53:21 -05:00
Calvin Rose
046d28662d
Merge pull request #1513 from sogaiu/add-nth-and-only-tags-to-changelog
...
Mention nth and only-tags in changelog
2024-10-18 05:45:36 -07:00
sogaiu
84dd3db620
Mention nth and only-tags in changelog
2024-10-16 14:16:05 +09:00
Calvin Rose
282f2671ea
Formatting.
2024-10-11 20:10:46 -05:00
Calvin Rose
3fc2be3e6e
Use _Exit since it is standard in c99
2024-10-11 20:10:04 -05:00
Calvin Rose
d10c1fe759
Use msvc compiler intrinsics for atomics.
...
This will let us use GCC atomics on mingw.
2024-10-11 20:03:06 -05:00
Calvin Rose
d18472b07d
More CI testing - add meson min build for windows.
2024-10-10 20:42:12 -05:00
Calvin Rose
43a68dcd2a
Include windows.h for atomics always in capi.c
2024-10-10 20:32:28 -05:00
Calvin Rose
3d93028088
Test bundle
2024-10-05 12:37:23 -05:00
Calvin Rose
99f0af92bd
Fix bundle/install with :check true installation failure.
2024-10-05 12:34:10 -05:00
Calvin Rose
71d81b14a2
Setting a profile will mess with imports.
2024-10-05 12:13:44 -05:00
Calvin Rose
3894f4021a
Update copyright date.
2024-09-29 16:07:24 -05:00
Calvin Rose
72c659d1ee
Github has fewer runners than I thought.
2024-09-29 07:17:28 -05:00
Calvin Rose
8f879b4adc
Remove financial support link.
2024-09-29 07:15:56 -05:00
Calvin Rose
18f2847dc1
Add test for older windows.
2024-09-29 07:14:31 -05:00
Calvin Rose
89b7ff9daf
Merge pull request #1510 from sogaiu/badge-swap
...
Replace gitter badge with zulip one
2024-09-27 17:52:16 -07:00
sogaiu
26c263d6be
Replace gitter badge with zulip one
2024-09-25 23:45:04 +09:00
Calvin Rose
2570e0f7a0
Add *repl-prompt*.
2024-09-21 08:58:04 -05:00
Calvin Rose
8084e4c728
Add support for multiple directories in JANET_PATH.
...
Use a colon ":" as the separator on posix, and semicolon ";" on
windows (and mingw).
2024-09-20 23:05:02 -05:00
Calvin Rose
ee90f9df62
Merge pull request #1506 from sogaiu/tweak-signal-doc
...
Add some detail to signal docstring
2024-09-18 16:50:13 -07:00
sogaiu
906a982ace
Add some detail to signal docstring
2024-09-17 20:04:16 +09:00
Calvin Rose
88e60c309c
Add overflow check.
2024-09-12 17:28:53 -05:00
Calvin Rose
9694aee819
Add rules for nth and only-tags. Address #1503
...
These rules allow selecting from a number of sub-captures
while dropping the rest. `nth` is more succinct in many cases, but `only-tags` is
more general and corresponds to an internal mechanism already present.
2024-09-12 17:23:34 -05:00
Calvin Rose
2697b0e425
More CI testing.
...
Add multiple windows versions, and differentiate between arm and intel
macs.
2024-09-08 20:55:10 -05:00
Calvin Rose
c0d7a49b19
Prepare for 1.36.0 release.
2024-09-07 12:33:28 -05:00
Calvin Rose
f9a6f52d9c
Improve error messages even more for copyfile.
2024-09-07 10:02:26 -05:00
Calvin Rose
c02c2e3f02
Update CHANGELOG.md
2024-09-07 09:32:42 -05:00
Calvin Rose
1fcd47dd7b
Improve error messages in bundle/add if files are missing.
...
Instead of cryptic "error: unknown method :close invoked on nil" errors, let
user know file or path does not exist before failing to copy files.
2024-09-07 09:19:15 -05:00
Calvin Rose
384ee4f6a9
Merge pull request #1498 from sogaiu/remove-janet-def
...
Don't try to copy janet.def
2024-09-06 17:03:25 -07:00
Calvin Rose
e9deec8231
Change directory before running make ...
2024-09-06 18:35:50 -05:00
Calvin Rose
2fc77a1b63
Tweak argumnets.
2024-09-06 18:31:57 -05:00
Calvin Rose
442fe8209d
Non interative run for qemu
2024-09-06 18:29:36 -05:00
Calvin Rose
968a0dc4ac
Follow github directions for qemu multiarch.
2024-09-06 18:28:00 -05:00
Calvin Rose
40c93d0786
Try using just scripts for testing.
2024-09-06 18:23:55 -05:00
Calvin Rose
83b0bc688c
Try running inside a container.
2024-09-06 18:05:03 -05:00
sogaiu
6185b253be
Don't try to copy janet.def
2024-09-07 00:57:13 +09:00
Calvin Rose
17da53d0d9
Add github workflow for qemu + s390x
2024-09-06 10:28:54 -05:00
Calvin Rose
9ffec43d2b
Fix endianess issues on s390x architecture.
...
Endianess code should use memcpy instead of unions. This apparently
is more correct on old, optimizing compilers. Technically, this is
compilers being really stupid but we work with what we got.
That said, this endianess code is more complicated than needed.
2024-09-06 10:23:31 -05:00
Calvin Rose
e4f4a42751
Add regression test for chat server issues. Address #1496
2024-09-06 08:05:56 -05:00
Calvin Rose
4f65c2707e
Undo workaround for unsetting reference from streams -> fibers after
...
async event completes. Moves this logic back into janet_async_end.
2024-09-06 00:20:50 -05:00
Calvin Rose
75bdea5155
Fix memory leak with weak table frees.
...
The backing buffer for weak arrays and tables was not freed upon
being garbage collected. This shows up in traces and valgrind. Verified
by running `make valtest` with changes.
2024-09-06 00:15:17 -05:00
Calvin Rose
f553c5da47
Update ev.c with workaround for failing chat server.
...
2 issues:
- With poll backend, we were polling for writes even after we finished
writing. Presents as wasting a lot of CPU.
- Fixes strange closing behavior of chat server.
2024-09-06 00:00:09 -05:00
Calvin Rose
5f70a85f7e
Add chat server example.
2024-09-05 23:09:02 -05:00
Calvin Rose
c82fd106a7
Merge pull request #1494 from pyrmont/bugfix.changelog
2024-09-04 18:31:21 -07:00
Michael Camilleri
0e9b866b98
Move unreleased change out of v1.35.2 section
2024-09-05 08:29:45 +09:00
Calvin Rose
67a8c6df09
Merge pull request #1492 from sogaiu/tweak-changelog
...
Move bundle/add-bin changelog line to unreleased
2024-09-04 05:39:30 -07:00
sogaiu
86cf8127b6
Move bundle/add-bin changelog line to unreleased
2024-09-04 17:47:10 +09:00
Calvin Rose
828e0a07cd
Don't check for docstrings when explicitly disabled.
2024-08-31 17:23:28 -05:00
Calvin Rose
90018b35c0
Begin standardizing of event properties for filewatch.
...
- `:file-name` for the name of the file that triggered the event.
- `:dir-name` for the containing directory of the file
- `:type` for the event type.
2024-08-31 14:26:08 -05:00
Calvin Rose
5a199716cb
Save :source-form in environment when debugging is enabled.
2024-08-29 21:12:53 -05:00
Calvin Rose
43ecd4f2d8
Add fixes for marshalling weak containers - Fix #1488
...
Weak containers did not preserve their weakness when marshalled. This
fixes that for tables and arrays, as well as adds some tests for this.
Also exposes functions for creating weak tables in janet.h
2024-08-22 19:37:41 -05:00
Calvin Rose
c5a9602be9
Better handle extra filewatch events on wine.
2024-08-20 18:30:56 -05:00
Calvin Rose
e88aab6d68
Fix mingw build warnings.
2024-08-20 18:24:54 -05:00
Calvin Rose
ce528251d5
Fix mingw build warnings.
2024-08-20 18:06:57 -05:00
Calvin Rose
9e334da2d6
Exit early when filewatch is not supported.
...
Currently we have no poll implementation.
2024-08-18 16:25:47 -05:00
Calvin Rose
c0e508e334
filewatch on mingw has same semantics as windows
2024-08-18 16:18:09 -05:00
Calvin Rose
b63b3bef74
Add testing for Linux.
2024-08-18 15:44:59 -05:00
Calvin Rose
05d0b5ac05
Add mostly stubbed filewatch test suite.
2024-08-18 14:42:44 -05:00
Calvin Rose
c56d6e8fc1
Add suite for testing filewatch.
...
Currently expects windows events.
2024-08-18 10:12:33 -07:00
Calvin Rose
33d2f9a522
More changes how we use WideCharToMutliByte
...
Handle case where there is no data pushed in.
2024-08-18 07:23:06 -07:00
Calvin Rose
e53d22fad2
Add unlisten for linux.
2024-08-18 06:25:25 -07:00
Calvin Rose
33f55dc32f
Go back to ReadDirectoryChangesExW since it is better.
2024-08-18 05:29:08 -07:00
Calvin Rose
7e6aad2221
filewatch/make -> filewatch/new
...
Add support for :recursive on windows.
2024-08-17 16:37:30 -07:00
Calvin Rose
3c0c22259c
ReadDirectoryChangesExW is only supported in recent windows.
...
Also break mingw builds it seems.
2024-08-17 13:33:39 -07:00
Calvin Rose
42f6af4bf1
First working version of filewatch on windows.
2024-08-17 12:37:58 -07:00
Calvin Rose
f274b02653
More changes for filewatch windows.
2024-08-17 10:26:43 -05:00
Calvin Rose
70c29b4e5d
More updates to windows build.
2024-08-17 10:21:50 -05:00
Calvin Rose
84d43d1039
Add failure to initialize protections for filewatch module.
2024-08-17 10:12:36 -05:00
Calvin Rose
5c67c1165d
Merge branch 'filewatch'
2024-08-17 10:08:37 -05:00
Calvin Rose
85028967d8
Add aliases for bundle/module - issue #1486
...
info.jdn -> bundle/info.jdn
bundle.janet -> bundle/init.janet
2024-08-17 09:58:40 -05:00
Calvin Rose
6ceff6ecc9
Work on the filewatch module.
...
Currently a wrapper around inotify, should be expanded to work with
kqueue, icop, and eventually a implementation with polling and stat.
2024-08-16 19:44:17 -05:00
Calvin Rose
06eec06ff0
More work on ICOP
2024-08-16 19:44:07 -05:00
Calvin Rose
2dcc0adc0e
Merge pull request #1485 from sogaiu/tweak-add-bin-dest-arg
...
Prefix bin+sep to add-bin dest argument
2024-08-15 05:47:10 -07:00
sogaiu
8ca1e44af1
Prefix bin+sep to add-bin dest argument
2024-08-15 15:53:35 +09:00
Calvin Rose
2aedc6beff
Begin stubbing out win32 abstraction.
...
Win32 abstraction will use ReadDirectoryChanges with overlapped
IO to get results. Some work will be required to allow for single file
watches, as well as allow for recursive watching on Linux.
Unfortunately, various operating systems have very differnet
abstractions here. I would rather expose inotify, kqueue, and
ReadDirectoryChanges fairly transparently before
adding shims to make cross platform code easier.
2024-08-14 21:24:27 -05:00
Calvin Rose
af2eb06298
Expose janet_channel_make and janet_channel_make_threaded
2024-08-14 17:34:48 -05:00
Calvin Rose
7ff545bd2e
Stop out better configuration.
2024-08-11 18:43:10 -05:00
Calvin Rose
a59b5765b6
Work on the filewatch module.
...
Currently a wrapper around inotify, should be expanded to work with
kqueue, icop, and eventually a implementation with polling and stat.
2024-08-11 17:50:58 -05:00
Calvin Rose
6bd58dd4c0
Update CHANGELOG.md
2024-08-11 08:47:10 -05:00
Calvin Rose
e3406cd922
Update changelog and ensure consistent version strings.
2024-08-10 15:21:43 -05:00
Calvin Rose
ab70524d85
Add array/join and tuple/join
...
Utilities for combining indexed types more efficiently. `array/join`
also solves some interface issues with array/concat
2024-08-10 15:16:28 -05:00
Calvin Rose
ce36c4c0d6
Only raise IOCP error on readable, writable, or acceptable streams.
...
We may create streams whose sole purpose is to wrap a file descriptor
and therefor don't need to be IOCP enabled / nonblocking.
2024-08-06 07:08:16 -05:00
Calvin Rose
2b01b780da
Only raise IOCP error on readable, writable, or acceptable streams.
...
We may create streams whose sole purpose is to wrap a file descriptor
and therefor don't need to be IOCP enabled / nonblocking.
2024-08-06 07:06:34 -05:00
Calvin Rose
f3048a3d6b
Update documentation.
2024-08-05 20:17:00 -05:00
Calvin Rose
accac6c662
Add options to os/pipe for custom blocking behavior.
...
Useful for create pipelines on unix.
Also add bundle/whois to help diagnose where bundle installed files
came from.
2024-08-05 19:52:20 -05:00
Calvin Rose
631622aa48
Use gensym in do-compare macro.
...
Improve hygiene of macro in case later changes introduce subtle bugs.
2024-07-31 11:19:44 -05:00
Calvin Rose
aaeaa3a944
Add geomean function.
2024-07-31 09:47:00 -05:00
Calvin Rose
d1104b5a65
Merge pull request #1480 from pyrmont/bugfix.fallback-compare
...
Fix fallback support in polymorphic compare
2024-07-31 06:05:27 -07:00
Michael Camilleri
1f074671ce
Fix polymorphic support in compare
2024-07-29 16:16:41 +09:00
Calvin Rose
872b39cc32
Add syntax literals for signed and unsigned 64 bit integers.
...
Number literals can now take an optional "representation" suffix
- Use `:n` for normal numbers (IEEE-754 doubles)
- Use `:s` for signed 64 bit integers
- Use `:u` for unsigned 64 bit integers
- Other suffix will fallthrough the usual parseing logic. This means
that they will only possibly resolve to symbols if they start with -,
+, or .
The syntax does not collide with any existing valid Janet and is only
enabled with JANET_INTTYPES. This also leaves open a syntax for other
number types such as bignums, ratios, decimals, etc.
2024-07-21 09:45:44 -05:00
Calvin Rose
9eab57d194
Merge pull request #1476 from sogaiu/no-warning-for-empty-body-loop
2024-07-18 05:05:59 -07:00
sogaiu
8edd873c3e
Do not warn when loop body is empty
2024-07-18 12:02:39 +09:00
Calvin Rose
771956b5b6
Fix some -fsanitize=undefined behavior for #1475
...
Also fix issue with os/clock and default values that were incorrect.
The api shold have been a little nicer here to prevent this issue.
2024-07-17 08:50:02 -05:00
Calvin Rose
ecc4da5113
Include math.h for corelib.c
...
This is the downside of the forced amalgamated build. Strange build
constraints.
2024-07-13 12:44:46 -05:00
Calvin Rose
f5555d21b9
Update CHANGELOG.md
2024-07-13 12:43:35 -05:00
Calvin Rose
342a29c7be
Fix formatting.
2024-07-12 15:22:46 -05:00
Calvin Rose
368b891499
Merge branch 'linspace-range'
2024-07-12 15:15:46 -05:00
Calvin Rose
f62539ad55
Add shorthand for installing scripts via bundle/add-bin.
...
Establishing a convention for scripts is beneficial for various tools.
However, we do not install scripts on anyones PATH - instead they go
to a self contained (dyn *syspath*) /bin folder which could be added to
path, or symlinks could be added.
2024-07-12 15:14:40 -05:00
Calvin Rose
4835ecb950
Work on making range take non-integer values.
2024-07-11 08:05:52 -05:00
Calvin Rose
31f0ff0d84
Merge pull request #1472 from Andriamanitra/compile-default-output-file
...
Add default output path for --compile (-c)
2024-07-08 05:14:33 -07:00
Andriamanitra
b7b594205c
Add default output path for --compile (-c)
2024-07-08 11:55:50 +03:00
Calvin Rose
190056b863
Merge pull request #1471 from Darazaki/repl-ctrl-arrow
...
Add ctrl + left/right arrow support to the REPL
2024-07-03 12:58:16 -07:00
Naqua Darazaki
ae6b359109
Add ctrl + left/right arrow support to the REPL
...
Ctrl + left/right arrow would simply input "5D"/"5C" into the REPL
which was useless and confusing
With this change, it instead goes to the previous/next word which is
usually expected in readline-like interfaces
2024-07-03 14:17:57 +02:00
Calvin Rose
3078686f8f
Merge pull request #1468 from SyrupThinker/st/aarch64_ffi
...
Add support for the AAPCS64 calling convention
2024-06-26 06:55:04 -07:00
Calvin Rose
0f4ecd93ab
Fix #1469
2024-06-26 08:54:26 -05:00
Valentin Anger
4af187d0ca
Add support for the AAPCS64 calling convention
2024-06-23 18:22:25 +02:00
Calvin Rose
a5d6b22838
Check for __GLIBC__ instead of _GNU_SOURCE
...
musl doesn't obey this behavior.
2024-06-21 17:17:22 -05:00
Calvin Rose
fda0a081f5
Fix quoting for import.
2024-06-16 10:57:14 -05:00
Calvin Rose
94b7a69741
More fixes for patch release.
2024-06-16 10:22:49 -05:00
Calvin Rose
6518257129
Merge pull request #1460 from pnelson/fix-typos
...
Fix typos
2024-06-16 08:21:52 -07:00
Calvin Rose
dc325188d0
Prepare for 1.35.1
2024-06-16 10:20:01 -05:00
Philip Nelson
0b51ab157d
Fix typos
2024-06-16 06:59:27 -07:00
Calvin Rose
f95de25b15
Update docstrings.
2024-06-16 07:58:38 -05:00
Calvin Rose
f424f2936b
Merge pull request #1459 from sogaiu/dynvar-docstring-tweaks
...
Tweak some docstrings
2024-06-16 05:50:43 -07:00
sogaiu
2d6c2ee7c0
Tweak some dyn var docstrings
2024-06-16 08:48:30 +09:00
Calvin Rose
7cd106a10c
Prepare for 1.35.0 release.
2024-06-15 16:11:32 -05:00
Calvin Rose
0d9e999113
Prepare for 1.35.0 release.
2024-06-15 07:11:48 -05:00
Calvin Rose
75710ccabd
Error on buffer/push-uint16 with non 16 bit unsigned integer.
2024-06-15 06:47:47 -05:00
Calvin Rose
0f60115f27
Merge pull request #1457 from pnelson/buffer-push-uint
...
Fix buffer push uint max
2024-06-15 06:31:46 -05:00
Philip Nelson
16a3c85baa
Fix buffer push uint max
2024-06-14 18:15:31 -07:00
Calvin Rose
92ff1d3be4
Add only option to merge-module and import.
...
This allows importing only selected bindings.
For example,
(import foo :only [bar baz])
(foo/bar) # works
(foo/buzz) # doesn't work, even if the foo module has a buzz
function.
2024-06-14 17:01:27 -05:00
Calvin Rose
58441dc49f
Update gitignore.
2024-06-12 19:22:08 -05:00
Calvin Rose
dbc5d688e2
Merge branch 'master' into bundle-tools
2024-06-12 18:28:23 -05:00
Calvin Rose
e2a8951f68
Address #1452 - Partial revert some changes from #1391
...
This doesn't seem to reintroduce the original issue. There was
definitely some interplay with #1431
Doing git bisect landed me at commit
2f0c789ea1 as the first bad commit for
issue #1452 .
2024-06-07 10:32:20 -05:00
Calvin Rose
f0f03ad519
Delete dead code.
2024-06-04 21:11:08 -05:00
Calvin Rose
e37575e763
Allow passing configs to bundle reinstall.
2024-05-31 19:20:34 -05:00
Calvin Rose
f4fd481415
copyfile should copy permission bits
2024-05-29 19:37:14 -05:00
Calvin Rose
8fca6b7af4
Don't expose bundle/pack, do expose bundle/add
...
Bundle/pack is a strange interface that is mostly just
to implement a safe reinistall process when the original source
is lost.
2024-05-29 07:20:37 -05:00
Calvin Rose
600e822933
Change interface for bundle/install
...
Name argument should be inferred in most cases. Also use :name
instead of :bundle-name in most places to be terser and simpler.
2024-05-26 16:26:08 -05:00
Calvin Rose
2028ac8a20
Merge branch 'master' into bundle-tools
2024-05-26 14:34:05 -05:00
Calvin Rose
7bae7d9efd
Merge changes from bundle-tools branch:
...
- Update file IO to explicitly use 64bit ftell/fseek
- Add env argument to eval
- Allow naming function literals with keywords.
2024-05-26 12:04:35 -05:00
Calvin Rose
cb54fb02c1
Whitespace.
2024-05-26 12:01:27 -05:00
Calvin Rose
7529abb542
Move functions in boot.janet around.
2024-05-26 11:54:21 -05:00
Calvin Rose
16ac681ed9
Remove redundant stuff from stacktrace.
...
Rather than try and make ascii art, focus on whether information
is present in the stack trace that peoplpe actually need, and be terse.
Tools can better handler simpler and more stable interfaces.
2024-05-26 11:39:08 -05:00
Calvin Rose
74560ff805
Turn off cluttered traces.
2024-05-26 11:30:59 -05:00
Calvin Rose
fe348187cc
Be explicit about 64 bit offset on windows.
2024-05-26 11:26:12 -05:00
Calvin Rose
fd5315793c
Test feature flag
2024-05-26 11:16:31 -05:00
Calvin Rose
87db463f4e
Shouldn't make a difference...
2024-05-26 11:07:23 -05:00
Calvin Rose
1225cd31c8
Assert that prime-bunlde-paths is working.
2024-05-26 10:54:00 -05:00
Calvin Rose
6998865d7b
Mingw is a sepate os/which target than windows.
2024-05-26 10:41:12 -05:00
Calvin Rose
b8aec50763
Something is up with code.
2024-05-26 10:35:53 -05:00
Calvin Rose
7efb39d608
Check bundle listing before reinstall.
2024-05-26 10:28:19 -05:00
Calvin Rose
f7c90bc1ff
Add testing for making and removing directory.
2024-05-26 10:21:52 -05:00
Calvin Rose
aee077c1bd
Is qemu-arm buggy?
2024-05-26 09:53:04 -05:00
Calvin Rose
6968275ddf
Update rmrf again to be more strict and failure early
2024-05-26 09:40:18 -05:00
Calvin Rose
074ae4fc0d
When directory isn't empty, print what is in it.
2024-05-26 09:31:26 -05:00
Calvin Rose
6cd35ed9c8
Try and be OS sensitive when using path separators.
2024-05-26 09:28:56 -05:00
Calvin Rose
7911e74222
Use lstat instead of stat
2024-05-26 09:11:24 -05:00
Calvin Rose
2fafe2b5d1
Make rmrf stronger.
2024-05-26 09:09:04 -05:00
Calvin Rose
de977819ce
Add some tracing.
2024-05-26 09:03:01 -05:00
Calvin Rose
1844beecc3
More work on improving stacktraces slightly.
...
Add extra information about when we change fibers. The janet
stack is really a spaghetti stack, where each fiber represents
a group of stack frames as well as a place where we can longjmp to. It
is therefor useful information for the programmer to know where each
stack frame is.
However, an argument could be made that this clutters the stackframe
and is more of a hindrance than a help.
2024-05-26 08:45:38 -05:00
Calvin Rose
cb529bbd63
Pass on linux.
2024-05-25 16:48:27 -05:00
Calvin Rose
25990867e2
Missing )
2024-05-25 16:46:04 -05:00
Calvin Rose
4fbc71c70d
Just don't do backslashes.
2024-05-25 16:43:51 -05:00
Calvin Rose
eb21d4fff4
Allow using keywords as names for anonymous functions.
...
This allows for better stack traces in macros and generally
easier debugging.
2024-05-25 16:36:08 -05:00
Calvin Rose
6d5fc1d743
Even more verbose
2024-05-25 16:15:58 -05:00
Calvin Rose
e88042b2fa
Pick default bundle name better.
2024-05-25 16:09:49 -05:00
Calvin Rose
750b448f75
typo doing previous CI trigger.
2024-05-25 16:02:23 -05:00
Calvin Rose
14d1dc8749
Pathing is not quite working...
2024-05-25 16:00:43 -05:00
Calvin Rose
8e0340252b
Add verbose errors to ci
2024-05-25 15:50:51 -05:00
Calvin Rose
641a16c133
Add suite-bundle to meson test list.
2024-05-25 15:42:28 -05:00
Calvin Rose
533d78bffe
Merge branch 'master' into bundle-tools
2024-05-25 13:24:42 -05:00
Calvin Rose
ae2c5820a1
Fix janet_strerror when _GNU_SOURCE defined.
2024-05-25 13:24:01 -05:00
Calvin Rose
8334504f4e
More work on fixing bunlde tools install.
2024-05-25 13:23:11 -05:00
Calvin Rose
2260a593bd
Add some test usage for the sample bundle.
2024-05-25 12:57:09 -05:00
Calvin Rose
7d8af2f99a
Add some testing to the bundle/ module.
2024-05-25 12:44:49 -05:00
Calvin Rose
46bdcece4d
Add some better logging when pruning bundles.
2024-05-25 10:56:40 -05:00
Calvin Rose
7387a1d91e
Add bundle/prune and support for :auto-remove.
...
This allows dependencies to be marked such that they are not
primary dependencies installed by the users - rather, they are
dependencies of dependencies. This distinction is important when
a user installs a package that itself has dependencies.
This also interacts with new features to prevent a user from breaking
their installation by installing needed packages or
installing/uninstalling bundles out of order.
2024-05-25 10:48:26 -05:00
Calvin Rose
ae4b8078df
Merge branch 'master' into bundle-tools
2024-05-25 09:26:25 -05:00
Calvin Rose
60e0c8ea92
Ignore gcov
2024-05-25 09:25:27 -05:00
Calvin Rose
7d3acc0ed6
Get rid of "extended locale" support.
...
While useful on some platforms, behavior seems to be different across
the board, making use difficult.
2024-05-19 18:01:20 -05:00
Calvin Rose
2637b33957
Include locale.h and xlocale.h on some platforms.
2024-05-19 17:40:39 -05:00
Calvin Rose
58ccb66659
Move janet_buffer_dtostr
2024-05-19 17:14:21 -05:00
Calvin Rose
634429cf61
Merge branch 'locales'
2024-05-19 17:05:49 -05:00
Calvin Rose
6ac65e603d
Merge branch 'master' into bundle-tools
2024-05-19 15:52:25 -05:00
Calvin Rose
03166a745a
Disallow nan and inf in jdn.
2024-05-19 13:25:25 -05:00
Calvin Rose
4d61ba20ce
Fix -Werror=calloc-transposed-args
2024-05-19 09:55:39 -05:00
Calvin Rose
751ff677fe
Merge branch 'master' into bundle-tools
2024-05-19 09:53:14 -05:00
Calvin Rose
ace60e1898
Add ev/with-*lock macros.
2024-05-18 17:55:47 -05:00
Calvin Rose
876b7f106f
OpenBSD does not work with LC_*_MASK stuff.
2024-05-18 17:22:10 -05:00
Calvin Rose
809b6589a1
Put limits.h back.
2024-05-18 15:31:23 -05:00
Calvin Rose
02f53ca014
Formatting.
2024-05-18 15:21:37 -05:00
Calvin Rose
0b03ddb21b
More work on setting locale for extended locale support.
2024-05-18 15:20:22 -05:00
Calvin Rose
ea5d4fd3af
JANET_BSD not defined on apple.
2024-05-18 14:24:51 -05:00
Calvin Rose
e6b73f8cd1
BSD, use xlocale for thread safe functionality
2024-05-18 14:11:05 -05:00
Calvin Rose
af232ef729
windows needs a distinct implementation from posix for thread safety.
...
I must say, the windows solution is a lot simpler.
2024-05-18 14:02:20 -05:00
Calvin Rose
2e2f8abfc0
Work on add locales.
...
Need to be careful not to mess with %j formatter, or
in some other places.
2024-05-18 13:23:33 -05:00
Calvin Rose
91a583db27
Merge pull request #1448 from znley/master
...
Add LoongArch64 support
2024-05-18 06:33:07 -05:00
Calvin Rose
dc5cc630ff
Keep track of hooks and simple dependency tracking.
...
Refuse to install bundle unless dependencies are present.
Dependencies can be found for a bundle pre-install
by looking in ./bundle/info.jdn
2024-05-18 06:24:39 -05:00
znley
c1647a74c5
Add LoongArch64 support
2024-05-18 07:18:59 +00:00
Calvin Rose
721f280966
Add with-env.
2024-05-16 21:52:49 -05:00
Calvin Rose
258ebb9145
Merge branch 'master' into bundle-tools
2024-05-16 21:39:41 -05:00
Calvin Rose
e914eaf055
Update CHANGELOG.md
2024-05-16 21:37:08 -05:00
Calvin Rose
fe54013679
Update naming *module-make-env* for #1447
2024-05-16 19:11:25 -05:00
Calvin Rose
fdaf2e1594
Add *module/make-env*
2024-05-16 19:10:30 -05:00
Calvin Rose
f0092ef69b
Add module/*make-env*
2024-05-16 19:06:07 -05:00
Calvin Rose
a88ae7e1d9
Merge branch 'master' into bundle-tools
2024-05-15 20:41:58 -05:00
Calvin Rose
9946f3bdf4
Add buffer/format-at
...
Move changes over from bundle-tools branch and add testing.
2024-05-15 20:16:42 -05:00
Calvin Rose
c747e8d16c
Address some compiler linter messages on openbsd
2024-05-15 18:20:20 -05:00
Calvin Rose
3e402d397e
Use older openbsd build for CI.
2024-05-15 18:16:19 -05:00
Calvin Rose
0350834cd3
By default, require and import extend current env.
2024-05-15 07:40:21 -05:00
Calvin Rose
980981c9ee
Print message if no hook found, but looked for
2024-05-15 07:30:29 -05:00
Calvin Rose
3c8346f24e
Install to bundle/ instead of _bundles/
2024-05-14 20:51:29 -05:00
Calvin Rose
42bd27c24b
Use a single janet file for hooks..
2024-05-14 16:45:27 -05:00
Calvin Rose
4a0f67f3bd
Update copyright.
2024-05-13 21:35:55 -05:00
Calvin Rose
09b6fc4670
Change storage locations for bundles.
...
Organize metadata a bit more cleanly under .bundles/<bundle-name>/
2024-05-13 20:59:06 -05:00
Calvin Rose
4d9bcd6bcc
Add is-backup option to bundle/pack.
...
We don't always to keep the old manifest and hooks.
2024-05-13 19:42:44 -05:00
Calvin Rose
cd34b89977
Rename bundle/backup to bundle/pack.
2024-05-13 19:38:14 -05:00
Calvin Rose
3151fa3988
Don't expose bundle/do-hook.
...
This is really an internal detail - rather than users writing
custom hooks, custom functionality should just be normal janet scripts.
2024-05-13 18:45:43 -05:00
Calvin Rose
5e58110e19
Add copyfile for copying large files.
2024-05-13 18:39:45 -05:00
Calvin Rose
e1cdd0f8cc
Update CHANGELOG.md
2024-05-13 12:47:46 -05:00
Calvin Rose
1f39a0f180
Add bundle/backup and buffer/format-at
...
bundle/backup is needed to make failed reinstalls able to rollback. It
also allows python wheel like functionality, where bundles can be build
on one machine, packaged, and then distributed and installed on other
compatible machines without compilers.
buffer/format-at is to buffer/format as buffer/push-at is to
buffer/push. It allows us to format in the middle of an existing
buffer. Prior, to do this operation and extra buffer creating was
required.
2024-05-13 12:06:17 -05:00
Calvin Rose
367c4b14f5
Sync manifest on error so that we uninstall the correct files.
...
If we cannot create files during install, we want to be able
to do a correct rollback.
2024-05-12 15:08:27 -05:00
Calvin Rose
9c437796d3
Add first versions of bundle/* module
...
The bundle module contains tools for modifying the contents of
(dyn *syspath*) and providing a common interface for installing
packages (called "bundles").
The functions are:
* bundle/install
* bundle/uninstall
* bundle/manifest
* bundle/do-hook
* bundle/list
* bundle/add-file
* bundle/add-directory
A bundle is a directory that contains any number of source files and
other extra files, as well as a directory "hooks/", which contains a
flat listing of janet scripts. This version of the bundle module is not
responsible for building C source modules or for downloading files over
the network.
2024-05-12 14:42:05 -05:00
Calvin Rose
60e22d9703
Merge pull request #1445 from wishdev/defbind-alias
...
Add ffi/defbind-alias
2024-05-11 14:25:03 -05:00
John W Higgins
ee7362e847
Add ffi/defbind-alias
2024-05-09 21:31:22 -07:00
Calvin Rose
369f96b80e
Update README to prefer Zulip.
2024-05-03 07:51:35 -05:00
Calvin Rose
7c5ed04ab1
A few minor improvements.
...
- Add long-form CLI options
- Update changelog.
- Use snprintf instead of sprintf for linters.
2024-05-02 09:13:29 -05:00
Calvin Rose
4779a445e0
Fix BSD/Macos issue for #1431
2024-04-26 19:32:47 -05:00
Calvin Rose
f0f1b7ce9e
Address #1431 - level-trigger mode for net/accept-loop
...
In the edge-trigger mode before this change, if a socket
receives 2 connections before one can be handled, then only a single
connection is handle and 1 connection will never be handled in some
cases. Reverting to level-trigger mode makes this impossible.
2024-04-26 19:28:20 -05:00
Calvin Rose
7c9157a0ed
Remove unneeded string functions.
2024-04-26 18:11:10 -05:00
Calvin Rose
522a6cb435
Merge pull request #1440 from ahgamut/cosmo-build
...
Build janet with Cosmopolitan Libc
2024-04-21 08:06:51 -05:00
Gautham
d0d551d739
remove superconfigure recipe
2024-04-21 01:16:54 -05:00
Gautham
71a123fef7
apelink
2024-04-21 01:14:58 -05:00
Gautham
3f40c8d7fb
fix typo
2024-04-21 01:12:59 -05:00
Gautham
983c2e5499
simplify build to use only cosmocc
2024-04-21 01:10:06 -05:00
Gautham
eebb4c3ade
remove logging
2024-04-20 22:35:04 -05:00
Gautham
50425eac72
typo
2024-04-20 22:23:29 -05:00
Gautham
382ff77bbe
typo
2024-04-20 22:16:23 -05:00
Gautham
bf680fb5d3
simplify janet APE build
2024-04-20 22:09:10 -05:00
Gautham
4ed7db4f91
simplify naming
2024-04-19 10:56:46 -05:00
Calvin Rose
bf19920d65
Improve casting.
2024-04-18 03:29:45 -05:00
Gautham
174b5f6686
missing folder
2024-04-16 22:24:31 -05:00
Gautham
4173645b81
missing folder
2024-04-16 22:23:12 -05:00
Gautham
af511f1f55
patch folder location
2024-04-16 22:15:54 -05:00
Gautham
83c6080380
yml config for building with Cosmopolitan Libc
2024-04-16 22:02:31 -05:00
Calvin Rose
2f0c789ea1
More work to address #1391
...
Properly set read_fiber and write_fiber to NULL when unused.
This was causing extra listening in the poll implemenation leading to
busy loops where a read was accidentally listening for POLLOUT.
2024-04-15 21:32:17 -05:00
Calvin Rose
a9b8f8e8a9
Address #1391 - set fd to negative value if not used.
...
See https://groups.google.com/g/comp.unix.programmer/c/bNNadBIEpTo/m/G5gs1mqNhbIJ?pli=1 for a conversation and workaround.
2024-04-15 18:12:42 -05:00
Calvin Rose
f92f3eb6fa
Address #1434 - add dynamic bindings for module state.
2024-04-15 16:20:13 -05:00
Calvin Rose
89e74dca3e
Update freebsd build
2024-04-15 16:02:34 -05:00
Calvin Rose
f2e86d2f8d
Merge pull request #1432 from wishdev/os/clock
...
Add additional format options for os/clock
2024-04-15 07:34:02 -05:00
John W Higgins
623da131e5
os/clock docstring typos
2024-03-27 22:32:27 -07:00
John W Higgins
e89ec31ae5
Add additional format options for os/clock
2024-03-27 22:32:27 -07:00
Calvin Rose
68a6ed208e
Merge pull request #1430 from pepe/fix-win-clean
...
Add exists test for dist directory on build command clean
2024-03-24 10:49:34 -07:00
Calvin Rose
c01b32c4f3
Merge pull request #1429 from pepe/prepare-134
2024-03-22 06:52:40 -07:00
Josef Pospíšil
ee11ff9da9
Move date and sort people
2024-03-22 07:54:23 +01:00
Josef Pospíšil
ed56d5d6ff
Add @llmII to docs
2024-03-20 10:40:30 +01:00
Josef Pospíšil
b317ab755c
One more commit
2024-03-20 10:34:30 +01:00
Josef Pospíšil
9819994999
Correct changelog
2024-03-20 10:32:13 +01:00
Josef Pospíšil
e9dbaa81d2
Add exists test on clean
2024-03-20 10:18:42 +01:00
Josef Pospíšil
9f9146ffae
Prepare for 1.34.0 release
2024-03-20 10:11:08 +01:00
Josef Pospíšil
9d9732af97
Update changelog for 1.34.0
2024-03-20 09:57:57 +01:00
Calvin Rose
ebb8fa9787
Merge pull request #1410 from sogaiu/ev-deadline-and-friends-doc-tweaks
...
Doc tweaks for ev/deadline and ev/with-deadline
2024-03-12 06:18:40 -07:00
Calvin Rose
9e6abbf4d4
Fix asm roundtrip issue.
2024-03-10 09:07:11 -05:00
Calvin Rose
6032a6d658
Merge pull request #1414 from MaxGyver83/master
...
Fix documentation of peg/replace
2024-02-24 11:06:16 -08:00
Max Schillinger
c29ab22e6d
Fix documentation of peg/replace
2024-02-23 12:46:45 +01:00
sogaiu
592ac4904c
Doc tweaks for ev/deadline and ev/with-deadline
2024-02-23 10:59:43 +09:00
Calvin Rose
03ae2ec153
Merge pull request #1394 from amano-kenji/master
...
Improve documentation on subprocess API
2024-02-19 11:25:17 -08:00
Calvin Rose
3bc42d0d37
Only re-register when using poll.
2024-02-19 13:19:23 -06:00
Calvin Rose
12630d3e54
Register stream on unmarshal
2024-02-19 13:16:45 -06:00
Calvin Rose
c9897f99c3
Address #1405 - don't try and resume fibers that can't be resumed.
...
FOr fibers that _can_ be resumed and then get cancelled, the sched_id
will be incremented later prevent the spurious wake ups.
2024-02-19 08:37:49 -06:00
Calvin Rose
e66dc14b3a
Formatting.
2024-02-17 13:35:07 -06:00
Calvin Rose
7a2868c147
Fix macex1 to keep syntax location for all tuples - Address #1404
2024-02-17 13:34:23 -06:00
Calvin Rose
9e0daaee09
Address #1401 - restore if-let tail calls.
...
Changes to avoid multiple macro expansions of the "false" branch caused
a regression in this functionality.
2024-02-15 06:30:26 -06:00
Calvin Rose
c293c7de93
Merge pull request #1402 from sogaiu/each-body-before-set
...
Swap set / body order for each (#1400 )
2024-02-15 04:05:15 -08:00
Calvin Rose
49eb5f8563
Merge pull request #1403 from llmII/fix-os-proc-wait
...
Fix: make `proc_get_status` compliant to OS documentation.
2024-02-15 04:01:09 -08:00
amano.kenji
674b375b2c
Improve documentation on subprocess API
2024-02-13 05:34:52 +00:00
llmII
7e94c091eb
Fix: os/proc-wait
...
As discused over gitter, `WIFSIGNALED` macro must be checked before one
uses the WTERMSIG macro. This change reflects that necessity and adds a
final else clause which will panic if no status code could be
determined.
2024-02-12 23:06:08 -06:00
sogaiu
5885ccba61
Swap set / body order for each ( #1400 )
2024-02-13 11:12:18 +09:00
Calvin Rose
431ecd3d1a
Abort on assert failure instead of exit
2024-02-03 14:12:10 -06:00
Calvin Rose
f6df8ff935
Expose _exit to skip certain cleanup with os/exit
2024-02-03 14:12:10 -06:00
Calvin Rose
3fd70f0951
Update debug meson options.
2024-02-03 14:12:10 -06:00
Calvin Rose
bebb635d4f
Merge pull request #1392 from sogaiu/propagate-docstring-additions
...
Add to propagate docstring (#1365 )
2024-02-03 10:52:27 -08:00
sogaiu
354896bc4b
Add to propagate docstring ( #1365 )
2024-02-03 15:48:19 +09:00
Calvin Rose
5ddefff27e
Merge pull request #1389 from sogaiu/fiber-last-value-doc-tweak
2024-02-02 08:42:48 -08:00
sogaiu
91827eef4f
Tweak fiber/last-value docstring
2024-02-02 19:06:56 +09:00
Calvin Rose
9c14c09962
Add explicit stdatomic config setting for #1374
...
There was some hacky workaround code for development versions of TCC
that interfered with other compilers and technically was not legal
c99.
2024-01-28 15:53:41 -06:00
Calvin Rose
e85a84171f
Revert local change that removes stdatomic.h
2024-01-28 07:58:22 -06:00
Calvin Rose
3a4f86c3d7
Make host and port configurable for suite-ev.janet
2024-01-28 07:56:59 -06:00
Calvin Rose
5e75963312
Merge pull request #1367 from sogaiu/debug-stacktrace-doc-tweak
...
Tweak debug/stacktrace docstring (#1365 )
2024-01-28 05:33:11 -08:00
Calvin Rose
184d9289b5
Merge pull request #1371 from pepe/destructuring-typo
...
Fix typo in destructuring
2024-01-28 05:33:05 -08:00
Calvin Rose
b7ff9577c0
Merge pull request #1373 from sogaiu/module-expand-path-doc-suggestion
...
Address #1370
2024-01-28 05:32:50 -08:00
sogaiu
942a1aaac6
Address #1370
2024-01-27 21:20:27 +09:00
Josef Pospíšil
69f0fe004d
Fix typo in destructuring
2024-01-26 14:36:56 +01:00
sogaiu
2a04347a42
Tweak debug/stacktrace docstring ( #1365 )
2024-01-24 16:52:37 +09:00
Calvin Rose
1394f1a5c0
Merge pull request #1364 from sogaiu/module-expand-path-doc-tweak
...
Cosmetically tweak module/expand-path docstring
2024-01-23 16:01:49 -08:00
sogaiu
cf4d19a8ea
Cosmetically tweak module/expand-path docstring
2024-01-22 22:16:14 +09:00
Calvin Rose
23b0fe9f8e
Merge pull request #1360 from pepe/patch-1
2024-01-17 11:51:59 -08:00
Josef Pospíšil
1ba718b15e
Update CHANGELOG.md
2024-01-17 13:58:00 +01:00
Calvin Rose
df5f79ff35
Merge pull request #1359 from pnelson/binary
...
Add buffer/push-* sized int and float
2024-01-15 08:56:57 -08:00
Calvin Rose
6d7e8528ea
Merge pull request #1346 from ianthehenry/peg-split
...
add a new (split) PEG special
2024-01-15 08:16:06 -08:00
Philip Nelson
197bb73a62
Add buffer/push-* sized int and float
2024-01-14 15:32:13 -08:00
Calvin Rose
f91e599451
Merge pull request #1351 from pepe/1.33
2024-01-07 13:30:08 -06:00
Josef Pospíšil
5b9aa9237c
Prepare for 1.33.0 release
2024-01-07 16:26:20 +01:00
Ian Henry
61f38fab37
add a new (split) PEG special
...
This works similarly to string/split, but the separator is a PEG.
2024-01-05 22:02:52 -08:00
Calvin Rose
9142f38cbc
Fix #1341 .
2024-01-01 08:58:31 -06:00
Calvin Rose
e8ed961572
Merge pull request #1344 from ianthehenry/peg-sub-special
...
Add a new (sub) PEG special
2023-12-31 18:40:47 -06:00
Calvin Rose
be11a2a1ad
Fix #1342
2023-12-31 18:36:55 -06:00
Ian Henry
ea75086300
add a new (sub) PEG special
...
(sub) will first match one pattern, then match another pattern against the
text that the first pattern advanced over.
2023-12-28 22:15:54 -08:00
Calvin Rose
9eeefbd79a
Merge pull request #1340 from sogaiu/string-format-doc-tweak
2023-12-20 09:10:26 -06:00
sogaiu
c573a98363
Cosmetically tweak string/format docstring
2023-12-19 18:33:47 +09:00
Calvin Rose
11d7af3f95
Work on addressing #1337 - fix valgrind case.
2023-12-18 08:56:27 -06:00
Calvin Rose
a10b4f61d8
Address #1337 (leet!).
...
Changes a few scheduling details and adds a 0 byte explicitly to
symbols created via gensym.
2023-12-16 16:15:46 -06:00
Calvin Rose
a0cb7514f1
Update Makefile for #1329
...
Add separate import library for libjanet.so and janet.exe with Mingw.
This was causing issues with linking.
2023-12-09 10:11:15 -06:00
Calvin Rose
b066edc116
Merge pull request #1336 from pepe/peg-arity-typo
2023-12-07 11:31:13 -06:00
Josef Pospíšil
938f5a689e
Fix arity typo in peg
2023-12-07 14:08:03 +01:00
Calvin Rose
772f4c26e8
Merge pull request #1334 from iacore/fix-0
...
fix (doc next)
2023-12-02 17:28:32 -06:00
Locria Cyber
6b5d151beb
fix typo in (doc next)
2023-12-02 15:38:35 +00: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
16f409c6a9
Typo for SIGALARM in os/proc-kill
2023-11-21 21:51:56 -06:00
Calvin Rose
9593c930de
Address #1326 in a dynamic way that is fairly conservative.
...
Another optimization would be to keep track of immutable closure
captures (vs. mutable closure captures) and always detach them.
2023-11-14 21:13:21 -06:00
Calvin Rose
56f33f514b
Fix regression #1327
2023-11-14 19:52:22 -06:00
Calvin Rose
1ccd544b94
Address #1326 - marshal_one_env w/ JANET_MARSHAL_UNSAFE.
...
This allows uses the precise closure state capture
when marshalling data between threads. This prevents
accidental state capture when using ev/do-thread or similar
with closures that reference the current state.
2023-11-10 15:36:45 -06:00
Calvin Rose
93c83a2ee2
Fix warnings w/ MSVC and format.
2023-11-10 15:02:10 -06:00
Calvin Rose
f459e32ada
Merge pull request #1325 from zevv/zevv-connect-cleanup
...
net/ev: Cleaned up unused NetStateConnect, fixed janet_async_end() ev refcount
2023-11-10 15:01:43 -06:00
Ico Doornekamp
9b640c8e9c
net/ev: Cleaned up unused NetStateConnect, fixed janet_async_end() ev refcount
2023-11-10 20:34:17 +01:00
Calvin Rose
a3228f4997
Add changes and test cases for #1324
2023-11-09 11:18:03 -06:00
Calvin Rose
715eb69d92
Add more ipv6 feature detection.
2023-11-03 18:24:35 -05:00
Calvin Rose
df2d5cb3d3
Add ipv6, shared, and cryptorand options to meosn.
...
Allows for builting with cosmopolitan, both with meson
and Makefile. Use:
CC=comsocc meson setup -Dipv6=false -Ddynamic_modules=false
-Dshared=false -Dos_name=cosmopolitan
to configure for cosmopolitan build.
2023-11-02 08:56:10 -05:00
Calvin Rose
3b189eab64
Fix #1321 , poll event loop CPU usage issue
...
A stream may have a fiber attached for memory management purposes, but
not actually be waiting on anything. Be more seletive with poll, which
is not edge-triggered, to not poll for readiness on these streams.
2023-10-29 11:34:21 -05:00
Calvin Rose
609b629c22
Add support for atomic loads in Janet's atomic abstraction.
2023-10-21 10:40:57 -05:00
Calvin Rose
e74365fe38
Be a bit safer with reference counting.
...
We might want to revisit some uses of refcounts in the
ev module to be more efficient if we care about signal atomicity
(where memory order isn't really important) or multithreading atomicity.
2023-10-21 09:55:00 -05:00
Calvin Rose
46b34833c2
Merge pull request #1314 from williewillus/pr1314
...
Use libc strlen in janet_buffer_push_cstring
2023-10-20 15:41:29 -07:00
Vincent Lee
045c80869d
Use libc strlen in janet_buffer_push_cstring
...
Platform libc's often contains optimized assembly implementations of strlen, so take
advantage of them here instead of doing a naive count.
2023-10-19 23:30:28 -07:00
Calvin Rose
2ea2e72ddd
Merge pull request #1313 from sogaiu/default-peg-grammar-additions
...
Add more + and * keywords to default-peg-grammar
2023-10-19 19:26:10 -07:00
sogaiu
1b17e12fd6
Add more + and * keywords to default-peg-grammar
2023-10-19 18:45:20 +09:00
Calvin Rose
cc5beda0d2
Update patch release.
2023-10-15 14:33:43 -05:00
Calvin Rose
a363fd926d
Update CHANGELOG.md
2023-10-15 14:32:56 -05:00
Calvin Rose
21ebede529
Move posix-fork inside correct if-def
...
Don't compile if processes are disabled.
2023-10-15 11:03:26 -05:00
Calvin Rose
15d67e9191
Merge pull request #1310 from Andriamanitra/patch-forward-word
...
Change Alt-f in the REPL move to next end of word instead of beginning
2023-10-14 18:36:05 -07:00
Calvin Rose
b5996f5f02
Update for 1.32.0
2023-10-14 19:48:20 -05:00
Andriamanitra
83204dc293
Change Alt-f in the REPL move to next end of word instead of beginning
2023-10-14 14:21:16 +03:00
Calvin Rose
e3f4142d2a
Update result value from janet_do* functions.
2023-10-12 05:26:23 -05:00
Calvin Rose
f18ad36b1b
Rework #1306 - better default for pretty printing numbers.
...
Not perfect for serialization, but a representation that
plays well with both safe integers (z where abs(z) < 2^54) and
non-integer floats.
2023-10-11 00:59:57 -05:00
Calvin Rose
cb25a2ecd6
Avoid using execvpe function.
2023-10-08 21:33:15 -05:00
Calvin Rose
741a5036e8
Add %D and %I for 64 bit formatting.
...
Instead of breaking old code with changing %i and %d.
2023-10-08 21:23:03 -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
6ae81058aa
Be more consistent with va_arg types.
2023-10-08 19:09:35 -05:00
Calvin Rose
267c603824
Don't use full parallelism to avoid oom
2023-10-08 18:37:31 -05:00
Calvin Rose
a8f583a372
CMD isn't bash
2023-10-08 18:34:04 -05:00
Calvin Rose
2b5d90f73a
Disable amalgamation w/ mingw in CI due to memory limitations
2023-10-08 18:28:07 -05:00
Calvin Rose
4139e426fe
Refine interface for janet's new event loop.
...
Infer the current root fiber and force user to
allocate state for async events.
2023-10-08 18:25:46 -05:00
Calvin Rose
a775a89e01
Improve assert-no-error test helper.
2023-10-08 17:34:50 -05:00
Calvin Rose
990f6352e0
Allow for unregistered streams w/ kqueue.
2023-10-08 17:21:42 -05:00
Calvin Rose
b344702304
Merge branch 'master' into ev-epoll-fewer-syscalls
2023-10-08 17:20:20 -05:00
Calvin Rose
d497612bce
Revert
2023-10-08 17:18:36 -05:00
Calvin Rose
2a3b101bd8
ktrace trace -c
2023-10-08 16:25:55 -05:00
Calvin Rose
63e93af421
Ktrace
2023-10-08 16:00:33 -05:00
Calvin Rose
ab055b3ebe
i dont know how ktrace works 2
2023-10-08 15:54:57 -05:00
Calvin Rose
a9a013473f
i dont know how ktrace works
2023-10-08 15:53:44 -05:00
Calvin Rose
87de1e5766
Quick experiment on macos
2023-10-08 15:51:44 -05:00
Calvin Rose
894aaef267
Mac please
2023-10-08 15:42:54 -05:00
Calvin Rose
e209e54ffe
bsds are very strict on C standards
...
No labels before declarations.
2023-10-08 15:37:23 -05:00
Calvin Rose
7511eadaa7
Update code for freebsd and ENODEV on stream register
2023-10-08 15:26:02 -05:00
Calvin Rose
6c4906605a
Some bsds return ENODEV for devices like /dev/null
2023-10-08 15:09:53 -05:00
Calvin Rose
8a9be9d837
Make sure posted events are read from non-blocking socket.
2023-10-08 13:46:24 -05:00
Calvin Rose
b72098cc71
remove extra decref
2023-10-08 13:24:42 -05:00
Calvin Rose
defe60e08b
Handle refcounts in posted events.
2023-10-08 13:18:08 -05:00
Calvin Rose
7f852b8af4
Handle refcounts in posted events.
2023-10-08 13:14:36 -05:00
Calvin Rose
d71c100ca7
Revert "Add EV_EOF and EV_CLEAR to selfpipe for kqueue"
...
This reverts commit 5442c8e86d .
2023-10-08 13:13:58 -05:00
Calvin Rose
5442c8e86d
Add EV_EOF and EV_CLEAR to selfpipe for kqueue
2023-10-08 12:34:13 -05:00
Calvin Rose
cf4901e713
Update docstring for os/posix-fork
2023-10-08 11:54:25 -05:00
Calvin Rose
4b8c1ac2d2
Add os/posix-fork
...
Very simple fork function that returns a process object that can be
waited on.
2023-10-08 11:09:00 -05:00
Calvin Rose
555e0c0b85
Try to capture more events in kqueue.
2023-10-08 10:52:27 -05:00
Calvin Rose
dc301305de
Turn off verbose CI builds for BSD.
2023-10-07 21:35:38 -05:00
Calvin Rose
f1111c135b
Work on kq
2023-10-07 21:32:20 -05:00
Calvin Rose
3905e92965
kqueue mirror master branch implementation a bit better.
2023-10-07 12:53:59 -07:00
Calvin Rose
1418ada38f
Remove duplicate code in kqueue event handling.
2023-10-07 12:40:43 -07:00
Calvin Rose
9256a66b76
Update ev.c for removing msvc warnings
2023-10-07 12:11:14 -07:00
Calvin Rose
e8c013a778
Remove some extra fiber state and use a flag.
2023-10-07 12:07:05 -07:00
Calvin Rose
fea8242ea7
Reuse overlapped overhead on windows for something useful.
2023-10-07 11:25:20 -07:00
Calvin Rose
7bfb17c209
Lots of work to make iocp work again.
...
Big issue with IOCP vs. poll variants is that the overlapped
structures have a longer lifetime than intermediate state needed
for epoll. One cannot free overlapped structures after closing a
handle/socket, like one can do with any intermediate state when using
readiness-based IO.
2023-10-07 11:18:43 -07:00
Calvin Rose
e7e4341e70
Add EV_EOF for kqueue.
2023-10-06 17:39:52 -05:00
Calvin Rose
6186be4443
Run tests verbosely
2023-10-06 01:40:12 -05:00
Calvin Rose
d07f01d7cb
Update kqueue
2023-10-06 01:33:51 -05:00
Calvin Rose
73291a30a0
Update marsh.c
2023-10-06 01:26:07 -05:00
Calvin Rose
a3b129845b
Quick blind take on getting kqueue similar to poll and poll.
2023-10-06 00:48:05 -05:00
Calvin Rose
0ff8f58be8
Simpler async model that is better suited to epoll
2023-10-06 00:37:19 -05:00
Calvin Rose
66292beec9
Don't mess with async connect on BSDs.
2023-10-04 23:33:40 -05:00
Calvin Rose
bf2af1051f
Missing &&
2023-10-04 23:29:54 -05:00
Calvin Rose
b6e3020d4c
Attempt 2 to fix bsd compilation errors.
2023-10-04 23:27:56 -05:00
Calvin Rose
8f516a1e28
Address some bsd issues.
2023-10-04 23:24:40 -05:00
Calvin Rose
5f2e287efd
Make epoll event loop use EPOLLET and not reregister file descriptors.
...
This results in fewer system calls and presumably more effcient code. It
also brings the epoll (and kqueue) code more in line with how the
windows IOCP code works, incidentally.
2023-10-04 22:35:04 -05:00
Calvin Rose
8c0d65cf9f
Merge pull request #1301 from ianthehenry/typos
2023-10-03 19:25:01 -07:00
Ian Henry
fa609a5079
fix some typos in docstrings
2023-10-03 19:17:18 -07:00
Calvin Rose
c708ff9708
Allow for qemu and other simulator based testing.
2023-10-02 23:31:55 -07:00
Calvin Rose
2ea90334a3
Remove some checking code for iocp events.
...
Be more permissive abouts events we get.
2023-10-02 23:25:26 -07:00
Calvin Rose
eea8aa555f
Revert dccb60b to address #1299
...
This commit was to address issues with a use after free error in the
windows event loop, but the erroneous code was later reworked.
2023-10-03 00:14:25 -05:00
Calvin Rose
51a75e1872
Update janet_interpreter_interrupt to use new atomics
2023-10-01 10:52:05 -05:00
Calvin Rose
af7ed4322e
Get rid of req for 64 bit atomics
2023-10-01 10:27:51 -05:00
Calvin Rose
7cdd7cf6eb
Expose atomic refcounts to be easier to port.
...
This code was duplicate in a few places.
2023-10-01 10:09:23 -05:00
Calvin Rose
26aa622afc
Update CHANGELOG.md
2023-09-30 12:26:50 -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
6efb965dab
Merge branch 'weak-tables'
2023-09-29 07:38:21 -05:00
Calvin Rose
8c90a12e0f
More test cases.
2023-09-29 07:37:33 -05:00
Calvin Rose
2d54e88e74
Update CHANGELOG.md
2023-09-28 20:41:19 -05:00
Calvin Rose
16ea5323e0
More meson tweaks.
2023-09-28 20:32:14 -05:00
Calvin Rose
7a23ce2367
See if we can fix sr.ht build due to change in install.
2023-09-28 20:24:19 -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
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
b63d41102e
Fix bad merge.
2023-09-27 22:34:46 -05:00
Calvin Rose
964295b59d
Merge branch 'net-reworkings'
2023-09-27 19:06:14 -05:00
Calvin Rose
d19db30f3d
Fix meson install test.
2023-09-27 00:19:35 -05:00
Calvin Rose
d12464fc0e
Make poll work by going back to array of listeners for gc keeping.
2023-09-26 23:02:06 -05:00
Calvin Rose
a96971c8a7
More work on epoll implementation.
2023-09-26 12:05:06 -05:00
Calvin Rose
f6f769503a
Fix up ev.c to pass tests.
2023-09-26 11:11:29 -05:00
Calvin Rose
82917ac6e3
Kqueue fix.
2023-09-25 19:17:51 -07:00
Calvin Rose
a6ffafb1a2
Patches to kqueue implementation.
2023-09-25 19:07:18 -07:00
Calvin Rose
fb8c529f2e
Partial work updating epoll reimplentation.
2023-09-25 18:52:15 -07:00
Calvin Rose
1ee98e1e66
Get IOCP reworked event loop passing tests.
2023-09-25 15:19:39 -07:00
Calvin Rose
81f35f5dd1
Redo state management for Janet listeners.
...
Make more use of the built in GC code for abstracts to
be sure things are more correct. Issue before was streams could
be freed before IOCP events arrived.
2023-09-25 00:43:36 -07:00
Calvin Rose
1b402347cd
Work on debugging issue with server spawning.
2023-09-24 18:15:58 -07:00
Calvin Rose
7599656784
Update meson build once more.
2023-09-24 15:35:40 -07:00
Calvin Rose
dccb60ba35
Ignore IOCP where the event failed to deque.
2023-09-24 12:53:06 -07:00
Calvin Rose
ae642ceca0
Don't hide windows segfaults in build_win.bat.
2023-09-24 12:36:15 -07:00
Calvin Rose
471b6f9966
Add TOCLOSE back.
2023-09-24 12:28:35 -07:00
Calvin Rose
5dd18bac2c
More fixups to gc.c
2023-09-24 11:51:22 -07:00
Calvin Rose
018f4e0891
Remove some old code.
2023-09-24 10:30:58 -07:00
Calvin Rose
e85809a98a
Remove remains of gc instrumentation code.
2023-09-24 10:11:24 -07:00
Calvin Rose
e6e9bd8147
Redo async connect code to be moved out of ev.c.
...
Async connect is different than write.
2023-09-24 10:08:40 -07:00
Calvin Rose
221645d2ce
More refinement of meson build.
2023-09-23 14:16:13 -07:00
Calvin Rose
2f4a6214a2
Make meson build work on windows.
...
By default, use more traditional linking pattern with meson.
The janet.exe will now link to janet-x.x.dll on windows (and
similar for linux/posix) when built with meson. This is slightly
less efficient and means that janet.exe built this way is no longer
standalone (you would need to move the dll along with the exe), but
plays better with most build systems.
2023-09-23 08:53:37 -07:00
Calvin Rose
e00a461c26
Add optional buffer-size to file/open.
...
This calls setvbuf to change FILE buffering. A goal is
to be able to use the existing file/* functions for blocking
IO analogous to `read` and `write` system calls.
2023-09-23 09:40:17 -05:00
Calvin Rose
c31314be38
Merge pull request #1296 from Andriamanitra/doc-loop-unless
...
add :unless modifier to (doc loop)
2023-09-22 05:41:06 -07:00
Andriamanitra
ee142c4be0
truthy/falsey is more accurate than true/false
2023-09-22 03:04:41 +03:00
Andriamanitra
aeacc0b31b
add :unless modifier to (doc loop)
2023-09-21 19:23:40 +03:00
Calvin Rose
7b4c3bdbcc
Address issues from #1294 on non-nanboxed platforms.
...
Underlying bug was obscured by nanbox implementation.
2023-09-21 07:36:53 -07:00
Calvin Rose
910b9cf1fd
Distinguish between JANET_API and JANET_EXPORT
...
One is a way to export symbols, the other a way to reference
API functions. Also include prebuilt dlljanet.dll and dlljanet.lib
for windows to save people the trouble of compiling janet.c themselves.
2023-09-20 20:07:03 -07:00
Calvin Rose
b10aaceab0
Work on dllimport option for janet.
2023-09-20 17:34:42 -07:00
Calvin Rose
169bd812c9
Update state.h to #include <windows.h>
...
Should fix usage with msvc in some pipelines.
2023-09-18 23:51:15 -05:00
Calvin Rose
34767f1e13
Merge pull request #1292 from sogaiu/tweak-janetconf-h
2023-09-18 18:50:46 -07:00
sogaiu
4f642c0843
Tweak janetconf.h
2023-09-19 10:34:50 +09:00
Calvin Rose
4e5889ed59
Prepare for 1.31.0 release.
2023-09-17 14:53:03 -05:00
Calvin Rose
a1b848ad76
Merge pull request #1288 from sogaiu/more-error-loc-info-in-dobytes
...
Report line and col more in janet_dobytes
2023-09-14 08:21:52 -07:00
Calvin Rose
dbcc1fad3e
Merge pull request #1289 from primo-ppcg/loop-unless
...
Add `:unless` loop modifier
2023-09-13 11:56:33 -07:00
primo-ppcg
db366558e7
add :unless loop modifier
2023-09-13 15:21:46 +07:00
sogaiu
a23c03fbd0
Report line and col more in janet_dobytes
2023-09-13 15:41:14 +09:00
Calvin Rose
ff18b92eb0
Merge pull request #1287 from pepe/fix-arr-push-doc
...
Document array/push variadic argument
2023-09-12 07:07:42 -07:00
Josef Pospíšil
7f148522ab
Document array/push variadic argument
2023-09-12 09:34:21 +02:00
Calvin Rose
159c612924
Update changelog.md
2023-09-09 11:03:14 -05:00
Calvin Rose
b95dfd4bdf
Update docstring.
2023-09-09 10:58:20 -05:00
Calvin Rose
e69954af2f
Merge pull request #1283 from primo-ppcg/mean-partition
...
Update `partition`, `mean`
2023-09-09 10:30:11 -05:00
primo-ppcg
a5ff26f602
add more test cases for partition and mean
2023-09-08 16:30:44 +07:00
primo-ppcg
a7536268e1
update partition
2023-09-08 12:38:58 +07:00
primo-ppcg
541469371a
update mean
2023-09-08 11:35:37 +07:00
Calvin Rose
a13aeaf955
Merge pull request #1281 from primo-ppcg/interleave-interpose
...
Update `interleave`, `interpose`
2023-09-04 10:27:27 -05:00
primo-ppcg
9cf674cdcb
update interleave, interpose
2023-09-04 17:09:53 +07:00
Calvin Rose
51c0cf97bc
Merge pull request #1280 from primo-ppcg/lengthable
...
Add `lengthable?`
2023-09-01 17:41:25 -05:00
primo-ppcg
4cb1f616c5
allow reverse on non-lengthable
2023-09-01 16:04:21 +07:00
primo-ppcg
645109048b
update keys, values, pairs
2023-09-01 13:18:31 +07:00
primo-ppcg
f969fb69e1
add lengthable?
2023-09-01 13:04:53 +07:00
Calvin Rose
bfb60fdb84
Merge pull request #1278 from primo-ppcg/loop-range
...
Allow one-term `:range` and `:down` forms
2023-08-29 08:23:36 -05:00
primo-ppcg
2f43cb843e
Allow one-term :range and :down forms
2023-08-29 10:59:16 +07:00
Calvin Rose
874fd2aba7
don't crash repl if someone sets a bad *pretty-format*
2023-08-27 13:09:22 -05:00
Calvin Rose
33d1371186
Update specials.c for formatting.
2023-08-25 16:28:41 -05:00
Calvin Rose
d2dd241e6b
Merge pull request #1269 from primo-ppcg/check-nil-form
...
Optimize nil conditions for while and if
2023-08-24 09:30:58 -05:00
Calvin Rose
4ecadfabf4
Fix atomics - warnings on windows
2023-08-24 08:00:50 -05:00
Calvin Rose
ffd79c6097
Allow multiple simultaneous interrupts cleanly for #1262
...
Instead of setting a flag, each interrupt increments an atomic
counter. When the interrupt is finally handled, either by scheduling
code to run on the event loop or executing some out of band code, the
user must now decrement the interrupt counter with
janet_interpreter_interrupt_handled. While this counter is non-zero, the
event loop will not enter the interpreter. This changes the API a bit but
makes it possible and easy to handle signals without race conditions
or scheduler hacks, as the runtime can ensure that high priority code is
run before re-entering possibly blocking interpreter code again.
Also included is a new function janet_schedule_soon, which prepends to
the task queue instead of appending, allowing interrupt handler to skip
ahead of all other scheduled fibers.
Lastly, also update meson default options to include the
interpreter_interrupt code and raise a runtime error if os/sigaction
is used with interpreter interrupt but that build option is not enabled.
2023-08-24 07:38:53 -05:00
primo-ppcg
35a8d2a519
Optimize nil conditions for while and if
2023-08-24 17:50:31 +07: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
70a467d469
Merge pull request #1266 from primo-ppcg/min-max
...
Speed up `min`, `max`
2023-08-21 22:32:03 -05:00
primo-ppcg
6e8979336d
speed up min, max
2023-08-22 00:39:28 +07:00
Calvin Rose
ee01045db5
Update CHANGELOG.md
2023-08-20 15:56:58 -05:00
Calvin Rose
b7f8224588
Address #1263
...
Fix reference counting when cleaning up unused abstract types
per-thread.
2023-08-20 14:53:25 -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
primo-ppcg
cdd7083c86
special case common sort usages
2023-08-15 11:58:22 +07: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
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
79c12e5116
Merge pull request #1252 from primo-ppcg/reverse
...
Rework `reverse`, again
2023-08-12 14:29:23 -05:00
primo-ppcg
53e16944a1
rework reverse, again
2023-08-13 00:54:17 +07: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
primo-ppcg
831f41a62b
move bytes?, indexed?, dictionary? to corelib
2023-08-08 10:00:05 +07: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
Calvin Rose
4ff81a5a25
Add strip in release process instead of local builds - Address #1233
2023-07-27 21:40:07 -05:00
Calvin Rose
08f0e55d8f
Add strip in release process instead of local builds - Address #1233
2023-07-27 21:37:48 -05:00
Calvin Rose
080b37cb31
Update CHANGELOG.
2023-07-25 17:51:21 -05:00
Calvin Rose
bbdcd035ba
Merge pull request #1231 from sogaiu/tweak-file-open-doc
2023-07-23 23:20:09 -05:00
sogaiu
f9233ef90b
Add fopen reference to file/open docstring
2023-07-23 18:39:20 +09:00
Calvin Rose
cd3573a4d2
Merge pull request #1224 from primo-ppcg/array-remove
2023-07-15 06:42:15 -05:00
Calvin Rose
738fe24e6d
Allow buffer/blit to take explicit nils for default args.
...
Also small changes for range checking code.
2023-07-14 20:04:10 -05:00
primo-ppcg
c2e55b5486
update docstrings for string/slice and tuple/slice
2023-07-15 00:52:12 +07:00
Calvin Rose
989f0726e3
Make encoding of immediate values capture full range.
2023-07-14 10:06:20 -05:00
primo-ppcg
bdefd3ba1e
update final array index to be -1
2023-07-14 17:34:55 +07:00
Calvin Rose
4efcff33bd
Update inttypes.
2023-07-13 19:58:38 -05:00
Calvin Rose
8183cc5a8d
Disallow converting negative numbers to int/u64
...
The wrap-around rule doesn't make sense once subtraction is
properly fixed.
2023-07-09 22:25:20 -05:00
Calvin Rose
f3bda1536d
Remove some dead code in cfuns.c
2023-07-09 22:02:10 -05:00
Calvin Rose
3b6371e03d
Add test case for issue #1217
2023-07-09 21:56:41 -05:00
Calvin Rose
b5d3c87253
Add new opcode subtract immediate.
2023-07-09 21:51:16 -05:00
Calvin Rose
f73b8c550a
Merge pull request #1213 from sogaiu/src-view-for-ppasm
...
Add source view to .ppasm output
2023-07-09 10:54:55 -05:00
Calvin Rose
5437744126
Merge pull request #1216 from sogaiu/tweak-test-grammar-peg
...
Update and ascii-sort string escapes in peg
2023-07-08 09:26:03 -05:00
sogaiu
5a5e70b001
Update and ascii-sort string escapes in peg
2023-07-08 17:54:00 +09:00
sogaiu
348a5bc0a9
Add source view to .ppasm output
2023-07-06 13:26:03 +09:00
Calvin Rose
026c64fa01
Formatting.
2023-07-02 15:23:22 -05:00
Calvin Rose
e38663c457
Update CHANGELOG.md
2023-07-02 13:44:39 -05:00
Calvin Rose
117c741c29
Add test for marshalling channels.
2023-07-02 13:13:59 -05:00
Calvin Rose
9bc5bec9f1
More complete fix with some debugging tools.
2023-07-02 13:04:42 -05:00
Calvin Rose
a5f4e4d328
Test small fix for marshalling.
2023-07-02 12:58:55 -05:00
Calvin Rose
db0abfde72
Cache references when marshalling abstract types.
2023-07-01 18:02:56 -05:00
Calvin Rose
edf263bcb5
Make some fixes to marshalling.
2023-07-01 17:59:07 -05:00
Calvin Rose
60fba585e3
Remove extra MARK_SEEN
2023-07-01 17:37:12 -05:00
Calvin Rose
ebb6fe5be3
Patch fix for #1210
2023-07-01 10:34:11 -05:00
Calvin Rose
d91c95bf92
Merge pull request #1210 from primo-ppcg/int-bnot
...
Add bnot for int types
2023-07-01 10:19:04 -05:00
primo-ppcg
2007438424
add tests for inttypes bnot
2023-07-01 21:49:49 +07:00
primo-ppcg
81423635ad
Add bnot to int types
2023-07-01 21:41:55 +07:00
Calvin Rose
58d297364a
Change code for marshalling abstract types.
2023-07-01 08:50:56 -05:00
Calvin Rose
db902c90c4
Merge pull request #1207 from primo-ppcg/divmod
...
floor div, variadic mod
2023-07-01 08:47:06 -05:00
Calvin Rose
42ccd0f790
Merge pull request #1209 from pyrmont/bugfix.strip-macos
...
Avoid removing too many symbols with strip on macOS
2023-07-01 08:46:35 -05:00
Michael Camilleri
20ec6f574e
Avoid removing too many symbols with strip on macOS
2023-07-01 19:33:38 +09:00
primo-ppcg
b3db367ae7
Add test cases for div and mod
2023-06-30 19:48:45 +07:00
primo-ppcg
8a62c742e6
define (mod x 0) as x
...
See: Knuth, Donald E., _The Art of Computer Programming: Volume 1: Fundamental Algorithms_, pp. 15 ([link](https://books.google.com/books?id=x9AsAwAAQBAJ&pg=PA15 ))
2023-06-30 16:15:04 +07:00
Calvin Rose
b125cbeac9
Merge pull request #1203 from czkz/add-escapes
...
Add C escape sequences
2023-06-28 20:06:10 -05:00
Calvin Rose
3f7a2c2197
Try harder to avoid string copying with janet_getcbytes.
2023-06-28 08:30:09 -05:00
Calvin Rose
f6248369fe
Update janet_getcbytes to padd buffers with trailing 0.
2023-06-28 08:18:43 -05:00
primo-ppcg
c83f3ec097
floor div, variadic mod
2023-06-28 18:31:20 +07:00
Calvin Rose
0cd00da354
Add ffi/pointer-cfunction to FFI.
...
This allows for more flexible C interop from DLLs. Users can skip the
usual extension loading mechanism and manage function pointers manually
if they need to.
2023-06-27 19:47:19 -05:00
bakpakin
4b7b285aa9
Remove MSVC compiler warning.
2023-06-25 17:29:09 -05:00
Dmitry
d63379e777
Add parser escape sequences
2023-06-25 19:29:39 +04:00
Calvin Rose
b219b146fa
Squashed commit of the following:
...
commit fbb0711ae1
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 12:07:55 2023 -0500
Distinguish between subprocess when testing.
commit 676b233566
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 11:59:17 2023 -0500
Hack for qemu based testing (also should work with valgrind)
commit d7431c7cdb
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 11:54:04 2023 -0500
Revert "Test removing 32bit ptr marshalling."
This reverts commit 566b45ea44 .
commit 566b45ea44
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 11:52:22 2023 -0500
Test removing 32bit ptr marshalling.
commit ff2f71d2bc
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 11:42:10 2023 -0500
Conditionally compile marshal_ptr code.
commit bd420aeb0e
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 11:38:34 2023 -0500
Add range checking to bit-shift code to prevent undefined behavior.
commit b738319f8d
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 11:17:30 2023 -0500
Remove range check on 32 bit arch since it will always pass.
commit 7248626235
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 10:56:45 2023 -0500
Quiet some build warnings.
commit 141c1de946
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 10:50:13 2023 -0500
Add marshal utilities for pointers.
commit c2d77d6720
Merge: 677b8a6f ff90b81e
Author: Calvin Rose <calsrose@gmail.com >
Date: Sat Jun 24 10:40:35 2023 -0500
Merge branch 'master' into armtest
commit 677b8a6f32
Author: Ico Doornekamp <ico@zevv.nl >
Date: Mon Jun 12 21:01:26 2023 +0200
Added ARM32 test
2023-06-24 12:13:51 -05:00
Calvin Rose
ff90b81ec3
Add some utilitites for dealing with unsigned integers in janet.h
2023-06-24 10:38:35 -05:00
Calvin Rose
9120eaef79
Merge pull request #1201 from pyrmont/bugfix.dup-fds
...
Avoid prematurely closing file descriptors when redirecting IO
2023-06-24 09:51:34 -05:00
Michael Camilleri
1ccd879916
Make test cross-platform
2023-06-24 10:56:47 +09:00
Michael Camilleri
f977ace7f8
Avoid prematurely closing file descriptors when redirecting IO
2023-06-23 15:50:19 +09:00
Calvin Rose
c3f4dc0c15
Merge pull request #1200 from sogaiu/use-vm_commit
...
Use vm_commit
2023-06-22 20:40:03 -05:00
sogaiu
78eed9b11c
Use vm_commit
2023-06-22 21:36:57 +09:00
Calvin Rose
3a4d56afca
Patch release.
2023-06-19 07:18:35 -05:00
Calvin Rose
63bb93fc07
Fix isatty code to not use functions only defined if ev is enabled.
2023-06-19 07:14:56 -05:00
Calvin Rose
5a39a04a79
Prepare for 1.29.0 release.
2023-06-19 06:48:33 -05:00
Calvin Rose
2fde34b519
Remove extra function call that cannot ever trigger.
2023-06-18 09:41:53 -05:00
Calvin Rose
1ef5c038db
Merge pull request #1187 from CosmicToast/peg-boolean
...
peg: add support for "true" and "false" primitives to always/never match
2023-06-18 09:40:46 -05: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
Calvin Rose
cfffc0bcf1
Merge pull request #1190 from primo-ppcg/if-let
...
update if-let
2023-06-18 09:38:44 -05:00
Calvin Rose
7272f43191
Merge pull request #1188 from primo-ppcg/if-let
2023-06-11 07:21:38 -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
32c5b816ae
use unquotes instead
2023-06-11 18:38:20 +07:00
Chloe Kudryavtsev
e54ea7a1d8
fixup! peg: add support for "true" and "false" primitives to always/never match
2023-06-11 12:38:40 +02:00
primo-ppcg
1077efd03a
update if-let
...
Fixes #1189
2023-06-11 17:19:29 +07:00
Chloe Kudryavtsev
f9ab91511d
peg: add support for "true" and "false" primitives to always/never match
...
The use cases involve user-expandable grammars.
For example, consider the IRC nickname specification.
> They SHOULD NOT contain any dot character ('.', 0x2E).
> Servers MAY have additional implementation-specific nickname restrictions.
To implement this, we can do something along these lines:
```janet
(def nickname @{:main '(some :allowed)
:allowed (! (+ :forbidden/dot :forbidden/user))
# for lax mode, (put nickname :forbidden/dot false)
:forbidden/dot "."
# to add your own requirements
# (put nickname :forbidden/user 'something)
:forbidden/user false})
```
Additionally, it's common in parsing theory to allow matches of the
empty string (epsilon). `true` essentially allows for this.
Note that this does not strictly add new functionality, you could
emulate this previously using `0` and `(! 0)` respectively, but this
should be faster and more intuitive.
The speed improvement primarily comes from `(! 0)` which is now a single
step.
2023-06-11 10:44:39 +02:00
primo-ppcg
2c3ca2984e
simplify if-let logic
2023-06-11 12:09:58 +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
Calvin Rose
0bd6e85c61
update changelog
2023-06-08 19:54:01 -05:00
Calvin Rose
e35c6b876f
Merge pull request #1183 from primo-ppcg/take-drop
...
Make take and drop more symmetric
2023-06-08 14:52:51 -05:00
Calvin Rose
9a2897e741
Run through astyle with manual corrections
2023-06-08 13:01:49 -05:00
primo-ppcg
70b2e8179d
nitpick performance tweak
2023-06-08 23:57:07 +07:00
primo-ppcg
5317edc65d
minor readability change
...
As suggested by @sogaiu
@zevv forget to push this change in a recent PR (https://github.com/janet-lang/janet/pull/1175#issuecomment-1576128152 ).
Incidentally, the affected lines were already reformatted in the current PR, via fmt/format-file.
2023-06-08 23:00:05 +07:00
Calvin Rose
866d83579e
Address #1165 - Allow for partial ffi support without totally removing testing.
...
Query at runtime which calling conventions are supported, including
a placeholder :none.
2023-06-08 09:07:16 -05:00
primo-ppcg
a238391b36
take-drop performance tweaks
...
Increase efficiency for `take` and `drop` with slices.
Check indexed types before bytes types.
2023-06-08 14:50:37 +07:00
Calvin Rose
5e152d30db
Merge pull request #1182 from chris-chambers/channel-close-resumptions
2023-06-07 17:15:45 -05:00
Christopher Chambers
57c954783d
Fix resumption values when closing a channel.
...
When suspended in `ev/give` or `ev/take`, closing the channel should
cause the result of `ev/give` or `ev/take` to be `nil`.
When suspended in `ev/select`, closing the channel should cause the
result of `ev/select` to be `[:close ch]`.
The results were flipped before.
2023-06-07 15:01:56 -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
Calvin Rose
8c819b1f91
Update README.md
2023-06-05 12:55:08 -05:00
Calvin Rose
528a516390
Add more sandbox capabilities.
...
Add more granularity to ffi sandbox capabilities - distinguish between
using FFI functions, creating FFI functions, and creating executable
memory.
2023-06-04 18:48:34 -05:00
Calvin Rose
6509e37c84
Update CHANGELOG.md and README.md
2023-06-04 16:11:17 -05:00
Calvin Rose
649173f661
Merge pull request #1175 from zevv/quicky
...
Added JANET_NO_AMALG flag to Makefile
2023-06-04 14:24:35 -05:00
Calvin Rose
1efb0adb35
Add 3 argument form to fiber/new
...
Allow passing in environment table at fiber creation since
it is a fairly common thing to do.
2023-06-04 14:17:18 -05:00
Calvin Rose
88a8e2c1df
Define *task-id* since it is part of the event-loop runtime.
2023-06-04 14:05:37 -05:00
Ico Doornekamp
bb4ff05d35
Added NO_AMALG flag to Makefile to build janet from the individual
...
source files instead of from the amalgamated janet.c; this considerably
speeds up parallel builds on modern CPUs
2023-06-04 20:02:47 +02:00
Calvin Rose
dd3b601c87
Don't do fiber double arity check.
2023-06-04 12:56:03 -05:00
Calvin Rose
e22d101a62
Merge pull request #1179 from zevv/zevv-tests
...
Added misc tests to increase test coverage
2023-06-04 12:53:43 -05:00
Calvin Rose
4b3c813f5a
Revert to old behavior of janet_fiber returning NULL.
...
When there is a bad arity function passed in to the fiber
constructor, return NULL so the runtime can choose what to do.
This is not the prettiest API but does work, and gives better error
messages for instance in the compiler.
2023-06-04 11:21:52 -05:00
Calvin Rose
67f375bea2
Small code style change to boot.janet
2023-06-04 11:10:39 -05:00
Calvin Rose
88ba99b87e
Merge pull request #1181 from chris-chambers/ev-gather-cancel
...
Ensure ev/gather fibers are fully canceled on error
2023-06-04 11:10:24 -05:00
Christopher Chambers
53447e9d0b
Ensure ev/gather fibers are fully canceled on error.
2023-06-04 10:49:30 -04:00
Calvin Rose
c4c86f8671
Run boot.janet through janet-format.
2023-06-03 16:47:59 -05:00
Calvin Rose
658941d26d
Fix macro declaration.
2023-06-03 14:24:41 -05:00
Calvin Rose
e4bf27b01c
Macro hack for meson-min build.
2023-06-03 14:22:16 -05:00
Calvin Rose
7d48b75f81
Update README.md
2023-06-03 14:19:02 -05:00
Calvin Rose
5f56bf836c
Update meson.build file.
2023-06-03 13:55:49 -05:00
Ico Doornekamp
c0f5f97ddb
Added misc tests to increase test coverage
2023-06-03 19:06:51 +02:00
Calvin Rose
15177ac2e9
Merge pull request #1162 from sogaiu/reorg-tests-new
...
Reorganize tests
2023-06-03 08:01:34 -05:00
Calvin Rose
8360bc93ac
Merge pull request #1177 from zevv/zevv-isatty
...
added os/isatty, do not enable colors if stdout is not a tty
2023-06-03 07:58:16 -05:00
Ico Doornekamp
e0ea844d50
added os/isatty, do not enable colors if stdout is not a tty
2023-06-02 16:59:54 +02:00
sogaiu
9675411f35
Reorganize tests
2023-06-02 07:04:07 +09:00
Calvin Rose
e97299fc65
Fix #1174 - bad debug info causing stack traversal to segfault.
...
Coming from commit 77189b6e66 , relating
to changes in source mapping debug info, this caused a segfault when
traversing a stack frame where the birth_pc was incredibly large due
to wrap around. This fix prevents the wrap around and does saturating
subtraction to 0.
2023-06-01 13:01:59 -05:00
Calvin Rose
26a113927e
Add handling for new bytecode optimizations.
2023-06-01 12:47:59 -05:00
Calvin Rose
d0aa7ef590
Add a few asserts to quiet some of the -fanalyze calls in gcc 13.
2023-06-01 10:52:34 -05:00
Calvin Rose
5de889419f
Rename contains? and contains-key? to has-value? and has-key?
...
Shorten docstrings to be less like a tutorial. They get put into RAM
and memory ain't free.
2023-05-31 22:35:57 -05:00
Calvin Rose
0fcbda2da7
Merge pull request #1017 from Techcable/feature/helper-func-contains
...
Add `contains?` helper function to boot.janet
2023-05-31 22:28:41 -05:00
Calvin Rose
14e33c295f
Make clock tests less fragile for CI.
2023-05-31 22:21:12 -05:00
Calvin Rose
644ac8caf8
Add compiler optimizations for #1163 - eachp
...
Should result in much better bytecode in the simple case.
2023-05-31 12:26:27 -05:00
Calvin Rose
77189b6e66
Fix some symbol mapping inside nested functions.
2023-05-31 08:19:24 -05:00
Calvin Rose
4f8f7f66ee
Merge branch 'bytecode_opt'
2023-05-31 07:57:13 -05:00
Calvin Rose
b099bd97f2
Merge branch 'master' into bytecode_opt
2023-05-30 18:13:02 -05:00
Calvin Rose
961c6ea15a
Merge pull request #1172 from zevv/windows-recvfrom
...
fix for crash on windows in src/core/ev.c: initialze state->fromlen
2023-05-30 16:54:24 -05:00
Calvin Rose
9c97d8f648
Merge pull request #1171 from zevv/zevv-net-connect
...
Fixed net/connect binding address
2023-05-30 16:53:24 -05:00
Ico Doornekamp
ad7bf80611
fix for crash on windows in src/core/ev.c: initialze state->fromlen
...
before doing WSARecvFrom() to prevent crash (likely caused by the
memcpy() of `state->from` at line
2301 with the memcpy length set to -1)
2023-05-30 19:33:34 +02:00
Ico Doornekamp
40080b23ae
Fixed net/connect binding address
2023-05-30 16:57:17 +02:00
Calvin Rose
7acb5c63e0
Remove bad windows10 check.
2023-05-29 18:17:22 -05:00
Calvin Rose
fcca9bbab3
Add recursion to the pruning optimization.
2023-05-29 18:05:14 -05:00
Calvin Rose
dbb2187425
Merge pull request #1167 from zevv/janet-formatbf-fix
...
Fix janet_formatbv() type when handling %d %u int specifiers
2023-05-29 18:03:13 -05:00
Calvin Rose
82e51f9e81
Merge pull request #1169 from zevv/fix-buffer-push-at-doc
...
Updated documentation for buffer/push-at
2023-05-29 18:02:05 -05:00
Calvin Rose
4782a76bca
Add inital bytecode optimizations for #1163
...
This removes unnecessary movn, movf, lds, and a few other instructions.
Any instructions that has not side effects and writes to a slot that
isn't used can be removed. A number of other optimizations can follow
from this:
- Implement the def-aliasing-var optimization better
- This function can be iterated as a fix point until no more
instructions are removed.
- If we implement slot renaming, then we no longer need to free slots
and can simplify the initial code generation a lot.
2023-05-29 16:10:48 -05:00
Ico Doornekamp
d13788a4ed
Updated documentation for buffer/push-at
2023-05-29 22:03:37 +02:00
Ico Doornekamp
e64a0175b1
change janet_formatbv() to handle int/unsigned int instead of long/unsigned long on '%d' and '%u' format specifiers.
2023-05-29 19:50:14 +02:00
Calvin Rose
4aca94154f
Be more selective when testing FFI.
...
In the future, we really should get more FFI testing for
partially supported FFI on various platforms.
2023-05-28 15:28:17 -05:00
Calvin Rose
ac5f118dac
Merge pull request #1164 from dressupgeekout/janet_h_symlink
...
More portable method of installing janet.h -> janet/janet.h symlink
2023-05-28 15:22:12 -05:00
Charlotte Koch
a2812ec5eb
More portable method of installing janet.h -> janet/janet.h symlink
2023-05-27 14:22:11 -07:00
Calvin Rose
70f13f1b62
Merge pull request #1157 from zevv/file-lines
...
Add file/lines iterator
2023-05-26 18:16:14 -05:00
Calvin Rose
77e62a25cb
Merge pull request #1160 from primo-ppcg/mapcat-et-al
...
Allow mapcat et al to accept multiple iterable arguments
2023-05-26 18:15:09 -05:00
Ico Doornekamp
09345ec786
file/linex now only acceps a file, not a path name
2023-05-26 17:50:26 +02:00
primo-ppcg
bad73baf98
Add test cases for variadic arguments to map-like functions
2023-05-26 19:08:00 +07:00
primo-ppcg
3602f5aa5d
Update boot.janet
...
`kvs` is not yet defined at this point.
2023-05-25 18:27:31 +07:00
primo-ppcg
672b705faf
Allow mapcat et al to accept multiple iterable arguments
...
#1159
2023-05-25 18:12:38 +07:00
Ico Doornekamp
64e3cdeb2b
Add file/lines iterator
2023-05-24 16:54:04 +02:00
Calvin Rose
909c906080
Fix yields inside nested fibers.
2023-05-23 20:09:46 -05:00
Calvin Rose
71bde11e95
Allow one argument to while.
2023-05-23 20:09:46 -05:00
Calvin Rose
fc20fbed92
Merge pull request #1151 from zevv/document-string-format
...
Add docstring to string/format
2023-05-23 18:57:55 -05:00
Calvin Rose
e6b7c85c37
Merge pull request #1152 from zevv/error-messages
...
Improved various error messages when handling unexpected types.
2023-05-23 18:57:20 -05:00
Ico Doornekamp
b3a92363f8
Add docstring to string/format
2023-05-23 07:21:26 +02:00
Ico Doornekamp
e9f2d1aca7
changed some error messages 'x|y' -> 'x or y'
2023-05-23 06:58:52 +02:00
Ico Doornekamp
b4e3dbf331
Improved various error messages when handling unexpected types.
...
error: bad slot #1 , expected string|symbol|keyword|buffer, got ...
error: bad slot #1 , expected a string, symbol, keyword or buffer, got ...
bad s64 initializer: "donkey"
can not convert string "donkey" to s64
2023-05-23 06:57:12 +02:00
Calvin Rose
c3620786cf
Merge branch 'master' of github.com:janet-lang/janet
2023-05-22 20:41:05 -05:00
Calvin Rose
41943746e4
Fix #1149 - deep-not= should only return true/false.
...
Also improve perf at same time.
2023-05-22 20:40:30 -05:00
Calvin Rose
176e816b8c
Merge pull request #1153 from zevv/fix-warning
...
Fix warning in janet_gettime()
2023-05-22 18:46:55 -05:00
Ico Doornekamp
50a19bd870
Fix warning in janet_gettime()
2023-05-22 20:53:03 +02:00
Calvin Rose
57b751b994
Merge branch 'master' of github.com:janet-lang/janet
2023-05-21 16:23:44 -05:00
Calvin Rose
77732a8f44
inet_test change.
2023-05-21 13:36:11 -05:00
Calvin Rose
c47c2e538d
Merge pull request #1137 from tionis/master
...
os/proc-kill now accepts an optional signal to send
2023-05-21 13:33:24 -05:00
Calvin Rose
cc5545277d
Merge pull request #1147 from zevv/error-messages
...
improved error messages for special forms
2023-05-21 13:31:06 -05:00
Ico Doornekamp
63353b98cd
improved error messages for special forms
2023-05-21 20:18:32 +02:00
tionis
4dfc869b8a
fixed formatting in src/core/os.c
2023-05-21 15:55:11 +02:00
tionis
b4b1c7d80b
Merge branch 'janet-lang:master' into master
2023-05-21 13:51:24 +00:00
tionis
e53c03028f
ignoring signals on windows in os/proc-kill again
2023-05-21 15:50:15 +02:00
Calvin Rose
8680aef42f
Merge pull request #1146 from zevv/os-clock
...
Add clock sources to os/clock (:realtime, :monotonic, :cputime)
2023-05-21 08:35:24 -05:00
Calvin Rose
c3fd71d643
Merge pull request #1142 from tionis/thaw
...
added thaw to complement freeze
2023-05-21 08:09:47 -05:00
Ico Doornekamp
30c47d685d
Fixed :cputime because msdn does not implement clock() properly
2023-05-21 07:29:27 +02:00
Ico Doornekamp
80db682109
Added tests for os/clock
2023-05-21 07:29:27 +02:00
Ico Doornekamp
e8e5f66f4c
Implement janet_gettime() for win32 and macos; need testing
2023-05-21 07:29:27 +02:00
Ico Doornekamp
aaf3d08bcd
Added 'source' argument to os/clock to select the clock source
2023-05-21 07:29:27 +02:00
Ico Doornekamp
61132d6c40
os/time and janet_gettime now use CLOCK_MONOTONIC instead of CLOCK_REALTIM, this matches the description from the documentation of os/clock. Fixes issue #1144
2023-05-21 07:29:27 +02:00
tionis
9cc0645a1e
added test for thaw and freeze
2023-05-20 17:35:25 +02:00
Calvin Rose
fc8c6a429e
Modulo should not be variadic.
2023-05-20 07:45:18 -05:00
Calvin Rose
2f966883d9
Fix #1145 - variadic imperative arith. macros.
...
Also update CHANGELOG
2023-05-20 07:42:50 -05:00
tionis
320ba80ca1
added support for tables/structs with prototypes in thaw
2023-05-20 14:00:33 +02:00
Calvin Rose
b621d4dd2e
Merge pull request #1139 from zevv/async-connect
...
changed net/connect to be non-blocking / asynchronous
2023-05-19 21:12:16 -05:00
tionis
56d927c72d
added thaw to complement freeze
2023-05-19 21:18:54 +02:00
tionis
53afc2e50a
Merge branch 'janet-lang:master' into master
2023-05-19 19:14:12 +00:00
Ico Doornekamp
89debac8f6
Fixed janet_loop1_impl stream use after dealloc
2023-05-19 20:00:59 +02:00
Calvin Rose
f2197fa2d8
Merge pull request #1141 from zevv/mingw-test
...
Add CI test for mingw/wine on linux
2023-05-19 07:25:47 -05:00
Ico Doornekamp
a6a097c111
Add CI test for mingw/wine on linux
2023-05-18 15:15:41 +02:00
Ico Doornekamp
c3e28bc924
added deferred closing of streams after async connect() fails
2023-05-18 14:10:22 +02:00
Ico Doornekamp
8d78fb1f6b
changed net/connect to be non-blocking / asynchronous
2023-05-18 10:55:48 +02:00
Calvin Rose
148917d4ca
Move -g to CFLAGS to make it easier to remove/customize
2023-05-16 21:10:18 -05:00
Calvin Rose
d8cf9bf942
Merge pull request #1140 from zevv/debug-symbols
...
Enable debug symbols in janet binary; strip target at 'make install'
2023-05-16 21:08:12 -05:00
Calvin Rose
d6f5a060ed
Squashed commit of the following:
...
commit 725b8749464895e21c761f1c5479692335282f62
Author: Calvin Rose <calsrose@gmail.com >
Date: Tue May 16 20:58:34 2023 -0500
Update header file.
commit 38bf2a5131
Author: Calvin Rose <calsrose@gmail.com >
Date: Tue May 16 19:43:22 2023 -0500
Run experiment on bsd.
2023-05-16 21:00:31 -05:00
Calvin Rose
692b6ef8ac
Merge pull request #1138 from zevv/setsockopt
...
add net/setsockopt
2023-05-16 19:29:25 -05:00
Ico Doornekamp
ac5f1fe1be
enable debug symbols in janet binary; strip target at 'make instal'
2023-05-16 19:48:18 +02:00
tionis
0f35acade1
use SIGTERM for os/proc-kill signal test
2023-05-16 18:47:38 +02:00
tionis
56d72ec4c5
support sending signals to processes on windows
2023-05-16 17:07:51 +02:00
tionis
71d51c160d
added simple test for signal handling in os/proc-kill using :kill
2023-05-16 13:27:52 +02:00
tionis
0b58e505ee
os/proc-kill now accepts an optional signal to send
2023-05-16 00:44:19 +02:00
Ico Doornekamp
2a6c615bec
features.h: define _DARWIN_C_SOURCE for __APPLE__
2023-05-15 16:55:09 +02:00
Ico Doornekamp
ab8c5a0b5f
net/setsockopt optname symbols are now lower case
2023-05-15 15:25:09 +02:00
Ico Doornekamp
68c35feaea
Formatting
2023-05-15 12:33:37 +02:00
Ico Doornekamp
88d0c2ca0f
add net/setsockopt
2023-05-15 12:15:36 +02:00
Calvin Rose
398833ebe3
Enable FFI module unconditionally.
2023-05-14 09:18:54 -05:00
Calvin Rose
358f5a03bf
Version bump to 1.28.0
2023-05-13 09:59:55 -05:00
Calvin Rose
fba1fdabe4
Update short-fn to fix #1123
...
Symbols are renamed on expansion to avoid the issue.
2023-05-13 09:44:30 -05:00
Calvin Rose
d42afd21e5
Merge branch 'master' of github.com:janet-lang/janet
2023-05-12 19:08:35 -05:00
Calvin Rose
20ada86761
Fix NAN typo.
2023-05-12 19:08:26 -05:00
Calvin Rose
3b353f1855
Merge pull request #1133 from zevv/cross
...
Updated Makefile for better cross-compilation support.
2023-05-12 08:41:54 -05:00
Calvin Rose
1467ab4f93
Copy paste error.
2023-05-11 20:56:12 -05:00
Calvin Rose
7e65c2bdad
Fix #1130 - mod flipped for signed integers.
2023-05-11 18:15:37 -05:00
Calvin Rose
84a4e3e98a
Update CHANGELOG.
...
and format.
2023-05-11 18:03:38 -05:00
Calvin Rose
bcbeedb001
Merge pull request #1128 from zevv/master
...
Added os.strftime()
2023-05-11 18:01:39 -05:00
Calvin Rose
e04b103b5d
Merge pull request #1134 from CosmicToast/const_sourceline
...
Make JANET_FN_S* sourceline const
2023-05-11 17:59:27 -05:00
Chloe Kudryavtsev
ac75b94679
Make JANET_FN_S* sourceline const
...
Otherwise attempts to use it on some platforms cause the following error
`error: initializer element is not a compile-time constant`
when attempting to use the corresponding `JANET_REG`.
2023-05-11 16:07:34 -04:00
Ico Doornekamp
d3bb06cfd6
Updated Makefile for better cross-compilation support.
...
Building janet requires janet_boot to be run on the host at build time;
- $(UNAME) can now be overridden from the make cmdline
- Added $(RUN) variable to allow a emulator to be specified
- Added ".exe" extension to binaries when using MINGW
Examples:
Cross compiling for win32 and running under wine:
```
make test \
CC=i686-w64-mingw32-gcc \
LD=i686-w64-mingw32-gcc \
UNAME=MINGW \
RUN=wine
Janet 1.27.0-ad7c3bed mingw/x86/gcc - '(doc)' for help
```
Cross compiling for aarch64 and running under qemu:
```
make repl \
CC=aarch64-none-linux-gnu-gcc \
LD=aarch64-none-linux-gnu-gcc \
RUN="qemu-aarch64 -L /tmp/aarch64/"
Janet 1.27.0-ad7c3bed linux/aarch64/gcc - '(doc)' for help
```
2023-05-11 07:46:36 +02:00
Ico Doornekamp
5cd729c4c1
Added os.strftime()
2023-05-11 06:08:19 +02:00
Calvin Rose
c9fd2bdf39
Merge branch 'master' of github.com:janet-lang/janet
2023-05-10 18:46:42 -05:00
Calvin Rose
e4be5992b3
Address issue with #1131
2023-05-10 18:43:33 -05:00
Calvin Rose
2ac4988f1b
Merge pull request #1124 from sogaiu/tweak-ev-select-docstring
...
Tweak ev/select docstring
2023-05-08 04:17:25 -05:00
Calvin Rose
19f14adb9e
Update changelog.
2023-05-07 21:07:22 -05:00
Calvin Rose
86de039492
Merge branch 'master' of github.com:janet-lang/janet
2023-05-07 11:54:20 -05:00
Calvin Rose
2360164e4f
Address #1125 - fix ev/select to only take and release locks once.
...
By take and releasing locks twice per channel in the case where nothing
is reading, there was an opportunity for ev/select to hang in the
multithreaded case. Also silence valgrind/helgrind errors.
2023-05-07 11:54:06 -05:00
Calvin Rose
c93ddceadb
Merge pull request #1122 from CosmicToast/getcbytes
...
Add get/opt cbytes
2023-05-07 10:33:09 -05:00
sogaiu
cd19dec44a
Tweak ev/select docstring
2023-05-07 22:22:33 +09:00
Chloe Kudryavtsev
53ba9c800a
Add get/opt cbytes
...
Like getcstring, but operates on a byteview.
When writing bindings (i.e what capi.c is primarily used for), it's
common to want to accept a buffer *or* a string rather than just
a string.
For this, a byteview is perfect (and why not accept keywords while
you're at it?).
However, there's no built-in function for getting a cstring out of
a byteview, this adds one.
This also reformulates getcstring to be an edge-case of getcbytes
(simply adding an explicit check for stringness).
2023-05-06 22:13:53 -04:00
Calvin Rose
cabbaded68
Add support for the NO_COLOR environment variable.
2023-05-06 16:33:45 -05:00
Calvin Rose
9bb589f827
update readme
2023-05-06 15:56:27 -05:00
Calvin Rose
c3a06686c2
Merge branch 'shell-win-feature-check'
2023-05-06 15:53:02 -05:00
Calvin Rose
7d57f87007
Address #1121 - disallow extra splices.
...
This turns splices that are ignored into compiler errors. Other
alternatives here should also be considered, for example making this
a compiler warning rather than an error. For example, the latest
spork as of a3ee63c137ee3234987dbbca71b566994ff8ae8c has an error of this
kind, but the resulting program does work correctly.
Also disallow splice propagation - code of the
form (+ 1 (do ;[2 3 4]) 5).
2023-05-06 13:12:31 -05:00
Calvin Rose
4cc4a9d38b
(and ... <truthy-value> true) will return true as per docs.
2023-05-06 10:16:05 -05:00
Calvin Rose
02c7cd0194
Merge pull request #1116 from sogaiu/tweak-long-string-peg
...
Tweak long-string|bytes peg in test suite files
2023-04-30 16:21:12 -05:00
Calvin Rose
696efcb9e2
Add header file.
2023-04-30 12:19:55 -05:00
Calvin Rose
6e9cde8ac1
Add feature check for windows version shell.c
...
Tried to get console working on windows 7 and below
2023-04-30 10:36:42 -05:00
sogaiu
a9fae49671
Tweak long-string|bytes peg in test suite files
2023-04-30 21:55:43 +09:00
Calvin Rose
440af9fd64
Remove extra allocation in drop.
2023-04-24 09:41:33 -05:00
Calvin Rose
347721ae40
Fix macos behavior - Closes #1097 , Fixes #1015
2023-04-24 09:37:49 -05:00
Calvin Rose
daea91044c
Give different names to the user9 and user8 fiber statuses.
...
These now have semantic menaings that are pretty difficult to
work around. Code that tries to maniuplate user8 and user9 signals
right now may be affected
2023-04-24 09:19:15 -05:00
Calvin Rose
4ed3f2c662
Merge pull request #1114 from ianthehenry/drop-from-end
...
drop with a negative count now drops from the end
2023-04-24 09:16:10 -05:00
Calvin Rose
3641c8f60a
Merge pull request #1108 from wackbyte/read
...
README grammar and formatting changes
2023-04-24 09:15:07 -05:00
Calvin Rose
e4b68cd940
Merge pull request #1109 from wackbyte/remove-double-space
...
Remove double space in help message
2023-04-24 09:11:45 -05:00
Calvin Rose
b8c936e2fe
Merge pull request #1113 from ianthehenry/catseq
...
add catseq
2023-04-24 09:07:38 -05:00
Calvin Rose
83cd519702
Merge pull request #1112 from ianthehenry/dynamic-replace
...
string and peg replacement functions can now take functions
2023-04-24 09:07:03 -05:00
Ian Henry
54b54f85f3
drop with a negative count now drops from the end
2023-04-23 21:39:14 -07:00
Ian Henry
ccd874fe4e
add catseq
2023-04-23 21:20:01 -07:00
Ian Henry
9dc7e8ed3a
peg replacement functions have access to captures
...
When peg/replace or peg/replace-all are given a function to serve as the text
replacement, any captures produced by the PEG are passed as additional
arguments to that function.
2023-04-23 09:15:46 -07:00
Ian Henry
485099fd6e
string and peg replacement functions can now take functions
...
Functions will be invoked with the matched text, and their result will be
coerced to a string and used as the new replacement text.
This also allows passing non-function, non-byteviewable values, which will be
converted into strings during replacement (only once, and only if at least
one match is found).
2023-04-23 08:36:17 -07:00
wackbyte
d359c6b43e
Remove double space in help message
2023-04-22 21:46:24 -04:00
Calvin Rose
d9ed7a77f8
Merge pull request #1106 from CosmicToast/1105
...
handle null-byte case in scanformat (fixes #1105 )
2023-04-22 15:25:48 -05:00
wackbyte
4238a4ca6a
README grammar and formatting changes
2023-04-20 21:06:33 -04:00
Chloe Kudryavtsev
0902a5a981
improve null format handling
...
there was a request to improve the error message, but the whole function
has non-informative errors. (both functions, actually, since the code is
duplicated)
as such, instead of catching it directly, address the assumption that
led to the SIGSEGV and let it be caught by the functions themselves,
thus reusing existing error messages (which can then be improved
separately).
2023-04-20 11:51:11 -04:00
Chloe Kudryavtsev
f3192303ab
check for NULL in get_fmt_mapping ( fixes #1105 )
...
When there is no format to be found after a %, get_fmt_mapping returns
NULL. It then gets called against strlen, which is a typical SEGV.
Check for NULL aginst mapping, which signals a null format being
specified.
2023-04-19 12:55:25 -04:00
Calvin Rose
bef5bd72c2
Merge pull request #1095 from ml-2/ml
...
Add `keep-syntax` and `keep-syntax!` functions
2023-04-08 10:46:47 -05:00
ML
b6175e4296
Add keep-syntax and keep-syntax! functions
...
These functions are designed to make it easier to properly preserve the
sourcemap and tuple type in macros. This commit also modifies the threading
macros to make use of these functions.
2023-04-07 21:09:52 -04:00
Calvin Rose
3858b2e177
Add ev/all-tasks to get running and pending root fibers.
2023-04-01 18:57:13 -05:00
Calvin Rose
9a76e77981
Update for undefined behavior sanitizer.
2023-03-24 18:49:21 -05:00
Calvin Rose
8182d640cd
Merge branch 'master' of github.com:janet-lang/janet
2023-03-12 10:33:06 -05:00
Calvin Rose
1c6fda1a5c
Address #1076 - unexpected shadowing behavior
...
While the old behavior was reasonable, it is not spelled out anywhere
in the documentation and was incidental rather than intentional.
Parameters of the same name of the function should probably take
precedence on name collision, following the principle of least surprise.
2023-03-12 10:30:59 -05:00
Calvin Rose
c51db1cf2f
Merge pull request #1081 from ianthehenry/log-gamma-docstring
...
remove quotes in math/log-gamma docstring
2023-03-12 10:17:51 -05:00
Ian Henry
4e7930fc4c
remove quotes around log-gamma
2023-03-11 12:26:45 -08:00
Calvin Rose
3563f8ccdb
Merge pull request #1079 from dressupgeekout/charlotte_dragonfly
...
Some basic fixes for DragonFly
2023-03-08 15:05:51 -06:00
Charlotte Koch
575af763f6
os/which can return :dragonfly
...
While here, document that :bsd is another possible return value.
2023-03-07 06:45:31 -08:00
Charlotte Koch
8b16b9b246
Need to enable __BSD_VISIBLE on DragonFly in conjunction with -std=c99
2023-03-07 06:40:58 -08:00
Calvin Rose
01aab66667
Prepare for 1.27.0 release.
2023-03-05 09:48:25 -06:00
Calvin Rose
aa5c987a94
Change semantics of bracketed tuple equality.
...
Comparison between different bracket and normal tuples
will now take into account the delimiter type. This solves strange
non-locality issues in the compiler due to this false equality, and is
more consistent with Janet's otherwise strong equality philosophy.
2023-03-03 18:24:02 -06:00
Calvin Rose
75229332c8
Merge pull request #1075 from sogaiu/math-rng-int-docs
...
Tweak math/rng-int docs
2023-03-03 18:09:11 -06:00
sogaiu
9d5b1ba838
Tweak math/rng-int docs
2023-02-24 19:55:47 +09:00
Calvin Rose
f27b225b34
Merge pull request #1072 from sogaiu/ftell
...
Add file/tell
2023-02-21 07:13:00 -06:00
sogaiu
3c523d66e9
Add file/tell
2023-02-21 20:19:17 +09:00
Calvin Rose
1144c27c54
Merge pull request #1071 from ianthehenry/number-pegfault
...
fix a segfault in the (number) special
2023-02-20 21:01:33 -06:00
Ian Henry
b442b21d3f
fix a segfault in the (number) special
...
This was an error about the base argument that referenced the tag argument,
which might not exist.
2023-02-20 17:07:42 -08:00
Calvin Rose
746ff5307d
Update for more minimal builds.
2023-02-12 12:14:11 -06:00
Calvin Rose
ef85b24d8f
Add optional offset to ffi/write.
2023-02-12 12:08:28 -06:00
Calvin Rose
c55d93512b
Add buffer/push-at for easier manipulation of buffers
...
buffer/blit is difficult to use, and while buffer/push is the easiet
buffer manipulation function to use it only appends to the buffer.
buffer/push-at lets users manipulate buffers at any index - useful
for buffers used as an in-memory databases, for example.
2023-02-12 11:26:00 -06:00
Calvin Rose
2e38f9ba61
Allow passing pointer-buffers to other threads.
2023-02-12 11:07:45 -06:00
Calvin Rose
1cadff8e58
Add ffi/pointer-buffer for easier memory manipulation in FFI.
...
Added underlying buffer support for buffer instances that cannot
reallocated underlying memory - useful for (small) memory mapped
files and other FFI utilties.
2023-02-12 09:20:05 -06:00
Calvin Rose
d1eba60ba8
Add separate sandbox flag for file/temp
...
Doesn't really impart (much) file systtem information when used, and
can be used for a lot of things where file functions are used to process
in a stream.
2023-02-09 08:57:53 -06:00
Calvin Rose
057dccad8f
Turn on nanboxing by default for risc-v 64.
2023-02-09 03:09:53 -06:00
Calvin Rose
4285200b4b
Add a sandbox option to disable native modules.
...
Also sort the sandbox docstring list.
2023-02-09 00:19:56 -06:00
Calvin Rose
73c2fbbc2a
Check sandbox capabilities instead of ignoring unknown ones.
2023-02-06 17:38:00 -06:00
Calvin Rose
37b7e170fa
Update changelist.
2023-02-06 12:31:49 -06:00
Calvin Rose
b032d94877
Add sandboxing API.
...
The sandboxing API is meant to make janet a bit more attractive
for certain application embedding use cases. The sandboxing API
puts limits on what system resources the interpreter can access.
2023-02-06 09:05:57 -06:00
Calvin Rose
9476016741
Update asm.c
2023-02-05 23:49:18 -06:00
Calvin Rose
7a1c9c7798
Add support for debugging upvalues.
...
Upvalues are stored in the symbol slots structure as well, but
since they are always live, we repurpose the death_pc field to
refer to the environment index that we want to look at at runtime.
2023-02-05 15:30:01 -06:00
Calvin Rose
c7fb7b4451
Merge branch 'master' into localbindings
2023-02-05 11:36:57 -06:00
Calvin Rose
67c474fc7a
More fixes to ev/gather (tested on httpf server).
2023-02-05 10:21:37 -06:00
Calvin Rose
4e8154cf8a
Fix ev/gather to cancel children on cancellation.
...
Otherwise, we would be leaving zombie fibers around.
2023-02-05 09:43:16 -06:00
Calvin Rose
9582d3c623
Allow infinite wait to work without issues.
2023-02-05 09:29:39 -06:00
Calvin Rose
0079500713
Merge branch 'master' into localbindings
2023-02-04 13:39:24 -06:00
Calvin Rose
55af6ce834
Fix write after free with printing to files.
2023-02-04 13:36:30 -06:00
Calvin Rose
3e82fdc125
Update symbolmapping code with marshal/unmarshal.
2023-02-03 17:33:11 -06:00
Calvin Rose
7344a6cfc0
Fix null check.
2023-02-03 16:24:50 -06:00
Calvin Rose
0aded71343
Fix issue with environments in asm.c
2023-02-03 16:24:50 -06:00
Calvin Rose
7663b1e703
Fix null check.
2023-02-02 22:03:18 -06:00
Calvin Rose
282546c03f
Fix issue with environments in asm.c
2023-02-02 21:12:17 -06:00
Calvin Rose
f4bc89d1c0
Progress.
2023-02-02 21:08:48 -06:00
Jona Ekenberg
fa277c3797
added future test for upvalues and symbolslots
2023-02-01 21:26:29 +01:00
Jona Ekenberg
c0c8ab25e6
added symbolslots to asm
2023-02-01 21:12:42 +01:00
Jona Ekenberg
b685bf3026
updated symbolslots-test
2023-02-01 11:46:36 +01:00
Jona Ekenberg
ce31db09e4
symbolslots should be gc'd, local_symbols always pushed in case *debug* is set in middle of function
2023-02-01 11:45:13 +01:00
Jona Ekenberg
624a6cf619
symbolslots nil when there are no symbols, changed debugger to not have special case
2023-02-01 11:25:52 +01:00
Jona Ekenberg
587aa87d28
symbolslots now use janet_v vectors, flat structure
2023-02-01 11:06:33 +01:00
Jona Ekenberg
88813c4f87
initial slotsyms implementation
2023-02-01 09:39:24 +01:00
Calvin Rose
dacbe29771
Allow round-tripping more functions with disasm and asm.
...
Nested functions that captured with environments didn't
work well with asm.
2023-01-30 09:04:42 -06:00
Calvin Rose
244833cfa1
Merge pull request #1040 from lgtm-migrator/codeql
...
Add CodeQL workflow for GitHub code scanning
2023-01-29 09:04:18 -06:00
Calvin Rose
05e7f974e3
Add os/compiler to the core.
...
Allows querying what compiler was used to compile Janet.
2023-01-28 14:00:02 -06:00
Calvin Rose
0dbef65a73
Merge pull request #1065 from sogaiu/comment-tweaks
...
Misc comment tweaks
2023-01-27 11:26:05 -06:00
Calvin Rose
9106228787
Add :riscv32 and :riscv32 values for os/arch.
2023-01-27 11:23:57 -06:00
Calvin Rose
6ae3bdb25c
Add RISC-V 64 bit detection in janet.h
2023-01-26 22:40:05 -06:00
sogaiu
310bcec260
Misc comment tweaks
2023-01-25 18:45:19 +09:00
Calvin Rose
8c4cc4e671
Merge pull request #1064 from sogaiu/realpath-doc-tweak
...
Update os/realpath docstring
2023-01-24 09:50:44 -06:00
Calvin Rose
c6eaaa83ed
Buffer initialized with janet_buffer_init will not be gced.
...
Set an internal flag that disables garbage collection on such
buffers. For all currently correct usage, this should have no effect,
and will fix use cases where buffers are initialized this way and then
passed to the interpreter.
2023-01-23 20:57:30 -06:00
sogaiu
8f598d6f96
Update os/realpath docstring
2023-01-23 12:55:04 +09:00
Calvin Rose
20bc323d17
Use gcc explicitly in mingw build.
2023-01-22 11:21:28 -06:00
Calvin Rose
8b0bcf4db9
Add the mingw toolchain.
2023-01-22 11:10:04 -06:00
Calvin Rose
8955e6f536
Merge branch 'master' of github.com:janet-lang/janet
2023-01-22 11:05:39 -06:00
Calvin Rose
f8ddea6452
Add msys2 testing with github actions.
2023-01-22 11:05:27 -06:00
Calvin Rose
987e04086d
Merge pull request #1063 from AlecTroemel/1062-io-flag-types
...
use int32_t type for file flags, just like header
2023-01-22 10:56:19 -06:00
Calvin Rose
85f2acbf52
Fix tools/format.sh file permissions.
2023-01-22 10:47:33 -06:00
alectroemel
1acf4c3ab7
add int32_t type for file flags, just like header
...
Signed-off-by: alectroemel <alectroemel@hotmail.com >
Signed-off-by: alectroemel <alec@mirusresearch.com >
2023-01-22 10:24:46 -06:00
Calvin Rose
07a3158fba
Merge pull request #1060 from ianthehenry/doc-typos
...
Fix some docstring typos
2023-01-21 16:21:57 -06:00
bakpakin
2f8bed9d82
Build and install an import library on mingw
2023-01-21 14:31:48 -06:00
bakpakin
a490937cd9
Add :mingw value when getting the OS setting when compiled with mingw.
2023-01-21 11:50:03 -06:00
bakpakin
8ee5942481
Fix windows build with JANET_NO_NET - #1055
2023-01-21 10:56:20 -06:00
bakpakin
93b469885a
Initial Mingw support with Makefile.
...
Also add a macro JANET_MSVC to distinguish between
a windows build (JANET_WINDOWS) and a build with msvc.
2023-01-21 10:37:34 -06:00
Calvin Rose
d8d1de2dcb
Don't compile library loading code on windows if it is disabled.
2023-01-21 09:36:03 -06:00
Ian Henry
ab224514f0
Fix some docstring typos.
2023-01-18 19:41:56 -08:00
Calvin Rose
75179de8da
Merge pull request #1056 from fd00/use-dev-urandom-on-cygwin
...
Use `/dev/urandom` for `janet_cryptorand` on cygwin
2023-01-08 09:29:52 -06:00
Calvin Rose
c28df14e6b
Prepare for 1.26.0 release
2023-01-07 15:08:40 -06:00
Calvin Rose
b73855b193
Merge branch 'master' of github.com:janet-lang/janet
2023-01-07 15:05:16 -06:00
Calvin Rose
2093ab2baa
Update copyrights.
2023-01-07 15:04:56 -06:00
Calvin Rose
a0f40042cb
Update copyright year.
2023-01-07 15:03:35 -06:00
Daisuke Fujimura (fd0)
3254c2c477
Use /dev/urandom for janet_cryptorand on cygwin
2023-01-07 08:58:35 +09:00
Calvin Rose
0a8eb9e3ba
Merge pull request #1057 from sogaiu/update-tests-for-meson
...
Add test files to meson suite 11 - 14
2023-01-04 04:13:18 -06:00
sogaiu
70e0c6f9ef
Add test files to meson suite 11 - 14
2023-01-04 12:59:26 +09:00
Calvin Rose
a8a78d4525
Merge pull request #1052 from dressupgeekout/cpu_count_reduced_os
...
(os/cpu-count) should not be defined at all with JANET_REDUCED_OS
2022-12-16 11:11:30 -06:00
Calvin Rose
57e6ee963d
Merge pull request #1046 from dressupgeekout/charlotte_sort_doc
...
Explicitly mention that `sort-by` sorts a list in place.
2022-12-16 11:11:07 -06:00
Calvin Rose
ce6bfb8420
Merge pull request #1049 from harryvederci/patch-1
...
Improve documentation for the `all` function.
2022-12-16 09:51:59 -06:00
Calvin Rose
f0672bdc59
Merge pull request #1051 from sogaiu/math-abs-vs-fabs-issue
...
Tweak math/abs to improve doc result
2022-12-16 09:51:43 -06:00
Charlotte Koch
23de953fbd
(os/cpu-count) should not be defined at all with JANET_REDUCED_OS
2022-12-15 20:16:43 -08:00
Calvin Rose
03c496bdd8
Update changelog
2022-12-15 21:38:36 -06:00
Calvin Rose
d5ee6cf521
Add malloc and free to ffi.
...
Very "unsafe", but a good tool of last resort. In most cases
a buffer is preferable, but the lifetime can be a bit unclear.
This allows very granular control over memory.
2022-12-15 21:35:44 -06:00
sogaiu
fb7981e053
Tweak math/abs to improve doc result
2022-12-11 00:09:50 +09:00
harryvederci
846123ecab
Improve documentation for the all function.
2022-12-09 11:16:42 +00:00
Calvin Rose
373cb444fe
Merge branch 'master' of github.com:janet-lang/janet
2022-12-04 11:08:28 -06:00
Calvin Rose
90f212df92
Add length method ffi/jitfn abstract values.
2022-12-04 11:08:17 -06:00
Calvin Rose
12286e4246
Add length method ffi/jitfn abstract values.
2022-12-04 10:27:28 -06:00
Calvin Rose
aa60c1f36a
Add ffi jit example.
2022-12-03 17:52:23 -06:00
Calvin Rose
c731f01067
Address windows compilation warning.
2022-12-03 12:10:22 -06:00
Calvin Rose
6c9c1cdb30
MAP_ANON(YMOUS) not strictly needed.
2022-12-03 11:45:33 -06:00
Calvin Rose
9ba2b40e87
Add MAP_ANON instead of MAP_ANONYMOUS for mac
2022-12-03 11:31:04 -06:00
Calvin Rose
7a3d055012
Add ffi/jitfn for JIT compilation.
...
Convert a byte sequence of machine code to an
an executable pointer that can be used with ffi/call.
2022-12-03 11:26:23 -06:00
Calvin Rose
0824f45e29
Format compile.c
2022-11-27 10:15:01 -06:00
Charlotte Koch
4debe3446c
Explicitly mention that sort-by sorts a list in place.
2022-11-20 20:51:49 -08:00
Calvin Rose
07fe9bcdf6
Update state header to include pthread
2022-11-11 11:48:50 -06:00
Calvin Rose
6a557a73f5
Simplify eval.
...
Also add more conventional handling of nil to the `compile` function.
2022-11-11 11:25:06 -06:00
Calvin Rose
8d1cfe0c56
Simplify eval-string implementation.
2022-11-11 11:15:53 -06:00
Calvin Rose
a3a42eebea
Create pthread threads with detached attribute.
...
Rather than calling pthread_detach on a default thread.
2022-11-11 11:01:59 -06:00
Calvin Rose
76be8006a4
Add channel marshalling.
2022-11-10 16:32:54 -06:00
Calvin Rose
bfcfd58259
Update for TCC to include stdatomic.h
2022-11-09 07:55:21 -06:00
Calvin Rose
914a4360e7
Indicate version bump since header file changed.
2022-11-05 16:38:52 -05:00
Calvin Rose
8c31874eeb
Remove unused assert.h
2022-11-05 11:44:14 -05:00
Calvin Rose
ef7afeb2ea
Add 64 bit integer support to printf and other formatting functions.
2022-11-05 11:33:19 -05:00
LGTM Migrator
4067f883a2
Add CodeQL workflow for GitHub code scanning
2022-11-05 10:22:49 +00:00
Calvin Rose
c8974fffbe
Fix docstring.
2022-11-04 11:23:08 -05:00
Calvin Rose
b75fb8dc9e
Add :@all: to module/expand-path
...
Allow more easily importing modules from custom directories
without jumping through too many hoops. Technically, this was
possible before but required circumventing the built-in module/paths
and was just a hassle.
Also add entries to module/path (and module/add-path) to allow code
like the following.
(setdyn :my-libs "/home/me/janet-stuff/")
(import @my-libs/toolbox)
Intended for things like test harnesses where code might not
be installed to the usual directories.
2022-11-04 11:15:48 -05:00
Calvin Rose
57356781a9
Fix typo.
2022-10-30 13:36:13 -05:00
Calvin Rose
e43eab5fd6
Fix panicf call.
2022-10-30 09:57:40 -05:00
Calvin Rose
894cd0e022
Prepare for 1.25.1 release.
2022-10-29 11:58:29 -05:00
Calvin Rose
db2c63fffc
Update CHANGELOG.md
2022-10-24 20:32:02 -05:00
Calvin Rose
60e0f32f1a
Fix os/open with :rw permissions on posix.
2022-10-24 19:39:58 -05:00
Calvin Rose
e731996a68
Allow overriding JANETCONF_HEADER in Makefile.
...
This allows a configuration workflow that is a bit simpler than before
and doesn't requiring applying patches. Instead, add a config.mk to
source dir with JANETCONF_HEADER=myconfig.h and compile as usual.
The patching workflow will of course still work exactly as before.
2022-10-24 09:49:51 -05:00
Calvin Rose
2f69cd4209
Add easier option for adding config.mk in root directory.
2022-10-23 13:11:07 -05:00
Calvin Rose
fd59de25c5
Add memcmp to the core. Useful in binary protocol implementations.
2022-10-18 11:54:07 -05:00
Calvin Rose
af12c3d41a
Typo fixes.
2022-10-10 18:38:24 -05:00
Calvin Rose
54b52bbeb5
Prepare for 1.25.0 release.
2022-10-10 18:24:48 -05:00
Calvin Rose
1174c68d9a
Update CHANGELOG.md
2022-10-10 18:23:15 -05:00
Calvin Rose
448ea7167f
Add CLOEXEC when calling accept on Linux.
...
Prevents leakage of file descriptors to subprocesses.
The symptom of the above issue is sockets that don't seem to close
until a subprocess completes.
2022-10-10 18:06:31 -05:00
Calvin Rose
6b27008c99
Fix os/date with nil argument.
2022-10-10 15:24:28 -05:00
Calvin Rose
725c785882
Formatting.
2022-10-10 14:24:03 -05:00
Calvin Rose
ab068cff67
Remove WNOWAIT code on linux.
...
Would cause os/proc-wait to block in some circumstances.
2022-10-10 14:23:17 -05:00
bakpakin
9dc03adfda
Fix pass by reference in windows FFI to accomodate stack shift.
2022-09-22 10:58:16 -05:00
bakpakin
49f9e4eddf
Fix ifdef in capi.c for janet_getuinteger64 and janet_getinteger64
2022-09-20 15:42:20 -05: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
f33c381043
Improve sysv64 classify algorithm.
2022-09-20 09:45:17 -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
Calvin Rose
bb8405a36e
Merge pull request #1029 from locriacyber/patch-0
...
Fix documentation for ev/go, ev/spawn
2022-09-16 07:32:25 -05:00
bakpakin
c7bc711f63
Add windows FFI example test case for void functions with double
...
argument.
2022-09-15 13:58:54 -05:00
bakpakin
e326071c35
Fix void returns in windows FFI - address #1025
2022-09-15 13:51:11 -05:00
Locria Cyber
ad6a669381
Add doc for ev/go
...
Document that you can pass a function instead of a fiber to ev/go
2022-09-14 00:17:53 +00:00
Locria Cyber
e4c9dafc9a
Fix typo in ev/spawn doc
2022-09-13 23:49:42 +00:00
Calvin Rose
dfc0aefd87
Merge pull request #1028 from autumnull/master
...
Made peg 'not' and 'if-not' drop their captures on success
2022-09-13 15:20:10 -05:00
Calvin Rose
356b39c6f5
Add test case for #1027
2022-09-12 19:00:59 -05:00
Calvin Rose
8da7bb6b68
Fix peg/replace-all and family - Fix #1027
2022-09-12 18:58:48 -05:00
Autumn!
9341081a4d
Made peg 'not' and 'if-not' drop their captures on success
2022-09-12 23:07:56 +01:00
Calvin Rose
324a086eb4
Merge pull request #1023 from ScriptDevil/set-manpath
...
Set JANET_MANPATH environment variable while installing.
2022-09-10 09:55:01 -05:00
Ashok Gautham
ed595f52c2
Set JANET_MANPATH environment variable while installing.
...
JPM on windows currently installs its manpage to C:\ directly because this isn't set when installing Janet through the MSI installer
2022-09-09 13:24:36 +05:30
Calvin Rose
64ad0023bb
Merge pull request #1022 from autumnull/master
...
Removed unnecessary backslashes from documentation
2022-09-08 08:52:55 -05:00
Autumn!
fe5f661d15
Removed unnecessary backslashes from documentation
2022-09-08 13:21:17 +01:00
Calvin Rose
ff26e3a8ba
Remove end of string check that is now redudant.
...
The addition of some code to avoid valgrind warnings made this code
redundant.
2022-09-05 20:13:15 -05:00
Calvin Rose
14657a762c
Fix peg RULE_SET op code when at tail of string in some cases.
2022-09-05 14:11:03 -05:00
Calvin Rose
4754fa3902
Fix issue #1021 - bad format specifiers in run.c
2022-09-03 14:03:51 -05:00
Calvin Rose
f302f87337
Merge pull request #1019 from Techcable/fix/inttypes-overflow
...
Signed integer overflow is undefined behavior in C, avoid it in inttypes.c
2022-08-30 23:23:11 -05:00
Calvin Rose
94dbcde292
Merge pull request #1020 from pepe/comment-typo
...
Fix typo in define comment
2022-08-30 22:57:52 -05:00
Josef Pospíšil
4336a174b1
Fix typo in define comment
2022-08-30 09:21:20 +02:00
Techcable
0adb13ed71
inttypes.c: Avoid signed integer overflow (U.B.)
...
In C, signed arithmetic overflow is undefined behvior
but unsigned arithmetic overflow is twos complement
Unconditionally switch to unsigned arithmetic internally for +, -, *
This will not affect the result thanks to twos complement awesomeness.
I don't think this will be an issue in these functions,
but it has a history of causing bugs.....
2022-08-29 18:38:51 -07:00
Techcable
e78a3d1c19
Add unit tests for contains?
2022-08-26 21:47:18 -07:00
Techcable
c099ec05ee
Remove documentation on type error from index-of
...
Three reasons:
1. This same behavior is not documented on the `next` function
2. This function does not throw the error directly,
it only throws an error because `next` does.
3. Following the same idea as the previous commit, this behavior is
more or less implementation-defined for nonsensical types
> In dynamic languages, the usual idea is garbage in, garbage out.
Various other documentation cleanup.
2022-08-26 21:46:58 -07:00
Techcable
a20612478e
Remove try from contains?, allowing type errors
...
> Remove the try. In dynamic languages, the usual idea is garbage in, garbage out. You misunderstood my point about the type error. “Test” functions are not special in that regard.
> - @bakpakin
2022-08-26 20:36:17 -07:00
Techcable
f778e8bbd1
Fix incorrect usage of the test macro
...
I need unit tests....
2022-08-26 15:35:26 -07:00
Techcable
7203c046f9
Remove collection? type test
...
No longer used to guard the type tests.
2022-08-26 15:23:52 -07:00
Techcable
754b61c593
Clarify documentation of contains?
...
Also contains-value?
2022-08-26 15:19:39 -07:00
Techcable
927e9e4e4d
Make contains? consistently iterate over values.
...
Remove `contains-value?` because it is now redundant.
Clarify in the documentation that it checks dictionary values.
2022-08-26 15:06:09 -07:00
Techcable
699f9622d7
Warn about index-of type errors when not iterable
...
This is just documentation of existing behavior, it does not change anything.
The reason index-of throws a type error on non-iterable types is because `next` does.
This is hardcoded into the JOP_NEXT opcode (see src/core/value.c:janet_next_impl).
Unfortunately, there is currently no corresponding `iterable?` check.
2022-08-26 15:05:39 -07:00
Techcable
765eb84c33
on bad type, contains? shuld return false (not error)
...
Note this actually changes behavior from a thin wrapper over `index-of`.
This is because `(index-of 3 3)` throws "error: expected iterable type, got 3"
2022-08-26 14:23:36 -07:00
Calvin Rose
03ba1f7021
Update CHANGELOG and version numbers.
2022-08-26 13:15:30 -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
99f63a41a3
Improve pointer hashing to avoid hash collisions.
2022-08-26 12:18:10 -05:00
Calvin Rose
a575f5df36
Add option to marshal values without cycle detection.
2022-08-26 11:20:02 -05:00
Techcable
12a1849090
Add utilities for contains? and contains-key?
...
This is significantly clearer than using (not (nil? (index-of col val)))
Most major programming languages offer some sort of contains function (Python, Java, C, Rust).
The only exception I know of is C.
2022-08-25 21:00:02 -07:00
Calvin Rose
0817e627ee
Prepare for 1.24.1 release.
2022-08-24 13:23:53 -05:00
Calvin Rose
14d90239a7
Merge branch 'master' of github.com:janet-lang/janet
2022-08-24 11:35:37 -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
Calvin Rose
6dcf5bf077
Merge pull request #1012 from Techcable/doc/clarify-flag-E
...
Clarify the documentation of janet -E flag
2022-08-21 13:45:17 -05:00
Calvin Rose
ac2082e9b3
Allow adding name to short-fns.
...
When short-fn is used in a macro, it can be useful to
give the function a nicer name then a raw pointer.
2022-08-18 14:33:59 -05:00
Techcable
dbac495bee
Clarify the documentation of janet -E flag
...
This confused me, despite having a fair deal of janet experience.
2022-08-18 12:16:14 -07:00
Calvin Rose
fe5ccb163e
Merge branch 'master' of github.com:janet-lang/janet
2022-08-16 12:38:59 -05:00
Calvin Rose
1aea5ee007
Remove stack inversion code for sysv64 FFI.
2022-08-16 12:38:44 -05:00
Calvin Rose
13cd9f8067
Remove stack inversion code for sysv64 FFI.
2022-08-16 12:20:38 -05:00
bakpakin
34496ecaf0
Prepare for 1.24.0 release.
2022-08-14 20:20:09 -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
5b2169e0d1
Fix docstring.
2022-08-02 14:58:32 -05:00
Calvin Rose
2c927ea768
Add testcase for issue #1005
2022-08-02 12:34:24 -05:00
Calvin Rose
f4bbcdcbc8
Get rid of disabled tracing. #1005
2022-08-02 12:19:22 -05:00
Calvin Rose
79c375b1af
Address #1005 - Fix janet_call stack clobbering on dirty stack.
2022-08-02 12:13:56 -05:00
Calvin Rose
f443a3b3a1
Remove type_array option to meson_min build
2022-07-26 14:27:22 -05:00
Calvin Rose
684d2d63f4
Emphasize the ldconfig error is expected.
2022-07-20 11:19:09 -05:00
Calvin Rose
1900d8f843
Fix build warnings on Linux GCC version 12.1.0 x64
2022-07-20 08:04:03 -05:00
Calvin Rose
3c2af95d21
Update CHANGELOG.md
2022-07-19 20:05:21 -05:00
Calvin Rose
b35414ea0f
Merge branch 'master' of github.com:janet-lang/janet
2022-07-19 20:04:44 -05:00
Calvin Rose
fb5b056f7b
Address #1001 - don't process names passed to dlopen.
2022-07-19 20:04:17 -05:00
bakpakin
7248c1dfdb
Give up if ln fail.
2022-07-09 19:10:25 -05:00
bakpakin
4c7ea9e893
Merge branch 'master' of github.com:janet-lang/janet
2022-07-09 11:44:20 -05:00
bakpakin
c7801ce277
Address #997 - clang undefined behavior warning.
2022-07-09 11:43:51 -05:00
Calvin Rose
f741a8e3ff
Merge pull request #998 from autumnull/master
...
stop doc-format detecting other modes within code blocks
2022-07-09 11:40:51 -05:00
bakpakin
6a92e8b609
Update CHANGELOG and make tweaks to win32 shell
2022-07-09 11:39:06 -05:00
bakpakin
9da91a8217
Update shell.c to have smart behavior on windows.
2022-07-09 11:23:02 -05:00
bakpakin
69853c8e5c
Merge branch 'master' of github.com:janet-lang/janet
2022-07-08 09:49:56 -05:00
Autumn!
1f41b6c138
doc-format no longer detects other modes within code blocks
2022-07-07 14:41:46 +01:00
Calvin Rose
e001efa9fd
Fix #996 - linking command works on busybox.
2022-07-04 16:48:07 -05:00
Calvin Rose
435e64d4cf
Allow shorthand for setting task-id on new threads with flag.
...
Avoids the need to wrap function bodies in closures in many cases.
2022-07-03 12:08:21 -05:00
Calvin Rose
f296c8f5fb
Merge branch 'master' of github.com:janet-lang/janet
2022-07-02 21:11:55 -05:00
Calvin Rose
8d0e6ed32f
Fix function handlers for :out and :err.
...
They were not properly handled for formatting functions.
2022-07-02 21:11:05 -05:00
Calvin Rose
b6a36afffe
Merge pull request #994 from shassard/master
...
Use relative path for include/janet.h symlink
2022-07-02 12:30:39 -05:00
Stephen Hassard
e422abc269
Use relative path for include/janet.h symlink
...
When using make to build an rpm, the current symlink is
created with an absolute path to the buildroot as causes
the make install target to fail with:
error: Symlink points to BuildRoot: /usr/include/janet.h -> /home/stephen/rpmbuild/BUILDROOT/janet-1.23.0-3.x86_64/usr/include/janet/janet.h
We can create the link relatively which makes this more
portable, where:
ln -sf -t '/home/stephen/rpmbuild/BUILDROOT/janet-1.23.0-3.x86_64/usr/include' janet.h janet/janet.h
Resulting in the following symlink:
ls -la BUILDROOT/usr/include/janet.h
lrwxrwxrwx. 1 stephen stephen 13 Jul 2 08:17 BUILDROOT/usr/include/janet.h -> janet/janet.h
This symlink can then be properly packaged without path
issues.
Signed-off-by: Stephen Hassard <steve@hassard.net >
2022-07-02 08:52:17 -07:00
Calvin Rose
221d71d07b
Merge pull request #993 from pepe/test-tabseq
...
Add basic test for tabseq
2022-07-02 09:30:59 -05:00
Calvin Rose
9f35f0837e
Merge pull request #991 from pepe/master
...
Trace function to the stderr
2022-07-02 09:29:18 -05:00
Josef Pospíšil
515891b035
Add basic test for tabseq
2022-07-02 07:43:28 +02:00
Josef Pospíšil
94a506876f
Trace function to the stderr
2022-07-01 12:23:25 +02:00
Calvin Rose
9bde57854a
Add tabseq macro.
2022-06-28 22:51:41 -05:00
Calvin Rose
f456369941
Add support for a dyn :task-id
...
Adds extra information to default information from supervisor
channels. For threaded channels as supervisors, we don't get
the source fiber so identifying the source of messages was not
possible. This change allows better multithreading with supervisors.
2022-06-25 18:51:21 -05:00
Calvin Rose
8f0a1ffe5d
Github showing old git attributes.
2022-06-20 11:23:21 -05:00
Calvin Rose
e4bafc621a
Remove ssize_t usage.
2022-06-20 11:09:41 -05:00
Calvin Rose
cfa39ab3b0
Prepare for 1.23.0 release.
2022-06-20 10:49:25 -05:00
Calvin Rose
47e91bfd89
Fix docstring.
2022-06-19 18:52:37 -05:00
Calvin Rose
eecc388ebd
Add support for 0-element arrays in FFI.
...
Allows for flexible array member construct mapping.
2022-06-19 16:29:55 -05:00
Calvin Rose
0a15a5ee56
Prepare for 1.23.0 release.
2022-06-19 15:07:35 -05:00
Calvin Rose
cfaae47cea
Fix trailing :pack-all or :pack in struct.
2022-06-19 13:06:19 -05:00
Calvin Rose
c1a0352592
Fix unset field in JanetFFIType.
2022-06-19 12:58:45 -05:00
Calvin Rose
965f45aa3f
Update changelog to say FFI initially only available on non-windows
...
platforms.
2022-06-19 12:42:44 -05:00
Calvin Rose
6ea27fe836
Error message sounded a bit unsure.
2022-06-19 10:29:42 -05:00
Calvin Rose
0dccc22b38
Improve error messages when using bad metadata
...
Print metadata value as well as binding name.
2022-06-19 10:28:18 -05:00
Calvin Rose
cbe833962b
Remove bad suite0009 test. Close #871
...
The issue is that there was no synchronization on writes.
The stability of the test relied on the fact that the server
would read in an entire message in one call to ev/read, which
would _almost_ always happen since the messages are so small.
2022-06-19 10:01:10 -05:00
Calvin Rose
b5720f6f10
On suite0009 errors for localname/peername, add info
...
Tag when the issue in the server or in the client. On windows, sometimes
these seemed to get swapped for strange reason.
2022-06-19 09:31:43 -05:00
Calvin Rose
56b4e0b0ec
Update CONTRIBUTING.md
2022-06-19 09:18:59 -05:00
Calvin Rose
e316ccb1e0
Use _tzset() on windows before localtime_s
2022-06-19 08:49:54 -05:00
Calvin Rose
a6f93efd39
Support for array types in ffi.
2022-06-19 08:03:32 -05:00
Calvin Rose
20511cf608
Cast NULL pointer to nil in return in ffi.
2022-06-18 16:53:01 -05:00
Calvin Rose
1a1dd39367
Use __builtin_alloca if no other option.
2022-06-18 13:54:47 -05:00
Calvin Rose
589981bdcb
BSD systems put alloca in the stdlib
2022-06-18 12:18:06 -05:00
Calvin Rose
89546776b2
alloca
2022-06-18 12:15:16 -05:00
Calvin Rose
f0d7b3cd12
No alloca.h?
2022-06-18 11:19:14 -05:00
Calvin Rose
e37be627e0
Allow loading current process on windows as well.
2022-06-18 10:31:00 -05:00
Calvin Rose
d803561582
Fix ffi/defbind for non-lazy bindings.
...
Add testing to bind to symbols in current binary.
2022-06-18 10:14:42 -05:00
Calvin Rose
a1aab4008f
Update FFI example.
2022-06-18 10:06:39 -05:00
Calvin Rose
a1172529bf
Fix named arguments with optional args.
2022-06-18 09:46:28 -05:00
Calvin Rose
1d905bf07f
SRWLock is the size of a void pointer.
2022-06-17 17:49:02 -05:00
Calvin Rose
eed678a14b
Include windows.h for windows builds
2022-06-17 17:41:50 -05:00
Calvin Rose
b1bdffbc34
Don't inlcude pthread on windows.
2022-06-17 17:35:58 -05:00
Calvin Rose
cff718f37d
Add suite0012 stub with delay test.
2022-06-17 17:27:42 -05:00
Calvin Rose
40e9430278
Move examples to example directory.
2022-06-17 17:24:52 -05:00
Calvin Rose
62fc55fc74
Remove pthread.h from janet.h
...
Should make janet a bit easier to use. Also changes the
header to not expose the size of native mutexes and rwlocks, except
with janet_os_mutex_size and janet_os_rwlock_size.
2022-06-17 17:13:58 -05:00
Calvin Rose
80729353c8
Add :lazy option for ffi/context for jpm quickbin usage.
2022-06-13 21:26:03 -05:00
Calvin Rose
105ba5e124
Add ffi/context and ffi/defbind helpers.
...
Wrap the very bare-bones FFI library to be a bit more
useful out of the box.
2022-06-12 18:48:47 -05:00
Calvin Rose
ad1b50d1f5
Update dofile function signature.
2022-06-12 18:03:23 -05:00
Calvin Rose
1905437abe
Merge branch 'master' into ffi
2022-06-12 13:59:37 -05:00
Calvin Rose
87fc339c45
Add named arguments with the &named symbol.
...
Similar to &keys, but more ergonomic.
2022-06-12 13:53:18 -05:00
Calvin Rose
3af7d61d3e
Update gtk example.
2022-06-12 12:51:06 -05:00
Calvin Rose
a45ef7a856
Update CHANGELOG to reflect new function renames.
2022-06-12 10:17:25 -05:00
Calvin Rose
299998055d
Update meson min build to turn off ffi.
2022-06-12 10:15:36 -05:00
Calvin Rose
c9586d39ed
Add a :none calling convention.
...
The ffi module is useful even when true ffi calls
are not yet implemented. This lets the ffi be enabled
on any architecture, albeit with a degraded feature set
where calling conventions are not implemented.
2022-06-12 10:12:45 -05:00
Calvin Rose
2e9f67f4e4
Change all "native-*" to ffi/. Move new dll loading funcs.
...
native-close, raw-native and native-lookup have become
ffi/close, ffi/native, and ffi/lookup instead.
The new ffi module will be useful for any architecture even if we don't
support making calls to certain functions. We can simple add a
do-nothing calling convetion that panics on call. ffi/read and ffi/write
are useful in their own right.
2022-06-12 10:02:02 -05:00
Calvin Rose
e318170fea
Begin working on windows calling convetion.
...
Also remove inline assembly for making sysv64 calls.
Instead, use crafted function signatures to set all needed registers.
2022-06-12 09:16:10 -05:00
Calvin Rose
73c4289792
Fix define check.
2022-06-11 21:50:34 -05:00
Calvin Rose
ea45d7ee47
Convert to one big blob of assembly for sysv cc.
...
Also begin working on win64 calling convention.
2022-06-11 21:43:35 -05:00
Calvin Rose
6d970725e7
Update boot.janet for typos.
2022-06-11 21:19:42 -05:00
Calvin Rose
458c2c6d88
Make calling convention optional for trampoline
2022-06-11 15:47:51 -05:00
Calvin Rose
0cc53a8964
Get a GTK example working. Good proof of concept.
2022-06-11 14:47:35 -05:00
Calvin Rose
0bc96304a9
Add r32 and r64 aliases for real numbers in ffi types.
2022-06-11 09:40:37 -05:00
Calvin Rose
c75b088ff8
Format boot.janet with janet-format.
2022-06-10 19:13:23 -05:00
Calvin Rose
181f0341f5
Add :pack and :pack-all keywords to allow for struct packing.
...
Syntax may need some work but covers both fully packed structs
as well as packing of individual members.
2022-06-10 18:53:22 -05:00
Calvin Rose
33bb08d53b
Merge branch 'master' into ffi
2022-06-10 16:24:55 -05:00
Calvin Rose
6d188f6e44
Improve .ppasm function.
2022-06-10 16:24:40 -05:00
Calvin Rose
c3648331f1
Expose an easy to use debugger function.
2022-06-10 15:39:29 -05:00
Calvin Rose
a5b66029d3
Expose the built-in debugger in more places.
2022-06-10 15:23:15 -05:00
Calvin Rose
49bfe80191
Make sure void return types work as expected.
2022-06-10 12:33:01 -05:00
Calvin Rose
a5def77bfe
Add support for struct return values.
2022-06-10 12:25:08 -05:00
Calvin Rose
9ecb5b4791
Add native-read function as inverse to native-write.
2022-06-10 09:38:52 -05:00
Calvin Rose
1cc48a370a
Add native-write, which will write structs to buffers.
...
Useful for testing as well as useful in its own right. Begs
for an inverse, native-read which would convert byte data
to native structs.
2022-06-10 08:46:20 -05:00
Calvin Rose
f1ec8d1e11
Beginning of struct support.
...
TODO:
- struct return values
- support for unions in signatures
- more testing
- complex types
- packed structs
- writing structs to buffers (useful and we have most of the machinery).
2022-06-09 20:27:56 -05:00
Calvin Rose
55c34cd84f
Merge pull request #985 from masukomi/readme_update
...
added make install & install-jpm-git to Readme
2022-06-09 10:02:58 -05:00
masukomi
aca52d1e36
added make install & install-jpm-git to readme
2022-06-08 21:58:55 -04:00
Calvin Rose
6f90df26a5
Alloca included by default on some OS, but not all.
...
Do explcitly include alloca on non-msvc compilers.
2022-06-08 10:01:19 -05:00
Calvin Rose
9d9cb378ff
Don't include alloca.h, not in MSVC.
2022-06-08 09:59:13 -05:00
Calvin Rose
f92aac14aa
Only enable FFI on x86-64, non-windows OSes.
2022-06-08 09:50:31 -05:00
Calvin Rose
3f27d78ab5
Add some FFI testing and more improvements to sysv abi.
...
Add support for integer return and floating point return variants, as
well as arguments on the stack. Start flushing out struct arguments.
Still needed:
- structs (packed and unpacked)
- complex numbers
- long doubles
- MASM alternative for windows (you can technically use sysv abi on
windows)
- more calling conventions.
2022-06-08 09:44:49 -05:00
Calvin Rose
282d1ba22f
Implement sys v abi on x64 partially.
2022-06-06 18:54:17 -05:00
Calvin Rose
94c19575b1
Fix when clib is not pointer type.
2022-06-06 13:37:07 -05:00
Calvin Rose
e3e485285b
Prevent double usage of native objects after closing.
2022-06-06 13:36:03 -05:00
Calvin Rose
986e36720e
Update windows builds for raw-natives.
2022-06-06 13:08:12 -05:00
Calvin Rose
74348ab6c2
Fix symbol lookup when symbol isn't found.
2022-06-06 10:53:00 -05:00
Calvin Rose
8d1ad99f42
Add stubs that are precursor to FFI.
...
FFI may be best implemented as an external library
(libffi has incompatible license to Janet) or as code
that takes void * and wraps then into Janet C functions
given a function signature. Either way, we need to some way
to load symbols from arbitrary dynamic libraries.
2022-06-06 10:49:30 -05:00
Calvin Rose
e69bbff195
Update CHANGELOG.md
2022-06-05 17:40:50 -05:00
Calvin Rose
c9f33bbde0
Add rwlocks.
2022-06-05 16:42:18 -05:00
Calvin Rose
9c9f9d4fa6
Add some thread coordination primitives.
...
Due to the nature of event loops, it is a bit difficult to integrate
lock and other primitives such that they don't block fibers on the same
thread.
2022-06-05 15:24:34 -05:00
Calvin Rose
2f64a6b0cb
Add parse-all function as a natural extension to the parse function.
2022-05-28 19:02:17 -05:00
Calvin Rose
dfa78ad3c6
typo
2022-05-28 12:23:28 -05:00
Calvin Rose
677ae46f0c
Fix README links for sourcehut.
2022-05-28 12:22:28 -05:00
Calvin Rose
6ada2a458f
Fixes on bsd for os/cpu-count.
2022-05-28 12:21:44 -05:00
Calvin Rose
8145f3b68d
On linux, available CPUs is more useful information.
2022-05-28 12:19:25 -05:00
Calvin Rose
48289acee6
Add os/cpu-count functionality.
2022-05-28 12:01:23 -05:00
Calvin Rose
e5a989c6f9
Remove multiple outputs with same name for old meson versions.
2022-05-27 21:14:47 -05:00
Calvin Rose
4c56704935
Merge pull request #979 from turrisxyz/Pinned-Dependencies-GitHub
...
chore: Set permissions for GitHub actions
2022-05-27 17:03:54 -05:00
naveen
9cda44f443
chore: Set permissions for GitHub actions
...
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.
- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ )
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com >
2022-05-27 00:32:28 +00:00
Calvin Rose
431451bac2
Make install work ok if meson is old.
2022-05-25 22:35:20 -05:00
Calvin Rose
395ca7feea
Fix meson.build for older versions of meson.
2022-05-14 10:27:28 -05:00
bakpakin
e0b7533c39
Add toggle macro.
2022-05-12 15:36:29 -05:00
bakpakin
5b2a402930
Fix version bump.
2022-05-09 10:28:09 -05:00
bakpakin
85129a1873
Prepare for 1.22.0 release.
2022-05-09 10:19:40 -05:00
Calvin Rose
487d333024
Add module/value function to make grabbing bindings out module tables.
2022-05-05 19:24:44 -05:00
Calvin Rose
fe7d35171f
Remove file/popen - address #974
2022-05-05 18:33:34 -05:00
Calvin Rose
b3aed13567
Use janet_getnat when non-negative integer needed.
2022-05-05 18:27:29 -05:00
Calvin Rose
a9d4d2bfa3
Merge pull request #976 from rick2600/master
...
Fix #975 - null ptr dereference when a table is created with negative capacity
2022-05-05 08:56:15 -05:00
rick2600
1ff521683f
Fix #975 - null ptr dereference when a table is created with negative capacity
2022-05-05 02:11:43 -03:00
Calvin Rose
0395a03b6b
Merge pull request #973 from rick2600/master
...
fix negative count passed to cfun_array_new_filled
2022-05-02 11:13:20 -05:00
rick2600
7fda7709ff
fix negative count passed to cfun_array_new_filled
2022-05-02 12:57:47 -03:00
Calvin Rose
65a9200cff
Merge pull request #972 from uvtc/patch-2
...
os.c doc formatting typo
2022-04-29 23:04:31 -05:00
John Gabriele
473eec26c1
os.c doc formatting typo
2022-04-29 23:57:37 -04:00
Calvin Rose
9fa945ad93
Don't include captures of last match from to combinator.
2022-04-29 19:21:10 -05:00
Calvin Rose
a895219d2f
Fix #971 - remove to rule optimization
...
For to and thru, we need to restore eveytime through the loop since rules need
run with the right captures on the stack, especially if they have any
sort of backrefs.
2022-04-29 19:15:56 -05:00
bakpakin
427f7c362e
Fix os/execute regression.
2022-04-27 22:59:27 -05:00
Calvin Rose
73f5c41fae
Address #968 Ignore :pipe arguments in os/execute.
...
They are only useful in os/spawn. Also update docstrings.
2022-04-27 20:13:10 -05:00
Calvin Rose
b4ec168401
Address #950 - add defn suggestion on bad def.
...
While generally we are not in the business of making a very chatty
compiler, this is a simple improvement that involves compiling
metadata before the binding, as well as adding a suggestion for `defn`
in case the compiler encounters an unexpected tuple.
2022-04-23 22:27:34 -05:00
Calvin Rose
726d35c766
Update changelog with a few fixes.
2022-04-22 23:13:08 -05:00
Calvin Rose
6db796e10c
Add janet.h (in addition to janet/janet.h) on install.
...
A number of bindings (many of which I have written) include
<janet.h> rather than <janet/janet.h>.
2022-04-22 22:29:12 -05:00
Calvin Rose
c38d9134cd
Merge pull request #967 from uvtc/patch-2
...
boot.janet docstrings (part 3, last part)
2022-04-20 20:53:30 -05:00
John Gabriele
471204b163
boot.janet docstrings (part 3, last part)
...
Added some backticks around code in docstrings to distinguish them from prose.
Also some light editing.
2022-04-20 18:31:06 -04:00
Calvin Rose
7f23bfa66d
Merge pull request #966 from uvtc/patch-2
...
boot.janet docstrings (part 2)
2022-04-19 20:24:32 -05:00
John Gabriele
9287b26042
boot.janet docstrings (part 2)
...
Added some backticks around code in docstrings to distinguish them from prose.
Also some light editing.
2022-04-19 01:55:37 -04:00
Calvin Rose
e22936fbf8
Merge pull request #964 from uvtc/patch-9
...
tuple.c docstrings
2022-04-18 14:07:41 -05:00
Calvin Rose
04ace9fc16
Merge pull request #963 from uvtc/patch-8
...
table.c docstrings
2022-04-18 14:07:26 -05:00
Calvin Rose
8466b333fb
Merge pull request #965 from uvtc/patch-2
...
boot.janet docstrings
2022-04-18 14:07:16 -05:00
John Gabriele
96602612ba
boot.janet
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 22:35:04 -04:00
John Gabriele
690b98bff9
tuple.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 21:26:53 -04:00
John Gabriele
8329131bfe
table.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
Light editing to `table/raw-get`. Is my change there correct? (t --> the key)
2022-04-17 21:21:01 -04:00
Calvin Rose
9986aab326
Merge pull request #960 from uvtc/patch-5
...
math.c
2022-04-17 20:03:25 -05:00
Calvin Rose
0b105bc535
Merge pull request #959 from uvtc/patch-4
...
io.c docstrings
2022-04-17 20:03:11 -05:00
Calvin Rose
51ac9c9506
Merge pull request #961 from uvtc/patch-6
...
os.c docstrings
2022-04-17 20:02:56 -05:00
Calvin Rose
0310176696
Merge pull request #962 from uvtc/patch-7
...
parse.c docstrings
2022-04-17 20:02:26 -05:00
Calvin Rose
84a7a2bc3e
Merge pull request #958 from uvtc/patch-3
...
buffer.c docstrings
2022-04-17 20:01:57 -05:00
Calvin Rose
1e66a7e555
Merge pull request #957 from uvtc/patch-2
...
array.c docstrings
2022-04-17 20:01:31 -05:00
John Gabriele
2bffb9d682
parse.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 20:53:36 -04:00
John Gabriele
811125a760
os.c docstrings
...
Some code backticks in docstrings where useful. Also some light editing of punctuation, etc.
2022-04-17 20:42:32 -04:00
John Gabriele
0dd91082a1
math.c
...
Fix typo, and backticks around one word.
2022-04-17 20:15:41 -04:00
John Gabriele
c80587868e
io.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 20:07:05 -04:00
John Gabriele
8c52dc86c7
buffer.c docstrings
...
Added backticks around code in docstrings to distinguish from prose.
2022-04-17 19:49:29 -04:00
John Gabriele
be24592bc3
array.c docstrings
...
Added some backticks around code in docstrings to distinguish from prose.
2022-04-17 19:35:57 -04:00
Calvin Rose
0d1a5c621d
Merge pull request #955 from uvtc/patch-2
...
string.c docstrings
2022-04-17 12:33:52 -05:00
Calvin Rose
8a3eff3b65
Merge pull request #956 from uvtc/patch-3
...
Update .gitattributes
2022-04-17 12:33:37 -05:00
John Gabriele
b1050b884d
Update .gitattributes
...
Github now supports Janet.
2022-04-17 12:17:54 -04:00
John Gabriele
181d883a1d
string.c docstrings
...
Add backticks around code values to distinguish them from prose.
2022-04-17 12:08:26 -04:00
Calvin Rose
e01b65fd3d
Fix some printing issues for docs.
2022-04-16 11:40:33 -05:00
Calvin Rose
bbd74b5ae2
Merge pull request #952 from rick2600/master
...
#951 - fix unchecked count in cfun_buffer_new_filled
2022-04-15 16:43:11 -05:00
rick2600
d5a5c49357
#951 - fix unchecked count in cfun_buffer_new_filled
2022-04-14 16:20:04 -03:00
Calvin Rose
a964b164a6
Merge branch 'master' of github.com:janet-lang/janet
2022-04-13 17:20:49 -05:00
Calvin Rose
1aac0489d7
Add a number of defs for used dynamic bindings.
2022-04-13 17:20:33 -05:00
Calvin Rose
e474755887
Merge pull request #949 from sogaiu/syspath-defdyn
...
Use defdyn for syspath in boot.janet
2022-04-13 15:52:14 -05:00
sogaiu
bf9a60f70d
Use defdyn for syspath in boot.janet
2022-04-13 19:39:41 +09:00
Calvin Rose
a2ba0913d3
Merge pull request #943 from cellularmitosis/make
...
Produce dylibs on macOS
2022-04-05 20:18:17 -05:00
Calvin Rose
f74df41fff
Merge branch 'master' into make
2022-04-05 20:18:12 -05:00
Calvin Rose
2a950e4ce9
Fix patch release - (version info)
2022-04-01 21:59:01 -05:00
Calvin Rose
f05e5f908e
Update SONAME in Makefile.
2022-04-01 21:41:07 -05:00
Jason Pepas
43139b43b1
Produce dylibs on macOS
2022-03-31 00:17:59 -05:00
Calvin Rose
5811b47aad
Merge pull request #942 from Techcable/patch-1
...
Correct version 1.21.1 in meson.build
2022-03-30 18:13:55 -05:00
Techcable
54e3db4d8c
Correct version 1.21.1 in meson.build
...
This causes incorrect version meson compiles (including homebrew)
2022-03-29 23:13:09 -07:00
Calvin Rose
7491421c31
Release patch relase due to bad version bumping.
2022-03-27 11:21:24 -05:00
Calvin Rose
9d0da74347
Merge pull request #937 from cellularmitosis/clock1012
...
Mac clock shim not needed after 10.12
2022-03-23 13:02:03 -05:00
Jason Pepas
e9870b293f
Remove unneeded includes
2022-03-21 21:28:13 -05:00
Jason Pepas
ab910d060b
Move AvailabilityMacros.h import into util.c
2022-03-21 21:23:09 -05:00
Calvin Rose
b60ef68ac6
Prepare for 1.21.0 Release.
2022-03-21 20:30:32 -05:00
Jason Pepas
c9986936ed
Mac clock shim not needed until 10.12
2022-03-21 20:20:20 -05:00
Calvin Rose
d77be46644
Fix master - check last change with stackn
2022-03-21 19:41:06 -05:00
Calvin Rose
3715d7a184
Auto update copyright date.
2022-03-21 18:22:59 -05:00
Calvin Rose
1c96c7163a
Address #926 - enter the event loop from janet_dobytes or
...
janet_dostring.
2022-03-21 18:06:14 -05:00
Calvin Rose
9f733b25db
Merge pull request #935 from jgarte/jgarte-patch-1
...
typo fix
2022-03-21 17:44:01 -05:00
Calvin Rose
1419a33b64
Merge pull request #936 from cellularmitosis/janetapple
...
Refactor __MACH__ to JANET_APPLE
2022-03-21 17:43:45 -05:00
Jason Pepas
f270739f9f
Refactor __MACH__ to JANET_APPLE
2022-03-17 01:20:55 -05:00
jgart
e51a391286
typo fix
2022-03-12 17:54:44 -05:00
Calvin Rose
c815185574
Merge pull request #931 from saikyun/norm-neg
...
normalize zero without branching
2022-03-07 09:18:22 -06:00
Calvin Rose
8045e29a52
Merge pull request #932 from ishehadeh/feature/int-to-bytes
...
Add int/to-bytes: Serialize int/[su]64 to a buffer
2022-03-06 13:11:08 -06:00
Ian Shehadeh
bbb3e16fd1
int/to-bytes: return a buffer instead of a tuple
...
Buffers make more sense for this function because one of their primary
use cases is working with bytes.
The tuple implementation was an array of floats, which is less
performant and ergonomic for common operations. (i.e: bit manipulation)
Buffers also have the advantage they are mutable, meaning the user
can write ints to an existing buffer.
2022-03-05 08:21:53 -05:00
Jona Ekenberg
3cd1657387
normalize zero without branching
2022-03-05 09:58:00 +01:00
Calvin Rose
d7ea122cf7
Fix #928 - Fix hashing of negative 0.
2022-03-04 21:20:20 -06:00
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
Calvin Rose
56ba1d9cd3
Formatting cleanup.
2022-02-24 18:07:22 -06:00
Calvin Rose
408b03ae0d
Merge pull request #924 from uvtc/patch-2
...
Update docs for `describe`
2022-02-24 18:04:51 -06:00
Calvin Rose
d94fd746af
Merge pull request #923 from ishehadeh/feature/int64-unwrap
...
add `(int/to-number)`: convert int/s64 and int/u64 to a number
2022-02-24 18:03:48 -06:00
John Gabriele
dbd1316d1e
Update docs for describe
...
closes #524
2022-02-23 00:36:24 -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
6f645c4cb7
Update CHANGELOG.md
2022-02-12 11:04:24 -06:00
Calvin Rose
4e31d85349
Address #804 - save and restore module cache when flychecking.
...
Calling flychecking cannot change the module cache.
2022-02-12 10:36:45 -06:00
Calvin Rose
de542a81c0
Merge branch 'master' of github.com:janet-lang/janet
2022-02-11 20:38:10 -06:00
Calvin Rose
461576e7a2
Add defdyn macro to allow docs and checking for dyns.
...
Using keywords for the names of dynamic bindings emphasized their
dynamic nature and how they actually work, but is opaque when it comes
to documentation and error detection. Janet uses early binding for name
resolution by default in most places, dyns should be no different.
The `defdyn` macro allows one to create aliases for keywords that can
have docstrings, be imported and exported, etc. The aliases _must_
follow the usual lisp convention of earmuffs - this is not
restricting since the underlying keyword lookup mechanism is still
completely accessible to users.
Example:
(defdyn *my-dynamic-binding* "Sends the plumbus to the thingamizer when
enabled")
The above creates a normal binding (as created with `def`) for
`*my-dynamic-binding*` that is bound to the keyword
`:my-dynamic-binding`.
There is an optional prefix for defdyns that can be used to avoid name
collisions - *defdyn-prefix*
Example:
(setdyn *defdyn-prefix* "mylib/")
(defdyn *my-dynamic-binding* "Plumbus thingamizer")
(pp *my-dynamic-binding*)
> :mylib/my-dynamic-binding
2022-02-11 20:37:52 -06:00
Calvin Rose
21bd62b1ce
Merge pull request #922 from paulsnar/paulsnar/ev-fix-timeout-pruning
...
ev: Fix timeout pruning logic
2022-02-11 20:07:51 -06:00
paulsnar
838cd1157c
ev: Fix timeout pruning logic
2022-02-11 09:25:23 +02:00
Calvin Rose
2f068b91d8
Mark a fiber as a root fiber during scheduling, not resumption.
...
This is more intuitive and avoids the possibilty of strange code
to resume or cancel a fiber after it was scheduled but before it was
entered for the first time.
2022-02-10 17:40:08 -06:00
Calvin Rose
aba87bf1bd
MSVC unwilling to concatenate strings across preprocessor directives.
2022-02-09 22:36:37 -06:00
Calvin Rose
e64da8ede4
Update CHANGELOG.md
2022-02-09 22:31:27 -06:00
Calvin Rose
a9f38dfce4
Address #920 - fiber cancellation can hang event loop.
...
The main issue was cancellation of fiber using `cancel` rather than
`ev/cancel` could cause issues with the event loop internal ref count.
Since this is almost certainly bad usage (and is not something I want to
encourage or support), we will warn against trying to resume or error
fibers that have already been suspended or scheduled on the event loop.
The distinction between "task" fibers and normal fibers is now kept by a
flag that is set when a fiber is resumed - if it is the outermost fiber
on the stack, it is considered a root fiber. All fibers scheduled with
ev/go or by the event loop are root fibers, and thus cannot be cancelled
or resumed with `cancel` or `resume` - instead, use `ev/cancel` or
`ev/go`.
2022-02-09 22:16:49 -06: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
66e0b53cf6
Merge pull request #918 from paulsnar/paulsnar/shell-read-intr
...
Handle interrupts during `read` properly in mainclient
2022-02-04 22:39:22 -06:00
paulsnar
06f2e81dd5
shell: Handle EINTR on long reads
...
Many system I/O operations can fail due to being interrupted by a
signal. In the REPL's case, this poses a problem because in most cases
it's assumed that a read error is not recoverable and is equivalent to
EOF. This, however, is not the case for EINTR, in which case the I/O
should be tried again.
This commit fixes the most egregious violations of this, notably the
line getters, which would otherwise make the REPL exit on any signal,
even if the signal was caught and processed outside the REPL's purview.
2022-02-04 02:31:40 +02:00
Calvin Rose
40ae2e812f
Prepare for 1.20.0 release.
2022-01-27 21:38:07 -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
Michael Camilleri
ee924ee310
Fix declaration error in switch statement
2022-01-24 11:16:35 +09:00
Michael Camilleri
fad0ce3ced
Move missing symbol lookup to compiler
2022-01-24 11:08:33 +09:00
Michael Camilleri
d396180939
Avoid panicking when calling :missing-symbol lookup function
2022-01-23 17:29:52 +09:00
Calvin Rose
0d089abe67
Update CHANGELOG.md
2022-01-22 19:38:08 -06:00
Michael Camilleri
ed5c1dfc3c
Remove :modules dynamic binding
2022-01-23 01:54:58 +09:00
Calvin Rose
6b949a7375
Merge branch 'master' of github.com:janet-lang/janet
2022-01-21 17:16:29 -06:00
Calvin Rose
3028e2908f
Avoid possible infinite loop in rest destructuring.
2022-01-21 17:16:06 -06:00
Calvin Rose
578803b01f
Merge pull request #915 from AlbertoGP/master
...
Add ppc64 to os/arch
2022-01-21 16:44:59 -06:00
Calvin Rose
46738825c0
Fix formating on master.
2022-01-21 16:44:11 -06:00
Calvin Rose
56357699cb
Merge pull request #913 from ishehadeh/feature/destructuring-rest
...
Support for `& rest` pattern in destructure and match
2022-01-21 16:39:35 -06:00
Alberto González Palomo
fe8e718183
Add ppc64 to os/arch
...
Same as #431 (Add ppc to os/arch) but for the 64-bit version.
This is tested on a Power9 CPU in Little-Endian mode, on Linux.
2022-01-21 23:08:57 +01: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
6412768000
Add match documentation for & rest pattern
2022-01-20 09:19:21 -05:00
Ian Shehadeh
82688b9a44
add checks to & _ pattern in match macro
...
This commit adds 2 checks for & rest pattern in the match macro:
- & is followed by exactly 1 item
- & is followed by a symbol
2022-01-20 09:16:02 -05: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
4118d581af
error if '& is followed by 2+ items in destructure
...
The current destructure pattern ends when '& is encountered.
This commit adds an error if it is followed by more than
a symbol to bind the array to.
Although its not critical since the extra items can be ignored,
they're a sign of some kind of mistake so its best to complain.
2022-01-20 08:52:37 -05:00
Ian Shehadeh
62608bec03
use janet_checktype over janet_type and ==
...
In destructure janet_type(_) == JANET_SYMBOL was used to check if a
value was a symbol.
This commit replaces that with the janet_checktype function,
because that function is used for the same purpose in other places.
2022-01-20 08:12:05 -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
a8e49d084b
add checks for & _ destructuring pattern
...
This commit adds three checks to ensure & rest patterns are valid:
1. When checking for '& ensure the value is a symbol before unwrapping
2. Make sure '& is followed by a value
3. Make sure the value following '& is a symbol
2022-01-19 13:55:05 -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
f2f421a0a2
Merge pull request #910 from pyrmont/bugfix.redefinable-macros
...
Fix redefinable macros
2022-01-14 07:45:54 -06:00
Michael Camilleri
413c46e2ee
Fix redefinable macros
2022-01-14 17:15:42 +09:00
Calvin Rose
3b412d51f0
Merge pull request #909 from ishehadeh/master
...
correct stack frame table keys in debug/stack doc
2022-01-09 12:01:05 -06:00
Ian Shehadeh
4931e2aee2
correct stack frame table keys in debug/stack doc
...
doc for debug/stack listed :column and :line as keys in the frame table.
But doframe actually sets :source-column and :source-line.
2022-01-08 16:25:43 -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
Calvin Rose
ab53208f47
Merge pull request #908 from ishehadeh/master
...
Windows: Fix `ev/read` hanging when called on stream from `os/open`
2022-01-08 11:26:48 -06:00
Calvin Rose
7c407705e8
Merge pull request #907 from pyrmont/bugfix.redefs-typo
...
Fix 'redefs' typo in test suite
2022-01-08 10:51:17 -06:00
Ian Shehadeh
60378ff941
windows: fix ev/read hang when called on fs stream
...
handles returned by CreateFileA and FILE_FLAG_OVERLAPPED
support reading from arbitrary offsets.
The offset is passed to ReadFile in through the OVERLAPPED structure.
Since state->overlapped is zeroed ev_machine_read
ReadFile would always read from the start of the file and never finish
This commit changes ev_machine_read to update the offset to
the number of bytes read before calling ReadFile.
2022-01-07 16:32:39 -05: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
164eb9659e
Merge pull request #905 from ishehadeh/master
...
Fix typo in janet_epoll_sync_callback, add test for "async" read from normal fd
2022-01-06 20:43:48 -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
Ian Shehadeh
938c5013c9
fix typo in janet_epoll_sync_callback
...
JANET_ASYNC_LISTEN_WRITE was checked instead of JANET_ASYNC_EVENT_READ.
This caused ev/read to hang if it was called on a normal fd.
2022-01-06 19:33:34 -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
Calvin Rose
199ec36d40
Merge pull request #902 from sogaiu/tweak-match-doc
...
Tweak match docstring
2021-12-25 07:41:58 -06:00
sogaiu
1326ded048
Tweak match docstring
2021-12-25 16:56:10 +09:00
Michael Camilleri
8347439644
Support redefinable bindings
2021-12-18 13:05:16 +09:00
Calvin Rose
cddc2a8280
Merge pull request #896 from pyrmont/bugfix.run-context-current-file
...
Only set :current-file in run-context if source is a path
2021-12-16 17:19:48 -06:00
Michael Camilleri
97a8938407
Ensure value is of specified type or panic
2021-12-15 12:17:35 +09:00
Michael Camilleri
939d1dcae9
Only set :current-file in run-context if source is a path
2021-12-13 12:06:58 +09:00
Calvin Rose
9d5cc5c11f
Proper locking on select.
2021-12-09 18:59:59 -06:00
Calvin Rose
d998f24d26
Merge branch 'master' of github.com:janet-lang/janet
2021-12-09 18:47:36 -06:00
Calvin Rose
d543f8857b
Fix #892 - Remove racy ref counts for channels
...
Rather than manual reference counting for suspended fibers, we
automate the process by incrementing "extra_listeners" every time
we suspend a fiber in the event loop, and decrement when that fiber
is resumed. In this manner, we keep track of the number of suspending
fibers in a simpler, more correct way.
2021-12-09 18:44:55 -06:00
Calvin Rose
c48a942d22
Merge pull request #893 from pyrmont/docs.nested-loops
...
Clarify nested loop behaviour in loop macro
2021-12-09 14:09:59 -06:00
Calvin Rose
e1602618c3
Merge pull request #894 from pepe/fix-numarray-example
...
Improve numarray example
2021-12-09 14:09:11 -06:00
Calvin Rose
36be240623
Merge pull request #895 from pepe/add-path-to-async-execute-example
...
Add search on PATH for async execute example
2021-12-09 14:08:53 -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
bf29a54272
Clarify nested loop behaviour in loop macro
2021-12-09 10:41:56 +09:00
Calvin Rose
6d9286a202
Add some more changes to hashing to improve pointer hashing.
2021-12-07 08:36:08 -06:00
Calvin Rose
92fdd07ca3
Address #889 - Switch high and low bits of part of number hash (Knuth's multiplicative hash)
...
Also make sure we weren't throwing away 3 bits of entropy.
2021-12-07 08:24:04 -06:00
Calvin Rose
1c937ad960
Prepare for 1.19.2 release. Update CHANGELOG.md
2021-12-06 17:27:09 -06:00
Calvin Rose
f9891a5c04
More improvements to hashing for #889
2021-12-06 17:23:00 -06:00
Calvin Rose
e8ad311d84
Don't use janet_stacktrace anymore.
...
Behavior of janet_stacktrace_ext is more consistent.
2021-12-06 08:51:40 -06:00
Calvin Rose
545c09e202
Update hash mixing behavior - address #889
...
Try to have better behavior when mixing sub-hashes that are not uniform and
randomly distributed. Premultiply by a large prime before mixing to
"spread entropy" if it is concentrated in a certain subset of bits.
2021-12-05 16:34:26 -06:00
Calvin Rose
4dc281a05f
Prepare for 1.19.1 release.
2021-12-04 13:34:41 -06:00
Calvin Rose
3a0af8caad
Update changelog.md
2021-12-04 13:28:35 -06:00
Calvin Rose
8ff2fecb26
Update readme.
2021-12-04 13:25:02 -06:00
Calvin Rose
1855c6aed5
Remove appveyor.
2021-12-04 13:23:34 -06:00
Calvin Rose
d4c6643311
Merge branch 'master' of github.com:janet-lang/janet
2021-12-04 13:03:33 -06:00
Calvin Rose
e8c738002b
Add extra "prefix" parameter to debug/stacktrace.
2021-12-04 13:03:05 -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
1f8bcadb3b
Update changelog.md
2021-12-04 11:11:57 -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
Calvin Rose
2f76a429ef
Merge pull request #886 from Grazfather/patch-1
...
map: Fix indexing for 3+ data structures
2021-12-04 08:03:33 -06:00
Grazfather
a69799aa42
Add tests for mapping different length sequences
2021-12-03 20:47:48 -05:00
Grazfather
139bef2142
map: Fix indexing for 3+ data structures
2021-12-03 16:15:43 -05:00
Calvin Rose
8ba142bcf4
Merge branch 'master' of github.com:janet-lang/janet
2021-11-30 14:19:10 -06:00
Calvin Rose
c49e4966f6
Update to dev versions.
2021-11-30 14:19:03 -06:00
Calvin Rose
516fa4e49d
Merge pull request #883 from pyrmont/feature.netrepl-relative-imports
...
Update location of current file in run-context
2021-11-30 14:17:34 -06:00
Michael Camilleri
6bf9f89429
Update location of current file in run-context
2021-11-29 10:05:04 +09:00
Calvin Rose
a0ddfcb109
Prepare for 1.19.0 release.
2021-11-27 10:00:36 -06:00
Calvin Rose
3df7921fdc
Don't call wait twice when closing or gcing.
2021-11-27 09:05:43 -06:00
Calvin Rose
6172a9ca2d
Merge branch 'master' of github.com:janet-lang/janet
2021-11-26 18:44:33 -06:00
Calvin Rose
4a40e57cf0
Fix leaking file descriptors to subprocess causing hangs.
2021-11-26 18:44:11 -06:00
Calvin Rose
cdedda4ca1
Merge pull request #880 from pepe/gamma-fix
...
Fix math/gamma and add math/log-gamma
2021-11-26 12:34:54 -06: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
e08394c870
Fix struct proto missing when making a struct with a nil value.
2021-11-23 23:16:06 -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
9e0f36e5a7
Fix unused variable warnings.
2021-11-18 20:35:41 -06:00
Calvin Rose
d481d079ba
Try bsd fix.
2021-11-18 20:30:06 -06:00
Calvin Rose
bc9ec7ac4a
Fix unitialized memory access in net/ module.
2021-11-18 20:10:10 -06:00
Calvin Rose
6f7e81067c
Address #876 Don't allow scheduling a fiber once it has been canceled already.
...
We were effectively cancelling the cancellation.
2021-11-18 20:06:29 -06:00
Calvin Rose
af946f398e
Turn off raw mode in shell on ctrl-C.
2021-11-18 19:58:52 -06:00
Calvin Rose
c7ca26e9c7
Merge branch 'master' of github.com:janet-lang/janet
2021-11-18 19:04:43 -06:00
Calvin Rose
ef7129f45d
Address #874 - Call waitpid on waiter thread with WNOWAIT.
...
This doesn't destory the pid until the original thread decides to
call waitpid again. Since the pid is exposed in the C API and now
in the Janet API, we don't want to destroy it until we are ready.
2021-11-18 19:03:08 -06:00
Calvin Rose
a20bdd334a
Merge pull request #873 from andrewchambers/procsig
...
Use kill instead of raise for SIGINT.
2021-11-15 07:44:30 -06:00
Andrew Chambers
2ef49a92cc
Use kill instead of raise for SIGINT.
...
Raise signals can only be handled by the current thread while
kill signals can be handled by background threads.
2021-11-15 20:38:23 +13:00
Calvin Rose
75f56b68c6
Merge pull request #872 from jgarte/jgarte-patch-aesthetics
...
Typo fix
2021-11-14 14:03:21 -06:00
jgart
d34d319d89
Typo fix
2021-11-14 14:19:04 -05: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
3cb604df02
Merge pull request #870 from andrewchambers/exposepid
...
Expose process :pid on unix like platforms.
2021-11-12 08:20:39 -06:00
Calvin Rose
af9dc7a69e
Merge pull request #869 from andrewchambers/typo2
...
Fix os/proc-kill doc typo.
2021-11-12 08:20:00 -06:00
Calvin Rose
1247e69c78
Merge pull request #868 from andrewchambers/sigint
...
Allow C code to block SIGINT.
2021-11-12 08:19:43 -06:00
Andrew Chambers
aab0e4315d
Expose process :pid on unix like platforms.
...
This at least means users can use something like jsys
or the kill command to signal processes when they want
to send unsupported signals (like SIGTERM).
2021-11-12 23:43:36 +13:00
Andrew Chambers
14f6517733
Fix os/proc-kill doc typo.
2021-11-12 23:29:13 +13:00
Andrew Chambers
5d75effb37
Allow C code to block SIGINT.
...
Previously the repl always exits on SIGINT, this change
means the repl will only exit on SIGINT if the SIGINT handler
causes it to exit.
2021-11-12 23:24:33 +13:00
Calvin Rose
ab4f18954b
Merge pull request #866 from pyrmont/fix.example-urlloader
...
Fix URL loader example to use os/spawn
2021-11-11 14:55:24 -06:00
Michael Camilleri
e1460c65e8
Fix URL loader example to use os/spawn
2021-11-11 17:33:25 +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
bakpakin
3067f4be3a
Address #815 - gc mark issue in windows accept state machine.
...
We were casting a pointer to the wrong type, which caused all sorts of
wonderful chaos, but only on windows and only when the garbage collector
ran after setting up a server in a specific configuration. We were
casting a closure pointer to an abstract type during the mark phase,
which resulted in memory corruption.
2021-11-06 17:50:54 -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
2833a983d8
Merge pull request #860 from sogaiu/short-fn-docstring-tweak
...
Tweak short-fn docstring
2021-11-04 19:39:55 -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
sogaiu
fdc94c1353
Tweak short-fn docstring
2021-11-04 18:11:53 +09: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
899a9b025e
Merge branch 'struct-proto'
2021-10-30 09:31:22 -05:00
Calvin Rose
deb4315383
Fix parse.c parser/state :args
2021-10-30 09:30:56 -05:00
Calvin Rose
9a06660fdb
fix call to table/proto-flatten
2021-10-30 09:15:23 -05:00
Calvin Rose
5c35d24e13
Fix nil check issue.
2021-10-29 19:29:54 -05:00
Calvin Rose
03f99752a7
Merge branch 'master' into struct-proto
2021-10-29 16:42:34 -05:00
Calvin Rose
fd37567c18
Docstring fix.
2021-10-29 11:13:07 -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
8b2d278840
Add min-of and max-of.
2021-10-26 17:46:24 -05:00
Calvin Rose
06aa0a124d
Add math/gcd and math/lcm to the core.
2021-10-24 11:43:07 -05:00
Calvin Rose
eb4595158d
Allow compiling tables as peg grammars.
2021-10-23 09:59:36 -05:00
Calvin Rose
32103441f1
Merge pull request #850 from pyrmont/bugfix.anonymous-union
...
Use named union in JanetGCObject
2021-10-22 07:56:38 -05:00
Michael Camilleri
7ed0aa6630
Use named union in JanetGCObject
2021-10-22 09:52:57 +09:00
Calvin Rose
f690229f31
Merge pull request #848 from pyrmont/bugfix.uname-switches
...
Fix error for uname switch -o on macOS
2021-10-21 18:17:41 -05:00
Michael Camilleri
f3bab72a86
Add comment to explain Linux check in Makefile
2021-10-21 14:23:23 +09:00
Michael Camilleri
2bd63c2d27
Fix error for uname switch -o on macOS
2021-10-21 14:13:51 +09:00
Calvin Rose
545d9e85e9
Update CHANGELOG.md
2021-10-20 19:57:02 -05:00
Calvin Rose
21a4ab4ec7
Hang forever instead of exit early on channel deadlock.
...
While not technically needed, the behavior is more intuitive and will
prevent people from writing bad scripts.
2021-10-20 19:53:29 -05:00
Calvin Rose
66fbbeb5ec
Why is the copyright gone...
2021-10-20 18:05:32 -05:00
Calvin Rose
55879c7b6d
Fix checked for fiber being dead.
2021-10-19 09:03:24 -05:00
Calvin Rose
66c4e5a5e2
Prepare for patch release.
2021-10-16 15:05:48 -05:00
Calvin Rose
884139e246
Merge pull request #843 from jgarte/jgarte-patch-typo
...
Fix typo in docstring
2021-10-16 12:51:45 -05:00
Calvin Rose
c3d7b1541e
Merge branch 'master' into jgarte-patch-typo
2021-10-16 12:51:38 -05:00
Calvin Rose
51ada4d70b
Merge pull request #840 from bradms/android-termux
...
Support Android (termux)
2021-10-16 12:50:24 -05:00
jgart
e3a5d52c5e
Fix typo in docstring
2021-10-16 11:48:59 -04:00
Brad Svercl
559fd70737
Add android-spawn to meson.build if found
2021-10-15 21:39:03 -05:00
Brad Svercl
e0dba85cbb
Support Android (termux)
2021-10-14 21:18:35 -05:00
Calvin Rose
74c9cf03d0
Fix -r switch in repl
2021-10-14 17:25:12 -05:00
Calvin Rose
0774e79e4f
Pass non-blocking pipes to subprocesses on non-windows platform.
2021-10-14 13:57:51 -05:00
Calvin Rose
a3ec37741a
Merge pull request #835 from MorganPeterson/update-string-docs
...
Updated string/bytes docs to reflect return value as tuple
2021-10-12 00:22:50 -05:00
MorganPeterson
9bf5cd83c3
updated string/bytes docs to reflect return value as tuple
2021-10-11 13:45:31 -04:00
Calvin Rose
f0da793f99
Prepare for 1.18.0 release
2021-10-10 09:27:31 -05:00
Calvin Rose
684f3ac172
Add optional base to scan-number.
2021-10-10 09:07:56 -05:00
Calvin Rose
3e5bd460a5
Add line/col info to parse error in janet_[dobytes, dostring]
2021-10-08 09:25:00 -05:00
Calvin Rose
3b1d787fbe
Address #829 - Set state->event inside linked list traversal for epoll.
2021-10-08 08:35:47 -05:00
Calvin Rose
980f55ff69
Merge pull request #828 from sogaiu/add-argument-to-janet-panicf-call
...
Add argument to some janet_panicf calls
2021-10-08 08:23:55 -05:00
sogaiu
52ed68bfeb
Add argument to janet_panicf call (2)
2021-10-07 20:58:50 +09:00
sogaiu
be0d4c28e4
Add argument to janet_panicf call
2021-10-07 16:38:40 +09:00
Calvin Rose
79807bf2ab
Merge pull request #827 from sogaiu/tweak-format-strings
...
Tweak format strings
2021-10-06 17:48:53 -05:00
Calvin Rose
e48ca1a03f
Merge pull request #826 from rick2600/fix-uaf-cfun_array_concat
...
fix issue #825
2021-10-06 17:48:27 -05:00
sogaiu
eae18ce973
Tweak format strings
2021-10-06 20:34:33 +09:00
rick2600
591344ca9d
fix issue #825
2021-10-05 01:45:59 -03:00
Calvin Rose
fbe067823e
Merge pull request #824 from GrayJack/rnd-double-capi
...
Expose `janet_rng_double` to the C API
2021-10-04 13:54:10 -05:00
GrayJack
ffece911e6
Expose janet_rng_double to the C API
2021-10-03 00:52:34 -03:00
Calvin Rose
186afa9651
Merge pull request #823 from llmII/fix-kqueue-hang
...
Fix #822 - kqueue hang in suite 9.
2021-09-30 10:50:04 -05:00
llmII
6b3037106a
Fix #822 - kqueue hang in suite 9.
...
Priorly we only checked exactly one state when an event was received.
This was incorrect. A state may have a next state, an action to take
after the first in the list of states has been taken. This change
acknowledges that and makes the code work with the state list vs just
the head of the list.
2021-09-30 06:56:09 -05:00
Calvin Rose
1bf22288ee
Merge pull request #821 from llmII/fix-kqueue
...
Fix #819 timeouts under kqueue on FreeBSD broken
2021-09-29 15:51:46 -05:00
llmII
3cec470f25
Change the way timeouts work in kqueue.
...
Don't use a timer filter, just set the timeout on each call to kevent.
Should hopefully work around the 1ms minimum on NetBSD and be possibly
more performant.
2021-09-29 15:19:30 -05:00
llmII
e1ec0d13ae
Fixing kqueue under the BSDs.
...
FreeBSD is the only BSD supporting ABSTIME timers, whereas the rest
demand intervals. Janet operates on timestamps, which are absolute
times, as per ABSTIME. The idea was to use that under FreeBSD but not
the other BSDs. This commit changes that since ABSTIME breaks when the
timeout supplied is for a time prior to whatever the time is
now (invalid argument). We now utilize the same logic we use on the
other BSDs with FreeBSD to effect interval timeouts since intervals are
absolutely sometime beyond now, be it now and less than a millisecond,
or more than a millisecond. This will hopefully unbreak BSD builds when
running the test suite.
2021-09-28 17:40:38 -05:00
bakpakin
924fe97fc3
Address #820 - ev/cancel to work on already scheduled fibers.
2021-09-28 15:42:16 -05:00
bakpakin
504411eade
Update suite 009 to do read and write in parallel.
2021-09-28 12:05:28 -05:00
Calvin Rose
038ca1b9ca
Update README.md
2021-09-27 21:20:06 -05:00
Calvin Rose
544b192f8c
Fix bad docstring change.
2021-09-25 14:32:23 -05:00
Calvin Rose
7748ccdb8e
Fix network byte order port.
2021-09-25 14:31:19 -05:00
Calvin Rose
64e29c6fce
More simplification and removal of macros.
2021-09-25 13:53:27 -05:00
Calvin Rose
acdf097998
Refactor of peername and localname to be much more direct.
...
Also remove a lot of overly general code from cqueues. Janet has more
opinionated error handling so we can avoid a lot error propagation code.
2021-09-25 13:38:36 -05:00
Calvin Rose
ba3107c1fa
Merge branch 'master' of github.com:janet-lang/janet
2021-09-21 18:03:25 -05:00
Calvin Rose
9985f787eb
Add custom base option to number peg combinator.
...
Allows parsing custom bases without needed Janet specific prefixes.
2021-09-21 18:02:42 -05:00
Calvin Rose
d6f41bcf98
Merge pull request #811 from sogaiu/use-deprecation-mechanism-for-file-popen
...
Apply deprecation machinery to file/popen
2021-09-21 15:16:20 -05:00
Calvin Rose
50bced49ad
Merge branch 'master' into use-deprecation-mechanism-for-file-popen
2021-09-21 15:15:36 -05:00
Calvin Rose
4fd7470bbf
Remove accidental limit on max read size.
2021-09-21 09:55:40 -05:00
Calvin Rose
033c6f1fdb
Add -i flag to run .jimage files as scripts.
2021-09-19 19:47:57 -05:00
Calvin Rose
6c58347916
Remove thread module.
...
Instead, use the more general and non-blocing `ev/` module.
2021-09-19 14:19:32 -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
Calvin Rose
cea14a6869
Fix typo in changelog.
2021-09-19 00:16:08 -05:00
Calvin Rose
9b4b24edf7
Prepare for 1.17.2 release.
2021-09-18 13:42:26 -05:00
Calvin Rose
8b10a5fb7c
Format and update CHANGELOG.md
2021-09-18 13:40:32 -05:00
Calvin Rose
b0d0d9cad2
Address #809 - treat first docstring line different from others.
...
Only do this if the docstring starts with an open parentheses.
2021-09-18 12:41:11 -05:00
sogaiu
d5c8eb048a
Apply deprecation machinery to file/popen
2021-09-18 17:08:56 +09:00
Calvin Rose
9abee3f29a
Add semi-colon.
2021-09-17 19:20:59 -05:00
Calvin Rose
bf9b6b1301
Avoid including windows.h in janet.h for JanetOSMutex.
2021-09-17 16:59:50 -05:00
Calvin Rose
8cd57025a0
Add makefile var to fix jpm to a tag/branch
2021-09-17 16:38:11 -05:00
Calvin Rose
faf60b6b1f
Pass DESTDIR directly to jpm bootstrap script.
2021-09-16 18:36:29 -05:00
Calvin Rose
da2c1be49c
Fix #801 threaded abstract cyclic references in marshalling.
...
We forgot to mark threaded abstract types as "seen" when marshalling so
we would mistakenly marshal them twice. This messed up unmarshalling.
2021-09-14 21:12:02 -05:00
Calvin Rose
92c02449f4
Merge pull request #800 from marler8997/fixUbInGC
...
add NULL check in gc.c to avoid UB
2021-09-14 16:04:12 -05:00
Jonathan Marler
e381622a9a
add NULL check in gc.c to avoid UB
...
After the UB was fixed in value.c, I tried running the build again and encoutered another instance of UB in gc.c. With this fixed I can now build janet with ubsan enabled, meaning there's no more UB encountered in janet_boot during the build.
2021-09-11 19:50:52 -06:00
bakpakin
b799223ebc
Merge branch 'master' of github.com:janet-lang/janet
2021-09-11 10:34:22 -05:00
bakpakin
40ef224a95
Update test code.
2021-09-11 10:34:08 -05:00
Calvin Rose
a4c20b6e1c
Merge pull request #797 from sogaiu/math-nan-doc-tweak
...
Tweak math/nan docstring
2021-09-11 09:13:38 -05:00
sogaiu
e6ee867f72
Tweak math/nan docstring
2021-09-11 16:54:35 +09:00
bakpakin
468a31f515
Address #795 - add NULL check to avoid UB
2021-09-09 07:20:26 -05:00
bakpakin
4d746794cc
Merge branch 'bindport'
2021-09-07 22:45:22 -05:00
bakpakin
02d2a66ef2
Merge branch 'master' of github.com:janet-lang/janet
2021-09-07 22:44:59 -05:00
Calvin Rose
4638baf545
Merge pull request #790 from llmII/feature-getsockname-getpeername
...
Work in progress - more socket functions
2021-09-07 22:44:40 -05:00
bakpakin
2be23d3768
Fix meson build.
2021-09-07 22:11:45 -05:00
bakpakin
b39b1746ba
Support bindport.
2021-09-07 21:59:17 -05:00
bakpakin
24f97510b0
Fix incorrect code that created socket twice.
2021-09-07 20:51:33 -05:00
llmII
325d5399fa
Code cleanup and attribution set.
...
All that is left is to test unix sockets.
2021-09-07 20:00:00 -05:00
Calvin Rose
d8f6fbf594
Merge pull request #789 from llmII/feature-bind-connect
...
Add bind option to net/connect
2021-09-07 18:47:17 -05:00
llmII
21b3e4052c
Don't print stuff in tests, CI looks wacky
2021-09-07 17:21:10 -05:00
llmII
bf2928805e
Had an extra plen definition, removed.
2021-09-07 17:03:34 -05:00
llmII
7d2bf334c8
Fix incorrect error when argv[3] is null
...
The `janet_get_addrinfo` function retained code that was meant for
compliance with 3 separate function signatures under a single function
name. Changing things to be a single function signature was broken until
the code pertaining to the aforementioned was stripped out.
2021-09-07 16:11:37 -05:00
llmII
7446802a70
Quit trying to make it 3 different functions
...
Prior commits was an attempt to make this one function adhere to 3
different function signatures! This puts an end to that and makes it
where it's a single function signature and if one wants to use the 4th
argument they'll need to explicitly set the 3rd argument (to nil for
default).
2021-09-07 14:56:13 -05:00
llmII
077bf5ebae
Create test case for localname/peername
2021-09-07 07:12:43 -05:00
llmII
c9bef39f96
Make net/connect special
...
Keeps net/listen from being affected by changes necessary to make bind
on connect work (while keeping from breaking the API).
2021-09-07 05:40:48 -05:00
llmII
3740eadb7d
Seeing if this fixes the last warnings for Windows
2021-09-06 19:57:56 -05:00
llmII
e29fa66a74
More Windows fixes
2021-09-06 19:42:45 -05:00
llmII
ca5406c8e4
More windows fixes
...
MSVC's output via appveyor is a little lacking in indication of all
issues so I'm hitting them as I can find them.
2021-09-06 19:31:16 -05:00
llmII
7217caacd1
Attempting some more windows related fixes.
2021-09-06 19:26:33 -05:00
Calvin Rose
8081082251
Merge pull request #785 from llmII/feature-kqueue
...
Add kqueue support to Janet
2021-09-06 18:42:05 -05:00
llmII
1597ca0de5
Cleanup code a bit
...
Inconsistent indentation and such fixed, superfluous newlines removed,
documentation of new functions.
2021-09-06 18:32:23 -05:00
llmII
8c938ceff9
Fix for Windows (possibly)
...
Windows does not have <arpa/inet.h> so only include it when not Windows.
2021-09-06 17:48:17 -05:00
llmII
65a6945ea5
Finalize peername and localname
...
Both now do the right thing and give back all information (host and
port) when possible as a tuple of (host port).
2021-09-06 17:35:49 -05:00
llmII
02640812af
Add getsockname (net/localname)
2021-09-06 17:01:09 -05:00
llmII
ba761d5c35
Work in progress - more socket functions
...
When this is complete we'll have getpeername, getsockname and possibly
getpeerid in the net/* API.
2021-09-06 16:15:01 -05:00
llmII
48a3b1f07f
Enable kqueue on MacOS
...
Make sure JANET_EV_KQUEUE is defined when JANET_APPLE is defined unless
disabled by configuration.
2021-09-06 16:01:06 -05:00
llmII
4370cb77e7
Update documentation.
...
Documenting the new bindhost parameter to net/connect.
2021-09-06 10:54:11 -05:00
llmII
470e8f6fc7
Reused address info struct incorrectly
...
Wrongly assumed that `ai` was done being used before binding, it's not,
so create a separate address info for binding...
2021-09-06 10:44:23 -05:00
llmII
b270d88427
More off by one error fixes
2021-09-06 10:12:36 -05:00
llmII
66ce247129
Fixing off by one indexing errors...
2021-09-06 10:01:16 -05:00
llmII
6ad016c587
Check type when getting socket type
...
janet_get_sockettype expects a keyword but we're making it optional that
the call to the functions that use it with arity >=3 will be guaranteed
to have it as a keyword value! If it's not a keyword then it's the same
as NULL.
2021-09-06 09:53:53 -05:00
llmII
532dac1b95
Check type instead of value
...
Primarily because trying to check the value results in a panic when the
value is not the type of value requested from the API. Also probably
cheaper and the previous idea of just getting the value then comparing
was pretty stupid (needed a string comparison... and was going to do
pointer comparison).
2021-09-06 09:48:29 -05:00
llmII
2a4bcc262f
Don't bind when address info doesn't exist
...
Simple logic issue, something overlooked.
2021-09-06 09:06:40 -05:00
llmII
1ce2361daf
Better error message in connect
...
Quick thing to help check when failing tests.
2021-09-06 09:02:56 -05:00
llmII
6e8584e8e0
Add bind option to net/connect
...
This will allow us to set the address we use for outgoing connections.
Builds, haven't checked it passes current tests, haven't checked it
actually works either.
2021-09-06 08:54:24 -05:00
llmII
121aa91139
Fixes for NetBSD (again)
...
Minimum interval for a timer must be 1 or more (or we get EINVAL) and
Janet fails tests and halts events that the programmer may still be
interested in.
2021-09-05 21:48:53 -05:00
llmII
bbc07c72d3
More NetBSD fixes
...
A comptime known value of 0 for data in EV_SET with EVFILT_TIMER causes
a complete compilation failure (fails to link). This fixes it by making
it a 1 instead of a 0 for amount of milliseconds in the interval to wait
under NetBSD.
2021-09-05 21:17:41 -05:00
llmII
43b48fdbea
More fixes for NetBSD
...
Kills compiler warnings with regards to implicit conversion of intptr_t
to void*
2021-09-05 21:01:24 -05:00
llmII
604f97aba1
Fixes for BSD where BSD != FreeBSD
...
NetBSD and OpenBSD lack NOTE_ABSTIME and NOTE_MSECONDS, so we define
those and create a macro that we use for all timeout values in EV_TIMER
events that will on all BSD excepting FreeBSD change an absolute time
into an interval.
2021-09-05 20:48:42 -05:00
Calvin Rose
dc980081cd
Fix #783 - change docstring for x86-64 to x64.
2021-09-05 12:32:33 -05:00
llmII
981f03fef3
Remove comments regarding NetBSD breakage
...
Since those no longer should apply, don't keep them around.
2021-09-05 10:45:45 -05:00
llmII
d40133dc72
NetBSD support
...
Checking throught NetBSD's man pages, excepting for NetBSD-current,
NetBSD uses `intptr_t` as the type for `.udata`. This change allows for
`.udata` to match whatever type (by cast) the underlying system uses.
2021-09-05 07:30:22 -05:00
llmII
c9fa586fce
Code style fixes (pt 2).
...
Missed some.
2021-09-04 09:37:07 -05:00
llmII
b847a7d90b
Code style fixes.
...
Pretty obvious I thought control statements were glued to their opening
parenthesis at first and then I realized not and voila, a bundle of
mixed style. Hopefully this fixes all of it.
2021-09-04 09:34:47 -05:00
llmII
8b67108dc8
Complete kqueue feature
...
From this point things should be bug fixes or code formatting most
likely.
Updated commentary (removed superfluous comments, and commented out
code). Refined commentary where it seemed important and may help whoever
comes behind me keep from making bad assumptions similar to the ones I
made.
All tests ran with `gmake test` now pass. `valgrind` with FreeBSD does
not support forking so `gmake valtest` fails once child processes are
started. Determined not an issue, can't fix valgrind.
2021-09-04 08:23:03 -05:00
llmII
b559f9625a
Timeout is an absolute time, not an interval.
...
Fixes the wrong assumption, passing all tests at that point.
2021-09-04 08:02:50 -05:00
llmII
1736c9b0f8
Handle null state, don't read/write on error
...
Need to guard against errors when reading/writing probably, if there is
an error, forgo those events.
Guard against null state (and the byproduct, a segfault), check if the
state is null before utilizing it.
2021-09-03 23:22:07 -05:00
llmII
4fb2d8d318
Logical error regarding length fixed.
2021-09-03 22:41:59 -05:00
llmII
95891eb0a5
Fix incorrect use of EV_SET on pipes (part 2)
...
Forgot that we use nearly the same routine for adding and deletion...
can't go around deleting things we haven't put into the changeset!
2021-09-03 22:33:28 -05:00
llmII
c133443eb7
Fix incorrect use of EV_SET on pipes.
...
It would seem adding a read and a write event filter on a pipe which is
unidirectional might just be a bad idea.
2021-09-03 19:44:27 -05:00
llmII
8f0641f36c
Disabling superfluous code
...
The code in question may be checking things in an erroneous manner?
2021-09-03 17:18:40 -05:00
llmII
f48dbde736
Better exit (error?) message
...
The prior calls to exit(-1) were wrong anyway and they may at this point
be hindering figuring out what's going on in suite 9.
2021-09-03 17:13:54 -05:00
llmII
f2e4c1ae9a
Forgot a semicolon...
2021-09-03 16:31:20 -05:00
llmII
a4aef38cc0
More typo and syntax fixes.
2021-09-03 16:29:39 -05:00
llmII
b445ecde51
Add kqueue option to meson, janetconf, fix typoes
2021-09-03 16:23:15 -05:00
llmII
a209a01284
Add kqueue support to Janet
...
Note that this is a work in progress and simply a first attempt at
getting some code into place before being able to test it. This code
follows of sorts both the poll and epoll sections of the codebase hoping
to achieve the exact same.
2021-09-03 14:33:47 -05:00
Calvin Rose
7037532943
Errored threads always emit stacktrace or supervisor event.
...
That way, it is much harder to swallow errors. Error swallowing behavior
would have to be done explicitly by wrapping fibers with `protect` or
`try`.
2021-09-01 21:05:05 -05:00
Calvin Rose
bb405ee1aa
Address #778
...
Relax check that number of closure environments in a function matches
that of the def.
The def could be partially constructed, and so there may be a false
negative. The runtime will check that this is consistent, and the
garbage collector should handle when this constraint is not kept.
2021-08-31 22:58:44 -05:00
Calvin Rose
ef23356309
Threaded supervisors return fiber->last_value instead
...
of the fiber itself.
2021-08-31 14:50:27 -05:00
Calvin Rose
1613e2593c
Update CHANGELOG.md
2021-08-30 22:24:34 -05: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
Calvin Rose
bb1331e449
Update changelog.
2021-08-30 22:06:28 -05:00
Calvin Rose
acbebc5631
Allow passing function to ev/thread.
...
Convenient when there is no need to create an entire fiber.
2021-08-30 22:04:15 -05:00
Calvin Rose
e1c4fc29de
Prepare for 1.17.1 release.
2021-08-29 11:29:41 -05:00
Calvin Rose
b903433284
Merge branch 'master' of github.com:janet-lang/janet
2021-08-29 11:15:43 -05:00
Calvin Rose
31a7fdc7b6
Add Make task to more easily install jpm.
2021-08-29 11:15:15 -05:00
Calvin Rose
9909adb665
Remove JANER_HEADERPATH from boot process.
...
That is a jpm thing.
2021-08-29 10:43:58 -05:00
Calvin Rose
26f8ba48ee
Merge pull request #775 from pepe/ev-docs
...
Fix typos in ev/go ev/select
2021-08-28 16:20:25 -05:00
Josef Pospíšil
29ea408980
Fix spawn-thread doc about its return
2021-08-28 15:39:49 +02:00
Josef Pospíšil
0bb7ca7441
Fix typos in ev/go ev/select
2021-08-28 15:35:55 +02:00
Calvin Rose
a992644c62
Merge branch 'master' of github.com:janet-lang/janet
2021-08-27 11:52:19 -05:00
Calvin Rose
1c15926e6f
Fix #773 - fix docstring.
2021-08-27 11:52:03 -05:00
Calvin Rose
c921315b3e
Merge pull request #774 from sogaiu/tweak-fiber-last-value-docstring
...
Tweak fiber/last-value docstring
2021-08-27 11:51:13 -05:00
Calvin Rose
ab740f92db
Fix ev thread swallowing error in some case.
2021-08-27 11:46:42 -05:00
sogaiu
1d7390fa7c
Tweak fiber/last-value docstring
2021-08-27 17:29:20 +09:00
Calvin Rose
0ab96b8e47
Fix #771
2021-08-26 22:23:21 -05:00
Calvin Rose
6f6edd37ef
Merge pull request #772 from pyrmont/feature.gh-test
...
Add GitHub Workflow to test
2021-08-26 22:20:48 -05:00
Michael Camilleri
f4282de068
Add GitHub Workflow to test
2021-08-25 10:49:56 +09:00
Calvin Rose
85c85c07b7
Merge pull request #770 from pyrmont/feature.gh-release
...
Use GitHub Workflow to create release (including building for Linux and macOS)
2021-08-24 08:36:57 -05:00
Michael Camilleri
7abcb1579a
Set JANET_DIST_DIR before making artifact
2021-08-23 15:47:25 +09:00
Michael Camilleri
7ce733cc16
Change lowercase step
2021-08-23 15:24:25 +09:00
Michael Camilleri
41a3c5f846
Add GitHub Workflow to draft release
2021-08-23 14:55:59 +09:00
bakpakin
7734e77dfc
Readd the janet_register function.
2021-08-22 10:38:15 -05:00
Calvin Rose
257c8b65c2
Fix destruction order.
2021-08-21 13:30:09 -05:00
Calvin Rose
846c9e5e12
Fix #759 - Add -E flag for one-liners.
...
Use the `short-fn` DSL here for argument passing.
2021-08-21 13:16:41 -05:00
Calvin Rose
685d2b460c
Address #765 . Make assert into a macro.
2021-08-21 12:27:58 -05:00
Calvin Rose
bd71e1cd02
Silence clang warning about comparing function pointers.
...
The comparison is used to create a set of function pointers.
2021-08-21 12:10:19 -05:00
Calvin Rose
43a5e12449
Merge branch 'master' of github.com:janet-lang/janet
2021-08-21 12:07:39 -05:00
Calvin Rose
ca97510a52
Prepare for 1.17.0 release.
2021-08-21 12:07:28 -05:00
Calvin Rose
50b753cb44
Merge pull request #768 from sogaiu/remove-threads-example
...
Remove threads example
2021-08-21 11:15:54 -05:00
sogaiu
5ca6704c4d
Remove threads example
2021-08-21 14:52:51 +09:00
Calvin Rose
49142fa385
Update for windows compiler warning.
2021-08-20 19:48:48 -05:00
Calvin Rose
d631d29cb4
Fix typo in header.
2021-08-20 18:53:22 -05:00
Calvin Rose
01b7891347
Windows header issues.
2021-08-20 18:49:13 -05:00
Calvin Rose
c786a4cbeb
Expose JanetOSMutex to make abstract types easier to write.
2021-08-20 17:57:23 -05:00
Calvin Rose
1920ecd668
Decrement thread channel pointer during cleanup without adding to heap.
2021-08-20 16:41:19 -05:00
Calvin Rose
c8827424e7
Fix memory leak and use after free
...
Use after free was caused by missing janet_gcroot call when
setting up thread.
2021-08-19 21:51:53 -05:00
Calvin Rose
cc066dd6a1
Add basic runtime support for threaded abstracts.
...
A threaded abstract is an abstract type that can be freely shared
between threads. While no synchronization is provided, refcounting
and transport between threads is. This will let implementers more easily
exploit OS-level parallelism in C library code. The caveat with these
types is that they need to be careful in how they interact with objects
on other heaps.
2021-08-19 21:16:20 -05:00
Calvin Rose
eb0b37f729
Initial threaded abstract types.
2021-08-19 20:56:48 -05:00
Calvin Rose
e552757edc
Fix threaded supervisor channels - Fix #766
...
Some pointer casting with abstract types was incorrect, resulting
in strange behavior when trying to use supervisor channels that were
threaded. This fix also adds the ability to supply a supervisor channel
directly when creating a thread.
2021-08-16 21:14:06 -05:00
Calvin Rose
87b8dffe23
Deprecate the thread module.
2021-08-15 17:36:47 -05:00
Calvin Rose
81b5904188
Add marshal/unmarshal to items pushed to threaded channel.
2021-08-15 16:12:40 -05:00
Calvin Rose
894a3b2fe2
Fix memory leak with threaded channels.
2021-08-15 15:33:26 -05:00
Calvin Rose
b75b3e3984
Working example for threaded channels.
...
Still no marshalling more complex values.
2021-08-15 15:25:07 -05:00
Calvin Rose
dea4906144
Merge branch 'master' of github.com:janet-lang/janet
2021-08-15 13:15:41 -05:00
Calvin Rose
97e5117a3f
Fix some issues and improve channel closing.
...
Still not fully working, seems to be deadlock/channel issue when
sending events between threads.
2021-08-15 13:14:33 -05:00
Calvin Rose
037215f7c4
Initial working draft of threaded channels.
...
Introduces close semtantics to channels as well, but otherwise
threaded channels behave much like non-threaded channels. They have
different marshalling behavior though, and can only send values over by
packing and unpacking them. For now, this means only primitive values
although this will be expanded.
Also missing some implementation for closing threaded channels, and a
whole lot of testing. Achtung!, Caveat emptor, here be dragons and bugs.
2021-08-15 11:48:13 -05:00
Calvin Rose
0277187fde
Merge pull request #763 from sogaiu/rng-uniform-doc-tweak
...
Tweak docstring for math/rng-uniform
2021-08-14 19:10:45 -05:00
sogaiu
c80a3c1401
Fix error
2021-08-15 06:57:46 +09:00
Calvin Rose
5614f85ea1
Merge pull request #762 from andrewchambers/race
...
Fix init race for environ lock.
2021-08-14 10:27:32 -05:00
sogaiu
1a3c8692e6
Tweak docstring for math/rng-uniform
2021-08-10 20:09:24 +09:00
Andrew Chambers
f2e8691ad5
Fix init race for environ lock.
2021-08-09 14:47:41 +12:00
Calvin Rose
c94d7574bc
Merge pull request #754 from harryvederci/patch-1
...
Improve docstring for the invert function.
2021-08-08 12:51:24 -05:00
Calvin Rose
a38cb5df18
Merge pull request #757 from subsetpark/document-match
...
Add documentation of @ pattern in match
2021-08-08 12:51:00 -05:00
Zach Smith
5407868620
Add documentation of @ pattern in match
2021-08-07 15:09:37 -04:00
Harry Prins
7edf77561b
Refer to argument. Change past tense to present.
2021-08-07 18:03:10 +02:00
Calvin Rose
a78cbd91da
Address #753 - fix gensym regression.
2021-08-06 16:25:53 -05:00
Calvin Rose
bb5c3773f1
Fix fiber aware combinators to use general iteration instead of fiber
...
specifics.
2021-08-06 16:17:47 -05:00
Calvin Rose
2e641a266d
Merge pull request #752 from sogaiu/get-in-tweak
...
Tweak get-in behavior
2021-08-06 15:14:33 -05:00
Calvin Rose
3a787afec6
Merge pull request #756 from subsetpark/take-streams
...
Make take/take-while/take-until fiber-aware
2021-08-06 15:13:35 -05:00
Zach Smith
34019222c2
Make take/take-while/take-until fiber-aware
2021-08-06 15:40:29 -04:00
Harry Prins
5f3378213b
Improve docstring for the invert function.
2021-08-06 18:33:49 +02:00
sogaiu
547fda6a40
Add tests
2021-08-06 10:05:34 +09:00
sogaiu
2080ac3bda
Tweak get-in behavior
2021-08-06 08:24:26 +09:00
Calvin Rose
61769c8f16
Merge pull request #747 from dbready/fractional_seconds
...
Note "int" vs "double" representation of seconds in os API
2021-07-31 15:49:09 -05:00
Damien Ready
934e091410
Note "int" vs "double" representation of seconds
2021-07-31 11:02:48 -05:00
Calvin Rose
7f7ee75954
Patch util.c
2021-07-31 10:00:43 -05:00
Calvin Rose
e76b8da269
Add semantics for closing channels.
...
This makes certain algorithms simpler as channels
now have an explicit lifetime - multiple readers can coordinate
closing without needing to ensure the same number of reads as writes.
2021-07-30 19:26:42 -05:00
Calvin Rose
7e5f226480
Put source mapping info in stack traces.
2021-07-29 21:29:08 -05:00
Calvin Rose
2f634184f0
Merge branch 'master' of github.com:janet-lang/janet
2021-07-28 21:41:34 -05:00
Calvin Rose
e3e01466ee
Merge pull request #741 from sogaiu/remove-duplicate-method
...
Remove duplicate of method recv-from
2021-07-28 20:35:33 -05:00
sogaiu
025918cfcc
Remove duplicate of method recv-from
2021-07-28 14:44:49 +09:00
Calvin Rose
28fb76e602
Merge pull request #740 from yumaikas/hotfix-new-style-math-bindings
...
Fix macro stringification for one-arg math functions
2021-07-27 23:56:16 -05:00
Andrew Owen
b0f97393a3
Fix macro stringification for one-arg math functions
2021-07-27 21:40:25 -06:00
Calvin Rose
2a7041e751
Merge pull request #739 from sogaiu/new-style-core-fn-decl-for-array
...
Update array.c with new style core function declarations
2021-07-27 22:37:35 -05:00
Calvin Rose
58c78d0d78
Merge pull request #730 from yumaikas/new-style-math-bindings
...
Update math.c for the new style
2021-07-27 22:37:13 -05:00
sogaiu
eed158afdd
Merge branch 'janet-lang:master' into new-style-core-fn-decl-for-array
2021-07-28 10:24:11 +09:00
Andrew Owen
1c7505e04a
Merge branch 'master' into new-style-math-bindings
2021-07-27 19:19:39 -06:00
Calvin Rose
617da24942
Merge pull request #726 from yumaikas/new-style-ev-bindings
...
Update ev.c to use the new binding style that provides source information
2021-07-27 20:17:19 -05:00
Andrew Owen
98bdbfd3d5
Add JANET_DEF and co, use in math.c
2021-07-27 19:13:09 -06:00
Andrew Owen
b289f253c7
Remove static function from the JANET_FN family of macros
2021-07-27 18:43:32 -06:00
Andrew Owen
aabae03305
Add rselect bindings
2021-07-27 00:48:28 -06:00
sogaiu
194d645551
Update array.c with new style core function declarations.
2021-07-27 15:34:12 +09:00
Calvin Rose
889d6f9e43
Merge pull request #737 from sogaiu/new-style-core-fn-decl-for-corelib
...
Update corelib.c with new style core function declarations.
2021-07-26 22:07:17 -05:00
Calvin Rose
151de093d0
Merge pull request #736 from sogaiu/new-style-core-fn-decl-for-debug
...
Update debug.c with new style core function declarations.
2021-07-26 22:06:17 -05:00
Calvin Rose
cc13e45f21
Merge pull request #738 from sogaiu/new-style-core-fn-decl-for-buffer
...
Update buffer.c with new style core function declarations.
2021-07-26 22:01:28 -05:00
sogaiu
7492a4c871
Update buffer.c with new style core function declarations.
2021-07-27 11:34:03 +09:00
sogaiu
d20543b92c
Update corelib.c with new style core function declarations.
2021-07-27 11:18:54 +09:00
sogaiu
59aab2ebbd
Update debug.c with new style core function declarations.
2021-07-27 08:01:56 +09:00
Calvin Rose
08f7b1b9e5
Run the formatter.
2021-07-26 17:54:26 -05:00
Calvin Rose
f2ac1c15e6
Merge pull request #735 from sogaiu/new-style-core-fn-decl-for-fiber
...
Update fiber.c with new style core function declarations.
2021-07-26 17:36:54 -05:00
Calvin Rose
eaf8f198c1
Merge pull request #733 from sogaiu/new-style-core-fn-decl-for-io
...
Update io.c with new style core function declarations.
2021-07-26 17:36:37 -05:00
sogaiu
2955286606
Update fiber.c with new style core function declarations.
2021-07-27 07:00:59 +09:00
Calvin Rose
40561340a8
Merge pull request #721 from uvtc/patch-1
...
docs for doc, searching for strings
2021-07-26 15:21:39 -05:00
Calvin Rose
4f00a7db88
Merge pull request #729 from sogaiu/new-style-core-fn-decl-for-os
...
Update os.c with new style core function declarations.
2021-07-26 15:21:15 -05:00
Calvin Rose
acc21d0b76
Merge pull request #724 from sogaiu/new-style-core-fn-decl-for-thread
...
Update thread.c with new style core function declarations.
2021-07-26 15:19:19 -05:00
Calvin Rose
db5df70d0c
Merge pull request #727 from sogaiu/new-style-core-fn-decl-for-string
...
Update string.c with new style core function declarations.
2021-07-26 15:19:07 -05:00
Calvin Rose
a6073dc237
Merge pull request #734 from sogaiu/new-style-core-fn-decl-for-inttypes
...
Update inttypes.c with new style core function declarations.
2021-07-26 10:29:53 -05:00
sogaiu
92c132381e
Update inttypes.c with new style core function declarations.
2021-07-26 21:52:02 +09:00
sogaiu
d0575e4087
Update io.c with new style core function declarations.
2021-07-26 21:39:13 +09:00
Calvin Rose
5ca48b96af
Merge pull request #728 from sogaiu/new-style-core-fn-decl-for-parse
...
Update parse.c with new style core function declarations.
2021-07-26 07:22:46 -05:00
Calvin Rose
2a9f30fc8a
Merge pull request #725 from sogaiu/new-style-core-fn-decl-for-table
...
Update table.c with new style core function declarations.
2021-07-26 07:16:28 -05:00
Calvin Rose
ba89a81a3e
Merge pull request #731 from sogaiu/new-style-core-fn-decl-for-net
...
Update net.c with new style core function declarations.
2021-07-26 07:11:15 -05:00
Calvin Rose
5f32300592
Merge pull request #732 from sogaiu/new-style-core-fn-decl-for-marsh
...
Update marsh.c with new style core function declarations.
2021-07-26 07:04:29 -05:00
sogaiu
15b4d9363b
Update marsh.c with new style core function declarations.
2021-07-26 18:29:59 +09:00
sogaiu
ceca0e7f0e
Update net.c with new style core function declarations.
2021-07-26 18:20:06 +09:00
Andrew Owen
700770b883
Update math.c for the new style
2021-07-26 01:51:13 -06:00
sogaiu
8365037be5
Update os.c with new style core function declarations.
2021-07-26 16:48:04 +09:00
sogaiu
dfaba7daa6
Update parse.c with new style core function declarations.
2021-07-26 15:42:33 +09:00
sogaiu
5756934144
Update string.c with new style core function declarations.
2021-07-26 15:23:04 +09:00
Andrew Owen
7b3ab2727f
Fix copy/paste mistake in ev/take docs
2021-07-26 00:11:05 -06:00
Andrew Owen
714ba808dd
Update ev.c to use the new binding style that provides source information
2021-07-25 23:25:38 -06:00
sogaiu
6e94e03baa
Update table.c with new style core function declarations.
2021-07-26 14:03:01 +09:00
sogaiu
ac98dbccb8
Update thread.c with new style core function declarations.
2021-07-26 13:46:31 +09:00
Calvin Rose
6e3355d7f2
Merge pull request #723 from sogaiu/new-style-core-fn-decl-for-tuple
...
Update tuple.c with new style core function declarations.
2021-07-25 22:41:42 -05:00
Calvin Rose
97907906c5
Merge pull request #722 from sogaiu/new-style-core-fn-decl-for-compile
...
Update compile.c with new style core function declarations.
2021-07-25 22:41:11 -05:00
Calvin Rose
eb84200f28
Fix linux issues with epoll on normal files.
...
We use the selfpipe trick if epoll fails with EPERM when trying to
register a file descriptor.
2021-07-25 21:47:52 -05:00
sogaiu
caaa26e153
Update tuple.c with new style core function declarations.
2021-07-26 11:33:46 +09:00
Calvin Rose
030dd747e9
Merge branch 'master' of github.com:janet-lang/janet
2021-07-25 20:21:59 -05:00
sogaiu
dccb98bb92
Update compile.c with new style core function declarations.
2021-07-26 09:07:53 +09:00
John Gabriele
e356b7141c
Update boot.janet
2021-07-25 17:26:31 -04:00
bakpakin
4cae7e6d5d
When building amalgamated build on windows, patch source-map.
...
We don't want any backslahes cropping up in the offical distribution of
janet.c.
2021-07-25 15:53:38 -05:00
bakpakin
cc07b4a89a
Merge branch 'master' of github.com:janet-lang/janet
2021-07-25 14:54:45 -05:00
bakpakin
7e8154e648
Update peg.c with new style core function declarations.
2021-07-25 14:54:25 -05:00
Calvin Rose
dfee997e45
Merge pull request #718 from uvtc/patch-1
...
Add some clarifying backticks to docs
2021-07-25 14:10:44 -05:00
Calvin Rose
f6b7cb9c49
Merge pull request #719 from uvtc/patch-2
...
Clarify docs on take and drop functions
2021-07-25 14:10:01 -05:00
bakpakin
4452d0e0f5
Update CHANGELOG.md
2021-07-25 13:08:17 -05:00
bakpakin
7fba44ccce
Add macro mechanism for defining C source information for functions.
...
This wil let us track source code for C functions more easily.
2021-07-25 13:03:01 -05:00
bakpakin
6f1695ecd4
Add utitities for interrupting the event loop.
...
janet_loop1_interrupt makes the event loop compatible
with safe interruptions for custom scheduling. Does this by exposing
custom events on the event loop. A custom event schedules a function pointer
to run in a way that can interrupt
epoll_wait/poll/GetQueuedCompletionStatus.
2021-07-25 09:08:46 -05:00
John Gabriele
76acbf9bb6
Clarify docs on take and drop functions
...
Pass in indexed and bytes, return tuples and strings, respectively.
2021-07-24 18:44:49 -04:00
John Gabriele
2769a62bb3
Add some clarifying backticks to docs
2021-07-24 16:58:21 -04:00
bakpakin
160dd830a0
Add janet_interpreter_interrupt for custom scheduling.
...
This would allow an embedder to suspend the current Janet fiber
via an external event like a signal, other thread, or really anything.
This is a useful primitive for custom schedulers that would call
janet_interpreter_interupt periodically (say, in an interval with SIG_ALRM),
do some work, and then use janet_continue on the janet_root_fiber, or
for embedding into other soft-realtime applications like a game. To say,
only allow about 5ms per frame of interpreter time.
2021-07-24 15:14:37 -05:00
bakpakin
aafc595e3a
Fix typo.
2021-07-24 12:47:51 -05:00
bakpakin
202783c67a
Add :d switch to os/spawn.
...
This allows for starting processes that can be turned into zombies.
2021-07-24 11:55:04 -05:00
Calvin Rose
f11b2c5a0d
Merge pull request #717 from yumaikas/fix-os-open-write-windows
...
Fix os open write windows, and add TerminateProcess calls
2021-07-24 07:52:40 -05:00
Andrew Owen
e8a86013da
Add fixes for :write on filestreams that come from os/open
2021-07-24 02:30:00 -06:00
Calvin Rose
a89c377c92
Add the fiber-fn macro which slightly generalizes coro.
2021-07-22 17:59:01 -05:00
Calvin Rose
54d73f6722
Make epoll the default on Linux for event loop implementations.
2021-07-21 21:46:26 -05:00
Calvin Rose
2e58f5f0d4
Add table/clear.
2021-07-21 19:58:42 -05:00
Calvin Rose
e7ea39f410
Prevent possible bad garbage collection when finalizing streams.
...
The GC finalizer for streams would sometimes try and use other objects
after they had already been freed.
2021-07-20 19:42:35 -05:00
Calvin Rose
a125218d03
Move some defines.
2021-07-20 18:24:56 -05:00
Calvin Rose
55b8563c08
Add janet_loop_fiber C function to run a fiber to completion from C.
...
This is mainly meant for use as the entry point to a C wrapper for a
janet program. This maeans the programmer doesn't need to use an ifdef
to handle if the event loop is enabled.
2021-07-18 09:39:37 -05:00
Calvin Rose
aea1f59f6e
Add option to build janet without thread library.
2021-07-17 15:13:28 -05:00
Calvin Rose
ab27b789e4
Fix minimal build.
2021-07-17 13:10:55 -05:00
Calvin Rose
3a1a59f1eb
Address windows build issue.
2021-07-16 21:10:02 -05:00
Calvin Rose
c20a76cddb
Update CHANGELOG and indicate next release will be 1.17.0
2021-07-16 21:05:42 -05:00
Calvin Rose
1ef6db16ed
Add janet_vm_save and janet_vm_load.
...
This lets a user multiplex multiple Janet VMs on a single
thread or process if they are willing to implement context switching
themselves.
2021-07-16 20:59:03 -05:00
Calvin Rose
230b734663
Delete jpm and related testing from this repository.
...
JPM and related functionality has been moved to it's own repository
and will be versioned separately from Janet. The distribution process
could later be modified to bundle a version of jpm with Janet but this
is perhaps not needed.
2021-07-15 20:49:41 -05:00
Calvin Rose
dc414f1239
Merge pull request #713 from yumaikas/fix-process-terminate-windows
...
Add TerminateProcess to janet_proc_gc and os_proc_kill on Windows
2021-07-11 09:30:07 -04:00
Calvin Rose
dafd2329c5
Merge pull request #712 from sogaiu/tweak-function-name
...
Tweak function name
2021-07-11 08:11:48 -05:00
Andrew Owen
12cfda1f58
Add TerminateProcess to janet_proc_gc and os_proc_kill on Windows
2021-07-11 04:05:11 -06:00
Andrew Owen
96b4e71704
Add TerminateProcess to janet_proc_gc and os_proc_kill on Windows
2021-07-11 03:56:08 -06:00
sogaiu
edb415d1a8
Tweak function name
2021-07-11 12:27:15 +09:00
Calvin Rose
72c1d1c484
Fix some error condiditions to have the right number of arguments.
2021-07-10 14:09:59 -04:00
Calvin Rose
41a7154aa5
Remove jhydro from CI pipeline.
2021-06-27 12:49:19 -05:00
Calvin Rose
346d024e48
Remove travis CI integration.
2021-06-27 12:48:07 -05:00
Calvin Rose
04a248dc37
Update CHANGELOG.md
2021-06-27 10:54:03 -05:00
Calvin Rose
5defc3b914
Fix bug with ev/go when passing supervisor and value.
...
value was incorrectly set to nil in these cases. Also
fix some typos in core docstrings.
2021-06-25 18:58:19 -05:00
Calvin Rose
04ca945ecf
Address #711 - don't persist (dyn :exit)
2021-06-24 14:51:08 -05:00
Calvin Rose
d687db71e7
Merge pull request #708 from subsetpark/patch-1
...
Update CHANGELOG.md [typo]
2021-06-12 10:34:45 -05:00
Calvin Rose
87f8fe14dd
Prepare for 1.16.1 release.
2021-06-09 19:08:24 -05:00
Zach Smith
af08124229
Update CHANGELOG.md
2021-06-08 12:22:54 -04:00
Calvin Rose
2eadb21eb7
Update changelog.
2021-05-31 16:51:53 -05:00
Calvin Rose
8b97a0dbbf
Merge pull request #707 from pepe/fix-shadow
...
Rename level const to not to shadow line in eval1
2021-05-31 16:05:41 -05:00
Calvin Rose
69afa2a7a3
Merge branch 'master' into fix-shadow
2021-05-31 16:05:29 -05:00
Calvin Rose
da5328bae5
Merge branch 'master' of git.sr.ht:~bakpakin/janet
2021-05-31 15:14:39 -05:00
Josef Pospíšil
a4325372e2
Rename level const to not to shadow line in eval1
2021-05-31 21:51:31 +02:00
Calvin Rose
4b96b73858
Add -w and -x flags to janet for linting.
2021-05-31 14:36:25 -05:00
Calvin Rose
bbae43f259
Update copyright dates.
2021-05-31 13:46:02 -05:00
bakpakin
14fedbf063
Update copyright.
2021-05-31 09:53:52 -05:00
Calvin Rose
ab974c409d
Remove externeous typedarray defines in janet.h
2021-05-31 09:23:45 -05:00
Calvin Rose
2040709585
Re-add make docs.
...
Wasn't hurting anything.
2021-05-30 16:44:37 -05:00
Calvin Rose
60214dc659
Update for windows compiler warning.
2021-05-30 16:42:58 -05:00
Calvin Rose
b990d77f16
Prepare for 1.16.0 release.
2021-05-30 12:15:56 -05:00
Calvin Rose
d204e06e11
Use lint information in run-context.
2021-05-30 10:33:46 -05:00
Calvin Rose
f6b37dbc77
Merge branch 'master' into linting
2021-05-30 09:34:32 -05:00
Calvin Rose
fab65d6c40
Merge branch 'master' into struct-proto
2021-05-30 09:33:59 -05:00
Calvin Rose
ff4d49f556
Set JANET_DIST_DIR on release.
2021-05-30 09:23:52 -05:00
Calvin Rose
dfa5fa1187
Remove some stupid shell gymnastics in Makefile.
2021-05-30 09:14:34 -05:00
Calvin Rose
1f4f69a5b6
Fix windows syntax issue.
2021-05-29 20:40:26 -05:00
Calvin Rose
84f82f5465
Remove code delimtiers from defn and defmacro.
2021-05-29 20:37:30 -05:00
Calvin Rose
c911f7c47e
Address #694 - Update doc-format with more features.
...
Also allows having doc-format print in color with
(dyn :doc-color).
2021-05-29 20:34:22 -05:00
Calvin Rose
4d983e54b5
Initial struct prototype code.
...
Also add a number of cfunctions for manipulating structs
with prototypes.
2021-05-29 11:43:18 -05:00
Calvin Rose
33c000daea
Expose linting array to macros.
...
This has a lot of possible uses, and would let users add a macro-based
type system on top of Janet that would integrate with the usual linting
and warning system.
2021-05-28 15:15:34 -05:00
Calvin Rose
7ff204ec44
Work on system for adding compiler warnings.
...
This is the beginning of a system for compiler warnings. This includes
linting, deprecation notices, and other compiler warnings that are best
detected by the `compile` function and don't require the partial
evalutaion of the flychecker.
2021-05-28 15:12:05 -05:00
Calvin Rose
7c757ef3bf
Make jpm configurable for environments like MinGW.
2021-05-26 10:07:11 -05:00
Calvin Rose
2db7945d6f
Fix peg bug when there is no default grammar set.
...
This could result in a segfault when we attempt to
read from a NULL pointer.
2021-05-20 21:57:22 -05:00
Calvin Rose
81186bf262
Merge branch 'master' of github.com:janet-lang/janet
2021-05-19 18:43:50 -05:00
Calvin Rose
eeef5b0896
Add as-macro and module/add-syspath
2021-05-19 18:18:00 -05:00
Calvin Rose
8189b6fc11
Merge pull request #690 from sogaiu/specials-doc
...
Make doc work for special forms
2021-05-09 13:54:46 -05:00
sogaiu
e5a2df93ab
Make doc work for special forms
2021-05-07 08:47:33 +09:00
Calvin Rose
c3f770da27
Fix meson build.
2021-04-29 15:59:44 -05:00
Calvin Rose
49f66a936c
Merge commit 'f4c9064b79d5b32fd74e5ddf25266356c22dd53b'
2021-04-29 15:58:41 -05:00
Calvin Rose
83dda98240
Update jpm to work post patch.
2021-04-29 14:28:54 -05:00
Calvin Rose
b4ddbd0097
Address #670 - Allow modifying jpm to link to extra libraries.
2021-04-29 14:04:18 -05:00
Calvin Rose
cbe92bb985
Merge branch 'master' of github.com:janet-lang/janet
2021-04-29 13:13:55 -05:00
Calvin Rose
60c6a0d334
Add :native-deps option to jpm.
...
Use is like:
```
(declare-native
:name "my-nuermical-library"
:source @["numerical_lib.c"]
:native-deps ["tarray"])
```
Where `tarray` is a native generated by o ne of the project
dependencies. This will lets us move more C functionality out of the
core of Janet while still allowing it's use from natives.
2021-04-29 13:11:46 -05:00
Calvin Rose
1baab5eb61
Remove typed arrays from the core.
...
Typed arrays will instead live in an external jpm nodule.
Also, changes have been made to `jpm` to allow other natives to use the
typedarray headers.
2021-04-29 12:33:49 -05:00
Calvin Rose
8fc8974b60
Add from-pairs to core. #683
...
This always creates a table, use `table/to-struct` to
create a struct.
2021-04-29 12:06:24 -05:00
Calvin Rose
ecb49c2e5e
Merge pull request #688 from cjones051073/use-nsgetenviron-on-apple
...
Use _NSGetEnviron() on Apple
2021-04-29 12:00:35 -05:00
Chris Jones
29797b9eb0
Use _NSGetEnviron() on Apple
2021-04-27 11:54:24 +01:00
Calvin Rose
e181ee586b
Prepare for 1.15.5 release.
2021-04-25 14:00:16 -05:00
Calvin Rose
7b7d742bec
Add declare-headers to jpm.
2021-04-25 13:38:24 -05:00
Calvin Rose
612eaff9ff
Fix #682 - Don't hardcode size of sun_path.
2021-04-15 14:57:40 -05:00
Calvin Rose
d76ef187e8
Merge pull request #681 from pyrmont/patch-2
...
Fix link to Introduction
2021-04-09 20:04:42 -05:00
Michael Camilleri
e01ab86a89
Fix link to Introduction
2021-04-08 16:10:24 +09:00
Calvin Rose
89b59b4ffc
Merge branch 'master' of github.com:janet-lang/janet
2021-04-06 23:36:11 -05:00
Calvin Rose
e367ecf806
Update cannonical link.
2021-04-06 23:35:57 -05:00
Calvin Rose
effc9e0f33
Merge pull request #677 from uvtc/patch-1
...
Add note about sponsorship to README
2021-04-02 15:00:21 -05:00
John Gabriele
da06e6c6e3
Update README.md
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2021-03-31 21:40:30 -04:00
John Gabriele
c258bee54f
Add note about sponsorship to README
2021-03-31 21:27:03 -04:00
Calvin Rose
cde4a505cf
Fix #673 - check typed array index bounds as well as buffer count.
2021-03-30 21:14:42 -05:00
Calvin Rose
2802e66259
Merge branch 'master' of github.com:janet-lang/janet
2021-03-26 15:45:14 -05:00
Calvin Rose
3a3003029a
Merge branch 'master' of github.com:janet-lang/janet
2021-03-26 15:44:43 -05:00
Calvin Rose
08bca8fb63
Merge branch 'master' of github.com:janet-lang/janet
2021-03-26 15:36:50 -05:00
Calvin Rose
7c7ff802fa
Add net/shutdown to allow better networking with streams.
2021-03-26 15:36:25 -05:00
Calvin Rose
0945acc780
Merge pull request #672 from Luewd/cc-file-ext
...
Allow .cc file extension in jpm declare-native
2021-03-26 15:13:12 -05:00
Lue
64ec9f9cb6
Allow .cc file extension in jpm declare-native
2021-03-25 13:19:05 -04:00
Calvin Rose
83f7de33c0
Merge pull request #671 from pyrmont/feature.metadata
...
Support adding arbitrary metadata to bindings
2021-03-24 16:56:25 -05:00
Michael Camilleri
ec2d7bf349
Support adding arbitrary metadata to bindings
2021-03-24 09:38:12 +09:00
Andrew Chambers
f4c9064b79
Add config support for custom allocators.
2021-03-23 23:00:48 +13:00
Calvin Rose
8ede16dc26
Merge pull request #669 from dbready/dist_layout
...
Create Folder Hierarchy for Linux Release
2021-03-22 11:51:21 -05:00
Damien Ready
27e400fba3
Prepare the .tar distribution with folder layout
2021-03-20 10:53:51 -05:00
Calvin Rose
37d6cb469b
Merge pull request #668 from ffontaine/master
...
meson.build: fix build without threads
2021-03-19 15:44:25 -05:00
Calvin Rose
100a82feb2
Version bump (development version).
2021-03-19 15:41:34 -05:00
Calvin Rose
90e5828d5d
Update printing when entering debugger.
2021-03-19 15:38:46 -05:00
Calvin Rose
b3e80308d4
Change inheritance rule.
2021-03-19 15:18:19 -05:00
Fabrice Fontaine
a7abe11105
meson.build: fix build without threads
...
Fix the following build failure with -Dsingle_threaded=true on embedded
toolchains without pthread:
FAILED: janet.p/meson-generated_.._janet.c.o
/home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-linux-gcc -Ijanet.p -I. -I.. -I../src/include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -std=c99 -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -pthread -fvisibility=hidden -MD -MQ janet.p/meson-generated_.._janet.c.o -MF janet.p/meson-generated_.._janet.c.o.d -o janet.p/meson-generated_.._janet.c.o -c janet.c
In file included from /home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdlib.h:24,
from ../src/include/janet.h:300,
from src/core/features.h:57:
/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/features.h:218:5: warning: #warning requested reentrant code, but thread support was disabled [-Wcpp]
218 | # warning requested reentrant code, but thread support was disabled
| ^~~~~~~
src/core/ev.c:39:10: fatal error: pthread.h: No such file or directory
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com >
2021-03-18 09:13:22 +01:00
Calvin Rose
3c63a48df4
( #667 ) Add constant inlining for tuples and structs.
...
Structs and tuples composed entirely out of constant values
will themselves be considered constant values during compilation.
This reduces the amount of generated code.
2021-03-16 20:52:55 -05:00
Calvin Rose
fcb88e5a98
Merge branch 'master' of github.com:janet-lang/janet
2021-03-16 20:12:47 -05:00
Calvin Rose
a467b34de4
Prepare for 1.15.4 release.
2021-03-16 20:12:33 -05:00
Calvin Rose
a24cc77ff8
Merge pull request #666 from pyrmont/patch-1
...
Remove instructions to add tags
2021-03-14 16:16:42 -05:00
Michael Camilleri
d6675d9909
Remove instructions to add tags
2021-03-14 15:07:33 +09:00
Calvin Rose
fa163093d2
Update CHANGELOG.md
2021-03-13 19:22:47 -06:00
Calvin Rose
e70f64e23d
Sort keys initial.
2021-03-13 19:17:07 -06:00
Calvin Rose
6f605f8141
Update pretty printing default depth.
2021-03-13 17:43:19 -06:00
Calvin Rose
d9419ef994
Merge pull request #660 from ffontaine/master
...
meson.build: fix static build
2021-03-12 19:06:33 -06:00
Calvin Rose
7e8639a682
Merge pull request #664 from leahneukirchen/meson-pkgconfig2
...
Fix include path when using meson
2021-03-12 17:11:54 -06:00
Leah Neukirchen
452b303b4c
Fix include path when using meson
...
Closes #661 .
2021-03-12 18:49:50 +01:00
Fabrice Fontaine
b0f1a4967d
meson.build: fix static build
...
Don't enforce -rdynamic when building statically to avoid the following
build failure:
/home/giuliobenetti/autobuild/run/instance-2/output-1/host/bin/arm-linux-gcc -o janet janet.p/meson-generated_.._janet.c.o janet.p/src_mainclient_shell.c.o -Wl,--as-needed -Wl,--allow-shlib-undefined -Wl,-O1 -rdynamic -Wl,-elf2flt -static -Wl,--start-group -lm -ldl -Wl,--end-group -pthread
arm-linux-gcc.br_real: error: unrecognized command line option '-rdynamic'
Fixes:
- http://autobuild.buildroot.org/results/a4f927f73a7b80e65408c992d7b6023609a1eacc
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com >
2021-03-12 08:46:05 +01:00
Calvin Rose
9eb4c59c04
Require opt-in behavior per script.
...
This means a binscript needs to indicate that it is a Janet script, and
then the user who is installing the script can choose whether or not to
do the magic shebang replacement.
2021-03-11 18:47:53 -06:00
Calvin Rose
0d42506cde
Merge branch 'master' of github.com:janet-lang/janet
2021-03-11 18:37:54 -06:00
Calvin Rose
c8a13ce475
Add --auto-shebang option to jpm.
2021-03-11 18:37:45 -06:00
Calvin Rose
05e3467d09
Merge pull request #655 from uvtc/patch-1
...
Update os.c
2021-03-11 18:12:54 -06:00
Calvin Rose
90639e5068
Merge pull request #658 from pyrmont/bugfix.jpm-realpath
...
Fix argument passing to os/realpath in jpm
2021-03-11 18:12:38 -06:00
Calvin Rose
73c7711c78
Merge pull request #657 from ffontaine/master
...
meson.build: defaults to c99 for "build.c_std"
2021-03-11 18:12:25 -06:00
Calvin Rose
78f6b6a507
Add auto-shebang functionality.
2021-03-11 18:10:33 -06:00
Michael Camilleri
84f0ab5356
Fix argument passing to os/realpath in jpm
2021-03-10 17:11:12 +09:00
Fabrice Fontaine
546437d799
meson.build: defaults to c99 for "build.c_std"
...
Since Meson 0.51, there are special build options for "native:true"
builds, prefixed with "build.". This change breaks cross builds
because `janet-boot/src_core_asm.c` is no longer built with `-std=c99`:
FAILED: janet-boot.p/src_core_asm.c.o
/usr/bin/gcc -Ijanet-boot.p -I. -I.. -I../src/include -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -pthread -DJANET_BOOTSTRAP -MD -MQ janet-boot.p/src_core_asm.c.o -MF janet-boot.p/src_core_asm.c.o.d -o janet-boot.p/src_core_asm.c.o -c ../src/core/asm.c
../src/core/asm.c: In function 'janet_disasm_bytecode':
../src/core/asm.c:866:5: error: 'for' loop initial declarations are only allowed in C99 mode
for (int32_t i = 0; i < def->bytecode_length; i++) {
^
Fixes:
- http://autobuild.buildroot.net/results/355e0992338a8d132050517f83a3884606b00529
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com >
2021-03-10 07:57:53 +01:00
John Gabriele
0f05aec563
Update os.c
...
Doc typo
2021-03-09 14:39:09 -05:00
Calvin Rose
c9097623d6
Add group-by and partition-by to the core.
...
Semantics are mostly emulated from Clojure.
2021-03-04 19:34:36 -06:00
Calvin Rose
6392b37c47
Merge branch 'master' of github.com:janet-lang/janet
2021-02-28 13:05:05 -06:00
Calvin Rose
4fcc8075d4
Release 1.15.3
2021-02-28 13:04:24 -06:00
Calvin Rose
b2d6a55335
Merge pull request #646 from pyrmont/bugfix.run-context-match
...
Fix call to match in run-context
2021-02-28 10:48:43 -06:00
Michael Camilleri
1fea5f8fe7
Fix call to match in run-context
2021-02-28 14:23:17 +09:00
Calvin Rose
d3e52a2afb
Fix makefile to attach build identifier.
2021-02-27 19:50:31 -06:00
Calvin Rose
d6ea1989cc
Merge branch 'master' of github.com:janet-lang/janet
2021-02-26 17:29:25 -06:00
Calvin Rose
96513665d6
Address #641 - add undef combinator.
...
The (undef rule :tag) combinator lets a user "scope" tagged captures.
After the rule has matched, all captures with tag :tag can no longer be
refered to by their tag. However, such captures from outside
rule are kept as is. If no tag is given, all tagged captures from rule
are unreferenced. Note that this doesn't `drop` the captures, merely
removes their association with the tag. This means subsequent calls to
`backref` and `backmatch` will no longer "see" these tagged captures.
2021-02-26 17:25:09 -06:00
Calvin Rose
b795d13f61
Merge pull request #642 from pyrmont/feature.run-context-location
...
Allow source location in run-context to be updated
2021-02-26 16:36:03 -06:00
Calvin Rose
970f9b3981
Merge pull request #643 from uvtc/patch-1
...
`sort` doc
2021-02-26 16:28:27 -06:00
John Gabriele
be7dab4d17
Update boot.janet
2021-02-23 22:30:42 -05:00
John Gabriele
0e44ce5cba
Update boot.janet
2021-02-23 22:26:53 -05:00
John Gabriele
1f8c2781dd
sort doc
...
Clarify doc for `sort` and `sorted`. Also in `sort`, changed arg name.
2021-02-23 22:24:59 -05:00
Michael Camilleri
f381a9c773
Check that new source location is a string
2021-02-22 12:50:44 +09:00
Michael Camilleri
855a9a01fc
Allow source location in run-context to be updated
2021-02-22 12:38:56 +09:00
Calvin Rose
a5f237993d
Don't fail testing when ev disabled.
2021-02-20 10:56:54 -06:00
Calvin Rose
c68264802a
Fix #638 - update fiber status in certain cases.
...
This fixes a regression from changes to janet_try. In some cases, we
would not update the status of a fiber when signaling, which left the
fiber's status as whatever it had previously. This could lead to strange
control flow issues.
2021-02-20 10:55:16 -06:00
Calvin Rose
742469a8bc
Address #640 .
...
Allow for a zero length match at the end of a string when using the
to or thru combinators.
2021-02-19 16:10:03 -06:00
Calvin Rose
92928d5c4f
Update definition of or.
2021-02-16 17:00:27 -06:00
Calvin Rose
8320e25d64
Merge pull request #639 from leahneukirchen/or
...
Fix or with zero arguments
2021-02-16 16:57:21 -06:00
Leah Neukirchen
c16a9d8463
Fix or with zero arguments.
...
The value is nil to be consistent for and/or and all/some.
Also add some tests for and/or.
2021-02-16 19:59:03 +01:00
Calvin Rose
f1819c916a
Fix build error for 1.15.2
2021-02-15 10:27:19 -06:00
Calvin Rose
dd14b24d2a
1.15.1 release.
2021-02-15 10:21:22 -06:00
Calvin Rose
050d7c12a3
Prepare for 1.15.1 release.
2021-02-15 10:19:24 -06:00
Calvin Rose
7e2c433abc
Fix #636
2021-02-14 14:34:52 -06:00
Calvin Rose
6713b23a65
Change behavior of empty env table passed to os/execute on windows.
2021-02-14 11:22:20 -06:00
Calvin Rose
60078e7950
Change os/execute implementation for windows.
2021-02-14 11:04:59 -06:00
Calvin Rose
69095fbb48
Merge pull request #633 from Alligator/master
...
Add missing argument to errorf in jpm
2021-02-10 17:51:47 -06:00
alligator
c88a3c64e3
Add missing argument to errorf
2021-02-10 22:45:43 +00:00
Calvin Rose
771b0d0ab1
Version bump.
2021-02-09 20:32:09 -06:00
Calvin Rose
c85310578b
Merge pull request #632 from sogaiu/tweak-spec-readint
...
Tweak spec_readint
2021-02-09 17:47:25 -06:00
sogaiu
60e2992158
Tweak spec_readint
2021-02-10 08:33:46 +09:00
Calvin Rose
2795e8a8b7
Update some sr.ht configs.
2021-02-08 18:26:04 -06:00
Calvin Rose
bdf14170a4
Get ready for 1.15.0 release.
2021-02-08 18:10:46 -06:00
Calvin Rose
10dcbc639a
Immediate instuctions will now call :compare method.
2021-02-08 11:53:25 -06:00
Calvin Rose
6a9bb0f4e4
Define immediate comparison instructions for non-integers.
...
Previous, the instructions were defined only for values that
fit into 32 bit integers for legacy reasons.
2021-02-08 11:41:48 -06:00
Calvin Rose
c941e5a8f4
Merge pull request #628 from yumaikas/master
...
Switch out `by` to `before?` in sort functions.
2021-02-05 18:17:52 -06:00
Calvin Rose
be91414c7a
Improve error message from janet_call.
...
List expected arity in error messages.
2021-02-05 18:01:52 -06:00
Calvin Rose
6839b603c8
x86 32 bit on windows.
2021-02-04 23:31:04 -06:00
Andrew Owen
926b68d62e
Switch out by to before? in sort functions.
...
Makes docstrings easier to read, and reduces confusion with sorted-by
and sort-by.
2021-02-04 22:28:46 -07:00
Calvin Rose
d374e90033
Update sort documentation.
2021-02-04 20:11:24 -06:00
Calvin Rose
b168b0758a
Fix #625 - no fancy mixing in number hasing
...
Just hash upper 32 bits with lower 32 bits. Trying to get too fancy
was causing slowdowns in very trivial cases. Assuming that all
combinations of 64 bits in a double are equally likely (suspect but
probably not that incorrect), the obvious method of xoring the top
32 bits with the lower 32 bits gives a uniform distribution.
2021-02-04 19:37:11 -06:00
Calvin Rose
54c66ecfc0
Merge pull request #622 from sogaiu/tweak-add-paths-docstring
...
Tweak module/add-paths docstring
2021-02-04 19:05:34 -06:00
sogaiu
1c158bd4ff
Tweak module/add-paths docstring
2021-02-03 21:11:16 +09:00
Calvin Rose
ff24143f54
Merge pull request #620 from sogaiu/marshal-doc
...
Tweak marshal docstring
2021-02-02 21:29:54 -06:00
Calvin Rose
dd117e81c2
Fix parser/insert.
...
We need to add the tuple wrapping code there as well.
2021-02-02 18:55:24 -06:00
sogaiu
f4744a18c6
Tweak marshal docstring
2021-02-02 15:00:57 +09:00
Calvin Rose
259d5fabd9
Update Makefile and build_win for better builds.
...
Use build/c/janet.c in both to prevent accidental inclusion
of build/janet.h (which may be stale) instead of the source headers.
2021-01-31 09:59:53 -06:00
Calvin Rose
d122a75efd
Cleanup boot.janet to be more like normal source code.
...
Don't use `undef`, just use private defines.
2021-01-31 09:08:39 -06:00
Calvin Rose
c9ea3ac304
Address #618 - clarify file/open docs.
2021-01-31 08:39:57 -06:00
Calvin Rose
c63fe6ef8a
Make flycheck follow GNU standards for errors.
2021-01-30 12:51:38 -06:00
Calvin Rose
72ec89dfe9
Change output format for line+col.
2021-01-30 11:33:15 -06:00
Calvin Rose
04805d106e
Simpler overflow check.
2021-01-29 20:11:38 -06:00
Calvin Rose
9aed578466
Address #616 Buffer extra overflow bug.
...
We should have a normal error instead of undefined behavior, wrap
around, or wait for realloc to fail.
2021-01-29 18:32:54 -06:00
Calvin Rose
77c5279296
Merge pull request #611 from subsetpark/doc-example-readme
...
Use a slightly clearer example of the `doc` fun in README
2021-01-24 17:25:37 -06:00
Calvin Rose
af75bf3b64
Update for sending streams to new threads.
2021-01-24 16:48:46 -06:00
Zach Smith
a5157e868b
Use a slightly clearer example of the doc fun in README
2021-01-24 15:44:34 -05:00
Calvin Rose
01a3d8f932
Address #478 - Disable core in static binaries/
...
Add --no-core option to quickbin, as well as :no-core option
to declare executable. This doesn't use the autodetection when
making binaries, instead opting for manual intervention.
2021-01-23 17:47:41 -06:00
Calvin Rose
f22472a644
Begin work on allowing small binaries.
2021-01-23 17:08:11 -06:00
Calvin Rose
5cac8bcf9f
Prepare for patch release.
2021-01-23 14:48:36 -06:00
Calvin Rose
a2801fbef9
Fix #610 - POLLHUP should cause us to continue reading.
2021-01-23 14:26:24 -06:00
Calvin Rose
0b14e913da
Merge branch 'master' of github.com:janet-lang/janet
2021-01-23 13:54:36 -06:00
Calvin Rose
85155bb2b4
Reference #478 Update peg/compile to use dyn for default grammar.
2021-01-23 13:54:02 -06:00
Calvin Rose
dd8de1e9ac
Merge pull request #609 from yumaikas/master
...
Change tracev to upscope instead of using let
2021-01-22 19:02:27 -06:00
Calvin Rose
c909835b0a
Update CHANGELOG.
2021-01-22 12:55:38 -06:00
Calvin Rose
a18aafedfd
Merge branch 'master' of github.com:janet-lang/janet
2021-01-22 12:53:28 -06:00
Calvin Rose
317ab6df6b
Add ev/thread and ev/do-thread.
...
- Also fix setting supervisor with net/accept-loop.
2021-01-22 12:52:45 -06:00
Andrew Owen
1fcaffe6b0
Change tracev to upscope, add test
2021-01-21 23:40:28 -07:00
Calvin Rose
3ae5c410dc
Merge pull request #606 from snimmagadda/master
...
Replace malloc + memset with calloc.
2021-01-21 12:59:21 -06:00
Sunil Nimmagadda
381128364e
Replace malloc + memset with calloc.
...
Fixes an overflow warning from gcc with '-Wstringop-overflow' on
NetBSD-current.
2021-01-21 19:35:57 +05:30
Calvin Rose
0acf167e84
Merge pull request #602 from pyrmont/feature.module-docstrings
...
Display module-level docstrings with (doc)
2021-01-20 22:11:38 -06:00
Calvin Rose
f7ca6deeb0
Merge pull request #603 from pepe/evcal-doc
...
Fix ev/call doc
2021-01-20 20:52:23 -06:00
Josef Pospíšil
251486e4aa
Fix ev/call doc
2021-01-20 20:31:41 +01:00
Michael Camilleri
c6467be60d
Conform display of path with existing display of source map info
2021-01-20 10:47:55 +09:00
Michael Camilleri
4dd512ad28
Use print-module-entry function to display docstring
2021-01-20 10:16:59 +09:00
Michael Camilleri
28076b9385
Display module-level docstrings with (doc)
2021-01-20 10:01:31 +09:00
Calvin Rose
49dcc816ae
Update os/shell to be non-blocking as well.
2021-01-18 16:44:22 -06:00
Calvin Rose
fa61c70103
Release 1.14.1
2021-01-18 11:51:42 -06:00
Calvin Rose
5ee6dbcdf4
Prepare for 1.14.1 release.
2021-01-18 11:43:53 -06:00
Calvin Rose
634219da2c
Fix windows swallowing IOCP events in many cases.
...
This fixes windows hanging on "failed" IO operations.
2021-01-17 20:41:59 -06:00
Calvin Rose
fbe3849b4b
Revert change to propagate op code.
2021-01-17 15:33:42 -06:00
Calvin Rose
bd2e335063
Allow 1 argument call of debug/stacktrace
...
Since fibers now track the last value signaled.
2021-01-17 13:55:40 -06:00
Calvin Rose
96262e7d87
Fix integer limit docs.
2021-01-17 13:44:53 -06:00
Calvin Rose
c5da87b860
Fix broken doc format.
...
Many assumptions in the parsing code that could cause infinite
loops, as well as assuming things were non-nil.
2021-01-17 11:36:48 -06:00
Calvin Rose
848d4a1498
Update man page.
2021-01-16 19:40:29 -06:00
Calvin Rose
70e23df6f8
Merge branch 'master' of github.com:janet-lang/janet
2021-01-16 18:29:41 -06:00
Calvin Rose
95af205681
Merge pull request #589 from yumaikas/master
...
Add support for a profile.janet
2021-01-16 18:29:00 -06:00
Calvin Rose
6dfb689d1f
Update versions to indicate 14.1
2021-01-16 15:54:27 -06:00
Calvin Rose
462e74ef87
Add os/proc-close to close all pipes associated with a subprocess.
...
This will not leak handles until the GC runs in most use cases.
2021-01-16 15:11:07 -06:00
Andrew Owen
c6aa536590
Clean up env dance
2021-01-16 12:47:50 -07:00
Calvin Rose
c79480342b
Remove unused defines.
2021-01-16 07:19:28 -06:00
Calvin Rose
a1cc5ca045
Fix #593 .
...
Also add ev/give-supervisor to the core.
2021-01-16 07:18:07 -06:00
Andrew Owen
7f74ff3dd7
Restore :source property to keep import* working at REPL
2021-01-15 02:59:17 -07:00
Andrew Owen
c4a95e9a1e
Update error handling, kill a bikeshed argument
2021-01-15 01:53:14 -07:00
Andrew Owen
71f9e2b1d7
Add support for a profile.janet
...
Add support for a profile.janet, along with a flag for disabling it's use.
2021-01-15 01:31:23 -07:00
Calvin Rose
16fe32215b
Merge pull request #584 from sogaiu/tweak-file-docs
...
Tweak file docs
2021-01-13 21:41:33 -06:00
Calvin Rose
dd7342a6cf
Merge pull request #583 from sogaiu/tweak-debug-docs
...
Tweak debug/stack docs
2021-01-13 21:41:26 -06:00
Calvin Rose
35c88d10cd
Merge pull request #582 from sogaiu/tweak-parser-docs
...
Tweak parser docs
2021-01-13 21:41:09 -06:00
Calvin Rose
42532de0eb
Merge pull request #585 from sogaiu/tweak-os-docs
...
Tweak os docs
2021-01-13 21:41:01 -06:00
sogaiu
122e2a9378
Tweak os docs
2021-01-14 08:44:56 +09:00
sogaiu
33c9395d79
Tweak file docs
2021-01-14 08:33:04 +09:00
sogaiu
fc49aa359c
Tweak debug/stack docs
2021-01-14 07:47:50 +09:00
sogaiu
fcf37942a7
Tweak parser docs
2021-01-14 07:31:20 +09:00
Calvin Rose
9b42d5a5e9
Merge pull request #579 from sogaiu/tweak-type-docs
...
Tweak type docs
2021-01-13 12:26:30 -06:00
Calvin Rose
ba92dfcbe9
Merge pull request #580 from sogaiu/tweak-update-docs
...
Tweak update docs
2021-01-13 12:26:10 -06:00
Calvin Rose
fd03603adb
Merge pull request #577 from sogaiu/tweak-expand-path-docs
...
Tweak module/expand-path docs
2021-01-13 12:25:55 -06:00
Calvin Rose
2008ddf8a8
Merge pull request #578 from sogaiu/tweak-disasm-docs
...
Tweak disasm docs
2021-01-13 12:25:30 -06:00
sogaiu
c56b876bfe
Tweak update docs
2021-01-13 23:04:06 +09:00
sogaiu
c4957d5dfb
Tweak type docs
2021-01-13 22:59:43 +09:00
sogaiu
068bd33afb
Tweak disasm docs
2021-01-13 22:27:03 +09:00
sogaiu
e9bd108be9
Tweak module/expand-path docs
2021-01-13 22:16:54 +09:00
Calvin Rose
4f2d1cdc00
Go back to a single supervisor channel per fiber.
...
We now also use the fiber mask to figure out which flags to wait for.
2021-01-12 21:35:28 -06:00
Calvin Rose
61cca10cf6
Allow iterating through the properties of core abstract types.
2021-01-11 23:14:07 -06:00
Calvin Rose
dfbdd17dce
Add doc-of function to core for reverse documentation lookup.
2021-01-11 20:32:26 -06:00
Calvin Rose
9078d3bd37
Update CHANGELOG.md
2021-01-11 18:54:50 -06:00
Calvin Rose
5e1a8c86f9
Add more network and subprocess testing with redirection.
2021-01-11 18:32:56 -06:00
Calvin Rose
bf01bf631d
More work on windows networking code.
...
Remove use of WSARecv and WSASend since for whatever reason
they seem suspect. We may want to revisit this later.
2021-01-11 18:00:31 -06:00
Calvin Rose
80c5ba32b5
Remove wait from CI testing for networking tests.
...
We want to expose any existing race conditions.
2021-01-11 15:55:12 -06:00
Calvin Rose
874cc79443
Fix #571 - fiber/status and fiber/new docstrings.
2021-01-11 15:44:46 -06:00
Calvin Rose
3883460202
Remove length checks to a number of core functions.
...
This lets them be more generic and implemented over a wider range of
data types, such as fibers.
2021-01-11 15:01:41 -06:00
Calvin Rose
f0dbc2e404
Fix subprocess spawning on windows.
...
Also fix (:read stream :all)
2021-01-11 11:10:23 -06:00
Calvin Rose
4df1ac5b23
Fix some issues in os.c to diagnose improve windows subprocess code.
2021-01-11 09:06:39 -06:00
Calvin Rose
1f6d0d342b
Fix #566 - bad docstring and bad arity for net/flush.
2021-01-10 12:02:28 -06:00
Calvin Rose
4625c28e6a
Merge branch 'master' of github.com:janet-lang/janet
2021-01-10 11:59:41 -06:00
Calvin Rose
5536ba20a8
Move socket setup code from ev.c to net.c
2021-01-10 11:58:47 -06:00
Calvin Rose
ef398e9036
Merge pull request #567 from Nananas/patch-1
...
Minor typo in ev/rselect docstring
2021-01-10 11:47:37 -06:00
Thomas Dendale
0c73c3f1cd
Minor typo in ev/rselect docstring
...
`ev/choice` is actually called `ev/select`
2021-01-10 16:42:52 +01:00
Calvin Rose
7ae7984f3c
Allow yielding from root fiber to ev loop.
2021-01-09 23:35:34 -06:00
Calvin Rose
8286b33c52
Add event-chan argument to ev/go.
...
The event-chan is the final piece of the puzzle for fibers, and
will be pushed to when a fiber yields to the event loop.
2021-01-09 23:33:23 -06:00
Calvin Rose
475775cc9d
Add a "new_channel" for root fibers.
...
When new fibers are scheduled on the event loop, this new_channel
receives the newly created fibers. This lets a fiber track which fibers
have been added and let's a user implement a supervisor.
Fix formatting.
2021-01-09 18:33:40 -06:00
Calvin Rose
11067d7a56
Update module and rem operator for int types.
2021-01-09 14:47:43 -06:00
Calvin Rose
5b05da65f0
Allow wrap around on u64.
...
This lets some math work as expected.
2021-01-09 12:43:33 -06:00
Calvin Rose
444e630783
Fix formatting.
2021-01-09 10:14:20 -06:00
Calvin Rose
8951b8de7a
Inherit the supervisor channel from the root fiber if not given.
2021-01-08 16:32:23 -06:00
Calvin Rose
2abb87eb63
Add space in docstring.
2021-01-07 18:57:13 -06:00
Calvin Rose
32e8ac912d
Merge branch 'master' of github.com:janet-lang/janet
2021-01-07 18:08:08 -06:00
Calvin Rose
e403fb4652
Do not try and preload imports that are relative.
2021-01-07 18:07:47 -06:00
Calvin Rose
daa37c22f5
Merge pull request #551 from pepe/remove-redundant-do
...
Remove redundant do
2021-01-07 10:38:21 -06:00
Josef Pospíšil
5a2a134c95
Remove redundant do
2021-01-07 14:38:58 +01:00
Calvin Rose
b9acb6dfa5
Update CHANGELOG.md
2021-01-06 23:25:00 -06:00
Calvin Rose
4e7ad3c7ce
Add initial implementation for supervisor channels.
...
Supervisor channels are a simple concept to more efficiently
enable dynamic, structure concurrency. When a top-level fiber
completes (or errors), it will push itself to it's supervisor
channel if it has one (instead of printing a stacktrace). This
let's another fiber poll a channel and "supervise" a set of fibers.
2021-01-06 23:19:22 -06:00
Calvin Rose
ee0e1a2342
Remove jpm.bat from windows dist.
...
It is still present in the MSI.
2021-01-06 19:36:37 -06:00
Calvin Rose
f206b476d1
Fix #550 - add varfn to safe forms for flycheck.
2021-01-06 17:31:08 -06:00
Calvin Rose
dd2595c53f
Merge branch 'master' of github.com:janet-lang/janet
2021-01-06 17:27:50 -06:00
Calvin Rose
545df28d71
Add flycheck function to core.
...
Also make flychecking work with stdin out of the box.
2021-01-06 17:27:17 -06:00
Calvin Rose
16f80b78cf
Merge pull request #546 from pepe/doc-thread-new-loop
...
Update doc for thread/new and remove ws in loop's
2021-01-05 20:31:46 -06:00
Calvin Rose
147bcce01b
Merge pull request #549 from pyrmont/docs.string-find-all-typo
...
Fix typos in string/find-all documentation
2021-01-05 20:31:12 -06:00
Calvin Rose
f5877ac6d1
Revert makefile.
2021-01-05 20:29:50 -06:00
Calvin Rose
adc41e31f4
Address #547 - don't drop references.
...
Keep a separate stack for tagged references. May cause pegs to
use more memory but makes the backref and backmatch features much more
powerful.
Also disables the second stack if backref and backmatch are not used in the peg.
2021-01-05 20:27:15 -06:00
Michael Camilleri
2e555a930f
Fix typos in string/find-all documentation
2021-01-06 10:14:49 +09:00
Calvin Rose
bcba0c0279
Fix #548 - string/split bug.
...
Also update docstrings for string/find. The 'skipping'
behavior that was documented only applies to to string/replace-all.
2021-01-05 18:54:51 -06:00
Josef Pospíšil
c7f382add6
Update doc for thread/new and remove ws in loop's
2021-01-04 18:29:00 +01:00
Calvin Rose
665b1e68d5
Pluralize arity compile warning.
2021-01-03 20:15:51 -06:00
Calvin Rose
2ca9300bf7
Add sort tests.
2021-01-03 16:45:37 -06:00
Calvin Rose
81f62b246c
Merge pull request #545 from felixr/master
...
Revert my buggy hybrid sort
2021-01-03 16:39:23 -06:00
Calvin Rose
87badc71d2
Remove :generate verb from loop.
...
Instead, one case use `:in` as with otehr data structures.
2021-01-03 16:38:38 -06:00
Calvin Rose
e5242c67ff
Update changelog and documentation.
2021-01-03 16:30:43 -06:00
Calvin Rose
4355420994
Remove function eachy.
...
Instead use `each`.
2021-01-03 16:19:23 -06:00
Calvin Rose
c357af02c2
Allow iterating over fibers with each and similar.
2021-01-03 16:17:36 -06:00
Felix Riedel
19576effbe
Revert "Tweak sort: use insertion sort for small arrays"
...
This reverts commit 0ea77cabfb .
2021-01-03 20:09:50 +00:00
Calvin Rose
ecc6eb7497
Don't fail jpm if os/realpath fails.
2021-01-03 13:09:41 -06:00
Calvin Rose
d0ac318980
Don't print to stderr in Makefile to detect version. Fix #544
2021-01-03 12:59:16 -06:00
Calvin Rose
7b030fe70d
Fix some return issues.
2021-01-03 11:54:31 -06:00
Calvin Rose
115556fcf2
Merge branch 'ev_execute'
2021-01-03 11:48:00 -06:00
Calvin Rose
9760cf1f4e
Fix MSVC warning.
2021-01-03 11:47:29 -06:00
Calvin Rose
47bb7fd21b
Begin implementing async subproccesses for windows.
2021-01-03 11:21:44 -06:00
Calvin Rose
1c7ed8ca48
Use PostQueuedCompletionStatus for threaded calls on windows.
...
Ore efficient than using a self pipe.
2021-01-03 11:08:12 -06:00
Calvin Rose
6b268c5df4
find-index now takes optional default.
2021-01-03 09:33:52 -06:00
Calvin Rose
62f783f1dc
Merge branch 'master' of github.com:janet-lang/janet
2021-01-03 09:26:31 -06:00
Calvin Rose
61c65f3df1
Fix valgrind warning.
2020-12-31 16:30:54 -06:00
Calvin Rose
05166b3673
Fix proc getter bug.
2020-12-31 16:23:20 -06:00
Calvin Rose
0a1c93b869
Add ev api for making threaded calls.
...
Easy way to make arbitrary functions in C async.
2020-12-31 16:12:42 -06:00
Calvin Rose
788f91a36f
Remove unneeded book keeping for sub processes.
...
Since we are not using signals we no longer need some bookkeeping.
2020-12-31 11:52:12 -06:00
Calvin Rose
c831ecf5d2
Working implementation of process waiting with threads.
...
Does not require all sorts of signal handling code
that is not thread-safe and can "steal processes".
However, there is a much simpler way to add this functionality
by creating a new stream and thread for each subprocess when it is
waited on. This is perhaps _slightly_ less efficient but oh so much
simpler, since we can reuse all of our concepts from streams and there
is no need to implement a whole system around the selfpipe.
2020-12-31 11:22:18 -06:00
Calvin Rose
9e42ee153c
Merge branch 'master' into HEAD
2020-12-30 12:19:13 -06:00
Calvin Rose
d457aa5951
Deprecate file/popen.
...
os/spawn is the prefered way of creating a subprocess and
communicating with it.
2020-12-30 10:22:45 -06:00
Calvin Rose
ab37ee6ebb
Add :all option to ev/read.
...
Brings ev/read more in line with file/read.
2020-12-29 20:37:59 -06:00
Calvin Rose
8655530b19
Rename predicates in module/paths
2020-12-29 19:52:26 -06:00
Calvin Rose
27b1f59aa9
Change Ctrl-C and move old behavior to Ctrl-Q
...
This lets Janet be a better unix citizen and lets Ctrl-C
raise an interrupt. Trying to make Janet behave superficially
like a shell by overriding Ctrl-C is not helpful.
2020-12-29 16:20:37 -06:00
Calvin Rose
cc2cc4db43
Merge pull request #541 from sogaiu/match-doc-formatting
...
Tweak match docstring
2020-12-29 13:10:35 -06:00
Calvin Rose
20bcd95279
Merge commit '0ea77cabfb30afc15433581f5888171c1f65aafd'
2020-12-28 12:20:21 -06:00
Calvin Rose
d7954be5e5
Update docstring for os/open.
2020-12-28 11:00:15 -06:00
Felix Riedel
0ea77cabfb
Tweak sort: use insertion sort for small arrays
2020-12-28 16:06:48 +00:00
Felix Riedel
0d46352ff4
Revert to better performing number hash.
2020-12-27 14:05:40 +00:00
sogaiu
ffa0d5fe45
Tweak match docstring
2020-12-27 13:42:22 +09:00
Calvin Rose
a2c837a99c
Merge remote-tracking branch 'felixr/master' into master
2020-12-26 20:06:34 -06:00
Calvin Rose
13d8d11011
Try new number hashing with frexp.
...
This may be a bit slower in some cases but generally should
have much better hashing for numbers.
2020-12-26 16:54:14 -06:00
Calvin Rose
2357b6162f
Update test-install target.
2020-12-26 15:42:13 -06:00
Calvin Rose
b4f242193d
Improve hash function for numbers.
2020-12-26 15:38:04 -06:00
Calvin Rose
7242ee0186
Merge pull request #540 from felixr/better-quicksort
...
Improve quicksort to avoid worst case performance on sorted input
2020-12-26 15:23:01 -06:00
Felix Riedel
3e742ffc4c
Improve quicksort to avoid worst case performance.
...
The current implementation will have quadratic behaviour for already
sorted arrays because it picks the last element as pivot. In an sorted
array this splits the array repeatedly into the biggest value and all
other values.
The implementation in this commit uses the *median of three* as pivot.
`janet -e "(sort (range 10000))"` to reproduce quadratic behaviour.
2020-12-26 19:18:17 +00:00
Felix Riedel
2ec12fe06f
Improve hashing of numbers
...
Using an integer hash (https://stackoverflow.com/a/12996028/60617 ) on
the number casted to int32 combined with lower bits of the number.
2020-12-26 13:09:11 +00:00
Felix Riedel
c76e0ae685
Use boost's way of combining hash values for arrays and kv pairs.
...
`seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);`
from https://www.boost.org/doc/libs/1_35_0/doc/html/boost/hash_combine_id241013.html
The current way of combining hashes peforms poorly on hash values of
numbers. Changing the way hashes are combined canlead to a significant speed up:
```
time janet_new -e '(def tbl @{}) (loop [x :in (range 1000) y :in (range 1000)] (put tbl {0 x 1 y} true))'
3.77s user 0.08s system 99% cpu 3.843 total
time janet_orig -e '(def tbl @{}) (loop [x :in (range 1000) y :in (range 1000)] (put tbl {0 x 1 y} true))'
48.98s user 0.15s system 99% cpu 49.136 total
```
2020-12-26 13:05:03 +00:00
Calvin Rose
25ded775ad
Add array/clear.
...
Also improve map, find-index, and find to work on data structures
which do not defined length.
2020-12-18 12:37:58 -06:00
Calvin Rose
cae4f19629
Merge pull request #532 from pyrmont/feature.parser-line-col-setting
...
Update (parser/where) to support optional line and column
2020-12-15 19:03:25 -06:00
Michael Camilleri
04f6c7b156
Clarify docstring of parser/where
2020-12-15 16:41:45 +09:00
Michael Camilleri
77b79e9899
Update (parser/where) to support optional line and column
2020-12-15 14:12:33 +09:00
Calvin Rose
a55354357c
Make dofile error if source file errors.
...
This should make dofile a bit easier to use.
It also means that import properly raises errors when
things go bad.
2020-12-14 08:23:06 -06:00
Calvin Rose
392d5d51df
Fix build info for 1.13.1
2020-12-13 11:59:52 -06:00
Calvin Rose
9bc996a630
Prepare for 1.13.0 initial release.
2020-12-13 11:17:10 -06:00
Calvin Rose
7b709d4c68
Prevent buffer/trim from shrinking buffer to 0 bytes as well.
2020-12-13 09:38:35 -06:00
Calvin Rose
eab5f67c5c
Fix buffer with NULL data pointer issue.
...
Simply prevent buffers from ever having a NULL data pointer.
2020-12-13 09:33:57 -06:00
Calvin Rose
6020106000
Address #529
2020-12-11 19:21:54 -06:00
Calvin Rose
12f470ed10
Use :_name instead of :name for printing tagged tables.
2020-12-11 18:28:09 -06:00
Calvin Rose
945cbcfad6
Tail recursive match implementation.
...
This implementation uses multiple passes on patterns
to remove the need for a sentinel value to check if there was a match.
This also re-uses extracted subpatterns for complicated patterns.
2020-12-10 08:35:34 -06:00
Calvin Rose
d53007739e
Invert read/write bits on pipe in os/execute.
...
It was backwards, breaking this functionality.
2020-12-09 19:04:05 -06:00
Calvin Rose
6eaf8272e1
Merge pull request #525 from uvtc/patch-1
...
light markup in some docs in corelib
2020-12-07 15:57:09 -06:00
Calvin Rose
6fb83dce06
Merge pull request #526 from sogaiu/tweak-comment
...
Tweak comment for janet_fiber_popframe
2020-12-07 15:56:25 -06:00
John Gabriele
52addc877d
Use xs
2020-12-07 14:07:13 -05:00
sogaiu
53a5f3d2dc
Tweak comment for janet_fiber_popframe
2020-12-07 12:23:27 +09:00
Calvin Rose
711ee5a36d
Merge branch 'preload'
2020-12-06 21:06:59 -06:00
Calvin Rose
cd09b696b5
Add :preload loader.
2020-12-06 21:06:17 -06:00
John Gabriele
df1ca255a9
parts/xs --> pieces
2020-12-06 21:29:30 -05:00
Calvin Rose
811a5d93f4
Prevent some potential bad characters in test out.
2020-12-06 17:10:18 -06:00
John Gabriele
adbe361b9b
light markup in some docs in corelib
2020-12-06 17:51:48 -05:00
Calvin Rose
0f16f21677
Make builds deterministic again.
...
Also prevent marshal from creating multiple copies of
a function - (marshal function pointer before function def pointer).
2020-12-06 16:32:23 -06:00
Calvin Rose
aa0de01e5f
Fix some formatting and undefined behavior.
2020-12-06 14:33:08 -06:00
Calvin Rose
785757f2f6
Remove pthreads from shell.c and update bsd build.
2020-12-06 13:51:06 -06:00
Calvin Rose
01120dfc46
Try and fix openbsd st.ht build.
...
Oneline meson configs, remove extra `cd janet`.
2020-12-06 11:57:40 -06:00
Calvin Rose
a119eb4ef0
Merge branch 'master' of github.com:janet-lang/janet
2020-12-06 11:47:46 -06:00
Calvin Rose
0aa4c3d217
Consolidate sr.ht builds to 1-per-platform.
...
This generally makes more sense from an infrastructure
point of view and works around 4 builds per push limit of sr.ht.
2020-12-06 11:46:45 -06:00
Calvin Rose
3c0cc59d77
Rename some srht build files.
2020-12-06 11:22:35 -06:00
Calvin Rose
7e1d095996
Merge pull request #522 from pyrmont/docs.keep-docstring
...
Clarify description of keep
2020-12-05 14:31:58 -06:00
Calvin Rose
cfa9fb6ee4
Update changelog.
2020-12-05 10:36:27 -06:00
Calvin Rose
9d23192614
Add ev/deadline and ev/with-deadline.
...
This should be more useful than timeouts in real-world
use cases. The deadline system is based on fibers and is target
to much more coarse-grained (and therfor reliable) timeouts than things
like ev/sleep and timeout arguments.
2020-12-05 10:32:34 -06:00
Michael Camilleri
7c1a52ae65
Use 'different from' in preference to 'different to'
2020-12-05 16:43:44 +09:00
Michael Camilleri
9aa1b9c740
Clarify description of keep
2020-12-05 16:02:36 +09:00
Calvin Rose
c4a4916055
Address #500 - update docs and add buffer/push
...
This updates the documentation and adds a function buffer/push, which
is a more useful function than buffer/push-string or buffer/push-byte by
combining both.
2020-12-04 17:56:47 -06:00
Calvin Rose
b402e0671a
Merge pull request #514 from uvtc/patch-2
...
boot.janet, fix possible typo
2020-12-04 17:40:46 -06:00
Calvin Rose
8144f83b66
Merge pull request #516 from uvtc/patch-4
...
doc for identity
2020-12-04 17:40:31 -06:00
Calvin Rose
cd2a55e268
Merge pull request #513 from uvtc/patch-1
...
boot.janet, cond doc
2020-12-04 17:38:02 -06:00
Calvin Rose
f92b5d69c8
Merge pull request #515 from uvtc/patch-3
...
C-style (hyphenate)
2020-12-04 17:37:24 -06:00
Calvin Rose
a8c21459c3
Merge pull request #517 from uvtc/patch-5
...
boot.janet, compare*, light formatting
2020-12-04 17:37:06 -06:00
Calvin Rose
4789b4c9f3
Merge pull request #520 from uvtc/patch-6
...
corelib.c, describe, add hyphen
2020-12-04 17:31:15 -06:00
Calvin Rose
ee1cd6f151
Merge pull request #521 from sogaiu/parser-with-a-colon
...
Minor tweak in changelog
2020-12-04 17:30:59 -06:00
sogaiu
dfcda296a3
Minor tweak in changelog
2020-12-02 17:52:29 +09:00
John Gabriele
4d38fcb289
corelib.c, describe, add hyphen
2020-12-01 11:56:53 -05:00
Calvin Rose
cbdea8f331
Make os/execute cooperate with ev module.
...
os/execute, os/proc-wait do not block (currently posix only).
This uses the self-pipe trick to turn signals into a pollable entity.
2020-11-29 15:36:21 -06:00
John Gabriele
51d6a13510
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:31:01 -05:00
John Gabriele
7b4eeecd9f
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:30:48 -05:00
John Gabriele
82eff7e082
Update src/boot/boot.janet
...
Agreed. That's more clear.
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:30:26 -05:00
John Gabriele
b922e36071
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:18:19 -05:00
John Gabriele
7c75aeaad2
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:17:38 -05:00
John Gabriele
2db9323671
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:17:23 -05:00
John Gabriele
31ae93de19
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:17:12 -05:00
John Gabriele
a81e9f23f0
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:16:55 -05:00
John Gabriele
59f09a4386
Update src/boot/boot.janet
...
omit needless word
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:15:55 -05:00
John Gabriele
53400ecac1
boot.janet, compare*, light formatting
...
Since those represent code, they should get backticks.
2020-11-28 14:41:42 -05:00
John Gabriele
1b8928a8ec
doc for identity
...
This function only takes one argument anyway, and errors if you try to pass more.
2020-11-28 14:35:17 -05:00
John Gabriele
e706494893
C-style
2020-11-28 14:29:13 -05:00
John Gabriele
894aea7ce7
boot.janet, fix possible typo
...
Possible typo?
2020-11-28 14:25:10 -05:00
John Gabriele
87167a21c9
boot.janet, cond doc
...
Arranged this way seems to make more sense.
2020-11-28 14:18:35 -05:00
Calvin Rose
7c8f5ef811
Merge branch 'master' of github.com:janet-lang/janet
2020-11-28 12:18:51 -06:00
Calvin Rose
7aa4241662
Add testing for the new reindent behavior.
...
This also provides a reference function to reimplement
the behavior in Janet.
2020-11-28 12:18:36 -06:00
Calvin Rose
56a915b5b1
Long strings now autoindent contents - doc-format is simpler.
...
No need to try and auto detect the base indentation - it is 0.
This will be taken care of by the parser.
2020-11-28 10:04:25 -06:00
Calvin Rose
90a0dfa35f
Merge pull request #512 from timgates42/bugfix_typo_source
...
docs: fix simple typo, soucre -> source
2020-11-27 16:54:34 -06:00
Tim Gates
128d72785f
docs: fix simple typo, soucre -> source
...
There is a small typo in src/core/features.h.
Should read `source` rather than `soucre`.
2020-11-28 09:45:46 +11:00
Calvin Rose
21a6017547
typo
2020-11-27 12:27:44 -06:00
Calvin Rose
a0964d44d5
Fix some valgrind errors.
...
A null pointer dereference and a memory leak with the line/col mapping.
2020-11-27 12:21:23 -06:00
Calvin Rose
fb0859dfe6
Merge remote-tracking branch 'pyrmont/feature.markdown-docstrings' into longstring-autoindent
2020-11-27 12:13:45 -06:00
Calvin Rose
dadd6037bb
Merge branch 'master' into longstring-autoindent
2020-11-27 10:40:10 -06:00
Michael Camilleri
6f3eff3258
Add example docstring
2020-11-27 18:29:41 +09:00
Michael Camilleri
02224d5aa9
Fix bugs in parsing logic
2020-11-27 18:28:58 +09:00
Calvin Rose
bfd2845077
Add merge-module to core.
...
This is a little utility used for manually importing modules.
It is responsible for taking the output of dofile, run-context, or
require and merging into another environment as if import was called.
2020-11-27 00:16:54 -06:00
Michael Camilleri
ba2e0489e6
Add initial implementation of docstring formatter
2020-11-27 15:07:38 +09:00
Calvin Rose
ca7c5b8b10
ev/call uses current env as prototype of environment.
2020-11-26 21:13:41 -06:00
Calvin Rose
6c43489fb2
Fix #508 - nil fiber environment.
...
run-context did not handle a nil environment well, so that was fixed
and ev/call inherits the environment when creating the fiber.
2020-11-26 19:04:45 -06:00
Calvin Rose
d76f671d37
Update changelog and make arg to peg's error optional.
2020-11-26 18:57:24 -06:00
Calvin Rose
776ce586bc
Add line and column combinators to peg.
...
These capture the line and column number of the current position
in the matched text. This is useful for error reporting as well
as indentation checking.
This works by lazily creating an index on first use that stores all
newline character indices in order. We can then do a binary search on
this to get both line number and column number in log(n) time.
This is good enough for most use cases and doesn't slow down the common case at all
- these will not be commonly used patterns in a hot loop so it is not worth to try and
optimize this at all. Constant time look up should be possible but at
the cost of complicating code and slowing down all matching to check for
new lines.
2020-11-26 18:32:56 -06:00
Calvin Rose
adc3066dc8
Update doc-format and boot.janet docstrings.
...
Make doc-format respect leading indents, increase the default format
width to better accommodate markdown formatted documentation. We still
need to support single line style doc strings, such as those used
for most c functions which can be a single line of much longer than
80 or 120 characters.
Consecutive whitespace internal to lines is not preserved, though.
2020-11-26 14:58:36 -06:00
Calvin Rose
7fd2da1096
Add code in parser to automatically indent long strings.
...
Leading spaces are stripped based on the column index of the first
backtick character in the first delimiter. If there are
characters that are not newline or space before that column in the
string, then the behavior is the same as the old behvaior - no
re-indentation is performed.
2020-11-26 13:20:58 -06:00
Calvin Rose
451340e4c0
Update docstrings in boot.janet ( #506 )
...
Elaborate on usage of reduce and accumulate.
2020-11-26 10:34:51 -06:00
Calvin Rose
a3e812b86d
Fix #505 - bat int64 parsing.
...
Fixes an off-by-1 error.
Also makes windows testing hopefully a bit less flaky.
2020-11-25 09:45:46 -06:00
Calvin Rose
a3f98091c4
Fix #509
...
janet_fiber returns NULL if there is a bad arity, check that before
continuing.
2020-11-23 15:28:28 -06:00
Calvin Rose
6720b34868
Don't use peg for patch tool.
2020-11-18 19:37:18 -06:00
Calvin Rose
781ed0dc67
Merge branch 'master' of github.com:janet-lang/janet
2020-11-18 19:36:12 -06:00
Calvin Rose
8f00848c7b
Fix build issues on windows by using a size_t instead of int.
2020-11-18 19:31:20 -06:00
Calvin Rose
53aa19a916
Several changes to move pipe creation back into ev.c
2020-11-18 10:53:36 -06:00
Calvin Rose
2dc04d2957
On install, merge janetconf.h into janet.h
...
This results in a cleaner amalgmated build
2020-11-17 09:53:12 -06:00
Calvin Rose
306bdee673
Merge branch 'master' of github.com:janet-lang/janet
2020-11-16 18:47:28 -06:00
Calvin Rose
cff52ded58
Add JANET_ASYNC_EVENT_CANCEL
...
also fix bug that could cause event loop to hang.
2020-11-16 18:46:59 -06:00
Calvin Rose
fbe658a724
Merge pull request #503 from sogaiu/boot-janet-docstring-tweaks
...
Tweak docstrings in boot.janet
2020-11-16 17:03:54 -06:00
Calvin Rose
f9d0eb47b7
Merge branch 'master' of github.com:janet-lang/janet
2020-11-16 16:51:29 -06:00
Calvin Rose
078f50d45a
When reading from a stream, EPIPE is considered EOS.
...
Before, EPIPE caused an error, but in most cases it is better
to consider it an end of stream. In the future, we may want to allow
cusomtization of this behavior with flags on the stream but for now
let's keep it simpler.
2020-11-16 16:49:27 -06:00
Calvin Rose
974a45c804
When reading from a stream, EPIPE is considered EOS.
...
Before, EPIPE caused an error, but in most cases it is better
to consider it an end of stream. In the future, we may want to allow
cusomtization of this behavior with flags on the stream but for now
let's keep it simpler.
2020-11-16 16:42:09 -06:00
Calvin Rose
760e4e3d68
Add upscope special form.
...
Upscope is similar to do, but does not introduce a new lexical scope.
2020-11-16 16:41:27 -06:00
Calvin Rose
9ec5689d6b
Don't use gcroot/unroot for tracking IO operations.
...
This could have bad effects in higher load situations, and
duplicates code. It is better to keep a dedicated list of
scheduled IO operations which can be efficiently added and
removed from. It also provides and easy way to enumerate
scheduled IO operations.
2020-11-16 09:30:04 -06:00
sogaiu
c8b72431a3
Some more
2020-11-16 16:13:28 +09:00
sogaiu
0eb913fb9a
A couple more tweaks
2020-11-16 14:14:51 +09:00
sogaiu
fce27cb2e8
Tweak docstrings in boot.janet
2020-11-16 14:03:26 +09:00
Calvin Rose
1b6272db2e
Fix windows ifdef.
2020-11-15 19:55:58 -06:00
Calvin Rose
b1c0ad5e42
CD into source directory in build recipe.
2020-11-15 19:50:33 -06:00
Calvin Rose
3f7cdcb6a7
Add meson test build for epoll.
2020-11-15 19:47:11 -06:00
Calvin Rose
a25b030e36
Fix EPOLL implementation.
2020-11-15 19:40:47 -06:00
Calvin Rose
717fac02d1
Update janet.h for janet_thread_current
2020-11-15 16:12:02 -06:00
Calvin Rose
dcf8ba0edb
Update CHANGELOG.md
2020-11-15 15:35:50 -06:00
Calvin Rose
3ab2ae130b
Address #495 Add :read and :parser to run-context.
2020-11-15 15:26:16 -06:00
Calvin Rose
6e6900fa3a
os/execute and os/spawn can take streams.
2020-11-15 12:17:29 -06:00
Calvin Rose
d7af4596e1
Move math.h include out of windows ifdef
2020-11-15 10:21:37 -06:00
Calvin Rose
1759151875
Change suite 9 test a bit.
2020-11-15 10:12:10 -06:00
Calvin Rose
a7ed3dea4b
Remove some flags in os/open.
2020-11-15 10:06:20 -06:00
Calvin Rose
cdcb774dc8
Add os/pipe and os/open.
...
ev/pipe -> os/pipe, and os/open is a wrapper
around the open system call.
2020-11-15 09:57:29 -06:00
Calvin Rose
d199c817dc
Broken Pipe error on windows should just be end of stream.
2020-11-14 16:03:51 -06:00
Calvin Rose
dc51bd09f7
Make sure all test logs go to the same stream.
2020-11-14 15:56:48 -06:00
Calvin Rose
139e3fab25
Invert status check for (Read/Write)File
2020-11-14 15:52:01 -06:00
Calvin Rose
7a98f9aa02
Improve windows error messages on write failures.
2020-11-14 15:48:21 -06:00
Calvin Rose
b53dd67e74
Use custom pipe implementation for overlapped io.
2020-11-14 15:44:19 -06:00
Calvin Rose
e546731093
ev_lasterr -> janet_ev_lasterr
2020-11-14 15:24:13 -06:00
Calvin Rose
d50c4ef6da
Try again for windows build.
2020-11-14 15:01:52 -06:00
Calvin Rose
7d0b1955a2
typo
2020-11-14 14:55:26 -06:00
Calvin Rose
16cf7681f0
Fix some windows issues.
2020-11-14 14:40:39 -06:00
Calvin Rose
12f09ad2d7
Add ev/pipe and move stream code into ev.c
...
Also adds a lot to the C API and changes things up.
2020-11-14 14:29:11 -06:00
Calvin Rose
b3e88a8d80
Move read/write functions into ev.c from net.c
...
This code can also be used for non-network streams.
2020-11-14 11:48:23 -06:00
Calvin Rose
761273bcc4
Add janet_thread_current() to C api.
2020-11-12 18:42:41 -06:00
Calvin Rose
1a75f68cb2
Fix windows build.
2020-11-12 14:52:02 -06:00
Calvin Rose
1b0edf54f1
Fix gc leak.
...
Rather than trying to be clever with pinning/unpinning, always
mark the root fiber and that should serve as thei singular common root in almost
all cases.
2020-11-12 14:29:38 -06:00
Calvin Rose
caa6576719
Fix formatting.
2020-11-11 15:35:44 -06:00
Calvin Rose
93bd2c11fa
Merge pull request #502 from pepe/fix-net-server-fiber
...
Fix net server fiber
2020-11-11 15:33:42 -06:00
Josef Pospíšil
2be09790a9
Change fix with ev/call
2020-11-10 10:39:33 +01:00
Josef Pospíšil
bf6eae711a
Fix adding handler to loop with fiber
2020-11-10 10:32:47 +01:00
Calvin Rose
69b68c0091
Update changelog.
2020-11-09 11:24:28 -06:00
Calvin Rose
6f1d5d3b73
Add net/listen and net/accept-loop.
...
These are the elements that make up net/server, which has been moved
into pure Janet instead.
2020-11-09 11:18:09 -06:00
Calvin Rose
099a912992
Fix posix regression.
2020-11-08 19:48:44 -06:00
Calvin Rose
56b1ea3726
Include math.h to fix some bugs on 32 bit windows.
2020-11-08 19:06:35 -06:00
Calvin Rose
d6391f2d70
Get windows IOCP working for accept.
...
This also changes the api of servers slightly -
in light of having support for ev tasks, it is probably better
to remove the "simple" server code and replace it with some Janet
or remove it all together. While convenient, it has issues with error
handling and rigidity.
2020-11-08 18:56:13 -06:00
Calvin Rose
07910272e2
Get socket reads and writes working with IOCP.
2020-11-08 10:38:28 -06:00
Calvin Rose
1092013c2b
Merge branch 'master' into ev
2020-11-07 14:36:25 -06:00
Calvin Rose
0db83bd787
Merge pull request #498 from pepe/fix-asm-example
...
Fix asm example
2020-11-07 14:35:39 -06:00
Calvin Rose
f55316eabc
Merge pull request #494 from harryvederci/patch-1
...
Fix typo
2020-11-07 14:34:43 -06:00
Calvin Rose
840f59934e
Merge pull request #497 from ahungry/bugfix/Adjust-popen-doc
...
Fix function doc to match that of C POPEN
2020-11-07 14:34:11 -06:00
Calvin Rose
75a9c59ad8
Merge pull request #499 from sogaiu/disasm-doc-typo
...
Tweak disasm doc
2020-11-07 14:33:53 -06:00
sogaiu
adfccd33ae
Tweak disasm doc
2020-11-05 13:56:42 +09:00
Josef Pospíšil
9d41243c15
Fix comments formating
2020-11-04 10:18:31 +01:00
Josef Pospíšil
e33e182eb0
Fix assembly example
2020-11-04 10:16:02 +01:00
Matthew Carter
4dffd662f0
Fix function doc to match that of C POPEN
...
It may be misleading to some user to believe it is taking a path to a
file, when it is executing an arbitrary shell command for the first argument.
2020-11-03 20:52:02 -05:00
Calvin Rose
5064d579d4
Add net header instead of ifdef check.
2020-11-03 17:49:09 -06:00
Calvin Rose
540425a41b
Make docstring less confusing - Fix #493 .
2020-11-02 09:09:22 -06:00
Calvin Rose
4d21b582c7
Improve reading and writing from streams.
...
Handle errors earlier, and allow 0 length packets from UDP
but not from TCP. This should more closely follow the exact specs
of send and recv calls.
2020-11-02 09:06:31 -06:00
Calvin Rose
f288bc1790
Merge pull request #492 from drkameleon/master
...
Copy editing & fixing typos
2020-11-02 08:29:49 -06:00
Calvin Rose
8942e348bd
Small change to windows ev.
2020-11-02 08:27:45 -06:00
Calvin Rose
9f27336827
Update windows ev code.
2020-11-02 08:19:53 -06:00
Calvin Rose
f517cccf7b
Fix unix domain sockets.
...
Also allow abstract unix domain sockets on Linux
(prefixed with '@' as is customary).
2020-11-02 08:16:28 -06:00
Harry Prins
3a937ace51
Fix typo
2020-10-29 08:45:04 +00:00
Yanis Zafirópulos
b8661f8bff
Update README.md
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-10-26 16:21:06 +01:00
Yanis Zafirópulos
51828ab5f8
Copy editing :)
2020-10-26 14:46:31 +01:00
Yanis Zafirópulos
84fe5d7f34
Copy editing :)
2020-10-26 14:44:17 +01:00
Calvin Rose
2891d2b260
Address #489
...
Add gc pressure when resizing fiber stack.
2020-10-18 18:41:18 -05:00
Calvin Rose
edfb861a5f
Disable epoll by default for evloop.
2020-10-11 15:05:27 -05:00
Calvin Rose
88c1cf3ee7
Reformat files.
2020-10-11 09:33:07 -05:00
Calvin Rose
813e3fdcfd
Merge branch 'windows-ev' into ev
2020-10-11 09:32:17 -05:00
Calvin Rose
bbe10e4938
Add another select example.
2020-10-11 09:14:31 -05:00
Calvin Rose
cb4903fa86
Overhaul of poll loop, redo ev/select.
2020-10-11 09:14:14 -05:00
Calvin Rose
ea45165db8
Merge branch 'master' into ev
2020-10-10 09:04:05 -05:00
Calvin Rose
1fba699ed4
Merge branch 'master' of github.com:janet-lang/janet into master
2020-10-08 12:35:16 -05:00
Calvin Rose
ce3d574c41
Update docstring.
2020-10-08 12:34:08 -05:00
Calvin Rose
7a601a7eb2
Merge pull request #481 from sogaiu/remove-namespace-reference
...
Use "module" instead of "namespace" in docstring
2020-10-07 17:43:56 -05:00
sogaiu
9ec66ab826
Use "module" instead of "namespace" in docstring
2020-10-07 18:18:28 +09:00
Calvin Rose
ebfa07f8ce
Registering an abstract type is idemptotent.
2020-10-06 19:11:29 -05:00
Calvin Rose
964a800d51
More work on windows event loop code.
2020-10-06 19:07:29 -05:00
Calvin Rose
5c05dec65a
Merge pull request #479 from andrewchambers/mf
...
Add missing Makefile dependencies for install.
2020-10-06 18:26:16 -05:00
Andrew Chambers
bf6ebc4a68
Add missing Makefile dependencies for install.
2020-10-07 10:19:49 +13:00
Calvin Rose
2e944931b3
Update timestamp function to work on windows.
2020-10-04 15:18:31 -05:00
Calvin Rose
db67538311
Work on getting ev support on windows.
2020-10-04 12:46:15 -05:00
Calvin Rose
307c7e00e2
Merge branch 'master' into ev
2020-10-03 11:09:21 -05:00
Calvin Rose
45feb55483
Add integer parsing to pegs.
2020-09-27 12:19:00 -05:00
Calvin Rose
0a1d902f46
Fix #477
...
Make the walk function preserve bracket type, which should fix
threading macro behavior when threading into bracketed expressions.
2020-09-26 13:28:29 -05:00
Calvin Rose
959a577b5f
Merge branch 'master' into ev
2020-09-26 11:50:13 -05:00
Calvin Rose
b91fe8be5a
Update CHANGELOG.md
2020-09-20 12:03:59 -05:00
Calvin Rose
d1f0a13ddc
janet_try macro and janet_restore function.
...
This allows catching panics without using pcall.
2020-09-19 18:47:47 -05:00
Calvin Rose
c455bdad11
Get ready for 1.12.2 release.
2020-09-19 16:54:56 -05:00
Calvin Rose
bc1ef813c2
Fix whitespace.
2020-09-19 16:53:35 -05:00
Calvin Rose
603791c0ba
Add more help text to doc macro and default repl.
2020-09-19 16:40:07 -05:00
Calvin Rose
8091b1289f
Merge branch 'master' of github.com:janet-lang/janet into master
2020-09-19 16:35:43 -05:00
Calvin Rose
cc0035b1d7
Add help text to repl line.
2020-09-19 16:35:32 -05:00
Calvin Rose
ceba1ba4ee
Merge pull request #472 from uvtc/patch-1
...
fix jpm.1 typos
2020-09-18 20:19:22 -05:00
John Gabriele
468e13501c
Update jpm.1
...
Fix some typos.
2020-09-15 00:06:09 -04:00
Calvin Rose
32bf70571a
Fix os/spawn piping on windows and free handles on errors.
2020-09-13 20:49:38 -05:00
Calvin Rose
95f4bd8e23
Merge branch 'master' into ev
2020-09-13 11:24:27 -05:00
Calvin Rose
4c9624db64
Update CHANGELOG.md
2020-09-13 11:06:49 -05:00
Calvin Rose
2cbf4d8ad1
Update documentation for thread/send and thread/receive.
2020-09-13 08:38:37 -05:00
Calvin Rose
524c9b50d4
Add windows implementation for piping.
2020-09-12 19:56:48 -05:00
Calvin Rose
d3147b661b
Add :pipe to os/spawn for piping to subprocess.
...
Similar to Python's subprocess.PIPE, this creates and manages pipes
automatically for the caller.
2020-09-12 19:48:12 -05:00
Calvin Rose
d3182dce51
Merge branch 'master' into ev
2020-09-12 10:02:01 -05:00
Calvin Rose
8763df1cd0
Fix some typos.
2020-09-12 09:38:29 -05:00
Calvin Rose
15e05b692c
Windows CI remove those pesky carriage returns.
2020-09-07 16:32:31 -05:00
Calvin Rose
2bf5e341d3
Update for 1.12.1
2020-09-07 16:10:33 -05:00
Calvin Rose
b53890ddae
Make some changes for WASM build.
2020-09-07 16:08:43 -05:00
Calvin Rose
93602ad9ea
Prepare 1.12.0 Release.
2020-09-07 15:28:46 -05:00
Calvin Rose
191d0001f4
Add header on BSDs.
2020-09-07 15:22:18 -05:00
Calvin Rose
1a04ce33f1
Conditionally include epoll headers.
2020-09-07 13:13:28 -05:00
Calvin Rose
babfe50550
Merge branch 'master' into ev
...
Also add poll implementation for ev.
2020-09-07 12:52:50 -05:00
Calvin Rose
ff57b3eb72
Make zero?, one?, neg? and pos? polymorphic.
2020-09-06 19:05:58 -05:00
Calvin Rose
1837e89fe4
Address #470 - hyphen's in native module names.
2020-09-06 15:23:24 -05:00
Calvin Rose
24b8b0e382
Fix NaNboxing bug that cause flaky builds.
...
The macro janet_checktype(x, JANET_NUMBER) was incorrect when
x was NaN. This caused the initial unmarshalling dictionary to be missing
entries in certain cases.
2020-09-06 14:59:29 -05:00
Calvin Rose
321a758ab9
Change hash implementation for pointers.
2020-09-06 11:41:45 -05:00
Calvin Rose
1a9c14acde
Add checksum to build/janet.c to check for inconsistent builds.
2020-09-06 11:04:07 -05:00
Calvin Rose
e8734c77b4
Fix bug by casting to unsigned char.
...
Higher unciode codepoints where being read as negative char values.
We need to cast to unsigned char before comparing to 0x20 to check
for unprintable characters.
2020-09-06 10:47:05 -05:00
Calvin Rose
1eb00a9f74
Remove restriction on bytes being input to getline.
2020-09-06 10:36:38 -05:00
Calvin Rose
922a21d359
Run make format.
2020-09-05 21:26:21 -05:00
Calvin Rose
4a4f314768
Update changelog.
2020-09-05 20:23:55 -05:00
Calvin Rose
3c64596ea1
Add %t formatter to janet.
...
Was not present in printf and family.
2020-09-05 20:21:49 -05:00
Calvin Rose
33283b1b6e
Change linking process for standalone executables.
...
We separate compilation and linking so that mixed C/C++ binaries
will work.
2020-09-05 10:19:34 -05:00
Calvin Rose
2f89bdc672
Conditional compilation on some c99 syntax in header.
...
If the header is in a C++11 compilation unit, use C++11
aggregate initialization syntax instead.
2020-09-05 09:45:34 -05:00
Calvin Rose
2d275c4782
Enable exception handling for C++ with MSVC.
2020-09-04 21:43:34 -05:00
Calvin Rose
25156eb83e
For #469 - Add support for C++ and mixed C/C++
...
WIP and for native modules. Required a few changes to headers and
some changes to JPM.
2020-09-04 17:41:36 -05:00
Calvin Rose
39032b45c9
Remove extra file.
2020-09-04 14:55:47 -05:00
Calvin Rose
821a8dca3b
Fix os/spawn - os/execute switch.
2020-09-04 14:54:58 -05:00
Calvin Rose
0145b133a1
Add os/spawn instead of os/execute with :a
2020-09-04 08:09:05 -05:00
Calvin Rose
b0b137d7f0
Apply formatting to windows changes.
2020-09-02 19:12:27 -05:00
Calvin Rose
b0c09153c2
Allow IO redirection on windows.
2020-09-02 19:07:45 -05:00
Calvin Rose
0485078c6c
Fix some issues on BSD and Windows.
2020-09-01 21:47:08 -05:00
Calvin Rose
7079cc43c9
Make some improvements and add os/proc-kill as well.
2020-09-01 21:36:49 -05:00
Calvin Rose
e7fca0051e
Add :a option to os/execute, and allow redirecting stdio.
...
This should help cover a number of common cases for
use of subprocesses. This should also eventually work well
with the ev branch via
2020-09-01 20:06:35 -05:00
Calvin Rose
6273e56886
Add janet_getjfile to C API.
2020-08-29 17:36:14 -05:00
Calvin Rose
8b9ad2dce8
Add :x flag to os/execute.
2020-08-29 10:27:32 -05:00
Calvin Rose
301cbb0e68
Update changelog
2020-08-29 09:22:10 -05:00
Calvin Rose
5313963baf
Don't run main when flychecking.
2020-08-29 09:05:18 -05:00
Calvin Rose
f60348eee4
Merge branch 'master' of github.com:janet-lang/janet into master
2020-08-27 08:20:31 -05:00
Calvin Rose
a31e079f93
Fix import macro to not coerce everything to string.
2020-08-27 08:19:41 -05:00
Calvin Rose
556edc9f0d
Fix import macro to not coerce everything to string.
2020-08-27 07:46:51 -05:00
Calvin Rose
17d0b7a985
Improve import's handling of non constant args.
...
Be much more conservative about which arguments are cast to strings.
2020-08-27 07:40:51 -05:00
Calvin Rose
86e00e865e
Merge branch 'master' into ev
2020-08-23 11:25:04 -05:00
Calvin Rose
5dda83dc73
Add second argument to disasm.
2020-08-22 16:18:10 -05:00
Calvin Rose
28439d822a
Add cancel function.
...
This should allow better stack unwinding on a fiber that
no longer needs to complete.
2020-08-22 15:35:37 -05:00
Calvin Rose
b1d8ee19ca
Enable mutliline paste in shell.c with TCSADRAIN.
...
Replaces TCSAFLUSH.
2020-08-22 11:39:57 -05:00
Calvin Rose
f7c556ed8d
Add curenv to core.
2020-08-22 10:16:14 -05:00
Calvin Rose
5377e10532
Address #466 ?
...
Do not restore pc when returning from top most fiber frame.
Also add JANET_DEBUG config define for various debugging related
configurations. In fiber.c, when debug is enabled we reallocate the
entire stack everytime we push a frame to help uncover use after free
errors.
2020-08-17 07:01:58 -05:00
Calvin Rose
30522bbf7d
Merge branch 'master' into ev
2020-08-16 17:52:36 -05:00
Calvin Rose
58374623b7
Add a vm_commit before JOP_NEXT.
2020-08-13 22:28:50 -05:00
Calvin Rose
7e7498350f
Fix #463
...
Fix outdated code in macex1, such as checking for unquote-splicing,
which no longer exists. Also fix macex1 for quasiquoted tables and
structs. macex1 is not the macro expander used by the compiler, so
these bugs only affected code which called macex manually, such as
the short-fn macro.
2020-08-12 06:10:42 -05:00
Calvin Rose
06c268c274
Start working on throwing errors from async functions.
2020-08-11 08:33:24 -05:00
Calvin Rose
9b36e2b145
Be aggressive with setting SO_NOSIGPIPE on BSD/Apple.
2020-08-10 18:59:53 -05:00
Calvin Rose
ca75f8dc20
Address #463 - prevent sigpipe on client connections.
...
We erroneously did not set SO_NOSIGPIPE on connections aquired with
net/connect, only those quired thorugh net/server. This meant that
failed writes by a client could send sigpipe.
2020-08-10 18:45:44 -05:00
Calvin Rose
6f2f3fdb68
Return an error message if writes fail. Address #462 .
2020-08-10 11:06:31 -05:00
Calvin Rose
c903e49a4f
Change feature flags for BSD.
2020-08-10 10:42:56 -05:00
Calvin Rose
9121feb44f
Update changelog.`
2020-08-09 11:39:40 -05:00
Calvin Rose
7b42ed66f2
Add xprint, xprin, xprintf, and xprinf.
2020-08-09 09:30:58 -05:00
Calvin Rose
fb26c9b2c4
Add ev/select and ev/rselect initial implementation.
...
Getting closer to a CSP implmententation. Probably
useful to move scheduling fields outside of fibers
and into an external table.
2020-08-09 00:20:27 -05:00
Calvin Rose
78ffb63429
Disallow mutlitple state machines waiting for a single fiber.
...
A 'select' operator will be channel based, not state machine based.
2020-08-08 07:51:46 -05:00
Calvin Rose
1213990b7d
Merge branch 'master' into ev
2020-08-07 19:51:37 -05:00
Calvin Rose
c3af30d520
Fix broken links in README.md
2020-08-07 19:48:06 -05:00
Calvin Rose
2598123140
Rename test suites such that it is easier to add more of them.
2020-08-07 15:34:13 -05:00
Calvin Rose
40627191f3
Merge pull request #460 from andrewchambers/fix
...
Add missing JANET_API to janet_cryptorand.
2020-08-07 11:46:44 -05:00
Andrew Chambers
38dc844e85
Add missing JANET_API to janet_cryptorand.
2020-08-07 14:02:26 +12:00
Calvin Rose
abc4405a76
Address #459 - Update meson.build
...
Don't search for cross compilerUnless needed.
This should help prevent issues building Meson on debian. Also
fix issue using the wrong set of flags to build the native janet
interpreter vs. the cross compiled janet interpreter.
2020-08-06 20:45:18 -05:00
Calvin Rose
243c66442d
Add PRF enabled build to sourcehut builds.
2020-08-04 10:30:54 -05:00
Calvin Rose
9afcec77f6
Disable PRF by default.
2020-08-03 21:52:57 -05:00
Calvin Rose
70ad98cc6f
Fix arc4random_buf implementation.
2020-08-03 21:49:49 -05:00
Calvin Rose
76cfbde933
Add JANET_HASHSEED environment variable.
2020-08-03 20:56:11 -05:00
Calvin Rose
f200bd9594
Merge pull request #455 from andrewchambers/prfseed
...
Initialize PRF with random data when it is enabled.
2020-08-03 20:14:51 -05:00
Andrew Chambers
4d4ca7bb36
Initialize PRF with random data when it is enabled.
2020-08-04 12:13:36 +12:00
Calvin Rose
78c3c6dafa
Merge branch 'master' of github.com:janet-lang/janet into master
2020-08-03 17:44:37 -05:00
Calvin Rose
6d859dec67
Exit with error code if jpm install fails.
2020-08-03 17:41:16 -05:00
Calvin Rose
3563e7e1aa
Add -fPIC to default cflags when building boot image.
2020-08-03 17:32:41 -05:00
Calvin Rose
cb898fabf4
Set default channel size to 0.
2020-08-03 07:57:02 -05:00
Calvin Rose
5899671d96
Merge branch 'master' into ev
2020-08-03 07:54:53 -05:00
Calvin Rose
8c1eb23aa1
Add -fPIC to default cflags when building boot image.
2020-08-02 13:52:21 -05:00
Calvin Rose
b564087db0
Add index-of to core library.
2020-08-02 13:47:56 -05:00
Calvin Rose
1748e8510e
Fix typo in docstring.
2020-08-02 13:27:49 -05:00
Calvin Rose
742c5bb639
Use a common queue implementation.
...
Queues occur in three places, so we use a single
implementation rather than three separate ones. This also
has the result that janet_vm_spawn will not overflow in the case
of channel-heavy, IO-light operation.
2020-08-01 14:20:58 -05:00
Calvin Rose
297de01d95
Add preliminary channel implementation.
2020-08-01 13:13:58 -05:00
Calvin Rose
fb31c3b46d
Merge pull request #454 from soapdog/fix-windows-on-arm64
...
Make sure JANET_NO_NANBOX is defined for ARM targets
2020-07-29 13:13:47 -05:00
Andre Alves Garzia
ba2beffcd8
Make sure JANET_NO_NANBOX is defined for ARM targets
2020-07-28 16:51:19 +01:00
Calvin Rose
2eb2dddb59
Begin work on channels.
2020-07-26 23:45:25 -05:00
Calvin Rose
0601d851d0
Merge pull request #453 from niacat/master
...
Fix build on NetBSD.
2020-07-26 22:15:46 -05:00
nia
b731f6ab03
Fix build on NetBSD.
...
The NetBSD C library's headers do not expose extensions when
compiling with -std=c99 (as opposed to -std=gnu99 or no -std=
option), so define _NETBSD_SOURCE to get timegm, and functions
that would otherwise require an _XOPEN_SOURCE definition, e.g.
realpath.
Note that, as with FreeBSD, you need gmake to compile janet
on NetBSD, and can also install it from packages.
2020-07-27 00:21:15 +01:00
Calvin Rose
0403e306ed
Silence warnings from some compilers.
2020-07-26 08:48:22 -05:00
Calvin Rose
d393fbf360
Merge branch 'master' into ev
2020-07-25 14:07:47 -05:00
Calvin Rose
4cc680965c
Prepare for 1.11.1 release.
2020-07-25 13:48:43 -05:00
Calvin Rose
ba08e487cb
Disable PRF by default.
...
Since it is not any better by default without initializing the key, we
disable it by default. It can be turned on with JANET_PRF in
janetconf.h.
2020-07-25 13:34:40 -05:00
Calvin Rose
d37eda4e9b
Don't use x43bot to test install.
2020-07-25 13:23:57 -05:00
Calvin Rose
3960d0f6de
Merge branch 'master' into ev
2020-07-25 13:17:05 -05:00
Calvin Rose
5be5e5b58f
Update soname.
2020-07-25 13:11:52 -05:00
Calvin Rose
04ac9b8e32
Update README.md
2020-07-25 10:14:59 -05:00
Calvin Rose
409a8a3a43
Fix #452 - Bad file marshal
...
We forgot a call to janet_marshal_abstract, which corrupted the output.
2020-07-25 08:09:22 -05:00
Calvin Rose
1ba3f72e4c
Update meson build.
2020-07-24 13:03:10 -05:00
Calvin Rose
3e5e9e57e9
Fix sourcehut builds yml file.
2020-07-24 12:29:31 -05:00
Calvin Rose
02e5e49de2
Fix buffer overflow.
2020-07-24 07:04:32 -05:00
Calvin Rose
43438d3824
Allow getting typed arrays from byte sequences.
...
Fix native importing for .so files in current directory.
2020-07-24 07:01:34 -05:00
Calvin Rose
8f82d19fd1
Merge branch 'master' of github.com:janet-lang/janet
2020-07-21 13:40:58 -05:00
Calvin Rose
ee450bcd77
Fix jpm on windows with multiple git binaries.
2020-07-21 13:40:23 -05:00
Calvin Rose
553b4d9428
Add timeouts to net functions.
...
Further debugging of the general timeout system, as well
as having a single fiber wait on multiple state machines (select).
2020-07-19 19:41:12 -05:00
Calvin Rose
df145f4bc9
Merge branch 'master' into ev
2020-07-19 17:20:43 -05:00
Calvin Rose
fa55283f62
Release 1.11.0
2020-07-18 16:21:01 -05:00
Calvin Rose
9e163db491
Test building binaries with jpm.
...
Test in CI with both meson and normal build.
Also test windows.
2020-07-18 15:50:58 -05:00
Calvin Rose
286230f477
Fix meson paths.
2020-07-18 15:44:04 -05:00
Calvin Rose
3ba2c7e7e8
Address #394 and #451 - Prepare for 1.11.0
...
Prefix MANPATH and PKG_CONFIG_PATH variables
with JANET_ to disassociate with standard env variables
that have a different format.
2020-07-18 13:09:53 -05:00
Calvin Rose
b4f5e5bc00
Update docs for -l option.
2020-07-06 21:25:41 -05:00
Calvin Rose
f580d2e41a
Add forever macro and add names to anon fns.
...
Adding names to anon functions that may error improves
stack traces, especially for user visible traces.
2020-07-06 19:26:37 -05:00
Calvin Rose
cd197e8be3
Add ev/call.
...
This is a common operation, and making fibers manually can be tedious.
2020-07-06 19:13:32 -05:00
Calvin Rose
51cf6465ff
Merge branch 'master' into ev
2020-07-06 17:22:38 -05:00
Calvin Rose
a1feb32a2f
Update CHANGELOG.md
2020-07-06 17:21:55 -05:00
Calvin Rose
7478ad115f
Add any? predicate to core.
...
This is the contrapositive to `every?`, and is analagous to `or` as
`every?` is to `and`.
2020-07-06 09:19:10 -05:00
Calvin Rose
9d8e338a11
Update default repl prompt to match errors.
2020-07-05 23:32:59 -05:00
Calvin Rose
ed4163cfde
Replace copyright on boot with system information.
2020-07-05 23:24:07 -05:00
Calvin Rose
bd95f742c0
Merge branch 'master' into ev
2020-07-05 23:14:49 -05:00
Calvin Rose
463e6d9316
Merge pull request #448 from GrayJack/fix-table-remove
...
Fix janet_table_remove returning the key instead of the value
2020-07-05 18:36:54 -05:00
Calvin Rose
3358811788
Update changelog and sort listing.
2020-07-05 17:51:49 -05:00
Calvin Rose
a45509d28e
Add list-pkgs and list-installed to jpm.
2020-07-05 17:43:39 -05:00
Calvin Rose
9ba94d2c6b
More work on timeouts and racing listeners.
...
When two listeners are racing to resume the same fiber, the
first should cancel out the other.
2020-07-05 17:26:17 -05:00
Calvin Rose
a4de83b3a3
Merge branch 'master' into ev
2020-07-05 10:11:23 -05:00
Calvin Rose
68a12d1d17
Minor fixes for meson minimum build.
...
Also, fix regression that looses function name information.
2020-07-03 20:41:55 -05:00
Calvin Rose
c97d3cf359
Fix minimum meson build.
2020-07-03 20:30:09 -05:00
Calvin Rose
4721337c7c
issues with gettime on mach kernel.
2020-07-03 20:19:36 -05:00
Calvin Rose
2b36ed967c
Address some windows issues.
2020-07-03 20:13:49 -05:00
Calvin Rose
3bb8f1ac8d
Don't use CLOCK_MONOTONIC for pthread stuff.
...
Also fix marshalling functions without full
sourcemapping information, as well as thread/receive
ignoring bad messages. Instead, thread/receive will error
on bad messages.
2020-07-03 19:54:58 -05:00
Calvin Rose
617ec7f565
Threading improvements.
...
- Add thread/exit to kill the current thread.
- Add global lock aroung custom getline and add atexit handler
- to prevent any possible issues when exiting program.
- Allow sending stderr, stdout, and stdin over thread.
2020-07-03 16:28:07 -05:00
Calvin Rose
dc259b9f8e
Set fiber env for heavyweight threads.
...
Since you already incur the cost of creating the
core environment, this is probably what you want anyways.
This will make eval and other reflective code work as expected.
2020-07-03 15:20:19 -05:00
Calvin Rose
7b31a87b3c
Update integer limits and printing.
2020-07-03 14:14:59 -05:00
Calvin Rose
37a430c97c
Move declarations around.
2020-07-03 13:47:48 -05:00
Calvin Rose
f264cb0b18
Merge branch 'master' into ev
2020-07-03 12:26:01 -05:00
Calvin Rose
6ea530cc48
Address compilation warnings and errors.
2020-07-03 12:25:24 -05:00
Calvin Rose
a0abf307b4
Merge branch 'master' into ev
2020-07-03 12:14:48 -05:00
Calvin Rose
55cf9f5e1c
Don't break reverse backwards compat.
...
Breaking backwards compatibiliy here is not worth it.
Also update changelog.
2020-07-03 10:17:50 -05:00
Calvin Rose
b89f0fac7b
Move clock shims to util (Helps #430 ).
...
The thread module should also use these clock shims rather
than clock_gettime, which is not available on older mac systems.
2020-07-03 09:54:58 -05:00
GrayJack
8b3b3182bd
Add tests to check janet_table_remove behaviour
2020-07-02 11:03:08 -03:00
Calvin Rose
97c64f27ff
Remove duplicate code in loop macro.
...
Also evaluate for loop and range step exactly once.
Multiple evaluations can be inefficent and make infinite loop
detection impossible.
2020-07-01 22:37:04 -05:00
Calvin Rose
e548e1f6e0
Add peg/replace and peg/replace-all
2020-07-01 21:29:24 -05:00
GrayJack
7ea1c7d85a
Fix janet_table_remove returning the key instead of the value
2020-07-01 20:05:07 -03:00
Calvin Rose
e08235b575
Merge pull request #436 from cellularmitosis/no_arc4random_buf
...
Add support for systems which are missing arc4random_buf
2020-07-01 15:54:15 -05:00
Calvin Rose
783c672130
Merge pull request #437 from pepe/add-peg-find-tests
...
Add tests for peg/find and peg/find-all
2020-07-01 15:48:43 -05:00
Calvin Rose
5351a6b2ed
Merge pull request #447 from cellularmitosis/nan
...
math/nan
2020-07-01 15:47:13 -05:00
Jason Pepas
a110b103e8
math/nan
2020-07-01 15:35:36 -05:00
Josef Pospíšil
c26f573620
Add tests for peg/find and peg/find-all
2020-06-30 17:03:13 +02:00
Jason Pepas
f06e9ae30c
Switch to using /dev/urandom for OS X prior to 10.7
2020-06-30 04:18:08 -05:00
Jason Pepas
f5d208d5d6
eliminate large stack allocation from arc4random_buf bodge
2020-06-30 04:06:20 -05:00
Calvin Rose
7fb8c4a68d
Merge branch 'master' of github.com:janet-lang/janet
2020-06-29 22:57:46 -05:00
Calvin Rose
647fc56d47
Replace for with forv in most places in boot.janet
...
Generates slightly better bytecode with current compiler
(gets rid of a single extra move instruction per loop iteration).
2020-06-29 22:56:16 -05:00
Jason Pepas
597d84e263
Add support for systems missing arc4random_buf
2020-06-29 21:06:13 -05:00
Calvin Rose
977b0c3c0c
Merge pull request #429 from pepe/fix-reverse-doc
...
Tune reverse[d] docstrings
2020-06-29 20:55:04 -05:00
Calvin Rose
1b0d6de735
Merge pull request #432 from cellularmitosis/no_cloexec
...
Support for systems missing O_CLOEXEC
2020-06-29 20:54:41 -05:00
Calvin Rose
2f5bb7774e
Fix recursive post-deps.
2020-06-29 20:51:38 -05:00
Jason Pepas
5565f02dbd
Simplifying workaround for missing O_CLOEXEC
2020-06-29 19:36:18 -05:00
Calvin Rose
17a131ac21
Add peg/find and peg/find-all.
...
These peg functions should make pegs a bit easier to use
and more efficient in some common cases.
2020-06-29 19:13:06 -05:00
Calvin Rose
9a5cfe9f75
Merge branch 'master' of github.com:janet-lang/janet
2020-06-29 13:47:02 -05:00
Calvin Rose
cc936d9977
Merge pull request #435 from pepe/add-keyword-symbol-slice-tests
...
Add keyword/slice and symbol/slice tests
2020-06-29 09:11:35 -05:00
Josef Pospíšil
e9911fee4d
Add keyword/slice and symbol/slice tests
2020-06-29 09:18:26 +02:00
Calvin Rose
aefde67aa2
And lots of optimization functionality.
2020-06-28 18:16:57 -05:00
Calvin Rose
a1ea62a923
Fix optimization of do_get.
...
When the target slot (register) is the same as the default
register, do not clobber it.
2020-06-28 15:52:59 -05:00
Calvin Rose
7209ced446
Merge branch 'master' of github.com:janet-lang/janet
2020-06-28 15:09:01 -05:00
Calvin Rose
db63d352a2
Add specialization for 3 argument get.
...
This can be inlined with jmpnn instruction (jump if not nil) to
skip over the default value.
(get a b c)
can be exanded statically to
asm start:
(get $0 $1 $2)
(jmpnn $0 :label)
... Instructions to load default value to $0 - often a load.
:label
asm end.
2020-06-28 15:03:01 -05:00
Josef Pospíšil
289de840fd
Specify input types actions
2020-06-28 20:49:44 +02:00
Calvin Rose
cb34a8b620
Merge pull request #434 from elimisteve/master
...
Add .gitattributes: syntax highlight .janet files as Clojure
2020-06-27 17:01:45 -05:00
Calvin Rose
95c633914f
Add auto-resizing of gc interval.
...
This should prevent over use of GC and O(n^2)
behavior.
2020-06-27 16:51:20 -05:00
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
Calvin Rose
36f66661f7
Merge pull request #431 from cellularmitosis/master
...
Add ppc to os/arch
2020-06-26 22:43:41 -05:00
Steve Phillips
de27fc15b6
Add .gitattributes: detect/syntax highlight .janet files as Clojure
2020-06-26 20:31:42 -07: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
328ee94412
Merge branch 'master' into ev
2020-06-22 22:25:44 -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
d65814c53f
Update changelog.md
2020-06-21 18:52:10 -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
b5fdd30b77
Fix meson build version.
2020-06-18 18:43:10 -05:00
Calvin Rose
280292d3f5
Update CHANGELOG.md
2020-06-18 18:41:09 -05:00
Calvin Rose
c593d864be
Merge branch 'master' of github.com:janet-lang/janet
2020-06-18 18:38:17 -05:00
Calvin Rose
6d17348c72
Merge pull request #425 from pyrmont/bugfix.make-install-paths-fn
...
Make install-paths a function
2020-06-18 15:13:36 -05:00
Michael Camilleri
536648ec19
Use function for install-paths
2020-06-18 19:07:43 +09:00
Calvin Rose
b5e32a9ce5
Expose janet_table_clear.
2020-06-15 15:33:41 -05:00
Calvin Rose
4077822e37
Update changelog.
2020-06-15 11:54:51 -05:00
Calvin Rose
e2d8750625
Update jpm.
...
Silence git warnings on git pull, and fix issue with double
dependencies in rules.
2020-06-15 11:22:32 -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
b7cd13bb0b
Fix changelog typo.
2020-06-14 15:10:54 -05:00
Calvin Rose
be1ec1b973
Conditionally install jpm in meson.
2020-06-14 14:27:22 -05:00
Calvin Rose
1bddb87a0c
Fix MSVC Warnings.
2020-06-14 14:20:38 -05:00
Calvin Rose
fbe23d8c33
Prepare for 1.10.0 release.
2020-06-14 14:16:01 -05:00
Calvin Rose
f435bb24ab
Remove extra function on some installs.
2020-06-14 14:09:32 -05:00
Calvin Rose
853b33b67c
On nix platforms, patch jpm with path information.
...
This means we no longer need to guess paths after install.
Custom directory layouts can now be better supported at install
time without need for environment variables.
2020-06-14 14:04:23 -05:00
Calvin Rose
19f3568e18
Update for 1.10.0.
2020-06-14 12:15:56 -05:00
Calvin Rose
911c2cbe58
Update CHANGELOG.md
2020-06-14 12:12:41 -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
80f29ae859
Add some more bindings for jpm for future proofing.
2020-06-14 11:43:26 -05:00
Calvin Rose
0b114d680e
Update CHANGELOG.md.
2020-06-13 14:10:35 -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
b1a4f05b5a
Explicitly disallow handler for datagram server.
2020-06-13 08:29:48 -05:00
Calvin Rose
ce2079104a
Merge branch 'master' into ev
2020-06-11 19:20:51 -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
Calvin Rose
2a9923999b
Merge pull request #422 from MikeBeller/compare
...
Implement polymorphic compare
2020-06-10 00:58:33 -04:00
Calvin Rose
03cbeac1ea
Remove snapcraft.yaml.
...
Removing explicit snapcraft support from janet. Getting things working
with snapcraft is not something I have had luck with, and snapcraft.io
has been spamming me with emails. Since this is not completely zero
overhead, I am simply removing support for snapcraft.
2020-06-06 11:35:43 -05:00
Calvin Rose
d64e9b6263
Remove snapcraft.
2020-06-06 10:31:16 -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
MikeBeller
0b500730e0
Merge pull request #1 from janet-lang/master
...
Bringing fork up to date
2020-06-04 10:35:03 -04:00
Calvin Rose
123710078d
Add unix domain socket support to net.
...
Code is a bit messy, as getaddrinfo does not support
unix domain sockets directly. We require a keyword :unix
instead of the usual hostname string, and the port is the
path to unix domain socket. The UDS should support both stream
and datagram sockets.
2020-06-03 00:53:17 -05:00
Calvin Rose
6c08dbab0e
Merge pull request #420 from leafgarland/master
...
Implement os/realpath with _fullpath
2020-06-02 20:57:28 -04:00
Calvin Rose
ec0d0ba368
Initial UDP implementation.
2020-06-02 19:47:50 -05: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
3f434f2a44
Add backpressure capability to net.
2020-05-31 15:46:01 -05:00
Calvin Rose
71d8e6b4cd
Merge branch 'master' into ev
2020-05-30 11:35:19 -05:00
Calvin Rose
a78af0a7fb
Do not explicitly free state machines, instead return a status.
...
This makes it harder to have some kind of use after free issue.
2020-05-30 11:31:05 -05:00
Calvin Rose
eb9f74a273
Silence MSVC warning.
2020-05-30 10:06:39 -04:00
Calvin Rose
117ae196fd
Add net/flush.
...
Useful for simple TCP protocols (netrepl), which benefit from being able
to immediately send a message.
2020-05-28 19:22:38 -05:00
Calvin Rose
4c211c8dce
More updates to the ev library.
2020-05-28 16:51:11 -05:00
Calvin Rose
4056b94e01
Merge pull request #418 from ahungry/bugfix/Fix-double-free-fclose
...
Fix for double free on fclose due to GC not knowing it failed
2020-05-28 17:24:09 -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
c10d9b9d9d
Merge branch 'master' into asyncio
2020-05-28 10:57:10 -05: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
b68b0a256e
Start with ev module.
2020-05-28 10:39:40 -05:00
Calvin Rose
b33fdc1674
Merge pull request #415 from leafgarland/fix_numarray_example
...
Fix numarray example to work with jpm and latest Janet c-api
2020-05-25 14:04:58 -04:00
Leaf Garland
6909d9c9c9
Fix c code for latest Janet
2020-05-24 21:30:23 +12:00
Leaf Garland
0d5d820f4f
Remove cook code
2020-05-24 21:29:20 +12:00
Leaf Garland
6fbca3416a
Move tests to tests dir
2020-05-24 21:28:16 +12:00
Leaf Garland
466d9b31ce
Add project.janet for numarray
2020-05-24 21:25:52 +12:00
Calvin Rose
b6fdaaac41
Merge pull request #414 from roobie/update-readme
...
adds WiX details to README
2020-05-23 12:08:35 -04: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
bjorn roberg
f2299eab8f
rephrase the info about WiX and .msi
2020-05-23 14:15:19 +02:00
LouisJackman
e220f44953
Simplify and don't replace history for cancelled forms
2020-05-23 08:36:40 +01:00
bjorn roberg
b750a84ab1
adds WiX details to README
2020-05-22 23:53:31 +02: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
Calvin Rose
930ac9c57d
Merge branch 'master' of https://github.com/janet-lang/janet
2020-05-21 00:18:45 -04:00
Calvin Rose
5caa0371c4
Replace forward slash in xcopy commands.
...
xcopy doesn't handle them in paths.
2020-05-21 00:18:07 -04:00
Calvin Rose
e6e1cb1b43
Merge pull request #410 from MikeBeller/tarray-next
...
Fix issue #408 -- make "next" work for typed arrays, and also fix
2020-05-20 19:00:06 -04: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
a99906c6f0
Remove NSIS artifacts.
...
NSIS installer has been replaced by WiX installer.
2020-05-19 22:25:04 -05:00
Calvin Rose
617338457d
More windows shenanigans with jpm.
...
Cannot remove open file, get rid of double rm.
2020-05-19 20:03:49 -04:00
Calvin Rose
1026d2173b
Quick fix.
2020-05-19 19:21:30 -04:00
Calvin Rose
ca9c9ee807
Add the clear-manifest command.
2020-05-19 19:20:09 -04:00
Calvin Rose
bef51fe9ff
Fix jpm.
2020-05-19 18:41:17 -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
ccd8b71c4b
Fix os/shell usage in jpm on windows.
2020-05-19 16:28:43 -05: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
070baea3c4
Merge branch 'master' of github.com:janet-lang/janet
2020-05-19 09:47:11 -05:00
Calvin Rose
0e828792ae
Fix segfault on bad loop. Fixes #407 .
2020-05-19 09:45:45 -05:00
Calvin Rose
31a8dfa063
Merge pull request #406 from leafgarland/master
...
Add Wix/msi installer for Windows
2020-05-19 06:49:41 -04:00
Leaf Garland
338ef8f2e4
Update Appveyor to build Wix installer
2020-05-19 17:00:42 +12:00
Leaf Garland
737fee94d0
Change build_win.bat to build Wix installer
2020-05-19 16:57:26 +12:00
Leaf Garland
4a2d770066
Add Wix/msi installer for Windows
2020-05-19 16:56:50 +12: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
17cb0c1aee
Merge pull request #402 from andrewchambers/linelockfiles
...
Format lock files for nicer diffs.
2020-05-18 18:45:25 -04: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
Calvin Rose
eefdb3f156
Merge pull request #403 from kryptine/master
...
Fix spelling errors
2020-05-18 17:01:41 -04:00
LouisJackman
e9a5cfaddd
Adopt Andrew Chamber's suggestions
2020-05-18 21:55:21 +01:00
kryptine
f5f2997cc2
Fix spelling errors
2020-05-18 06:32:00 +00:00
Andrew Chambers
43d2ba6275
Format lock files for nicer diffs.
2020-05-18 15:43:52 +12:00
Calvin Rose
8b98b331cc
Add :hardcode-syspath option to declare-binscript.
...
This should make fully correct installs easier.
2020-05-17 09:29:45 -05: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
Calvin Rose
33b5d9651f
Remove more mentions of lisp in descriptions.
2020-05-16 15:22:34 -05:00
LouisJackman
9109e369ff
Incorporate suggestions from PR
2020-05-16 20:18:00 +01:00
Calvin Rose
b97e011715
Remove some lisp claims from README for branding.
2020-05-16 14:12:21 -05: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
657fae490c
Update CHANGELOG.md
2020-05-16 08:36:32 -05:00
Calvin Rose
e9acebe0e8
Merge branch 'master' of github.com:janet-lang/janet
2020-05-16 08:29:30 -05: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
4be3d66a32
Merge pull request #395 from zyga/master
...
Add snapcraft packaging
2020-05-15 19:04:26 -04:00
Calvin Rose
92df01b99d
Add valtest and debug to Makefile help.
2020-05-15 17:59:05 -05:00
Calvin Rose
5c9c738913
Merge pull request #399 from LouisJackman/add-make-help-target
...
Add make help target
2020-05-15 18:55:23 -04:00
Calvin Rose
83c357d9d1
Merge branch 'master' of github.com:janet-lang/janet
2020-05-15 17:24:21 -05:00
Calvin Rose
3bb3adefbb
Rename jpm repl to jpm debug-repl.
2020-05-15 17:22:30 -05:00
Calvin Rose
cf670153f9
Add :fresh option to import.
2020-05-15 17:19:37 -05:00
LouisJackman
d6cd69e659
Add make help target
2020-05-15 07:51:21 +01:00
Calvin Rose
48d31ad7bc
Merge pull request #396 from halfhorst/documentation/update-readme-embedding
...
update janetconf.h path in README embedding section
2020-05-13 18:13:53 -04:00
halfhorst
20aa258f0e
update janetconf.h path in README embedding section
2020-05-13 14:54:44 -07:00
Zygmunt Krynicki
45a60956a6
Add snapcraft packaging
...
Snapcraft allows the latest version of Janet to be immediately available
to developers on most popular Linux distributions. This patch provides
the snapcraft.yaml file, which provides information about the package,
how to build it and how to install it.
Both janet and jpm are exposed, though the latter requires a store side
alias to be provided, as snap names also control application names, to
avoid clashes between applications.
For this prototype I've selected classic confinement. Application
language packages are usually provided with classic confinement, as that
is most flexible for developers.
Snaps do not support providing manual pages yet, so no entries for those
were created.
Signed-off-by: Zygmunt Krynicki <me@zygoon.pl >
2020-05-13 19:04:10 +02:00
Calvin Rose
4ae372262b
1.9.1 release.
2020-05-12 09:19:09 -05:00
Calvin Rose
02167a15d1
Add new Makefile options to meson.
2020-05-12 09:04:38 -05:00
Calvin Rose
b50a4669d2
Update README and CHANGELOG.
2020-05-12 08:56:58 -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
a65386e925
Merge branch 'master' of github.com:janet-lang/janet
2020-05-11 01:10:58 -05:00
Calvin Rose
2d7d154ffc
Merge pull request #392 from t6/patch-meson
...
Unbreak Meson build
2020-05-11 00:08:25 -04:00
Calvin Rose
3100080a50
Add NO_UMASK and NO_REALPATH config options.
2020-05-10 23:07:54 -05:00
Tobias Kortkamp
7275370ae5
Unbreak Meson build
...
The Meson build system
Version: 0.54.0
Source dir: /wrkdirs/usr/ports/lang/janet/work/janet-1.9.0
Build dir: /wrkdirs/usr/ports/lang/janet/work/janet-1.9.0/_build
Build type: native build
meson.build:225:2: ERROR: Expecting rbracket got string.
'test/suite9.janet'
^
For a block that started at 215,13
test_files = [
^
2020-05-11 06:02:26 +02: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
273d1ff2d0
Fix external grammar to disallow | and \ in symbols.
2020-05-10 16:57:42 -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
a73ba56ebb
Address #387
...
Introduce linker flags vs. library flags in jpm
in a backwards compatible way - most usage of lflags was for library
flags, so we will preserve that behavior.
2020-05-09 21:11:26 -05:00
Calvin Rose
1168f47768
Update default path for installed binaries.
...
This is useful for installing binaries in a default install
(when JANET_PATH or JANET_MODPATH is not explicitly set).
2020-05-09 19:02:12 -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
Calvin Rose
0615d09b7a
Merge pull request #385 from andrewchambers/fnctlfix
...
Avoid setting O_CLOEXEC on stdin/stdout/stderr.
2020-05-09 11:34:37 -04:00
Calvin Rose
1add0c7d43
make test-install should be easier to clean.
2020-05-09 10:30:09 -05:00
Calvin Rose
8194f5ccaf
Refactor jpm.
...
Make install and uninstall commands variadic.
Add :libs option to many decalre commands. This behaves much like
lflags, but will be places after all linker flags are given.
2020-05-09 10:22:46 -05: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
Calvin Rose
4b417c0e9d
Merge pull request #375 from andrewchambers/mttemp
...
Set the CLOEXEC flag on file/temp files.
2020-05-06 18:19:11 -04: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
9aefb59afe
Format jpm with spork.
2020-05-05 09:21:50 -05: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
0fe5c672a6
Use dedent in jpm create-executable.
2020-04-26 12:14:43 -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
cc1f84d1d3
Fix NSIS installer after moving jpm.
2020-04-26 08:58:53 -05:00
Calvin Rose
74126d9f24
Merge branch 'master' of github.com:janet-lang/janet
2020-04-26 08:55:59 -05:00
Calvin Rose
69eb9531da
Rename auxbin/jpm -> jpm.
2020-04-26 08:55:32 -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
0a4d58468e
Remove Debug build from appveyor.
2020-04-25 12:06:22 -04:00
Calvin Rose
8ce092da68
Update create-dirs to work on windows style paths.
2020-04-25 12:01:09 -04:00
Calvin Rose
fce1529bf2
Re-enable NSIS unicode.
2020-04-25 10:01:27 -05:00
Calvin Rose
61edf22a45
Remove Unicode True
...
This seems like it might trigger mS defender based on an old bug.
Don't think we really need it, so I will remove it just in case.
2020-04-25 09:26:56 -05: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
c6a782c0ce
Add information on lockfiles to the man page.
2020-04-23 12:10:22 -05:00
Calvin Rose
d148e14aa2
Merge pull request #357 from andrewchambers/lockfilejdn
...
Lockfiles are jdn, not code.
2020-04-23 13:03:51 -04:00
Andrew Chambers
748a5d41c1
Lockfiles are jdn, not code.
2020-04-23 21:53:36 +12:00
Calvin Rose
c876e63010
Fix overflow in exponent estimation in strtod.c.
...
Found by OSS-Fuzz.
2020-04-21 18:32:59 -05:00
Calvin Rose
23b811243f
Update CHANGELOG.md
2020-04-21 18:24:46 -05:00
Calvin Rose
99d9c57154
Add the --offline flag to jpm.
...
This will let jpm install things only from the cache, and not
try and sync the latest from git.
2020-04-21 12:41:08 -05:00
Calvin Rose
13559baecc
Merge pull request #354 from andrewchambers/safeclean
...
Do not recurse into symlinks when cleaning.
2020-04-21 13:21:42 -04:00
Calvin Rose
481647ed5d
Merge pull request #355 from sogaiu/fiber-new-err-msg
...
Add flags to fiber/new error message
2020-04-21 13:21:11 -04:00
sogaiu
5c162ce588
Add flags to fiber/new error message
2020-04-21 13:47:56 +01:00
Andrew Chambers
e1b6175efd
Do not recurse into symlinks when cleaning.
2020-04-21 15:11:51 +12:00
Calvin Rose
ea46f096c2
Remove placeholder config variables.
2020-04-20 20:10:24 -05:00
Calvin Rose
da88dd8cfa
Streamline tree printing code.
2020-04-20 19:50:32 -05:00
Calvin Rose
9b5c6112e5
The -q option no longer disables repl output.
2020-04-20 19:28:30 -05:00
Calvin Rose
ea1341a129
Show post-deps rules in rule tree.
2020-04-20 19:19:53 -05:00
Calvin Rose
343cb779d2
Remove extra os/mkdir.
2020-04-20 19:06:53 -05:00
Calvin Rose
b0af01a762
Remove ./build as default rule.
...
Instead, all compilation rules do the equivalent of
mkdir -p to make sure that we can build the output file.
2020-04-20 19:02:09 -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
63812c9f80
Merge pull request #350 from DavidKorczynski/master
...
Updated the libfuzzer to target marshalling.
2020-04-19 18:56:51 -04:00
David Korczynski
676a0afe4c
Fixed up very wrong fuzzer to go more for the parser.
2020-04-19 20:36:38 +01: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
12d21dcb85
Update CHANGELOG.md
2020-04-19 10:57:50 -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
Calvin Rose
4a693222b4
Port net code to windows.
...
Use winsock2 and WSAPoll. Not the most high performance
solution but should work well.
2020-04-18 19:14:38 -04:00
David Korczynski
82e052f2ec
Updated the libfuzzer to target marshalling.
2020-04-18 22:04:26 +01:00
Calvin Rose
0745c15d7b
Fix return value from shell.c
2020-04-18 15:31:46 -05:00
Calvin Rose
2904c19ed9
Switch to poll from select.
...
Simpler and more flexible interface, and also lets
us use epoll more easily on linux, which is the most important
plantform to optimize for network performance.
2020-04-18 15:22:20 -05:00
Calvin Rose
16fe0a301c
Merge pull request #349 from sogaiu/tweak-unknown-signal-handling
...
Tweak unknown signal handling
2020-04-18 06:22:29 -05:00
sogaiu
aebb8010d4
Tweak unknown signal handling
2020-04-18 08:26:16 +01:00
Calvin Rose
4ac382e553
Add alias JANET_SIGNAL_EVENT.
2020-04-17 16:27:02 -05:00
Calvin Rose
596111c988
Merge branch 'master' into net
2020-04-17 15:08:26 -05:00
Calvin Rose
e202d30835
Use make format.
2020-04-17 13:39:23 -05:00
Calvin Rose
fbe903b277
Add janet_cfuns_prefix to janet.h
...
Makes adding functions to the current environment easier.
2020-04-17 13:37:52 -05:00
Calvin Rose
8a89e50c13
:octal-permissions -> :int-permissions ( #347 )
2020-04-16 19:05:00 -05:00
Calvin Rose
6cb0e0dcea
Merge branch 'master' of github.com:janet-lang/janet
2020-04-16 19:02:58 -05:00
Calvin Rose
a147ea3e80
Use JANET_PRETTY_DICT_LIMIT.
2020-04-16 19:01:49 -05:00
Calvin Rose
557988e530
Merge pull request #344 from DavidKorczynski/master
...
Added a fuzzer and integration with OSS-Fuzz.
2020-04-16 18:50:07 -05:00
Calvin Rose
67fb2c212f
Address #348
...
Remove extreneous data from lockfile.
2020-04-16 18:44:21 -05:00
Calvin Rose
3765b08cca
Merge branch 'master' of github.com:janet-lang/janet
2020-04-16 12:11:59 -05:00
Calvin Rose
3eb84fcb13
Fix some typos, make jpm repl work without a project.janet.
2020-04-16 12:11:17 -05:00
Calvin Rose
bea76e8e08
Merge pull request #345 from sogaiu/checks-after-allocs
...
Check some *alloc return values
2020-04-15 19:45:39 -05:00
Calvin Rose
f5433dcaa4
Fix core getline that doesn't use replacement.
2020-04-15 19:45:17 -05:00
Calvin Rose
ef3b953a42
Fix docstrings.
2020-04-14 21:32:50 -05:00
Calvin Rose
605a205008
Range errors for slice-likes include negatives.
...
Makes for less confusing errors when calling something
like `(slice [] 0 -10)`.
2020-04-14 21:27:48 -05:00
Calvin Rose
058f63b440
Add sh-rule and sh-phony to jpm dialect.
...
Provides useful shorthand for writing rules that invoke
shell commands.
2020-04-14 20:43:53 -05:00
Calvin Rose
71882475d6
janet_formatb -> janet_formatbv, new janet_formatb
...
The old function was not very useable. In the likely
case that there is no external code using this
(not well documented/janet_formatc is more convenient), we
can change this.
2020-04-14 07:38:41 -05:00
sogaiu
a3d29a15df
Check some *alloc return values
2020-04-14 10:22:45 +01:00
Calvin Rose
a09112404d
Add better error message on unexpected eos.
...
Show innermost open delimiter
2020-04-13 23:18:27 -05:00
Calvin Rose
93fc11ea21
Add edefer.
...
Also improve error messages from vm internal errors.
(Show bad value, not its type).
2020-04-13 20:24:11 -05:00
davkor
4faa129b8e
Added a first fuzzer.
2020-04-13 17:33:58 +01:00
Calvin Rose
6c4ed0409d
Add emscripten check to features.h.
2020-04-12 14:13:55 -05:00
Calvin Rose
ea2811f14f
Merge branch 'master' of github.com:janet-lang/janet
2020-04-11 13:42:34 -05:00
Calvin Rose
8bc2987a71
(struct ...) with duped keys will use last value.
2020-04-11 13:42:25 -05:00
Calvin Rose
1d13095d19
Merge pull request #340 from pepe/get-vs-in-last
...
Fix last for empty collection, add tests
2020-04-10 19:03:21 -05:00
Calvin Rose
5ed76f197a
Differentiate error from resume and error from resumed fiber.
2020-04-10 18:29:10 -05:00
Calvin Rose
e1f4cadf41
Add debugger to the core repl.
...
Debugger functions are prefixed by periods.
2020-04-10 17:20:23 -05:00
Calvin Rose
3b0e6357ad
Make Ctrl-G in repl show docstring for symbol.
...
Can be used to browse docs without poluting your repl session.
2020-04-10 11:36:23 -05:00
Calvin Rose
02f17bd4e4
Add sort-by and sorted-by.
2020-04-09 20:43:51 -05:00
Josef Pospíšil
b63a0796fd
Fix last for empty collection, add tests
2020-04-09 14:35:57 +02:00
Calvin Rose
e6d4e729fb
Keep reference alive so unmarshalled object not collected.
2020-04-06 17:24:52 -05:00
Calvin Rose
b75a22b753
Make JANET_FRAME_SIZE consistent across architectures.
...
This means unmarshalling fibers should work across arches.
2020-04-06 12:41:56 -05:00
Calvin Rose
72beeeeaaa
Move funcenv verification to runtime.
...
Lazy verification makes it easier to not leave funcenvs
in an invalid state, as well as be more precise with the validation.
We needed to verify the FuncEnvs actually pointed to a stack frame if
they were of the "on-stack" variant. There was some minor checking
before, but it was not enough to prevent func envs from pointing to
memory that was off of the fiber stack, overlapping stack frames, etc.
2020-04-06 10:58:47 -05:00
Calvin Rose
c3c42ef56f
Fix case for #336 .
...
Also consider ascii 127 (delete) non-printable for string escapes.
2020-04-06 00:11:22 -05:00
Calvin Rose
a3c55681b2
Address #336 case 6
2020-04-05 21:39:39 -05:00
Calvin Rose
cc70388846
Merge pull request #338 from andrewchambers/unmarshalfuzz2
...
Make unmarshal fuzzer exercise more code paths.
2020-04-05 20:36:30 -05:00
Calvin Rose
fcc610f539
Address #336 case 4
...
Set funcenv fields to NULL before any possible panics.
2020-04-05 19:18:59 -05:00
Calvin Rose
5bbd507858
Address #336 case 3
...
Fix error condition for bad abstract types - don't return NULL, panic.
2020-04-05 17:38:14 -05:00
Andrew Chambers
45156c0c47
Make unmarshal fuzzer exercise more code paths.
2020-04-06 09:59:00 +12:00
Calvin Rose
553e38ffd6
Merge pull request #337 from andrewchambers/fuzzunmarshal
...
Setup some simple fuzz helpers for unmarshal.
2020-04-05 08:17:42 -05:00
Calvin Rose
c4ca0490ee
Prevent unmarsal DOS in arrays,buffers,tables,and structs.
2020-04-05 08:16:40 -05:00
Calvin Rose
b145d47863
Address cases 1 and 2 of #336 .
...
Mainly related to not checking ints < 0.
2020-04-05 08:01:18 -05:00
Calvin Rose
095827a261
Update CHANGELOG.md
2020-04-05 07:12:00 -05:00
Calvin Rose
87ecdb8112
Change \UXXXXXXXX -> \UXXXXXX and check codepoint max.
...
No need to add two extra leading zeros, as the max unicode
codepoint is 0x10FFFF.
2020-04-05 07:09:53 -05:00
Andrew Chambers
98b2fa4d64
Setup some simple fuzz helpers for unmarshal.
2020-04-05 23:05:18 +12:00
Calvin Rose
810ef7401c
Update changelog and bump version to dev version.
2020-04-04 21:50:27 -05:00
Calvin Rose
ae70a03383
Address #306 - Add unicode escapes.
...
Unicode escapes have the same syntax as go - \uXXXX or \UXXXXXXXX.
2020-04-04 21:46:08 -05:00
Calvin Rose
081d132538
Address #321
...
Also improve docs for dofile and related functions.
2020-04-04 21:17:15 -05:00
Calvin Rose
bb5c478704
Switch to two digit sonames.
...
Janet's versioning scheme is not 'true' semantic versioning.
Minor versions can have and often do have breaking changes.
Although such breakages are mostly avoided, only limited effort is
made to prevent this, and no system is in place to verify this.
Thus, stricter version pinning is needed.
2020-04-04 18:30:18 -05:00
Calvin Rose
ff6601f29e
Add version and soversion to meson libjanet.
2020-04-04 18:04:22 -05:00
Calvin Rose
320c6c6f05
Increase NSIS installer verbosity.
2020-04-04 13:58:27 -05:00
Calvin Rose
6b89da4bb2
Use -Wl,-install_name,... on macos.
2020-04-04 13:44:21 -05:00
Calvin Rose
5b82b9e101
Address compiler warning on macos.
2020-04-04 13:34:16 -05:00
Calvin Rose
1d0e862129
Update Makefile for pkg-config issues and soname.
2020-04-04 13:09:59 -05:00
Calvin Rose
f089b2001f
Add several math functions to the math module.
2020-04-04 12:52:34 -05:00
Calvin Rose
9f8420bf50
Add jpm repl subcommand and post-deps macro for jpm.
...
This will allow more flexibility in writing jpm project files.
2020-04-03 19:33:54 -05:00
Calvin Rose
8275da63fb
Address #331 - Add :octal-permissions
2020-04-03 18:29:45 -05:00
Calvin Rose
72696600d8
Add :deps opiton to declare-executable.
...
This allows the addition of custom dependencies.
2020-04-03 17:53:41 -05:00
Calvin Rose
1aeb317863
Revise, revise, revise, and proofread.
2020-04-03 17:04:05 -05:00
Calvin Rose
b49b510732
Update os/link docstring.
2020-04-03 16:58:45 -05:00
Calvin Rose
a0d61e45d5
Change os/perm-str to os/perm-string.
2020-04-03 15:23:29 -05:00
Calvin Rose
95f1ef7561
Add umask support for windows, and allow parsing mode strings.
2020-04-03 15:14:11 -05:00
Calvin Rose
edb2fab64c
Merge branch 'master' of github.com:janet-lang/janet
2020-04-03 15:04:39 -05:00
Calvin Rose
464fb73d83
Add os/perm-int and os/perm-str.
...
This helps address #331 . While we could also
make os/stat return an integer, we don't do that yet
for api breakage reasons.
This also lets us use this logic on other functions
that take permission strings.
2020-04-03 15:02:12 -05:00
Calvin Rose
6a4e63a17d
Merge pull request #333 from andrewchambers/umask
...
Add os/umask.
2020-04-03 14:48:52 -05:00
Calvin Rose
168f94d29a
Merge pull request #330 from DEADB17/patch-1
...
Correct typo and match wording for consistency
2020-04-03 14:46:15 -05:00
Andrew Chambers
3c2b1baff2
Add os/umask.
2020-04-02 23:33:50 +13:00
Calvin Rose
f2815d7068
Actually run the installer in build_win.bat.
2020-04-01 09:26:20 -05:00
Calvin Rose
f48d9465f5
Fix appveyor.yml
2020-04-01 09:23:19 -05:00
Calvin Rose
6b1d5c6d7b
Work on improving deployment for windows.
2020-04-01 09:22:27 -05:00
Calvin Rose
789ef3608b
Make format.
2020-04-01 08:54:01 -05:00
DEADB17
57b08a57a0
Corret typo and match wording for consistency
2020-03-31 23:32:17 -04:00
Calvin Rose
5b6b9f1597
Prepare for 1.8.1 release.
2020-03-31 09:49:09 -05:00
Calvin Rose
47f246ba66
Merge pull request #329 from pepe/master
...
Fix typo flie
2020-03-31 09:17:39 -05:00
Josef Pospíšil
b6b70d54ef
Fix typo flie
2020-03-31 15:31:27 +02:00
Calvin Rose
417d9a14cc
s/yaml/yml/g in README.md
2020-03-31 08:03:38 -05:00
Calvin Rose
244566ccd4
Remove manual feature definitions in boot.
...
Instead, reuse features as defined in features.h
2020-03-31 07:52:20 -05:00
Calvin Rose
ca4a35c90a
Update CHANGELOG.md
2020-03-30 16:59:51 -05:00
Calvin Rose
e4ea8bc867
Fix features for bsd.
...
Don't define XOPEN_SOURCE unless we actually need it.
2020-03-30 15:38:03 -05:00
q66
5d840b944b
Fix wrong check on big endian systems
...
We can't randomly type pun random-sized types on big endian
systems.
2020-03-30 13:38:49 -05:00
q66
1e28876494
Fix typo in big endian unmarshalling code
...
This was subtly breaking everything.
2020-03-30 13:38:49 -05:00
q66
a40b2767c5
Fix endian check for little endian PowerPC and maybe others
...
This fixes various subtle breakage on ppc64le at very least.
2020-03-30 13:38:49 -05:00
Calvin Rose
279b536646
Prepare for 1.8.0 release.
2020-03-29 14:18:28 -05:00
Calvin Rose
ff163a5ae4
Use modulo instead of remainder for even?/odd?.
...
Works better for negative and fractional numbers.
2020-03-28 10:23:28 -05:00
Calvin Rose
65379741f7
Address edge case of reduce2 when ind is empty.
...
Same for accumulate 2.
2020-03-27 12:45:40 -05:00
Calvin Rose
3eb0927a2b
Add accumulate(2) and reduce2
...
These functions are variations on reduce and can be quite useful.
Improve error message for jpm as well.
2020-03-26 21:35:11 -05:00
Calvin Rose
a3a45511e5
Remove lockfile.janet
2020-03-26 00:40:03 -05:00
Calvin Rose
a20ea702e2
Add infinite loop detection and complex deps.
...
We needed to handle dependencies that had both a url
and a tag component.
2020-03-26 00:34:34 -05:00
Calvin Rose
d2d0300c7e
Remove use of cd in make-lockfile.
2020-03-26 00:12:18 -05:00
Calvin Rose
6e8aac984f
Update CHANGELOG.md
2020-03-25 21:06:45 -05:00
Calvin Rose
6721c70b9e
Fix typo in jpm.
2020-03-25 21:01:54 -05:00
Calvin Rose
b8c1c1c144
Get lockfile info from manifest, not cache.
...
Make manifest files track more information.
Use jdn to store manifest files, as well as repo url and
sha.
2020-03-25 20:58:53 -05:00
Calvin Rose
e380c01dd1
Add lockfiles to jpm.
...
Add make-lockfile and load-lockfile commands.
2020-03-25 19:44:30 -05:00
Calvin Rose
655633ef34
Tweak docstring.
2020-03-25 18:00:15 -05:00
Calvin Rose
3d1de237f6
Several changes to the os module.
...
- Add os/symlink
- Add os/realpath
2020-03-24 19:47:21 -05:00
Calvin Rose
6a63b13d69
Fix os/link docstring - Address #323
2020-03-21 16:18:58 -05:00
Calvin Rose
3aca5502dc
Allow :dst to be nil to set tm_isdst to be -1.
2020-03-18 22:23:27 -05:00
Calvin Rose
665f4bf248
Remove windows MSVC warnings about _stat.
2020-03-18 21:37:55 -05:00
Calvin Rose
b76ff3bdfc
Fix omission of daylight savings time in mktime
...
Since with daylight savings times, certain times
are ambiguous (the hours before and after the switch), mktime
needs to allow reading a dst flag.
2020-03-18 21:23:35 -05:00
Calvin Rose
00450cd9db
try and remove warnings on windows, format os.c.
2020-03-18 21:15:50 -05:00
Calvin Rose
c344a543b0
Merge pull request #318 from leahneukirchen/mktime
...
os/date fixes and os/mktime
2020-03-18 20:59:08 -05:00
Calvin Rose
554202f6e8
Merge branch 'master' of github.com:janet-lang/janet
2020-03-18 18:37:11 -05:00
Calvin Rose
7590cfc610
Update meson build file to try and fix LGTM.
2020-03-18 18:36:41 -05:00
Calvin Rose
eee8338064
Merge pull request #319 from leahneukirchen/lstat
...
os/lstat and os/readlink
2020-03-18 17:58:32 -05:00
Calvin Rose
3b5183a74e
Fixes #316 : os/execute should return non-zero on signals
...
Behave more like shells, and catch segfaults.
2020-03-18 17:49:20 -05:00
Leah Neukirchen
3ee43c3abb
add os/mktime, an inverse to os/date.
2020-03-18 23:45:02 +01:00
Leah Neukirchen
efdb13f0c7
os/date: allow negative timestamps.
...
Why not? Even on 32-bit time_t systems this lasts until late 1901.
2020-03-18 23:45:02 +01:00
Leah Neukirchen
f013c6e48d
os/date: check the second argument truthy, not the third.
2020-03-18 23:45:02 +01:00
Leah Neukirchen
6e67899401
Add os/readlink.
2020-03-18 20:05:48 +01:00
Leah Neukirchen
381dd1ce98
Add os/lstat.
2020-03-18 20:05:48 +01:00
Calvin Rose
b0d8369534
Increase reference accuracy of on-stack close envs.
...
Using a bitset to indicate which stack values are upvalues, we
can more accurately track when a reference to a stack value
persists after the stack frame exits.
2020-03-18 09:30:10 -05:00
Calvin Rose
4a7b18d841
Merge pull request #317 from andrewchambers/closureenvs
...
Add test cases for closure edge cases.
2020-03-17 22:05:35 -05:00
Andrew Chambers
7c4ffe9b9a
Add test cases for closure edge cases.
2020-03-18 15:40:41 +13:00
Calvin Rose
de4f8f9aaf
Marshal alive fibers in func envs as detached.
...
This will help with marshaling fibers.
2020-03-17 20:53:11 -05:00
Calvin Rose
6554cc4a8d
Merge branch 'master' of github.com:janet-lang/janet
2020-03-17 18:58:33 -05:00
Calvin Rose
fac47e8ecb
When marshalling a closure, try to detach funcenvs
...
If possible, this will reduce the need to marshal fibers
in many cases. Also add this logic to the GC so holding a closure
that originally came from a fiber that crashed does not cause that fiber
to hang around forever.
2020-03-17 18:55:32 -05:00
Calvin Rose
7443305039
Merge pull request #315 from andrewchambers/u64
...
Properly export u64_type
2020-03-16 17:15:20 -05:00
Andrew Chambers
635ae3a523
Properly export u64_type
2020-03-17 11:02:57 +13:00
Calvin Rose
4a05b4556e
Fix MSVC build warning.
2020-03-14 12:02:31 -05:00
Calvin Rose
c074615550
Revert to 9 char permission strings on windows.
2020-03-14 12:00:11 -05:00
Calvin Rose
bac2b74b3d
Add os/chmod.
2020-03-14 11:57:04 -05:00
Calvin Rose
a3aaa6634d
Use separate registry table for abstract types.
...
This avoids overloading the registry table, which is intended
for names of c functions.
2020-03-14 10:25:39 -05:00
Calvin Rose
6a3a983f43
Expose abstract type definitions in janet.h
...
This makes certain operations easier, and allows
more access to built in APIs.
2020-03-14 10:12:47 -05:00
Calvin Rose
7996edfef9
Update README.md - Fixes #308
2020-03-13 20:00:32 -05:00
Calvin Rose
0600b32908
Fix docstring for os/cd - Fixes #307
2020-03-13 15:01:48 -05:00
Calvin Rose
77343e02e9
Fixes #304
...
Add chr macro.
2020-03-10 22:46:50 -05:00
Calvin Rose
a3d4ecddba
Address #301
...
Incorrect bounds checking and offset calculation in buffer/blit.
2020-03-08 20:44:03 -05:00
Calvin Rose
65403ec9fe
Merge branch 'master' into net
2020-03-07 14:06:51 -06:00
Calvin Rose
3d3d314fb7
Remove warning about math.h on aarch64 ubuntu gcc.
2020-03-07 14:05:28 -06:00
Calvin Rose
90b3730a0a
Merge branch 'master' into net
2020-03-07 13:34:13 -06:00
Calvin Rose
3f3b756b61
Merge pull request #298 from leahneukirchen/m-del
...
Make alt-backspace behave like ctrl-w.
2020-03-07 10:14:14 -06:00
Calvin Rose
d3b9b8d452
For #293 , correct wildcards in dictinoaries.
2020-03-07 10:13:10 -06:00
Calvin Rose
390c042027
Update README.md
2020-03-07 09:49:25 -06:00
Calvin Rose
c864828735
Address #293 - wildcard to match macro.
...
The _ symbol will match any value without creating a binding.
2020-03-07 09:40:02 -06:00
Calvin Rose
e0c9910d85
Add :range-to and :down-to to loop.
...
Fully inclusive ranges are generally useful and
do not complicate implementation much.
2020-03-07 09:34:11 -06:00
Calvin Rose
e62f12426b
Update ci build files.
2020-03-06 18:11:29 -06:00
Calvin Rose
d3af50e4cc
Rename: s/yaml/yml/g
2020-03-06 17:42:35 -06:00
Calvin Rose
cbdb700edf
No need for doubly hidden files.
2020-03-06 17:35:03 -06:00
Calvin Rose
6010b95fca
Remove spaces from build manifests for sourcehut.
2020-03-06 17:30:36 -06:00
Calvin Rose
e351dde651
Update CHANGELOG.md and docs for loop and pp.
2020-03-06 17:12:06 -06:00
Calvin Rose
714bd61d56
Address #300
...
Check for empty capture stack in replace rule.
2020-03-06 10:05:20 -06:00
Calvin Rose
f9e9c70b6c
Update CHANGELOG.md
2020-03-06 08:40:51 -06:00
Calvin Rose
6123c41f13
Harden semantics for and and or macros.
...
There was perviously a bit of fuzziness on returning false/nil
from these macros that has been removed.
2020-03-06 08:37:59 -06:00
Leah Neukirchen
1aaa5618de
Make alt-backspace behave like ctrl-w.
...
Another common binding in readline and its clones.
2020-03-06 10:55:45 +01:00
Calvin Rose
16202216b2
Address #291
...
When resuming a fiber with a child, the root fiber was set incorrectly.
2020-03-05 19:18:45 -06:00
Calvin Rose
8f1527712e
Merge branch 'master' into net
2020-03-05 18:08:35 -06:00
Calvin Rose
fbe8998ca8
Merge branch 'master' of github.com:janet-lang/janet
2020-03-05 09:35:04 -06:00
Calvin Rose
47e8f669f5
Fix match behavior for lone nil.
2020-03-05 09:35:00 -06:00
Calvin Rose
d804ee3c07
Merge pull request #296 from leahneukirchen/ctrl-d
...
Make ctrl-d behave like delete, but exit on an empty line.
2020-03-04 20:42:05 -06:00
Calvin Rose
06a78d90d9
Merge pull request #295 from leahneukirchen/meson-pkgconfig
...
Create janet.pc also from Meson.
2020-03-04 20:39:24 -06:00
Leah Neukirchen
bc2ebce086
Make ctrl-d behave like delete, but exit on an empty line.
...
This is the default readline behavior.
2020-03-04 14:56:04 +01:00
Leah Neukirchen
a07de921d0
Create janet.pc also from Meson.
2020-03-04 14:35:57 +01:00
Calvin Rose
6bc67b70a6
Address #294
...
Correct invalid format string, which masked a panic
with another, less useful panic.
2020-03-03 22:26:26 -06:00
Calvin Rose
f06addfe06
For #240 , address case when LDCONFIG is empty
2020-03-03 18:13:25 -06:00
Calvin Rose
7c2c50ee16
For #240 - don't run ldconfig for DESTDIR installs.
2020-03-03 18:03:44 -06:00
Calvin Rose
8580d3c27e
Address #240 - Support DESTDIR in Makefile.
2020-03-03 17:45:59 -06:00
Calvin Rose
951e10f272
Address #292
...
Faulty Makefile fallback.
2020-03-03 08:21:14 -06:00
Calvin Rose
2349ea9405
Update docs for buffer/push-word
...
Should be little endian, not big endian.
2020-03-01 12:05:24 -06:00
Calvin Rose
b17bf259f7
Fix typo: destory -> destroy
2020-02-28 09:04:28 -06:00
Calvin Rose
6b093bdcca
Address #288 and partially #287
...
The %q formatter for janet_formatc now expects a Janet, not a JanetString or
JanetSymbol or JanetKeyword.
Also fix some reference counting issues with threads when destroying
threads, which should fix #287 's
SIGSEGV. Still fails to send messages sometimes, though.
2020-02-27 17:58:17 -06:00
Calvin Rose
10ec319c32
Add better debug info to amalgamated source.
2020-02-27 00:16:54 -06:00
Calvin Rose
8cb63cebbe
Remove 'make test-amalg' from CI.
2020-02-25 20:31:38 -06:00
Calvin Rose
7d26de6697
Update changelog.
2020-02-25 20:08:22 -06:00
Calvin Rose
8262290bff
Improve C string format (janet_formatc, janet_panicf)
...
The supported formatters here now match up more with
the string/format, buffer/format, printf, eprintf, etc.
2020-02-25 20:05:45 -06:00
Calvin Rose
2779037f13
Clean up Makefile.
2020-02-25 20:02:03 -06:00
Calvin Rose
734c85d7ef
Properly handle recursion with labels.
...
Use an empty buffer, which has pointer equality semantics, for
tag from a label.
2020-02-23 17:35:01 -06:00
Calvin Rose
05bd5767de
Add label macro.
...
A lexically scoped version of prompt is often useful.
2020-02-23 17:15:04 -06:00
Calvin Rose
59d288c429
Add prompt and return.
...
User friendly delimited continuations. While this was doable with
signals before, this does not require C and will play nicely with
existing error handling, defers, and with statements.
2020-02-23 16:46:54 -06:00
Calvin Rose
8c41c0b6a7
Address MSVC warning.
2020-02-23 15:27:57 -06:00
Calvin Rose
f5f3858da1
Update CHANGELOG.md
2020-02-23 14:55:21 -06:00
Calvin Rose
738490e674
Allow function that takes 1 argument to fiber/new.
...
This allows reuse of closures when creating many fibers.
2020-02-23 14:47:29 -06:00
Calvin Rose
6a13703e32
Add signal and fiber/can-resume?.
...
These additions, along with the change that user signals 0-4 cannot
be resumed, allow delimited continuation semantics, while repsecting
existing forms like `defer`, `with`, `with-vars`, etc.
2020-02-23 13:31:27 -06:00
Calvin Rose
20d5d560f3
Add bf to main test suite.
2020-02-22 19:18:08 -06:00
Calvin Rose
aaabca6fc7
Make flychecker handle more kinds of defs.
...
This should help when redefining certain forms. Will also
not do functional arity checking against nil forms, as that
is the default value when a def doesn't evaluate.
2020-02-21 21:20:40 -06:00
Calvin Rose
4b440618d6
Correct docs for type form.
2020-02-21 20:22:43 -06:00
Calvin Rose
01a79dc965
Remove extra functionality.
2020-02-20 20:10:03 -06:00
Calvin Rose
0df220780a
Fix issues with #282
...
Bad handling of write errors, as well as janet_root_fiber().
2020-02-20 19:54:31 -06:00
Calvin Rose
a360cb7922
Update marshal to take 3 arguments.
2020-02-15 10:04:44 -06:00
Calvin Rose
b9a2bb8104
Fix documentation for defer.
2020-02-12 09:34:23 -06:00
Calvin Rose
f4a46ba6ea
Add methods to streams.
...
This makes streams polymorphic with files in many cases.
printf family functions still need porting.
2020-02-12 09:32:41 -06:00
Calvin Rose
79bb9e54d5
Remove direct references to file descriptors.
...
If a descriptor is freed by the Janet code, other
uses of that descriptor, say in the event loop, need
to know that it has been closed.
2020-02-11 08:57:44 -06:00
Calvin Rose
135aff9e17
Add janet_loop() call to static binaries.
2020-02-09 20:02:35 -06:00
Calvin Rose
8ae6ae65a1
Merge branch 'master' into net
2020-02-09 20:00:58 -06:00
Calvin Rose
f4d7fd97f6
Working TCP echo server and client.
...
Required a few changes to APIs, namely janet_root_fiber()
to get topmost fiber that is active in the current scheduler.
This is distinct from janet_current_fiber(), which gets the bottom
most fiber in the fiber stack - it might have a parent, and so cannot
be reliably resumed.
This is the kind of situation that makes symmetric coroutines more
attractive.
2020-02-09 20:00:50 -06:00
Calvin Rose
031a9894b0
Update inlining options for next and resume.
2020-02-08 13:03:03 -06:00
Calvin Rose
fcc09d7ea9
Clarify docs for some and all.
2020-02-05 21:06:39 -06:00
Calvin Rose
7f1f684b21
Merge branch 'master' into net
2020-02-03 20:46:32 -06:00
Calvin Rose
d8d482e433
Merge branch 'master' of github.com:janet-lang/janet
2020-02-03 18:18:29 -06:00
Calvin Rose
3fdc053d6c
Add flush and eflush ( #278 )
...
These functions interact with Janet's dynamically scoped
IO functions in a manner that is more useful the file/flush.
We can still redirect to a buffer without changing our code.
2020-02-03 18:14:32 -06:00
Calvin Rose
8be3ce18aa
Merge pull request #280 from pepe/fix-next-arity
...
Fix next function arity
2020-02-03 18:00:36 -06:00
Calvin Rose
eda61455d3
Work on tcp server code.
2020-02-03 09:29:51 -06:00
Josef Pospíšil
00107c092c
Fix next function arity
2020-02-03 15:36:42 +01:00
Calvin Rose
c5907258c3
Merge branch 'master' into net
2020-02-02 13:16:47 -06:00
Calvin Rose
64e1961193
Update version strings to 1.7.1-dev.
2020-02-02 09:38:44 -06:00
Calvin Rose
f7ee8bd30d
Update to version 1.7.0.
2020-02-01 23:35:17 -06:00
Calvin Rose
c0d2140d14
Begin net/ module in core.
...
Humble beginnings.
2020-02-01 20:39:54 -06:00
Calvin Rose
1bdde9c4f7
Fix warnings.
2020-01-28 23:46:14 -06:00
Calvin Rose
333ae7c4f8
Make amalgamtion the default when building.
...
This way we can support fewer build configurations. Also, remove
all undefined behavior due to use of memcpy with NULL pointers. GCC
was exploiting this to remove NULL checks in some builds.
2020-01-28 23:38:52 -06:00
Calvin Rose
f7b7c83264
Address #276
2020-01-25 12:08:43 -06:00
Calvin Rose
6f9c9879ca
Add var-
...
We had defn-, def-, defmacro-, but no var-.
2020-01-24 22:52:28 -06:00
Calvin Rose
b8df47e063
Fix regression in take/drop.
2020-01-24 17:39:25 -06:00
Calvin Rose
9dad8bf56d
Remove min-order and max-order.
...
Also address #275 by exposing lflags and cflags
to declare-executable
2020-01-24 17:35:21 -06:00
Calvin Rose
689f2dcbb4
Change default import prefix.
...
Changed from `(string path "/")` to
`(string (last (string/split "/" path)) "/)`.
2020-01-24 16:54:06 -06:00
Calvin Rose
163e2a5b22
Add string support to %j format.
2020-01-24 08:52:27 -06:00
Calvin Rose
e36334e14b
Revert issue with removing buffer self print check.
2020-01-23 23:39:49 -06:00
Calvin Rose
60304c7e27
Update CHANGELOG.md
2020-01-23 19:07:09 -06:00
Calvin Rose
28d41039b8
Add mod function to core.
...
The `mod` function is a pair function with `%`, or te remainder
function and is distinct from it. This is taken from common lisp.
2020-01-23 18:54:30 -06:00
Calvin Rose
b8d530da36
Remove file/fileno and file/fdopen.
...
Also fully add call function pointer to
abstract types, including in methods, etc.
2020-01-23 09:01:33 -06:00
Calvin Rose
4fad0714e7
Add janet_gcpressure. Address #269 .
2020-01-22 20:52:35 -06:00
Calvin Rose
ca17eb4a2b
Address #273
2020-01-22 19:01:49 -06:00
Calvin Rose
4fe005e3c3
Add righthand operator overloading.
...
This is like python. Now, we just need to readd fuzzy
comparisons to have what python needs. Overloading
math functions would be neat, too.
2020-01-22 18:59:41 -06:00
Calvin Rose
2f9ed8a572
Use memmove instead of copying.
...
Also some comment things, and re-add old code from linenoise.
It seems to have a purpose for some keyboard layouts, so I will leave
it.
2020-01-21 23:11:00 -06:00
Calvin Rose
688e18a891
Merge pull request #268 from crocket/master
...
Make REPL key bindings more similar to those on GNU readline.
2020-01-21 23:09:45 -06:00
crocket
8162c64ca3
Make REPL key bindings more similar to those on GNU readline.
...
* I deleted Alt-H and Alt-L because Ctrl-F and Ctrl-B serve the same
roles.
* Ctrl-W, Alt-D, Alt-F, and Alt-B behave more similarly to the same
key bindings on GNU readline.
* Improved documentation of REPL keybindings on man page.
* Home and End keys now work on more terminal environments.
* Removed bindings for `Esc OH` and `Esc OF` because andrewchambers
doesn't need those bindings and the bindings don't seem to make much
sense for Home and End. `Esc O` is Single Shift Select of G3 Character
Set in xterm. https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
2020-01-22 13:55:44 +09:00
Calvin Rose
e179f26d50
Add call function pointer to abstract types.
...
This will allow better JITs, FFIs, DSLs, etc.
2020-01-21 18:22:24 -06:00
Calvin Rose
8db68c04c4
Merge branch 'master' of github.com:janet-lang/janet
2020-01-21 17:48:54 -06:00
Calvin Rose
7c92c64730
Remove mutable operators on inttypes.
...
Mutations break hash table invariants, are a rather
silly performance optimization for a language like Janet.
2020-01-21 17:47:34 -06:00
Calvin Rose
01c6ffe1d5
Merge pull request #266 from andrewchambers/idempotentclose
...
Make file/close idempotent.
2020-01-21 10:16:06 -06:00
Andrew Chambers
46f57f5c38
Make file/close idempotent.
...
It is easier to use constructs like defer
with complex control flow if it is safe to close
a file twice.
2020-01-21 22:03:57 +13:00
Calvin Rose
1ec2e08f21
Add manpage docs for repl keybindings.
2020-01-20 17:29:29 -06:00
Calvin Rose
77742dec11
Add source file info on macro compiler error.
2020-01-20 16:45:57 -06:00
Calvin Rose
3cb947b37e
Fix macro errors.
...
debug/stacktrace was being called incorrectly.
2020-01-20 16:05:08 -06:00
Calvin Rose
62cf407f0c
Remove lto.
...
Gosh Darnit, Travis!
2020-01-20 13:53:59 -06:00
Calvin Rose
bbed72f39f
Only enable lto on linux for now.
...
Was failing with clang, as the default clang linker doesn't
do LTO.
2020-01-20 13:37:10 -06:00
Calvin Rose
99c94a78d6
Add -flto to jpm builds as well.
2020-01-20 13:28:57 -06:00
Calvin Rose
2dd852da54
Use ATEND macros to add fields to abstract types.
...
This means we can add new properties to abstract types without
breaking old code. We can also make simple abstract types without
needing to add many NULL fields to the type.
2020-01-20 13:06:50 -06:00
Calvin Rose
3c87d89df3
Enable LTO by default
...
Most compilers support it, and it gives a good perf increase OOTB.
2020-01-20 11:38:22 -06:00
Calvin Rose
f4ad627b54
Fix regression in while loops inside each macros.
...
There was a specialization for `(while (not= nil _) ...)` that
was incorrect when the while loop regresses to a thunk.
2020-01-19 16:25:10 -06:00
Calvin Rose
68a5667a1a
Add history first and history last shortcuts.
...
Alt-, and Alt-.
2020-01-19 15:45:04 -06:00
Calvin Rose
693c6d63d4
Add alt-d binding to repl.
2020-01-19 11:39:10 -06:00
Calvin Rose
f18c3323ea
Clear completion list if fully complete.
2020-01-19 11:31:42 -06:00
Calvin Rose
f74e19e673
Improve alt keys and at alt-f and alt-b to repl
2020-01-19 11:16:41 -06:00
Calvin Rose
da70807292
Make autocompletion more zsh like
...
Also add a few ctrl sequences from readline, and
ignore unknown ctrl sequences.
Address #264
Adds Ctrl-n, Ctrl-p, and Ctrl-w
Ignores unknown ctrl sequences
No alt-* sequences yet.
2020-01-19 10:38:35 -06:00
Calvin Rose
9f8bc6bb8a
Please, sir hat?
2020-01-18 21:00:06 -06:00
Calvin Rose
64b9482602
Make history not duplicate itself in getline.
2020-01-18 20:56:35 -06:00
Calvin Rose
8fbcae6029
Remove -march=native from Makefile
...
Instead, one can pass in CFLAGS to make
2020-01-18 20:01:12 -06:00
Calvin Rose
064475cb8d
Add eachk and eachp.
...
These should make iterating over datastructures easier
without needing the loop macro.
2020-01-18 18:46:49 -06:00
Calvin Rose
f4077b678a
Allow calling next on abstracts.
...
This will allow the creation of infinte
streams, low cost generators, etc.
2020-01-18 18:09:20 -06:00
Calvin Rose
51678c1aba
Extend power of the each form
...
This changes the implementation of the `next` function which
is now used to implement each. This let's us iterate over
more types, not just tables and structs.
2020-01-18 17:55:07 -06:00
Calvin Rose
17a2fdbf1b
Update for sourcehut builds.
...
We needed to include repo in sources array.
2020-01-18 14:42:02 -06:00
Calvin Rose
65d7c3eed1
Use stderr for getline output instead of stdout.
2020-01-18 14:34:29 -06:00
Calvin Rose
41bb8c543b
Merge branch 'master' of github.com:janet-lang/janet
2020-01-18 09:46:37 -06:00
Calvin Rose
bbd7355313
Merge pull request #259 from andrewchambers/futureproofhash
...
Make hash api more future proof.
2020-01-18 09:45:47 -06:00
Calvin Rose
772916593b
Address #262
...
Pressing tab only does one thing at a time.
2020-01-18 09:44:59 -06:00
Calvin Rose
9d8af7355f
Improve getline.
2020-01-18 00:30:46 -06:00
Calvin Rose
521a29446f
Don't rely on obscure printf features.
...
They may not work on all platforms.
2020-01-18 00:27:40 -06:00
Calvin Rose
a8e4c4bed0
Add special forms and sort completions.
...
Also fix case when no completion is needed.
2020-01-18 00:17:08 -06:00
Calvin Rose
6471b4d100
Add preliminary repl completion via tab.
2020-01-17 23:03:50 -06:00
Calvin Rose
7f9b2b34d1
Clarify import docs for dynamic bindings.
2020-01-17 18:06:00 -06:00
Calvin Rose
789c5f135a
Add ctrl-a and ctrl-e to control line in repl
...
Emacs to start of line and to end of line key bindings.
2020-01-17 09:33:30 -06:00
Andrew Chambers
344f0b743d
Make hash api more future proof.
2020-01-17 17:25:40 +13:00
Calvin Rose
d8841de180
Address #188
...
Delete repo folder if clone fails.
2020-01-16 22:14:23 -06:00
Calvin Rose
23c7c3bf1c
Allow disabling keyed hash function (prf) in conf
...
In some cases, one might want to disable what is currently
SipHash for speed / better security mechansims. For example, using
red black trees for caches rather than hash tables.
2020-01-16 21:06:03 -06:00
Calvin Rose
3d117804dd
Merge branch 'master' into HEAD
2020-01-16 20:08:34 -06:00
Calvin Rose
77bb0ebe3f
Add limits to format to discourage huge prints.
...
This should make system crashing prints happen less often in repl.
Instead, display a ...
2020-01-16 18:57:01 -06:00
Calvin Rose
6d9e51e4be
Fix documentation for if-with.
...
It was the same as when-with.
2020-01-16 18:12:05 -06:00
Calvin Rose
174ff87946
Change printing of abstracts with tostring in pp
...
This change makes pretty printing not hide "abstractness".
2020-01-16 18:10:17 -06:00
Andrew Chambers
ea02b2fde9
Use siphash for string hashing.
...
The hash key still needs to randomly initialized
for the security advantage, but this patch is a
step closer to avoiding hash based DOS.
Further work may including exposing the raw hash
function for use by abstract types who also choose to
implement hash.
2020-01-17 12:06:55 +13:00
Calvin Rose
962cd7e5f5
Add when-with and if-with
...
This is useful for reading from files.
2020-01-15 22:56:40 -06:00
Calvin Rose
65be9ae095
Add defer and assert to the core.
2020-01-15 22:39:14 -06:00
Calvin Rose
bc2bac8cd3
Fix memory issue in allocating decode buffer.
...
Since the decode table is currently a single table
per thread, we just make it a thread local to avoid
issues.
2020-01-15 19:58:14 -06:00
Calvin Rose
b567ece401
Address #252
...
Add repeat form (instead of exactly).
2020-01-14 19:58:03 -06:00
Calvin Rose
f001b0a40c
Update Changelog
...
Also change how add-body in jpm works. We keep an array of thunks
instead of a single thunk.
2020-01-13 20:51:11 -06:00
Calvin Rose
04579664fd
update parse.c
2020-01-12 22:43:39 -06:00
Calvin Rose
f709d7eb40
Add module/add-paths
...
This should make it much easier to make custom DSLs work
well with the import system. No need to mess about with import paths,
things will just work.
2020-01-12 20:59:45 -06:00
Calvin Rose
2df8660f8b
Avoid buffer overrun
...
On very long binding names > 256 characters, a buffer overrun would be
trigger in janet_cfuns. Not a huge issue, since this is not really code
that would ever be user facing, but we can fix this.
2020-01-12 11:31:41 -06:00
Calvin Rose
a68ee7aac6
Update Copyright 2020.
2020-01-12 10:50:37 -06:00
Calvin Rose
f0e04e734c
Test for regressions in #249
...
Use two separate natives in compiled executable.
2020-01-12 10:45:59 -06:00
Calvin Rose
0e7cf51890
Fix MSVC warnings.
2020-01-12 10:19:51 -06:00
Calvin Rose
b54d9725d8
Fix MSVC errors.
2020-01-12 10:18:03 -06:00
Calvin Rose
2f0570aad6
Address #249
...
If JANET_ENTRY_NAME is defined, we are compiling into a single binary.
In this case, we don't want to define the config symbol multiple times
with same name, as this causes the linker error.
2020-01-12 10:13:06 -06:00
Calvin Rose
3d40c95e80
Add ability to Janet signal from C functions.
...
While C functions are not re-entrant, signaling from a C function
can be used to implement async returns. When resuming a fiber that
signalled from within a C function, the fiber is started after the
instruction that emitted the signal. The resume argument is used
as the return result from the c function.
2020-01-10 20:44:16 -06:00
Calvin Rose
ed5027db5d
Address #242
...
Synchronize critical sections in setenv/getenv/environ.
2020-01-06 22:41:18 -06:00
Calvin Rose
c4047f3f88
Merge pull request #247 from andrewchambers/getenvdflt
...
Optional default value for os/getenv.
2020-01-06 17:27:33 -06:00
Andrew Chambers
ec1a06cfaf
Optional default value for os/getenv.
2020-01-07 11:21:05 +13:00
Calvin Rose
17e47a798c
Address #244
2020-01-05 09:26:21 -06:00
Calvin Rose
212aceedc6
Fix useless type conversion.
2020-01-02 22:12:07 -06:00
Calvin Rose
e6f897f4ef
Merge branch 'master' of github.com:janet-lang/janet
2020-01-02 22:10:13 -06:00
Calvin Rose
6c7f376410
Try to remove potential overflow bugs.
...
Also make integer to size_t casts explicit rather than relying on
int32_t * sizeof(x) = size_t. This is kind of a personal preference for
this problem.
2020-01-02 22:08:17 -06:00
Calvin Rose
e93e237c67
Merge pull request #236 from andrewchambers/scratch_calloc
...
Add scratch calloc.
2020-01-02 20:29:10 -06:00
Calvin Rose
a1cd759759
Merge branch 'master' of github.com:janet-lang/janet
2020-01-02 20:28:10 -06:00
Calvin Rose
a2c45a697b
Address #234 in array.c
2020-01-02 20:27:38 -06:00
Andrew Chambers
acdbf8911c
Add scratch calloc.
2020-01-03 12:10:17 +13:00
Calvin Rose
9269372768
Merge pull request #235 from theosotr/fix
...
Fix faults in Make build
2020-01-02 15:05:04 -06:00
Thodoris Sotiropoulos
5575e7577a
Fix faults in Make build
2020-01-02 22:15:55 +02:00
Calvin Rose
ef02dacdb4
Update changelog.
2019-12-31 12:17:32 -05:00
Calvin Rose
c6b639b939
Add comptime error test.
2019-12-31 12:16:19 -05:00
Calvin Rose
0b0fb18c42
Can we fix NSIS?
2019-12-31 12:10:57 -05:00
Calvin Rose
b872ee024f
Add test for issue #232
2019-12-31 11:36:21 -05:00
Calvin Rose
a15d841b5b
Address #232
...
Fix segfault on macro arity mismatch in compile.c by adding missing return statements.
2019-12-31 11:33:03 -05:00
Calvin Rose
bfb638cfc2
Try EnVar_plugin for updating path.
...
This should be more robust and not fail after upgrading.
2019-12-31 10:26:54 -05:00
Calvin Rose
3a47ad5d99
Remove some NSIS cruft to see if we can fix 3.05
2019-12-31 09:49:50 -05:00
Calvin Rose
e3c88295f2
Update to NSIS 3.05
...
Lock version in appveyor.yml
2019-12-31 09:40:36 -05:00
Calvin Rose
75bb8fbcd1
Amalg script included janet.h before test macros.
2019-12-30 22:08:12 -05:00
Calvin Rose
9cb25ad7b1
Remove some feature test macros.
...
_BSD_SOURCE is deprecated and not needed.
2019-12-30 21:30:13 -05:00
Calvin Rose
f361830cb2
Update feature test macro in line.c
2019-12-30 20:24:40 -05:00
Calvin Rose
9dd152dc28
Add features.h for feature test macros.
...
Because we use an amalgated build, feature
test macros should be set in a single file that
is included before any other headers, and is placed
at the top of the amalgamated build.
2019-12-30 19:06:15 -05:00
Calvin Rose
2ba4337e6f
Remove all feature test macros from janet.h
...
This should help improve compatibility with other C code.
2019-12-30 15:12:17 -05:00
Calvin Rose
48fcd927ab
Merge branch 'master' of github.com:janet-lang/janet
2019-12-30 14:26:38 -05:00
Calvin Rose
407d8af026
Address #233
...
Move _POSIX_C_SOURCE to internal header.
2019-12-30 12:31:26 -05:00
Calvin Rose
d0570b55b1
Merge pull request #231 from andrewchambers/tempfile
...
Add file/temp.
2019-12-29 20:00:17 -05:00
Calvin Rose
a964a95c1e
Fix warnings on BSDs.
2019-12-29 19:53:35 -05:00
Andrew Chambers
c2f8441572
Add file/temp.
2019-12-30 12:00:35 +13:00
Calvin Rose
099a957e6c
Update macex1 to properly handle break
...
Things mostly worked fine, but technically
break should be handled as a special form not a function call.
2019-12-29 16:44:53 -05:00
Calvin Rose
a2e515ab89
Merge pull request #230 from andrewchambers/file_api
...
Extend file api to allow creating and checking.
2019-12-29 10:22:03 -05:00
Andrew Chambers
2bebace8eb
Extend file api to allow creating and checking.
2019-12-30 04:02:46 +13:00
Calvin Rose
5142722da3
Remove aliases for deprectaed functions.
2019-12-28 17:51:05 -05:00
Calvin Rose
52dd0f132a
Remove emscripten build.
...
Prefer using custom toolchain with amalgmated build.
2019-12-28 16:11:15 -05:00
Calvin Rose
022be217a2
Remove ==, not==, and order[<,<=,>,>=].
...
This unifies equality and comparison checking. Before, we had
separate functions and vm opcodes for comparing general values vs.
for comparing numbers, where the numberic functions were polymorphic and
had special cases for handling NaNs. By unfiying them, abstract types
can now better integrate with other number types and behave as keys.
For now, the old functions are aliased but will eventually be removed.
2019-12-28 16:04:15 -05:00
Calvin Rose
5528bca7a9
Version bump to dev version.
2019-12-28 11:58:40 -05:00
Calvin Rose
ae474bc8d0
Merge pull request #228 from andrewchambers/pclose
...
Expand docs to explain pclose semantics.
2019-12-28 08:27:16 -05:00
Andrew Chambers
ddc4274314
Expand docs to explain pclose semantics.
2019-12-28 15:24:10 +13:00
Calvin Rose
da93a73dbd
Version bump to 1.6.0.
2019-12-22 12:09:56 -05:00
Calvin Rose
31f8778aa3
Fix makensis invocation.
2019-12-19 13:46:59 -05:00
Calvin Rose
0ecd74d01d
Echo calculated version.
2019-12-19 13:45:38 -05:00
Calvin Rose
bd20b16a32
Capture typo.
2019-12-19 13:28:17 -05:00
Calvin Rose
933f4b9111
build_win.bat: Parse out smv of janet/version.
2019-12-19 13:25:45 -05:00
Calvin Rose
3492ed6d88
Windows installer pulls version from interpreter.
...
This should make version updates simpler. Also
try an make installer write to ProgramFiles instead
of ProgramFiles (x86) for 64 bit build.
2019-12-19 13:18:46 -05:00
Calvin Rose
e28262f5ab
Add array/fill
...
This function has similar semantics to buffer/fill.
2019-12-19 12:58:11 -05:00
Calvin Rose
94246f7574
Use infinite timeout to indicate non-blocking.
...
Makes more sense than negative numbers.
2019-12-18 16:07:06 -05:00
Calvin Rose
07b0ef1648
Throw error on bad thread creation.
2019-12-18 15:49:57 -05:00
Calvin Rose
6a39c4b91d
Pass thread body explicitly in thread/new.
...
Doing it via thread/send make sense, but is a bit
strange. Passing the body explicitly will make more
sense to API users.
2019-12-18 15:07:46 -05:00
Calvin Rose
b9f0f14e31
Add array/new-filled
...
Similar function signature to buffer/new-filled.
2019-12-18 13:02:50 -05:00
Calvin Rose
4238379552
Use _setjmp/_longjmp on BSDs.
...
This doesn't save the signal mask so should be a bit faster.
2019-12-18 12:18:31 -05:00
Calvin Rose
8cc43ad2d1
Fix debugger example.
2019-12-17 23:06:41 -06:00
Calvin Rose
94b472df64
Update jpm with show-paths
...
Update CHANGELOG.md as well.
2019-12-15 22:02:33 -06:00
Calvin Rose
2b2c1ff917
Get rid of warning on BSDs.
2019-12-15 16:04:43 -06:00
Calvin Rose
c7912249b2
Typo in #ifdef.
2019-12-15 15:56:26 -06:00
Calvin Rose
b8004555ea
Start cleaning up defines in janet.h
2019-12-15 15:41:58 -06:00
Calvin Rose
58ff7f0788
BSD os.c fix with arc4random.
2019-12-15 12:47:12 -06:00
Calvin Rose
f1afc5b0b4
Address #214
...
This adds several common patterns, which are defined in
boot.janet. This essentially gives more primitive patterns
to work with out of the box.
Fix build when JANET_REDUCED_OS is defined.
2019-12-14 20:39:14 -06:00
Calvin Rose
bc8ee207d5
Address #219 .
...
Adds several shorthands to the C API.
2019-12-14 11:31:46 -06:00
Calvin Rose
76342540dc
Add buffer/fill. Address #221
2019-12-14 10:54:29 -06:00
Calvin Rose
56784a34a1
Address #224 - Exposed file flags in janet.h
...
A caller can check if a file is closed with
if (flags & JANET_FILE_CLOSED) ...
2019-12-14 09:03:56 -06:00
Calvin Rose
eca42e98f6
Update CHANGELOG.md
2019-12-12 19:39:00 -06:00
Calvin Rose
c3f1b54171
Update jpm path settings.
...
This will make it easier to use jpm as a per-project
management tool, as well as easier to set up individual
module trees.
2019-12-12 19:35:40 -06:00
Calvin Rose
9b7d642c38
Window x86 needs isnan.
2019-12-12 19:04:13 -06:00
Calvin Rose
f24e2f8706
Update CHANGELOG.md
2019-12-12 17:51:49 -06:00
Calvin Rose
aa7f3411f5
Use JANET_SINGLE_THREADED to disable threads.
2019-12-12 17:39:22 -06:00
Calvin Rose
5b9eda5e87
Add root-env
...
This makes images smaller without needing to make sure
that no references to the root environment occur in the final
image.
2019-12-12 17:25:04 -06:00
Calvin Rose
7c2ae45809
Fix some merge issues.
...
Make everything compile, and test-install pass.
2019-12-12 17:14:36 -06:00
Calvin Rose
36b2f27873
Merge branch 'master' into threads-3
2019-12-12 17:07:03 -06:00
Calvin Rose
b8e02afd1a
Improve error messages in os.c and jpm
...
In os/* functions, show failed path name. In jpm, indicate
a permission issue if we can't stat the file.
2019-12-12 03:20:20 -06:00
Calvin Rose
0fc36aa5d0
Signal to pending threads more often.
2019-12-12 02:19:56 -06:00
Calvin Rose
38f7e256d0
Port threads code to Windows API
...
Can run demo in examples/threads.janet
2019-12-10 20:32:41 -05:00
Calvin Rose
4187c972a3
Switch to multiple buffers per mailbox.
...
Needs less copying.
2019-12-10 13:26:00 -06:00
Calvin Rose
2d5af32660
Refine typedefs.
2019-12-09 20:12:10 -06:00
Calvin Rose
e592b24333
Added some type aliases to janet.h
...
This should make it clearer if a pointer is really just a
plain pointer, or a pointer with a header.
2019-12-09 20:05:53 -06:00
Calvin Rose
8700a407ce
Update janet_getmethod to better match new get api.
2019-12-09 18:45:05 -06:00
Calvin Rose
8ecf359bbe
Merge pull request #226 from andrewchambers/abstractget
...
Abstract type getters can indicate key absence.
2019-12-09 18:39:40 -06:00
Calvin Rose
eb1988a5ae
Update CHANGELOG.md
2019-12-09 18:26:58 -06:00
Calvin Rose
5b6dffe93d
Version bump.
2019-12-09 18:04:38 -06:00
Calvin Rose
1a6eb52f11
Add protect macro.
...
A more functional version of try catch.
2019-12-09 17:32:02 -06:00
Andrew Chambers
57ccfb692c
Abstract type getters can indicate key absence.
...
This change to the c api allows abstract types to indicate
to the runtime if a key was absent, or if it meant to return nil.
2019-12-09 16:50:33 +13:00
Calvin Rose
eb1c21b0da
Fix some example issue and warnings under -Os.
2019-12-08 12:40:05 -06:00
Calvin Rose
66d82c4513
Add mailbox capacity for back pressure.
...
(thread/send thread msg &opt timeout) can now timeout. Also
changed thread/self to thread/current for better consistency with
fibers, and all blocking operations will by default timeout after 1
second. I think its bad to make things block forerver by default.
2019-12-08 12:30:30 -06:00
Calvin Rose
c9c4424261
Add thread/self.
2019-12-07 17:54:08 -06:00
Calvin Rose
131733549d
Get mailbox API working.
2019-12-07 16:51:00 -06:00
Calvin Rose
ee646dadf2
Merge branch 'master' into threads-3
2019-12-07 12:14:44 -06:00
Calvin Rose
73f5314141
Work on moving to mailbox abstraction.
...
Should be more efficient in the common case.
2019-12-07 12:14:16 -06:00
Calvin Rose
4c5734c2ee
Update CHANGELOG.md
2019-12-07 10:35:40 -06:00
Calvin Rose
546669082f
New unmarshal proposal.
...
Gives more control over unmarshalling
abstract types. This should also
make it possible/easy to write abstract types that cannot
cause unmarshal to segfault.
2019-12-06 22:12:18 -06:00
Calvin Rose
4a0ee5df7d
Address #215
...
Also update docs for module/expand-path.
2019-12-06 19:54:11 -06:00
Calvin Rose
4de6c2ad61
Address #211
...
Scripts run from the command line will automatically
call a main function if it exists.
2019-12-06 19:14:12 -06:00
Calvin Rose
1fa7e73c58
Address #218
...
Quote output to :lfags in meta data.
2019-12-06 18:45:29 -06:00
Calvin Rose
0e690b4fa0
Add timeout to thread/receive.
...
If provided, throws an error if no message is received before
timeout. Perhaps should return nil?.
2019-12-06 09:21:36 -06:00
Calvin Rose
c804ae9f7c
Update threads.c to avoid a deadlock.
2019-12-06 01:46:23 -06:00
Calvin Rose
dbcceefc20
Fix bad merge.
2019-12-04 22:41:30 -06:00
Calvin Rose
1a4035b02c
Merge branch 'master' into threads-3
2019-12-04 22:39:30 -06:00
Calvin Rose
e908029392
Work on thread/receive doubling as select.
2019-12-04 22:31:01 -06:00
Calvin Rose
fd4220f254
Keep single global pthread_cond_t per thread.
...
This will allow thread/select to be implemented.
Also add thread/close and close method to threads.
2019-12-04 21:44:53 -06:00
Calvin Rose
de6c3d6d70
Simplify structure JanetThread and JanetChannel.
...
Remove JanetThreadShared.
2019-12-04 21:04:43 -06:00
Calvin Rose
77cb823719
Update CHANGELOG.md
2019-12-04 20:02:15 -06:00
Calvin Rose
49954c7a30
Remove top-level unquote for comptime macro
...
True top level unquote currently requires basically double compilation
as it currently stands. Also, implementing such double compilation
looses all source mapping information. This is a compromise
implementation that makes it clear that this works differently than
a true top-level unquote.
2019-12-04 19:53:13 -06:00
Calvin Rose
11a7a7069a
Update CHANGELOG.md
2019-12-04 18:46:36 -06:00
Calvin Rose
2487162ccf
Add top level unquote and macro envs.
...
This improves macros that eval their arguments and
makes them easier to write.
2019-12-04 18:39:13 -06:00
Calvin Rose
8ca10f37bd
Update CHANGELOG.md
2019-12-04 16:51:34 -06:00
Calvin Rose
4199c42fe2
Add support for nested quasiquotation.
...
This brings Janet more in line with Scheme,
Common Lisp, and Clojure.
2019-12-04 16:40:53 -06:00
Calvin Rose
f39cf702db
Address #212 - don't include janet args in script args.
2019-12-04 08:30:36 -06:00
Calvin Rose
db9e431bf7
Address #213 - disallow non-indexed ds for loop range.
2019-12-04 08:18:54 -06:00
Calvin Rose
328454729e
Add nan?
2019-12-03 21:24:22 -06:00
Calvin Rose
73a4c395d2
Address #190
...
We don't ever invoke ld directly, so ignore --linker on non-windows.
For --compiler and --archiver, default to $CC and $AR. These are
overshadowed by CLI flags or settings in project.janet.
2019-12-03 21:00:59 -06:00
Calvin Rose
70328437f1
Add math/rng-buffer.
...
Allow math/seedrandom to use buffer as seed.
2019-12-03 20:33:21 -06:00
Calvin Rose
600bed9f6d
Merge pull request #209 from andrewchambers/cryptorand2
...
Add os/cryptorand.
2019-12-03 19:12:32 -06:00
Calvin Rose
55eca44c54
Merge pull request #210 from andrewchambers/unhandled_buffer_get
...
Handle missing get case.
2019-12-03 19:07:44 -06:00
Andrew Chambers
0ac5b243c7
Add os/cryptorand.
2019-12-04 14:02:37 +13:00
Andrew Chambers
9911c90b1d
Handle missing get case.
2019-12-04 13:58:21 +13:00
Calvin Rose
a1f35e21c7
Merge branch 'master' into threads-3
2019-12-03 18:11:32 -06:00
Calvin Rose
9ccdab0bc7
Merge pull request #208 from andrewchambers/explain_why
...
Explain the logic behind negative slice indices.
2019-12-03 10:42:46 -05:00
Andrew Chambers
a20e956f6d
Explain the logic behind negative slice indices.
2019-12-03 22:05:43 +13:00
Calvin Rose
59668133a2
Merge pull request #206 from andrewchambers/unkown
...
Fix typo.
2019-12-03 03:34:46 -05:00
Andrew Chambers
73db8584e0
Fix typo.
2019-12-03 21:14:00 +13:00
Calvin Rose
cecc7e6b9d
Rename 'get' opcode to 'in', add new 'get' opcode.
...
This makes the names of the opcodes match their implied functionality.
We also rename the C functions to match the opcodes and source level
functionality.
2019-12-02 21:26:28 -06:00
Calvin Rose
3a14aad615
Address issue #205 .
2019-12-02 18:34:08 -06:00
Calvin Rose
8368e55151
Merge branch 'master' into threads-3
2019-12-02 17:49:39 -06:00
Calvin Rose
ac85fca8a1
Fix warnings for appveyor.
2019-12-02 09:07:49 -06:00
Calvin Rose
e5fbe5c557
Change printf to add trailing newlines.
...
Also add prinf and eprinf for old behavior. This
is consistent with the naming of print and prin.
2019-12-02 04:45:03 -06:00
Calvin Rose
474bcd50a1
Add methods to threads.
2019-12-02 04:39:13 -06:00
Calvin Rose
70c8b6838d
Use make-image-dict and load-image-dict in thread/new
...
Rather than messing with janet_core_dictionary, we
instead cache the core enevironment, and pull out the
needed tables from there. This is more flexible, more correct, and
also exposes janet_resolve_core, which can be easily used from the C
API.
2019-12-02 04:15:22 -06:00
Calvin Rose
212479188a
Have separate encode and decode dicts for threads
...
This is more correct and mirrors the way marshal -> unmarshal works.
2019-12-01 21:53:39 -06:00
Calvin Rose
5b1e59b535
Merge branch 'master' of github.com:janet-lang/janet into threads-3
2019-12-01 21:26:22 -06:00
Calvin Rose
779d788efa
Merge pull request #204 from andrewchambers/get_permissive
...
New capi janet_get_permissive
2019-12-01 22:06:44 -05:00
Andrew Chambers
6233d804c8
New capi janet_get_permissive
...
The janet_get_permissive function implements the core semantics
of the 'get' function. The original janet_get implements the semantics of
the 'in' function and also the OP_GET opcode. This slight oddity is
to avoid a backwards incompatible change.
2019-12-02 15:49:51 +13:00
Calvin Rose
8f31a53276
Add thread example.
...
Also remove reference to pthread_t in the JanetThread structure.
2019-12-01 20:47:22 -06:00
Calvin Rose
6a763aac95
Work on threads.
...
Add send and receive.
2019-12-01 20:28:12 -06:00
Calvin Rose
5cd6580c2d
Merge branch 'threads-3' of github.com:janet-lang/janet into threads-3
2019-12-01 20:25:57 -06:00
Calvin Rose
81a2af700a
Merge pull request #201 from andrewchambers/in_docs
...
Update documentation for in and get builtins.
2019-12-01 20:49:47 -05:00
Andrew Chambers
8a58be81ba
Update documentation for in and get builtins.
...
Try to clarify documentation and teach users the correct
way to read the 'in' so it is less likely to be confused
with python's usage of the keyword.
2019-12-02 12:35:54 +13:00
Calvin Rose
fc53445d08
Merge pull request #198 from andrewchambers/intprint
...
Integers convert to plain number strings.
2019-12-01 13:00:09 -05:00
Calvin Rose
db261aabf4
Fix bad integer printing range.
2019-12-01 09:46:20 -05:00
Calvin Rose
36ef1c4749
Print proper integers as integers.
2019-12-01 09:40:34 -05:00
Andrew Chambers
5ae520a2c9
Integers convert to plain number strings.
...
A user can use (type n) to find the true type, the old behavior did not
seem useful for most uses of the string function.
2019-12-01 23:10:52 +13:00
Calvin Rose
8e31bda8f6
Fix issue #189
2019-11-30 21:54:23 -05:00
Calvin Rose
474aed8cfe
Merge branch 'master' of github.com:janet-lang/janet
2019-11-30 21:34:38 -05:00
Calvin Rose
0509376aea
Merge pull request #193 from andrewchambers/truthy
...
Add truthy? to core.
2019-11-30 21:32:14 -05:00
Calvin Rose
570f04ca05
Fix typo.
2019-11-30 21:27:36 -05:00
Andrew Chambers
ded08b6e1e
Add truthy? to core.
2019-12-01 14:34:41 +13:00
Calvin Rose
f3c0d9115f
Fix calling jpm quickbin binary with no arguments.
2019-11-30 15:11:34 -05:00
Calvin Rose
bf609445c1
Merge pull request #186 from quexxon/fix-array-ensure-documentation
...
Add missing documentation for array/ensure's growth parameter
2019-11-29 22:39:04 -05:00
Calvin Rose
13ef2bd905
Merge pull request #185 from andrewchambers/afl
...
Add afl fuzzing helpers.
2019-11-29 22:36:47 -05:00
Calvin Rose
4e4cdb6356
Run formatter.
2019-11-28 23:26:11 -05:00
Calvin Rose
688d297a18
Address Issue #184 .
...
Fix strtod.c with better range checking to prevent DOS.
2019-11-28 23:23:37 -05:00
Will Clardy
9e1c3e0f41
Add missing documentation for array/ensure's growth parameter
2019-11-28 23:16:32 -05:00
Andrew Chambers
4acc63e325
Add afl fuzzing helpers.
2019-11-29 16:43:14 +13:00
Calvin Rose
967a8b5a70
Merge pull request #183 from andrewchambers/environ
...
Add os/environ.
2019-11-28 21:33:43 -05:00
Calvin Rose
92b7d91697
Merge pull request #182 from andrewchambers/scratch_finalizer
...
Add an optional finalizer to scratch resources.
2019-11-28 21:07:42 -05:00
Andrew Chambers
07db4c530e
Add os/environ.
2019-11-28 19:00:52 +13:00
Andrew Chambers
a3fb2d6e0a
Add an optional finalizer to scratch resources.
...
A finalizer can be attached to scratch allocations efficiently at any point in
it's lifecycle via janet_sfinalizer. Care was taken to keep allocations aligned
with platform alignment requirements.
A big drawbacks to this approach is the waste of up to 16 bytes per scratch
allocation in the case the scratch memory does not require a finalizer.
2019-11-28 17:32:12 +13:00
Calvin Rose
5b9e37e2cc
Merge pull request #181 from andrewchambers/fileno
...
Add missing fileno method to file, sort method list.
2019-11-27 21:06:30 -05:00
Andrew Chambers
88f28773da
Add missing fileno method to file, sort method list.
2019-11-28 14:47:16 +13:00
Calvin Rose
66e6979812
Add thread flags to standalone executables.
2019-11-27 15:06:31 -06:00
Calvin Rose
8a91c52fa2
Change pthreads linking with jpm, make, and meson.
...
Try to add pthread deps when compiling programs with jpm.
2019-11-27 14:52:20 -06:00
Calvin Rose
e542ba7e4d
Fix amalg build.
2019-11-27 12:43:45 -06:00
Calvin Rose
bca0392738
First work on threading.
...
Posix only, needs to be disabled on windows. Also
the Makefile needs to be configurable, and meson.build
needs to take pthreads into account.
2019-11-26 23:13:53 -06:00
Calvin Rose
74d51ab08b
Address issue #180 - string/check-set
...
Fix the function and add test to further clarify that
implementation is correct. Also fix empty string case.
2019-11-25 20:33:16 -06:00
Calvin Rose
6bc400eb8c
Update CHANGELOG.md
2019-11-25 20:11:10 -06:00
Calvin Rose
7df0ec6aed
Fix up debug/step and janet_step.
...
Also allow debugging on all signals, including errors.
This is gated behind (setdyn :debug true) in the repl.
2019-11-25 20:00:13 -06:00
Calvin Rose
a0a980e0ef
Update sample debugger.
...
Add .break and .step.
2019-11-25 18:21:53 -06:00
Calvin Rose
6988fd3cab
Add debug/step to single step a fiber.
...
Very useful for implementing debuggers.
2019-11-25 18:14:34 -06:00
Calvin Rose
c3273e8751
Merge branch 'master' of github.com:janet-lang/janet
2019-11-24 17:54:14 -06:00
Calvin Rose
d37c43716a
Lots of work on improving debugging.
...
doc macro can take no arguments and print out
all bindings. Fix an issues with the vm skipping
over a breakpoint in some situations.
Add examples/debugger.janet for proof of concept
debugger.
2019-11-24 17:45:53 -06:00
Calvin Rose
1bf751367b
Merge pull request #177 from andrewchambers/parse_review
...
Minor fixes for parser.
2019-11-23 14:23:57 -05:00
Andrew Chambers
976dfc7195
Minor fixes for parser
...
Check length before dereferencing buffer in tokenchar.
Check keywords are valid utf-8.
Fix minor typos.
2019-11-24 08:19:04 +13:00
Calvin Rose
8372d1e499
uint32_t -> uint8_t
2019-11-21 23:31:35 -06:00
Calvin Rose
e65716f6ee
Add janet_rng_longseed to janet.h
2019-11-21 23:26:31 -06:00
Calvin Rose
4b24d77b2c
Switch back to well tested RNG.
2019-11-21 23:22:21 -06:00
Calvin Rose
02fc4ae27b
Allow seeding RNG with a byte sequence.
2019-11-21 22:53:39 -06:00
Calvin Rose
624f5f428e
Add a number of math functions.
...
Most of these functions are wrappers around math.h.
2019-11-17 10:54:44 -06:00
Calvin Rose
5171dfd2a8
Fix docstring.
2019-11-16 20:43:21 -06:00
Calvin Rose
8ff5e49d1f
Merge pull request #176 from staab/repl-delete
...
Add support for delete key in repl
2019-11-16 21:42:38 -05:00
Jon Staab
134163708a
Fix formatting
2019-11-16 16:07:15 -08:00
Jon Staab
40e6616df0
Add support for delete key in repl
2019-11-16 16:01:52 -08:00
Calvin Rose
bcd2089f71
Version 1.5.1
2019-11-16 17:17:13 -06:00
Calvin Rose
7553b277db
Fix return value of update.
2019-11-16 15:50:21 -06:00
Calvin Rose
d71cf093bb
Add /i switch to xcopy in jpm
2019-11-12 02:51:37 -05:00
Calvin Rose
86d21816b6
Fix jpm mendoza install on windows.
2019-11-12 02:45:20 -05:00
Calvin Rose
c9521e093e
Fix windows issue with (file/read file :all)
...
When file was created with file/popen, the current optimization
of using fseek on windows fails due to windows not properly returning
and error code and just returning 0. Windows :(.
2019-11-11 20:05:00 -05:00
Calvin Rose
16f6261b44
Improve randomness of numbers from new rng.
...
First few numbers are very biased.
2019-11-10 17:44:59 -06:00
Calvin Rose
6b76ac3d18
Fix bug when appending buffer to self.
...
janet_to_string_b had a bug when printing buffers.
2019-11-10 14:57:09 -06:00
Calvin Rose
5681e02e0f
Update deployment and fix changelog.
2019-11-10 11:30:31 -06:00
Calvin Rose
41a22f258e
Fix appveyor.yml to build windows installer.
2019-11-10 11:12:28 -06:00
Calvin Rose
0d2844b7c9
Update to 1.5.0
2019-11-10 10:57:18 -06:00
Calvin Rose
719f7ba0c4
Default to UTC for date.
2019-11-09 16:57:21 -06:00
Calvin Rose
44ed2c6b47
Tag artifacts with platform name.
2019-11-09 16:20:52 -05:00
Calvin Rose
c9292ef648
Use /MD on windows.
...
Just makes things easier. Assume machines have msvcrt.dll
on them. If not, we can add msvcrt.dll to the dist folder and add to
installer.
2019-11-09 16:05:07 -05:00
Calvin Rose
135abff100
Try again with vcvarsall.bat
2019-11-09 13:29:01 -05:00
Calvin Rose
7252db1e63
Try 32 bit and 64 bit builds for windows.
2019-11-09 13:25:57 -05:00
Calvin Rose
05e3fd3cc6
Fix build_win.
2019-11-09 13:22:07 -05:00
Calvin Rose
6f1b03b67e
Fix build_win test-install.
...
On failure, cd back to original directory.
2019-11-09 11:28:40 -05:00
Calvin Rose
dca247f01d
Fix MSVC build warnings.
2019-11-09 10:12:40 -06:00
Calvin Rose
63e7ca4623
Fix warning on travis CI with Clang.
2019-11-09 10:10:07 -06:00
Calvin Rose
75d21d9f45
Update CHANGELOG.md
2019-11-09 10:05:29 -06:00
Calvin Rose
8911daaf6c
Add --test flag to jpm.
...
Also test some select packages when testing installation.
This is used in CI to make sure that versions of Janet work with
the most libraries.
2019-11-09 10:03:56 -06:00
Calvin Rose
1f55d40a10
Fix janet_opt* api.
...
Inverted conditional made behavior incorrect. These
were not used in the core library, so were not tested.
2019-11-09 09:39:14 -06:00
Calvin Rose
6591e7636d
Copy janetconf to build for amalg target.
...
This makes testing the amalg easier.
2019-11-08 20:36:16 -06:00
Calvin Rose
c12eaa926a
Make sure $prefix/lib/janet is created
...
After we removed cook.janet, jpm didn't work well out of the box
with a meson install.
2019-11-08 18:43:53 -06:00
Calvin Rose
0e464ded3d
Fix meson.build typo.
2019-11-08 18:26:43 -06:00
Calvin Rose
aee1687215
Add RNG functionality to the math/ module.
...
The new RNG wraps up state for random number generation, so
one can have many rngs and even marshal and unmarshal them.
Adds math/rng, math/rng-uniform, and math/rng-int.
Also introduce `in` and change semantics for
indexing out of range. This commit enforces stricter
invariants on keys when indexing via a function call
on the data structure, or the new `in` function.
The `get` function is now more lax about keys, and will
not throw an error when a bad key is used for a data structure, instead
returning the default value.
2019-11-08 17:40:04 -06:00
Calvin Rose
58e3e63a89
Add jpm to release bundle.
2019-11-08 11:00:12 -06:00
Calvin Rose
9b605b27bd
Address #174 - fix string/trim
2019-11-08 08:47:37 -06:00
Calvin Rose
c5010dffb4
Print error message on bad CLI usage.
...
This was a small regression when bundling cli-main
into boot.janet.
2019-11-05 12:51:15 -06:00
Calvin Rose
026f26f05f
Improve error message in slice functions.
...
Check the first argument before trying to do range
checks.
2019-11-05 09:41:30 -06:00
Calvin Rose
cf2d3861d6
Make slice a c function.
...
This will allow future integration into the compiler
for more general destructuring.
2019-11-05 09:29:32 -06:00
Calvin Rose
6ceaf9d28d
Add with-vars
...
This helps for temporarily setting vars in a safe
manner that is guaranteed not to leave vars in a bad state
(assuming that a fiber does not emit debug or use signal and
is never resumed).
2019-10-31 21:58:43 -05:00
Calvin Rose
25a9804d91
Fix build_win test-install
2019-10-29 20:40:09 -05:00
Calvin Rose
cf19cd5292
Add the quickbin command to jpm.
...
This is useful for making one off executable scripts
without needing to set up a project.janet file.
2019-10-29 20:33:18 -05:00
Calvin Rose
03824dd9f7
Update CHANGELOG.md
2019-10-29 19:41:48 -05:00
Calvin Rose
280dca3998
Add shell.c to the amalgamation.
...
This allows easy builds of the full interpreter with no
build system.
1. Get janet.c, janet.h, janetconf.h, and shell.c in a directory. Edit
janetconf.h as desired.
2. gcc shell.c janet.c -lm -ldl -O2 -o janet (on GNU-Linux for example)
3. ./janet -h (Yay!)
2019-10-29 19:18:44 -05:00
Calvin Rose
46e09e4c71
Fix tools/removecr.janet
2019-10-29 18:56:32 -05:00
Calvin Rose
427b2638e0
Fix startup environment.
2019-10-29 18:47:54 -05:00
Calvin Rose
2541806dc1
Fix suite7 failing when run with no docstrings.
2019-10-29 18:28:41 -05:00
Calvin Rose
0d16b9e1a1
Move init.janet into cli-main in boot.janet
...
This makes it easier to get the CLI functionality when
embedding Janet, although the main reason is the init script
is now pre-compiled to bytecode when generating the boot image.
2019-10-29 18:16:32 -05:00
Calvin Rose
b2263ed5b5
Update CHANGELOG.md
2019-10-29 17:52:41 -05:00
Calvin Rose
45c2819068
Improve flychecking.
...
Flychecking will now work correctly with arity checking, and
will better handle imports. Well structured modules should interact
cleanly with the flychecker in a mostly safe manner, but maliciously
crafted modules can execute arbitrary code. As such, the flychecker is
not a good way to validate completely untrusted modules.
We also extend run-context with an :evaluator option to replace
:compile-only. This is more flexible and allows users to create their
own flychecker like functionality.
2019-10-27 16:15:41 -05:00
Calvin Rose
d28925fdab
Relax type checking when fuction position is nil
...
This lets the flychecker work as expected.
2019-10-24 15:17:19 -05:00
Calvin Rose
9097e36ea0
[] should evaluate to ()
...
This is consistent with most bracket tuples.
2019-10-20 14:06:28 -05:00
Calvin Rose
99ef4c7510
Fix an issue with the removecr script
2019-10-19 19:11:13 -04:00
Calvin Rose
b9e05d06fe
Update amalg step.
2019-10-19 18:00:29 -05:00
Calvin Rose
423b6db855
Fix memory leak with some string/ functions.
...
kmp_init leaked memory when called with an empty string.
2019-10-19 15:14:19 -05:00
Calvin Rose
bb54b940c0
Don't call fwrite with size = 0
2019-10-19 10:51:11 -05:00
Calvin Rose
4149df1fca
Update CHANGELOG.md
2019-10-19 10:35:56 -05:00
Calvin Rose
8dd8af742a
Add eprintf and make printf a C function.
...
This allows some more optimizations when printing to
buffers or when output is disabled. It also makes printf
more consistent with print and prin (Same with eprintf).
2019-10-19 10:30:29 -05:00
Calvin Rose
d47804d222
Add prin, eprint, and eprin functions.
...
The print family of functions now writes output
to an optional buffer instead of a file bound to :out.
This means output can be more easily captured an redirected.
2019-10-19 09:44:27 -05:00
Calvin Rose
8dd322c0be
Fix webclient.
2019-10-14 20:55:04 -05:00
Calvin Rose
7fd0748c19
Update to 1.4.0
2019-10-14 20:35:13 -05:00
Calvin Rose
655d4b3aad
Fix test.
2019-10-13 08:00:43 -05:00
Calvin Rose
5f51476526
Remove a git attribute for linguist.
2019-10-12 22:03:34 -05:00
Calvin Rose
d47b5f8c6a
Update CHANGELOG.md
2019-10-11 00:11:19 -05:00
Calvin Rose
a18a251d16
Address some issues found in lgtm
...
Caught a few potentially issues with overflows, as well as use of
unsafe function localtime.
2019-10-10 22:59:43 -05:00
Calvin Rose
8ee54e887f
Update changelog.
2019-10-10 19:06:16 -05:00
Calvin Rose
088c926196
Add update-pkgs to jpm.
...
This allows for periodically updating the package listing.
2019-10-10 18:46:24 -05:00
Calvin Rose
54b66a4199
Add shorthand package name support in jpm.
...
Package installation checks in the package listing if
the package name is not a url. The package listsing can be specified
via switch or env variable.
2019-10-10 18:11:45 -05:00
Calvin Rose
f9d57103f4
Improve peg error on unknown rule.
...
This helps a lot when debugging large, failing grammars.
2019-10-09 17:59:48 -05:00
Calvin Rose
f780df0aa6
Fix single threaded build option with meson.
...
By default, was building with the opposite of what was provided.
2019-10-05 20:35:11 -05:00
Calvin Rose
fede40f279
Relax requirement minimum arity of fn
...
A valid `fn` special could have only a parameter list, as
recommended by R. DuPlain.
2019-10-05 11:53:30 -05:00
Calvin Rose
6ae5a9be60
Add -fvisibility in Makefile, provide meson example commands.
...
Shaves off 10 kb in binary. Also -fpic -> -fPIC in Makefile and jpm.
2019-10-05 10:38:58 -05:00
Calvin Rose
e9f3dc7d5c
Add varfn.
2019-10-03 20:20:42 -05:00
Calvin Rose
841b58042f
Merge pull request #168 from Crestwave/haiku
...
Fix installation on Haiku
2019-10-02 13:54:03 -04:00
Crestwave
63e3e02a39
Fix installation on Haiku
2019-10-02 05:52:55 +00:00
Calvin Rose
944347e828
Fix formatting.
...
Run make format.
2019-09-30 20:00:29 -05:00
Calvin Rose
7910a5feef
Add compile time arity checking.
...
This should help catch a number of errors, but it
is a very shallow implementation of type checking. It will
catch some common misuses of functions at compile time
rather than runtime.
2019-09-30 19:50:42 -05:00
Calvin Rose
2becd196dd
Fix incomplete error message.
2019-09-25 09:29:29 -05:00
Calvin Rose
bcb45157a8
Update CHANGELOG.md
2019-09-24 21:25:21 -05:00
Calvin Rose
70ffe3b6bd
Add slice function to core.
...
Returns immutable slices.
2019-09-24 19:44:36 -05:00
Calvin Rose
339dea9390
Add optional argument functions to c api.
...
These are just helpers to make parameters than can be nil with a
default value easier to handle in a consitent way.
2019-09-24 19:40:49 -05:00
Calvin Rose
b26a7bb22a
Disallow the empty string for some string fns.
...
This will prevent these functions from being run
with empty strings, which usually produces useless
output, as the internal string search algorithm will
never "find" empty strings. This is by design, as it is
not always obvious which empty strings should be found in
the search text.
2019-09-24 13:23:18 -05:00
Calvin Rose
45dfc7cc96
Fix debug/break search algorithm.
2019-09-22 18:08:38 -05:00
Calvin Rose
9d020c3ec5
Update CHANGELOG.md
2019-09-22 18:00:53 -05:00
Calvin Rose
8cda06b995
GCC seemed to not fill array of computed gotos.
...
This is expected as per the C standard, but segfaulted
unless all 255 labels were added.
2019-09-22 17:56:33 -05:00
Calvin Rose
a8afc5b81f
Sourcemapping uses line, column instead of offsets.
...
This should be friendlier to most users. It does, however, mean
we lose range information. However, range information could be
recovered by re-parsing, as janet's grammar is simple enough to do this.
2019-09-22 17:18:28 -05:00
Calvin Rose
228d045a06
Fix formatting.
2019-09-22 15:17:06 -05:00
Calvin Rose
c447e7b3a5
Update changelog.
2019-09-22 15:15:28 -05:00
Calvin Rose
803c3fc235
Add line, col to error messages when available.
2019-09-22 15:13:21 -05:00
Calvin Rose
a032529437
Let jpm projects work better on windows.
...
Handle paths with normal, forward slashes better.
2019-09-22 14:01:14 -04:00
Calvin Rose
7bee204390
Fix installer.
2019-09-22 13:29:34 -04:00
Calvin Rose
064a700edd
Merge branch 'master' of github.com:janet-lang/janet
2019-09-22 12:54:50 -04:00
Calvin Rose
7809f89dfc
1.3.1 Release
...
Small changes, mostly just fixing minor bugs.
2019-09-21 19:15:02 -05:00
Calvin Rose
940860755c
jpm: Read :lflags from meta file when linking.
...
Let us link in native code that itself neads to be linked
to native code when creating standalone executables.
2019-09-21 18:57:04 -05:00
Calvin Rose
1b283c47b4
Remove macos update_dyld_shared_cache
...
This just doesn't work well for a non global install.
It is better packages that need this to run it themselves.
2019-09-20 13:13:05 -05:00
Calvin Rose
8e427317cd
Add mean function to boot.janet
...
Update changelog.
2019-09-19 21:21:14 -05:00
Calvin Rose
908a3b6f5c
Address #160 : Use ldconfig alternative on macos.
...
update_dyld_shared_cache seems to work on macos.
2019-09-18 12:20:59 -05:00
Calvin Rose
f2ba91899f
jpm test now starts a new interpreter per test.
...
This should help with setup/teardown semantics, especially
with native modules.
2019-09-16 00:48:35 -05:00
Calvin Rose
16127fc55c
Remove printf in regalloc.c
...
This should never be hit unless there is a
bug in the compiler, but should be removed.
2019-09-15 18:17:43 -05:00
Calvin Rose
97d874f16b
Fix small compiler bug (not freeing temp register).
2019-09-15 13:27:49 -05:00
Calvin Rose
8aba5e76ae
Sort files when running tests.
2019-09-14 19:39:14 -05:00
Calvin Rose
0e7144f2dc
Add :headers option to build recipes
...
This lets recipes do better change detection.
2019-09-14 12:40:01 -05:00
Calvin Rose
9f48c3e2db
Remove :r from amalg.janet
2019-09-12 23:34:14 -05:00
Calvin Rose
e6306ea188
Add script for removing <CR> on windows.
...
This caused bad stuff to be generated on windows, specifically
the amalg file. We cause totally strip <CR> from files on windows
using this script.
2019-09-12 23:18:52 -05:00
Calvin Rose
0e99d8d80f
Merge pull request #167 from ato/patch-1
...
Correct old name all-symbols to all-bindings in README
2019-09-10 23:21:58 -04:00
Alex Osborne
de5cd73cd7
Correct old name all-symbols to all-bindings
2019-09-11 12:05:41 +09:00
Calvin Rose
b585d19519
Merge pull request #164 from AlbertoGP/master
...
Defuse tarbomb: wrap tar file contents in directory, fix #163
2019-09-09 19:16:43 -04:00
Alberto González Palomo
8753d2dcb8
Defuse tarbomb: wrap tar file contents in directory
...
https://en.wikipedia.org/wiki/Tar_(computing)#Tarbomb
http://www.linfo.org/tarbomb.html
2019-09-09 18:59:29 +02:00
Calvin Rose
39f1d81fd4
Use :length method for (length abstract)
...
Also adds the janet_lengthv API call. This is
needed because janet_length returns a 32 bit integer, where
as lengthv lets us return larger values (useful for typed arrays).
janet_mcall is an api function that should make it easier to call
a janet method from C code. It shares a similar signature with
janet_call.
2019-09-08 19:26:16 -05:00
Calvin Rose
fcd203c646
Merge branch 'master' of github.com:janet-lang/janet
2019-09-05 21:10:50 -04:00
Calvin Rose
4ebb749131
Update appveyor configuration.
2019-09-05 19:43:06 -05:00
Calvin Rose
37a943d9b5
1.3.0 Release
2019-09-05 19:33:08 -05:00
Calvin Rose
2f2b875c2a
Update CHANGELOG.md
2019-09-05 13:21:17 -05:00
Calvin Rose
99f147219a
Add put-in.
2019-09-05 13:19:25 -05:00
Calvin Rose
7a13d24e6f
Add get-in, update-in, and freeze to core.
2019-09-05 13:11:53 -05:00
Calvin Rose
8dc91755f7
Work on makefile and build for jpm.1
2019-09-05 12:28:11 -05:00
Calvin Rose
96a3104fe2
Update to 1.3.0, add jpm.1
2019-09-04 23:44:23 -05:00
Calvin Rose
97f525d069
Update CHANGELOG.md
2019-09-01 11:37:43 -05:00
Calvin Rose
4ad1bdec15
Add jpm run and jpm rules
2019-09-01 11:26:48 -05:00
Calvin Rose
530d94a4b9
Allow relative paths for jpm commands (deps)
...
Also default headerpath, libpath, and binpath of
of (dyn :syspath) instead of $JANET_MODPATH. This
allows setting $JANET_MODPATH without needing to
mess with the other settings.
2019-09-01 11:08:39 -05:00
Calvin Rose
141d3e9588
Add option for using tags in jpm deps.
2019-08-30 18:23:13 -05:00
Calvin Rose
98eaadf2d1
Simplify peg caching further.
...
Remove the multiple caching tables we were using
and use the grammar table for caching. This works
well because we can use raw_get for checking the local cache, and normal
get fro checking the global cache.
2019-08-30 08:57:45 -05:00
Calvin Rose
54a04b5894
Fix some more recursion issues with pegs.
...
A keyword reference only counts as visited if we have
it as cached in the memoized->table, and we know it was
originally referenced from the same grammar table. If these
two conditions are true, then compilation must work correctly.
Also add janet_table_get_ex.
2019-08-29 19:56:04 -05:00
Calvin Rose
8bc8709d0e
Try to address memoization problem in pegs.
2019-08-29 19:09:43 -05:00
Calvin Rose
730080e6fd
Get rid of robocopy nonsense.
...
xcopy works fine, just need /s flag.
2019-08-29 02:57:47 -04:00
Calvin Rose
d4b49cd622
Windows fixes for jpm.
2019-08-29 02:02:05 -04:00
Calvin Rose
7e0586cb55
Fix test-install on windows.
2019-08-28 23:50:15 -04:00
Calvin Rose
05695a35c7
Fix test-install after removing cook.
2019-08-28 21:05:34 -05:00
Calvin Rose
58ffb9d7a5
Remove cook and path from default install
...
Instead, combine cook into jpm so we can manipulate
JANET_PATH without messing with jpm. path was moved to
and external repository, https://github.com/janet-lang/path.git
2019-08-28 20:54:31 -05:00
Calvin Rose
7eb487d998
Merge branch 'master' of github.com:janet-lang/janet
2019-08-27 18:11:22 -05:00
Calvin Rose
f903ee8acc
Add quotes and remove input path as make target.
...
Make doesn't handle that or auto escape that very well, so
we only put known paths as Make targets.
2019-08-27 18:10:03 -05:00
Calvin Rose
91cbe2e22c
Add quotes to shim if install-dir has spaces.
2019-08-25 17:18:01 -04:00
Calvin Rose
c45bad9437
Better shim for scripts on windows.
...
Arguments should be passed in properly.
2019-08-25 17:16:44 -04:00
Calvin Rose
4aa6afbf47
Fix binscripts on windows.
2019-08-25 16:54:54 -04:00
Calvin Rose
29054e8072
Update changelog.
2019-08-24 23:43:51 -04:00
Calvin Rose
060d11e4c2
Add Q and q formatters to buffer/format.
...
These are similar to P and p, but print values
on a single line for a much more compact version.
2019-08-24 22:53:45 -04:00
Calvin Rose
77870508de
Update CHANGELOG.md
2019-08-24 19:06:02 -04:00
Calvin Rose
133ad0d355
Add test for longstring matcher using backmatches.
2019-08-24 19:02:55 -04:00
Calvin Rose
711fe64a51
Add backmatch operator to pegs.
...
(backmatch [tag?]) is similar to a back reference in regular expressions
(NOT to backwards capture in a peg). It only matches a pattern if
it exactly matches the text of the last capture. It does not consume
or push any captures to the capture stack.
2019-08-24 18:57:01 -04:00
Calvin Rose
78b5c94cb0
jpm updates.
...
Add better error message if no c compiler detected on windows.
2019-08-24 17:36:50 -04:00
Calvin Rose
95266bdcf8
fix git submodule update command with :p flag
2019-08-23 08:57:41 -05:00
Calvin Rose
b78879dc18
missing closing paren
2019-08-23 08:40:11 -05:00
Calvin Rose
5d29079393
Merge branch 'master' of github.com:janet-lang/janet
2019-08-23 08:35:37 -05:00
Calvin Rose
b052a57fc8
Add error message when dep fails to build.
2019-08-23 08:35:18 -05:00
Calvin Rose
292be33b9d
Fix some stack overflow bugs.
2019-08-19 01:19:51 -04:00
Calvin Rose
0360942942
Add build commit hash to windows build from appveyor.
2019-08-18 21:01:47 -04:00
Calvin Rose
c35d6d2396
More batch syntax issues.
2019-08-18 20:27:26 -04:00
Calvin Rose
1c73d8ce2b
Remove some parens
2019-08-18 20:19:50 -04:00
Calvin Rose
6a539df480
Make sure all appveyor artifacts get deployed
2019-08-18 20:07:12 -04:00
Calvin Rose
1de09ec149
release test 5
2019-08-18 20:02:06 -04:00
Calvin Rose
a1f785038d
release-test4
2019-08-18 19:53:18 -04:00
Calvin Rose
5d475848a6
Fix appveyor.yml
2019-08-18 19:35:17 -04:00
Calvin Rose
2695f2da46
Update installer with appveyor commands.
2019-08-18 19:16:15 -04:00
Calvin Rose
3cdbf5753d
Add some more artifacts to automate release.
2019-08-18 18:02:28 -04:00
Calvin Rose
daf92be5bc
Better deploy test.
2019-08-18 17:54:52 -04:00
Calvin Rose
79bbb0ee1c
Appveyor test2.
2019-08-18 17:05:53 -04:00
Calvin Rose
826bb1abbe
Update appveyor deployment.
2019-08-18 16:54:43 -04:00
Calvin Rose
81789a6930
Add wasm to architectures returned by os/arch.
2019-08-18 10:08:52 -05:00
Calvin Rose
28fb2403d9
Add os/arch to core.
...
Also allow setting custom keywords for compiled
os name and architecture name.
2019-08-18 10:00:04 -05:00
Calvin Rose
1872bd344f
Address #158
...
Use string/join to prevent stack overflow.
2019-08-18 08:41:22 -05:00
Calvin Rose
54170d92db
Add some color to stacktraces in repl.
2019-08-12 19:20:01 -05:00
Calvin Rose
ec62e871dd
Update to version 1.2.0.
2019-08-08 18:51:24 -05:00
Calvin Rose
4ba912cd57
Switch to 32 bit build.
2019-08-07 22:51:58 -04:00
Calvin Rose
7713674ff6
Fix appveyor.yml
2019-08-07 22:23:19 -04:00
Calvin Rose
0fce440455
See if we can use a different build of NSIS.
2019-08-07 22:19:49 -04:00
Calvin Rose
ab782d8896
Add optional default value to get.
...
Also update CHANGELOG.md
2019-08-06 18:12:00 -05:00
Calvin Rose
c84ddefc53
Merge pull request #156 from curist/take-and-drop
...
Take and drop
2019-08-06 17:35:55 -05:00
curist
5802155882
Update take/drop - while/until.
...
to be more consistent with take/drop
2019-08-06 15:33:55 +08:00
curist
ee8a68f7b2
Fix take/drop comments.
2019-08-06 14:25:09 +08:00
curist
61bbeebfba
Update take/drop implementation.
...
No more preserves input type.
2019-08-06 14:19:22 +08:00
curist
18da183ef7
Add take/drop.
2019-08-06 14:00:05 +08:00
Calvin Rose
19c6714f06
Fix MSVC warnings and errors.
2019-08-05 20:19:46 -05:00
Calvin Rose
2193193b12
Improve error message on bad method calls.
2019-08-05 19:06:58 -05:00
Calvin Rose
850a2d7f79
Allow method calls on typed arrays.
2019-08-05 18:51:53 -05:00
Calvin Rose
ca5dce5d9f
Address #155 .
...
Fix bug in janet_table_clone that leaked memory.
2019-08-05 17:52:05 -05:00
Calvin Rose
40eff3e4a3
Merge pull request #153 from curist/docstring-fix
...
Update several docstrings.
2019-08-05 10:20:11 -05:00
curist
d334f070a3
Update several docstrings.
2019-08-05 19:58:51 +08:00
Calvin Rose
44e752d737
Add shorthand function literals to janet.
...
These are similar to the function literals from Clojure
(also Fennel), and should make short functions for maps, filters, etc.
easier to write.
2019-08-04 12:25:52 -05:00
Calvin Rose
5c83ebd75d
Update test suites.
2019-08-03 14:56:02 -05:00
Calvin Rose
02ce3031e9
Fix comp case with arity of exactly 5.
2019-08-03 14:53:14 -05:00
Calvin Rose
2b295a5459
Exit janet if import-rules fails.
2019-08-03 14:15:45 -05:00
Calvin Rose
6caf8d3d56
Make comp create variadic functions.
2019-08-03 13:57:11 -05:00
Calvin Rose
b18f1e8127
Keep count fo allocated memory via malloc.
...
We normally only track memory allocated with janet_gcalloc, but
if only a few very large normal memory blocks are allocated, the GC
will never run. Se simply need to increment a count when we allocate
memory so that the next time we enter the VM, we will be able to
run a collection if needed.
2019-07-31 00:24:13 -05:00
Calvin Rose
3e67916971
Fix MSVC warning.
2019-07-28 18:44:00 -05:00
Calvin Rose
21cccc00d7
Change link order once more.
2019-07-28 18:06:55 -05:00
Calvin Rose
4809867b33
Changes to let circlet test app work.
...
Change cook tool linking for executables, disable
GC while constructing marhsalling codebook (mdict).
2019-07-28 17:55:37 -05:00
Calvin Rose
8bbe518696
Executables linking to natives working on linux.
...
This involves a bunch of machinery in cook.janet
and even a little bit in the janet C API.
2019-07-28 13:27:20 -05:00
Calvin Rose
17b4dc1fc6
Tweak man page.
2019-07-28 11:11:31 -05:00
Calvin Rose
cca19e921e
Merge pull request #147 from curist/master
...
Update documentation
2019-07-28 12:10:34 -04:00
curist
de50a38bb1
Update man page
2019-07-28 22:19:50 +08:00
curist
c2ef58d880
Update math/log docstring
2019-07-28 22:18:36 +08:00
Calvin Rose
eafcb548ce
Fix file mode.
2019-07-28 00:19:01 -05:00
Calvin Rose
ec32d11b76
Update installer and make things build on windows.
...
We can now build windows executables with jpm.
2019-07-28 01:05:15 -04:00
Calvin Rose
7e97687c9e
Update windows installation and automation.
2019-07-27 21:44:44 -04:00
Calvin Rose
da5a64131f
Progress towards making windows work again.
2019-07-27 16:16:28 -04:00
Calvin Rose
71e5278364
Remove bsd check in cook.janet.
2019-07-27 11:45:10 -05:00
Calvin Rose
d6a1faa380
Typos.
2019-07-27 11:36:48 -05:00
Calvin Rose
166862ecff
Hold off on adding file associations on windows.
2019-07-27 11:34:47 -05:00
Calvin Rose
3c133bd677
Add more values for (os/which)
...
Some bsd flavors.
2019-07-27 11:29:40 -05:00
Calvin Rose
b0b1024f8a
Try to fix some tests for CI.
2019-07-27 11:05:53 -05:00
Calvin Rose
cc07ff987d
Fix normal native building and make test-install.
...
Add executable generation testing to make test-install.
2019-07-27 09:53:28 -05:00
Calvin Rose
efc38b87de
Preemptive version bump.
2019-07-27 09:40:35 -05:00
Calvin Rose
a3a3e4c0dc
Add (dyn :executable).
...
Also remove process/args.
2019-07-27 09:31:03 -05:00
Calvin Rose
d46bcd5b8f
Update CHANGELOG.md
2019-07-26 22:47:42 -05:00
Calvin Rose
dfe00fee94
Building standalone binaries on linux working.
...
Mostly changes to cook and jpm. Also some
code for file associations in the windows installer, and
adding the :linux value from os/which (instead of just :posix).
2019-07-26 22:43:54 -05:00
Calvin Rose
9118f2ce08
Update CHANGELOG.md
2019-07-20 16:59:11 -05:00
Calvin Rose
a0e98b9aa8
Deprecate process/args and add use macro.
...
Use is a shorthand for (import module :prefix "").
process/args has been replaced by (dyn :args) at
the top level.
2019-07-20 16:57:07 -05:00
Calvin Rose
0d3986abbb
Update cook and add an install test.
2019-07-19 19:40:51 -05:00
Calvin Rose
529b34d84e
Fix jpm stupid bug.
2019-07-19 17:01:50 -05:00
Calvin Rose
e0fe8476aa
Address issue #143
...
Fix some logic in module/expand-path.
2019-07-15 17:39:50 -05:00
Calvin Rose
0ca0180f27
More "correct" emscripten support.
2019-07-14 16:11:00 -05:00
Calvin Rose
21a355c89f
Small changes to help with latest emscripten.
2019-07-14 09:58:11 -05:00
Calvin Rose
e528b86a2a
Ensure no carriage returns end up in doc strings.
2019-07-12 09:14:37 -04:00
Calvin Rose
2e6ee39506
Fix windows build issues.
2019-07-12 08:47:11 -04:00
Calvin Rose
894877a0e3
Address issue #142
...
Also add janet_wrap_number_safe to API.
2019-07-12 07:23:24 -05:00
Calvin Rose
6887dd05f6
Merge pull request #139 from Barakat/master
...
Remove amalg.janet dependency on os/date
2019-07-09 07:39:27 -05:00
Barakat
95dbad6ec1
Remove amalg.janet dependency on os/date
...
When compiling Janet with `JANET_REDUCED_OS`, `os/date` will not be available which breaks the tool amalg.janet. One can check file modification time on the filesystem instead.
2019-07-09 13:49:37 +03:00
Calvin Rose
ea88ae1a5b
Use paths in cache for jpm that will work on windows.
2019-07-08 21:45:51 -04:00
Calvin Rose
e8e4d637ef
Fix jpm.bat on a normal install
...
The path to jpm.janet will likely have spaces.
2019-07-08 19:54:14 -04:00
Calvin Rose
3928136670
Begin update to 1.1.0.
2019-07-08 18:16:17 -05:00
Calvin Rose
0dcae6c3d6
Update regression test.
2019-07-07 23:23:45 -05:00
Calvin Rose
b639ccdad1
Merge branch 'master' of github.com:janet-lang/janet
2019-07-07 23:20:20 -05:00
Calvin Rose
affcb5b459
Address #137
...
Fix compiler bug when compiling desturctured bindings in a top-level
def or var. Also introduce janet_table_clone API call to make this
easier.
2019-07-07 23:18:39 -05:00
Calvin Rose
70c80d7899
Merge branch 'master' of github.com:janet-lang/janet
2019-07-05 14:08:58 -04:00
Calvin Rose
fb7914a3c8
Merge pull request #135 from krysros/master
...
Fix typo in jpm.bat
2019-07-05 12:56:10 -05:00
Krystian Rosiński
6099d2a45d
Fix typo in jpm.bat
2019-07-05 19:49:55 +02:00
Calvin Rose
044fc7c461
Update jpm tool.
...
The jpm tool can now use git to download dependencies, install
packages from urls, and use a manifest file for better uninstalls.
2019-07-05 11:00:46 -05:00
Calvin Rose
7c4670c3de
Change semantics of -l flag to be more useful.
2019-07-04 12:42:54 -05:00
Calvin Rose
c1113d61d6
Make installer correctly versioned.
2019-07-02 07:33:30 -05:00
Calvin Rose
2c4366dd71
Update some verion stuff.
2019-07-01 16:45:50 -04:00
Calvin Rose
d66f8333c1
Prepare for 1.0.0
2019-07-01 14:47:03 -05:00
Calvin Rose
1588359ebc
Fix memory leak caused by casting error.
...
janet_abstract_end improperly modified a gc tag.
2019-06-30 10:32:52 -05:00
Calvin Rose
a861399ecb
Indicate better support for Meson.
2019-06-30 09:57:49 -05:00
Calvin Rose
a7f3d3436f
Update CHANGELOG.md
...
Also change `with-resource` to `with`.
2019-06-24 22:02:37 -04:00
Calvin Rose
75f1bb6a7c
Fix up webclient.
2019-06-24 17:27:03 -04:00
Calvin Rose
0384b83c31
Update emscripten makefile.
2019-06-24 17:23:01 -04:00
Calvin Rose
c68361a03f
to the top
2019-06-24 17:11:36 -04:00
Calvin Rose
0bda455cad
donate
2019-06-24 17:10:27 -04:00
Calvin Rose
bb7bef7188
Add Donate link in README.md
2019-06-24 17:09:40 -04:00
Calvin Rose
b8032ec61d
Add propagate function and opcode
...
This allows better stacktraces when manually intercepting
signals to clean up resources. Also allows functionality
from Common Lisp's unwind-protect, such as calling cleanup code
while unwindinding the stack, restarting on certain signals, and
just in general having more control over signal and signal propagation.
Also fix a bug encountered while implementing with-resource in the
compiler. Desturcturing arguments that were not the last argument
would often result in bad code generation, as slots used to destructure
the earlier arguments would invalidate the later parameters. This is
fixed by allocating all named parameters before doing any destructuring.
2019-06-24 12:44:13 -04:00
Calvin Rose
8d1e6ddffc
Add reduced_os option functionality.
2019-06-24 09:40:19 -04:00
Calvin Rose
f7f2f5e84f
Address #129 .
...
Don't rm -rf the wrong directory on uninstall.
2019-06-24 08:28:40 -04:00
Calvin Rose
bedd9ccaa1
Verify working meson build on windows.
...
Using MSVC, no need for GNU tools.
2019-06-20 17:28:22 -04:00
Calvin Rose
a29e717fd7
Start working to a full meson build.
...
One build system instead of three for Make + Meson + build_win.bat.
2019-06-20 16:33:28 -04:00
Calvin Rose
522545287e
Add janet_abstract_begin and janet_abstract_end
...
This will allow some one constructing an abstract to
only make it visible to the garbage collector after it
is in a valid state. If code in the constructing cfunction
panics before janet_abstract_end is called, the GC will not try
to mark the incomplete abstract type. This is often not needed through
careful programming, but should work well.
2019-06-20 12:37:57 -04:00
Calvin Rose
4b4fe80404
Be more complete with JANET_NO_SOURCEMAPS
...
This actually removed sourcemaps, not just
the top level annotation in bindings.
2019-06-20 11:55:52 -04:00
Calvin Rose
cf05ff610f
Add some fixes for serializing complex grammars.
2019-06-19 23:23:27 -04:00
Calvin Rose
300124961f
Change -c option to use dofile instead of require
2019-06-19 22:05:13 -04:00
Calvin Rose
7eb78c8028
Load jimage files before janet source files.
...
This should allow precompiled files to be placed
right next to the source files in the file system with
the expected behavior.
2019-06-19 20:18:44 -04:00
Calvin Rose
1a7691dade
Flatten environment binding tables.
...
For some reason, these tables used prototypes. There
seems to be no need for this.
2019-06-19 20:07:40 -04:00
Calvin Rose
3b51501847
Update CHANGELOG.md
2019-06-19 19:52:41 -04:00
Calvin Rose
fc46030e7d
Add options to not include docstrings in binary.
...
This lets us build a smaller binary. The minimal tested
binary on x86-64 (with -Os, -s, and all options that shrink binary size
turned on) is about 240 kB.
2019-06-19 19:43:38 -04:00
Calvin Rose
ff3bb66272
Add some test cases for module/expand-path
2019-06-19 12:48:29 -04:00
Calvin Rose
1ceaceada4
Fix doc generation.
2019-06-19 09:48:33 -04:00
Calvin Rose
19a0444f41
Appease MSVC
2019-06-19 09:45:56 -04:00
Calvin Rose
0102a72538
Update module/paths for saner defaults.
...
Relative imports will only check the paths
directly concerning relative imports.
2019-06-19 09:01:21 -04:00
Calvin Rose
9943bdd907
Update cook.janet and jpm
...
They should throw better error messages when project.janet
not found.
2019-06-19 00:48:57 -04:00
Calvin Rose
264c5bc02b
Change default module/path.
...
Disallow loading directly with extension to be more
consistent and keep things simpler.
2019-06-19 00:34:15 -04:00
Calvin Rose
9ba8728176
Update module system.
...
Add relative imports and path normalization. This should
help towards a more composable build/dependency system.
2019-06-18 22:10:13 -04:00
Calvin Rose
8839731951
Update changelog.
2019-06-18 15:41:48 -04:00
Calvin Rose
e88a9af2f6
Add bytecode verification for peg unmarshaling.
2019-06-18 13:01:49 -04:00
Calvin Rose
a5e50a0f65
Fix windows getline.
2019-06-18 00:04:29 -04:00
Calvin Rose
7c35acca75
One more MSVC warning.
2019-06-17 23:53:38 -04:00
Calvin Rose
4bb57550c8
Silence some windows build warnings.
2019-06-17 23:50:39 -04:00
Calvin Rose
446ab037b0
Allow marshaling pegs.
2019-06-17 23:40:02 -04:00
Calvin Rose
4adfb9f2d3
Update changelog.
2019-06-17 22:46:38 -04:00
Calvin Rose
9c89d1c658
Inline yield when called with no arguments.
...
It was already inline when called with one argument.
2019-06-15 12:21:08 -04:00
Calvin Rose
3598f056bb
Reformat capi.c
2019-06-15 11:04:24 -04:00
Calvin Rose
779fcf2d54
Merge pull request #124 from ALSchwalm/parse-state
...
Add support for getting more detailed parser state
2019-06-15 11:00:06 -04:00
Adam Schwalm
3bbc121c6a
Add support for getting more detailed parser state
2019-06-15 07:37:01 -05:00
Calvin Rose
82edc19137
Update cook to take headers for natives.
...
This should help incremental building.
2019-06-13 00:41:20 -04:00
Calvin Rose
5689ef1af1
Add keyword flag utility for modules.
2019-06-12 12:05:48 -04:00
Calvin Rose
b4e25e5597
Add some string/check-set tests.
2019-06-10 14:11:07 -04:00
Calvin Rose
647139cdf9
Fix string/check-set.
...
Also change external unification identifier in match macro
to @. This means we can more easily match symbol literals.
2019-06-10 14:00:51 -04:00
Calvin Rose
6225f8d334
Fix defn docstring typo.
2019-06-09 09:18:16 -04:00
Calvin Rose
95eb54045f
Update changelog.
2019-06-08 17:22:42 -04:00
Calvin Rose
43520ac67d
Add parser/clone. ( #120 )
2019-06-08 17:16:36 -04:00
Calvin Rose
802a2d6b71
Add more dynamic bindings for printing.
2019-06-08 15:27:13 -04:00
Calvin Rose
d9a4ef05ac
Update docstring format.
...
Also add :p flag to fiber/new, change implemntation of with-dyns, and
make meson build install static library by default.
2019-06-08 10:30:43 -04:00
Calvin Rose
f00a2770ef
Follow meson guidlines for static/shared libs
...
Use only one library definition for faster builds.
2019-06-08 09:05:38 -04:00
Calvin Rose
b83fe146fa
Add static library to meson build.
2019-06-07 23:11:34 -04:00
Calvin Rose
6249f03367
Add janet_dep to meson build file.
2019-06-07 22:42:09 -04:00
Calvin Rose
bfc00b67bd
Merge pull request #123 from andrewchambers/stdlibfd
...
Add file/{fdopen,fileno} functions.
2019-06-07 19:31:41 -04:00
Andrew Chambers
2b7428ed2b
Add file/{fdopen,fileno} functions.
2019-06-08 10:33:29 +12:00
Calvin Rose
64a80c57e3
Tables created via table_init cannot leak memory.
...
Before, if Janet paniced without calling table_deinit
on a table created via table_init, Janet leaked memory.
This changes tables so that tables created via table_init
us scratch memory for auto cleanup instead of normal
malloc/free.
2019-06-05 17:08:49 -04:00
Calvin Rose
efb2ab06cb
Remove array_init and array_deinit
...
These functions made it very easy to create memory
leaks, and are better replaced with functions in vector.h or
simply using non-stack allocated arrays.
2019-06-05 16:19:51 -04:00
Calvin Rose
b082c8123e
Update tm_language_gen.
2019-06-05 11:07:08 -04:00
Calvin Rose
cc1ff9125a
Add b_lundef=false for meson build.
2019-06-04 23:58:04 -04:00
Calvin Rose
5734e02034
Update CHANGELOG.md
2019-06-03 10:55:26 -04:00
Calvin Rose
6e8beff0a0
Add optional argument to parser/where to set index.
...
DSLs that use the parser API can use this to more accurately
report source location.
2019-06-03 10:48:16 -04:00
Calvin Rose
c21eaa5474
Fix redefinition.
2019-06-02 20:09:16 -04:00
Calvin Rose
13667292c6
Expose signal, type, and status name arrays.
...
Makes it easier to print status stuff.
2019-06-02 20:05:17 -04:00
Calvin Rose
22eb8372dd
Make meson build file do cross compilation.
2019-06-02 17:05:17 -04:00
Calvin Rose
1b7a9def25
Fix path separators.
2019-06-02 14:10:12 -04:00
Calvin Rose
d7954e6fe3
Update installers for path.janet
2019-06-02 13:30:52 -04:00
Calvin Rose
c20c9cd5d7
Merge branch 'master' of github.com:janet-lang/janet
2019-06-02 13:28:48 -04:00
Calvin Rose
46531d9a60
Add path.janet.
2019-06-02 13:26:51 -04:00
Calvin Rose
d9a366fbed
Merge pull request #118 from ALSchwalm/all-bindings-env
...
Allow all-bindings and dynamics to search specific env
2019-06-02 12:08:38 -04:00
Adam Schwalm
64bf52372a
Allow all-bindings and dynamics to search specific env
2019-06-02 10:12:46 -05:00
Calvin Rose
0a9715a94c
Bump version to 1.0.0
2019-06-01 23:52:01 -04:00
Calvin Rose
c82aac1365
Refer to @ as atsign not ampersand.
2019-06-01 23:40:59 -04:00
Calvin Rose
e697cc3811
Make os/execute not leak memory on panics.
...
Since many calls can panic, it's best
to only use scratch memory for temporary values.
2019-06-01 23:38:10 -04:00
Calvin Rose
c150f2f2c1
Add scratch memory API.
...
This should make it easier to write
code that does not leak memory on panics.
2019-06-01 23:31:39 -04:00
Calvin Rose
0a54e1ed62
Fix installer.
2019-06-01 11:34:28 -04:00
Calvin Rose
b9daf41327
NSIS installer fix.
2019-06-01 10:43:40 -04:00
Calvin Rose
2d2bc436e6
Quick fix.
2019-06-01 10:40:59 -04:00
Calvin Rose
3d76d988c3
More work on installation and moving files around.
...
Move all installed libraries into auxlib.
Move all installed executable scripts into auxbin.
2019-06-01 10:38:28 -04:00
Calvin Rose
bea6dbbf3d
Hint utf8 output on windows console.
2019-05-31 15:30:23 -04:00
Calvin Rose
e1bd24c2ab
Make os/execute on windows closer to posix version
2019-05-31 15:02:44 -04:00
Calvin Rose
1f30ea66e9
Windows quick fix.
2019-05-31 13:45:39 -04:00
Calvin Rose
c43aaf8986
More work to os/execute.
...
Use environ when eflag not given. Also try to escape windows
command line strings correctly.
2019-05-31 13:44:14 -04:00
Calvin Rose
2acc81d1c5
Add noreturn attribute to panic functions.
2019-05-31 10:10:20 -04:00
Calvin Rose
26513a7a16
Update changelog
2019-05-30 19:33:09 -04:00
Calvin Rose
d005ac6888
Appease MSVC.
2019-05-30 19:21:11 -04:00
Calvin Rose
7fdb098a20
Add process.h.
2019-05-30 19:14:54 -04:00
Calvin Rose
a4a200e037
Spawn.h not found in windows.
2019-05-30 19:13:13 -04:00
Calvin Rose
15d95d8803
Windows include issue.
2019-05-30 18:50:52 -04:00
Calvin Rose
46950a8cb3
Convert os/execute to use posix_spawn.
2019-05-30 18:40:10 -04:00
Calvin Rose
4867cab569
Correct changelog date.
2019-05-29 22:21:06 -04:00
Calvin Rose
c8cf7c2445
Appease MSVC.
2019-05-29 22:12:24 -04:00
Calvin Rose
1b63215aad
Remove extra functions.
2019-05-29 22:00:47 -04:00
Calvin Rose
bcbe42ab23
Add API version checking for modules.
...
Checking now actively implemented for dynamic modules
in a fully backwards compatible way.
2019-05-29 21:58:20 -04:00
Calvin Rose
c8c6419013
Update installer again.
2019-05-29 19:48:31 -04:00
Calvin Rose
e8516c29e0
Update installer and jpm to work better on windows.
2019-05-29 19:01:12 -04:00
Calvin Rose
12247bd958
Update installer.
2019-05-29 17:48:46 -04:00
Calvin Rose
9d30d5f6e3
Update installer.
2019-05-29 13:02:15 -04:00
Calvin Rose
ba0956488d
Prepare for 0.6.0 release
2019-05-29 12:19:39 -04:00
Calvin Rose
31f502b508
Add more to util.h to help with amalg build.
2019-05-29 12:07:53 -04:00
Calvin Rose
efaaead378
Update changelog
2019-05-29 11:58:41 -04:00
Calvin Rose
4d47d92a4a
Windows WEXITSTATUS fix?
2019-05-29 11:53:57 -04:00
Calvin Rose
b39ad97a87
Fix up close to return proper exit code.
2019-05-29 11:50:46 -04:00
Calvin Rose
af23040d9c
file/close returns an integer.
...
If opened with popen, returns the exit code. Otherwise
returns nil.
2019-05-29 11:40:58 -04:00
Calvin Rose
fd2d706e33
Add os/remove.
2019-05-29 11:31:19 -04:00
Calvin Rose
178d175bcf
Update options for jpm and path stuff.
2019-05-29 11:04:38 -04:00
Calvin Rose
7a7f586094
Merge branch 'master' of github.com:janet-lang/janet
2019-05-28 23:03:08 -04:00
Calvin Rose
5124587c96
Merge pull request #114 from andrewchambers/configcheck
...
Add api for checking build compatibilty.
2019-05-28 23:02:08 -04:00
Calvin Rose
6c897b1a37
Add default for bindir.
2019-05-28 22:41:47 -04:00
Calvin Rose
c6ac53f4be
Try distributing only the installer.
2019-05-28 21:05:47 -04:00
Calvin Rose
2d7812a06c
Update appveyor.yml
2019-05-28 20:52:36 -04:00
Calvin Rose
db55277b58
Work on windows installer.
...
We will probably shift to NSIS as the default
installation method for windows. Shipping around a
single binary just doesn't cut it if we want to be able
to reliably use tools like `jpm` to build things.
2019-05-28 20:45:39 -04:00
Calvin Rose
75818217a6
Update CI tasks.
2019-05-28 14:02:45 -04:00
Calvin Rose
486b80fa7b
Update changelog, change version to 0.6.0
2019-05-28 13:59:12 -04:00
Calvin Rose
873054d055
Update CI test-install.
2019-05-28 13:03:47 -04:00
Calvin Rose
f12f896020
Change test-install
2019-05-28 12:59:21 -04:00
Calvin Rose
09ab391d13
Add import-rules to cook.
...
First steps to recursive rules. Just needs normalized paths
relative to the directory of the imported file.
2019-05-28 09:49:10 -04:00
Calvin Rose
7569930b0c
More work on cook and jpm.
2019-05-28 08:48:35 -04:00
Calvin Rose
e7189438dd
More work on jpm
...
Switch to rea dependency graph for a rake-like tool.
This model is more powerful for writing build scripts.
2019-05-27 22:14:24 -04:00
Andrew Chambers
3c304ddc35
Add api for checking build compatibilty.
2019-05-28 13:51:40 +12:00
Calvin Rose
1696de233c
Add jpm tool, based on cook.
...
Modify cook as well.
2019-05-27 16:50:57 -04:00
Calvin Rose
ce9cd4fcef
Issue #113 Color console support for windows 10
...
Use SetConsoleMode winapi function to enable ANSI
escape codes if we can.
2019-05-26 22:31:30 -04:00
Calvin Rose
698e89aba4
Fix comment macro arity #110
2019-05-25 22:50:15 -04:00
Calvin Rose
4c8dd4b96c
Fix shell like scripts.
2019-05-25 19:28:00 -04:00
Calvin Rose
11998b3913
Remove resolver element in path tuple.
...
Try to simplify module/paths back to how it used to be.
2019-05-25 17:27:56 -04:00
Calvin Rose
840610facf
Add urlloader example.
...
Demonstrate loading files from URL.
2019-05-25 17:10:25 -04:00
Calvin Rose
0280deccae
Allow filters on templates in module/paths
...
This lets us make loaders depend on file suffixes, which
lets us more efficiently use full paths.
2019-05-25 16:13:02 -04:00
Calvin Rose
4d5a95784a
Add LDFLAGS to Lflags in generated janet.pc
2019-05-24 19:58:52 -04:00
Calvin Rose
b43d93cf55
Add pkg-config to install.
2019-05-24 19:38:13 -04:00
Calvin Rose
3f137ed0b1
Add keyword argument tests
2019-05-24 17:53:34 -04:00
Calvin Rose
5deb13d73e
Update version 1.0.0 instead of 1.0.0-dev
2019-05-24 17:49:33 -04:00
Calvin Rose
82a1c8635e
Update changelog.
2019-05-24 17:14:05 -04:00
Calvin Rose
010e2e4652
Add keyword arguments via &keys.
...
This makes it easier to document functions that
take keyword arguments and also prevents some allocations
with these functions. Before, this was possible via normal
variadic functions but created an intermediate tuple, and
the generated docstrings did not document the keys.
2019-05-24 17:03:22 -04:00
Calvin Rose
ddedae6831
Reenable computed gotos - they were disabled.
2019-05-24 13:54:23 -04:00
Calvin Rose
6c63c4f129
Disable faulty embed test.
...
This needs more work on windows. However, the initial
goal of fixing the amalgamated build on windows should be ok
for now.
2019-05-23 20:32:51 -04:00
Calvin Rose
802686e3df
Apply patch from Dave Cottlehuber for bsd.
...
Update the install instructions.
2019-05-23 20:31:12 -04:00
Calvin Rose
3be79e8735
Link freebsd build.
...
Also begin work on CI amalg test for windows.
2019-05-23 11:15:58 -04:00
Calvin Rose
a303704a7d
Add some tests for the amalgamated source/
...
Adds tests to Makefile and CI on Poisx platforms.
2019-05-23 10:34:01 -04:00
Calvin Rose
b5e6c0b8fc
Address #109
...
Make repl work when default chunks not supplied.
2019-05-22 23:56:59 -04:00
Calvin Rose
98c46fcfb1
Update
2019-05-21 15:35:39 -04:00
Calvin Rose
409da697dd
Update JANET_TFLAG_CALLABLE.
...
Most datatypes in Janet are callable.
2019-05-21 15:33:35 -04:00
Calvin Rose
91c3685705
Remove JANET_WALIGN
...
It was not used anywhere in the source after some
refactoring to make better use of structs and unions for automatic
alignment.
2019-05-21 11:12:56 -04:00
Calvin Rose
411fc77ecf
Make env optional for compile.
2019-05-20 11:34:07 -04:00
Calvin Rose
0378ba78cc
Add regression test.
2019-05-20 09:20:50 -04:00
Calvin Rose
55d8e8b56b
Fix issue with compilation with source name.
...
Also add tuple/sourcemap and tuple/setmap.
2019-05-20 04:02:38 -04:00
Calvin Rose
97ad4c4f89
Update manpage and make -k mode not exit on error.
2019-05-19 15:20:59 -04:00
Calvin Rose
8de999c8f7
Merge pull request #107 from ALSchwalm/compile-only
...
Add a 'compile-only' flag to the command line
2019-05-19 15:06:35 -04:00
Adam Schwalm
f444bd25ef
Add a 'compile-only' flag to the command line
...
This allows syntax checkers like the emacs 'flycheck-mode' to check
the source without side effects.
2019-05-19 12:55:28 -05:00
Calvin Rose
43c0db4b0e
Add FAQ to readme for color terminal issues.
2019-05-17 09:48:08 -04:00
Calvin Rose
8f168c600d
Merge pull request #105 from andrewchambers/doc
...
Minor documentation fixes.
2019-05-17 07:59:08 -04:00
Andrew Chambers
ec43afb426
Minor documentation fixes.
2019-05-17 20:58:06 +12:00
Calvin Rose
880049c0ee
Merge pull request #104 from andrewchambers/openbsd
...
Add openbsd build file.
2019-05-16 22:13:26 -04:00
Andrew Chambers
2b7ac16784
Add openbsd build file.
2019-05-17 10:54:58 +12:00
Calvin Rose
56d903d75b
Remove extra closing paren.
2019-05-16 12:12:55 -04:00
Calvin Rose
7054e878fb
Add module/loaders for custom file types.
...
This will allow other languages/DSLs to very easily
integrate with Janet.
2019-05-16 12:05:40 -04:00
Calvin Rose
dde5351d11
Small changes to some doc strings.
2019-05-16 11:43:21 -04:00
Calvin Rose
7d49e3e6f1
Add unification to match macro.
...
Using a quote on a symbol prevents the match
macro from trying to create a binding to it, and
instead tells it that we are binding to a symbol
that is already in scope.
2019-05-16 10:05:54 -04:00
Calvin Rose
30cb01e2f0
Merge pull request #102 from PaulBatchelor/master
...
Add static library
2019-05-16 07:30:42 -04:00
Calvin Rose
018e836ef5
Merge branch 'master' of github.com:janet-lang/janet
2019-05-16 07:19:54 -04:00
Calvin Rose
7b25125431
Merge pull request #103 from VedVid/master
...
Primes example fixed
2019-05-16 06:15:05 -04:00
Vedor Vidurakis
0aa2f68793
Primes example fixed
...
It was failing due to unknown symbol "string/pretty"; (pp (primes 100)) works properly.
2019-05-16 12:03:54 +02:00
Paul Batchelor
516e031f67
Add static library
2019-05-15 22:38:18 -04:00
Calvin Rose
3331f2fa02
Update soname.
2019-05-15 11:39:18 -04:00
Calvin Rose
dd1a199ebd
Don't copy headers to JANET_PATH
2019-05-15 10:53:26 -04:00
Calvin Rose
f35b5765d6
Set module/*headerpath* during bootstrap
...
Cook also uses module/*headerpath* for finding headers
rather than using module/*syspath*.
2019-05-15 10:49:16 -04:00
Calvin Rose
8359044408
Don't symlink into $(PREFIX)/lib/janet
...
Using the AUR installer, this seems to result in
symlinks into the cache, which may be an issue and looks
strange. Instead, we can just copy the file once for
the cook module.
2019-05-15 08:46:12 -04:00
Calvin Rose
9f3dde3cc7
Update meson build for #98
2019-05-15 08:20:39 -04:00
Calvin Rose
ad0f7d9b0d
Merge branch 'master' of github.com:janet-lang/janet
2019-05-15 00:05:00 -04:00
Calvin Rose
f647ac5631
Address #95
...
A very minimal code change made partition take strings.
2019-05-15 00:04:25 -04:00
Calvin Rose
e4c5eb4c76
Merge pull request #97 from Crestwave/haiku
...
Add support for Haiku
2019-05-14 21:53:40 -04:00
Crestwave
dc9fc9c3f5
Add 32-bit Haiku build instructions
2019-05-15 01:27:55 +00:00
Crestwave
3b6a51df24
Add support for Haiku
2019-05-15 01:03:17 +00:00
Calvin Rose
f2313b9959
file/read on eof will return nil.
...
Also add documentation for :exit in import.
Address issue #91
Partially adress issue #93
2019-05-14 11:05:19 -04:00
Calvin Rose
805b3bbb88
Numbers require at least 1 significant digit.
...
Address issue #96
2019-05-14 08:44:38 -04:00
Calvin Rose
232ea22dc5
Add string/triml, string/trimr, and string/trim.
2019-05-10 16:09:49 -04:00
Calvin Rose
3388acd2db
Add dofile function.
...
Abstracts the actually running of a file from
the require function, so a file can be easily
evaluated without being cached.
2019-05-10 10:19:51 -04:00
Calvin Rose
52ab9fb475
Update cook tool and headers.
2019-05-09 17:37:46 -04:00
Calvin Rose
c7dc3611bc
Prepare for 0.5.0 release
2019-05-09 13:45:19 -04:00
Calvin Rose
7a313f6038
Update CHANGELOG, string/has-suffix?|prefix?
...
string/has-suffix? and string/has-prefix? can now accept
all byte data types for both arguments.
2019-05-09 13:42:14 -04:00
Calvin Rose
bbcfaf1289
Fix use after free bug in buffer/format when printing self.
2019-05-08 15:25:25 -04:00
Calvin Rose
bfb0cb331e
No temporary buffer in PR #87
2019-05-08 10:53:23 -04:00
Andrew Chambers
1759252071
Fix use after free in buffer/push-string.
2019-05-08 10:49:25 -04:00
Calvin Rose
fff60b053b
Use memmove in buffer/blit when needed.
2019-05-08 09:29:21 -04:00
Calvin Rose
65ac17986a
Address similar issue to #86
...
buffer/blit could trigger a use after free if a buffer is
blitted with itself and modifies its length.
2019-05-08 08:55:43 -04:00
Calvin Rose
ff720f1320
Expose current fiber via janet_current_fiber().
2019-05-04 19:07:04 -04:00
Calvin Rose
5a28d8d1fa
fix cook error.
2019-05-04 18:55:36 -04:00
Calvin Rose
ea25766374
fix cook.
2019-05-04 17:59:48 -04:00
Calvin Rose
88b8418253
Add simple tracing functionality to VM.
...
Also disable debugger for normal errors.
2019-05-04 15:05:00 -04:00
Calvin Rose
4fa1b28cad
Update changelog (string module)
...
Also run `make format` on code.
2019-05-04 10:11:52 -04:00
Andrew Chambers
c70d59edee
Add string/has-prefix? and string/has-suffix?.
2019-05-04 10:05:58 -04:00
Calvin Rose
5694998382
Update changelog
2019-05-02 18:05:06 -04:00
Calvin Rose
1cfc7b3b0d
Add preliminary debugger to default repl.
...
Also upddate colors, and fix formatting.
2019-05-02 17:11:30 -04:00
Calvin Rose
03e3ecb0a1
Update cook tool.
2019-05-02 13:10:14 -04:00
Calvin Rose
f8935b0692
test your links before committing
2019-05-01 11:06:20 -04:00
Calvin Rose
702b50b7a1
Indicate that the source is on sourcehut as well.
2019-05-01 11:04:41 -04:00
Calvin Rose
e7baa2ae3d
Update broken links in README.md
2019-04-29 18:35:09 -04:00
Calvin Rose
bfb354b469
Fix 32 bit platforms.
2019-04-28 16:22:24 -04:00
Calvin Rose
3c0f12ea4d
Add library installation during make install
...
Got removed a while ago for some reason, I forgot why.
2019-04-28 16:02:05 -04:00
Calvin Rose
25a93ac4a6
Fix loop :iterate.
2019-04-28 00:34:32 -04:00
Calvin Rose
0bad523913
Fix wrap functions.
2019-04-27 19:47:32 -04:00
Calvin Rose
5b36199aea
Fix MSVC warning.
2019-04-27 16:50:40 -04:00
Calvin Rose
a474a640be
Merge branch 'master' of github.com:janet-lang/janet
2019-04-27 15:48:28 -04:00
Calvin Rose
f10028d41a
Add function versions of macro API bindings.
...
This should help address #81 . Also hide janet_exit
and janet_assert, as they are really meant for internal usage.
I have not verified that this yet actually works with Rust's
bindgen.
2019-04-27 15:47:12 -04:00
Michael Forney
eb4684a64d
Remove spurious ';' after function definitions
...
The function definition is complete after the last '}', so the ';' is
a separate empty declaration, which is not actually valid in C99.
2019-04-25 16:24:27 -04:00
Calvin Rose
73b81e0253
Fix os/date doc typo.
2019-04-23 22:43:51 -04:00
Calvin Rose
027f106a56
Update CHANGELOG.md
...
Indicate support for longstrings with non semantic newlines.
2019-04-21 15:45:55 -04:00
Calvin Rose
20e94adb61
Update documentation for update function.
2019-04-21 15:44:03 -04:00
Calvin Rose
9100794cea
Drop leading and trailing newlines in longstrings.
...
Long, heredoc style strings can now have
a non semantic leading newline character. This makes it
easier to define large columns of text.
2019-04-21 13:34:41 -04:00
Calvin Rose
4ddf90e301
Make nanboxing on 64 bit platforms not the default.
...
64 bit nanboxing is kind of sketchy on non x86 architectures.
32 bit architectures seem to work better as the 32 implementation
doesn't rely on the format of the address space and layout of
double's in memory.
2019-04-18 12:52:28 -04:00
Calvin Rose
d1eca1cf52
Add all-dynamics to list current dynamic bindings.
2019-04-17 09:47:33 -04:00
Calvin Rose
7918add47d
Allow dynamically setting output for printers
...
Some functions like print and debug/stacktrace print
to a file, usually stdout. This file can now be optionally set
via a dynamic variable.
2019-04-16 21:44:19 -04:00
Calvin Rose
513d551df6
Move print in source code to io module.
...
print now reads the dynamic binding for :out
when choosing where to write to.
2019-04-16 19:10:01 -04:00
Calvin Rose
ddaa5e34e6
Fix web versinon repl colors.
2019-04-16 16:06:52 -04:00
Calvin Rose
208eb7520a
Update CHANGELOG.md and bump version.
2019-04-16 15:48:53 -04:00
Calvin Rose
2d7df6b78e
Many changes for adding dynamic (fiber-level) scope.
...
- Allow passing a table to fibers, which make fiber level scope easier.
- Add fiber/getenv, fiber/setenv, dyn, and setdyn
- Remove meta, *env*, and *doc-width*
- Some functions changed dignatures, and no longer take an env
2019-04-16 15:41:45 -04:00
Calvin Rose
7527142549
Prepare for 0.4.1 release
2019-04-14 11:42:41 -04:00
Calvin Rose
4e6193b67e
Fix parse insert bug.
2019-04-13 14:38:30 -04:00
Calvin Rose
4ded5e10a2
Update cook tool to export shell function.
2019-04-12 13:48:45 -04:00
Calvin Rose
1596511175
Fix undefined behavior bug with errors.
...
janet_vm_return_reg should only be set when janet_continue
is called. Otherwise, a panic may dump it's error message in
the wrong place, resulting in undefined behavior (often showing
the last return value or worse, segfaulting).
2019-04-10 23:29:40 -04:00
Calvin Rose
d514eab627
Add regression test for #78
2019-04-09 09:14:40 -04:00
Calvin Rose
5287007cd6
Fix typo in comment.
2019-04-09 09:05:47 -04:00
Calvin Rose
e5a56174e2
Switch fexists to use os/stat when available.
...
When os/stat is not available, we first
try to read one byte from the file before
saying it is good. If that fails, it is not
a file that we can read from so it counts as not found.
2019-04-09 09:01:52 -04:00
Calvin Rose
6c68c7a35f
Address issue #78
...
(file/open path :r+) should help. On windows, result
is unknown as of now.
2019-04-09 08:38:56 -04:00
Calvin Rose
675c1030fd
Fix error message on an arity mismatch.
...
janet_call had a bad janet_printf.
2019-04-07 23:53:50 -04:00
Calvin Rose
ed65d04b81
Fix peg bug with arguments.
...
By holding on a reference to argv for a long time, we
may trigger a use after free bug if the stack is resized. In
janet c function, argv is only vvalid up until the next stack operation
on the fiber. We could say that this is the dynamic lifetime of
argv.
To fix this, we copy extra arguments into a tuple, which is properly
garbage collected.
2019-04-07 15:14:54 -04:00
Calvin Rose
fa1c5c85b5
Remove no-capture mode in pegs.
...
Some peg grammars could not capture values based on their position in a
larger grammar. This is a design limitation inheritted from LPeg, but no
longer needed as the replace mode is superseded by the accumulator mode,
which is more general if slightly harder to use.
2019-04-06 11:38:00 -04:00
Calvin Rose
59c69e6896
Update cook cleaning up directory.
2019-04-05 20:01:03 -04:00
Calvin Rose
ee35786c8f
semicolon
2019-04-05 14:45:45 -04:00
Calvin Rose
ec6e2cfd62
os/stat returns nil if file does not exist.
2019-04-05 14:45:04 -04:00
Calvin Rose
7d48e7fd1f
Remove some extra search paths.
2019-04-01 14:07:13 -04:00
Calvin Rose
0063e3a69d
Fix module path typo.
2019-04-01 13:48:30 -04:00
Calvin Rose
cd6c009c03
Reformat and use new os/stat capabilities.
2019-04-01 11:21:45 -04:00
Calvin Rose
b15cf193a0
Update os/stat
...
os/stat can now take a keyword as the second argument
to avoid creating a table if one only wants on value
from stat.
2019-04-01 11:11:15 -04:00
Calvin Rose
429dc70374
Update cook tool to use os/stat for file age.
2019-03-31 21:35:44 -04:00
Calvin Rose
e50e77e5f9
Add build instructions back to README.md
2019-03-31 20:24:56 -04:00
Calvin Rose
2fdd6aa0f7
<br>
2019-03-31 18:15:28 -04:00
Calvin Rose
cc55364b21
Remove some more info from README.
2019-03-31 18:13:59 -04:00
Calvin Rose
71526d1d9b
Update README.md
...
Redirect to janet-lang.org to avoid repeating
prose or leaving outdated prose.
2019-03-31 18:11:29 -04:00
Calvin Rose
e239980da7
Quasiquoting bracketed tuples.
2019-03-31 14:15:26 -04:00
Calvin Rose
1709bce77e
Add os/rm and os/rmdir
2019-03-30 15:39:24 -04:00
Calvin Rose
d6ba2de888
Fix os/dir on windows.
2019-03-30 13:46:52 -04:00
Calvin Rose
61c0a4bc87
Windows has different defines for file modes.
2019-03-30 13:09:35 -04:00
Calvin Rose
8af28d3fa5
Windows bump.
2019-03-30 13:06:24 -04:00
Calvin Rose
970923d0e5
Update os/dir for windows.
2019-03-30 13:01:57 -04:00
Calvin Rose
5d7dc0a57c
Add os/dir support for linux/posix.
2019-03-30 12:36:27 -04:00
Calvin Rose
c5090606a4
Add os/stat function.
...
Allows getting more information about files. This
is really useful for writing software that needs to inspect
the file system (like a static site generator). We still need
a way to iterate directories though.
2019-03-30 12:06:14 -04:00
Calvin Rose
bf2d9ae634
Mess with includes for os.c
2019-03-28 23:34:24 -04:00
Calvin Rose
871a58e1db
Remove extreneous source reference on sr.ht build
2019-03-28 23:25:11 -04:00
Calvin Rose
53c7f2eedd
Add more os module functions.
2019-03-28 23:23:58 -04:00
Calvin Rose
bfd3845218
Fix cfunction debugging issue
...
Cfunction were not describing themselves very well, as
their names were not be added to the registry.
2019-03-27 00:14:51 -04:00
J.-F. Cap
22d75d017f
fix AbstractType get/set error message
2019-03-26 21:47:12 -04:00
Calvin Rose
37e6ea0a23
Update changelog
2019-03-24 15:11:00 -04:00
Calvin Rose
10769f6f2e
Appveyor build issues
...
Revert some externeous changes in build_win.bat to
see what happens.
2019-03-24 15:04:47 -04:00
Calvin Rose
082639319e
Add colors to repl and string/format.
...
This makes the repl look nicer using ANSI
color codes, which are widely supported. The codes
can also be turned off via the -m flag.
2019-03-24 15:00:22 -04:00
Calvin Rose
f20ad34c76
Add instructions for Scoop installation.
2019-03-23 23:27:13 -04:00
Calvin Rose
c045eadefa
Update changelog.
2019-03-23 22:16:12 -04:00
Calvin Rose
e2337b2ec4
Update build_win.bat to handle new amalg script.
2019-03-23 19:59:54 -04:00
Calvin Rose
90c5d12613
Add include_directories to meson
...
Before, a local build would only work if system
headers were installed.
2019-03-23 15:02:59 -04:00
Calvin Rose
6016662807
Ignore eclipse files.
2019-03-23 14:05:38 -04:00
Calvin Rose
2c9195b507
More updates to meson
...
Redo amalg script so we can more easily run
it from Meson.
2019-03-23 13:50:50 -04:00
Calvin Rose
b47c48b59a
Add Meson build setup to README.md
2019-03-22 18:47:16 -04:00
Calvin Rose
98758b68ab
Boot executable invocation has changed.
2019-03-22 18:37:46 -04:00
Calvin Rose
7f1b5d4d70
Merge core.janet into boot.janet
...
This simplifies the build machinery a bit.
core.janet is never actually included in the final
binary, it is just used to generate an image file.
2019-03-22 18:34:50 -04:00
Calvin Rose
25aa7a26c5
Add experimental meson build.
...
Should help with IDE integration.
2019-03-22 18:07:10 -04:00
Calvin Rose
cb2caecbb3
Add janetconf.h for configuring builds.
...
Rather than edit the Makefile or the janet.h header yourself, use
janetconf.h to configure builds. This has the benefit of making it
easier to configure janet in a persitent but easy way.
2019-03-22 14:33:30 -04:00
Calvin Rose
1e299632e4
Fix example.
2019-03-21 14:32:08 -04:00
Calvin Rose
94a2084723
Add tostring method for abstract types.
...
This lets abstract types customize how they
print for debugging.
2019-03-19 13:36:26 -04:00
Calvin Rose
22e24fb47b
Remove some dead code in bigint.
2019-03-19 12:30:44 -04:00
Calvin Rose
93f0d5f626
Quiet appveyor warnings.
2019-03-18 22:00:20 -04:00
Calvin Rose
bad040665f
Renamed bigint -> inttypes / int
...
A lot of refactoring larger integer types. Fix a number
of casting errors, but mostly rename things. Also try to
limit use of template-like macros as they bloat the binary
if not used in moderation. We were able to reduce the size of
typed array code as well by using a single view types.
2019-03-18 18:36:53 -07:00
J.-F. Cap
a07d76b264
use custom string to bigint reader in place of strtol
...
for better compatibility with default janet number reader
2019-03-18 18:36:53 -07:00
J.-F. Cap
1db6d0e0bc
Trap INT64_MIN / -1 exception
2019-03-18 18:36:53 -07:00
J.-F. Cap
34849ea7b3
added (u)int64 typed arrays back
2019-03-18 18:36:53 -07:00
J.-F. Cap
5a9f7c3a85
added in place op! operators
2019-03-18 18:36:53 -07:00
J.-F. Cap
15c6300608
added bitwise operators and guard for division by zero
2019-03-18 18:36:53 -07:00
J.-F. Cap
c6a4485623
code cleanup
2019-03-18 18:36:53 -07:00
J.-F. Cap
090c6ac975
added marshal/unmarshal
2019-03-18 18:36:53 -07:00
J.-F. Cap
319575c864
bigint operators and some tests
2019-03-18 18:36:53 -07:00
J.-F. Cap
42a0af3b1b
bigint pretty printing
2019-03-18 18:36:53 -07:00
J.-F. Cap
9bc899ccf2
added core/bigint.c
2019-03-18 18:36:53 -07:00
J.-F. Cap
d29e3a1199
first experiment with bigint
2019-03-18 18:36:53 -07:00
rncar
41bb6a9833
Added a getter to the new pointer type.
2019-03-14 14:21:44 -04:00
Calvin Rose
95e54c66b6
Use one tag type true and false
...
We moved the literals true and false into one tag
type, so we an extra tag for raw pointer types
(light userdata). These can be used from the C API via
janet_wrap_pointer and janet_unwrap_pointer.
2019-03-13 14:50:25 -04:00
Calvin Rose
31e2415bbb
Fix some indentation problems.
2019-03-12 20:56:16 -04:00
Calvin Rose
2a5234b390
Properly bail on parse and compile errors
...
If -p flag is not set, we should bail on all three kinds
of errors, not just runtime errors. This includes
parse and compile errors. Before, parse and compile errors
were not properly affected by the :exit parameter to require, which
in turn caused scripts to not bail on parse or compile errors.
2019-03-12 20:41:17 -04:00
Calvin Rose
ad5b0a371e
Optional param in bars.janet
2019-03-12 11:35:27 -04:00
Calvin Rose
ba4dd9b5bb
Fix splice -> unquote splice
2019-03-12 11:16:27 -04:00
Calvin Rose
d42bdf2443
Add proper optional arguments.
...
Use &opt in the parameter list to get optional arguments.
2019-03-12 00:23:14 -04:00
Calvin Rose
a246877c1e
Remove iterate-template from exported core symbols.
2019-03-11 01:01:59 -04:00
Calvin Rose
98e68a5cb4
Update special form lists to include break.
2019-03-11 00:58:26 -04:00
Calvin Rose
e12aace02c
Update web build.
2019-03-10 23:06:10 -04:00
Calvin Rose
51a9c7104d
Hide each-template
2019-03-10 13:31:42 -04:00
Quan Nguyen
75dc08ff21
Fix nil error on drop-until fn
2019-03-10 12:39:55 -04:00
Calvin Rose
6fa60820a3
Merge pull request #64 from quan-nh/master
...
Correct doc for drop-until fn
2019-03-09 23:47:00 -05:00
Quan Nguyen
609a9621af
Correct doc for drop-until fn
2019-03-10 11:36:27 +07:00
Calvin Rose
8ba1121161
Add early returns via break.
...
Inside a while loop, the argument to
break does nothing as while loops always
return nil.
2019-03-09 22:01:10 -05:00
Calvin Rose
9a080197e7
Switch some instances of loop in core
...
Several instances of loop in the core library are
switched over to the simpler each and for macros.
2019-03-09 21:01:47 -05:00
Calvin Rose
e65375277a
Update the loop macro.
...
Using the new break special form, the loop
macro was cleaned up. Loop bindings are also
able to be used immediately after declaration, so
forms like (loop [x :range [0 10] :while (< x 5)] (print x)) will
now compile correctly.
2019-03-09 20:47:07 -05:00
Calvin Rose
4a111b38b1
Add break special.
...
The break special form can break out of both loops
and functions with an early (nil) return. Mainly useful
for generated code in macros, and should probably be discouraged
in user written code.
2019-03-09 17:15:50 -05:00
Calvin Rose
a363dce943
Allow proper overriding of cfunctions in the core.
...
Allow overriding functions in the core libray to provide better
functionality on startup. Used to include our getline function in
the repl but use a simpler version in the core library.
2019-03-08 11:39:18 -05:00
Calvin Rose
687a3c91f5
Add array/remove and update CHANGELOG.
2019-03-08 10:24:21 -05:00
Calvin Rose
951aa0d8cd
Add typed array code to amalg.
2019-03-08 10:02:09 -05:00
Calvin Rose
a61b59be87
Mark release for 0.4.0
2019-03-08 00:56:19 -05:00
Calvin Rose
91f3c17a5b
Update CHANGELOG.md
2019-03-08 00:54:53 -05:00
Calvin Rose
0382dc976b
More code to better integrate with size_t
...
Typed arrays use proper size_t support in more
places now.
2019-03-08 00:44:26 -05:00
Calvin Rose
69dcab2b55
Silence some casting size_t to double errors.
2019-03-07 22:44:17 -05:00
Calvin Rose
c4f6f1d256
janet_marshal_bytes, janet_unmarshal_bytes size_t
...
Instead of a int32_t as the length argument, use
size_t to match up better with typearray.c and probably
most idiomatic C libraries.
Janet uses int32_t for length internally for consistency, space
efficiency, ability to fit int32_t in double, and various
other reasons.
2019-03-07 22:23:46 -05:00
Calvin Rose
b57e530553
Some more small changes to typedarray.c.
...
We want to compile janet with MSVC warning free.
2019-03-07 22:12:06 -05:00
Calvin Rose
021b71ad62
Allow proper serialization of size_t in marsh.c
...
Typed arrays used size_t in serialization: C APIs will
also often use it, so it makes sense to add first class support
for it rather than assume it will will fint into an integer.
These changes should quiet some visual studio warnings.
Also make some spacing more consistent.
2019-03-07 22:08:44 -05:00
Calvin Rose
0ee2ff1b05
Add :fiber-flags options to run-context.
...
This also improves eval-string error behavior.
2019-03-07 18:55:19 -05:00
Calvin Rose
adaa014d7c
No div by 0 - will fix later.
2019-03-07 16:20:36 -05:00
Calvin Rose
dc9dc98e80
Update for issue #62
2019-03-07 16:17:18 -05:00
Calvin Rose
4a2d4f52b5
Allow inverted ranges with negative steps.
2019-03-04 15:44:56 -05:00
Calvin Rose
8d37e544ab
Fix BSD builds.
...
Try to silence some more undefined C warnings
with -fsanitize=undefined.
2019-03-04 12:16:49 -05:00
Calvin Rose
b07adce2b9
Fix some issues found with -fsanitize=undefined
...
Leave in issues with calling memcpy with size=0. If these
become a problem, will probably add a janet_memcpy as memcpy
is used so much in the code without 0 checks.
2019-03-04 11:17:34 -05:00
Calvin Rose
624be87c97
Add test for :down verb.
2019-03-03 23:55:38 -05:00
Calvin Rose
1b9591b5e3
Add :down verb to loop macro.
...
Also remove with-idemp from core, which was both confusing
(to the author) and not generally useful.
2019-03-03 23:52:20 -05:00
Calvin Rose
a4cc23971f
Only use -rdyanmic at link time
...
Before, we were using -rdynamic as a compiler flag, but
it is only needed at link time. This also gets rid of some
annoying warnings in clang.
2019-03-03 18:55:10 -05:00
Calvin Rose
9ed1c35d30
Add sudo permissions to freebsd build.
...
'sudo gmake install'.
2019-03-03 15:21:40 -05:00
Calvin Rose
6158ec0ce5
Add -undefined dynamic_lookup on mac.
2019-03-03 15:18:17 -05:00
Calvin Rose
009bed158b
Travis add sudo.
2019-03-03 14:54:01 -05:00
Calvin Rose
402dc2a767
Test installation on sourcehut free bsd as well.
2019-03-03 14:52:11 -05:00
Calvin Rose
b5eb888af6
Add test-install to travis CI.
...
Users have been reporting installation trouble on
platforms like OSX and BSDs, so we need to make sure
that the cook module is more portable.
2019-03-03 14:50:17 -05:00
Calvin Rose
172261b89f
Add a test-install target to the Makefile
...
This target will be used to check if an installation
of Janet is on the PATH, if native modules can be built
and used via the cook module, etc.
2019-03-03 14:48:17 -05:00
Calvin Rose
8cc2c964c1
Add :export option to import
...
Also allow NULL ptr to janet_getfile for flags.
2019-03-02 11:46:31 -05:00
Calvin Rose
efbb704247
Merge pull request #56 from jfcap/register-corefile
...
Register core/file abstract type
2019-03-02 11:40:05 -05:00
J.-F. Cap
7fef5be3af
Merge remote-tracking branch 'upstream/master' into register-corefile
2019-03-02 15:38:31 +01:00
J.-F. Cap
1753f8bc18
Added janet_getfile C API function and revert core/file AT registering
2019-03-02 15:36:34 +01:00
Calvin Rose
235019ec39
Merge branch 'master' of github.com:janet-lang/janet
2019-02-27 16:30:04 -05:00
Calvin Rose
7d17159ae4
Make JANET_STACK_MAX configurable option.
...
Also double default value from 8192 to 16384
2019-02-27 16:28:43 -05:00
Calvin Rose
56d7d4ef39
Merge pull request #57 from tekknolagi/patch-1
...
Fix typo in README
2019-02-27 15:43:29 -05:00
Max Bernstein
77c379faa8
Fix typo in README
2019-02-27 11:39:00 -08:00
Calvin Rose
3014a59c3e
Fix parse error with comment on last line.
...
If a comment is not followed by a newline character, then
we got a false parse error. This is because the comment
state is left on the parse stack when we finished parsing, and
since the parse stack was not emtpy, we assumed an error.
This commit adds the parser/eof function, which lets the parser know
that an eof was reached. Before, we simply added a fake newline
character in some cases, and in the case of reading a file, we did
nothing, hence the bug.
2019-02-27 13:59:25 -05:00
J.-F. Cap
d70049dbb1
Register core/file abstract type
2019-02-27 10:54:10 +01:00
Calvin Rose
4713219317
Update whitespace and some doc strings.
2019-02-25 23:48:04 -05:00
Calvin Rose
36f92db61e
Merge pull request #55 from jfcap/typed-array
...
Binary Typed Array for Janet
2019-02-25 23:40:19 -05:00
J.-F. Cap
59393fc73b
Added some guards in ta_view unmarshalling
...
to protect against bad marshalled data.
2019-02-26 02:28:24 +01:00
J.-F. Cap
3eb44f1f79
Fix buffer allocation
2019-02-26 00:21:03 +01:00
J.-F. Cap
fb5119bf43
Added some tests (suite 5)
2019-02-25 18:49:04 +01:00
J.-F. Cap
febfefa4b2
Added tarray/slice and fix buffer size
2019-02-25 02:21:10 +01:00
J.-F. Cap
632b920e97
fix C format
2019-02-24 22:36:35 +01:00
J.-F. Cap
c81bf42f6b
Merge remote-tracking branch 'upstream/master' into typed-array-work
2019-02-24 22:25:33 +01:00
J.-F. Cap
4147c0ce1f
Added typed array C API
2019-02-24 22:24:18 +01:00
Calvin Rose
602e30a421
Add "\v" string esca[e sequence.
2019-02-24 14:46:16 -05:00
Calvin Rose
92a5567b4a
Remove some makefile crust from older scripts.
2019-02-24 14:25:04 -05:00
Calvin Rose
9495be328c
Be more careful about data alignment
...
Alingment issues can happen anywhere we do casting
on pointer types. Be more careful in the peg module about
ensuring that pointers are aligned well.
2019-02-24 13:43:38 -05:00
J.-F. Cap
0eae75a5c2
added MARSH_EOS check
2019-02-24 18:45:14 +01:00
J.-F. Cap
8e0d7f2539
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-24 03:06:26 +01:00
J.-F. Cap
9c1c7fb384
Remove AT id use name as tag
2019-02-24 02:51:34 +01:00
J.-F. Cap
af48912f11
Simplify Abstract type introspection
2019-02-24 02:02:54 +01:00
Calvin Rose
327d2ed849
Remove extra "compile error: " string.
2019-02-23 15:38:49 -05:00
J.-F. Cap
db64a682be
fix incompatibilities with upstream/master changes in marsh.c
2019-02-23 17:54:09 +01:00
J.-F. Cap
4d3c655058
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-23 17:36:38 +01:00
J.-F. Cap
2becebce92
fix C source format
2019-02-23 17:13:43 +01:00
J.-F. Cap
0cc6c6ff33
implement typed array marshal/unmarshal and
...
generic marshaling capabilities to abstract types.
2019-02-23 16:58:47 +01:00
Calvin Rose
115bc6140b
Fix NULL ptr issue.
2019-02-22 17:12:34 -05:00
Calvin Rose
b14fcb068b
Update janet_pcall interface
...
The programmer can now not only get the used fiber, but
provide a fiber to reuse if many calls are made in succession.
2019-02-22 17:10:24 -05:00
Calvin Rose
2ea28f29b0
Shut up some warnings from clang's static analyzer.
...
Not particularly useful actually, by and large false positives.
2019-02-22 12:10:27 -05:00
J.-F. Cap
7cb1c7cef2
added ta marshalling
2019-02-22 17:41:27 +01:00
Calvin Rose
9d60e8b343
Address issue #54
...
Bug when marshalling function environments that were still on a fiber
stack.
2019-02-22 10:16:32 -05:00
Calvin Rose
340a6c4d8d
Update marsh.c to use janet_panic for errors.
...
Before, we used a local setjmp/longjmp for error handling.
Using janet_panic means errors can be more easily expressive and
code can be smaller.
However, we still need to make vector memory get gc collected, as
panics can cause the runtime to skip janet_v_frees.
2019-02-22 10:12:25 -05:00
J.-F. Cap
e5a4c6fc2b
Merge remote-tracking branch 'upstream/master' into ta-with-marshal
2019-02-22 15:58:47 +01:00
J.-F. Cap
db9ac6dba5
marshal buffer ok
2019-02-22 15:57:48 +01:00
J.-F. Cap
d570aae817
Merge branch 'ta-marshal' into ta-with-marshal
2019-02-22 11:13:12 +01:00
J.-F. Cap
59e4b15fad
added some abstract type instrospection capabilities
...
registering abstract type in vm_register table
2019-02-22 10:54:22 +01:00
Calvin Rose
b3401381fa
Update CHANGELOG.md
2019-02-21 20:40:13 -05:00
Calvin Rose
beed839d12
Remove the callable? predicate.
...
Many times are callable now in some circumstances, so
the predicate is not that useful.
2019-02-21 20:38:22 -05:00
Calvin Rose
f4908ebc41
Update issue 53 regression test.
...
Some tests did not call assert so did not show up on report.
2019-02-21 19:19:47 -05:00
Calvin Rose
1147482e62
Address #53 - marshalling fiber strangeness
...
The unmarshaller was not tracking fibers in references.
2019-02-21 19:11:28 -05:00
J.-F. Cap
4d07176f1c
work in progress
2019-02-21 20:52:39 +01:00
Calvin Rose
8c67bf82f6
Remove restriction on variable length arrays.
2019-02-21 11:54:06 -05:00
Calvin Rose
0823eb7327
Change order of directory creation.
2019-02-21 11:50:48 -05:00
Calvin Rose
8cff3dd2c3
Fix one more warning.
2019-02-21 11:46:39 -05:00
Calvin Rose
df550efb6b
Fix MSVC compiler warnings.
2019-02-21 11:34:04 -05:00
Calvin Rose
00a47dc0cb
Begin work on new memory layout for all objects and GC.
...
The layout should actually be very similar to the old layout, but
the code will be much easier to change and should be more portable.
2019-02-21 11:22:29 -05:00
Calvin Rose
811b1825cb
Remove tuple/append and tuple/prepend.
...
Use the splice special instead.
2019-02-20 21:08:54 -05:00
J.-F. Cap
2ca252bc0e
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-21 01:43:22 +01:00
J.-F. Cap
6054858359
fix C format
2019-02-21 00:20:54 +01:00
J.-F. Cap
1d50fd9485
First exeperiments with JS style Binary Typed Arrays
2019-02-21 00:15:48 +01:00
Calvin Rose
a982f351d7
Address #50
...
Issues with range when called with 3 arguments.
2019-02-20 12:07:20 -05:00
Calvin Rose
27a274b686
Update some corelib functions.
...
Some corelib functions that were created via janet_quickasm
were missing some flags for arity checking, so they were marked as
accepting any arity.
2019-02-19 23:41:16 -05:00
Calvin Rose
cb002e7b84
Update generating tools to produce stylish code.
...
Really small whitespace changes in generated code.
2019-02-19 21:28:22 -05:00
Calvin Rose
c022a1cf1a
Add astyle guidelines to the contributing document.
2019-02-19 20:59:34 -05:00
Calvin Rose
9d4effc02e
Add make format to format code.
...
A consistent style should help with contributors and
readability. We use astyle as the formatter as can make a pretty
good approximation of the current style and my preferred style.
Astyle can be found at http://astyle.sourceforge.net/astyle.html
2019-02-19 20:51:34 -05:00
Calvin Rose
7c19ed8a48
Merge pull request #49 from boardwalk/fix_indentation
...
Fix indentation, converting some tabs to spaces.
2019-02-19 19:08:18 -05:00
Dan Skorupski
ef5f80ad38
Fix indentation, converting some tabs to spaces.
2019-02-19 17:54:13 -06:00
Calvin Rose
dbcbb4466d
We don't need to add module/\*headerpath\*.
...
We can just dump janet.h into the lib folder as well.
2019-02-18 22:25:40 -05:00
Calvin Rose
7927078b49
Include header path when building modules.
2019-02-18 20:27:00 -05:00
Calvin Rose
b61c9eb991
Update build script for windows.
2019-02-18 20:15:20 -05:00
Calvin Rose
ed72dcf82d
Rename the header <janet/janet.h> to <janet.h>
...
Makes it easier to use and remember, and makes the
variable `module/*headerpath*` make more sense.
2019-02-18 20:13:35 -05:00
Calvin Rose
9480ad24cc
Merge pull request #46 from tssva/remove_mandb
...
Don't call mandb during install
2019-02-18 19:01:22 -05:00
Tim Sedlmeyer
a9574b692f
Don't call mandb during install
...
mandb is used on many but not all linux distributions and infrequently outside of linux to maintain the man page index files, so it should not be called as part of the install process.
2019-02-18 18:29:35 -05:00
Calvin Rose
8d9a88e759
Add JANET_PATH back in.
2019-02-18 15:31:15 -05:00
Calvin Rose
732de8f88d
Update man page.
2019-02-18 15:26:53 -05:00
Calvin Rose
6af5800d21
Add -m option to command line
...
The -m option set the default system path for finding libraries
for that invocation of Janet.
2019-02-18 15:11:59 -05:00
Calvin Rose
540b326c54
Simpler way to set JANET_PATH at compile time.
2019-02-18 14:48:29 -05:00
Calvin Rose
660a2b41ae
Set module/*syspath* to JANET_PATH at build time
...
The takes out the hardcoded reference to /usr/local/
2019-02-18 14:31:23 -05:00
Calvin Rose
d2d502b9ae
Remove ldconfig stuff.
2019-02-18 13:49:43 -05:00
Calvin Rose
3aae524964
Try to respect PREFIX more.
...
Remove automatic installation of shared library.
2019-02-18 13:46:35 -05:00
Calvin Rose
07912f5ab2
Update comments in strtod.c
2019-02-17 21:44:58 -05:00
Calvin Rose
ffc14f6019
Oops, peg option issue fixed.
2019-02-17 21:25:30 -05:00
Calvin Rose
1e70c97ef0
Allow enabling/disabling of peg module.
...
Use compiler define -DJANET_NO_PEG to turn off the peg module.
2019-02-17 21:22:03 -05:00
Calvin Rose
54227ebff1
Update README.md
2019-02-17 14:00:15 -05:00
Calvin Rose
33087fe9de
Update game of life example.
2019-02-17 11:20:24 -05:00
Calvin Rose
6d5ff43de7
Make amalg build cleaner.
...
Don't pull in a global header <janet/janet.h> unless we need to.
2019-02-16 23:33:24 -05:00
Calvin Rose
c715912ea3
Update changelog.
2019-02-16 21:57:47 -05:00
Calvin Rose
3b6ff3c09a
Add -c option to main client
...
This allows compile janet source modules to images.
2019-02-16 21:55:53 -05:00
Calvin Rose
efab484fff
Remove some more extra text in core api doc.
2019-02-16 18:39:44 -05:00
Calvin Rose
4ba7fbb8bb
Remove extra 'at' in generated doc.
2019-02-16 18:38:34 -05:00
Calvin Rose
53cc7ebd29
Fix gendoc.
2019-02-16 18:37:15 -05:00
Calvin Rose
c6f032340a
Update CHANGELOG.md
2019-02-16 17:55:08 -05:00
Calvin Rose
0ce5acec89
Begin cleaning up string API.
...
Remove string/pretty in favor of buffer/format and string/format. Also
drop string/number, which is more verbose and less flexible than
string/format.
2019-02-16 15:12:34 -05:00
Calvin Rose
44e31cac5d
Merge pull request #40 from jfcap/string-format
...
string/format
2019-02-16 15:02:47 -05:00
Calvin Rose
029394db31
Add buffer/format as well as string/format.
...
buffer/format uses the old string/format behavior. `string/format` no
longer requires a buffer, and returns a string.
2019-02-16 13:59:38 -05:00
Calvin Rose
00020ba8ab
Whitspace and style changes.
2019-02-16 13:40:51 -05:00
Calvin Rose
1f91ee30fe
Make require simpler and module/find more useful.
...
This replaces a lot of the functionality in require by moving
it to module/find. module/native-paths and module/image-paths are also
merged into the one module/paths to make it easier to extend. This of
course breaks some of the less important API - module/native-paths no
longer exists.
2019-02-16 13:21:29 -05:00
J.-F. Cap
0f0c415bcf
Adde some tests for string/format
2019-02-16 16:28:10 +01:00
J.-F. Cap
a6f022a73d
Added string/format function (snprintf like)
2019-02-16 03:29:04 +01:00
Calvin Rose
ec02d55145
Update README to show sourcehut build.
2019-02-15 19:58:25 -05:00
Calvin Rose
cb1a773ca8
Update sr.ht build.
2019-02-15 19:43:30 -05:00
Calvin Rose
0dc1217d69
Merge pull request #36 from charles-l/master
...
Update makefile for OpenBSD
2019-02-15 19:07:10 -05:00
charles
06f38d3380
Update makefile for OpenBSD
2019-02-15 19:02:14 -05:00
Calvin Rose
2e1ec3700d
Fix compilier warning on -Os, gcc.
2019-02-15 19:01:47 -05:00
Calvin Rose
9e6b1d1b16
Add images.
...
Images are precompiled libraries. They can be created programmatically
via the `write-image` function and then loaded with `require` or
`import`. They can also be run by the command line tool - you must
specify the path to the image without the .jimage extension.
2019-02-15 18:56:41 -05:00
Calvin Rose
bdf03b4706
Fix unmarshalling integers directly, not through readint.
2019-02-15 14:01:32 -05:00
Calvin Rose
4d96ba3ba9
Merge branch 'master' of github.com:janet-lang/janet
2019-02-15 13:21:00 -05:00
Calvin Rose
f161002390
Address #35
2019-02-15 13:20:20 -05:00
Calvin Rose
eb576d6caf
Merge pull request #33 from jfcap/master
...
Fix buffer (and string) used as callee for indexing.
2019-02-12 20:21:44 -05:00
J.-F. Cap
e0d26629e0
Fix buffer (and string) used as callee for indexing.
2019-02-12 23:40:59 +01:00
Calvin Rose
17783c3c3e
Add tuple/brackets
...
Fix macro expansion via macex for bracketed tuples.
2019-02-11 18:37:59 -05:00
Calvin Rose
c64e92a5de
Add some unused math functions.
...
Several functions from the C math library were
forgotten in the math module. These have been
added to the core library.
2019-02-10 12:03:22 -05:00
Calvin Rose
291c13bafc
Merge pull request #32 from jfcap/master
...
Added math/abs binding
2019-02-10 11:57:28 -05:00
J.-F. Cap
c6672e62ac
Added math/abs binding
2019-02-10 14:06:10 +01:00
Calvin Rose
eb9bd38256
Merge branch 'master' of github.com:janet-lang/janet
2019-02-09 12:24:20 -05:00
Calvin Rose
3ac6b2335a
Merge pull request #31 from jfcap/crazy-brackets
...
Crazy brackets
2019-02-09 12:23:41 -05:00
Calvin Rose
c6edf03ae8
Fix some code style, add tuple/type function.
...
We need to be able to detect tuple type from janet code, otherwise
tuples will contain hidden state. The tuple/type function is able
to detect the flags in the tuple so the programmer can access them
if needed.
2019-02-09 12:21:11 -05:00
J.-F. Cap
5020a1bae9
Added marshalling code to save tuple_flag
2019-02-09 17:00:35 +01:00
J.-F. Cap
86ba69c16b
Merge remote-tracking branch 'upstream/master' into crazy-brackets
2019-02-08 23:45:55 +01:00
J.-F. Cap
5f70024f87
Experimental stuffs with bracket syntax
2019-02-08 21:49:28 +01:00
Calvin Rose
9ff819a4a1
Fix build_win.bat
2019-02-08 15:02:36 -05:00
Calvin Rose
1244e2e93b
Update changelog
2019-02-08 13:45:04 -05:00
J.-F. Cap
8ab60e475a
typo in janet_indexed_view
...
(no consequence but look strange)
2019-02-08 01:10:07 +01:00