Commit Graph

402 Commits

Author SHA1 Message Date
drbeefsupreme
0dc3498a6f
hoon: change %brdt AST to support doccords label 2022-03-14 17:08:49 -04:00
drbeefsupreme
f08b613416
hoon: populate label for %brcn doccords
This changes the parser for +tall so that it looks before and after a
hoon for doccords, and then extracts a label for %brcn if it exists.
+wrap will be used to annotating most hoons, but this commit only covers
%brcn
2022-03-14 17:00:04 -04:00
fang
41a796d2d1
hoon: hook up $+ for shorthand type rendering
Too often when dealing with big types the compiler traces and other such
outputs become hard to read. Wrapping a type as $+(shorthand big-type)
will now print #shorthand in place of the type.
2022-03-14 13:58:48 -04:00
drbeefsupreme
0a3ec9a92d
hoon: doccords cleanup %note tag for +boog 2022-03-14 11:49:31 -04:00
drbeefsupreme
336817d5bc
hoon: doccords for core chapters
this populates the $what in $tome
2022-03-14 11:49:30 -04:00
drbeefsupreme
cdaf23a184
hoon: prefix and postfix doccords for ++ and +$
there's a stub for +* but its not working yet
2022-03-14 11:49:29 -04:00
fang
3df227760f
hoon: hook up $+ for shorthand type rendering
Too often when dealing with big types the compiler traces and other such
outputs become hard to read. Wrapping a type as $+(shorthand big-type)
will now print #shorthand in place of the type.
2022-03-10 01:45:18 +01:00
Joe Bryan
ff3bb495d8 hoon: updates %mcgl with an hygienic expansion 2022-02-22 20:39:30 -05:00
~nallux-dozryl
dd53baa059
Fix comment indent for abs:si 2022-01-24 15:24:01 +08:00
fang
bbd044185c
Merge pull request #5227 from urbit/m/righteous-paths
hoon: correctly parse empty path
2021-10-14 23:12:29 +02:00
fang
d0f8eda937
hoon: correctly parse empty path
And reject paths ending in empty segments.

The following cases were being parsed incorrectly:
- `/` represents the empty path, `~`. This was being parsed into `[~. ~]`
- `/x/` is not valid. This was being parsed into `[~.x ~. ~]`

This happens because `urs:ab` has no problem parsing the empty string.
For some supported cases, like `//x` (`[~. ~.x ~]`), this is actually desired
behavior, but it results in trailing empty segments for paths ending in `/`.

Here we apply a `+sear` on top of the existing parser, that transform the `/`
case to produce `~`, and ensures the absence of a trailing empty segment in
all other cases.

Note that we change `(more fas urs:ab)` to `(most fas urs:ab)`. Since `urs:ab`
parses the empty string, this doesn't actually make a difference, but it does
make it more obvious that the `+rear` call will never crash.

Alternative approaches I attempted all resulted in much more complicated
parser, so the dumb `+sear` seems preferable.
We do eat the performance cost of an additional list traversal (in `+rear`)
with this change, but that is probably not the end of the world.

Fixes #1501.
2021-09-16 12:39:50 +02:00
Philip Monk
98d8419c9e
hoon: don't compile .= children twice 2021-08-04 17:02:48 -04:00
Philip Monk
4e16b9c555
hoon: remove +ad
This reverts d96d50199 because +ad is incredibly opaque, and +ergo's
sitting right there anyway.  It looks like it was intended to abstract
over +endo, +elbo, and +ergo, but only +ergo was every implemented.  I
don't doubt the others could be as well, but then they would be just as
inscrutable.
2021-08-04 16:57:03 -04:00
Philip Monk
b0c9fd1940
Merge remote-tracking branch 'origin/lf/hoon-inc' into release/next-sys 2021-06-08 08:59:27 -10:00
Logan Allen
b6206728cc hoon: make +sink more concise 2021-06-04 16:06:40 -05:00
Logan Allen
7ef313c5e1 hoon: add +sink, a slow (but faster than dunk) type printing 2021-06-04 14:40:28 -05:00
Philip Monk
57bea9407e
Merge pull request #4623 from urbit/jb/seminoun-bunt
hoon: update seminoun bunt to be fully blocked
2021-05-18 10:23:30 -07:00
Philip Monk
a57b6f9c9e
Merge branch 'pr' into release/next-sys 2021-05-13 07:04:07 -10:00
Liam Fitzgerald
9b2061a824
hoon: add +succ gate
Adds an +succ (successor) gate. Whilst .+ exists, it is impossible to use
in a point free style and doesn't compose functionally.
2021-04-27 10:24:21 +10:00
Philip Monk
66b4c3f193
Merge pull request #4677 from urbit/philip/fast-refresh
sys: Speed up things used in Landscape
2021-04-19 15:43:16 -07:00
fang
1ec5e5acfb
hoon: add +stap, path parser
And cleans up a bunch of locally hand-written implementations of it.
2021-04-07 21:14:13 +02:00
Philip Monk
7b55097ef4
hoon: memoize rend:co
We commonly print many names in a row, often the same ones.  For
example, on landscape's initial load, we send all the members of all the
groups we're in, and there's substantial overlap.

