Commit Graph

131 Commits

Author SHA1 Message Date
Ted Blackman
71f634c1ba dojo: %home->%base 2021-07-14 01:53:04 +03:00
ixv
3a14176934 herb: add cancel command 2021-05-29 12:53:23 -07:00
Philip Monk
63ba2823dd
Merge remote-tracking branch 'origin/ted/clay-bunt' into release/next-sys 2021-05-18 07:38:52 -10:00
Ted Blackman
b55417a1c3 clay: remove +bunt from marks 2021-03-05 16:53:35 -05:00
raghu
c98e1df819 dojo: print thread results as tang if they are tang 2021-03-04 16:57:41 -05:00
Joe Bryan
205c9a8620 zuse: removes en/de-beam (now in arvo) 2020-12-06 03:33:43 -08:00
Joe Bryan
0f0c2a6ffb zuse: moves |dawn to lib/vere, rewrites +ivory 2020-12-05 00:51:49 -08:00
Joe Bryan
bbaeafe751
Merge pull request #4036 from urbit/m/listless-generators
various: start threads with unit of tuple args
2020-12-04 00:21:00 -08:00
Joe Bryan
4a825df15b Merge branch 'na-release/candidate' into jb/atom-gates
* na-release/candidate:
  kh: use Word8 for Tint true color values
  arvo: remove unused app files, libraries, and imports
  webterm: improve line-spacing in certain browsers
  vere: avoid +scot call for color value rendering
  kh: support 24-bit %klr colors
  vere: support 24-bit %klr colors
  webterm: update mar and js to support 24-bit color
  tests: fix ames tests
  pill: update ivory pill
  dojo: correct mark conversion scry path
  pill: solid
  aqua/ph: fix comet test
  ames: flat packet format
  hoon, dill: Add 24-bit true color
2020-12-03 14:17:23 -08:00
Joe Bryan
b5ec0c30f0 hoon: renames +new-end, +new-lsh, +new-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
4f9cba2baf hoon: adds +new-end, switches all +end call sites 2020-12-02 00:21:12 -08:00
fang
03fd56e8cc
various: start threads with unit of tuple args
Instead of a list of arguments, with trailing ~.
2020-12-01 23:38:02 +01:00
fang
9545e8727e
dojo: correct mark conversion scry path
Fixes an instance that hadn't accounted for #3994 yet.
2020-12-01 16:55:19 +01: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
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
44fb0cc19d
various: move away from face/type syntax
In favor of face=type.
2020-11-26 17:38:00 +01:00
fang
a6e7af38d5
various: move away from $constant type syntax 2020-11-26 17:31:06 +01:00
fang
27d6fc7597
zuse, clay, various: unflop the spur in beams
Unflops the spur in +en-beam, +de-beam, and everything that calls either
of those, or works with the consequences of their output.

This includes clay's interface for mounting and unmounting, which now
no longer expects the arguments to contain an old-style spur.
2020-11-24 15:44:25 +01:00
Joe Bryan
1c83ad35e9 Merge branch 'release/next-vere' into na-release/runes
* release/next-vere:
  build: update gcloud to use non-deprecated action
  vere: manage memory properly in _fore_import
  build: update GoogleCloudPlatform/github-actions/setup-gcloud to 0.2.0
  king: try undoing warnings in eventlog-lmdb
  king: diswarn tests
  king: more warnery
  king: fix warnings; more consistent warn policy
  vere: add -i and -o options for import and export
  herb/lens: add utilites for import/export
  vere: refactors pier initialization to fix -X
  king: fix test (daaad)
  king: fix warnings in Tree (thanks dad)
  king: this is a holdup!
