2026/02/04

Newest at the top

2026-02-04 16:36:31 +0100 <mesaoptimizer> I've thought about a call-by-push-value lambda calculus compiler for haskell
2026-02-04 16:36:12 +0100 <mesaoptimizer> I think it is a fun idea :)
2026-02-04 16:35:34 +0100 <mesaoptimizer> the obvious downside is that almost the entire hackage system is inaccessible
2026-02-04 16:35:29 +0100 <haskellbridge> <Morj> The worst part is that I get an urge to write one myself too
2026-02-04 16:35:08 +0100 <mesaoptimizer> its lovely to have a very tiny haskell implementation, to be honest
2026-02-04 16:34:38 +0100 <haskellbridge> <Morj> Oh cool. I should install and try it myself (=
2026-02-04 16:34:15 +0100mesaoptimizersighs and reinstalls microhs again to double check
2026-02-04 16:33:51 +0100 <mesaoptimizer> I see. I think that is what the switch that I recall may have been doing.
2026-02-04 16:33:33 +0100fp(~Thunderbi@130.233.70.158) (Ping timeout: 250 seconds)
2026-02-04 16:33:15 +0100wickedjargon(~user@2605:8d80:5431:33ac:d84d:2363:57fe:412) (Remote host closed the connection)
2026-02-04 16:32:51 +0100 <haskellbridge> <Morj> I meant building packages using ghc as the compiler and mcabal as the build system (mcabal calling ghc instead of microhs)
2026-02-04 16:31:21 +0100 <mesaoptimizer> also I'm unsure what happens when you use the `--ghc` switch with mcabal
2026-02-04 16:31:15 +0100pavonia(~user@user/siracusa) (Ping timeout: 265 seconds)
2026-02-04 16:30:59 +0100 <mesaoptimizer> you mean the `--ghc` switch? yeah I have troubles with using cabal for effectively anything. If you have a working cabal setup for your GHC then I guess that works. I don't think that strategy is tenable for someone who wants to use only microhs + mcabal though
2026-02-04 16:25:13 +0100Inline(~User@2a02:908:1246:26e0:e780:60f2:d5f3:ea13) (Quit: KVIrc 5.2.6 Quasar http://www.kvirc.net/)
2026-02-04 16:24:24 +0100 <haskellbridge> <Morj> But can I build using ghc with mcabal?
2026-02-04 16:19:54 +0100petrichor(~jez@user/petrichor) (Quit: ZNC 1.10.1 - https://znc.in)
2026-02-04 16:17:34 +0100tydes(~tydes@user/ttydes) ttydes
2026-02-04 16:10:50 +0100 <mesaoptimizer> also any package that involves networking seems to throw an error
2026-02-04 16:10:35 +0100 <mesaoptimizer> any package that depends on ghc-prim cannot be installed via mcabal
2026-02-04 16:10:23 +0100 <mesaoptimizer> IIRC it couldn't build aeson for example, because that relied on ghc-prim
2026-02-04 16:09:57 +0100 <mesaoptimizer> microhs + mcabal cannot yet install / build most hackage packages
2026-02-04 16:09:31 +0100trickard_(~trickard@cpe-61-98-47-163.wireline.com.au)
2026-02-04 16:09:17 +0100trickard(~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-02-04 16:06:59 +0100noctux(~noctux@user/noctux) noctux
2026-02-04 16:04:28 +0100 <gentauro> Morj: Got it
2026-02-04 16:01:55 +0100 <haskellbridge> <Morj> I wanted to suggest memorizing that ($) is zero and using that as a mnemonic =)
2026-02-04 16:01:30 +0100 <dutchie> i always have to :i $ in ghci to see whether low number is tight binding or not
2026-02-04 16:00:40 +0100 <dutchie> why can I never remember which way the numbers go in fixity declarations
2026-02-04 15:59:58 +0100 <haskellbridge> <Morj> I could create an array of size 33 padded with zeroes, true, but it's even less convenient to use - there is no simple conversion from size 33 to size 32
2026-02-04 15:57:19 +0100 <haskellbridge> <Morj> If it were just Box<[u8]>, this could be achieved very simply. If it were [u8; 32] to append a byte and get [u8; 33] - also very simple. But I wanted to write one function for several N sizes
2026-02-04 15:56:33 +0100 <haskellbridge> <Morj> I wanted to write this function because I have arrays of different sizes (for XOF seeding), and the algorithm wants to append one or two bytes to the seeds sometimes
2026-02-04 15:55:57 +0100 <haskellbridge> <Morj> In rust you can have a choice between statically and dynamically known sizes, roughly [u8; N] and Box<[u8]>
2026-02-04 15:55:35 +0100 <gentauro> And you end up padding/populating non-used array items with some value.
2026-02-04 15:54:54 +0100 <gentauro> Morj: I noticed myself that Rust needs to know (statically) the size of arrays. Don't you end up by using a fixed buffer size and then just iterate?
2026-02-04 15:49:05 +0100 <akegalj> magic_rb: found this https://mail.haskell.org/pipermail/beginners/2010-October/005571.html
2026-02-04 15:49:04 +0100noctux(~noctux@user/noctux) (Ping timeout: 246 seconds)
2026-02-04 15:39:55 +0100 <merijn> I mean, that's kinda easy, just turn into ByteString and use attoparsec and/or binary :p
2026-02-04 15:38:32 +0100 <haskellbridge> <magic_rb> i wrote a fat32 filesystem driver in haskell for my thesis, it was an experience
2026-02-04 15:38:20 +0100 <haskellbridge> <magic_rb> my condolences
2026-02-04 15:33:43 +0100 <haskellbridge> <Morj> *with in haskell
2026-02-04 15:33:26 +0100 <haskellbridge> <Morj> «I have a [Word8] that I would like to convert to a Word32 in big endian. How can I do that?» - type shit that I have to deal with haskell
2026-02-04 15:33:18 +0100 <haskellbridge> <Morj> I think it's gc. I was rather talking about not having a big runtime, the environment is rather memory constrained
2026-02-04 15:32:33 +0100 <haskellbridge> <magic_rb> or does it do refcounting
2026-02-04 15:32:26 +0100 <haskellbridge> <magic_rb> microhs still does gc no?
2026-02-04 15:32:17 +0100 <haskellbridge> <Morj> Although, performance..
2026-02-04 15:31:27 +0100 <haskellbridge> <Morj> Hm, actually microhs might fit there, need to evaluate
2026-02-04 15:31:12 +0100 <haskellbridge> <magic_rb> :(
2026-02-04 15:31:06 +0100 <haskellbridge> <Morj> «just, give me haskell thank you very much» yeh. Except I currently have to write a thing without gc or a large runtime at all
2026-02-04 15:30:41 +0100 <haskellbridge> <magic_rb> honestly the only reason i may personally choose rust over haskell is due to the library ecosystem. for embedded i would try microhs, though idk how well that would work