At least half the cost is in +fein, which is not currently jetted, but I
believe there's an old jet in the git history.
2021-03-28 00:21:30 -07:00
Joe Bryan
549c5e5db9 hoon: update seminoun bunt to be fully blocked 2021-03-17 14:21:58 -07:00
Philip Monk
a5993cc3e7
Merge remote-tracking branch 'origin/release/next-hoon' into release/next-sys 2020-12-18 12:43:07 -08:00
Joe Bryan
6678e7313b hoon: crash with valid tank on %eror 2020-12-15 18:22:51 -08:00
fang
0ef30e0360
hoon: add jet hint for +redo 2020-12-11 21:58:19 +01:00
Joe Bryan
4f79777e0b hoon: reverts to 3e577d4ae7 2020-12-08 16:26:11 -08:00
Joe Bryan
563c2d4c06 hoon: restrict trap subject in +swat 2020-12-07 23:51:10 -08:00
Joe Bryan
c807769b9e hoon: removes +ride printfs 2020-12-07 23:27:31 -08:00
Joe Bryan
fb403bf080 hoon: removes obsolete compiler hooks 2020-12-07 23:27:25 -08:00
Joe Bryan
3e577d4ae7 arvo: kelvins 2020-12-07 22:56:01 -08:00
Joe Bryan
115d4f9ac8 arvo: removes $monk 2020-12-07 00:42:09 -08:00
Joe Bryan
a08e196a95 hoon: avoid "fund: in/by" jet printfs by tweaking +map/+set/+qeu 2020-12-06 17:14:04 -08:00
Joe Bryan
ff06ccd2b9 arvo: completes scry reform 2020-12-06 03:33:43 -08:00
Joe Bryan
a5861a1349 hoon: moves |wa and $worm to arvo 2020-12-05 02:32:54 -08:00
Joe Bryan
d8a6c5e387 hoon: use +mole to virtualize +cue in |so 2020-12-05 00:51:49 -08:00
Joe Bryan
3a42c36298 hoon: adds +swat: deferred +slap 2020-12-04 22:46:02 -08:00
Joe Bryan
1e3378a7f5 hoon: fixes logic bug in date printer (truncation) 2020-12-04 21:38:39 -08:00
Joe Bryan
fa0680d201 hoon: updates +rap comment, removes jet-match hack 2020-12-02 01:21:55 -08:00
Joe Bryan
0e3941f146 hoon: updates +fil to bloq-truncate the repeated atom 2020-12-02 01:20:49 -08:00
Joe Bryan
b5ec0c30f0 hoon: renames +new-end, +new-lsh, +new-rsh 2020-12-02 01:00:09 -08:00
Joe Bryan
9e713a5e10 hoon: removes +end, +lsh, and +rsh 2020-12-02 01:00:09 -08:00
Joe Bryan
bec63413b0 hoon: adds +new-rsh, switches all +rsh call sites 2020-12-02 00:21:51 -08:00
Joe Bryan
089852e948 hoon: adds +new-lsh, switches all +lsh call sites 2020-12-02 00:21:38 -08:00
Joe Bryan
4f9cba2baf hoon: adds +new-end, switches all +end call sites 2020-12-02 00:21:12 -08:00
Joe Bryan
181b1fbdb6 hoon: (and %zuse) use +run and +rut where appropriate 2020-12-01 18:26:18 -08:00
Joe Bryan
3f71826d6b hoon: adds atom map gates +run and +rut 2020-12-01 18:19:07 -08:00
Joe Bryan
12bf28e2c8 hoon: adds +sew, inverse of +cut 2020-12-01 18:15:26 -08:00
Joe Bryan
0420dad443 hoon: removes +repn and +ripn 2020-12-01 18:11:59 -08:00
Joe Bryan
b27806769e hoon: updates +rep and +rip to take a $bite 2020-12-01 17:52:43 -08:00
Joe Bryan
9bfc0e6492 hoon: adds $bite for atom slice specifiers 2020-12-01 17:14:10 -08:00
Joe Bryan
7a08067cf1 hoon: adds $step for bloq-sized atom offsets 2020-12-01 16:51:14 -08:00
Joe Bryan
17f95c0cb6 Merge branch 'm/remove-ketcen' into m/modern-hoon
* m/remove-ketcen:
  u3: removes .fab from |ut hooks
  hoon: patch up +ax callsites
  u3: WIP removes fab:ut
  hoon: WIP remove fab:ut
  hoon: remove ^%
2020-11-30 20:08:17 -08:00
fang
732addadd3
various: touch up improperly rewritten comments
Also patches /mar/snip to be more correct, but a &snip [~ ~] in dojo
still does not work.
2020-11-27 13:25:40 +01:00
fang
eef09dd63b
hoon: remove deprecated character parsers 2020-11-26 17:43:54 +01:00
fang
8e57961183
hoon: remove {type} syntax 2020-11-26 17:43:42 +01:00
fang
a539d986a7
various: move away from {type} syntax
In favor of [type] syntax.
Turns a bunch of ++ into +$ along the way.
2020-11-26 17:43:26 +01:00
fang
ebe0feed50
hoon: remove face/type syntax 2020-11-26 17:38:20 +01:00
fang
44fb0cc19d
various: move away from face/type syntax
In favor of face=type.
2020-11-26 17:38:00 +01:00
fang
2545282d5e
hoon: remove $constant type syntax 2020-11-26 17:31:23 +01:00
fang
a6e7af38d5
various: move away from $constant type syntax 2020-11-26 17:31:06 +01:00
fang
194e8ae440
hoon: remove += and +- arm syntax 2020-11-26 17:27:30 +01:00
Joe Bryan
76451b54a3 Merge branch 'jb/re-mug-pre' into jb/candidate
* jb/re-mug-pre:
  arvo: temporary, build +brass out of /not-sys
  hoon: switches to new +mug
  u3: adds new +mug (as u3r_gum_*)
  hoon: adds new +mug (as +gum)
  u3: updates +muk to truncate seed and removes spurious assertion
  hoon: updates +muk to truncate seed and removes spurious assertion
