Calvin Rose
3995fa86e2
More work on function calls.
2024-06-07 20:20:16 -05:00
Calvin Rose
9d7a279999
Merge branch 'master' into compile-opt
2024-06-07 19:28:17 -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
3e273ce03a
More work on sysir.
2024-06-07 10:09:53 -05:00
Calvin Rose
25b7c74089
More work on register allocation and spilling.
...
Setup frontend.janet to show the basics of what is going on. Currently
emitting "fake" instructions just to hash out the idea.
One apparent issue is how we handle register spilling during variable
argument IR instructions (function calls). Arguments should come
_before_ the function call not after.
2024-06-05 17:50:11 -05:00
Calvin Rose
f0f03ad519
Delete dead code.
2024-06-04 21:11:08 -05:00
Calvin Rose
9e47cd94bd
Delete extra code.
2024-06-04 21:10:35 -05:00
Calvin Rose
7ea118f248
Begin work on simple x64 backend.
...
Introduce register allocation, spilling, etc. First implementation
will likely emit textual assembly and use a very bad register allocation
algorithm.
2024-06-03 08:35:08 -05:00
Calvin Rose
480c5b5e9d
Change how labels are recorded.
...
Disallow jumping to arbitrary instructions - instead, only allow jumps
to label ids. This will make various transformations and validations
easier since adding or remove instructions does not break jumps.
2024-06-02 09:43:33 -05:00
Calvin Rose
8a394f2506
Merge branch 'master' into compile-opt
2024-06-01 13:03:36 -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
ae2c5820a1
Fix janet_strerror when _GNU_SOURCE defined.
2024-05-25 13:24:01 -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
03166a745a
Disallow nan and inf in jdn.
2024-05-19 13:25:25 -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
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
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
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
2c208f5d01
Merge branch 'master' into compile-opt
2024-05-15 07:49:46 -05:00
Calvin Rose
0350834cd3
By default, require and import extend current env.
2024-05-15 07:40:21 -05:00
Calvin Rose
08e6051af8
More work on sysir compiler - basic function calls (without prototypes).
2024-05-15 07:24:15 -05:00
Calvin Rose
19212e6f5c
Remove net.c changes.
2024-05-12 18:09:22 -05:00
Calvin Rose
8875adf69e
Merge branch 'master' into compile-opt
2024-05-12 16:22:06 -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
745567a2e0
More work on frontend.
2024-05-09 22:22:38 -05:00
Calvin Rose
ef2dfcd7c3
More work on a proof of concept frontend.
...
Basic frontend being prototyped in examples/sysir/frontend.janet. Still
a lot of work needs to be done here, and some of this code will
eventually move to C most likely, but this is a good way to better
exercise our backend.
Type inference - at the very least _forward_ inference, is the most
needed change here. While one could do this in the compiler
frontend, doing so in sysir/asm is not so much of an issue. "Inference"
here means inserting "bind" instructions when there is only a single
type that will work correctly.
2024-05-05 14:45:00 -05:00
Calvin Rose
f582fe1f69
Update compiler opt
2024-05-04 16:14:59 -05:00
Calvin Rose
3cc3312b7b
Merge branch 'master' into compile-opt
2024-05-04 16:14:35 -05:00
Calvin Rose
f2d25a0da2
Add test case.
2024-05-04 16:14:26 -05: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