Commit Graph

14076 Commits

Author SHA1 Message Date
Dan Doel
d6c0ae2eca Add to random-deserial tests
Adds versions of the tests saved in an old format, checking that they
still work, and match the new version of the same test.
2023-09-08 12:54:22 -04:00
Dan Doel
1384d8aa08 Add a note in comments on new serialization format 2023-09-08 11:21:22 -04:00
Dan Doel
f9e8c78c8f Remove base tests from interpreter builtin tests 2023-09-08 10:58:08 -04:00
Dan Doel
0ec34c4435 Try running base tests from CI 2023-09-07 18:32:04 -04:00
Dan Doel
313943271c Increment @unison/internal version 2023-09-07 17:45:06 -04:00
Dan Doel
d9e0806011 Ormolu changes 2023-09-07 16:46:37 -04:00
Dan Doel
dfc3814c13 Increment code serialization version 2023-09-07 16:41:17 -04:00
Dan Doel
f9a8b6c956 Expected transcript changes: hashes 2023-09-07 16:09:09 -04:00
Dan Doel
ccb25dcfb4 Implement racket portion of new intermediate format 2023-09-07 16:05:37 -04:00
Dan Doel
0f52e01f73 Fix up tests w/r/t new ANF constructors 2023-09-07 16:04:25 -04:00
Dan Doel
d91de0ef39 Add fake builtins for sequence split patterns
Previous implementation was directly including primops into the
generated intermediate code, which involved unboxed literal arguments.
These fake builtins allow for generating boxed literals so that no
unboxed data is on the surface stack.

I believe this was the last source of unboxed data on captured stacks.
2023-09-07 16:01:58 -04:00
Dan Doel
9da57e92e9 Store Char in interchange literals
The serialization is the same, but this is a bit less strange as a
representation.
2023-09-07 02:20:45 -04:00
Dan Doel
9c9654d0b4 Alignment for new code constructors
This is necessary for checking equality of code.
2023-09-07 02:18:43 -04:00
Dan Doel
f450e97e68 Add a test for int/nat hash equivalence 2023-09-05 18:26:19 -04:00
Dan Doel
42458974fd Add more literals to value serialization format.
This covers values that are stored as pseudo data types in the Haskell
runtime, which would otherwise need to be serialized using unboxed data
in the byte format.
2023-09-05 17:14:39 -04:00
Dan Doel
bd51afea26 stdHandle didn't match its calling convention
The implementation was producing Maybe, but the calling convention just
called the primop in tail position. This would leave the Just tag on the
unboxed stack afterwards.
2023-09-01 14:10:15 -04:00
Dan Doel
360e8298ee Introduce some new runtime functionality for cases/lits
The goal of these changes is to remove unboxed details from the
interchange formats, and instead exchange values that somewhat resemble
surface level unison values. In some cases, the way this works is
obvious. For instance, the MatchNumeric/NMatch and BLit constructs avoid
having unboxed details in code. However, what might not be so obvious is
the request/data matching constructs. These prevent unboxed values from
occurring on the stack in normal unison functions, which means they no
longer end up in captured continuations.