2020-11-26 01:20:28 -08:00
Joe Bryan
cd3918b852 hoon: switches to new +mug 2020-11-26 00:32:52 -08:00
Joe Bryan
fc30df7401 hoon: adds new +mug (as +gum) 2020-11-26 00:31:25 -08:00
Joe Bryan
e2a33eee8d hoon: updates +muk to truncate seed and removes spurious assertion 2020-11-25 00:43:34 -08:00
fang
3ff083e9db
hoon: patch up +ax callsites
Some were still passing in a value for fab, which is no longer used.
2020-11-24 21:12:43 +01:00
fang
79f698c3a9
hoon: add +snip and +rear
Helper functions for dealing with the ends of lists.
2020-11-24 15:41:36 +01:00
Joe Bryan
1a0b082de2 hoon: WIP remove fab:ut 2020-11-24 00:20:10 -08:00
Fang
1d644dc470 hoon: remove ^%
It's completely unused.
2020-11-24 00:05:44 -08:00
Joe Bryan
d6e5b19b3d Merge branch 'na-release/candidate' into jb/no-wrap-tank
* na-release/candidate: (31 commits)
  pill: change to ropsten
  zuse: change to ropsten
  pill: all
  u3: fix accidental neologism in comments
  pill: solid
  u3: refactors dynamic hint bytecodes, documents protocol
  u3: adds dynamic hint bytecodes and implementation
  u3: moves _n_swap() next to other stack ops
  u3: adds ghetto +mook replacement
  u3: moves |ut battery to the rightmost cache key position
  u3: adds |ut battery to jet cache keys
  pill: solid
  pill: solid.pill
  hoon: bscl to bccl, etc
  pill: solid
  hoon: modernizes syntax in the rest of |co
  hoon: updates @p rendering to avoid intermediate right-shifts
  hoon: refactors @da/@dr coin printing
  hoon: comments, modernizes syntax for all +*-co:co gates
  hoon: refactors +r-co:co, modernizing syntax
  ...
2020-11-23 23:15:12 -08:00
Joe Bryan
2b89f7cb88 Merge branches 'na-release/secp', 'na-release/runes' and 'jb/co-norm' into na-release/next-vere
* na-release/secp:
  update solid pill
  fix secp test (new-secp staging name is gone)
  hoon: ensure lib/bip32 is working with new secp, remove old secp
  vere: wire up jets for new secp
  zuse: make it clear where the secp jet should make explicit size checks
  update solid pill
  zuse: add refactored secp core (unjetted)

* na-release/runes:
  pill: solid
  pill: solid.pill
  hoon: bscl to bccl, etc

* jb/co-norm:
  pill: solid
  pill: solid
  hoon: modernizes syntax in the rest of |co
  hoon: updates @p rendering to avoid intermediate right-shifts
  hoon: refactors @da/@dr coin printing
  hoon: comments, modernizes syntax for all +*-co:co gates
  hoon: refactors +r-co:co, modernizing syntax
  hoon: comments, modernizes syntax for all +**-co gates
  hoon: refactors +ro-co:co, modernizing syntax
  hoon: use +pow instead of handrolled loop in +ox-co:co
  hoon: use +dvr instead of +div/+mod in |co helpers
2020-11-23 15:32:44 -08:00
Joe Bryan
d3e28f5e54 Merge branch 'na-release/next-vere' into jb/co-norm
* na-release/next-vere: (1601 commits)
  nix: run tests against the latest arvo source
  test: fixes +to-wain (no more trailing empty lines)
  pill: solid
  build: update gcloud to use non-deprecated action
  pill: solid
  glob: update to 0v4.fpa4r.s6dtc.h8tps.62jv0.qn0fj
  notifications: prevent safari shrinkage
  glob: update to 0v5.91i1u.1g535.t3de3.6c3ih.fanmv
  Sidebar: loosen property access
  launch: loosen property access in unread count
  notifications: fix scroll to load
  glob: update to 0v1.pak02.pfla3.gh56f.qhc6h.3h881
  inbox: fix graph resource redirects
  inbox: fix link routing and rendering
  glob: update to 0v4.3fbh4.p7j6i.2pi9g.d1ltq.5u7uu
  hark-fe: fix crash
  hark: update graph marks for editable comments
  graph-store: change atom to %1 for all migrated comments
  glob: update to 0v5.67obv.15auf.c2rc7.jpcu2.iain3
  inbox: correct notification order
  ...
2020-11-20 15:39:46 -08:00
Joe Bryan
a6a421608a hoon: adds $cord to $tank 2020-11-20 15:23:56 -08:00
Joe Bryan
374f93d812 hoon: moves $json and styled-text molds back to %zuse 2020-11-20 15:23:56 -08:00
Joe Bryan
f6f7d2fab4 hoon: modernizes $tank and surrounding declarations 2020-11-20 15:23:56 -08:00
Joe Bryan
fb66dc10b5 hoon: moves xray traversals to userspace 2020-11-20 15:23:56 -08:00
Joe Bryan
b1e3b0def2 hoon: moves $xray into userspace 2020-11-20 15:23:56 -08:00
Joe Bryan
aea0f571d7 hoon: moves $plum and +plume to userspace 2020-11-20 15:23:56 -08:00
Joe Bryan
25cea09fd1 hoon: refactors |re for clarity 2020-11-20 15:23:55 -08:00
Joe Bryan
c9db96382a hoon: removes $plum from $tank 2020-11-20 15:23:55 -08:00
Joe Bryan
5f160a233e hoon: removes utf32 hacks and \/ windowing from |re
a tape is just a list of utf8 bytes, it's never save to split one
at an arbitrary position. this is exactly what \/ windowing did,
so i had hacked in to/from utf32 conversions to prevent splitting
multi-byte characters. that is dumb and slow, so it's now gone.
2020-11-20 15:23:55 -08:00
Joe Bryan
e1186950bc Merge branch 'na-release/next-vere' into na-release/runes
* na-release/next-vere: (943 commits)
  pill: solid
  glob: update to 0v4.fpa4r.s6dtc.h8tps.62jv0.qn0fj
  notifications: prevent safari shrinkage
  glob: update to 0v5.91i1u.1g535.t3de3.6c3ih.fanmv
  Sidebar: loosen property access
  launch: loosen property access in unread count
  notifications: fix scroll to load
  glob: update to 0v1.pak02.pfla3.gh56f.qhc6h.3h881
  inbox: fix graph resource redirects
  inbox: fix link routing and rendering
  glob: update to 0v4.3fbh4.p7j6i.2pi9g.d1ltq.5u7uu
  hark-fe: fix crash
  hark: update graph marks for editable comments
  graph-store: change atom to %1 for all migrated comments
  glob: update to 0v5.67obv.15auf.c2rc7.jpcu2.iain3
  inbox: correct notification order
  inbox: redirect invites correctly
  publish: Restore basic 'add writers' form
  interface: show currently editing comment as pending
  landscape: preclude dropdown duplicates on exact match
  ...
