Commit Graph

61 Commits

Author SHA1 Message Date
Philip Monk
f61d16965a kiln: fix +vat,+vats 2022-09-12 20:22:22 -08:00
Philip Monk
0d757b4436 kiln: migrate previous OTA state 2022-09-07 21:56:12 -08:00
Philip Monk
8884e7dfbc kiln: make compile 2022-09-02 16:51:39 -08:00
Philip Monk
093f0ae9de Merge branch 'philip/inline-thread' into philip/agent-clay-wip 2022-09-01 19:03:17 -08:00
Philip Monk
e3a8cab943 khan: support inline threads
This allows you to pass a thread directly into khan, instead of passing
a filename.  This has several implications:

- The friction for using threads from an app is significantly lower.
  Consider:

    =/  shed
      =/  m  (strand ,vase)
      ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>('hi'))
      ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>('there'))
      (pure:m !>('product'))
    [%pass /wire %arvo %k %lard %base shed]

- These threads close over their subject, so you don't need to parse
  arguments out from a vase -- you can just refer to them.  The produced
  value must still be a vase.

    ++  hi-ship
      |=  [=ship msg1=@t msg2=@t]
      =/  shed
        =/  m  (strand ,vase)
        ;<  ~  bind:m  (poke:strandio [ship %hood] %helm-hi !>(msg1))
        ;<  ~  bind:m  (poke:strandio [ship %hood] %helm-hi !>(msg2))
        (pure:m !>('product'))
      [%pass /wire %arvo %k %lard %base shed]

- Inline threads can be added to the dojo, though this PR does not add
  any sugar for this.

    =strandio -build-file %/lib/strandio/hoon
    =sh |=  message=@t
        =/  m  (strand:rand ,vase)
        ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>('hi'))
        ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>(message))
        (pure:m !>('product'))
    |pass [%k %lard %base (sh 'the message')]

Implementation notes:
- Review the commits separately: the first is small and implements the
  real feature.  The second moves the strand types into lull so khan can
  refer to them.

- In lull, I wanted to put +rand inside +khan, but this fails to that
  issue that puts the compiler in a loop.  +rand depends on +gall, which
  depends on +sign-arvo, which depends on +khan.  If +rand is in +khan,
  this spins the compiler.  The usual solution is to either move
  everything into the same battery (very ugly here) or break the
  recursion (which we do here).
2022-08-29 21:04:50 -08:00
Philip Monk
fa569cf7f3 kiln: wip 2022-08-29 10:53:36 -08:00
Philip Monk
50c22343b6 clay: wip 2022-08-16 20:33:25 -08:00
Nick
56f01a52ed %bitcoin: add regtest type to network
Updating bitcoin provider agent to enable connection to a bitcoin provider node in regtest mode
2022-07-07 16:47:06 -04:00
Philip Monk
591bdf458c Merge branch 'next/arvo' into philip/tomb 2022-05-04 00:45:57 -07:00
fang
4415aa781e
Merge branch 'next/arvo' into m/aqua-revival 2022-04-20 18:47:59 +02:00
Philip Monk
8805e0ee85 clay: convert all blobs to pages
This converts the blob store from having deltas, directs, and
tombstones, to just having direct pages.  This simplifies a lot of code,
since we don't have to constantly ensure that deltas always have their
parent available.

This removes the hardcoded text diff logic from clay, which was
previously required for bootstrapping.

Over the wire, we handle both old and new requests and responses
transparently, so communication is normal in both directions across
ships which do or do not have this change.
2022-04-13 00:35:58 -07:00
fang
dad82436be
aqua: support injecting arbitrary tasks 2022-03-30 12:51:46 +02:00
Philip Monk
0c3eee07b5 Merge remote-tracking branch 'origin/master' into philip/tomb 2022-03-25 12:21:56 -07:00
fang
250e750a89
spider: factor spider-arg type out into interface
And fix a callsite that wasn't conforming.
2022-03-16 21:10:31 +01:00
Yaseen
b43b9f195e story: add file mar/story-diff.hoon, extract diff type to sur file 2022-03-11 11:21:55 -05:00
Yaseen
b616f48169 story: add $cash 2022-02-18 17:46:04 -05:00
Yaseen
9286d89fa2 story: add chapter type 2022-01-30 15:59:06 -05:00
Yaseen
8787c43c83 story: cleanup 2022-01-30 15:58:35 -05:00
Yaseen
194f3d55c6 story: make sur file an lead core 2022-01-25 13:52:40 -05:00
Yaseen
f2b8a1b7f7 story: update sur file 2022-01-20 15:54:37 -05:00
Yaseen
df9e5175d1 story: create sur file and extract type 2022-01-16 22:36:52 -05:00
Philip Monk
7b96cf7a82
kiln: don't revive apps at wrong kelvin 2021-11-10 22:17:05 -08:00
Philip Monk
9fc74f60d9
Merge remote-tracking branch 'origin/master' into philip/roller 2021-11-09 22:03:25 -08:00
Liam Fitzgerald
2fa9c8e494 kiln: respect .liv flag in +get-apps-want
Accounts for the value of .liv in +get-apps-want, such that if a desk
is suspended then +get-apps-want should always return the empty list.
2021-11-08 16:43:48 -06:00
Philip Monk
d9276cd51c
clay: Add support for representing tombstones
This adds support for tombstoned files to clay.  It does not include any
way to actually tombstone them; that is left for later.

