2025-04-06 23:43:54 +0200 <monochrom> Why do I feel that "complete separation of syntax and semantics" is the definition of cryptography? :)
2025-04-06 23:44:16 +0200 <EvanR> I'm not sure what an example of incomplete separation of syntax and semantics is
2025-04-06 23:45:32 +0200 <EvanR> even in lisp, if you try, you'll see it's two different things
2025-04-06 23:45:47 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-06 23:46:08 +0200 <haskellbridge> <hellwolf> but back to the linearity + parallelism, I do believe there can be an inspirational example where linearity provides reasource safety and convenience of coding (no need for monads), while parallism using par/pseq gives it the ultimate edge over ST monad.
2025-04-06 23:46:20 +0200 <haskellbridge> <hellwolf> another day..
2025-04-06 23:47:12 +0200tromp(~textual@2001:1c00:3487:1b00:c873:d422:44c2:cc0c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-06 23:47:32 +0200 <EvanR> monads and linear types aren't mutually exclusive competing things
2025-04-06 23:47:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-06 23:47:36 +0200kathryn1024_(~kathryn10@user/kathryn1024) (Ping timeout: 264 seconds)
2025-04-06 23:48:17 +0200 <EvanR> linear base has several linear monads
2025-04-06 23:48:54 +0200 <hellwolf> monad necessarily sequentialize things.
2025-04-06 23:49:06 +0200 <EvanR> no?
2025-04-06 23:49:27 +0200 <monochrom> The Identity Monad doesn't sequentialize things.
2025-04-06 23:50:13 +0200 <monochrom> What you want to state instead is that there is no guarantee that an arbitrary monad doesn't sequentialize things.
2025-04-06 23:50:15 +0200 <EvanR> e.g. Par is a monad
2025-04-06 23:50:50 +0200 <monochrom> But one is really better off talking about one particular monad rather than general statements.
2025-04-06 23:51:26 +0200 <c_wraith> What's funny is that if you take Identity and change it from newtype to data, leaving all the function definitions the same... it suddenly starts strongly ordering in >>=
2025-04-06 23:52:29 +0200 <EvanR> probably a bug in "what is sequentialize even"
2025-04-06 23:52:34 +0200 <monochrom> OK, what you want to state instead is that monads necessarily adds data dependency.
2025-04-06 23:52:55 +0200 <EvanR> does it?
2025-04-06 23:53:13 +0200 <monochrom> (But Tardis would be an example where data dependency does not imply control flow sequentiency.)
2025-04-06 23:53:33 +0200 <c_wraith> Eh. It adds the opportunity for a data dependency
2025-04-06 23:53:50 +0200 <monochrom> OK right right.
2025-04-06 23:53:58 +0200forell(~forell@user/forell) (Ping timeout: 268 seconds)
2025-04-06 23:54:08 +0200 <dolio> Data Identity doesn't really sequence things, either. At least, you aren't specified to be able to rely on it.
2025-04-06 23:55:04 +0200 <monochrom> Also, I used to have much fun with left recursion with Control.Monad.State.Lazy.
2025-04-06 23:55:26 +0200 <dolio> I think.
2025-04-06 23:55:57 +0200 <c_wraith> It depends on how >>= is implemented. If it pattern matches its left argument, it does guarantee sequential evaluation to at least that constructor.
2025-04-06 23:56:13 +0200 <c_wraith> But it had better document how it's implemented.
2025-04-06 23:56:44 +0200 <koala_man> |cos|: it's hard enough to try to stay compatible with different GHC versions, let alone anything else. if you have Wine then you could try running the windows binary
2025-04-06 23:56:45 +0200 <dolio> I'm not certain that if you have multiple binds that the compiler can see, it isn't allowed to reorder them and stuff.
2025-04-06 23:56:47 +0200 <c_wraith> (the big difference here is that pattern-matching a data constructor causes evaluation, but matching a newtype constructor is a no-op)
2025-04-06 23:58:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-06 23:58:16 +0200 <EvanR> > error "hmm" >>= error "haw" :: Identity Char
2025-04-06 23:58:17 +0200 <lambdabot> Identity *Exception: haw
2025-04-06 23:58:29 +0200 <EvanR> > error "hmm" >>= error "haw" :: IO Char
2025-04-06 23:58:30 +0200 <lambdabot> <IO Char>
2025-04-06 23:58:37 +0200 <EvanR> lol
2025-04-06 23:58:44 +0200 <monochrom> You will need yahb2 for that.
2025-04-06 23:58:53 +0200 <monochrom> > putStrLn "<IO ()>"
2025-04-06 23:58:55 +0200 <lambdabot> <IO ()>
2025-04-06 23:59:04 +0200 <EvanR> % error "hmm" >>= error "haw" :: IO Char
2025-04-06 23:59:04 +0200 <yahb2> *** Exception: hmm ; ; HasCallStack backtrace: ; error, called at <interactive>:53:1 in interactive:Ghci12
2025-04-07 00:00:04 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-04-07 00:00:46 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-04-07 00:03:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-07 00:04:05 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-04-07 00:07:24 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2025-04-07 00:07:24 +0200ljdarj1ljdarj
2025-04-07 00:11:02 +0200 <hellwolf> here you go: https://github.com/hellwolf/haskell-examples/blob/master/2025-04-07-nfa-unboxed-linearity/nfa-perf… will share to discourse tomorrow with a few more details. feedback welcome.
2025-04-07 00:13:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-07 00:16:30 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-04-07 00:18:20 +0200Guest90(~Guest90@76.78.179.109) (Quit: Client closed)
2025-04-07 00:19:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-07 00:29:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-07 00:39:01 +0200 <|cos|> koala_man: understandable! i wasn't really expecting it to be possible. the wine-idea is a creative approach!
2025-04-07 00:39:07 +0200jacopovalanzano(~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net) (Quit: Client closed)
2025-04-07 00:45:12 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2025-04-07 00:52:52 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-07 00:57:29 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2025-04-07 00:58:30 +0200 <|cos|> koala_man: unless there are other ways to run wine on haiku than winebox, i guess that's a non-starter. it sure looks like a cool project, but it appears to be fully graphical with no concept of a console. it would be tricky to connect shellcheck to vim through such a component.
2025-04-07 01:00:07 +0200 <EvanR> what appears to be fully graphical wit hno concept of a console? winebox? spellcheck?
2025-04-07 01:02:28 +0200jespada(~jespada@r179-25-205-222.dialup.adsl.anteldata.net.uy) (Ping timeout: 245 seconds)
2025-04-07 01:03:13 +0200 <|cos|> i see nothing in the documentation of winebox to connect a console
2025-04-07 01:05:34 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-04-07 01:06:19 +0200jespada(~jespada@r179-25-210-114.dialup.adsl.anteldata.net.uy) jespada
2025-04-07 01:11:37 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-04-07 01:13:20 +0200sprotte24(~sprotte24@p200300d16f28a1000c1aac2cfe7f30d8.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-07 01:15:08 +0200 <geekosaur> windows doesn't have the concept of connecting an external console, so I wouldn't expect one
2025-04-07 01:16:36 +0200 <geekosaur> the closest you get is RDP, which would be running as a service inside of winebox (and would only be available if you were running actual windows inside of it, which is possible with linux wine but I have no idea about winebox)
2025-04-07 01:18:09 +0200 <EvanR> wine ought to be able to run a console only windows program
2025-04-07 01:18:20 +0200 <EvanR> dunno about winebox
2025-04-07 01:19:45 +0200 <geekosaur> well, wine doesn't come with a console, but you can install windows inside of it and use cmd.exe and probably powershell
2025-04-07 01:20:07 +0200 <geekosaur> or install msys2 and use mintty
2025-04-07 01:22:41 +0200 <geekosaur> but "winebox" suggests to me it's more complex than that (wine on most platforms translates win32 calls to native ones, but this sounds like it runs them in a separate environment of some kind)
2025-04-07 01:22:59 +0200 <geekosaur> so a lot will depend on the nature of that environment
2025-04-07 01:23:49 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Ping timeout: 260 seconds)
2025-04-07 01:25:08 +0200 <EvanR> what is this program "wineconsole"
2025-04-07 01:29:57 +0200 <monochrom> Yikes, installing windows inside wine... That breaks my mind. :)
2025-04-07 01:30:25 +0200 <monochrom> I need more wine to understand that. >:)
2025-04-07 01:30:34 +0200 <geekosaur> it shouldn't. wine just emulates the win32 api, it provides none of the commands or services
2025-04-07 01:30:49 +0200 <geekosaur> so for many things you need to install windows in it to get them
2025-04-07 01:33:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-07 01:34:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-07 01:34:50 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-07 01:35:11 +0200 <EvanR> wouldn't a windows program that writes to stdout, suitably "translated", be outputting to your terminal as normal
2025-04-07 01:36:13 +0200 <EvanR> I could try it using a random EXE from the internet but I might get hacked!
2025-04-07 01:37:29 +0200 <geekosaur> oddly enough, that "suitably translated" turns out to be surprisingly hard under windows
2025-04-07 01:38:37 +0200 <geekosaur> the runtime "manufactures" a cmd.exe and hooks it somehow to your program. I'm a bit weak on the details
2025-04-07 01:39:13 +0200 <geekosaur> and when it does so it usually turns off gui calls for some reason
2025-04-07 01:39:54 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-07 01:41:12 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-07 01:42:25 +0200sh1n(~sh1n@2800:2134:583f:e223:7b49:e90d:6522:419d) (Remote host closed the connection)
2025-04-07 01:43:35 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-07 01:44:29 +0200hgolden_(~hgolden@2603:8000:9d00:3ed1:d319:57ed:d2cb:68a5) hgolden
2025-04-07 01:45:08 +0200remexre(~remexre@user/remexre) remexre
2025-04-07 01:47:09 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:1b03:b08c:d961:6530) (Ping timeout: 260 seconds)