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
e88042b2fa
Pick default bundle name better.
2024-05-25 16:09:49 -05:00
Calvin Rose
641a16c133
Add suite-bundle to meson test list.
2024-05-25 15:42:28 -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
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
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
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
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
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
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
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
bf19920d65
Improve casting.
2024-04-18 03:29:45 -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
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
Josef Pospíšil
9f9146ffae
Prepare for 1.34.0 release
2024-03-20 10:11:08 +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
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
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
sogaiu
354896bc4b
Add to propagate docstring ( #1365 )
2024-02-03 15:48:19 +09: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
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
sogaiu
cf4d19a8ea
Cosmetically tweak module/expand-path docstring
2024-01-22 22:16:14 +09: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
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
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
Josef Pospíšil
938f5a689e
Fix arity typo in peg
2023-12-07 14:08:03 +01: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
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
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
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
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
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
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
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