This allows tombstoning at the level of a file.  Precisely, this expands
+blob:clay by adding a %dead case:

    +$  blob                                              ::  fs blob
      $%  [%delta p=lobe q=[p=mark q=lobe] r=page]        ::  delta on q
          [%direct p=lobe q=page]                         ::  immediate
          [%dead p=lobe ~]                                ::  tombstone
      ==                                                  ::

Thus, we maintain the invariant that every lobe corresponds to a blob,
but now a blob may be an explicit tombstone.

Details:
- This has not been tested at all, except that it compiles and boots.
- This does not have a state adapter from master.  The only state change
  is the definition of +cach.
- Additionally, out-of-date ships may unexpectedly receive a %dead blob
  from a foreign clay which would interfere with their ability to download
  that desk.  No code changes necessary, but sponsors should avoid
  tombstoning files in %base for a while so their children can get the
  update.
- A merge will only fail if the tombstoned file conflicts with another
  change.  Note that as written, merging from a past desk *can* bring a
  tombstoned file to the head of a desk.  Possibly this shouldn't be
  allowed.

This also includes a couple refactors that were made possible by ford
fusion (since everything is synchronous now) but never got done.  In
both cases we get to remove a monad, which simplifies the code
considerably.

- refactor +merge's error handling to use !!/mule instead of threading
  through errors
- refactor all +read-* functions and related parts of +try-fill-sub to
  eagerly convert lobes to cages.

We also add support reading %a/b/c/e/f/r/x from past and foreign desks,
when possible.  Apologies that all of these are in one commit, it was
all a single chunk of work.

This is a draft until we have a way to tombstone.  I suspect we'll want
to have a mechanism of keeping track of gc roots and trace to remove,
but this PR doesn't suggest any particular strategy.
2021-11-07 22:17:02 -08:00
fang
0ec3d5111d
Merge branch 'master' into naive/roller 2021-10-26 20:46:32 +02:00
fang
a6bc01e791
hood: no longer work around bad clay %u behavior
Previously it would crash for non-existent desk. No longer does, so we
don't need to avoid this.
2021-10-07 21:58:56 +04:00
Edward Amsden
60e3ac274b
hood: scry for list of desks with empty desk name
Co-authored-by: fang <github@fang.io>
2021-10-01 08:31:18 -04:00
Edward Amsden
000cfff73e
hood: remove needless weld 2021-10-01 08:14:10 -04:00
Edward Amsden
5fdd7d74f7
hood: report %kids desk hash in +report-vats 2021-10-01 08:08:11 -04:00
Ted Blackman
dff3a4593c sur/hood: debug print 2021-09-29 14:59:13 -04:00
Liam Fitzgerald
31f5898087 kiln: track original publisher with desk.ship file 2021-09-29 13:27:28 +10:00
Edward Amsden
b8969ebd7b
hood: don't check kelvin of nonexistent desk in +report-vat 2021-09-28 20:17:28 -04:00
Ted Blackman
5511cc95b5 docket,kiln: snapshot on %watch 2021-09-28 15:33:16 -04:00
Hunter Miller
9f45dce312 Merge branch 'dist' of github.com:urbit/urbit into dist 2021-09-27 18:57:16 -05:00
Hunter Miller
72e3aca57c Merge branch 'ea/master-dist-deconflict' into dist 2021-09-27 18:56:49 -05:00
Hunter Miller
502f2e8a9c Merge branch 'hm/btc-wallet-conflict-resolution' into ea/master-dist-deconflict 2021-09-27 18:55:45 -05:00
Ted Blackman
855e97d17a kiln: update other agents on kernel updates 2021-09-27 19:34:15 -04:00
Fang
18701b2ad2
kiln: always check local desk when adjusting dudes
We do not care about what's on foreign, the local desk is the thing
we're taking action on. This is more robust in the face of absent
information about foreign desks etc.

Also stops pretending to take-commet during take-merge-main. We'll get a
separate commit event.
2021-09-28 00:57:38 +04:00
Edward Amsden
02d2185eb3
move hoons to base-dev 2021-09-27 15:10:19 -04:00
Ted Blackman
7665e75849 manual merge @liam-fitzgerald misc. fixes PR 2021-09-27 14:50:58 -04:00
Ted Blackman
ede1976745 kiln: partial fixes for +take-download scry crash 2021-09-27 00:08:11 -04:00
Ted Blackman
84f306532c sur/hood: fix uninitialized foreign desk crash 2021-09-26 21:54:36 -04:00
Ted Blackman
2544b79e4b kiln,desks: remove %fish from /desk/bill; fix some other kiln issues 2021-09-26 17:03:26 -04:00
Ted Blackman
ef65c9c152 +agents generator 2021-09-25 16:15:55 -04:00
Ted Blackman
c80fb82318 clay,kiln,landscape/notify: migration runs 2021-09-23 18:07:13 -04:00
Liam Fitzgerald
f3befc8afc hood: fix pause poke 2021-09-22 13:20:05 +10:00
Fang
da28fbfed9
Merge dist into m/distpilled 2021-09-20 19:35:51 +02:00
Liam Fitzgerald
ce8f9d00fb hood: respect ordering of agents in bill 2021-09-17 15:43:30 +10:00
Liam Fitzgerald
143a8e08e6 various: fix dependencies & tests 2021-09-17 14:51:19 +10:00