Philip Monk
8cd72daf20
clay: speed up +find-merge-points
...
In certain cases +find-merge-points was very slow. Specifically, the
`done` set was meant to avoid checking the same commit repeatedly, but
it didn't catch the case where a commit was added to the worklist that
was already in that worklist.
Secondly, the worklist was stored as a list but used as a queue, which
resulted in a lot of unnecessary welding. We change it to a qeu.
Fixes #3735
2020-10-16 11:21:02 -07:00
Joe Bryan
1402f763f3
clay: refactors +cancel-request, consistently accounting for TMI
2020-10-09 10:34:18 -07:00
Philip Monk
f9665c0cbd
Merge pull request #3378 from urbit/philip/base-hash
...
clay: expose mergebase as base-hash
2020-09-08 20:11:05 -07:00
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