2026/02/25

Newest at the top

2026-02-25 14:27:13 +0100housemate(~housemate@202.7.248.67) housemate
2026-02-25 14:23:46 +0100bggd_(~bgg@2a01:e0a:fd5:f510:37b0:d42d:8afb:890)
2026-02-25 14:23:40 +0100uli-fem(~uli-fem@118.210.1.123) (Ping timeout: 265 seconds)
2026-02-25 14:23:14 +0100qqq(~qqq@185.54.22.240) (Ping timeout: 268 seconds)
2026-02-25 14:18:43 +0100uli-fem(~uli-fem@118.210.1.123)
2026-02-25 14:17:24 +0100 <dminuoso> I feel like String was a bad idea to begin with.
2026-02-25 14:17:18 +0100housemate(~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
2026-02-25 14:17:14 +0100 <dminuoso> Im not entirely sure all excuses are good at the end.
2026-02-25 14:15:25 +0100 <chromoblob> yes, i got it
2026-02-25 14:14:46 +0100 <dminuoso> chromoblob: Also, regarding your initial question: GHC compiles to native machine code ultimately, and we compile into object files that get turned into separate object files that are later together, but you dont even know the access pattern ahead of time.
2026-02-25 14:11:52 +0100oskarw(~user@user/oskarw) (ERC 5.6.1 (IRC client for GNU Emacs 30.2))
2026-02-25 14:08:48 +0100 <merijn> converting Text to String is pretty efficient anyway
2026-02-25 14:08:27 +0100 <haskellbridge> <magic_rb> yeah Text ftw
2026-02-25 14:08:20 +0100 <merijn> s/hiredman/chromoblob
2026-02-25 14:08:09 +0100 <merijn> hiredman: Then just use Text everywhere :P
2026-02-25 14:02:57 +0100chenjf(~chenjf@68.64.178.54) (Client Quit)
2026-02-25 13:58:34 +0100chenjf(~chenjf@68.64.178.54)
2026-02-25 13:56:18 +0100uli-fem(~uli-fem@118.210.1.123) (Ping timeout: 246 seconds)
2026-02-25 13:55:05 +0100 <__monty__> That's the thing, it'd be slower for most of the code written to use String.
2026-02-25 13:54:15 +0100 <chromoblob> speed and memory is "nicer" to me than "niceness"
2026-02-25 13:53:27 +0100 <__monty__> So that leaves having a "buffer" instead of a list. And that just doesn't play as nice with functional idioms.
2026-02-25 13:52:37 +0100 <__monty__> chromoblob: Char is analogous to UTF-32 already, no?
2026-02-25 13:52:05 +0100uli-fem(~uli-fem@118.210.1.123)
2026-02-25 13:50:17 +0100Athas(athas@2a01:7c8:aaac:1cf:5b23:7d4e:8d70:47e1)
2026-02-25 13:50:04 +0100Athas(athas@2a01:7c8:aaac:1cf:10a0:cce8:21cf:53aa) (Quit: ZNC 1.9.1 - https://znc.in)
2026-02-25 13:45:16 +0100comonad(~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de)
2026-02-25 13:44:59 +0100comonad(~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de) (Server closed connection)
2026-02-25 13:44:57 +0100 <chromoblob> ;)
2026-02-25 13:44:19 +0100 <merijn> chromoblob: I mean, feel free to try it :>
2026-02-25 13:44:00 +0100poscat(~poscat@user/poscat) poscat
2026-02-25 13:43:03 +0100 <chromoblob> i mean, there are almost always very easy to decide optimizations
2026-02-25 13:42:55 +0100tremon(~tremon@83.80.159.219) tremon
2026-02-25 13:42:42 +0100 <merijn> That's the reason why Haskell has like 5-8 string types (depending how you count :p)
2026-02-25 13:42:11 +0100 <merijn> chromoblob: Basically automatically deciding optimal layout is hard, if not impossible
2026-02-25 13:42:08 +0100 <chromoblob> well, the source code would be portable...
2026-02-25 13:42:02 +0100machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod
2026-02-25 13:41:47 +0100 <merijn> Lazy Text
2026-02-25 13:41:45 +0100 <merijn> Rather
2026-02-25 13:41:41 +0100 <merijn> chromoblob: That's just Text?
2026-02-25 13:40:48 +0100 <chromoblob> could use UTF-32 or "UTF-24"
2026-02-25 13:40:23 +0100poscat(~poscat@user/poscat) (Remote host closed the connection)
2026-02-25 13:40:17 +0100 <chromoblob> complicates *
2026-02-25 13:40:14 +0100Moyst(~moyst@user/moyst) Moyst
2026-02-25 13:40:11 +0100 <chromoblob> yeah, Unicode complicated
2026-02-25 13:39:48 +0100 <chromoblob> well, no need to perfect things, but it'd be cool if Strings were stored as a UTF-8 buffer + a thunk for the rest of string
2026-02-25 13:38:59 +0100Moyst(~moyst@user/moyst) (Server closed connection)
2026-02-25 13:37:32 +0100uli-fem(~uli-fem@118.210.1.123) (Ping timeout: 256 seconds)
2026-02-25 13:36:52 +0100 <merijn> String literals are compiled to dense byte blobs that get lazily converted into [Char]
2026-02-25 13:36:38 +0100 <merijn> chromoblob: That said, string literals aren't actually even [Char] in compiled code
2026-02-25 13:36:26 +0100 <merijn> chromoblob: Because "optimal" is a hard thing to define :p