Skip to content

Conversation

@matthew-levan
Copy link
Contributor

@matthew-levan matthew-levan commented Aug 21, 2024

Cribbed from #794.

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:

  • define final typedefs, update usages accordingly
  • every appearance of _tmp in pkg/noun (excluding pkg/noun/jets) (~800 locations)
    • trace.{c,h}
    • ship.{c,h}
    • nock.h
    • version.h
    • imprison.{c,h}
    • jets.{c,h}
    • allocate.{c,h}
    • retrieve.{c,h}
    • *_tests.c
  • every appearance of _tmp in pkg/noun/jets
  • 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
    • ensure noun tests make sense/are worth having
  • 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
  • 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 lmdb.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
  • (mug .(eny 0, now 0)) equality test for fakezods booted in 32-bit and 64-bit modes

@matthew-levan matthew-levan added the feature New feature or feature request label Aug 21, 2024
@matthew-levan matthew-levan self-assigned this Aug 21, 2024
@matthew-levan matthew-levan changed the title vere: 64-bit vere64 Sep 5, 2024
@matthew-levan matthew-levan marked this pull request as ready for review December 3, 2025 21:25
@matthew-levan matthew-levan requested a review from a team as a code owner December 3, 2025 21:25
@matthew-levan matthew-levan mentioned this pull request Dec 9, 2025
21 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants