Commit Graph

291 Commits

Author SHA1 Message Date
Philip Monk
4d0e77a6b2
dojo: add a better function printer
It's useful to know what a function takes and produces, so this changes the autocomplete type prettyprinter to emphasize those.  This also gives a nice syntax for molds.  Examples:

```
-----
add  {a/@ b/@} -> @
~zod:dojo> add
-----
term  * -> @tas
~zod:dojo> term
-----
sign-transaction  {tx/{nonce/@ud gas-price/@ud gas/@ud to/@ux value/@ud data/@ux chain-id/@ux} pk/@} -> @ux
~zod:dojo> sign-transaction🔑ethereum
-----
wind  {a/(* -> *) b/(* -> *)} -> * -> ?({$give p/*} {$pass p// q/*} {$slip p/*})
~zod:dojo> wind
```
2019-10-31 13:56:20 -07:00
Fang
848805e007
eth: move eth-watcher's request-rpc into ethio lib
Once this is more fully featured, /app/claz could be refactored with it.
2019-10-31 15:54:56 +01:00
Philip Monk
76b917f426
dojo: add tab completion
This is initial support for type-aware tab completion.  When you hit tab, it tries to complete the word you're in the middle of using a face or arm in the subject at that point in the code.  It also shows all possible matches and their associated types.  It's nearly instantaneous.  Notes:

- It advances to the longest common prefix, so if you hit tab on `ab` and the only possible results are `abcde` and `abcdz`, then it'll write `abcd` and print both out (with their types).

- If there are fewer than ten matches, it prints the type along with the face.  Printing types is too slow to use all the time, but with 10 it's essentially instantaneous.

- The match closest in the subject to you (i.e. smallest axis number) is displayed lowest (closest to your focus).

Examples below, where `<TAB>` represents me hitting tab while my cursor is at that position (the line with the `<TAB>` is not preserved in the actual output).

```
~zod:dojo> eth<TAB>
-----
ethereum        #t/<11.qcl {<3.ltb 27.ipf 7.ecf 36.uek 92.bjk 247.ows 51.mvt 126.xjf 41.mac 1.ane $141> <21.yeb 27.ipf 7.ecf 36.uek 92.bjk 247.ows 51.mvt 126.xjf 41.mac 1.ane $141>}>
ethereum-types  #t/<3.ltb 27.ipf 7.ecf 36.uek 92.bjk 247.ows 51.mvt 126.xjf 41.mac 1.ane $141>
~zod:dojo> ethereum
~zod:dojo> |=  zong=@ud  z<TAB>
-----
zing  #t/<1.dqs {* <126.xjf 41.mac 1.ane $141>}>
zap   #t/<1.iot {tub/{p/{p/@ud q/@ud} q/""} <1.rff {daf/@t <247.ows 51.mvt 126.xjf 41.mac 1.ane $141>}>}>
zuse  #t/$309
zong  #t/@ud
~zod:dojo> |=  zong=@ud  zo<TAB>
-----
zong  #t/@ud
~zod:dojo> |=  zong=@ud  zong
~zod:dojo> <TAB>
hoon-version
trel
quip
pole
unit
qual
lone
... about 600 more lines ...
unity
html
zuse
eny
now
our
~zod:dojo>
```

Functionally, this is in a state where I'd be comfortable shipping it.  It doesn't interfere with anything if you don't press tab, and it's perfectly OTA-able.  I do think its output is a little verbose, but that can be tuned over time as people try it and determine what feels good in practice.

Additional notes:

- There are plenty of similar systems for other languages, but my most direct inspiration is Idris's editor tools.  This is implemented for the dojo, but I actually want it in my editor, which is why the meat is all defind in a library.  I've only tested on dojo one-liners, so I don't know the performance on large blocks of code.

- The default type printer isn't great for this use case.  In particular,
	- Cores should not print anything about their context
  - The `#t/` should go away
  - If it looks like a gate, we should print its return value
  - Maybe special handling for molds, but if the above is done, then for example `bone` is  `* -> @ud`.

- The worst part about our wing ordering is that it really screws up tab completion.  You want to do `point.owner-address` instead of `owner-address.point` because that lets you type `point.ow<TAB>`.  I weakly prefer reading it how we do it now, but it's really not great.  You could do an (dojo-specific?) alternate syntax of `point;owner-address`; this is a simple transformation.

- Regardless of the above, this should handle the case where we're in the middle of defining a wing; it doesn't right now.

- When a variable is shadowed, we show both of them.  We should probably show the shadowed one with a `^`.

