Nathaniel Nicandro
969cb1ebd7
Add a way to debug the message stream from a kernel
...
Previously it was hard to step through the code whenever messages were
coming in live from a kernel due to the asynchronous nature of
handling process output in Emacs.
2023-02-13 20:30:19 -06:00
Nathaniel Nicandro
3b94b2b4dc
Fix jupyter-mlet*
binding
2023-02-13 20:30:19 -06:00
Nathaniel Nicandro
d4c9e24465
Remove jupyter-then
2023-02-13 20:30:19 -06:00
Nathaniel Nicandro
b7ca2d47fa
jupyter-return-delayed-thunk: Use thunk-delay
...
This makes it so that when a delayed value is bound, via
`jupyter-mlet*`, it always results in the same value as was computed
the first time it was bound. Previously the computation associated
with the delayed value would occur each time it was bound, resulting
in a newly computed value each time.
2023-02-13 20:30:19 -06:00
Nathaniel Nicandro
d061c6eb89
Rename jupyter-reply-message
-> jupyter-reply
2023-02-13 20:30:19 -06:00
Nathaniel Nicandro
423bdd76d8
Add jupyter-result
2023-02-13 20:30:19 -06:00
Nathaniel Nicandro
313cc02fa6
Re-add the jupyter-io
method
2023-02-13 20:30:19 -06:00
Nathaniel Nicandro
13935fe38f
Add jupyter-return-delayed-thunk
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
45e611a2d8
Remove jupyter--subscribe
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
a4a48f772b
Refactor to remove a use of jupyter-current-io
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
1dacde77b8
Update commentary
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
31d79dfd84
Remove do prefix of kernel action functions
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
9b4877c603
Document some functions
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
c1bff794d0
Add jupyter-reply-message
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
07bdc46a87
Move some code to a more appropriate place
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
3c2cc77348
Remove the callbacks
slot of a jupyter-request
...
Callbacks are added to a request using `jupyter-message-subscribed`.
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
22d2a3f327
Remove the jupyter-send
method...
...
- Add a `message-publisher` slot to `jupyter-request`, set when
sending a request.
- `*-request` functions now return a delayed request value instead of
a request. Update call sites.
- Add the functions `jupyter-messages`, `jupyter-idle`,
`jupyter-message-subscribed` and `jupyter-client-subscribed`.
- Move client subscription to a request's messages to
`jupyter-client-subscribed`.
- Request callbacks are now added via `jupyter-message-subscribed`.
- Reduce usage of callbacks in favor of searching `jupyter-messages`
where appropriate.
- Update tests
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
e1221d55a1
Add :parent-request member when publishing request messages
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
37a74e601b
Actually delay generation of request in jupyter-request
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
0f271ec322
monads: Reword doc
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
b763c09778
Remove unused functions
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
9dd6268fa5
Remove some comments
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
134167e65e
Remove keyword message types
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
ef26ef1b08
Remove jupyter-io
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
a23f8fe864
Use jupyter-generate-request
in jupyter-request
2023-02-13 20:25:05 -06:00
Nathaniel Nicandro
ab616e4609
Simplify jupyter-request
message collecting
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
e133c34707
Add do prefix to launch,shutdown,interrupt functions of a kernel
...
launch,shutdown,interrupt are now monadic functions.
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
f5d8e7c535
Remove unused function
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
bd6e2c3228
jupyter-monads.el: Require jupyter-base
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
84b2e140a4
jupyter-publisher: Mention jupyter-subscriber
in doc
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
fa43656632
jupyter-pseudo-bind-content: Mention errors in doc
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
f28c1c649a
Make jupyter-request
pure
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
fc0321a1fd
Distinguish between a publisher and subscriber error
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
1739346990
Remove unused function
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
61776abcce
Add WebSocket I/O
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
f09fd3618c
Modify the subscriber list instead of setting it
...
This is to account for the asynchronous nature of calls to Emacs
process filter functions. The old way had
`jupyter-pseudo-bind-content` return a new list of subscribers to set
so ultimately, if the same publisher was called recursively the
outer (older) call would set the list.
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
9f23483681
jupyter-request
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
680d8d845a
jupyter-publish: Simplify doc
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
e1843d719e
jupyter-filter and jupyter-filter-content
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
23e58afc35
jupyter-kernel-launch
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
01f76e07a7
jupyter-monads.el: Add jupyter-io
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
d720126871
Update doc of publisher
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
f5c2a4aa63
monads: request
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
02a9c2d7a8
monads: comments
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
5336f16851
jupyter-send-content -> jupyter-content
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
5bd9ca7cbc
Flush out the unsubscribe dynamic
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
c1896288d0
jupyter-monads.el: Doc changes
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
024c0e1378
jupyter-return-delayed: fix debug form
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
f19ba287db
Update comments
2023-02-13 20:22:50 -06:00
Nathaniel Nicandro
afa2f7ef65
pseudo-bind
2023-02-13 20:22:50 -06:00