Per yosoyubik's commentary in urbit/urbit#1799:
The test is expecting that qeu to not be correct.. when it is.
The test [98 [97 ~ ~] [100 ~ [99 ~ ~]]] is a correct queue if we look at
vertical ordering: (mor 98 97), (mor 98 100) & (mor 100 99) all return
%.y, so vertical ordering is correct.
The previous implementation of +apt:to checked only horizontal ordering
between siblings, in this case that would fail: (mor 97 100) returns
%.n, but that is not how you check correctness of hoon treaps.
The solution is to modify that test with a proper "incorrect" +qeu, for
example: ((soft (qeu)) [97 [98 ~ ~] [100 ~ [99 ~ ~]]]). Vertical
ordering is not correct with any of the children.
* algorithm-tests:
pills: update solid
tests: unit tests for +in (set)
tests: unit tests for +to (queue)
tests: unit tests for +by (map)
tests: unit tests for +differ (diff/merge)
hoon: fix for +uno/uni (#1779) set/map union
hoon: fix for +apt:to (#1778) queue correctness
Signed-off-by: Jared Tobin <jared@tlon.io>
For generating many sendPoint() transactions for the Delegated Sending
contract. Specify what ship to send the invites as, and a path to a file
containing lines of "~ship,~ticket,0xaddress".
Comes with a generator, |claz-invites, for generating such files, given
a star and a range of its children (and an output path).
* odyssey-wip: (31 commits)
chat-cli: Add clarity
drum: Boot with %chat-cli, without %hall & %talk
chat-cli: Cosmetic improvements
chat: Move eval logic out of /lib/chat-json
chat-cli: Properly support deleting local chats
chat-cli: Subscribe to /updates instead of /all
chat: Move eval logic into lib
chat: removed unnecessary cast
chat: removed overly specific pattern match
chat: style fix for a comment
chat: remove poke-noun arms
chat: fixed eval function to disable scry
chat-cli: Simplify message command type & logic
chat-cli: Implement permission management
chat: /primary path provides truncated initial as well as updates
chat: style fixes, removed some redirect bugs from chat
chat-cli: Match store and hook's path handling
chat-cli: Update prompt on-create
chat: changed wire format and quitting subscription properly on ban
chat-cli: Add debug poke for connecting to store
...
Signed-off-by: Jared Tobin <jared@tlon.io>
Since the current implementation of ;leave is silently destroying state
instead of unsubscribing, we disallow running ;leave on local chats and
provide an explicit ;delete instead.
Set security type during ;create. Use ;invite and ;banish to dis/allow
ships from reading and/or writing.
Talks to the group-store to modify permission groups. Scries into
permission-store to check for white- vs blacklist.
Creating a mailbox would refresh the prompt before setting a new
audience, instead of after. This change corrects the behavior.
Also updates glyph binding code and print style.
Renames, refactors, and occasionally rewrites many of the arms used
within the application. Splits +sh into +sh-in and +sh-out, improves
naming for rendering cores, moves arms around for better organization,
and adds descriptions to all arms.
Brings it largely up to parity with Talk, save for features relating to:
- presence & nicknames
- circle management (permissions, sources)
- deprecated message types
In addition to implementing remaining functionality for basic usage
patterns, makes the following changes:
- glyphs per target, not multiple targets
- assume /~ship/path paths are created/used by the chat-hook
Code cleanup pending.
The ivory pill had not been rolled after the last changes to zuse,
meaning that you could no longer boot a ship. Also fixes .gitignore
so as to not hide old build artifacts which could interfere with
picking up changes to the ivory pill.
The subtree in pkg/arvo apparently still has a README in it, which had
gotten only slightly out of sync with the overall project README. This
commit updates its 'contributing' section to point at the appropriate
contributing document.
%gall currently prints
[%gall-booting <app> p=<ship> q=<desk>]
whenever it receives a %conf (i.e., when it boots an app). This turns
up in many of the places the old, less-informative '%mo-not-running'
printf did, but it's of similarly little use, and mainly serves to
create redundant line noise. This commit just removes it.
* reclamation:
solid pill
arvo: wires up %trim memory-pressure event stubs
u3: wires up the %trim event in the daemon
u3: adds %trim memory-pressure notification "effect"
u3: tweaks |mass output (and fixes inadvertent truncation)
u3: refactors periodic memory reclamation
u3: factors out u3a_idle() to measure free-lists in a road
u3: adds and uses u3a_full/heap/temp road macros
u3: cleans up whitespace, removes dead code in allocator
* barbus:
hoon: removed unused parser type
hoon: remove extraneous cast
hoon: removed barhax. No hax!
hoon: replace barhax with barbus
hoon: changed barbus to match barhax
hoon: replaced barbus usage with barhax
hoon: add parsing for barhax
hoon: added barhax to replace barbus
hoon: update tall parsing for |$
hoon: replace +* name usage with ++ name |$
hoon: add parsing rules for |$
hoon: add ast for |$
Our conversions to and from GMP structs and our indirect atoms (a
heap-allocated array of uint_32_t) used alloca() and copied twice out of
an apparent abundance of caution. This PR removes the unnecessary
intermediate copy from both conversions.
The -P argument makes urbit send itself SIGPROF every 10ms. Sample
profile data is interpolated into a structure on the home road, which is
summarized and printed when urbit exits gracefully. (Note that this
profile will be useless without the CPU_DEBUG build option).
As of v0.8.0, the profiling became much more awkward. The multi-process
shutdown doesn't include affordances for sending the profiling data over
IPC, so it just prints to the terminal after urbit appears to have
shutdown. This PR changes the profiling printout, unconditionally
writing it to a file in the pier (at .urb/put/profile/~DATE.txt).
We don't care about the static types in the use-cases where we need to
prevent scry (to prevent accidental data disclosure). We can evaluate
the expression, virtualized and untyped, and then just clam.
Enables .^ in +mule (statically-typed virtualization), by specifying a
scry-handler function that punts the namespace read to a higher
virtualization layer via virtual-nock (mock) 12.
Publish's %serve command makes builds for notes even if the
publish-info file is missing. It now crashes the build if the file is
missing with a one-line ?> asserting that the file is found in the
list of paths associated with the collection.
Updates all Landscape applications to use the
latest version of urbit-ob, from 3.1.1 to 4.1.2.
Removes urbit-ob from applications that don't
use it (Clock, Launch, Weather).
Compiled JS for all the above included in this
commit.
In Publish, users could get in a bad state if they made a post with
valid udon, and subsequently edited to contain invalid udon.
Furthermore, users subscribed to them would get in the same bad state.
This fixes the original bug, and users who are already in the broken
state will be able to run a recovery command: :publish %state-surgery
which will also fix the downstream broken state of their subscribers.
This check required the new type of +type to nest within the old type of
+type, which is wrong. Specifically, this disallowed adding new runes
without a staging procedure (which we didn't successfully complete).
* jt-gall-refactor: (76 commits)
gall: fix issue id in comment
pills: update solid
gall: handle foreign coup success
gall: only print peek bad result if bad
gall: add basic test harness
pills: update solid, brass, ivory
gall: fix obvious nest-failing tisdot
gall: change '-state' to '-core' for +mo and +ap
zuse, gall: deprecate 'club'
zuse, gall, eyre: deprecate 'cush'
zuse, gall, eyre, dojo: deprecate 'cuft'
gall: remove slam-related printfs
gall: remove deprecated 'mak' from 'agents'
gall: use less vertical spacing throughout
gall: add comment re: unpopulated wex
gall: use less vertical separation when wuthepping
gall: fix whitespace
gall: don't define 'move' as a pair
gall: don't give faces to tags
gall: gut some unused stuff
...
Edit post's UI appearance looked quite different
from what creating a new post looked like.
This commit just brings the styling of post
editing UI a bit closer together with new posts.
gulp.rename just copies files, leaving the original.
For minified files, this was navigated by not
tracking the -min.js files in git. However, when
deploying OTA, the -min.js files are still deployed
to all ships. This commit adds 'del' package,
and a task to clean up the -min files when done
for all current Landscape applications.
'Urbit' refers to the project/product/platform, whereas 'urbit' refers
to an individual ship or instance. This corrects some old, incorrect
lower-case usage.