Logs: freenode/#haskell
| 2020-09-29 07:46:24 | <fog> | right, dont bother with the talk, sorry - i was just trying to get the part that was important |
| 2020-09-29 07:46:53 | <hc> | i mean the article. that's just as confusing and verbose |
| 2020-09-29 07:47:13 | <fog> | there was basically some magical way the kotlin language managed to render all of the handling of this tree processes as syntax where it could wrangle the contexts |
| 2020-09-29 07:47:40 | <nshepperd1> | what concurrency API doesn't need a way to run code concurrently |
| 2020-09-29 07:47:51 | <fog> | hc: seriously, its so simple - its just a tree as opposed to a list of concurrent processes. |
| 2020-09-29 07:48:04 | × | BalterNotz quits (ca420871@202.66.8.113) (Remote host closed the connection) |
| 2020-09-29 07:48:57 | <fog> | anyway, i cant understand how to structure an API for an actors model. apparently i dont want a "node list" and so presumably i dont want an edge list either |
| 2020-09-29 07:49:12 | <fog> | i guess the idea is just to capture all that into a syntax tree |
| 2020-09-29 07:49:31 | <fog> | and that kotlin gives some fancy way to write syntax like functions or something |
| 2020-09-29 07:49:52 | <fog> | so that he could write things like keywords like "launch" or "run" |
| 2020-09-29 07:50:28 | → | lucid_0x80 joins (~lucid_0x8@188.253.237.9) |
| 2020-09-29 07:50:48 | <fog> | but basically the whole idea of "structured concurrency" was just something like having a ADT for the connectivity between calling processes |
| 2020-09-29 07:51:42 | <fog> | ah, im confusing "comunications chanels" as edges, and this "calling processes" as parents, as branches in the syntax tree |
| 2020-09-29 07:51:57 | <fog> | i guess i should read more about mailboxes |
| 2020-09-29 07:52:50 | × | fog quits (a18146a5@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.165) (Quit: Connection closed) |
| 2020-09-29 07:54:04 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) |
| 2020-09-29 07:56:02 | × | digia quits (~digia@unaffiliated/digia) (Quit: Beep Boop...) |
| 2020-09-29 07:56:17 | → | digia joins (~digia@unaffiliated/digia) |
| 2020-09-29 07:58:33 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 2020-09-29 07:58:47 | → | madjestic joins (~madjestic@86-88-72-244.fixed.kpn.net) |
| 2020-09-29 07:58:52 | m1dnight_ | is now known as m1d |
| 2020-09-29 07:59:15 | → | fog30 joins (a18146b7@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.183) |
| 2020-09-29 07:59:36 | <fog30> | ok, so from what i can understand, it needs something like an erlang "scheduler" |
| 2020-09-29 08:00:18 | <fog30> | otherwise its going to be a wasteful thread, just rereading an empty mailbox over and over until it receives a "message" which is some input argument to the function |
| 2020-09-29 08:01:19 | <fog30> | im not sure how it works to do with the mailbox being listlike, so that the receipt of messages can be raced upon, and the control of which inputs to accept is then passed to the actor |
| 2020-09-29 08:01:22 | → | John20 joins (~John@82.46.59.122) |
| 2020-09-29 08:02:06 | <fog30> | like it can say, "i take types of Either Int Bool, where the Ints are from this actor, and im going to process them before any of the Bools im recieving from this other actor" |
| 2020-09-29 08:02:12 | <fog30> | by "reading its mailbox" |
| 2020-09-29 08:02:31 | <fog30> | and in this way, somehow converting between being a pushed or pulled process.. |
| 2020-09-29 08:02:48 | <fog30> | not sure what the termanology is - something to do with state vs costate |
| 2020-09-29 08:02:56 | <fog30> | producer vs consumer |
| 2020-09-29 08:03:01 | m1d | is now known as m1dnight_ |
| 2020-09-29 08:03:22 | × | Clough quits (~Cain@210.185.68.138) (Read error: Connection reset by peer) |
| 2020-09-29 08:03:33 | <fog30> | that by reading its mailbox, it decides when to respond, as opposed to being forced to respond by the thing sending messages |
| 2020-09-29 08:03:49 | → | Clough joins (~Cain@210.185.68.138) |
| 2020-09-29 08:03:50 | × | rprije quits (~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) (Remote host closed the connection) |
| 2020-09-29 08:04:11 | → | rprije joins (~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) |
| 2020-09-29 08:04:13 | × | klardotsh quits (~klardotsh@24.17.103.8) (Ping timeout: 246 seconds) |
| 2020-09-29 08:04:17 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-rzmwmtzgbawceqym) (Quit: Connection closed for inactivity) |
| 2020-09-29 08:04:41 | <fog30> | so you dont like, supply an argument to a function, you just put it in the mailbox, and the function can decide when to operate on it - i guess essentially becoming blocking in the process |
| 2020-09-29 08:05:01 | <fog30> | but, then, there is nothing that should be waiting on it, it only ever sends messages to other mailboxes |
| 2020-09-29 08:05:18 | → | aarvar joins (~foewfoiew@50.35.43.33) |
| 2020-09-29 08:05:22 | <fog30> | which then somehow serve like input arguments in function application syntax |
| 2020-09-29 08:05:31 | × | lucid_0x80 quits (~lucid_0x8@188.253.237.9) (Ping timeout: 260 seconds) |
| 2020-09-29 08:05:37 | × | shatriff quits (~vitaliish@176.52.219.10) (Ping timeout: 264 seconds) |
| 2020-09-29 08:05:39 | <fog30> | sounds totally mental |
| 2020-09-29 08:06:17 | <fog30> | let bound variables passed as inputs to functions would be replaced with emited messages stored in the actors mailbox |
| 2020-09-29 08:07:03 | <fog30> | i cant see how that would work at all really! the let bound variable might not have had a value written to it yet |
| 2020-09-29 08:07:26 | <fog30> | hmm, i guess that would be the empty list, as a mailbox |
| 2020-09-29 08:07:40 | <fog30> | so it seems like all values end up being replaced by lists |
| 2020-09-29 08:08:06 | <fog30> | wierd paradigm. pretty sure thats not how the actors models we have as libraries work... |
| 2020-09-29 08:08:32 | <fog30> | seems like the kind of thing that would work really well with linear types. |
| 2020-09-29 08:08:46 | <fog30> | then we can have messages that are like "burn after reading" |
| 2020-09-29 08:09:02 | <fog30> | so they dont need to be garbage collected |
| 2020-09-29 08:09:09 | m1dnight_ | is now known as m1d |
| 2020-09-29 08:09:16 | m1d | is now known as m1dnight_ |
| 2020-09-29 08:09:27 | × | fog30 quits (a18146b7@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.183) (Quit: Connection closed) |
| 2020-09-29 08:09:31 | → | Sanchayan joins (~Sanchayan@136.185.169.201) |
| 2020-09-29 08:10:47 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 2020-09-29 08:11:37 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 2020-09-29 08:13:16 | × | tzh quits (~tzh@2601:448:c500:5300::82b3) (Quit: zzz) |
| 2020-09-29 08:14:57 | hackage | nothunks 0.1.1.0 - Examine values for unexpected thunks https://hackage.haskell.org/package/nothunks-0.1.1.0 (EdskoDeVries) |
| 2020-09-29 08:16:54 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 2020-09-29 08:18:40 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 2020-09-29 08:21:06 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 2020-09-29 08:23:27 | → | sword865 joins (uid208942@gateway/web/irccloud.com/x-uhmvawtkvtngcrcd) |
| 2020-09-29 08:24:33 | → | o1lo01ol1o joins (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
| 2020-09-29 08:27:46 | → | ubert joins (~Thunderbi@178.165.128.50.wireless.dyn.drei.com) |
| 2020-09-29 08:28:47 | × | ubert quits (~Thunderbi@178.165.128.50.wireless.dyn.drei.com) (Remote host closed the connection) |
| 2020-09-29 08:28:48 | → | mmohammadi9812 joins (~mmohammad@188.210.120.20) |
| 2020-09-29 08:29:26 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 2020-09-29 08:32:16 | → | jedws joins (~jedws@121.209.139.222) |
| 2020-09-29 08:32:45 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 2020-09-29 08:35:11 | × | jedws quits (~jedws@121.209.139.222) (Client Quit) |
| 2020-09-29 08:35:20 | → | isovector1 joins (~isovector@172.103.216.166) |
| 2020-09-29 08:35:25 | × | rzmt quits (~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 265 seconds) |
| 2020-09-29 08:35:27 | × | murphy_ quits (~murphy_@2604:2000:1281:8a9e:a00c:e87a:3ee5:cae0) (Ping timeout: 240 seconds) |
| 2020-09-29 08:36:36 | → | murphy_ joins (~murphy_@2604:2000:1281:8a9e:14d4:9618:a1b2:ef6b) |
| 2020-09-29 08:37:41 | → | rzmt joins (~rzmt@87-92-180-112.rev.dnainternet.fi) |
| 2020-09-29 08:38:00 | ← | isovector1 parts (~isovector@172.103.216.166) () |
| 2020-09-29 08:38:35 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Ping timeout: 240 seconds) |
| 2020-09-29 08:39:50 | × | paintedindigo quits (~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) (Quit: Leaving) |
| 2020-09-29 08:41:38 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 2020-09-29 08:42:11 | × | drbean quits (~drbean@TC210-63-209-154.static.apol.com.tw) (Ping timeout: 265 seconds) |
| 2020-09-29 08:43:50 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2020-09-29 08:44:44 | → | fog joins (a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150) |
| 2020-09-29 08:44:52 | <fog> | hmm, i have found several resources |
| 2020-09-29 08:44:53 | → | jedws joins (~jedws@121.209.139.222) |
| 2020-09-29 08:44:53 | <fog> | https://mail.haskell.org/pipermail/haskell-cafe/2014-March/113341.html |
| 2020-09-29 08:45:06 | <fog> | this is a pretty decent thread discussing actors models |
| 2020-09-29 08:45:24 | <fog> | not really sure about erlang vs cloud haskell |
| 2020-09-29 08:45:34 | <fog> | but i like the references to different implementations of channels |
| 2020-09-29 08:46:15 | <fog> | and different ways of scheduling, which i guess kind of makes actors basically an incomplete theory, if im not misunderstanding something |
| 2020-09-29 08:46:17 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 2020-09-29 08:46:23 | <fog> | seems non-deterministic at least |
| 2020-09-29 08:46:57 | <fog> | whereas you would normally want a "functions net" style implmentation with mutable state per function to be reproducable from the same initial conditions |
| 2020-09-29 08:47:15 | <fog> | basically then we end up with the same considerations about things like LVars for the channels |
| 2020-09-29 08:47:28 | <AWizzArd> | In Servant I describe my route and parameters, or the type of a json body. Now in Snap: is the way to go to fetch what is in the request and call Aeson’s `decode` manually on it? |
| 2020-09-29 08:47:32 | <fog> | and a lattice computation for the sheduling |
| 2020-09-29 08:48:28 | <fog> | but then, how would you do that sheduling? is it just a race? wouldnt it be better to have a way to demand that certain actors downstream of a let bound value can be demanded to be evaluated, or does that always result in blocking? |
All times are in UTC.