During pill and install prop generation.
In autopill, we stop tracking a copy of the blob store, instead just
having the pill lib scry it out on-demand.
Automatically builds pills and writes them to urb/.put when relevant
desks change. Intended for deployment onto a livenet ship from which
pills may then be sourced.
Gives a summation of pending clay requests for a given desk, specifying
the number of local and incoming-from-foreign requests, and for the
latter, how many of those are awaiting the next revision of a desk
(read: are currently |sync-ing from the desk).
Implements a /cx/[our]//[now]/cult/[desk] endpoint, for getting a set of
pending requests for any given desk. We don't give the $cult for the
desk as-is, but instead slim the $roves back down into $raves, remove
clay protocol version metadata, and make sure to put our @p in place of
empty "for" fields.
This flow is not supported, and it was causing issues releasing
416. This change just drops the responses to avoid crashing, but at
some point we should either support this flow or reject the request in
the first place.
Including these in pkg/arvo has caused many minor problems over the
years. We don't want to include them in releases, but this often meant
excluding them manually, which was error-prone.
Here, we move them out of /pkg/arvo/tests and into /tests. CI will have
to be updated to match, since we'll still want to include tests there.
As of version %5, dill uses a new wire format for its userspace
subscriptions. Its existing subscriptions (read: the one subscription
into %hood for the default session) was never updated to use this new
style.
We observed a bug on one ship, where it had both old-style and new-style
subscriptions into hood, resulting in output being rendered twice. How
exactly this happened remains as of yet unclear.
Here, we forcefully clean up the old-style subscription, and
(re)establish the equivalent new-style subscription. This will prevent
issues like this from reoccurring.
It's often useful to |merge a desk, but if you're still getting updates
from your sync source, you may get overwritten in the future. In this
case, you want to merge and clear the sync source. With this change,
you can do this with:
```
|install ~ship %desk, =once &
```
This reverts commit 31bb93846c, reversing
changes made to 7940dd442b.
Reverting because we can't upgrade jetted code without ensuring the jets
change in lockstep.
See #6052. This is completely different from the +* used at the top
of doors, and has almost entirely been replaced by |$. The exception is
the use of the `%made` spec, not present in `|$`. I do not see an
obvious way to change `|$` to use `%made` since this `+*` parser uses
the name of the arm in the `%made` structure, unless we change the
AST of |$.
Dojo had also been incorrectly updated, assuming the type of
%lens-command changed to match. Since lens should only ever be used for
running commands on the local ship (and even that being contentious (; ),
we simply auto-fill the sole session id with the local ship name.
|* foo bar is sugar for =+ foo |@ ++ $ bar --, and newbies find
the old style confusing. this switches out the |@ pattern for the |*
one, at least in layer <=4. the only ones remaining are +toad, +rune,
and +runo, which are already tweaked in #5873 so we omit them here.
anytime a gate prints with a complicated sample or product type it is
frequently extremely long. 3 is probably too low of a cutoff number, but
ideally a future version will have verbosity settings that will help
control this.
Adds .snub to ames-state, a global blocklist for ships. If a packet is
received from a ship that is in the .snub set, it is immediately
dropped. Adds %snub to ames' $task, to allow manipulating this list
all this did was set .nut. while it could be used with doccords, it is
currently unused, and none of the other values in the sample of _ax are
set this way (bug, def, cox, hay, dom). i experimented a little bit with
trying to make use of this but it made things overall more unreadable,
and it wouldn't make sense to do it without doing the same for other
values of the sample. im guessing this is just an old style.
Previously, fake breaches triggered by a %ruin task would only get sent to
subscribers watching for the affected ship specifically. Now, we send them to
both those subscribers, and the ones watching for pubkey changes on all ships.
%contact-store is responsible for sending updates about contacts, eg
profile color. When it hears an update, it fans that out to its
subsribers, unless that update is stale. If you reguarly fan out stale
updates, then they reverberate across the network indefinitely -- we
call this "echoing".
To cut off this echoing, all edits have a timestamp, and we consider any
updates from before this timestamp to be stale. Additions are separate
from edits, and for them we instead do a value comparison on the contact
-- if it didn't change, we consider the update stale.
The problem with this scheme is that if an addition and edit happen one
after the other in quick succession, you might have the following
sequence:
- add comes in with timestamp T1
- edit comes in with timestamp T2 after T1
- we hear an echo of the add, and that errantly applies because it
passes our "did the contact actually change" check
- we hear an echo of the edit, which applies because T2 is after T1
- GOTO 3
Each time we apply the stale update, we fan that out to our subscribers,
and if any two hosts subscribe to each other, this will loop. This may
even loop unconditionally because the ship that made the profile changes
seems like it might not recognize that those changes didn't come from
itself, so it sends them to all the groups it's in. If so, that's an
important issue to fix.
Fixestloncorp/landscape-issues#1442
when +apse sees a link, it presume that the following a batch comment,
and stops parsing so that it can be picked up by apex:docs next
this required a change to +leap, which has been rewritten to pretty much
look like +gap but stop parsing when encountering doccords.
previously we just threw them out and wasn't sure whether it was the
right answer. this violates the principle of least surprise - even
though it hard to see the value of attaching multiple empty $cuff notes
to an arm, we shouldn't stop the programmer from doing it without any
indication or explanation as to why. its the behaviour you'd expect
given how doccords is structured.
it is desirable for both apex:docs and apse:docs to parse into an
intermediate representation that never ends up in an AST so that it is
clear that these parsed representations may be altered in the future
without worrying about old types nesting with new types. this was
already the case for $whit, but apse:docs parsed directly as a $help,
which is used in ASTs. so apse:docs now parses as a $whiz, which is
simply a cord. in the future, if postfix comments are used for something
like invariants, or allow $links, we may want to change this.
this also changes $whit to remove .use, which was unused. similarly,
+glom is removed since its not used anywhere.
this might actually be undesirable, don't want to leave this as a trap
for somebody in the future thinking we knew it was definitely the right
answer. having batch comments follow the chapter declaration does make a
certain amount of sense, stylistically
For blocked kelvin updates, we clarified the copy, including deleting a
broken link and reference to a system preferences button that doesn't
exist, and standardized on "suspend" instead of "archive" (as in the
rest of the UI).
Also don't delete OTA source when dismissing the notification.
future-proofing %gist specs by putting a %help tag on the $help. this
looks pointless at first glance, but it allows the opportunity for %gist
specs to have a $% in the future in a way such that the old type nests
with the new one, eliding the need for a typo->type migration
some small issues and debugging tools. also puts some more doccords on dprint types.
also adds use the language server pretty printer to print the types of arms
Most of the memory stays in gall anyway, and this means you need to
recompile everything the next time anything changes, which could be
counterproductive. It's important that %trim not make things worse.
The functionality is moved to the debug %stir task.
These were originally added because they reduced memory usage, primarily
by clearing the memoization cache. Now that the memoization cache is
no longer used, we use less memory without them. On ~wicdev-wisryt with
~30 apps, updating Clay now takes ~320MB.
(addendum to +team change)
address feedback from ~rovnys-ricfer, ~master-morzod,
~ritpub-sipsyl, ~tacryt-socryp, ~wicdev-wisryt, and others.
the original functionality of +team has been split out
between +team:title and +moon:title.
also:
fixes "middle core" and "surface core" comments in title
urbit-v1.13
Arvo 417K
Vere 1.13
This release makes the loom variably sized, up to a new maximum of 4GB.
The default remains 2GB -- opt for the max with `--loom 32`.
(NB: larger sizes may require adding swap space.)
Release Notes
- supports setting the loom size on startup. sizes are specified in
exponents of 2, from 1MB (20) to 4GB (32); can differ between processes
(`--loom` and `--urth-loom`); and can be set for relevant subcommands
(`meld`, `pack`, `next`, &c).
- improves bit-slice performance (for noun de/serialization and many atom jets)
by ensuring that implementation inner loops can be vectorized.
- adds the `vile` command, for exporting the keyfile from a ship
- adds the `%xray` hint, for printing the bytecode of a given expression
(ty ~topfet-parmed!)
- adds the `eval` command, for running hoon (from stdin) without booting a ship
(ty ~mopfel-winrux!)
- adds a better error message when a ship is already running as root
(ty ~dinleb-rambep!)
Contributions:
Joe Bryan (48):
u3: use size_t in u3m_init()
u3: normalize home-road stack after snapshot restoration
u3: refactors custom allocator init for libraries
bump
vere: make `prep` and `next` commands non-interactive (no tty required)
Merge pull request #5928 from urbit/jb/upgrade-no-tty
u3: remove references to u3a_bits/u3a_bytes/words/pages
u3: makes loom length configurable
u3: improves image-related error messages in events
Merge branch 'master' into next/vere
u3: suppress bail:evil printf
Merge pull request #5959 from urbit/jb/silence-evil
ur: optimizes bitstream bytes-writer implementation
ur: optimizes bitstream bytes-reader implementation
Revert "test: move _test_lily into noun_tests"
u3: rewrites u3r_chop(), optimizing bloq sizes < 5
u3: removes loom byte-length in favor of recalculation
Merge pull request #5957 from mopfel-winrux/eval
vere: style clean for eval cmd
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge tag 'urbit-v1.12' into jb/fix
Merge commit 'f94875f9ce^2' into jb/release/vere
Merge commit '264e63330f^2' into jb/release/vere
u3: backports u3v_soft_peek()
vere: adds %vile command for extracting keys
Merge commit '330db284e8^2' into jb/release/vere
Merge branch 'master' into jb/release/vere
test: bump loom to 16MB in jam tests
u3: restages #6001 for release
u3: adds loom size to u3m_boot() / u3m_boot_lite()
vere: adds args to set mars/urth looms by binary exponent
Merge branch 'jb/restage/loom-set' into jb/release/vere
vere: supports --loom for all relevant subcommands
Merge branch 'jb/loom-everywhere' into jb/release/vere
Merge branch 'jb/release/vere' into jb/restage/chop-fast
u3: bumps maximum reference bits on all platforms
vere: preserve 2GB defaults for --loom and --loom-urth
Merge branch 'jb/restage/chop-fast' into jb/release/vere
Merge branch 'jb/restage/bump' into jb/release/vere
Merge branch 'jb/fix' into jb/release/vere
vere: bumps version
vere: bumps benchmarks to 16MB loom, initializes guard page
vere: supports --loom in eval cmd
vere: bumps version
DaneBettis (22):
Adds %meme and %xray hints.
adds xray test, reorders tests, fixes sanity checks
more notes and debugging for xray
more xray debugs via ~master-morzod
more xray debugs thanks to ~master-morzod
partial fix for indexed bytecode args; more to come
silenced the broken hoon tests
cleaner expression and docs
added macro to clarify _slog_bytecode and cleaned hoon hint tests
first cleanup from meeting with master-morzod
this branch PR is now for xray only. meme later.
minimize the diff
taming int declarations
docs, tammed ints, better var names, removed redundant funcs
fixes suggested by master-morzod, and finished int taming
make _is_indexed() more obvious and less cute
remove dev-time modifications to manage.c
WIP stuff re master-morzod
more refactoring as suggested by master-morzod
corrected private function names and block comments
fixed names of vars to follow cvc_TypeLetter style
simplified xray callsites and rendering
mopfel-winrux (15):
Added option to run the eval it checks for and prints whatever you pass it as an arguement
Added basic nock increment evaulation to eval function
Got basic hoon command compiling and executing
Fixed a double boot_lite
Added vase and stack trace wrapper to input, run hoo in virutalization
added ability to read from stdin rather than being passed an arguement
changed up how we are executing hoon. This fixes the issue we see with rpevious versions
cleaned up code
merged to master fixed conflict in motes.h
fixed a few of the issues ~master-morzod pointed out
changed error messages when booting the ivory pill
changed how the stdin is concatenated. this version should have less memory leaks
fixed memory leak and cleaned up style
removed unneeded checks
Merge branch 'urbit:master' into eval
pkova (1):
vere: check for permission error on old process kill
urbit-v1.13
Arvo 417K
Vere 1.13
This release makes the loom variably sized, up to a new maximum of 4GB.
The default remains 2GB -- opt for the max with `--loom 32`.
(NB: larger sizes may require adding swap space.)
Release Notes
- supports setting the loom size on startup. sizes are specified in
exponents of 2, from 1MB (20) to 4GB (32); can differ between processes
(`--loom` and `--urth-loom`); and can be set for relevant subcommands
(`meld`, `pack`, `next`, &c).
- improves bit-slice performance (for noun de/serialization and many atom jets)
by ensuring that implementation inner loops can be vectorized.
- adds the `vile` command, for exporting the keyfile from a ship
- adds the `%xray` hint, for printing the bytecode of a given expression
(ty ~topfet-parmed!)
- adds the `eval` command, for running hoon (from stdin) without booting a ship
(ty ~mopfel-winrux!)
- adds a better error message when a ship is already running as root
(ty ~dinleb-rambep!)
Contributions:
Joe Bryan (48):
u3: use size_t in u3m_init()
u3: normalize home-road stack after snapshot restoration
u3: refactors custom allocator init for libraries
bump
vere: make `prep` and `next` commands non-interactive (no tty required)
Merge pull request #5928 from urbit/jb/upgrade-no-tty
u3: remove references to u3a_bits/u3a_bytes/words/pages
u3: makes loom length configurable
u3: improves image-related error messages in events
Merge branch 'master' into next/vere
u3: suppress bail:evil printf
Merge pull request #5959 from urbit/jb/silence-evil
ur: optimizes bitstream bytes-writer implementation
ur: optimizes bitstream bytes-reader implementation
Revert "test: move _test_lily into noun_tests"
u3: rewrites u3r_chop(), optimizing bloq sizes < 5
u3: removes loom byte-length in favor of recalculation
Merge pull request #5957 from mopfel-winrux/eval
vere: style clean for eval cmd
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge branch 'jb/hotfix' into jb/fix
Merge tag 'urbit-v1.12' into jb/fix
Merge commit 'f94875f9ce^2' into jb/release/vere
Merge commit '264e63330f^2' into jb/release/vere
u3: backports u3v_soft_peek()
vere: adds %vile command for extracting keys
Merge commit '330db284e8^2' into jb/release/vere
Merge branch 'master' into jb/release/vere
test: bump loom to 16MB in jam tests
u3: restages #6001 for release
u3: adds loom size to u3m_boot() / u3m_boot_lite()
vere: adds args to set mars/urth looms by binary exponent
Merge branch 'jb/restage/loom-set' into jb/release/vere
vere: supports --loom for all relevant subcommands
Merge branch 'jb/loom-everywhere' into jb/release/vere
Merge branch 'jb/release/vere' into jb/restage/chop-fast
u3: bumps maximum reference bits on all platforms
vere: preserve 2GB defaults for --loom and --loom-urth
Merge branch 'jb/restage/chop-fast' into jb/release/vere
Merge branch 'jb/restage/bump' into jb/release/vere
Merge branch 'jb/fix' into jb/release/vere
vere: bumps version
vere: bumps benchmarks to 16MB loom, initializes guard page
vere: supports --loom in eval cmd
vere: bumps version
DaneBettis (22):
Adds %meme and %xray hints.
adds xray test, reorders tests, fixes sanity checks
more notes and debugging for xray
more xray debugs via ~master-morzod
more xray debugs thanks to ~master-morzod
partial fix for indexed bytecode args; more to come
silenced the broken hoon tests
cleaner expression and docs
added macro to clarify _slog_bytecode and cleaned hoon hint tests
first cleanup from meeting with master-morzod
this branch PR is now for xray only. meme later.
minimize the diff
taming int declarations
docs, tammed ints, better var names, removed redundant funcs
fixes suggested by master-morzod, and finished int taming
make _is_indexed() more obvious and less cute
remove dev-time modifications to manage.c
WIP stuff re master-morzod
more refactoring as suggested by master-morzod
corrected private function names and block comments
fixed names of vars to follow cvc_TypeLetter style
simplified xray callsites and rendering
mopfel-winrux (15):
Added option to run the eval it checks for and prints whatever you pass it as an arguement
Added basic nock increment evaulation to eval function
Got basic hoon command compiling and executing
Fixed a double boot_lite
Added vase and stack trace wrapper to input, run hoo in virutalization
added ability to read from stdin rather than being passed an arguement
changed up how we are executing hoon. This fixes the issue we see with rpevious versions
cleaned up code
merged to master fixed conflict in motes.h
fixed a few of the issues ~master-morzod pointed out
changed error messages when booting the ivory pill
changed how the stdin is concatenated. this version should have less memory leaks
fixed memory leak and cleaned up style
removed unneeded checks
Merge branch 'urbit:master' into eval
pkova (1):
vere: check for permission error on old process kill
+find-item-in-type and everything it called was pretty bad spaghetti and
it wasn't clear that it was doing this right thing besides that it
passed tests. this refactors most of that functionality into a door that
has the type and search terms as the sample, and should be much easier
to follow.
the remaining functionality related to arm docs ought to be refactored
as well
By using `%kiln-install` instead of `%kiln-sync` for System Updates, this ensures that the `%kids` desk is also updated.
Also, address UX feedback: render the entire source ship's patp to avoid ambiguity. (as opposed to truncating a moon's name).
this makes it so that when an arm matches a search query in
+find-item-in-type, it checks to see if the arm builds a core with an
arm other than %$. if so, a %core item is returned rather than an %arm
item.
the name of the core will then be considered to be the name of the arm
that builds it
since cores can't be given names in v0 doccords, this changes the main
search function in lib/dprint to check if the summary of a core
description matches the search term, along with other appropriate
changes downstream of this.
still to be done: use .name in a %core item for either this summary name
or the name of the arm that built the core, if appropriate
this is to handle potential future cases where doccords might be kinds
of notes other than %help notes. example: #6085 to document invariants
in clay.
$whit (used for apex:docs/batch comments) also ought to be changed but
im still thinking about what that should look like.