mirror of
https://github.com/urbit/shrub.git
synced 2024-12-28 22:54:15 +03:00
Merge remote-tracking branch 'origin/v0.8.0.rc' into philip/kale
This commit is contained in:
commit
93a4160a35
@ -8,10 +8,8 @@ before_install:
|
||||
- git lfs pull
|
||||
|
||||
script:
|
||||
- cachix authtoken "$CACHIX_AUTH_TOKEN" >/dev/null
|
||||
- cachix use urbit2
|
||||
|
||||
- ./sh/cachix
|
||||
- ./sh/cachix || true
|
||||
|
||||
- make
|
||||
- make release
|
||||
|
@ -70,11 +70,9 @@ right, and there is no issue about it yet, feel free to open one.
|
||||
If you're looking to get involved, there are a few things you can do:
|
||||
|
||||
- Join the [urbit-dev][list] mailing list.
|
||||
- [Ask us about Hoon School][mail], a course we run to teach the Hoon
|
||||
- [Apply to Hoon School][mail], a course we run to teach the Hoon
|
||||
programming language and Urbit application development.
|
||||
- Check out [good contributor issues][good].
|
||||
- Reach out to [support@urbit.org][mail] to say hi and ask any questions you
|
||||
might have.
|
||||
|
||||
Once you've got your bearings, have a look at [CONTRIBUTING.md][cont] for some
|
||||
pointers on setting up your development environment.
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e534cb57dc8b2bee35004d843c7e0b2d028ba699e86d47a58efac4b065ce2f1b
|
||||
size 6047224
|
||||
oid sha256:8f6e93cb3ee5fcb0970851bd10d2d2a640ff968292d147c35385623b86570296
|
||||
size 6662042
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:96b1f1ad730789b1d557aac66b847047c98341bcf436e1927f40f082a728d641
|
||||
size 3816083
|
||||
oid sha256:42d7fae92d11b3dbc3ee9aaa1e2edc5328f308c047dcf126b6cd661862904782
|
||||
size 4352384
|
||||
|
@ -290,7 +290,7 @@
|
||||
(pure:m state)
|
||||
=/ a-purl=purl:eyre node.p.source
|
||||
=. url.state (crip (en-purl:html a-purl))
|
||||
(watch state url.state launch:contracts:azimuth) :: 8.069.650)
|
||||
(watch state url.state launch:contracts:azimuth)
|
||||
::
|
||||
:: Start watching a node
|
||||
::
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.7 KiB |
@ -5,7 +5,8 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||
<link rel="stylesheet" href="/~chat/css/index.css" />
|
||||
<link rel="stylesheet" href="/~chat/css/index.css" />
|
||||
<link rel="icon" type="image/png" href="/~launch/img/Favicon.png">
|
||||
</head>
|
||||
<body>
|
||||
<div id="root" />
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -16,6 +16,7 @@
|
||||
$% [%dns-authority =authority]
|
||||
[%dns-bind =ship =target]
|
||||
[%handle-http-request =inbound-request:eyre]
|
||||
[%noun noun=*]
|
||||
==
|
||||
+$ out-poke-data
|
||||
$% [%dns-bind =ship =target]
|
||||
@ -612,6 +613,14 @@
|
||||
:: XX retryable?
|
||||
::
|
||||
?. &(?=(^ rep) =(200 p.u.rep))
|
||||
?: &(?=(^ rep) =(401 p.u.rep))
|
||||
:: XX automate
|
||||
::
|
||||
~& %authentication-failure
|
||||
~& (skim q.u.rep |=((pair @t @t) ?=(%www-authenticate p)))
|
||||
(pure:m ~)
|
||||
::
|
||||
~& [%create-bind-failed rep]
|
||||
(pure:m ~)
|
||||
::
|
||||
=* httr u.rep
|
||||
@ -699,6 +708,23 @@
|
||||
?. (team:title [our src]:bowl)
|
||||
~| %bind-yoself !!
|
||||
?- -.in-poke-data
|
||||
%noun
|
||||
?: ?=(%debug noun.in-poke-data)
|
||||
~& bowl
|
||||
:: XX redact secrets
|
||||
::
|
||||
~& state
|
||||
(pure:m state)
|
||||
::
|
||||
:: XX heavy-handed, will duplicate subscriptions
|
||||
:: should track bones
|
||||
::
|
||||
?: ?=(%resubscribe noun.in-poke-data)
|
||||
;< ~ bind:m (peer-app:stdio collector-app /requests)
|
||||
(pure:m state)
|
||||
::
|
||||
~& %poke-unknown
|
||||
(pure:m state)
|
||||
::
|
||||
%dns-authority
|
||||
?. =(~ nem.state)
|
||||
|
@ -8,10 +8,14 @@
|
||||
requested=(map ship address:dns)
|
||||
completed=(map ship binding:dns)
|
||||
==
|
||||
+$ peek-data [%noun (list (pair ship address:dns))]
|
||||
+$ peek-data
|
||||
$% [%requested (list (pair ship address:dns))]
|
||||
[%completed (list (pair ship binding:dns))]
|
||||
==
|
||||
+$ in-poke-data
|
||||
$% [%dns-address =address:dns]
|
||||
[%dns-complete =ship =binding:dns]
|
||||
[%noun noun=*]
|
||||
==
|
||||
+$ out-poke-data
|
||||
$% [%drum-unlink =dock]
|
||||
@ -78,6 +82,15 @@
|
||||
^- (quip move _this)
|
||||
=< abet
|
||||
?- -.in-poke-data
|
||||
%noun
|
||||
?: ?=(%debug noun.in-poke-data)
|
||||
~& bowl
|
||||
~& state
|
||||
this
|
||||
::
|
||||
~& %poke-unknown
|
||||
this
|
||||
::
|
||||
%dns-address
|
||||
=* who src.bowl
|
||||
=* adr address.in-poke-data
|
||||
@ -124,10 +137,12 @@
|
||||
++ peek
|
||||
|= =path
|
||||
^- (unit (unit peek-data))
|
||||
~& path
|
||||
?+ path [~ ~]
|
||||
[%x %requested ~]
|
||||
[~ ~ %noun ~(tap by requested.state)]
|
||||
[~ ~ %requested ~(tap by requested.state)]
|
||||
::
|
||||
[%x %completed ~]
|
||||
[~ ~ %completed ~(tap by completed.state)]
|
||||
==
|
||||
::
|
||||
++ peer
|
||||
@ -149,10 +164,10 @@
|
||||
=. ..this (give-result path %dns-request i.requests)
|
||||
loop(requests t.requests)
|
||||
::
|
||||
=/ who (slaw %p i.path)
|
||||
=/ who=(unit @p) (slaw %p i.path)
|
||||
?~ who
|
||||
~| %invalid-path !!
|
||||
?~ dun=(~(get by completed.state) who)
|
||||
?~ dun=(~(get by completed.state) u.who)
|
||||
this
|
||||
(give-result path %dns-binding u.dun)
|
||||
--
|
||||
|
@ -211,6 +211,9 @@
|
||||
~| [%dns-collector-reserved-address if.adr] !!
|
||||
;< requested=? bind:m (request-by-ip if.adr)
|
||||
:: XX save failure?
|
||||
::
|
||||
~? =(requested.state (some address.in-poke-data))
|
||||
%re-requesting
|
||||
=? requested.state requested
|
||||
(some address.in-poke-data)
|
||||
(pure:m state)
|
||||
|
@ -3293,7 +3293,7 @@
|
||||
|= {t/telegram c/@ud k/(map serial @ud) s/(map circle (list @ud))}
|
||||
:+ +(c) (~(put by k) uid.t c)
|
||||
=/ src/circle
|
||||
?: (~(has by aud.t) [our.bol nom]) [our.bol nom]
|
||||
?: (~(has in aud.t) [our.bol nom]) [our.bol nom]
|
||||
?~ aud.t ~&(%strange-aud [our.bol %inbox])
|
||||
n.aud.t
|
||||
%+ ~(put by s) src
|
||||
|
BIN
pkg/arvo/app/launch/img/Favicon.png
Normal file
BIN
pkg/arvo/app/launch/img/Favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
@ -7,6 +7,7 @@
|
||||
=name "viewport"
|
||||
=content "width=device-width, initial-scale=1, shrink-to-fit=no";
|
||||
;link(rel "stylesheet", href "/~launch/css/index.css");
|
||||
;link(rel "icon", type "image/png", href "/~launch/img/Favicon.png");
|
||||
==
|
||||
;body
|
||||
;div#root;
|
||||
|
@ -1,18 +0,0 @@
|
||||
|= scripts=marl
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Home</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||
<link rel="stylesheet" href="/~launch/css/index.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="root" />
|
||||
<script src="/~/channel/channel.js"></script>
|
||||
<script src="/~modulo/session.js"></script>
|
||||
<script src="/~launch/js/tiles.js"></script>
|
||||
<script src="/~launch/js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -348,7 +348,9 @@
|
||||
[~ da-this]
|
||||
=. subs.sat (~(del by subs.sat) who.del col.del)
|
||||
:- ~(tap in ~(key by pos.u.old))
|
||||
(da-emit [ost.bol %pull /collection/[col.del] [who.del %publish] ~])
|
||||
%- da-emil
|
||||
:- [ost.bol %pull /collection/[col.del] [who.del %publish] ~]
|
||||
(affection-primary del)
|
||||
:: iterate through post ids collected before, removing each from
|
||||
:: secondary indices in state
|
||||
::
|
||||
@ -382,7 +384,8 @@
|
||||
=. da-this (da-remove who.del col.del u.pos.del)
|
||||
(da-emil (affection del))
|
||||
=. subs.sat (~(put by subs.sat) [who.del col.del] new)
|
||||
(da-remove who.del col.del u.pos.del)
|
||||
=. da-this (da-remove who.del col.del u.pos.del)
|
||||
(da-emil (affection-primary del))
|
||||
::
|
||||
==
|
||||
::
|
||||
@ -527,6 +530,15 @@
|
||||
|= del=delta
|
||||
^- (quip move _this)
|
||||
da-done:(da-change:da del)
|
||||
:: +affection: rumors to primary
|
||||
::
|
||||
++ affection-primary
|
||||
|= del=delta
|
||||
^- (list move)
|
||||
%+ turn (prey:pubsub:userlib /primary bol)
|
||||
|= [b=bone *]
|
||||
^- move
|
||||
[b %diff %publish-rumor del]
|
||||
:: +affection: rumors to interested
|
||||
::
|
||||
++ affection
|
||||
@ -1023,7 +1035,15 @@
|
||||
%edit-collection
|
||||
?. =(src.bol our.bol)
|
||||
[~ this]
|
||||
[~ this]
|
||||
=/ pax=path /web/publish/[name.act]/publish-info
|
||||
=/ col=(unit collection) (~(get by pubs.sat) name.act)
|
||||
?~ col
|
||||
[~ this]
|
||||
?: ?=(%.n -.dat.col.u.col)
|
||||
[~ this]
|
||||
=/ out=collection-info p.dat.col.u.col(title title.act)
|
||||
:_ this
|
||||
[(write-file pax %publish-info !>(out))]~
|
||||
::
|
||||
%edit-post
|
||||
?. =(who.act our.bol)
|
||||
|
File diff suppressed because one or more lines are too long
@ -9,6 +9,7 @@
|
||||
=name "viewport"
|
||||
=content "width=device-width, initial-scale=1, shrink-to-fit=no";
|
||||
;link(rel "stylesheet", href "/~publish/index.css");
|
||||
;link(rel "icon", type "image/png", href "/~launch/img/Favicon.png");
|
||||
;script@"/~/channel/channel.js";
|
||||
;script@"/~modulo/session.js";
|
||||
;script: window.injectedState = {(en-json:html inject)}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1391,13 +1391,15 @@
|
||||
::
|
||||
:: prints binding details. goes both ways.
|
||||
::
|
||||
:: XX this type is a misjunction, audience can be ~
|
||||
::
|
||||
|= qur/(unit $@(char audience))
|
||||
^+ ..sh-work
|
||||
?^ qur
|
||||
?^ u.qur
|
||||
=+ cha=(~(get by bound) u.qur)
|
||||
(sh-fact %txt ?~(cha "none" [u.cha]~))
|
||||
=+ pan=~(tap in (~(get ju binds) u.qur))
|
||||
=+ pan=~(tap in (~(get ju binds) `@t`u.qur))
|
||||
?: =(~ pan) (sh-fact %txt "~")
|
||||
=< (sh-fact %mor (turn pan .))
|
||||
|=(a/audience [%txt ~(ar-phat ar a)])
|
||||
|
@ -1,125 +0,0 @@
|
||||
/+ *server
|
||||
/= tile-js
|
||||
/^ octs
|
||||
/; as-octs:mimes:html
|
||||
/: /===/app/timer/js/tile
|
||||
/| /js/
|
||||
/~ ~
|
||||
==
|
||||
/= timer-png
|
||||
/^ (map knot @)
|
||||
/: /===/app/timer/img /_ /png/
|
||||
=, format
|
||||
::
|
||||
|%
|
||||
:: +move: output effect
|
||||
::
|
||||
+$ move [bone card]
|
||||
:: +card: output effect payload
|
||||
::
|
||||
+$ poke
|
||||
$% [%launch-action [@tas path @t]]
|
||||
==
|
||||
::
|
||||
+$ card
|
||||
$% [%poke wire dock poke]
|
||||
[%http-response =http-event:http]
|
||||
[%connect wire binding:eyre term]
|
||||
[%diff %json json]
|
||||
[%wait wire @da]
|
||||
[%rest wire @da]
|
||||
==
|
||||
::
|
||||
--
|
||||
::
|
||||
|_ [bol=bowl:gall tim=@da]
|
||||
::
|
||||
++ this .
|
||||
::
|
||||
++ bound
|
||||
|= [wir=wire success=? binding=binding:eyre]
|
||||
^- (quip move _this)
|
||||
[~ this]
|
||||
::
|
||||
++ prep
|
||||
|= old=(unit tim=@da)
|
||||
^- (quip move _this)
|
||||
=/ launcha [%launch-action [%timer /tile '/~timer/js/tile.js']]
|
||||
:-
|
||||
:~
|
||||
[ost.bol %connect / [~ /'~timer'] %timer]
|
||||
[ost.bol %poke /timer [our.bol %launch] launcha]
|
||||
==
|
||||
?~ old
|
||||
this
|
||||
%= this
|
||||
tim tim.u.old
|
||||
==
|
||||
::
|
||||
++ peer-tile
|
||||
|= pax=path
|
||||
^- (quip move _this)
|
||||
?: =(tim *@da)
|
||||
[[ost.bol %diff %json [%s '']]~ this]
|
||||
[[ost.bol %diff %json [%s (scot %da tim)]]~ this]
|
||||
::
|
||||
++ send-tile-diff
|
||||
|= jon=json
|
||||
^- (list move)
|
||||
%+ turn (prey:pubsub:userlib /tile bol)
|
||||
|= [=bone ^]
|
||||
[bone %diff %json jon]
|
||||
::
|
||||
++ poke-json
|
||||
|= jon=json
|
||||
^- (quip move _this)
|
||||
?. ?=(%s -.jon)
|
||||
[~ this]
|
||||
=/ str/@t +.jon
|
||||
?: =(str 'start')
|
||||
=/ data/@da (add now.bol ~m20)
|
||||
:_ this(tim data)
|
||||
[[ost.bol %wait /timer data] (send-tile-diff [%s (scot %da data)])]
|
||||
?: =(str 'stop')
|
||||
:_ this(tim *@da)
|
||||
[[ost.bol %rest /timer tim] (send-tile-diff [%s ''])]
|
||||
[~ this]
|
||||
::
|
||||
++ poke-handle-http-request
|
||||
%- (require-authorization:app ost.bol move this)
|
||||
|= =inbound-request:eyre
|
||||
^- (quip move _this)
|
||||
=/ request-line (parse-request-line url.request.inbound-request)
|
||||
=/ back-path (flop site.request-line)
|
||||
=/ name=@t
|
||||
=/ back-path (flop site.request-line)
|
||||
?~ back-path
|
||||
''
|
||||
i.back-path
|
||||
::
|
||||
?+ site.request-line
|
||||
[[ost.bol %http-response not-found:app]~ this]
|
||||
::
|
||||
:: tile
|
||||
::
|
||||
[%'~timer' %js %tile ~]
|
||||
[[ost.bol %http-response (js-response:app tile-js)]~ this]
|
||||
::
|
||||
:: images
|
||||
::
|
||||
[%'~timer' %img *]
|
||||
=/ img (as-octs:mimes:html (~(got by timer-png) `@ta`name))
|
||||
:_ this
|
||||
[ost.bol %http-response (png-response:app img)]~
|
||||
==
|
||||
::
|
||||
++ wake
|
||||
|= [wir=wire err=(unit tang)]
|
||||
^- (quip move _this)
|
||||
?~ err
|
||||
:- (send-tile-diff [%s 'alarm'])
|
||||
this(tim *@da)
|
||||
~& err
|
||||
[~ this]
|
||||
::
|
||||
--
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB |
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
File diff suppressed because one or more lines are too long
@ -95,7 +95,6 @@
|
||||
[%home %launch]
|
||||
[%home %chat]
|
||||
[%home %publish]
|
||||
[%home %timer]
|
||||
[%home %clock]
|
||||
[%home %weather]
|
||||
==
|
||||
|
@ -251,11 +251,13 @@
|
||||
::
|
||||
=/ old ((soft tapp-state) u.old-state)
|
||||
?~ old
|
||||
~& [%tapp-reset dap.bowl]
|
||||
:: XX may break contracts!
|
||||
:: XX use only for development may break contracts!
|
||||
:: XX if active clam contracts only to abort transaction?
|
||||
::
|
||||
`this-tapp
|
||||
:: ~& [%tapp-reset dap.bowl]
|
||||
:: `this-tapp
|
||||
~| [%tapp-load-incompatible dap.bowl]
|
||||
!!
|
||||
::
|
||||
:: because the clam replaces the active continuation with
|
||||
:: the bunt of its mold, we must fail the transaction
|
||||
|
@ -73,7 +73,10 @@
|
||||
content+so:dejs
|
||||
==
|
||||
::
|
||||
++ delete-collection (of:dejs coll+(su:dejs sym) ~)
|
||||
++ delete-collection
|
||||
%- ot:dejs
|
||||
:~ coll+(su:dejs sym)
|
||||
==
|
||||
::
|
||||
++ delete-post
|
||||
%- ot:dejs
|
||||
@ -92,9 +95,6 @@
|
||||
%- ot:dejs
|
||||
:~ name+(su:dejs sym)
|
||||
title+so:dejs
|
||||
comments+comment-config
|
||||
allow-edit+edit-config
|
||||
perm+perm-config
|
||||
==
|
||||
::
|
||||
++ edit-post
|
||||
|
@ -8,7 +8,7 @@
|
||||
%+ sort ~(val by comments)
|
||||
|= [a=comment:publish b=comment:publish]
|
||||
^- ?
|
||||
(lte date-created.info.a date-created.info.b)
|
||||
(gte date-created.info.a date-created.info.b)
|
||||
::
|
||||
/_ /publish-comment/
|
||||
result
|
||||
|
@ -25,13 +25,7 @@
|
||||
[%delete-post coll=@tas post=@tas]
|
||||
[%delete-comment coll=@tas post=@tas comment=@tas]
|
||||
::
|
||||
$: %edit-collection
|
||||
name=@tas
|
||||
title=@t
|
||||
com=comment-config
|
||||
edit=edit-config
|
||||
perm=perm-config
|
||||
==
|
||||
[%edit-collection name=@tas title=@t]
|
||||
::
|
||||
$: %edit-post
|
||||
who=@p
|
||||
|
@ -1479,13 +1479,13 @@
|
||||
::
|
||||
++ get :: grab value by key
|
||||
~/ %get
|
||||
|= b/*
|
||||
^- {$@(~ {~ u/_?>(?=(^ a) q.n.a)})}
|
||||
=+ 42
|
||||
|* b=*
|
||||
=> .(b `_?>(?=(^ a) p.n.a)`b)
|
||||
|- ^- (unit _?>(?=(^ a) q.n.a))
|
||||
?~ a
|
||||
~
|
||||
?: =(b p.n.a)
|
||||
[~ u=q.n.a]
|
||||
(some q.n.a)
|
||||
?: (gor b p.n.a)
|
||||
$(a l.a)
|
||||
$(a r.a)
|
||||
@ -10727,11 +10727,11 @@
|
||||
{$rock *} |- ^- type
|
||||
?@ q.gen [%atom p.gen `q.gen]
|
||||
[%cell $(q.gen -.q.gen) $(q.gen +.q.gen)]
|
||||
{$sand *} |- ^- type
|
||||
?@ q.gen
|
||||
?: =(%n p.gen) ?>(=(0 q.gen) [%atom p.gen ~ q.gen])
|
||||
?:(=(%f p.gen) ?>((lte q.gen 1) bool) [%atom p.gen ~])
|
||||
[%cell $(q.gen -.q.gen) $(q.gen +.q.gen)]
|
||||
{$sand *} ?@ q.gen
|
||||
?: =(%n p.gen) ?>(=(0 q.gen) [%atom p.gen `q.gen])
|
||||
?: =(%f p.gen) ?>((lte q.gen 1) bool)
|
||||
[%atom p.gen ~]
|
||||
$(-.gen %rock)
|
||||
{$tune *} (face p.gen sut)
|
||||
{$dttr *} %noun
|
||||
{$dtts *} bool
|
||||
@ -10746,6 +10746,7 @@
|
||||
{$sgzp *} ~_(duck(sut ^$(gen p.gen)) $(gen q.gen))
|
||||
{$sgbn *} $(gen q.gen)
|
||||
{$tsbn *} $(gen q.gen, sut $(gen p.gen))
|
||||
{$tscm *} $(gen q.gen, sut (busk p.gen))
|
||||
{$wtcl *} =+ [fex=(gain p.gen) wux=(lose p.gen)]
|
||||
%- fork :~
|
||||
?:(=(%void fex) %void $(sut fex, gen q.gen))
|
||||
@ -10754,7 +10755,7 @@
|
||||
{$fits *} bool
|
||||
{$wthx *} bool
|
||||
{$dbug *} ~_((show %o p.gen) $(gen q.gen))
|
||||
{$zpcm *} (play p.gen)
|
||||
{$zpcm *} $(gen p.gen)
|
||||
{$lost *} %void
|
||||
{$zpmc *} (cell $(gen p.gen) $(gen q.gen))
|
||||
{$zpts *} %noun
|
||||
|
@ -2271,7 +2271,7 @@
|
||||
::
|
||||
u.existing
|
||||
::
|
||||
=/ already-heard=? (~(has by fragments.partial-rcv-message) seq)
|
||||
=/ already-heard=? (~(has by fragments.partial-rcv-message) `^fragment-num``@`seq)
|
||||
:: ack dupes except for the last fragment, in which case drop
|
||||
::
|
||||
?: already-heard
|
||||
|
@ -2264,7 +2264,7 @@
|
||||
:: These convert between aeon (version number), tako (commit hash), yaki
|
||||
:: (commit data structure), lobe (content hash), and blob (content).
|
||||
++ aeon-to-tako ~(got by hit.dom)
|
||||
++ aeon-to-yaki (cork aeon-to-tako tako-to-yaki)
|
||||
++ aeon-to-yaki |=(=aeon (tako-to-yaki (aeon-to-tako aeon)))
|
||||
++ lobe-to-blob ~(got by lat.ran)
|
||||
++ tako-to-yaki ~(got by hut.ran)
|
||||
++ lobe-to-mark
|
||||
@ -3670,8 +3670,11 @@
|
||||
|%
|
||||
:: These convert between aeon (version number), tako (commit hash), yaki
|
||||
:: (commit data structure), lobe (content hash), and blob (content).
|
||||
::
|
||||
:: XX the following are duplicated from the +state core
|
||||
::
|
||||
++ aeon-to-tako ~(got by hit.dom)
|
||||
++ aeon-to-yaki (cork aeon-to-tako tako-to-yaki)
|
||||
++ aeon-to-yaki |=(=aeon (tako-to-yaki (aeon-to-tako aeon)))
|
||||
++ lobe-to-blob ~(got by lat.ran)
|
||||
++ tako-to-yaki ~(got by hut.ran)
|
||||
++ page-to-lobe page-to-lobe:util
|
||||
|
@ -424,7 +424,7 @@
|
||||
;body
|
||||
;div#main
|
||||
;div#inner
|
||||
;h1#topborder:"Modulo"
|
||||
;h1#topborder:"Welcome"
|
||||
;h1:"{(scow %p our)}"
|
||||
;form(action "/~/login", method "post", enctype "application/x-www-form-urlencoded")
|
||||
;input(type "password", name "password", placeholder "passcode", autofocus "true");
|
||||
@ -1042,7 +1042,7 @@
|
||||
%.n
|
||||
:: is this a session that we know about?
|
||||
::
|
||||
?~ session=(~(get by sessions.authentication-state.state) u.session-id)
|
||||
?~ session=(~(get by sessions.authentication-state.state) `@uv`u.session-id)
|
||||
%.n
|
||||
:: is this session still valid?
|
||||
::
|
||||
@ -1382,8 +1382,10 @@
|
||||
=/ channel-wire=path
|
||||
/channel/subscription/[channel-id]/(scot %ud subscription-id.i.requests)
|
||||
::
|
||||
=/ subscriptions
|
||||
subscriptions:(~(got by session.channel-state.state) channel-id)
|
||||
=/ usession (~(get by session.channel-state.state) channel-id)
|
||||
?~ usession
|
||||
$(requests t.requests)
|
||||
=/ subscriptions subscriptions:u.usession
|
||||
::
|
||||
?~ maybe-subscription=(~(get by subscriptions) channel-wire)
|
||||
:: the client sent us a weird request referring to a subscription
|
||||
@ -1567,8 +1569,11 @@
|
||||
|= channel-id=@t
|
||||
^- [(list move) server-state]
|
||||
::
|
||||
=/ session
|
||||
(~(got by session.channel-state.state) channel-id)
|
||||
=/ usession=(unit channel)
|
||||
(~(get by session.channel-state.state) channel-id)
|
||||
?~ usession
|
||||
[~ state]
|
||||
=/ session=channel u.usession
|
||||
::
|
||||
:_ %_ state
|
||||
session.channel-state
|
||||
|
@ -2338,7 +2338,7 @@
|
||||
:: underlying arrows with +skim filtering on the head of each diff.
|
||||
::
|
||||
:: The identity element is ~. Clearly, composing this with any
|
||||
:: +diff gives the original +diff. Since this is a category, ::
|
||||
:: +diff gives the original +diff. Since this is a category,
|
||||
:: +compose must be associative (true, because concatenation is
|
||||
:: associative). This is a groupoid, so we must further have that
|
||||
:: every +point-diff has an inverse. These are given by the
|
||||
@ -2397,9 +2397,9 @@
|
||||
|= =diff
|
||||
^- ^diff
|
||||
?- -.diff
|
||||
%rift [%rift +.diff]
|
||||
%keys [%keys +.diff]
|
||||
%spon [%spon +.diff]
|
||||
%rift [%rift to from]:diff
|
||||
%keys [%keys to from]:diff
|
||||
%spon [%spon to from]:diff
|
||||
==
|
||||
::
|
||||
++ compose
|
||||
|
@ -2033,7 +2033,7 @@
|
||||
%start
|
||||
:- 200
|
||||
:~ ['content-type' 'text/html']
|
||||
['content-length' '1751']
|
||||
['content-length' '1752']
|
||||
==
|
||||
[~ (login-page:http-server-gate `'/~landscape/inner-path' ~nul)]
|
||||
complete=%.y
|
||||
|
@ -391,7 +391,7 @@ url = "http://localhost:%s" % PORT
|
||||
r = requests.post(url, data=json.dumps(payload))
|
||||
|
||||
if r.text[0] == '"':
|
||||
print r.text[1:-1].decode('string_escape')
|
||||
print r.text[1:-1].encode('utf-8').decode('string_escape')
|
||||
elif r.text[0] == '{':
|
||||
# print r.text
|
||||
json_data = json.loads(r.text)
|
||||
|
486806
pkg/urbit/vere/ivory.c
486806
pkg/urbit/vere/ivory.c
File diff suppressed because it is too large
Load Diff
@ -784,11 +784,15 @@ _term_read_cb(uv_stream_t* tcp_u,
|
||||
*/
|
||||
static void
|
||||
_term_try_write_str(u3_utty* uty_u,
|
||||
const c3_c* hun_y)
|
||||
const c3_c* str_c)
|
||||
{
|
||||
// c3_i fid_i = uv_fileno(&uty_u->pop_u);
|
||||
c3_i fid_i = uty_u->pop_u.io_watcher.fd; // XX old libuv
|
||||
_write(fid_i, hun_y, strlen(hun_y));
|
||||
c3_w len_w = strlen(str_c);
|
||||
|
||||
if ( len_w != write(fid_i, str_c, len_w) ) {
|
||||
// ignore, we just tryin
|
||||
}
|
||||
}
|
||||
|
||||
/* _term_try_move_left(): move the cursor left (off-thread).
|
||||
|
Loading…
Reference in New Issue
Block a user