Philip Monk
c7480c9b07
clay: fix bug in %mate
...
If both sides changed a file in the same way, %mate used the version in
the mergebase, which is incorrect. This changes it to use the version
in the destination desk.
An example of this issue:
> +cat %/test/hoon
/~zod/home/~2020.9.3..21.41.24..61ed/test/hoon
first
> |merge %scratch our %home
>=
merged with strategy %fine
+ /~zod/scratch/2/test/hoon
> +cat /=scratch=/test
/~zod/scratch/~2020.9.3..21.41.32..408c/test/hoon
first
> *%/test/hoon 'second'
: /~zod/home/3/test/hoon
> *%%%/scratch=/test/hoon 'second'
: /~zod/scratch/3/test/hoon
> |merge %scratch our %home
>=
%fine merge failed, trying %meet
%meet merge failed, trying %mate
merged with strategy %mate
: /~zod/scratch/4/test/hoon
> +cat /=scratch=/test
/~zod/scratch/~2020.9.3..21.42.25..9e8b/test/hoon
first
2020-09-03 14:34:30 -07:00
Philip Monk
67c5caada8
clay: add safe merge options
...
As described in gen/hood/merge/help.txt
2020-08-28 16:36:00 -07:00
Philip Monk
769b43d73a
clay: add comments and cleanup +find-merge-points
2020-08-26 18:32:20 -07:00
Philip Monk
9cd826f8f9
clay: make +find-merge-points faster
...
The main thing here is that we aggressively check whether we're in
ancestry of another mergebase candidate. This means we don't have to do
a 2nd pass to eliminate redundant candidates.
2020-08-25 22:54:48 -07:00
Philip Monk
4468d79509
clay: expose mergebase as base-hash
...
Change the definition of base-hash to be the mergebase of %home with the
OTA source. This means it's the most recent successfully-applied
update, which is usually the most important information.
Add sour-hash, which is the hash of the most recently *downloaded*
update, regardless of whether it applied successfuly (ie the old
base-hash).
Add a summary of the various hashes at the top of gen/trouble.
2020-08-25 20:25:39 -07:00
Philip Monk
f606d2e3d6
clay: cleaner no-op detection
...
Only no-op if the incoming commit's parent is the old head of the desk.
Also move the printing near the end so we can know exactly if anything
changed.
2020-08-25 18:15:06 -07:00
Philip Monk
d5596eb1a3
clay: if commit would be a no-op, don't commit it
...
fixes #3317
2020-08-25 16:24:36 -07:00
Philip Monk
3d1b7f2b35
clay: fix ph tests
2020-07-28 21:44:45 -07:00
Philip Monk
495a6cf004
clay: remove debugging printfs
2020-07-24 22:05:49 -07:00
Philip Monk
51983e5480
clay: rewrite new protocol
...
Use an explicit state machine to carefully manage pending downloads.
2020-07-24 00:20:22 -07:00
Philip Monk
553a9db843
clay: refactor over-the-wire protocol
...
Don't send blobs initially; instead, wait for the recipient to ask for
any they need. This should significantly reduce network and memory usage.
2020-07-23 00:12:33 -07:00
Philip Monk
f4c34c7598
release: urbit-os-v1.0.29
2020-07-21 12:59:12 -07:00
Philip Monk
f4f1d0ab4b
clay: print conflicts
2020-06-30 15:24:42 -07:00
Philip Monk
e7e2c07d6f
clay: remove scaffolding
2020-06-29 14:30:33 -07:00
Philip Monk
40db8ea580
kiln: make otas continue even if they failed to apply
2020-06-29 13:25:10 -07:00
Ted Blackman
ede7105820
clay: flop syntax error trace
2020-06-29 11:01:23 -04:00
Philip Monk
42de999024
kiln: don't implicitly create syncs
...
Also silence some spurious errors.
2020-06-26 19:21:09 -07:00
Philip Monk
3a662881be
clay: don't be evil
2020-06-24 21:24:27 -07:00
Philip Monk
fc42bf6039
clay: special-case +run-pact for %hoon
2020-06-24 20:26:04 -07:00
Ted Blackman
652dc70304
clay,dojo: clean up stack traces
2020-06-20 03:46:22 -04:00
Ted Blackman
d1b4af89fe
sys: s/mure/road
2020-06-19 00:44:17 -04:00
Philip Monk
7494bf57c6
clay: make reachable-takos linear instead of exponential
...
When merging, +reachable-takos is called roughly once per merge commit
in the ancestry of the new commit. +reachable-takos was exponential in
the number of merge commits in the ancestry of the commit it's looking
at, due to mishandling of the accumulator. This makes it linear.
Of course, linear x linear is still quadratic, which is not great. I
doubt +reachable-takos can be made asymptotically better, but
+reduce-merge-points/+find-merge-points probably can. 50 merge commits
already gives about 14.000 iterations through the loop in
+reachable-takos. Another option is to try to memoize this somehow, but
a simple ~+ is insufficient since `s` is usually different.
In local tests on macOS with a -L copy of ~wicdev-wisryt, this speeds up
OTAs significantly. The majority of time was spent on this.
2020-06-18 18:56:31 -07:00
Ted Blackman
1b1d7c9512
Merge remote-tracking branch 'origin/m/clay-fusion-markers' into ota-ford-fusion
2020-06-13 02:09:31 -04:00
Philip Monk
90f3c7d2a1
clay: build reef to prime reef-cache on inital OTA
2020-06-12 21:40:32 -07:00
Philip Monk
21c0f77321
arvo: add +mure for compiling hoon/arvo
...
Also use +mure in clay for building cores
2020-06-12 21:38:50 -07:00
Philip Monk
a3e15cd64c
clay: send notifications on vega
2020-06-11 19:41:22 -07:00
Fang
6e8822ffb5
clay: resurrect ':' for file-change notifications
...
Instead of printing '+' for both additions and modifications.
2020-06-08 23:24:23 +02:00
Ted Blackman
3834860410
clay: state adapter, still needs :goad
2020-06-03 03:00:45 -04:00
Philip Monk
8b78f04dd3
Merge remote-tracking branch 'origin/master' into ford-fusion
2020-06-02 21:50:20 -07:00
Philip Monk
84b8a67e47
clay: handle reefs for non-home desks
...
We build a reef for each desk but use the compiler from our kernel. At
some point we should use the compiler from the desk, but then we need to
validate any results we get from it.
2020-06-01 20:52:20 -07:00
Ted Blackman
b191636276
clay: WIP reef building
2020-06-01 12:56:21 -04:00
Philip Monk
a4a44f1e21
kiln: cleanup
2020-05-22 14:32:32 -07:00
Philip Monk
4aff4d74e2
kiln: get updates into %home, remove %base
...
We need to get updates directly into %home in case the marks depend on
changes to hoon.hoon. %base has no reason to exist.
Our ota strategy is now to merge from parent/kids to home, then
parent/kids to kids.
2020-05-21 23:45:17 -07:00
Philip Monk
a84b0db733
clay: fix clobbering changes if identical changes
2020-05-21 01:23:04 -07:00
Philip Monk
560e3375f5
clay: drip if foreign desk
2020-05-21 01:10:39 -07:00
Ted Blackman
5a1f227622
clay: remove beak from compiler path
2020-05-20 04:25:00 -04:00
Ted Blackman
044c22357d
clay: virtualize +read-at-aeon:ze so failures don't kill event
2020-05-19 20:28:24 -04:00
Philip Monk
161cc7aa15
clay: put ship/desk in compiler path
2020-05-17 01:59:10 -07:00
Philip Monk
b7beb6a697
clay: make covariant in type of +hoon
2020-05-16 05:22:39 -07:00
Philip Monk
2c2e16df7a
language-server: convert to fusion
2020-05-13 23:30:52 -07:00
Philip Monk
fd26b2184e
kiln: convert to fusion
2020-05-13 20:13:53 -07:00
Philip Monk
af1a26aa5d
clay: abort mate on conflicts
2020-05-13 19:29:20 -07:00
Ted Blackman
4dde2081f1
Merge branch 'ted/leap-arvo' into ford-fusion
2020-05-13 19:44:44 -04:00
Philip Monk
9b434af44e
clay: only reload vanes that changed
2020-05-13 18:27:14 -04:00
Ted Blackman
778f6e9d05
/sys: make hoon optional in %lyra
2020-05-13 18:27:14 -04:00
Philip Monk
6da1424f8a
clay: remove last turbo references
2020-05-12 23:36:55 -07:00
Philip Monk
be77fa39db
clay: convert foreign-update to fusion
2020-05-12 22:53:23 -07:00
Philip Monk
ee13aa73d4
clay: move foreign-request to fusion
2020-05-12 20:22:25 -07:00
Philip Monk
8536c6b1ca
clay: remove move of +util
2020-05-12 03:03:07 -07:00
Philip Monk
6e10a7439a
clay: remove fusion mount and queuing infrastructure
2020-05-12 02:09:41 -07:00
Philip Monk
4e1bac8946
clay: convert |mount to fusion
2020-05-12 01:27:19 -07:00
Philip Monk
5474b2fab6
clay: remove turbo merge
2020-05-12 00:43:45 -07:00
Philip Monk
aacd6f80d8
clay: move merge back into clay
2020-05-12 00:01:46 -07:00
Philip Monk
e75ab631a4
clay: remove turbo commit
2020-05-11 19:33:56 -07:00
Philip Monk
7d5e102dfe
clay: change %info to use ford fusion
2020-05-11 19:26:22 -07:00
Philip Monk
9a9d91214f
clay: port mate/meld to ford fusion
2020-05-11 18:23:44 -07:00
Ted Blackman
b6dcb65061
clay: rebuild desk on zuse change
2020-05-08 06:03:29 -04:00
Ted Blackman
b32ca5d222
/sys: kernel upgrades seem to work
2020-05-08 02:18:24 -04:00
Ted Blackman
ea2386b36c
clay: stop the %drip
2020-05-07 23:58:03 -04:00
Ted Blackman
a064afbd89
/sys: |mass works again
2020-05-07 04:51:08 -04:00
Ted Blackman
339e4e34ce
clay: fix %mime->%html mark conversion
2020-05-06 01:09:35 -04:00
Ted Blackman
3ad411646b
clay: fix %sole-effect->%json conversion
2020-05-05 18:24:16 -04:00
Ted Blackman
58d3820e41
clay: track /{mar,lib,sur} dependencies properly
2020-05-05 02:31:35 -04:00
Philip Monk
1d5dfe394f
gall: port mark operations to fusion
...
Gall no longer refers to Ford Turbo
2020-04-30 23:19:50 -07:00
Philip Monk
65766a73e2
clay: port -merge to fusion
2020-04-29 17:38:24 -07:00
Philip Monk
1ae66bd098
clay: clean up sanity checks
2020-04-29 14:50:30 -07:00
Philip Monk
06c0d55a1e
clay: working sanity checks for ankh
2020-04-28 22:34:48 -07:00
Philip Monk
c5d7473cf7
clay: recurse properly
2020-04-28 20:33:12 -07:00
Philip Monk
7133e50ef3
clay: make first commits use fusion
2020-04-28 18:14:18 -07:00
Ted Blackman
87818b8795
clay: report cache sizes in |mass
2020-04-28 06:37:43 -04:00
Ted Blackman
004d0624da
clay: remove stray print
2020-04-28 06:23:53 -04:00
Ted Blackman
0a906dc297
clay: use %mime cache on %into
2020-04-28 05:56:28 -04:00
Ted Blackman
3eac215a1c
clay: fix %mime->%hoon bootstrapping
2020-04-28 00:52:07 -04:00
Ted Blackman
48caee7579
clay: fix +build-fit
2020-04-27 22:53:50 -04:00
Philip Monk
dca81a2ee2
clay: prepare for kernel updates
2020-04-24 17:44:29 -07:00
Philip Monk
d3b5fba864
clay: prepare for switching first commit to fusion
...
Can't be done right now because get-fit doesn't look at the incoming
changes.
2020-04-24 12:17:22 -07:00
Philip Monk
42bab4ecfb
clay: move -commit back into clay
2020-04-23 17:16:42 -07:00
Philip Monk
fa0e019ddf
clay: change %park interface to not take caches
...
Now a full commit is synchronous. -commit will be assimilated back into
clay.
2020-04-23 13:54:57 -07:00
Ted Blackman
8b4ad9bfc9
:spider2 works with threads in subfolders
2020-04-21 00:22:54 -04:00
Ted Blackman
acaf5a12cf
-test: all tests pass; fixed clay +get-fit
2020-04-20 02:41:20 -04:00
Ted Blackman
1f91676c97
ford-fusion: stateful %warp reads compile
2020-04-19 04:58:12 -04:00
Ted Blackman
0e4fb5a4f4
-test /sys/vane/{ames,clay}
2020-04-18 19:53:45 -04:00
Ted Blackman
8d3a497bb9
ford-fusion: add ~| with .changes and .deletes
2020-04-18 04:18:13 -04:00
Ted Blackman
8f60c0e036
ford-fusion: update ankh before mime conversion
2020-04-18 01:36:59 -04:00
Ted Blackman
f36dc49ede
-build-file, -build-mark, -build-cast
2020-04-17 22:50:03 -04:00
Philip Monk
3d04695ca7
clay: use ford fusion for ankh and mime cache
2020-04-17 18:04:51 -07:00
Ted Blackman
1b27582e3a
ford-fusion: minor cleanup to +get-value
2020-04-17 02:23:19 -04:00
Ted Blackman
fdcc80b1e2
ford-fusion: use .baked.nub; fixes /mar/hoon dep cycle
2020-04-17 02:14:41 -04:00
Philip Monk
92f8fad85d
clay: write checkout-ankh and checkout-mime
2020-04-16 20:18:02 -07:00
Philip Monk
a479618a23
clay: add +get-changes
2020-04-16 14:05:43 -07:00
Ted Blackman
af24318955
ford-fusion: check for cycles
2020-04-16 16:30:55 -04:00
Ted Blackman
3592b7e5bc
ford-fusion: minor +promote-ford cleanup
2020-04-16 16:09:02 -04:00
Ted Blackman
46ee902eaa
ford-fusion: hook up %cc scry to +get-cast
2020-04-16 15:00:03 -04:00
Ted Blackman
ea23be3973
ford-fusion: report syntax errors
2020-04-16 09:55:48 -04:00
Ted Blackman
95f27d4a7b
ford-fusion: +run-pact compiles
2020-04-16 09:38:34 -04:00
Ted Blackman
6e12f71789
ford-fusion: +validate-path, +cast-path
2020-04-16 09:28:14 -04:00
Ted Blackman
5854162e74
ford-fusion: parse /?
2020-04-16 08:56:06 -04:00
Ted Blackman
35c39bf076
ford-fusion: +get-cast compiles, initial tests pass
2020-04-16 08:45:48 -04:00
Philip Monk
6441116e9f
clay: get-fit fix from ted
2020-04-15 19:55:41 -07:00
Philip Monk
311cf5329c
clay: integrate ford vase and mark without cache
2020-04-15 19:10:22 -07:00
Philip Monk
310f5d19ef
clay: add stubs for %a, %b, and %c cares
2020-04-15 17:47:45 -07:00
Philip Monk
d04191320a
clay: add +promote-ford
2020-04-15 16:24:48 -07:00
Philip Monk
17fa15336f
clay: fix %init for -merge
2020-04-10 20:42:56 -07:00
Philip Monk
5a4786169d
clay: don't underflow when patch produces empty file
...
Fixes #2602
I haven't been able to reproduce this bug, but I can see how it could
happen in theory. This should resolve the issue.
2020-03-31 11:37:58 -07:00
Philip Monk
d70431a6b0
clay: add %cs for hash of yaki data
2020-03-27 20:45:32 -07:00
Philip Monk
3f2a7b08a5
clay: add -merge except meet/mate/meld
...
-merge will replace |merge so that. Once they reach feature parity and
%info is rewritten to forward to -commit, we can rip out about half of
clay.hoon
2020-03-25 20:54:19 -07:00
Philip Monk
4d013573e1
clay: print changes on commit
2020-03-24 17:24:19 -07:00
Philip Monk
51ff5b8d67
clay: connect |commit to %park
...
Can remove the old commit flow once existing usage of %info is ported to
%park.
2020-03-24 16:48:18 -07:00
Philip Monk
1599937c81
clay: add option to skip queue
...
Makes it so that |cancel %force skips the next thing in the queue if
you're not in the middle of something. If you are in the middle of
something, it skips the thing you're in the middle of (just like naked
|cancel).
This should resolve issues where |cancel doesn't drain the queue.
2020-03-23 15:53:18 -07:00
Philip Monk
531630e93a
clay: add %park task and -commit
...
%park is a plumbing commit task. It guarantees completion in a single
event, so you have to do much of the work before calling it. -commit
is an example of how to do this.
2020-03-20 21:30:56 -07:00
Joe Bryan
6322639436
vane: jet-hints all vanes for profiling
2020-03-03 14:17:42 -08:00
Joe Bryan
53d9798cda
vane: prints error notifications where not handled
2020-02-26 16:56:17 -08:00
Joe Bryan
4cae84d9ac
vane: downcast all error notifications to %crud
2020-02-26 16:56:17 -08:00
Joe Bryan
df970ed417
arvo: passes errors to all vanes
2020-02-26 16:56:17 -08:00
Ted Blackman
0bee77ce8e
/sys: use +harden on vane tasks
...
Uses Zuse's previously unused +harden helper function to streamline
+task unwrapping in vanes.
(Arguably, in landlocked vanes like Ford, we should crash if we get a
%soft task, since no events should be coming in directly from the
outside.)
2020-01-27 09:53:53 +04:00
Fang
f4ed3fe980
clay: document %t care
2020-01-22 21:23:14 -08:00
Fang
ea7c1db61c
various: use =/ in place of =+ ^-
...
Also faceless =; where appropriate.
2019-12-21 14:29:14 -03:30
Fang
3808f02287
clay: implement %u care
...
Previously, it would always produce ~, regardless of the path asked
about.
Now, it produces a loobean, based on whether or not a file exists at the
specified path.
2019-12-18 21:02:38 +01:00
Philip Monk
4d1457bbaa
Merge remote-tracking branch 'origin/master' into philip/mall-real
2019-11-24 00:01:04 -08:00
Philip Monk
a5412f01de
Merge branch 'alef-testnet-merge' into philip/mall-real
2019-11-19 13:03:07 -08:00
Philip Monk
b25412b93b
clay: fix meet-conflict crash
2019-11-11 21:42:33 -08:00
Philip Monk
e603681097
clay: fix meet-conflict crash
2019-11-10 14:33:48 -08:00
Philip Monk
82513c27fc
Merge branch 'master' into philip/mall-real
2019-11-04 19:35:24 -08:00
Ted Blackman
3ecfbd6a68
fixed merge; sync and hi work again
2019-11-03 00:07:51 -04:00
Ted Blackman
9a02c64b45
Merge branch 'master' into alef-testnet-merge
...
Untested, has not been run.
Uses master pills for now. Will need refreshing.
2019-11-02 23:37:01 -04:00
Ted Blackman
925489eba6
/sys: various merge fixes
2019-10-30 16:23:37 -04:00
Ted Blackman
21dabb8895
big merge, including some Alef and Zuse work
2019-10-30 16:12:57 -04:00
Philip Monk
9ddc04143a
jael: provide edge-triggered breach notification
...
Until now, clients of Jael have had to store the first-seen rift if they
want to reliably detect breaches. Otherwise, they would get a false
positive if they heard an old message about a breach (eg if you kick
azimuth-tracker). Clay and Gall did this correctly, but Ames did not.
Jael already maintains this state, so I added a notification to the
existing subscription that happens whenever it notices a breach (a diff
or full where the new rift is greater than the old one).
Because this is an issue on the live network, I wrote state adapters
for Gall and Clay. The Gall one just removes the rift from our state,
but the Clay one is much more involved because we have to upgrade
instances of the clad monad that are possibly in progress.
Specifically, since more input is possible than before, we must wrap any
in-progress instances of the monad in a function that handles the
potential new input from Jael. This temporarily preservers a copy of
the old kernel, but only until the current commit/merge/update has
completed.
The real solution for Clay is to factor out those IO-heavy instances to
userspace tapp/async/imp/threads, and if an upgrade happens in the
middle, you should simply restart them.
Fixes #1852
2019-10-23 21:40:34 -07:00
Joe Bryan
3dd9bd7111
arvo: wires up %trim memory-pressure event stubs
2019-09-27 13:02:11 -07:00
Philip Monk
263b151dcb
clay: answer ~ to %next request if file is deleted
2019-09-10 13:49:12 -07:00
Philip Monk
1ca4c72aa5
mall: make boot
2019-09-09 20:04:38 -07:00
Ted Blackman
ca00d89286
%lost ames gift and stub handlers in vanes
2019-08-27 20:12:56 -07:00
Ted Blackman
fc9104cb47
Merge branch 'master' into alef-testnet (might not work)
2019-08-19 14:43:39 -07:00
Ted Blackman
3f5a96485b
printing cleanup
2019-08-10 11:48:40 -07:00
Philip Monk
9e154b053f
kick write queue on |cancel
2019-08-09 11:53:05 -07:00
Philip Monk
6212422015
kale -> jael
2019-08-06 15:42:37 -07:00
Ted Blackman
626f7c9a75
Merge branch 'philip/kale' into alef-testnet
2019-08-05 22:06:53 -07:00
Ted Blackman
53d9b41a80
fixed alef bone<->duct mapping and therefore %breah-sudden ph test
2019-08-05 13:58:53 -07:00
Philip Monk
6f274de3be
more printfs
2019-08-05 11:48:11 -07:00
Ted Blackman
1d62f1eecc
Merge branch 'philip/kale' into alef-testnet
2019-08-01 15:56:23 -07:00
Philip Monk
e39a2c0467
all breach tests pass
2019-07-29 15:09:08 -07:00
Ted Blackman
505c0eb4d5
clay |sync works; fixed ack bug and clay bug
2019-07-29 02:08:26 -07:00
Ted Blackman
9670408a06
Merge branch 'master' into alef-breach
2019-07-29 00:27:58 -07:00
Ted Blackman
5b0ee61a64
Boots without error and sends and receives talk messages
2019-07-28 23:37:49 -07:00
Philip Monk
f78d755a0d
%breach-sync works with kale
2019-07-27 16:52:28 -07:00
Philip Monk
dd76358f6a
%breach-hi works with kale
2019-07-26 20:45:45 -07:00
Philip Monk
a47ef9ac77
wip
2019-07-26 20:45:45 -07:00
Philip Monk
e703053fc0
more lat and hut order fixes
2019-07-24 17:16:41 -07:00
Philip Monk
e28c24324a
more lat and hut order fixes
2019-07-24 17:06:41 -07:00
Philip Monk
0b56c798fd
fix lat uni order in clay to break recursion
2019-07-24 16:05:15 -07:00
Ted Blackman
6c22beea8c
Merge branch 'master' into alef-breach
2019-07-22 11:46:40 -07:00
Joe Bryan
b5d02a0082
adds sample type to +get:by, fixes call-sites
2019-07-18 11:51:34 -07:00
Ted Blackman
86da8e9033
made a pill that boots without error
2019-07-15 16:11:22 -07:00
Ted Blackman
793fc5c213
all vanes compile, at least individually
2019-07-15 14:23:34 -07:00
Ted Blackman
1ad2712870
Merge branch 'alef' into alef2
2019-07-11 14:26:22 -07:00
Fang
eb6c8a45ce
Replace (fall (~(get by
calls with (~(gut by
2019-06-30 18:13:34 +02:00
Ted Blackman
889c300092
clay, alef, and zuse compile
2019-06-28 16:43:52 -07:00
Jared Tobin
b3901ab42f
Add 'pkg/arvo/' from commit 'c20e2a185f131ff3f5d3961829bd7a3fe0f227f8'
...
git-subtree-dir: pkg/arvo
git-subtree-mainline: 9c8f40bf6c
git-subtree-split: c20e2a185f
2019-06-28 12:48:05 +08:00