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
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
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
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
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
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
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
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
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
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
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