The unboxed details were originally intended to support optimizations
that would turn surface unison functions into more efficient versions
that operate without any boxing. However, that didn't materialize, and
it seems unlikely that we'll implement it for the Haskell end of things
(we aren't really obliged to do this ourselves for good performance in
scheme). So, some of these new methods of doing things might actually be
more efficient than what was happening previously.
2023-09-01 12:59:29 -04:00
mergify[bot]
e7b891914b
Merge pull request #4265 from unisonweb/pg/name-lookups-hasql
Port Name lookups to Postgres
2023-08-31 22:35:33 +00:00
Chris Penner
fee42779f3 Apply perf optimization: don't call callback unless there are changes 2023-08-31 15:11:18 -07:00
dolio
6300b3693c
Merge pull request #4296 from unisonweb/iops
[jit] Add setCurrentDirectory, renameDirectory, isDirectory, systemTime, systemTimeMicroseconds, isSeekable, and handlePosition
2023-08-31 14:29:20 -04:00
Arya Irani
6391d6b5d2
Merge pull request #4289 from unisonweb/release-run-name 2023-08-31 09:29:02 -04:00
mergify[bot]
01eec88b54
Merge pull request #4298 from unisonweb/provide-haskell-language-server-wrapper
add haskell-language-server-wrapper symlink
2023-08-30 15:30:46 +00:00
Travis Staton
101b48e1ed add haskell-language-server-wrapper symlink 2023-08-30 11:09:30 -04:00
Jared Forsyth
09a30e49f8 [iops] nice 2023-08-30 07:02:25 -05:00
Jared Forsyth
994b3e512b [iops] tests passing interpreter 2023-08-30 07:00:45 -05:00
Jared Forsyth
e64aa0ec5e [iops] ok new tests passing 2023-08-30 06:58:47 -05:00
Arya Irani
a8cc552bad
Merge pull request #4292 from unisonweb/cp/fix-release-script 2023-08-29 15:42:36 -04:00
Chris Penner
0519431e71 Use gawk if installed 2023-08-29 11:29:22 -07:00
Chris Penner
2382948a66
Merge pull request #4291 from unisonweb/cp/fix-release-script
Warn on invalid awk version
2023-08-29 11:21:50 -07:00
Chris Penner
6fb1d3e592 Ensure GNU Awk 2023-08-29 10:48:23 -07:00
Arya Irani
2339fae497 try to set a custom workflow name on release 2023-08-29 10:31:06 -04:00
Jared Forsyth
6aa0c7e29a [iops] not working lol 2023-08-29 09:14:06 -05:00
Arya Irani
04ba01c637
Merge pull request #4288 from unisonweb/23-08-28-pull-latest 2023-08-29 10:14:06 -04:00
Jared Forsyth
8014451080 [iops] ok pulling is working 2023-08-29 09:14:06 -05:00
Jared Forsyth
0798b17b25 [iops] updated base I guess 2023-08-29 09:14:06 -05:00
Mitchell Rosen
8e97fc693d allow pulling <project>/releases/latest 2023-08-29 00:34:42 -04:00
Paul Chiusano
b784c9c19a
Merge pull request #4287 from unisonweb/topic/racket-rehash
Implement verified hashing for racket backend, with assorted changes
2023-08-28 09:50:13 -05:00
Dan Doel
47c26489e2 Bump default @unison/internal version 2023-08-28 09:58:48 -04:00
Dan Doel
2fea65ff88 Rework parts of primops-generated
Replaced some macro-generated stuff with a racket match. At the same
time, factored out part of the monolithing definition.

This was necessary because the dynamic code loading doesn't use the
unison function to generate an entire module, and instead uses the
functions to generate individual definitions and such. So, the decoder
for the individual pieces needs to be available.

Also filled in some missing reflection cases revealed by new tests, and
implemented some expected functionality from unison code changes.
2023-08-28 09:48:57 -04:00
Dan Doel
9126105c94 Enable hash checking in serial tests 2023-08-28 09:47:54 -04:00
Dan Doel
ce3e06c217 Bump builtin-tests to base 2.5
Required some changes in test code
2023-08-28 09:14:35 -04:00
Arya Irani
fc9913f6df
Merge pull request #4286 from unisonweb/cp/clear-temp-entities-on-login 2023-08-25 18:27:23 -04:00
Chris Penner
7839269619 Clear temp entity tables on login 2023-08-25 13:35:08 -07:00
Dan Doel
a42e9f1980 Do link validation on serialized test cases
More link validation tests to come once code lookup is implemented.
2023-08-25 14:01:23 -04:00
Dan Doel
f9cd4195c0 Implement pseudo builtins for Referent translation
These are used by the scheme compiler to switch out some
serialization-based functions
2023-08-25 14:00:32 -04:00
Dan Doel
19e6d3a4cc Change bitwise and on naturals to arbitrary precision 2023-08-25 14:00:08 -04:00
Dan Doel
b2ac9a34c1 Implement popcount for Nat 2023-08-25 13:59:39 -04:00
Dan Doel
5dcb7d756a Move term/typelink conversions to boot.ss
Give them more perspicuous names as well.
2023-08-25 13:58:50 -04:00
Arya Irani
9882d5445c
Merge pull request #4281 from unisonweb/cp/dont-fail-on-missing-metadata 2023-08-24 17:40:07 -04:00
Chris Penner
ff06f45820 Update transcripts 2023-08-24 14:06:01 -07:00