Skip to content

Update %jinx PR#894

Closed
dozreg-toplud wants to merge 1690 commits into
sigilante/timeoutfrom
dozreg/jinx-hint-update
Closed

Update %jinx PR#894
dozreg-toplud wants to merge 1690 commits into
sigilante/timeoutfrom
dozreg/jinx-hint-update

Conversation

@dozreg-toplud

Copy link
Copy Markdown
Contributor

Merges develop into sigilante/timeout, resolves name conflincts with %spin stack PR.

This still does not work, nested %jinx hints cause crashes. But it at least builds.

dozreg-toplud and others added 30 commits June 18, 2025 13:15
Added Check of +.feed to make sure its a cell, if its a cell and a moon
we crash before running

`+veri:dawn`

Resolves #818
Addresses
https://gist.github.com/Quodss/022a71ebcad581109ecfb9a8359d786f.

Adds stricter assertions in arithmetic jets to get rid of jet mismatches
from Nock behavior.

Rewrites comparison jets to avoid allocations by mpz.

Removes unused `drop.c` which had a bugged jet.

Adds bloq size assertion in `+swp` jet.

Adds loobean check in `+sort` jet.

Removes erroneus shortcuts from `+cut`/`+met` jets.

Adds atom check in `+cue` jet.
Addresses:

> /Users/matt/src/urbit/vere/pkg/vere/db/lmdb.c:308:14: runtime error:
load of misaligned address 0x007000017fbe for type 'c3_d' (aka 'unsigned
long long'), which requires 8 byte alignment
0x007000017fbe: note: pointer points here
00 00 08 00 01 00 00 00 00 00 00 00 00 00 00 00 41 b0 26 0b 59 a2 13 59
62 26 6e 93 c5 61 17 76
^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
/Users/matt/src/urbit/vere/pkg/vere/db/lmdb.c:308:14
Removes glossary links from runtime error messages and removes/replaces
broken docs.urbit.org, developers.urbit.org, and operators.urbit.org
links from README files. Removes broken glossary links from double-boot
warnings and replaces those with links to the breach instructions.
dozreg-toplud and others added 17 commits October 1, 2025 10:07
All ships on `edge` have been experiencing mysterious crashes in the urth process ever since we merged `next/kelvin/409` to `develop`. It took us two weeks to run this down, but the issue seems to be twofold:

1. We were leaking all effects in urth, causing a surprisingly slow leak on all but the most busy ships. This PR fixes the leak,

2. Unifying equality on the home road was enabled in `vere-v3.5`. `~dozreg-toplud` noticed that unifying equality is unsafe in the presence of uncounted references, and it seems likely that some change in `vere-v4.0` caused this pattern to occur in urth. This problem was mostly showing up as `palloc: page out of heap` or other allocator errors caused by the use-after-free. We will most likely disable the unifying equality on the home road later (at least for urth).
All ships on `edge` have been experiencing mysterious crashes in the
urth process ever since we merged `next/kelvin/409` to `develop`. It
took us two weeks to run this down, but the issue seems to be twofold:

1. We were leaking all effects in urth, causing a surprisingly slow leak
on all but the most busy ships. This PR fixes the leak.

2. Unifying equality on the home road was enabled in `vere-v3.5`.
`~dozreg-toplud` noticed that unifying equality is unsafe in the
presence of uncounted references, and it seems likely that some change
in `vere-v4.0` caused this pattern to occur in urth. This problem was
mostly showing up as `palloc: page out of heap` or other allocator
errors caused by the use-after-free. We will most likely disable the
unifying equality on the home road later (at least for urth).
Is stack alignment done in this way desirable?
@dozreg-toplud dozreg-toplud requested a review from a team as a code owner October 14, 2025 14:04
@dozreg-toplud

Copy link
Copy Markdown
Contributor Author

current diff with develop develop...dozreg/jinx-hint-update

@dozreg-toplud

Copy link
Copy Markdown
Contributor Author

windows build fails

@dozreg-toplud dozreg-toplud mentioned this pull request Nov 2, 2025
pkova added a commit that referenced this pull request Nov 24, 2025
Implements
[UIP-0124](https://github.com/urbit/UIPs/blob/main/UIPS/UIP-0124.md),
replaces #648, supersedes #894.

Moves Urbit time functions to `manage.c` and defines a per-road stack of
absolute deadlines. Virtual timer is set or disarmed any time a new
deadline is pushed onto the stack, popped off the stack or if a road is
left with some deadlines on its stack.

Defines a dynamic hint `%jinx`. If the product of the hint-formula is 0
or a cell, nothing happens, otherwise new deadline is pushed before the
hinted formula is executed and popped once it is executed.

#### Questions
I had to mess with `noun/build.zig` and `jets/e/json_en.c` to make
Windows build work, otherwise I was getting build errors. Why was that
happening? Was there another, saner way to fix that?

#### Warnings
When playing around in a fakeship's dojo I saw a leak report once when I
ran `|mass`. I then tried to reproduce it, including with `-Dmem-dbg`
option and `-g` flag, to no avail.
@joemfb

joemfb commented Nov 24, 2025

Copy link
Copy Markdown
Collaborator

Superseded by #910

@joemfb joemfb closed this Nov 24, 2025
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.

6 participants