Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make App Data a Map in RM Library #1740

Open
wants to merge 32 commits into
base: base
Choose a base branch
from
Open

Make App Data a Map in RM Library #1740

wants to merge 32 commits into from

Conversation

agureev
Copy link
Contributor

@agureev agureev commented Dec 30, 2024

  1. Change Nock stdlib Action datatype to have maps instead of binary for app data
  2. Implement set to_noun and from_noun functionality
  3. Change the Elixir Actions datatype accordingly

Some of the tests use actual Juvix-compiled code. This can break for
several reasons and hence should be usually skipped.

They need to remain, however, so that we can update the files once
Juvix compilation comes in-sync with Node.
Previously the Mug Elixir codebase used was simply a murmur3 hash with
fixed seed. Now it is properly implemented.
@agureev agureev requested a review from juped December 30, 2024 15:02
@agureev agureev added execution stdlib Deals with the standard library for Nock nock Deals with the nock VM Environment (interpretation, jam, cue etc.) breaking labels Dec 30, 2024
@agureev
Copy link
Contributor Author

agureev commented Dec 30, 2024

IMPORTANT: We need to take care when merging this to coordinate with Juvix as this is potentially a breaking change.

@agureev agureev force-pushed the artem/nock-rm-sets branch from 53d05fb to d7e7e14 Compare January 3, 2025 13:27
agureev added 22 commits January 6, 2025 14:29
Previously mug computations relied on logics cores and disallowed any
compile-time mug computations due to 9 calls. Fixes this by
introducing a local nock4k evaluator which we use instead,
i.e. skipping the jet calls.
Moves standard library and Jet Registry information outside the Nock
module into own separate modules.
Now mugs can be computed rather than hard-coded.

Only need to change the arm positions if needed.
Previously layer location for ENock-used arms were hardcoded. So if we
were increasing the layer of the stdlib, we had to change all the arms
in the examples.

This commit fixes this, making all arms compute things automatically.
Make the `prove_squared_small` use an input which is encoded by
another (private) example
Now Kind is computed as a sha256-d jam of a [label logic] cell
We should be fine with not converting the computations to integers
unless needed.
Introduce a mug layer in standar library, including all ordering
functionality.
Changes Nockma StandardLib strings for new layer. Warning: Breaks
Juvix-compiled tests
Adds a module for Elixir implementations of mor, gor, dor noun
ordering functionality.
Adds a helper function to translate booleans into Nock booleans.
Adds jets for dor, mor, gor
@agureev agureev force-pushed the artem/nock-rm-sets branch from d7e7e14 to 8d102e4 Compare January 6, 2025 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking execution stdlib Deals with the standard library for Nock nock Deals with the nock VM Environment (interpretation, jam, cue etc.)
Projects
Status: Triage
Development

Successfully merging this pull request may close these issues.

1 participant