Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,799,444 events total
2026-02-04 13:28:52 chromoblob joins (~chromoblo@user/chromob1ot1c)
2026-02-04 13:29:09 AlexZenon joins (~alzenon@85.174.181.199)
2026-02-04 13:29:23 Alex_delenda_est joins (~al_test@85.174.181.199)
2026-02-04 13:31:45 AlexNoo joins (~AlexNoo@85.174.181.199)
2026-02-04 13:32:43 emaczen joins (~user@user/emaczen)
2026-02-04 13:37:49 × mjacob quits (~mjacob@adrastea.uberspace.de) (Ping timeout: 264 seconds)
2026-02-04 13:42:01 <mesaoptimizer> wonder why
2026-02-04 13:42:30 <mesaoptimizer> perhaps their target customer base changed
2026-02-04 13:44:33 <gentauro> mesaoptimizer: I recall that Snoyman is educated in Actuarial sciences. Perhaps Rust is a better tool for solving those kind of problems?
2026-02-04 13:54:57 infinity0 joins (~infinity0@pwned.gg)
2026-02-04 13:56:00 poscat0x04 joins (~poscat@user/poscat)
2026-02-04 13:57:58 × poscat quits (~poscat@user/poscat) (Ping timeout: 265 seconds)
2026-02-04 14:01:31 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 264 seconds)
2026-02-04 14:02:07 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2026-02-04 14:03:48 __monty__ joins (~toonn@user/toonn)
2026-02-04 14:04:30 akegalj joins (~akegalj@141-136-251-118.dsl.iskon.hr)
2026-02-04 14:06:43 × Enrico63 quits (~Enrico63@148.252.128.12) (Ping timeout: 272 seconds)
2026-02-04 14:07:28 merijn joins (~merijn@77.242.116.146)
2026-02-04 14:08:33 tremon joins (~tremon@83.80.159.219)
2026-02-04 14:09:00 × lucabtz quits (~lucabtz@user/lucabtz) (Quit: leaving)
2026-02-04 14:09:10 lucabtz joins (~lucabtz@user/lucabtz)
2026-02-04 14:13:02 wickedjargon joins (~user@2605:8d80:5431:33ac:d84d:2363:57fe:412)
2026-02-04 14:13:29 <mesaoptimizer> well, I haven't tried Rust yet, but I do understand that it has a surprising number of ML-family features I appreciate, such as ADTs and exhaustive pattern matching
2026-02-04 14:21:02 <haskellbridge> <magic_rb> and it lacks a substantial amount of features that make using it a pain :P
2026-02-04 14:21:34 infinity0 joins (~infinity0@pwned.gg)
2026-02-04 14:23:39 <lucabtz> magic_rb what features would you like to see in rust?
2026-02-04 14:23:47 <merijn> It's more like "Rust pays a (fairly heavy) price, to attain something hard to achieve" (i.e. memory safety without GC)
2026-02-04 14:24:03 <merijn> So Rust is supercool. IFF you cannot afford/accept a GC
2026-02-04 14:24:18 <haskellbridge> <magic_rb> lucabtz: monads, more type magic, GC
2026-02-04 14:24:38 <merijn> Now, personally I think the vast majority of code is perfectly fine with a GC. In which case you pay the price for nothing
2026-02-04 14:24:45 <lucabtz> it kinda has do notation, but only for Option and Result
2026-02-04 14:25:03 <merijn> If you can afford GC then something like Haskell, Scala, any ML will give you essentially all the stuff you want
2026-02-04 14:25:03 <lucabtz> and for future
2026-02-04 14:25:07 <haskellbridge> <magic_rb> in 99% of cases i dont give a rats ass about not having a GC and having to fight the borrow checker or sprinkle Arc<> absolutely everywhere is not what i want to be doing
2026-02-04 14:25:23 <haskellbridge> <magic_rb> not having actual do notation with Monads is to me a deal breaker
2026-02-04 14:25:43 <haskellbridge> <magic_rb> things get so much more awkward with those imo
2026-02-04 14:25:58 <lucabtz> yeah they missed a chance with do notation maybe
2026-02-04 14:29:12 <haskellbridge> <Morj> «what features would you like to see in rust» I want `pub fn append_byte<const N: usize>(array: [u8; N], b: u8) -> [u8; N + 1]` to compile
2026-02-04 14:29:39 <haskellbridge> <Morj> And monad readers
2026-02-04 14:29:50 <haskellbridge> <magic_rb> and a GC
2026-02-04 14:29:57 <haskellbridge> <magic_rb> just, give me haskell thank you very much
2026-02-04 14:30:11 <haskellbridge> <Morj> I'm partial to the RIO approach of having only one monad, but you parameterize the context you read from it
2026-02-04 14:30:22 Enrico63 joins (~Enrico63@148.252.128.12)
2026-02-04 14:30:29 <haskellbridge> <Morj> If this were in rust, some problems of async runtimes would be removed
2026-02-04 14:30:41 <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
2026-02-04 14:31:06 <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 14:31:12 <haskellbridge> <magic_rb> :(
2026-02-04 14:31:27 <haskellbridge> <Morj> Hm, actually microhs might fit there, need to evaluate
2026-02-04 14:32:17 <haskellbridge> <Morj> Although, performance..
2026-02-04 14:32:26 <haskellbridge> <magic_rb> microhs still does gc no?
2026-02-04 14:32:33 <haskellbridge> <magic_rb> or does it do refcounting
2026-02-04 14:33:18 <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 14:33:26 <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 14:33:43 <haskellbridge> <Morj> *with in haskell
2026-02-04 14:38:20 <haskellbridge> <magic_rb> my condolences
2026-02-04 14:38:32 <haskellbridge> <magic_rb> i wrote a fat32 filesystem driver in haskell for my thesis, it was an experience
2026-02-04 14:39:55 <merijn> I mean, that's kinda easy, just turn into ByteString and use attoparsec and/or binary :p
2026-02-04 14:49:04 × noctux quits (~noctux@user/noctux) (Ping timeout: 246 seconds)
2026-02-04 14:49:05 <akegalj> magic_rb: found this https://mail.haskell.org/pipermail/beginners/2010-October/005571.html
2026-02-04 14:54:54 <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 14:55:35 <gentauro> And you end up padding/populating non-used array items with some value.
2026-02-04 14:55:57 <haskellbridge> <Morj> In rust you can have a choice between statically and dynamically known sizes, roughly [u8; N] and Box<[u8]>
2026-02-04 14:56:33 <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 14:57:19 <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 14:59:58 <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:00:40 <dutchie> why can I never remember which way the numbers go in fixity declarations
2026-02-04 15:01:30 <dutchie> i always have to :i $ in ghci to see whether low number is tight binding or not
2026-02-04 15:01:55 <haskellbridge> <Morj> I wanted to suggest memorizing that ($) is zero and using that as a mnemonic =)
2026-02-04 15:04:28 <gentauro> Morj: Got it
2026-02-04 15:06:59 noctux joins (~noctux@user/noctux)
2026-02-04 15:09:17 × trickard quits (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-02-04 15:09:31 trickard_ joins (~trickard@cpe-61-98-47-163.wireline.com.au)
2026-02-04 15:09:57 <mesaoptimizer> microhs + mcabal cannot yet install / build most hackage packages
2026-02-04 15:10:23 <mesaoptimizer> IIRC it couldn't build aeson for example, because that relied on ghc-prim
2026-02-04 15:10:35 <mesaoptimizer> any package that depends on ghc-prim cannot be installed via mcabal
2026-02-04 15:10:50 <mesaoptimizer> also any package that involves networking seems to throw an error
2026-02-04 15:17:34 tydes joins (~tydes@user/ttydes)
2026-02-04 15:19:54 × petrichor quits (~jez@user/petrichor) (Quit: ZNC 1.10.1 - https://znc.in)
2026-02-04 15:24:24 <haskellbridge> <Morj> But can I build using ghc with mcabal?
2026-02-04 15:25:13 × Inline quits (~User@2a02:908:1246:26e0:e780:60f2:d5f3:ea13) (Quit: KVIrc 5.2.6 Quasar http://www.kvirc.net/)
2026-02-04 15:30:59 <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 15:31:15 × pavonia quits (~user@user/siracusa) (Ping timeout: 265 seconds)
2026-02-04 15:31:21 <mesaoptimizer> also I'm unsure what happens when you use the `--ghc` switch with mcabal
2026-02-04 15:32:51 <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 15:33:15 × wickedjargon quits (~user@2605:8d80:5431:33ac:d84d:2363:57fe:412) (Remote host closed the connection)
2026-02-04 15:33:33 × fp quits (~Thunderbi@130.233.70.158) (Ping timeout: 250 seconds)
2026-02-04 15:33:51 <mesaoptimizer> I see. I think that is what the switch that I recall may have been doing.
2026-02-04 15:34:15 mesaoptimizer sighs and reinstalls microhs again to double check
2026-02-04 15:34:38 <haskellbridge> <Morj> Oh cool. I should install and try it myself (=
2026-02-04 15:35:08 <mesaoptimizer> its lovely to have a very tiny haskell implementation, to be honest
2026-02-04 15:35:29 <haskellbridge> <Morj> The worst part is that I get an urge to write one myself too
2026-02-04 15:35:34 <mesaoptimizer> the obvious downside is that almost the entire hackage system is inaccessible
2026-02-04 15:36:12 <mesaoptimizer> I think it is a fun idea :)
2026-02-04 15:36:31 <mesaoptimizer> I've thought about a call-by-push-value lambda calculus compiler for haskell
2026-02-04 15:48:01 × Enrico63 quits (~Enrico63@148.252.128.12) (Quit: Client closed)
2026-02-04 15:49:12 × lucabtz quits (~lucabtz@user/lucabtz) (Quit: Lost terminal)
2026-02-04 15:53:44 trickard_ is now known as trickard
2026-02-04 15:56:31 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
2026-02-04 16:00:13 × Square quits (~Square4@user/square) (Ping timeout: 244 seconds)
2026-02-04 16:01:21 edwardk awakens from his long slumber.

All times are in UTC.