Calvin Rose
731592a80e
Merge branch 'master' into compile-opt
2024-09-29 17:27:49 -05:00
Calvin Rose
3894f4021a
Update copyright date.
2024-09-29 16:07:24 -05:00
Calvin Rose
ea332ff81e
More work on making the temporary frontend a little nicer.
...
We need to create abstractions around more of the backend
to properly test and experiment with things, even if the frontend
is not final.
2024-09-29 15:55:10 -05:00
Calvin Rose
f36d544deb
MSVC and strange errors.
2024-09-29 12:30:51 -05:00
Calvin Rose
ae15eadfaf
Merge branch 'master' into compile-opt
2024-09-28 16:00:30 -05: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
3618b72f4d
Merge branch 'master' into compile-opt
2024-09-08 12:28:51 -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
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
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
ce528251d5
Fix mingw build warnings.
2024-08-20 18:06:57 -05:00
Calvin Rose
b63b3bef74
Add testing for Linux.
2024-08-18 15:44:59 -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
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
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
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
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
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
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
4835ecb950
Work on making range take non-integer values.
2024-07-11 08:05:52 -05: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