Skip to content

Commit

Permalink
update missionary
Browse files Browse the repository at this point in the history
  • Loading branch information
leonoel committed Feb 26, 2025
1 parent 98bb45d commit f4456d1
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 23 deletions.
2 changes: 1 addition & 1 deletion deps.edn
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
com.cognitect/transit-cljs {:mvn/version "0.8.280"}
com.hyperfiddle/hyperfiddle-contrib {:mvn/version "v0-alpha-SNAPSHOT"}
com.hyperfiddle/rcf {:mvn/version "20220926-202227"}
missionary/missionary {:mvn/version "b.43"}
missionary/missionary {:mvn/version "b.44"}
fipp/fipp {:mvn/version "0.6.26"}
org.clojure/clojure {:mvn/version "1.12.0-alpha11"}
org.clojure/clojurescript {:mvn/version "1.11.121"}
Expand Down
34 changes: 16 additions & 18 deletions src/hyperfiddle/electric/impl/runtime3.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -1540,26 +1540,24 @@ T T T -> (EXPR T)
(when-some [^objects channel (aget remote remote-slot-channel)]
(channel-output-event channel))))

;; is expr always a slot ? if true, we can specialize to ports
(deftype Incseq [peer expr]
IFn
(#?(:clj invoke :cljs -invoke) [_ step done]
(let [busy (enter peer)]
(deps expr run input-attach (peer-site peer))
;; TODO request
(exit peer busy)
((->flow expr) step
#(let [busy (enter peer)]
(deps expr run input-detach (peer-site peer))
;; TODO request
(exit peer busy)
(done))))))

(defn incseq-expr [^Incseq incseq]
(.-expr incseq))
(defn attach-deps [peer expr]
(let [busy (enter peer)]
(deps expr run input-attach (peer-site peer))
(exit peer busy)))

(defn detach-deps [peer expr]
(let [busy (enter peer)]
(deps expr run input-detach (peer-site peer))
(exit peer busy)))

(defn incseq [^Frame frame expr]
(->Incseq (frame-peer frame) expr))
(let [peer (frame-peer frame)]
(m/sample {}
(m/observe
(fn [!] (! nil)
(attach-deps peer expr)
#(detach-deps peer expr)))
(->flow expr))))

(defn frame-result-slot [^Frame frame]
(let [^objects nodes (.-nodes frame)]
Expand Down
8 changes: 4 additions & 4 deletions test/hyperfiddle/electric3_test.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -2386,11 +2386,11 @@
% := '[join 0 cancelling]
% := '[join 0 cancelled]
% := '[join 0 transferring]
% := '[join 0 terminating]
% := '[join 0 terminated]
% := '[join 0 transferred Cancelled]
% := '[join 0 cancelling]
% := '[join 0 cancelled]
% := '[join 0 terminating]
% := '[join 0 terminated]
(tap ::done), % := ::done)))

(tests
Expand All @@ -2414,11 +2414,11 @@
% := '[join 0 cancelling]
% := '[join 0 cancelled]
% := '[join 0 transferring]
% := '[join 0 terminating]
% := '[join 0 terminated]
% := '[join 0 transferred Cancelled]
% := '[join 0 cancelling]
% := '[join 0 cancelled]
% := '[join 0 terminating]
% := '[join 0 terminated]
(tap ::done), % := ::done)))

;; if we don't type hint the call to `fooBar` in the compiler the tests blow up on the inference warning.
Expand Down

0 comments on commit f4456d1

Please sign in to comment.