2020-11-20 00:00:27 -08:00
John Franklin
11f8ba23d7 hoon: bscl to bccl, etc 2020-11-17 01:05:17 -06:00
Isaac Visintainer
41ce22d6ae herb/lens: add utilites for import/export 2020-11-16 15:57:35 -08:00
John Franklin
756c94aeb6 hoon: update glyph names (continued) 2020-11-14 23:08:52 -06:00
Philip Monk
fc15f0d735
Merge branch 'pr' into HEAD 2020-10-22 20:47:53 -07:00
pkova
d576c9479f dojo: parse %as in ++parse-value instead of ++parse-build
Allows things like `+hello &helm-hi 'hi'`. Fixes #1476.
2020-09-25 14:11:40 +03:00
Anton Dyudin
46af34cfe8
dojo: fix dy-show-type-noun indent 2020-08-25 13:45:32 -07:00
Anton Dyudin
4c45ffc7f0 dojo: reintroduce "?? expr" raw-ish type printer 2020-08-14 00:27:31 +00:00
Anton Dyudin
dda386472c dojo ???: handle threads 2020-08-14 00:27:31 +00:00
Anton Dyudin
d372da3829 dojo: reintroduce "??? expr" parse debug mode
NOTE does a somewhat quetionable type thing, original version didn't compile
2020-08-14 00:27:31 +00:00
Philip Monk
bc7f139725
dojo: add tags to identify errors
Particularly useful in cases where there is no trace, for example if you
simply execute `!!` or `_!! 5`.
2020-07-07 17:25:44 -07:00
Ted Blackman
68802ea041 dojo: print generator type errors 2020-06-25 15:38:15 -04:00
Philip Monk
7044f1fae6
dojo: too many nouns 2020-06-24 21:24:58 -07:00
Ted Blackman
652dc70304 clay,dojo: clean up stack traces 2020-06-20 03:46:22 -04:00
Philip Monk
8b78f04dd3
Merge remote-tracking branch 'origin/master' into ford-fusion 2020-06-02 21:50:20 -07: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
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
Ted Blackman
8bd1ed7a2c dojo: fix keyword arguments 2020-05-22 01:53:04 -04:00
Philip Monk
a874ab4355
zuse: remove +ford 2020-05-14 00:22:39 -07:00
Philip Monk
be77fa39db
clay: convert foreign-update to fusion 2020-05-12 22:53:23 -07:00
Philip Monk
aacd6f80d8
clay: move merge back into clay 2020-05-12 00:01:46 -07:00
lukechampine
baa309e375 dojo: rename remote access generators 2020-05-08 00:53:21 -04:00
lukechampine
8cbb8f142e gall: fix handling of empty path list 2020-05-07 22:46:51 -04:00
lukechampine
4217bfa2da dojo: remove unused %json poke 2020-05-07 17:57:58 -04:00
lukechampine
6ab3ab7d5c dojo: add remote access controls 2020-05-07 17:57:31 -04:00
Ted Blackman
8693bcbea8 dojo: minor cleanup 2020-05-04 07:17:38 -04:00
Ted Blackman
5a0fd2b653 dojo: use ford-fusion; missing /- and /+ 2020-05-04 07:08:50 -04:00
Ted Blackman
69f809ff3e use fusion in :spider 2020-04-21 01:05:05 -04:00
Ted Blackman
4bf854c180 WIP :spider2 using ford-fusion 2020-04-19 05:11:01 -04:00
Liam Fitzgerald
4433b99011 dojo: change autocomplete to use sell
Change autocomplete to prettyprint variables with sell instead of
xsell
2020-04-01 14:22:04 +10:00
Liam Fitzgerald
ff8c7a61d5 dojo: fix hood shortcut 2020-04-01 12:29:14 +10:00
Liam Fitzgerald
ed7f8be424 dojo: add autocomplete for various dojo syntaxes
Adds autocomplete for
- :app poke syntax
- :app|gen poke generator syntax
- +gen naked generator syntax
- =var variable syntax
2020-04-01 11:28:27 +10:00
Jared Tobin
01afc2a143
Merge branch 'm/gall-gift-paths' (#2134)
* origin/m/gall-gift-paths:
  gall: (list path) in %fact and %kick

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-07 04:17:32 +08:00
Fang
fcf1846b6f
various: remove trailing whitespace 2020-01-03 22:06:42 +01:00
Fang
ae8a57ca25
gall: (list path) in %fact and %kick
Instead of providing a (unit path), allows for (list path), which better
supports the "update to path and subpath cases".

For example, if /things wants updates about everything, and
/things/specific wants updates about the specific thing, they'll both
need to receive a %fact when the specific thing changes.
Previously, these would have been two separate moves. Now, gall handles
the multi-targeting for you.
2019-12-23 13:37:32 +01:00
Fang
ea7c1db61c
various: use =/ in place of =+ ^-
Also faceless =; where appropriate.
2019-12-21 14:29:14 -03:30
Philip Monk
5ff9e04204
drum: revert tang ordering change
Turns out this wasn't a regression, it was intended behavior.  I
continue to believe it's the wrong behavior, but that will require a
longer discussion.
2019-12-09 11:47:48 -08:00
Philip Monk
ba5e7d9090
dojo: set prompt on watch 2019-12-03 17:18:09 -08:00
Isaac Visintainer
51d61e4d49 static gall: convert soto 2019-11-22 12:57:58 -08:00
Philip Monk
6a406e6b29
gall: mall -> gall 2019-11-18 20:36:21 -08:00
Philip Monk
9862dccc0e
mall: age -> app 2019-11-18 19:28:59 -08:00
Philip Monk
ae295d445a
mall: rm old apps for easier merging 2019-11-09 16:53:42 -08:00
Philip Monk
545fe25cd2
language-server: address review comments 2019-11-05 20:26:33 -08:00
Philip Monk
8fe859ad49
language-server: namespace libraries 2019-11-03 21:54:04 -08:00
Philip Monk
647c0ddf8b
language-server: cleanup and incremental text sync 2019-11-03 21:46:15 -08:00
Philip Monk
ce6efe0a6a
auto: handle tab in middle of symbol 2019-11-01 00:18:34 -07:00
Philip Monk
0014d1cf2b
auto: fix some crashes on strange wet gates 2019-10-31 21:37:24 -07:00
Philip Monk
f3626e17e6
auto: support multiline tab completion 2019-10-31 20:54:00 -07:00
Philip Monk
8e66d84c83
easy-print: don't crash if type-check crashes
also don't render all the types if there's more than 10.
2019-10-31 15:53:43 -07:00
Philip Monk
9487481128
dojo, drum: change %tab sole-effect to use tanks
It should be general-purpose for tab-completing things in other apps,
types are inappropriate.
2019-10-31 15:14:41 -07:00
Philip Monk
ee63e122ea
dojo, auto: move insert-magic logic to lib/auto
This changes the entry-points in lib/auto so that clients never have to
handle magic-spoon.  You can specify either a tape of code with a
position index or a preparsed hoon (presumably you ran +insert-magic
before parsing).
2019-10-31 14:56:54 -07:00
Philip Monk
4482997a16
dojo, drum: give tab completion as true output
This stops slogging the tab completion and intead adds a +sole-effect
for tab completion output.  This is morally correct, and it lets dojo
clients show tab completions how they want.  For example, web dojo could
implement this as a drop-down box.

Another advantage is that this puts the rendering logic in drum, which
knows the width of the terminal.  Thus, we can make sure each match
takes no more than one line by truncating with ellipses.  If there's
only one match and it's already fully typed, then we display the whole
type.
2019-10-31 14:36:14 -07:00
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
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
fa01bfb0a5 hoon: moves new pretty-printer back into userspace 2019-10-17 17:52:45 -07:00
Jared Tobin
ef99074304
zuse, gall, eyre, dojo: deprecate 'cuft'
Replaces it with the more informative name 'internal-gift'.
2019-08-22 12:33:24 -02:30
Elliot Glaysher
a8c2c06db9 Now with a working --import. 2019-07-16 13:52:42 -07:00
Elliot Glaysher
5082ce6b98 Part 1: Add the export action and get that into herb. 2019-07-15 15:18:28 -07:00
Joe Bryan
27da0d61d8 renames +http-client interface core to +iris 2019-07-03 23:52:22 -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