2020-11-19 14:22:00 -08:00
Joe Bryan
4f43831095 Merge branch 'master' into na-release/next-vere
* master: (390 commits)
  glob: update to 0v4.fpa4r.s6dtc.h8tps.62jv0.qn0fj
  notifications: prevent safari shrinkage
  glob: update to 0v5.91i1u.1g535.t3de3.6c3ih.fanmv
  Sidebar: loosen property access
  launch: loosen property access in unread count
  notifications: fix scroll to load
  glob: update to 0v1.pak02.pfla3.gh56f.qhc6h.3h881
  inbox: fix graph resource redirects
  inbox: fix link routing and rendering
  glob: update to 0v4.3fbh4.p7j6i.2pi9g.d1ltq.5u7uu
  hark-fe: fix crash
  hark: update graph marks for editable comments
  graph-store: change atom to %1 for all migrated comments
  glob: update to 0v5.67obv.15auf.c2rc7.jpcu2.iain3
  inbox: correct notification order
  inbox: redirect invites correctly
  publish: Restore basic 'add writers' form
  interface: show currently editing comment as pending
  landscape: preclude dropdown duplicates on exact match
  interface: links and publish comments both work
  ...
2020-11-19 14:02:13 -08:00
Philip Monk
08ebacd430
Merge branch 'pr' into release/next-sys 2020-11-17 19:00:09 -08:00
John Franklin
11f8ba23d7 hoon: bscl to bccl, etc 2020-11-17 01:05:17 -06:00
Joe Bryan
bac545e23c Merge branch 'release/next-vere' into na-release/next-vere
* release/next-vere: (1369 commits)
  nix: fixes `shellFor` nix-shell helper
  vere: print error and exit if stdin is not a tty
  build: silence service account activation output
  build: minor refactoring of haskell-nix overlays
  build: move darwin install_name_tool fixup from vere to king haskell
  u3: fixes incorrect double ref-counting in |ff jets
  u3: removes unused `Exit` variable
  u3: removes obsolete bail:need assertion
  u3: refactors fatal exception handling in u3m_bail()
  build: remove {sha256,md5} output for push-storage-object effects
  build: add log message when destination object already exists
  build: force google-cloud-sdk to use python3
  build: adding support for hercules ci effects
  build: remove push-to-storage for ivory, brass, and solid pills
  pill: rebuild solid pill with %lens included in lite boot apps
  arvo: run %lens when lite boot (-l) is specified
  build: expose configurable arguments when booting/testing fake ships
  build: ensure urbit tests are run with the -g argument
  vere: ensure debug symbols aren't stripped by default (by nix)
  build: remove from-scratch ropsten pill builds on ci
  ...
2020-11-11 18:03:01 -08:00
Philip Monk
fc15f0d735
Merge branch 'pr' into HEAD 2020-10-22 20:47:53 -07:00
Anton Dyudin
e8c5dd9806
[hoon co] Fix float printer overuse of scientific notation
I.e, print `.10` as `.10` not `.1e1`. Only use `e+-N` when it would be shorter.

Before:
```
> (turn (gulf 1 10) |=(a=@u (turn (gulf 0 9) |=(b=@u (grd:rs d/[& -5 (mul (pow 10 a) +((pow 10 b)))])))))
~[
  ~[.2e-3 .1.1e-3 .1.01e-2 .1.001e-1 .1.0001 .1.00001e1 .1.000001e2 .1.0000001e3 .1e4 .1e5]
  ~[.2e-2 .1.1e-2 .1.01e-1 .1.001 .1.0001e1 .1.00001e2 .1.000001e3 .1.0000001e4 .1e5 .1e6]
  ~[.2e-1 .1.1e-1 .1.01 .1.001e1 .1.0001e2 .1.00001e3 .1.000001e4 .1.0000001e5 .1e6 .1e7]
  ~[.2 .1.1 .1.01e1 .1.001e2 .1.0001e3 .1.00001e4 .1.000001e5 .1.0000001e6 .1e7 .1e8]
  ~[.2e1 .1.1e1 .1.01e2 .1.001e3 .1.0001e4 .1.00001e5 .1.000001e6 .1.0000001e7 .1e8 .1e9]
  ~[.2e2 .1.1e2 .1.01e3 .1.001e4 .1.0001e5 .1.00001e6 .1.000001e7 .1.0000001e8 .1e9 .1e10]
  ~[.2e3 .1.1e3 .1.01e4 .1.001e5 .1.0001e6 .1.00001e7 .1.00000096e8 .1.0000001e9 .1e10 .1e11]
  ~[.2e4 .1.1e4 .1.01e5 .1.001e6 .1.0001e7 .1.00001e8 .1.000001e9 .1.0000001e10 .1e11 .1e12]
  ~[.2e5 .1.1e5 .1.01e6 .1.001e7 .1.0001e8 .1.00001e9 .1.000001e10 .1.0000001e11 .1e12 .1e13]
  ~[.2e6 .1.1e6 .1.01e7 .1.001e8 .1.00009997e9 .1.00001e10 .1.000001e11 .1.0000001e12 .1e13 .1e14]
]
```

