8000 64-bit Vere by xiphiness · Pull Request #794 · urbit/vere · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

64-bit Vere #794

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

Draft
wants to merge 26 commits into
base: develop
Choose a base branch
from
Draft

64-bit Vere #794

wants to merge 26 commits into from

Conversation

xiphiness
Copy link
Collaborator
@xiphiness xiphiness commented Apr 4, 2025

This PR introduces 64-bit Vere. The principle changes involved have to do with the introduction of a new type, c3_n, which is 32 bit or 64 bit depending on if it was compiled with -DVERE64.

The following work still needs to be done:

  • every appearance of _tmp in pkg/noun (~800 locations)
  • look at diff of pre and post VERE64 compilation with -Wconversion flag. Investigate every instance.
  • run with llvm addr sanitizer, ubsan
  • audit every jet
  • migrations: bidirectional (use MSB of version tag to mark if vere64 or not? maybe also add metadata for pointer compression)
  • integrate Joe's page based allocator
  • new rsignal_setjmp/longjmp may have volatility problems (talk to Joe. maybe use atomics?)
  • pkg/vere/noun-tests is completely broken
  • every appearance of _tmp in any other subdirectory (~1000 locations)
  • c3_w_clz, ctz, pc occurrences (we should change current occurrences to _tmp as we did with u3r_word, etc and go through them
  • c3_etch_word, c3_sift_word occurrences (also change to _tmp)
  • make sure everything works (C tests and hoon tests included) still for vere32
  • PMA integration (easy in vere64, vere32 requires more involved work)
  • revendor murmur3 with a size_t len
  • test really big nouns in ames/fine/mesa
  • the event log and other lmdb state should not need migration. we should double check events.c, disk.c
  • there's a lot of bloq size related things in the jets that could be changed to greater than 32 for the 32 bit case

I will make this more granular and regularly update this as involved collaborators complete things.

@matthew-levan matthew-levan self-assigned this Apr 4, 2025
@barter-simsum
Copy link
Collaborator

majority of changes in hashtable and trace. misc changes elsewhere. majority of remaining _tmp usage to convert to 32/64-bit limited to jets

@barter-simsum
Copy link
Collaborator

recommend concurrent or after completion of _tmp conversions to run zig build with -Wconversion clang opt. There are likely many violations prior to VERE64, so compare the diff between output before/after VERE64 changes and inspect those specific occurences

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0