Elliot Glaysher
5a6c6ff7cc
End of day checkpoint.
2019-09-24 17:15:00 -07:00
benjamin-tlon
7db5ef2c6c
Merge pull request #1749 from urbit/kh-demux-state
...
Make multiplexed terminals store state instead of history.
2019-09-24 14:52:09 -07:00
Elliot Glaysher
676a8ee6a6
WIP: Use edwards curve point types from Crypto.ECC.Edwards25519
...
This changes Pass to decode the Ed.Point directly in the type,
instead of having the packed Atom representation or raw ByteStrings.
Added conversion quickchecks and also decoded data off the Ethereum
contracts.
2019-09-24 14:01:39 -07:00
Elliot Glaysher
599432456b
0w0 parsing and quickcheck tests on it and 0v0 parsing.
2019-09-23 15:45:33 -07:00
Elliot Glaysher
5fb7d44d68
Dump before going off to work on 0w0 what is this parsing code.
2019-09-23 14:42:19 -07:00
Elliot Glaysher
dea512df09
Further filling out of Dawn.
2019-09-20 16:10:03 -07:00
Elliot Glaysher
e422a2ac7d
Ask ENS for azimuth.eth instead of hardcoding
2019-09-20 10:42:48 -07:00
Elliot Glaysher
dc189f3227
Galaxy table gets real pubkeys now.
2019-09-20 10:42:48 -07:00
Elliot Glaysher
87a9f4e667
Can retrieve the ames domains from Ethereum using web3.
...
Partial support for retrieving the galaxy table, but I'm having
problems converting the public key type.
2019-09-19 15:40:23 -07:00
Benjamin Summers
ff273f0b72
Demuxed terminals now track terminal state instead of terminal history.
...
Before, terminal demuxing used unbounded memory, but now it just tracks
the line state and 20 lines of history.
2019-09-18 16:11:06 -07:00
Benjamin Summers
dcb25bbbb8
Track terminal state in pure code.
2019-09-18 15:07:53 -07:00
Elliot Glaysher
31403543b8
Make it build
2019-09-18 11:05:36 -07:00
Elliot Glaysher
ba9bd01e35
Merge branch 'king-haskell' into king-exit-cleanly
2019-09-18 11:02:46 -07:00
Benjamin Summers
d3d42a7fdd
Re-enable local terminal (non-daemon mode) + cancelWait cleanup.
2019-09-18 10:55:21 -07:00
Elliot Glaysher
f417c084a4
Merge remote-tracking branch 'origin/king-haskell' into king-exit-cleanly
2019-09-18 10:38:20 -07:00
Benjamin Summers
b1a9dff197
Fixes live-lock by changing type of Vere.Term.API.Client.give to take [Term.Ev].
2019-09-18 02:11:18 -07:00
Benjamin Summers
6b8e88fdd8
Was replaying terminal events in the wrong order.
2019-09-18 01:08:13 -07:00
Benjamin Summers
24bc28e834
Hooked up a remote terminal, it runs but doesn't work yet.
2019-09-18 00:24:10 -07:00
Benjamin Summers
4c3342f9c6
External terminals get added to the demuxed terminal set.
2019-09-17 23:59:07 -07:00
Benjamin Summers
09b30bf169
Collect terminal size.
2019-09-17 23:58:42 -07:00
Benjamin Summers
cd07b10946
Impement basic support for multiple terminals pretending to be one terminal.
2019-09-17 23:17:54 -07:00
Benjamin Summers
ebf3d3e5c6
Move terminal client API into it's own module.
2019-09-17 22:22:19 -07:00
Benjamin Summers
4fdfab66df
Minor
2019-09-17 22:06:40 -07:00
Benjamin Summers
99dd161b86
Simplify term interface.
2019-09-17 22:01:44 -07:00
Benjamin Summers
c4be3e4a19
Terminal loop cleanup.
2019-09-17 21:41:31 -07:00
Benjamin Summers
da7190008c
Move top-level into it's own module.
2019-09-17 20:14:49 -07:00
benjamin-tlon
5939737c43
Merge pull request #1744 from urbit/king-spinner
...
Terminal spinner implementation in King Haskell.
2019-09-17 19:56:43 -07:00
Benjamin Summers
0b667d8073
Merge branch 'king-haskell' of github.com:urbit/urbit into king-boot-pb
2019-09-17 19:54:08 -07:00
Benjamin Summers
26f5964ef7
Move lockfile logic into it's own file.
2019-09-17 19:45:51 -07:00
Elliot Glaysher
7c6a3c2300
Make king shutdown cleanly on a new line.
...
This makes canceling the persistance thread not rethrow an exception
which kills the process, and makes the terminal driver write one
final newline before giving control back to the terminal so the
bash prompt writes to its own line.
2019-09-17 14:00:54 -07:00
Elliot Glaysher
efa396ed82
Makes a progress bar on booting a new ship.
...
Also prints the name of the ship you're trying to boot, along with
whether its a fake or not. Also fixes a regression where we were
trying to acquire a lockfile before the pier directory was created.
2019-09-17 11:56:54 -07:00
Elliot Glaysher
c7945689d2
Terminal spinner implementation in King Haskell.
...
This gets a terminal spinner to spin after a short delay like in
vere. This also fixes a bug in termRefreshLine which was screwing
up redisplay of the terminal spinner; it hadn't been translated
from C properly.
2019-09-16 16:51:17 -07:00
Elliot Glaysher
350e9a8f5b
80 characters + golf
2019-09-13 13:06:13 -07:00
Elliot Glaysher
229870e0cc
Fix atom putfiles + do unicode accumulation correctly.
2019-09-13 11:46:03 -07:00
Elliot Glaysher
9fcbc864b2
WIP for term cleanup
2019-09-13 11:02:52 -07:00
Elliot Glaysher
189f03e285
Stylish + 80 col
2019-09-13 11:02:41 -07:00
Elliot Glaysher
13f6d97545
Merge pull request #1725 from urbit/king-sync
...
Clay syncing.
2019-09-12 17:09:05 -07:00
Elliot Glaysher
af7605a7fc
Over the shoulder code review.
2019-09-12 17:08:04 -07:00
Elliot Glaysher
4aeb137ea5
Address comments.
2019-09-12 16:20:15 -07:00
Elliot Glaysher
860f59d46f
Display a progress bar on startup when we have to replay the log.
...
Use the terminal-progress-bar package to display a progress bar
during replay, when there are jobs that need to be replayed. Bumps
the lts resolver so we get access to this package.
2019-09-12 12:49:27 -07:00
Elliot Glaysher
3927e4d50a
Clay syncing.
...
This performs all normal filesystem operations. We can take
filesystem hash snapshots on startup, write the contents of an
%ergo to disk, send changes to Urbit with an %into, and finally
delete mount points when they are %ogre.
This doesn't deal with updating an initial filesystem on first
run with -A, or with acquiring a lockfile, which should happen
elsewhere.
Can take filesystem hash snapshots on startup, and can write the
contents of an %ergo to disk.
2019-09-11 16:20:05 -07:00
Elliot Glaysher
3ed4683f4b
80 cols + order of operations
2019-09-10 13:34:11 -07:00
Elliot Glaysher
6d2b94ac7b
Per review, use separate TMVars to control saving and shutdown.
2019-09-10 13:31:18 -07:00
Elliot Glaysher
5e9822d268
Make the compute thread take a request instead of an event.
...
The compute thread should take an event or a save request or a
shutdown request. We now take snapshots every 120 seconds like
vere does, and take a snapshot before clean shutdown.
(Also changes the terminal driver so that it doesn't unboundedly
block shutdown.)
2019-09-06 12:59:56 -07:00
Elliot Glaysher
94034503c7
First pass HTTP Client driver completed.
...
Can run '+http://www.example.com ' from the dojo.
2019-09-05 13:09:45 -07:00
Elliot Glaysher
c8dc2532b2
Recognize %veer events.
...
This lets me use the event browser on long running ships which have
had kernel reboots.
2019-09-04 13:57:48 -07:00
Elliot Glaysher
75e44f95ee
Remove warning override.
2019-09-04 13:02:51 -07:00
Elliot Glaysher
d5b9cc8a66
Hack to make it boot.
2019-09-03 17:11:24 -07:00
Elliot Glaysher
25450d5ac8
Merge remote-tracking branch 'origin/bs/uterm' into eg/uterm
2019-09-03 16:45:45 -07:00
Elliot Glaysher
97c9a8c9f1
king can now generate a pill and boot with it.
2019-09-03 16:38:14 -07:00
Elliot Glaysher
c635abd58e
Hook up ~& to the terminal driver.
2019-09-03 15:17:20 -07:00
Elliot Glaysher
8af0d7bef9
Move all of Term.hs into RIO.
2019-09-03 11:02:54 -07:00
Benjamin Summers
143e7768a9
NounServ cleanup.
2019-08-31 09:19:40 -07:00
Elliot Glaysher
22647bb91e
Rough draft of putfiles.
2019-08-30 13:26:51 -07:00
Elliot Glaysher
80e71b2532
Actually send ^D to the Urbit; handle %logo in response to shutdown.
2019-08-30 11:01:37 -07:00
Benjamin Summers
351eaca628
Started separating out low-level LMDB logic.
2019-08-30 01:43:22 -07:00
Benjamin Summers
ec372efb31
Wrote hacky websocket client/server for terminal driver.
...
Using websockets because it would be nice to eventually have a terminal
in the Electron client.
This is prototype-quality code. Using the built-in client/server from the
`websockets` package, but that's just for testing.
2019-08-30 00:56:28 -07:00
Benjamin Summers
4903a72682
Various small fixes -- trying to get boot working.
2019-08-29 18:29:55 -07:00
Benjamin Summers
0b19fe9c79
EventBrowser: Polish UI and implement event trimming.
2019-08-29 17:23:48 -07:00
Benjamin Summers
ed20b78473
Event/Effect browser with event trimming (not implemented yet).
2019-08-29 16:48:46 -07:00
Elliot Glaysher
206230cec6
Get ^D to end your Urbit session.
...
This also does a bunch of style cleanup and rearranging so that we
can have the reader thread end.
2019-08-29 16:35:52 -07:00
Elliot Glaysher
8ac461477a
Log "interrupt" on C-c properly.
2019-08-29 15:05:01 -07:00
Elliot Glaysher
e2d304d43c
At least detect when we have ^C or ^D.
2019-08-29 14:54:34 -07:00
Elliot Glaysher
6f6811def5
Very basic input works. Edge cases unhandled.
2019-08-29 13:19:06 -07:00
Elliot Glaysher
70ef39210f
Get basic text working.
2019-08-29 11:12:50 -07:00
Elliot Glaysher
cdcdc6a59e
Merge remote-tracking branch 'origin/bs/king-logging' into eg/uterm
2019-08-29 10:30:53 -07:00
Benjamin Summers
de7a087ef5
Logging everywhere + log to file
2019-08-28 17:26:59 -07:00
Elliot Glaysher
d1a9eaeaa0
A closer copy of the term.c output.
...
After looking at vty for a bit, I decided to just do a straight port
of term.c's raw output code. This gets the "~zod:dojo" in the right
position, though the other logging output screws things up a bit.
2019-08-28 17:08:47 -07:00
Elliot Glaysher
555b9e7dcf
Moved terminal initialization up to Pier.
...
Joe told me to look at the Jaque terminal and I just did. That uses
the Lanterna Java library to handle terminal output. Joe then suggested
that I move the entire system here to curses or another similar library.
2019-08-28 13:17:01 -07:00
Benjamin Summers
062c71b57d
Logging in Vere.Serf
2019-08-28 05:22:56 -07:00
Benjamin Summers
c1bb26e628
Logging in Vere.Pier
2019-08-28 04:45:49 -07:00
Benjamin Summers
360d166344
Started RIO's logging system instead of printfs.
2019-08-28 04:00:26 -07:00
Elliot Glaysher
994c5948e1
Construct the %blew and %hail initalEvents correctly.
2019-08-27 16:22:01 -07:00
Elliot Glaysher
5e3e1e7c1a
Skeleton terminal implementation.
...
This sends the right events on startup, and there's a minimal key
reading logic, but not much else works yet.
2019-08-27 15:29:11 -07:00
Elliot Glaysher
64cb0e564c
Remove dead %send code from outside ames.
2019-08-23 14:39:44 -07:00
Elliot Glaysher
fbf7bdc4b8
Since it's unimplemented, %bbye goes bbye.
2019-08-23 14:07:58 -07:00
Benjamin Summers
0b0718997e
Don't insist on using specific port.
2019-08-21 18:18:10 -07:00
Benjamin Summers
82683bfd9a
Validate effects.
2019-08-21 17:54:00 -07:00
Benjamin Summers
efc6103fc1
%veer events now use cords instead of tapes?
2019-08-21 17:07:05 -07:00
Benjamin Summers
8ace44adb6
Validate pill files.
2019-08-21 16:49:08 -07:00
Benjamin Summers
3ff5c4fad5
Implement king bug collect-all-fx
...
For now, this is mostly useful as an integration test: Replay the whole
event log of an existing ship using King Haskell.
This also opens the door for a future tool that inspects collected
effects for debugging purposes.
2019-08-20 17:42:53 -07:00
Benjamin Summers
6a273906b2
Store collected effects in LMDB.
2019-08-20 16:32:46 -07:00
Benjamin Summers
e02dd2342c
CLI Parsing cleanup.
2019-08-14 19:47:54 -07:00
Benjamin Summers
1a024785d4
@uv parser was wrong.
2019-08-13 18:28:34 -07:00
Benjamin Summers
e640bf505d
The HTTP query string wasn't being included in the event.
2019-08-13 17:53:03 -07:00
Benjamin Summers
e6c2d46cd1
Various Fixes and Improvements
2019-08-12 22:56:31 -07:00
Benjamin Summers
55ceffc4c3
CLI parsing.
2019-08-12 21:57:30 -07:00