Logs: liberachat/#haskell
| 2026-03-19 13:28:35 | <gentauro> | Freakie: https://paste.tomsmeding.com/sJ9LB50B |
| 2026-03-19 13:29:36 | <gentauro> | Freakie: By looking at the table (and `hp2pretty`) I noticed what was leaking |
| 2026-03-19 13:29:47 | <gentauro> | there was actually several things … |
| 2026-03-19 13:30:03 | <gentauro> | so `seq` and ` |
| 2026-03-19 13:30:16 | <gentauro> | {-# INLINE … #-} |
| 2026-03-19 13:30:17 | <gentauro> | everywhere |
| 2026-03-19 13:31:50 | <Freakie> | I'll give it a whirl I guess |
| 2026-03-19 13:31:59 | <Freakie> | so far the biggest fix for has been to use strict lists |
| 2026-03-19 13:32:50 | <Freakie> | everything just feels like shot in the dark because all my data seems paradoxical to me |
| 2026-03-19 13:35:28 | → | prdak joins (~Thunderbi@user/prdak) |
| 2026-03-19 13:38:16 | <Freakie> | not easy to modify that script of yours :S |
| 2026-03-19 13:39:48 | × | AlexZenon quits (~alzenon@178.34.151.138) (Read error: Connection reset by peer) |
| 2026-03-19 13:40:04 | → | AlexZenon joins (~alzenon@178.34.151.138) |
| 2026-03-19 13:42:31 | × | prdak quits (~Thunderbi@user/prdak) (Quit: prdak) |
| 2026-03-19 13:42:49 | <Freakie> | gentauro yeah that's more or less what I already see from profiling, unfortunately |
| 2026-03-19 13:43:05 | × | acidjnk_new quits (~acidjnk@p200300d6e700e54146a195f20f1debd3.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 2026-03-19 13:52:36 | → | tri joins (~tri@69.74.159.34) |
| 2026-03-19 13:57:06 | × | tri quits (~tri@69.74.159.34) (Ping timeout: 248 seconds) |
| 2026-03-19 14:11:34 | × | poscat0x04 quits (~poscat@user/poscat) (Remote host closed the connection) |
| 2026-03-19 14:14:39 | <pipsquak-bird> | start from scartch and simplify! |
| 2026-03-19 14:14:46 | → | poscat joins (~poscat@user/poscat) |
| 2026-03-19 14:14:53 | <pipsquak-bird> | maek eevythgin as close to a number score like hit points |
| 2026-03-19 14:15:06 | <pipsquak-bird> | cmpuer can instantly do lke a 900 vriable problem in 1 second |
| 2026-03-19 14:15:12 | <pipsquak-bird> | so make thing numberical scores |
| 2026-03-19 14:15:24 | <pipsquak-bird> | all phd do is arbitrary category thery really |
| 2026-03-19 14:15:27 | <pipsquak-bird> | much of it is wrong |
| 2026-03-19 14:15:36 | <pipsquak-bird> | univeristy not soruce of truth nor school nor AI |
| 2026-03-19 14:16:08 | <pipsquak-bird> | hmm |
| 2026-03-19 14:16:20 | <pipsquak-bird> | software transactional memory |
| 2026-03-19 14:16:22 | <pipsquak-bird> | sounds sexy |
| 2026-03-19 14:16:30 | <pipsquak-bird> | how does it beat thread sor csp? |
| 2026-03-19 14:16:33 | <pipsquak-bird> | or actors? |
| 2026-03-19 14:20:52 | <pipsquak-bird> | 9p.io is interesting as is greenarrays.com and ocam-pi rmox system, csp based not sure about forth |
| 2026-03-19 14:22:42 | × | pierluc-codes quits (~pierlucco@modemcable092.154-83-70.mc.videotron.ca) (Ping timeout: 248 seconds) |
| 2026-03-19 14:30:22 | → | pierluc-codes joins (~pierlucco@modemcable092.154-83-70.mc.videotron.ca) |
| 2026-03-19 14:41:54 | × | myme quits (~myme@2a01:799:d5e:5f00:303a:da6f:3ef4:dbc1) (Ping timeout: 246 seconds) |
| 2026-03-19 14:43:00 | → | anselmschueler joins (~Thunderbi@user/schuelermine) |
| 2026-03-19 14:43:04 | → | myme joins (~myme@2a01:799:d5e:5f00:bb34:b3ad:fa86:ff90) |
| 2026-03-19 14:43:48 | × | anselmschueler quits (~Thunderbi@user/schuelermine) (Remote host closed the connection) |
| 2026-03-19 14:55:16 | <mauke> | @protontorpedo |
| 2026-03-19 14:55:16 | <lambdabot> | how does j2ee compare to haskell? |
| 2026-03-19 14:55:23 | <mauke> | @protontorpedo |
| 2026-03-19 14:55:23 | <lambdabot> | ok is haskell a type of lisp? |
| 2026-03-19 14:56:31 | → | rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) |
| 2026-03-19 15:02:11 | → | machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net) |
| 2026-03-19 15:02:21 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 2026-03-19 15:13:49 | <merijn> | Freakie: Do you have code/the profiler output visible somewhere? |
| 2026-03-19 15:27:05 | → | acidjnk_new joins (~acidjnk@p200300d6e700e5412a4816b29ee23bce.dip0.t-ipconnect.de) |
| 2026-03-19 15:35:07 | × | CiaoSen quits (~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 2026-03-19 15:45:16 | <EvanR> | if you have a large input list then read it in using lazy I/O list or read it into not a list |
| 2026-03-19 15:46:15 | <EvanR> | a fully materialized large list is hell on memory usage |
| 2026-03-19 15:46:39 | × | madresch quits (~Thunderbi@user/madresch) (Ping timeout: 246 seconds) |
| 2026-03-19 15:55:41 | → | v0id_7 joins (~v0id_7@user/v0id-7:62772) |
| 2026-03-19 16:00:37 | → | traxex joins (traxex@user/traxex) |
| 2026-03-19 16:11:25 | <Freakie> | merijn i can upload it in a bit |
| 2026-03-19 16:11:38 | <Freakie> | trying to stresstest the program right now and I might run out of memory first |
| 2026-03-19 16:12:27 | <Freakie> | EvanR my issue is that I have to gradually *build* lists that can be exponentially large in the input |
| 2026-03-19 16:13:31 | <Freakie> | it's meant to explode in size but I should not be using over 1 gb of memory for 10000 nodes |
| 2026-03-19 16:13:59 | <Freakie> | at least I don't see how it should |
| 2026-03-19 16:22:15 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 258 seconds) |
| 2026-03-19 16:22:45 | → | califax_ joins (~califax@user/califx) |
| 2026-03-19 16:23:47 | × | califax quits (~califax@user/califx) (Ping timeout: 258 seconds) |
| 2026-03-19 16:24:00 | califax_ | is now known as califax |
| 2026-03-19 16:24:15 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 2026-03-19 16:24:33 | <gentauro> | my `String` knowledge in Haskell is a bit outdated. Wasn't there a `pragma` that could be used that made `String` "faster" as in not lazy `[Char]`? |
| 2026-03-19 16:24:59 | <probie> | Why not just use a better type like `Text` if you want that? |
| 2026-03-19 16:25:27 | gentauro | but still having the nice interface. For example: `case str of (c:cs) -> …` |
| 2026-03-19 16:26:20 | <gentauro> | probie: iirc, `Text` isn't part of `base` right? |
| 2026-03-19 16:28:52 | → | Tuplanolla joins (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) |
| 2026-03-19 16:30:33 | <probie> | gentauro: no, but it's one of GHC's boot libraries, so you can be sure that some version is available unless they're using a really ancient version of GHC, or a different compiler like microhs (in which case you don't have base anyway) |
| 2026-03-19 16:33:20 | <probie> | containers is outside base, but would you avoid `Map` and `Set` because of that? |
| 2026-03-19 16:36:09 | <haskellbridge> | <magic_rb> yeah i dont think there is a reason not to use text, its such a core library that essentially everythings depends on it, including ghc |
| 2026-03-19 16:37:21 | <probie> | and if you want pattern matching, you can have it |
| 2026-03-19 16:37:39 | <probie> | % :set -XOverloadedStrings -XViewPatterns -XPatternSynonyms |
| 2026-03-19 16:37:39 | <yahb2> | <no output> |
| 2026-03-19 16:37:53 | <probie> | % import qualified Data.Text as T |
| 2026-03-19 16:37:53 | <yahb2> | <no output> |
| 2026-03-19 16:38:14 | <probie> | % pattern S x xs <- (T.uncons -> Just (x, xs)) |
| 2026-03-19 16:38:14 | <yahb2> | <no output> |
| 2026-03-19 16:38:30 | <probie> | % pattern EOS <- (T.uncons -> Nothing) |
| 2026-03-19 16:38:30 | <yahb2> | <no output> |
| 2026-03-19 16:39:43 | <probie> | % map (\s -> case T.reverse s of { (S x _) -> Just x; EOS -> Nothing }) ["hello", "", "world"] |
| 2026-03-19 16:39:43 | <yahb2> | [Just 'o',Nothing,Just 'd'] |
| 2026-03-19 16:41:36 | <probie> | % let atLeast3 s = case s of { S _ (S _ (S _ _)) -> True; _ -> False } in filter atLeast3 $ T.words "To be, or not to be, that is the question" |
| 2026-03-19 16:41:36 | <yahb2> | ["be,","not","be,","that","the","question"] |
| 2026-03-19 16:42:35 | <chromoblob> | microhs? Haskell on microcontrollers? holy shit |
| 2026-03-19 16:44:13 | <EvanR> | Freakie, 1G resident for 10,000 of some small values does sound like a poorly laid out list algorithm which can't collect efficiently, it seems to me |
| 2026-03-19 16:44:27 | <haskellbridge> | <ijouw> If you get it to run on microcontrollers, please share build instructions |
| 2026-03-19 16:44:40 | <Freakie> | EvanR if you have any tips i'm all ears |
| 2026-03-19 16:45:34 | <Freakie> | fwiw each node at most 7 primitives distributed across 3 field (including constructors), so it should be something like ~16 bytes at worst I think per node |
| 2026-03-19 16:45:41 | <EvanR> | though I'm not sure what "I have to build lists" means, making a list is itself not usually an end |
| 2026-03-19 16:46:16 | <EvanR> | 16 bytes of useful value could balloon to several times more per list node because haskell |
| 2026-03-19 16:46:32 | <EvanR> | but not 100,000 times more if I'm not mistaken |
| 2026-03-19 16:46:38 | <Freakie> | I included the constructors and tags in that count |
| 2026-03-19 16:46:59 | <EvanR> | well 16 bytes is 2 pointers so it sounds unlikely |
| 2026-03-19 16:47:16 | <EvanR> | to be at most 16 |
| 2026-03-19 16:47:19 | <Freakie> | damn I forgot how memory works |
| 2026-03-19 16:47:43 | × | traxex quits (traxex@user/traxex) (Ping timeout: 264 seconds) |
| 2026-03-19 16:47:44 | <Freakie> | let me redo my math |
| 2026-03-19 16:48:09 | <EvanR> | each boxed value not only has a pointer to it from somewhere but GC metadata as well as payload |
All times are in UTC.