* ford-fusion: (259 commits)
clay: remove scaffolding
kiln: make otas continue even if they failed to apply
metadata-store: add cleanup utility, use on-poke:def instead of no-op
clay: flop syntax error trace
landscape/img/codeeval.png: typo in filename
invite-view: reinstate as potato
goad: don't crash on pre-OTA sign
chat-store: responded to comments, cleaned up
-test: support other desks (full beams in args)
arvo: use date instead of kelvin
hoon: re-fix +slab; /tests: fix clay tests
kiln: don't implicitly create syncs
gall: don't make large stack trace
ames: use +cut in +encrypt
pill: solid
dojo: print generator type errors
Squashed commit of the following:
ci: fix herb tests; update pills
ford,kiln: nicer errors
dojo: too many nouns
...
Signed-off-by: Philip Monk <phil@pcmonk.me>
The component for editing a post was tied up in checking for API
instantiation -- we want the check for a blank body to be independent
of that.
Fixes#3040.
This is a convenient way to count memory usage of noun by simplying
running `(jam 1.337 noun-1 noun-2 ... ~)`. This should
be a hint, but for debugging this is sufficient.
With these changes, about 90% less memory and 15% less time is needed to
compile hoon.hoon. The produced noun is within 3% of the same size,
which suggests this results in little if any duplication.
These are three of the four most commonly hit +ut jets. The other is
+nest, which cannot be un-memoized without taking much longer to compile
(it didn't finish in my test). These four jets combined for 2.3 million
out of the 2.4 million cache entries, the other +ut jets combine for
less than 100k, and literal ~+ accounted for about 50k entries.
This also caps the memo cache at 50k entries. Even with these jets not
memoized, the memo cache grows to 357k entries and 122 MB. Capping at
50k entries has no effect on time and reduces memory usage of the hash
table to about 25MB. Entries are reclaimed with the clock algorithm,
which seems to be sufficient for this use.
Adds a few functions to count the size of nouns in the current road.
Since this marks the nouns (high bit of refcount), you need to
"discount" them immediately after to unmark them. Parallel functions
exist for the counting the size of a hashtable.
It would nice to hook this up to a hint, but these are useful to have
available to run in the debugger or by inserting callsites as necessary.
It's also possible to hook them up to the +jam jet gated on a special
value.