Newest at the top
2025-05-08 10:59:02 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-08 10:57:21 +0200 | <tomsmeding> | perhaps GHC is fine, I dunno |
2025-05-08 10:57:02 +0200 | <Lears> | How would GHC fail to cope with too much RankNTypes? Bluefin also requires polymorphic continuations everywhere, and it does just fine. |
2025-05-08 10:52:19 +0200 | <hellwolf> | I have no time to write down everything yet. |
2025-05-08 10:52:12 +0200 | <hellwolf> | thanks for being the rubber duck with me. you are the first one actually I conversed in details with what I built :D |
2025-05-08 10:51:55 +0200 | <tomsmeding> | https://git.tomsmeding.com/yahb2/tree/bwrap-files/start.sh |
2025-05-08 10:51:38 +0200 | <tomsmeding> | :) |
2025-05-08 10:51:31 +0200 | <hellwolf> | you thinki so, did it enforce it in the type system? |
2025-05-08 10:51:13 +0200 | <tomsmeding> | you have write access only to a small tmpfs |
2025-05-08 10:50:51 +0200 | <yahb2> | <interactive>:99:1: error: [GHC-76037] ; Not in scope: ‘System.Procerss.systme’ ; Note: No module named ‘System.Procerss’ is imported. |
2025-05-08 10:50:51 +0200 | <hellwolf> | % System.Procerss.systme "rm -rf /hahaha" |
2025-05-08 10:50:35 +0200 | <yahb2> | The Glorious Glasgow Haskell Compilation System, version 9.12.2 ; ExitSuccess |
2025-05-08 10:50:35 +0200 | <tomsmeding> | % System.Process.system "ghc --version" |
2025-05-08 10:50:23 +0200 | <tomsmeding> | it is |
2025-05-08 10:50:16 +0200 | <hellwolf> | I assume GHC is glorious |
2025-05-08 10:50:11 +0200 | <hellwolf> | oh :) |
2025-05-08 10:50:08 +0200 | <hellwolf> | that's for library write to hid? |
2025-05-08 10:50:02 +0200 | <tomsmeding> | probably too much for ghc to cope with |
2025-05-08 10:49:53 +0200 | <tomsmeding> | so you have RankNTypes EVERYWHERE |
2025-05-08 10:49:40 +0200 | <tomsmeding> | because the encoding I just described requires that the continuation of a side-effectful primop has a polymorphic type, to accept any w |
2025-05-08 10:49:38 +0200 | <hellwolf> | partial order in type? |
2025-05-08 10:49:32 +0200 | <hellwolf> | which is awkward to encode? |
2025-05-08 10:49:17 +0200 | <tomsmeding> | this is probably extremely awkward to encode in haskell |
2025-05-08 10:49:14 +0200 | <hellwolf> | hmm, interesting |
2025-05-08 10:49:05 +0200 | <tomsmeding> | essentially you'd be building up a partial order of versions, instead of using the "too structured" natural numbers |
2025-05-08 10:48:52 +0200 | <hellwolf> | that's right |
2025-05-08 10:48:36 +0200 | <tomsmeding> | but they aren't necessarily equal |
2025-05-08 10:48:28 +0200 | <tomsmeding> | then doing two separate side-effectful things to a 'va'-versioned variable would produce w1 and w2 that are both greater than 'va' |
2025-05-08 10:48:05 +0200 | <tomsmeding> | as in, if a side-effectful primop would not have versions (v, v+1) but (v, w) for some existential w such that w > v |
2025-05-08 10:48:00 +0200 | <hellwolf> | the versioned sequentially evolved world is really just a simple LTL system; in my view, I don't have literature to back it up here. |
2025-05-08 10:47:35 +0200 | <hellwolf> | are you familiar with LTL? |
2025-05-08 10:47:29 +0200 | fp | (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 245 seconds) |
2025-05-08 10:47:20 +0200 | <hellwolf> | that's a mathy way to say, I can see where you are going |
2025-05-08 10:47:08 +0200 | <tomsmeding> | because versions are actually natural numbers, and those have too much structure |
2025-05-08 10:46:53 +0200 | <hellwolf> | only linearity on arrow can enforce that |
2025-05-08 10:46:42 +0200 | <tomsmeding> | oh I see |
2025-05-08 10:46:38 +0200 | <hellwolf> | you have two data that has @vb, but they don't aggree with the timeline! |
2025-05-08 10:46:24 +0200 | <hellwolf> | va >>= vb in one monad, and va >>= vb in another monad |
2025-05-08 10:46:06 +0200 | <hellwolf> | think of diamond-shaped path |
2025-05-08 10:45:58 +0200 | <tomsmeding> | sure, unsafe APIs are for living dangerously, we're talking about the safe APIs |
2025-05-08 10:45:38 +0200 | <tomsmeding> | then I still don't see the problem |
2025-05-08 10:45:35 +0200 | <hellwolf> | there is unsafe api for building other safe API |
2025-05-08 10:45:25 +0200 | <hellwolf> | not safely |
2025-05-08 10:45:18 +0200 | <tomsmeding> | can you "upgrade" the version of a variable? |
2025-05-08 10:45:16 +0200 | <hellwolf> | I have drew on paper, but I just don't have a actual "paper" to check if I was right about my hunch |
2025-05-08 10:44:49 +0200 | <hellwolf> | you produce future version of the data of the same version but not from the same "course" |
2025-05-08 10:44:29 +0200 | <hellwolf> | but then you can diverge from the same version to other course of actions |
2025-05-08 10:44:27 +0200 | <tomsmeding> | and you still can't use it at version v+1, which is the freshness restriction |
2025-05-08 10:44:19 +0200 | <hellwolf> | it is the same version |
2025-05-08 10:44:13 +0200 | <tomsmeding> | even if you copy data at version v, the copy will still be at version v |