- We probably shouldn't print out hundreds of results.  Maybe just the closest 50 with ellipses.

- This gets you any face in your subject, regardless of whether its type is reasonable.  We could limit that some by copying the `gol` logic in mint, so that if the pseudo-backward-inference engine happens to know what type it should be, you can filter the tab results according to if they nest in that type.  This would be "strongly type-aware".
2019-10-30 23:19:25 -07:00
Joe Bryan
aba3ea8055 dns: sends notifications directly to %dill (and adds tapp support) 2019-10-30 15:14:54 -07:00
Logan Allen
c660a79332 apps: remove %hall and %talk 2019-10-30 13:52:19 -07:00
Ted Blackman
21dabb8895 big merge, including some Alef and Zuse work 2019-10-30 16:12:57 -04:00
Fang
522f598770
drum: start eth-watcher on boot
Alongside the azimuth-tracker that depends on it.
2019-10-30 20:18:56 +01:00
Fang
7bc17357ba
eth: remove old eth-watcher files
These were deprecated in favor of azimuth-tracker in #1320.

(Azimuth-tracker, however, isn't a general-purpose Ethereum log watcher
tool. Commits to transform it into a more broadly useful tool are
forthcoming.)
2019-10-25 13:08:27 +02:00
Philip Monk
5d5936bbb7
custody: move to separate repo 2019-10-24 16:03:46 -07:00
Philip Monk
87f689f443
custody: add more types 2019-10-21 15:41:28 -07:00
Joe Bryan
fa01bfb0a5 hoon: moves new pretty-printer back into userspace 2019-10-17 17:52:45 -07:00
Ted Blackman
625f855f24 master without pills, hopefully 2019-10-14 16:02:27 -04:00
Logan Allen
b12e305c9c apps: added permission hook and chat-view %join action 2019-10-11 14:09:30 -07:00
Philip Monk
c668a24df2
custody: get data from chain 2019-10-10 18:26:18 -07:00
Philip Monk
adba48241a
spider: convert azimuth-tracker to imp 2019-10-10 15:30:24 -07:00
Jared Tobin
77af7aff72
Merge branch 'claz-invites' (#1809)
* claz-invites:
  claz: Implement batch invites
  keygen: Add ownership-from-ticket function

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-10-10 10:47:59 +04:00
Fang
e6775d0907
keygen: Add ownership-from-ticket function
Many use cases care only for the ownership wallet. Using a function like
this, that derives exclusively that, saves computation time.
2019-10-09 21:19:04 +02:00
Philip Monk
754fd61e1b
custody: initial commit 2019-10-09 10:32:27 -07:00
Fang
9d63a3e9c7
drum: Ensure dojo prompt on-boot
The previous method for doing this relied on "dojo" being first when
sorting alphabetically, which is not the case anymore.
2019-10-09 18:02:03 +02:00
Fang
b7f1e9c578
Merge branch 'odyssey-wip' into odyssey-chat-cli 2019-10-08 23:32:57 +02:00
Fang
816535c311
drum: Boot with %chat-cli, without %hall & %talk
Also refactors the surrounding code in +deft-apes.
2019-10-08 23:19:05 +02:00
Fang
24859907aa
chat-cli: Cosmetic improvements
Better variable naming. Trailing newline.
2019-10-08 23:00:46 +02:00
Fang
e567de9c18
chat: Move eval logic out of /lib/chat-json
This allows us to always include the bowl when evaluating a code letter.
2019-10-08 22:44:20 +02:00
Fang
9532857ef5
chat: Move eval logic into lib 2019-10-08 22:06:28 +02:00
Logan Allen
6ab2879b81 chat: fixed eval function to disable scry 2019-10-08 12:13:29 -07:00
Logan Allen
fbbb3830b2 chat: style fixes, removed some redirect bugs from chat 2019-10-08 10:11:18 -07:00
Logan Allen
79903ff9f5 chat: changed wire format and quitting subscription properly on ban 2019-10-07 17:35:48 -07:00
Logan Allen
39a5017254 chat: added old @ messages, now called %me messages 2019-10-03 13:33:07 -07:00
Logan Allen
693b6f2b81 hood: added chat-store, hook, and view to startup 2019-10-02 18:30:50 -07:00
Logan Allen
0f5eea480d chat: added new JS files, deleted old chat.hoon 2019-10-02 18:30:41 -07:00
Philip Monk
aaf21f1f99
ph: port all azimuth tests to imps 2019-10-01 20:25:19 -07:00
Philip Monk
01c120e8de
ph: port azimuth handlers to imp 2019-10-01 19:50:25 -07:00
Philip Monk
45b19807f5
spider, ph: convert all fake tests to imps 2019-10-01 15:06:12 -07:00
Logan Allen
f9377536fb app: Added chat store, hook, marks, and view. 2019-10-01 10:18:36 -07:00
Philip Monk
9fc28a9538
mall: populate wex.bowl with outgoing subscriptions
fixes #1466
2019-09-30 20:53:12 -07:00
Logan Allen
ee92862785 hood: start up groups and permissions 2019-09-30 16:43:09 -07:00
Logan Allen
4b01718d76 apps: added group/permission stores, hooks, marks 2019-09-30 14:46:07 -07:00
Logan Allen
166465af59
zuse: added path, tank, string utils to en/dejs 2019-09-30 01:31:46 +04:00
Jared Tobin
5c99f33271
Merge branch 'ted/verb' (#1754)
* ted/verb:
  update pill
  hood: |knob {tag} {level} to set dill verbosity
  dill: set verbosity by error tag
2019-09-29 21:09:05 +04:00
Ted Blackman
0bf9e98d08
hood: |knob {tag} {level} to set dill verbosity 2019-09-29 20:45:10 +04:00
Philip Monk
9c9115a7e0
spider, ph: convert ph to imps 2019-09-28 21:44:31 -07:00
Philip Monk
b79dead5f8
spider: convert example-fetch to imp 2019-09-27 10:40:22 -07:00
Jared Tobin
ba6f60cc66
Merge branch 'la-remove-hall-hood' (#1771)
* la-remove-hall-hood:
  hood: remove hall dependency.

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-09-27 15:41:23 +04:00
Logan Allen
707a667d47 hood: remove hall dependency. 2019-09-26 15:03:13 -07:00
Philip Monk
814d97fafd
spider: add +main-loop 2019-09-25 22:43:14 -07:00
Philip Monk
45451aeafa
spider: initial commit 2019-09-25 21:12:58 -07:00
Philip Monk
e6f5b0d3fd
mall: fix %child-sync ph test 2019-09-25 13:19:09 -07:00
Philip Monk
34ab4c4e77
mall: convert aqua vane handlers to mall 2019-09-24 19:04:27 -07:00
Philip Monk
a4dcad7d46
gall: unsubscribe after breach
fixes #1431
2019-09-24 15:00:16 -07:00
Philip Monk
30f74368fb
mall: convert hall to mall 2019-09-23 20:46:59 -07:00
Philip Monk
fc9f17ae23
mall: convert talk to mall
also change !< to crash on failure
2019-09-23 15:44:48 -07:00
Logan Allen
1b87eb2c3c
chat: message processing time down to 60ms 2019-09-20 11:43:30 -02:30
Philip Monk
eeac28bdc6
mall, hood: deduplicate types in libs 2019-09-13 13:34:30 -07:00
Philip Monk
d7671efec0
mall, hood: avoid referencing library internals 2019-09-13 11:54:07 -07:00
Philip Monk
839a822f71
mall: convert hood/dojo to refactored form 2019-09-12 15:01:55 -07:00
Philip Monk
fbf56e3033
mall: refactor and rename
remove bones, give agent arms long names, remove metavase use, general
cleanup
2019-09-11 21:02:49 -07:00
Philip Monk
abf4bc39cd
wip 2019-09-10 13:12:38 -07:00
Philip Monk
1ca4c72aa5
mall: make boot 2019-09-09 20:04:38 -07:00
Joe Bryan
f5263e0395
talk, chat: disables scry in hoon eval
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.
2019-09-08 19:45:20 -02:30
Philip Monk
7f5ac366c9
mall: convert write to mall 2019-09-05 21:36:57 -07:00
Philip Monk
0f6bd70aa3
mall: convert kiln to mall 2019-09-05 21:24:20 -07:00
Philip Monk
2c5a478a84
mall: convert drum to mall 2019-09-05 20:01:31 -07:00
Philip Monk
84c7b442e9
mall: convert helm to mall 2019-09-05 18:46:55 -07:00
Philip Monk
274e8aad90
mall: hood framework 2019-09-04 15:46:47 -07:00
Philip Monk
bc1ba10a11
mall: compiles and runs app, but type hole 2019-09-04 12:49:16 -07:00
Jared Tobin
0bd06fe210
Merge branch 'jt-gall-refactor' (#1668)
* 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
  ...
2019-08-29 19:05:25 -02:30
Ted Blackman
0fc1675928 Merge branch 'master' into alef-testnet 2019-08-27 14:06:09 -07:00
Jared Tobin
fa64a8092a
Merge branch 'philip/autocommit' (#1662)
* philip/autocommit:
  kiln: add autocommit
2019-08-27 09:18:36 -02:30
Philip Monk
a25b082e04
dill, helm: add lite boot option with -l 2019-08-26 11:04:24 -07:00
Philip Monk
4958dc506d
kiln: add autocommit 2019-08-25 02:11:02 -07:00
Philip Monk
ec9eedd50f
ph: clean up card structures 2019-08-22 15:33:52 -07:00
Jared Tobin
5798a50c40
helm, drum: remove deprecated %load
This was an artifact of %gall's old 'culm' type, which was removed in
1fe4ff1605 (2019-04-12).
2019-08-22 12:33:19 -02:30
Ted Blackman
c1708fb9f2 Merge remote-tracking branch 'origin/philip/jael-fix' into alef-testnet 2019-08-20 17:37:26 -07:00
Philip Monk
e612e6d063
oops 2019-08-20 17:34:59 -07:00
Ted Blackman
0686429f95 Merge remote-tracking branch 'origin/philip/jael-fix' into alef-testnet 2019-08-20 16:52:04 -07:00
Philip Monk
2c2ef195a7
add sponsorship chain keys to %dawn event 2019-08-20 16:41:50 -07:00
Ted Blackman
fc9104cb47 Merge branch 'master' into alef-testnet (might not work) 2019-08-19 14:43:39 -07:00
Ted Blackman
f28c011ed4 TEMP turn off extraneous apps on boot for dev 2019-08-13 17:55:10 -07:00
Isaac Visintainer
2212323b4d added launch, chat, publish, clock, and weather as default apps for comets 2019-08-13 11:43:18 -07:00
Jared Tobin
14b6816300
Merge pull request #1606 from urbit/modulo-lib-surs
Make modulo follow lib-sur conventions
2019-08-12 19:52:51 -07:00
Philip Monk
6349fc85ee
add +scry to lib/stdio 2019-08-12 13:50:14 -07:00
Fang
a59149bc23
Move :publish app state type into app itself 2019-08-11 12:21:39 -07:00
Fang
2726eff1d4
Move :chat types into /sur 2019-08-11 11:59:59 -07:00
Ted Blackman
370213bb65 add gall %wash to clear caches 2019-08-10 14:24:31 -07:00
Ted Blackman
65bea91f9d start %ping on startup; fix printing bugs 2019-08-10 11:58:08 -07:00
Fang
cac4b2b70f
Move :launch types into /sur 2019-08-09 14:54:52 -07:00
Jared Tobin
fc559b7d33
Merge pull request #1399 from urbit/chat-message-types
Message type support in Chat
2019-08-09 06:48:21 -02:30
Fang
05950770f4
Merge branch 'master' into chat-message-types 2019-08-08 15:01:00 -07:00
Philip Monk
bd36e61b22
Merge remote-tracking branch 'origin/master' into philip/kale 2019-08-08 14:51:14 -07:00
Philip Monk
5800c66647
longer keys 2019-08-08 11:52:44 -07:00
Joe Bryan
b62b63a1f0 Merge branch 'generate-release-brass' into stage-solid-redux
* generate-release-brass:
  updates lib/pill to support all relevant userspace marks
2019-08-08 11:47:58 -07:00
Ted Blackman
ea2a3b0f67 Merge branch 'philip/kale' into alef-testnet and fix printing 2019-08-07 21:57:04 -07:00
Philip Monk
c453450d9c
add |moon, |moon-cycle-keys, and |moon-breach 2019-08-07 17:59:01 -07:00
Philip Monk
eed4c6a236
add rekey to jael 2019-08-07 15:15:25 -07:00
Philip Monk
6eb4d9389d
remove snapshot scaffolding 2019-08-07 13:54:47 -07:00
Philip Monk
900e7fc12c
review fixes 2019-08-07 13:44:41 -07:00
Philip Monk
6212422015
kale -> jael 2019-08-06 15:42:37 -07:00
Philip Monk
08e4990fea
remove unused azimuth logs from test 2019-08-06 00:17:26 -07:00
Philip Monk
38fb4fb5a3
remove more printfs 2019-08-05 23:47:16 -07:00
Philip Monk
f4d4d7dfe8
fix full moon-az test 2019-08-05 23:11:40 -07:00
Ted Blackman
626f7c9a75 Merge branch 'philip/kale' into alef-testnet 2019-08-05 22:06:53 -07:00
Philip Monk
0adc83ecf6
get pills from aqua 2019-08-05 17:44:52 -07:00
Philip Monk
03da8b40f0
add moon test 2019-08-02 15:19:40 -07:00
Ted Blackman
1d62f1eecc Merge branch 'philip/kale' into alef-testnet 2019-08-01 15:56:23 -07:00
Philip Monk
9b798a8722
reenable apps 2019-08-01 11:43:33 -07:00
Philip Monk
54a3031397
add keys to sponsor in preboot validation 2019-08-01 11:14:36 -07:00
Fang
3e028fde21
Render tanks in hall json at safer width 2019-07-31 13:40:30 +02:00
Fang
39cf0388be
Work around weird zuse shadowing bug
`..zuse` gave `%309`, which is equivalent to `zuse`. Somehow, `..^zuse`
gives the correct result.
2019-07-31 13:39:31 +02:00
Philip Monk
583da25e50
add test for sudden breaches 2019-07-30 16:53:40 -07:00
Philip Monk
578d14bfea
implement kale hierarchy 2019-07-30 16:26:47 -07:00
Philip Monk
e39a2c0467
all breach tests pass 2019-07-29 15:09:08 -07:00
Ted Blackman
14dba1d4ac all tests pass 2019-07-29 04:05:52 -07:00
Ted Blackman
9670408a06 Merge branch 'master' into alef-breach 2019-07-29 00:27:58 -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
577eed93b8
migrate ames to kale 2019-07-26 20:44:43 -07:00
Ted Blackman
6c22beea8c Merge branch 'master' into alef-breach 2019-07-22 11:46:40 -07:00
Philip Monk
93a4160a35
Merge remote-tracking branch 'origin/v0.8.0.rc' into philip/kale 2019-07-22 10:39:15 -07:00
Joe Bryan
43a8dc5d7e
Merge pull request #1363 from urbit/improved-dns-debugging
improved debug-ability the dns apps
2019-07-19 16:45:32 -07:00
Joe Bryan
80dfced914 updates lib/pill to support all relevant userspace marks 2019-07-19 16:42:00 -07:00
Joe Bryan
ab5f462d73 updates tapp to prevent loss of state on prep 2019-07-19 15:54:51 -07:00
Logan Allen
027ff9ff14 Fixed drum by removing timer 2019-07-19 10:49:38 -07:00
Philip Monk
994472ece1
azimuth-tracker sends to kale 2019-07-18 17:08:01 -07:00
Ted Blackman
793fc5c213 all vanes compile, at least individually 2019-07-15 14:23:34 -07:00
Logan Allen
96a26e9f62 Updated timer and chat app, server and eyre with latest 2019-07-12 11:04:47 -07:00
Isaac Visintainer
a60d8cdbfc changed name of app to be consistent 2019-07-11 15:07:05 -07:00
Fang
12b8134c33
Merge branch 'v0.8.0rc' into gut-by 2019-07-10 01:49:07 +02:00
Logan Allen
ebd61dcc4f Removed lib/prey 2019-07-05 16:42:50 -07:00
Logan Allen
1c3764ba03 Remove quri mark, map-to-json lib, mar/hall/speeches, lib/httr-to-json, app/time, and app/server 2019-07-05 16:29:59 -07:00
Logan Allen
5e48b4ce82 Remove ask, rss-xml, x-urb, x-urb-elem 2019-07-05 15:15:15 -07:00
Logan Allen
f43a5e1b5d Removed old references to setting up fora, streams, collection, web folder, landscape, and plan 2019-07-05 15:05:09 -07:00
Logan Allen
4c7634ec57 Merge branch 'rc-modulo' of github.com:urbit/urbit into rc-modulo 2019-07-05 13:55:09 -07:00
Logan Allen
da118c90de Updated all apps to use launch-action mark 2019-07-05 12:59:43 -07:00
Joe Bryan
27da0d61d8 renames +http-client interface core to +iris 2019-07-03 23:52:22 -07:00
Joe Bryan
e0f17b0ff1 moves +http-server interface core into +eyre 2019-07-03 23:29:13 -07:00
Joe Bryan
62522f87c1 renames %lient to %iris 2019-07-03 17:08:23 -07:00
Joe Bryan
f31b12c964 renames %rver to %eyre 2019-07-03 16:02:49 -07:00
Logan Allen
8485b0c889 Updated all apps to use launch-action mark 2019-07-01 16:19:56 -07:00
Fang
eb6c8a45ce
Replace (fall (~(get by calls with (~(gut by 2019-06-30 18:13:34 +02: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