After:
```
> (turn (gulf 1 10) |=(a=@u (turn (gulf 0 9) |=(b=@u (grd:rs d/[& -5 (mul (pow 10 a) +((pow 10 b)))])))))
~[
  ~[.2e-4 .1.1e-3 .0.0101 .0.1001 .1.0001 .10.0001 .100.0001 .1000.0001 .1e4 .1e5]
  ~[.2e-3 .0.011 .0.101 .1.001 .10.001 .100.001 .1000.001 .10000.001 .1e5 .1e6]
  ~[.0.02 .0.11 .1.01 .10.01 .100.01 .1000.01 .10000.01 .100000.01 .1e6 .1e7]
  ~[.0.2 .1.1 .10.1 .100.1 .1000.1 .10000.1 .100000.1 .1000000.1 .1e7 .1e8]
  ~[.2 .11 .101 .1001 .10001 .100001 .1000001 .10000001 .1e8 .1e9]
  ~[.20 .110 .1010 .10010 .100010 .1000010 .10000010 .100000010 .1e9 .1e10]
  ~[.200 .1100 .10100 .100100 .1000100 .10000100 .100000096 .1000000100 .1e10 .1e11]
  ~[.2e3 .1.1e4 .1.01e5 .1.001e6 .1.0001e7 .1.00001e8 .1.000001e9 .1.0000001e10 .1e11 .1e12]
  ~[.2e4 .1.1e5 .1.01e6 .1.001e7 .1.0001e8 .1.00001e9 .1.000001e10 .1.0000001e11 .1e12 .1e13]
  ~[.2e5 .1.1e6 .1.01e7 .1.001e8 .1000099970 .1.00001e10 .1.000001e11 .1.0000001e12 .1e13 .1e14]
]
```
2020-10-19 11:05:31 -07:00
Philip Monk
d948d22a78
Merge remote-tracking branch 'origin/release/next-hoon' into philip/link-upgrade 2020-10-15 14:32:34 -07:00
pkova
75205466fe hoon: fix mis-compilation in wet gate subject access
Fixes #3600
2020-10-15 16:47:25 +03:00
Joe Bryan
9d5119b33f hoon: adds hints for likely-to-be-jetted list/treap/parser arms 2020-10-13 18:38:09 -07:00
Joe Bryan
5edaf634bc
Merge pull request #3691 from urbit/jb/need-have
hoon: enables need/have type printfs on nest-fail
2020-10-13 18:33:26 -07:00
Joe Bryan
b1d81b4cb4 hoon: adds product cast to +murn 2020-10-09 15:25:07 -07:00
Joe Bryan
7ef74cf2f4 hoon: removes "road:new" printf from virtualized crash 2020-10-09 10:27:37 -07:00
Joe Bryan
5053de8b6b hoon: enables need/have type printfs on nest-fail 2020-10-09 10:26:38 -07:00
fang
e512e91f37
hoon: go full lark in +lead and +late (#3442)
To avoid wet-gate issues around face shadowing and such things.
2020-10-07 15:11:05 +02:00
Joe Bryan
00c1fbc185 hoon: virtualize cue when parsing %blob coin literals 2020-10-06 18:01:09 -07:00
Joe Bryan
bec9006e53 hoon: modernizes syntax in the rest of |co 2020-10-06 13:37:28 -07:00
Joe Bryan
07e17e5895 hoon: updates @p rendering to avoid intermediate right-shifts 2020-10-06 13:37:22 -07:00
Joe Bryan
934721b6bc hoon: refactors @da/@dr coin printing 2020-10-06 13:37:22 -07:00
Joe Bryan
bb4d89af46 hoon: comments, modernizes syntax for all +*-co:co gates 2020-10-06 13:37:22 -07:00
Joe Bryan
ce9bdb8b73 hoon: refactors +r-co:co, modernizing syntax 2020-10-06 13:37:22 -07:00
Joe Bryan
ebb76c1c5a hoon: comments, modernizes syntax for all +**-co gates 2020-10-06 13:37:16 -07:00
Joe Bryan
feeb15e3ed hoon: refactors +ro-co:co, modernizing syntax 2020-10-02 00:28:29 -07:00
Joe Bryan
ebc638522d hoon: use +pow instead of handrolled loop in +ox-co:co 2020-10-01 19:15:46 -07:00
Joe Bryan
2f2af91730 hoon: use +dvr instead of +div/+mod in |co helpers 2020-10-01 19:15:04 -07:00
Joe Bryan
74d5d5df24 hoon: refactors +stir types/comments for clarity 2020-09-11 12:48:19 -07:00
Joe Bryan
d89210cceb hoon: rewrites +stir using tail-recursion and +roll 2020-09-11 12:48:14 -07:00
Fang
22c66f9ac4
Merge pull request #3304 from ohAitch/patch-3
Fix {a/$foo} in type printing to [a=%foo]
2020-08-13 10:44:36 +02:00
Anton Dyudin
06262cb701
Fix {a/$foo} in type printing to [a/%foo]
Per longtime deprecation of modeless mold syntax.
2020-08-12 12:25:46 -07:00
Fang
2e7ea5cdb3
hoon: add +lead and +late
For tacking some head or tail onto some noun, respectively.
2020-08-09 16:15:17 +02:00
Joe Bryan
e0c3ce08c8 Merge branch 'master' into na-release/next-vere
* master: (915 commits)
  vere: bumps urbit version to v0.10.8
  pill: updates all
  king: fix ames tests
  contact-store: restore /~/default contacts
  contact-hook: resubscribe on correct paths
  u3: note that u3a_rewrit* doesn't yet support south roads
  king: it was too clever of me to use stateTVar; compiler can't help
  king: fix comment about ames q behavior
  king: ames bounded q, now with logging and fifo
  serf: tweaks |pack and |mass printfs
  u3: moves u3a_compact to u3m_pack, refactors internals
  metadata: handle OTA correctly
  u3: refactors u3m_reclaim() into noun modules, works on any road
  release: urbit-os-v1.0.30
  group-store: remove scries from OTA logic
  release: urbit-os-v1.0.30
  MAINTAINERS: amend for post-fusion
  ames: add scry endpoint for forward lanes
  ames: improve scry interface
  chat, publish, contacts: fix OTA bugs
  ...
2020-07-27 11:58:53 -07:00
lukechampine
8b5097eb0f hoon: fix wtts axis for simple wings 2020-07-14 12:34:47 -04:00
Ted Blackman
7266b3f5c3 hoon: re-fix +slab; /tests: fix clay tests 2020-06-28 00:59:02 -04:00
Ted Blackman
3daecd8c1b Merge remote-tracking branch 'origin/fix-slab' into ford-fusion 2020-06-25 21:58:21 -04:00
Ted Blackman
d1b4af89fe sys: s/mure/road 2020-06-19 00:44:17 -04: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
05f0e47f68
ames: fix larval +load for fusion 2020-06-11 22:55:08 -07:00
Philip Monk
a3e15cd64c
clay: send notifications on vega 2020-06-11 19:41:22 -07:00
Philip Monk
8b78f04dd3
Merge remote-tracking branch 'origin/master' into ford-fusion 2020-06-02 21:50:20 -07:00
John Franklin
2bc6bdad8d hoon: lob/rob to kel/ker 2020-05-28 08:31:11 -05:00
John Franklin
510fb6b394 hoon: bat/net to bas/fas 2020-05-28 06:58:18 -05:00
John Franklin
250f4e3130 hoon: lac/rac to sel/ser 2020-05-28 06:14:23 -05:00
John Franklin
413c5682b6 hoon: lit/rit to pal/par 2020-05-28 05:31:50 -05:00
John Franklin
fdb03c1f7d hoon: led/ban to gal/gar 2020-05-28 04:46:13 -05:00
John Franklin
a75cd8c85c hoon: yel to doq 2020-05-28 04:01:25 -05:00
John Franklin
b9027100af hoon: toc to doq 2020-05-28 03:38:08 -05:00
John Franklin
51bd4a95f8 hoon: say to soq 2020-05-28 03:17:41 -05:00
John Franklin
6c8e3b1c92 hoon: vat to pat 2020-05-28 02:45:04 -05:00
John Franklin
bc46e26a5d hoon: pad to pam 2020-05-28 02:06:00 -05:00
John Franklin
ba51e2391c hoon: tec to tic 2020-05-28 01:44:36 -05:00
John Franklin
1d8624cd74 hoon: bus to buc 2020-05-28 00:50:45 -05:00
John Franklin
4ce25c5d9f hoon: add doq, kel, ker, pal, pam, par, pat, sel, ser, soq, tic
update "XX deprecated" comments to match:
      https://urbit.org/docs/tutorials/hoon/hoon-syntax/#reading-hoon-aloud
      restore mnemonics
2020-05-27 22:26:59 -05:00
pilfer-pandex
78729f4f87 hoon: better comment for +slab 2020-05-25 22:42:49 -04:00
pilfer-pandex
831206d4fe hoon: comment and syn mod for +slab 2020-05-25 22:35:54 -04:00
pilfer-pandex
90e8c9a2b0 hoon: make +slab respect variance using given mode and return false 2020-05-21 19:38:10 -04:00
pilfer-pandex
7e4c0036f6 hoon: make +slab respect variance (%read) and return false 2020-05-21 19:37:20 -04:00
Joe Bryan
6d3a5be259 Merge branch 'na-release/next-vere' into jt/minkleton
* na-release/next-vere: (1169 commits)
  jets: fix broken jets so ~marzod can boot.
  jets: hook up preexisting +repn jet.
  jets: add empty hashes
  jets: review comments
  Revert "Revert "u3: clear cached mugs on cell edit""
  jets: +welp and +zing
  jets: fix memory leak in +run:in
  jet: +find
  jets: +all:by and +any:by
  jets: +urn:by
  jet: +rep:by
  jet: +rep:in
  jets: +apt:in
  jets: +run:in
  jets: final cleanup
  jets: reenable +uni:by
  jets: jet +apt:by
  jets: +key:by and +wyt:by
  jets: +run:by
  jet: final cleanup
  ...
2020-05-20 14:05:17 -07:00
Joe Bryan
8f79e50640 hoon: clean up +mook comments 2020-05-20 12:07:48 -07:00
Ted Blackman
1028e9fd7c hoon,kiln: clean up boot prints; new pill 2020-05-20 04:36:16 -04:00
Joe Bryan
1c9e004fb4 hoon: switches +soft to use +mole 2020-05-14 19:12:12 -07:00
Joe Bryan
dae21cdbe7 hoon: modernizes virtualization style 2020-05-14 19:11:12 -07:00
Joe Bryan
7ad707edc5 hoon: adds +mole and +mure -- unitary virtualization 2020-05-14 18:45:33 -07:00
Joe Bryan
5141dc4de9 hoon: refactors +edit and +frag in +mink 2020-05-14 18:45:20 -07:00
Elliot Glaysher
12c556f0be Merge remote-tracking branch 'origin/release/next-vere' into eg/map-jets 2020-05-14 15:26:25 -07:00
Elliot Glaysher
19bb618d8c Merge remote-tracking branch 'origin/release/next-vere' into scot-jets 2020-05-14 14:42:53 -07:00
Joe Bryan
56418b7ad7 hoon: refactors nock %11 in +mink 2020-05-14 13:24:38 -07:00
Joe Bryan
e7d8a64a21 hoon: refactors nock %6 in +mink 2020-05-14 13:24:38 -07:00
Joe Bryan
953091a920 hoon: refactors stack-trace production in +mook 2020-05-14 13:24:38 -07:00
Joe Bryan
3fd545e40f hoon: switches %hunk to scry sample 2020-05-14 11:00:52 -07:00
Joe Bryan
27a47cc72f hoon: switches +mink %hunk from tank to (untyped) path
a %hunk is the error-stack frame for a failed ([~ ~]) scry.
this changes the frame type from tank to *, avoiding
coordination overhead between +mink and the interpreter.
2020-05-14 00:09:52 -07:00
Elliot Glaysher
34c1f416f4 jets: +welp and +zing 2020-05-13 11:18:37 -07:00
Elliot Glaysher
3b645370e2 jets: +urn:by 2020-05-12 14:03:58 -07:00
Elliot Glaysher
94c66ec433 jets: +apt:in 2020-05-11 16:31:46 -07:00
Elliot Glaysher
8791af0333 jets: jet +apt:by
As a lark, I put in a debugging printf on this function. It spammed
the console. It's a highly recursive function so jet it.
2020-05-08 14:48:27 -07:00
Elliot Glaysher
3f293cae47 jets: +key:by and +wyt:by 2020-05-08 13:03:25 -07:00
Elliot Glaysher
7149e591ef jets: +run:by 2020-05-08 13:03:20 -07:00
Elliot Glaysher
a05360f97a jets: hook %ob, then %fein/%fynd 2020-05-06 15:13:59 -07:00
Elliot Glaysher
fa4dbfb9f6 jets: remove +ob and add hooks for +fein and +fynd
I'm not going to be able to debug the memory leaks in the +ob core
jets, so remove those new jets and hooks to +fein and +fynd so they
can be called from the @p parsing jets. This moves +fein adn +fynd
to the toplevel because there appear to be issues with hooks
referencing things that aren't in the directly jetted core.
2020-05-04 15:49:20 -07:00
Elliot Glaysher
bf1f08e698 jets: Rebuild pills, the enabled jets here now don't leak memory. 2020-05-04 12:59:41 -07:00
Elliot Glaysher
b947b569bb jets: implement partial %da parser.
This parses dates of the form '~2020.4.29', but not ones with time.
This uses a hook to call back to +year, since jetting that would be
a bit much.
2020-04-29 17:18:27 -07:00
Elliot Glaysher
716cd2013f jets: Start jetting +ob.
Since the most used parser in +slaw is the @p one, that's up next.
But first, we need to jet parts of +ob, which gets called through
+fed:ag.
2020-04-27 16:25:30 -07:00
Ted Blackman
7b19580503 fix +sloe for %hint'ed cores 2020-04-18 02:11:34 -04:00
Ted Blackman
2dd78760f3 fix +sloe for %hint'ed cores 2020-04-18 02:09:51 -04:00
Jared Tobin
cc16e905af
Merge branch 'yosoyubik/apt-dup' (#2417)
* yosoyubik/apt-dup:
  hoon: +apt:by check for duplicate keys
2020-04-13 17:43:41 +04:00
Jared Tobin
80ab15e7b6
Merge branch 'pkova/master' (#2423)
* pkova/master:
  hoon: fix ket not working past tistar
2020-03-17 16:56:39 +04:00
Jared Tobin
c0cc4a1db8
Revert "Merge branch 'liam-fitzgerald/hoon-spot' (#2247)"
This reverts commit 046506f9d4, reversing
changes made to 6ef08962ef.

I'm reverting this as we're moving to a new branch/release model in
which breaching changes (as this one is) will live on a long-running
'next' branch, rather than alongside non-breaching changes in master.

This revert should itself be reverted on the 'next' branch.
2020-03-16 10:51:00 +04:00
yosoyubik
b8d5227c21 hoon: +apt:by check for duplicate keys
Fixes https://github.com/urbit/urbit/issues/2413
2020-03-13 05:19:10 +01:00
pkova
0d079b537c hoon: fix ket not working past tistar 2020-03-13 00:37:33 +02:00
Jared Tobin
a1d489d977
Merge branch 'os1-rc' (#2365)
* origin/os1-rc: (439 commits)
  pills: updated brass and solid
  chat: pull room contacts from associated group
  chat: spell 'permanent' correctly
  eyre: remove padding from 'access' input
  chat: only delete metadata for a chat if you created it
  chat: settings inputs add borders on focus
  chat: remove console.log from metadataAction
  chat: style fixes during review, use metadata-hook
  chat: edit description, color settings
  chat: add update-metadata to metadata reducer
  chat: revise api.js to match data structures
  metadata-json: add json to action parsers
  chat: construct settings page for metadata
  chat: correct bottom border on join links
  chat: copy shortcodes
  chat: linkify unmanaged chats
  metadata-hook: support group members other than host creating shared resources
  contacts: add bg-gray0 to root page
  chat + contact views: updated for style and to assert that group-path must be equal to app-path if there are ships in the members set
  contacts: changed color + copy of "add to group" button
  ...
2020-03-04 15:48:05 +04:00
Liam Fitzgerald
8c6ae6f917 Merge branch 'master' into hoon-spot 2020-02-26 09:29:54 +10:00
Liam Fitzgerald
df51577022 hoon: toggle spot typehints on flag
Hides %spot typehints behind a compiler flag. Adds ++mind:ut to
expose this flag conveniently.
2020-02-26 08:07:02 +10:00
Paul Driver
0671278a80 hoon: use constant hint pass-thru for +mink
Instead of trying to hint computations (buying us %memo, etc), we
simply pass through the nouns (with constant [1 noun] formulas)
to the underlying runtime.  This avoids spuriously product-hinting
the +tone results of +mink as the previous version did.
2020-02-25 13:32:40 -08:00
Paul Driver
44402bb2ec hoon: remove unused +mush
+mush was moved to be a helper of +mink, its only caller, but I
neglected to remove the original code.
2020-02-25 13:30:54 -08:00
Paul Driver
a486688481
hoon: style issue in +mook 2020-02-20 19:26:26 +04:00
Paul Driver
9c5cbfcb19
hoon: expunge temporary names (mino, tono, etc) 2020-02-20 18:49:11 +04:00
Paul Driver
d6b28db521
hoon, vere: copy mino, etc. back to old names 2020-02-20 18:32:29 +04:00
Paul Driver
4d71c1150c
hoon, vere: move all mock and mook callers to moku/moko. 2020-02-20 18:21:35 +04:00
Isaac Visintainer
00a9eb9eab Merge branch 'master' into os1-rc 2020-02-19 16:04:21 -08:00
Fang
fa138ef216
hoon: clarify comments for +rep:in and +rep:by
"Replace" suggests this function either produces an updated set/map when done,
like +snap, or changes all values in-place, like +turn. In truth, it's more
similar to +roll, which does reduction/accumulation.

("Reduce" specifically was chosen because it maintains the mnemonic relation to
the arm name.)
2020-02-13 23:56:44 +01:00
Paul Driver
b3558dee29
hoon: moko does not crash
When molds were changed to crash on bad input, mook was not updated.
It relied on the old behavior of bunting on bad input. +moko
(the replacement +mook) simply doesn't include stack items that don't
have the proper type (in constrast to +mook, which currently crashes
and used to leave a "blank"/bunted stack item for improperly typed
values).
2020-02-13 19:44:15 +04:00
Paul Driver
5093d420b3
hoon: add staging redirections for mook, mock. 2020-02-13 19:21:00 +04:00
Paul Driver
50aaa27ed1
hoon: add +mino, a new virtual nock interpreter
+mink, the current virtual nock interpreter, has a couple of problems.
 1. it propagates blocks as a list of paths, which is inconsistent with
    the way the jet behaves (only a single path is ever blocked on, with
    exception semantics).
 2. +mush was not updated after the change to molds to crash instead of
    bunting. it crashes when not given the right kind of data, which is
    inconsistent with the intended semantics of ++mink.
 3. it "eats" hints, causing (for example) slogs to disappear when running
    without a mink jet.
 4. the naming/style was typically cryptic. since +mink will never really
    be run, one could argue that its primary purpose is to be read.

+mino (which will be renamed to +mink after some staging) has had its
return type (+tono, to be renamed +tone) modified in the block case so
that it only blocks on one path, has a corrected +mush, carefully
"passes through" all hints to the underlying interpreter, and has more
meaningful names, with the intention of improving readability.

A generator (gen/mino.hoon) is also included in this commit; it contains
tests that were used during the development of +mino. It should be removed
before integration, and is included for posterity. The stack trace semantics
are expected to change in the near future (since they are dependent on jets
faithfully preserving the stack pushes of the pure nock, an onerous burden).
They are, however, tested in gen/mino.hoon, which makes it unsuitable as a
long-term test.
2020-02-13 19:19:52 +04:00
Liam Fitzgerald
5449a0e05b hoon: support %spot hint in xray 2020-02-10 14:20:46 +10:00
Logan Allen
a025a7fcb0 hoon: added +repn 2020-02-07 15:59:53 -08:00
Liam Fitzgerald
5cd189f83c hoon: add %spot typehint
Adds a `[%spot *]` type to the `note` type annotation definition.
These are added when the %dbug hoon is encountered. Done to enable
jump to defintion in the language-server.
2020-02-07 17:57:54 +10:00
Fang
ea7c1db61c
various: use =/ in place of =+ ^-
Also faceless =; where appropriate.
2019-12-21 14:29:14 -03:30
Fang
21ac0e513b
hoon: parse =; without face
Allows for =;([a=@ b=@] ...) and similar constructions.

Also affects =/ and =^.
2019-12-21 14:20:11 -03:30
Elliot Glaysher
44f6a90a4c
hoon: fix typo in +put:in
This fixes +put:in so that it works without the correct jet.  There's a
mismatch where the hoon code is wrong and the jet is correct, so that
when we try to run this on alternate interpreters which may not have the
+in jets, things won't work.
2019-12-13 21:00:21 +08:00
Philip Monk
e6c809058c
Revert "Revert "hoon: zpgl -> zpld for consistency""
This reverts commit 195d0c2fe3.
2019-12-02 20:47:47 -08:00
Philip Monk
195d0c2fe3
Revert "hoon: zpgl -> zpld for consistency"
This reverts commit 64e8318657.

This doesn't apply well to the testnet, so reverting until later.
2019-12-02 02:22:16 -08:00
Philip Monk
64e8318657
hoon: zpgl -> zpld for consistency 2019-12-02 01:36:00 -08:00
Philip Monk
689b829a1d
Merge remote-tracking branch 'origin/master' into rc 2019-11-30 21:54:36 -08:00
Eric Fode
03e1897b00 hoon: add +into and +snap
+into inserts an item into a list at the provided index; +snap replaces
an item at the provided index.

tests: added tests for stdlib list
2019-11-26 13:39:15 -08: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
pkova
8836a3d2fc hoon: refactor royl float parsers to separate arms
Immediately useful for implemeting json `@rd` parsing, which is basically
`++royl-rd` minus pfix sig. The increased separation also allows for running
stuff like `(rash '3.22e-47' royl-rn:so)` from the dojo.
2019-11-19 00:56:06 +02:00
Philip Monk
e43036d748
hoon: extend gol check through cores
This extends `gol` "backward-inference" typechecking to thread through
cores.  Recall that `gol` is used exclusively for receiving more
specific error messages; these changes should have no effect on programs
which already compile successfully.

Before, this would type-fail on the second `|%`.

```
!:
^+  ^?
    |%
    ++  foo  *@ud
    --
|%
++  foo
  ?:  =(1 1)
    2
  %foo
--
```

With these changes, it gives a mint-nice at `%foo`.  It will also give
you explicit errors if you have the wrong number/names of arms,
including which arms it expects.

This is becoming much more important with static gall, since it's the
first time we've used core subtyping so extensively and in userspace.
2019-11-09 18:25:42 +08:00
Philip Monk
7c4316fce4
mall: refactor gift/sign/task types
+on-agent now takes a +sign:agent:mall, which doesn't include spurious
options.  Similarly, +task:agent:mall is smaller.
2019-11-08 17:35:24 -08:00