Logs: liberachat/#haskell
| 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.