2023-05-02 00:00:47 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
2023-05-02 00:08:30 +0200 | michalz | (~michalz@185.246.207.205) (Remote host closed the connection) |
2023-05-02 00:08:33 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-05-02 00:08:34 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-05-02 00:14:13 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-05-02 00:14:29 +0200 | jumper149 | (~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.8) |
2023-05-02 00:19:05 +0200 | JustPassingBy | (~DontMindM@188.132.236.106) |
2023-05-02 00:19:37 +0200 | Me-me | (~Me-me@user/me-me) |
2023-05-02 00:19:48 +0200 | falafel | (~falafel@2603-8000-d700-115c-156a-c6f3-3ee5-b716.res6.spectrum.com) |
2023-05-02 00:21:05 +0200 | falafel | (~falafel@2603-8000-d700-115c-156a-c6f3-3ee5-b716.res6.spectrum.com) (Remote host closed the connection) |
2023-05-02 00:21:27 +0200 | falafel | (~falafel@2603-8000-d700-115c-6c3b-389e-7e69-f43f.res6.spectrum.com) |
2023-05-02 00:32:17 +0200 | acidjnk | (~acidjnk@p200300d6e715c464285fef55bd00a3c3.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-05-02 00:35:22 +0200 | JustPassingBy | (~DontMindM@188.132.236.106) (Quit: Client closed) |
2023-05-02 00:36:33 +0200 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2023-05-02 00:40:31 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-5d8c-8b3d-ea84-cebb.rev.sfr.net) (Remote host closed the connection) |
2023-05-02 00:41:15 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-5d8c-8b3d-ea84-cebb.rev.sfr.net) |
2023-05-02 00:46:12 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-05-02 00:46:34 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-05-02 00:48:23 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-182-194.46.114.pool.telefonica.de) (Ping timeout: 260 seconds) |
2023-05-02 00:57:17 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2023-05-02 00:57:37 +0200 | biberu | (~biberu@user/biberu) |
2023-05-02 00:59:01 +0200 | dextaa | (~DV@user/dextaa) (Quit: Ping timeout (120 seconds)) |
2023-05-02 00:59:27 +0200 | dextaa | (~DV@user/dextaa) |
2023-05-02 01:04:01 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-05-02 01:18:59 +0200 | Xe | (~cadey@tailscale/xe) (Ping timeout: 265 seconds) |
2023-05-02 01:20:01 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-05-02 01:20:54 +0200 | Xe | (~cadey@tailscale/xe) |
2023-05-02 01:32:50 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-05-02 01:34:06 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-02 01:34:06 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-02 01:34:06 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-02 01:36:48 +0200 | mauke_ | (~mauke@user/mauke) |
2023-05-02 01:38:05 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 240 seconds) |
2023-05-02 01:38:06 +0200 | mauke_ | mauke |
2023-05-02 01:49:59 +0200 | falafel | (~falafel@2603-8000-d700-115c-6c3b-389e-7e69-f43f.res6.spectrum.com) (Ping timeout: 260 seconds) |
2023-05-02 01:55:23 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!) |
2023-05-02 02:12:15 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-05-02 02:12:51 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2023-05-02 02:13:33 +0200 | crns | (~netcrns@p4ff5ee17.dip0.t-ipconnect.de) |
2023-05-02 02:13:33 +0200 | crns | (~netcrns@p4ff5ee17.dip0.t-ipconnect.de) (Changing host) |
2023-05-02 02:13:33 +0200 | crns | (~netcrns@user/crns) |
2023-05-02 02:13:42 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-05-02 02:14:56 +0200 | gemmaro | (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) |
2023-05-02 02:17:31 +0200 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:8c38:7008:d307:dea1) |
2023-05-02 02:26:19 +0200 | Square2 | (~Square4@user/square) |
2023-05-02 02:29:45 +0200 | Square | (~Square@user/square) (Ping timeout: 268 seconds) |
2023-05-02 02:39:41 +0200 | mcglk | (~mcglk@131.191.19.145) (Read error: Connection reset by peer) |
2023-05-02 02:41:13 +0200 | mcglk | (~mcglk@131.191.19.145) |
2023-05-02 02:45:25 +0200 | nate1 | (~nate@98.45.169.16) |
2023-05-02 03:03:17 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-05-02 03:04:04 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-05-02 03:10:46 +0200 | bramhaag | (~bramhaag@134.195.121.39) (Read error: Connection reset by peer) |
2023-05-02 03:10:53 +0200 | bramhaag | (~bramhaag@134.195.121.39) |
2023-05-02 03:11:13 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-05-02 03:11:57 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:fdd9:cd01:9100:d00b) |
2023-05-02 03:12:05 +0200 | finnekit | (~finnekit@fsf/member/finnekit) (Ping timeout: 240 seconds) |
2023-05-02 03:12:43 +0200 | lottaquestions | (~nick@2607:fa49:503f:6d00:7d78:9c20:dd70:c4c8) |
2023-05-02 03:12:59 +0200 | bramhaag | (~bramhaag@134.195.121.39) (Client Quit) |
2023-05-02 03:16:13 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:fdd9:cd01:9100:d00b) (Ping timeout: 250 seconds) |
2023-05-02 03:16:32 +0200 | gmg | (~user@user/gehmehgeh) (Ping timeout: 240 seconds) |
2023-05-02 03:17:22 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-05-02 03:22:27 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-05-02 03:22:40 +0200 | bramhaag | (~bramhaag@134.195.121.39) |
2023-05-02 03:23:56 +0200 | finnekit | (~finnekit@fsf/member/finnekit) |
2023-05-02 03:25:45 +0200 | gmg | (~user@user/gehmehgeh) |
2023-05-02 03:26:09 +0200 | finnekit | (~finnekit@fsf/member/finnekit) (Client Quit) |
2023-05-02 03:26:59 +0200 | bramhaag | (~bramhaag@134.195.121.39) (Client Quit) |
2023-05-02 03:37:45 +0200 | bramhaag | (~bramhaag@134.195.121.39) |
2023-05-02 03:39:13 +0200 | finnekit | (~finnekit@fsf/member/finnekit) |
2023-05-02 03:45:31 +0200 | bramhaag1 | (~bramhaag@134.195.121.39) |
2023-05-02 03:46:50 +0200 | bramhaag | (~bramhaag@134.195.121.39) (Ping timeout: 268 seconds) |
2023-05-02 03:46:50 +0200 | bramhaag1 | bramhaag |
2023-05-02 03:46:53 +0200 | finnekit | (~finnekit@fsf/member/finnekit) (Ping timeout: 246 seconds) |
2023-05-02 03:48:59 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2023-05-02 03:50:48 +0200 | bilegeek | (~bilegeek@97.sub-174-208-228.myvzw.com) |
2023-05-02 03:51:21 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-02 03:51:37 +0200 | jinsun | Guest2793 |
2023-05-02 03:51:37 +0200 | jinsun__ | (~jinsun@user/jinsun) |
2023-05-02 03:51:37 +0200 | Guest2793 | (~jinsun@user/jinsun) (Killed (copper.libera.chat (Nickname regained by services))) |
2023-05-02 03:51:38 +0200 | jinsun__ | jinsun |
2023-05-02 03:53:53 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
2023-05-02 03:55:25 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-02 03:55:53 +0200 | bramhaag | (~bramhaag@134.195.121.39) (Quit: Ping timeout (120 seconds)) |
2023-05-02 03:56:01 +0200 | Square2 | Square |
2023-05-02 03:56:59 +0200 | bramhaag | (~bramhaag@134.195.121.39) |
2023-05-02 04:00:31 +0200 | finnekit | (~finnekit@fsf/member/finnekit) |
2023-05-02 04:09:10 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-05-02 04:18:52 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 276 seconds) |
2023-05-02 04:23:40 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-02 04:27:23 +0200 | rekahsoft | (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) |
2023-05-02 04:27:31 +0200 | rekahsoft | (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection) |
2023-05-02 04:29:05 +0200 | cheater | (~Username@user/cheater) (Remote host closed the connection) |
2023-05-02 04:30:07 +0200 | <Inst_> | hmmm, wait |
2023-05-02 04:30:11 +0200 | <Inst_> | does laziness imply backtracking? |
2023-05-02 04:30:12 +0200 | <Inst_> | https://paste.tomsmeding.com/mC81RdPa |
2023-05-02 04:30:20 +0200 | <Inst_> | this can't complete for take 1... length 8 |
2023-05-02 04:33:24 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2023-05-02 04:33:46 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 04:38:07 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Ping timeout: 250 seconds) |
2023-05-02 04:44:47 +0200 | <ski> | > inRange ((1,1),(7,7)) (3,4) |
2023-05-02 04:44:48 +0200 | <lambdabot> | True |
2023-05-02 04:45:01 +0200 | <Inst_> | thanks |
2023-05-02 04:45:15 +0200 | <ski> | `speculations' could use `filter' |
2023-05-02 04:45:31 +0200 | <Inst_> | https://hackage.haskell.org/package/base-4.18.0.0/docs/Data-Ix.html#v:inRange |
2023-05-02 04:45:33 +0200 | <Inst_> | cool |
2023-05-02 04:45:41 +0200 | <Inst_> | i used filter before, it was a microoptimization to take it out |
2023-05-02 04:45:57 +0200 | <Inst_> | thanks for introducing Ix typeclass to me |
2023-05-02 04:47:13 +0200 | <ski> | repeatedly using `length' there is inefficient. better would be to keep a counter |
2023-05-02 04:47:34 +0200 | <Inst_> | i switched to vec underneath, seems to cause more copying, unfortunately |
2023-05-02 04:48:11 +0200 | <ski> | (you could even use `replicateM_', on `StateT History []') |
2023-05-02 04:48:38 +0200 | <ski> | yea, lists will share tails |
2023-05-02 04:48:50 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 04:48:58 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
2023-05-02 04:49:06 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-05-02 04:49:06 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-05-02 04:49:06 +0200 | finn_elija | FinnElija |
2023-05-02 04:50:25 +0200 | <ski> | `GetHistoryFailure' is also unused |
2023-05-02 04:50:41 +0200 | td_ | (~td@i53870907.versanet.de) (Ping timeout: 250 seconds) |
2023-05-02 04:50:53 +0200 | <Inst_> | yeah, i know, was thinking about moving it to either |
2023-05-02 04:51:41 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-05-02 04:52:34 +0200 | td_ | (~td@i53870911.versanet.de) |
2023-05-02 04:52:48 +0200 | <ski> | and yes, the list monad will give you backtracking |
2023-05-02 04:53:02 +0200 | <Inst_> | or rather list type + laziness = backtracking? |
2023-05-02 04:54:38 +0200 | <ski> | yes |
2023-05-02 04:56:19 +0200 | <Inst_> | what is StateT History [] as a type? |
2023-05-02 04:56:19 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 250 seconds) |
2023-05-02 04:56:24 +0200 | <Inst_> | do you mean StateT History ()? |
2023-05-02 04:57:00 +0200 | <ski> | (also some redundant brackets in `generateSolutions') |
2023-05-02 04:57:11 +0200 | <ski> | no, that doesn't kind-check |
2023-05-02 04:57:21 +0200 | <Inst_> | yeah, i know, but it got modded a few times, not necessarily for the better |
2023-05-02 04:57:29 +0200 | <Inst_> | i guess the remaining challenge now is to figure out how to parallelize it intelligently |
2023-05-02 04:57:35 +0200 | <ski> | @kind StateT [(Int,Int)] () |
2023-05-02 04:57:36 +0200 | <lambdabot> | error: |
2023-05-02 04:57:36 +0200 | <lambdabot> | • Expected kind ‘* -> *’, but ‘()’ has kind ‘*’ |
2023-05-02 04:57:36 +0200 | <lambdabot> | • In the second argument of ‘StateT’, namely ‘()’ |
2023-05-02 04:57:38 +0200 | <ski> | @kind StateT [(Int,Int)] [] |
2023-05-02 04:57:39 +0200 | <lambdabot> | * -> * |
2023-05-02 04:57:51 +0200 | <Inst_> | i just want to figure out how to get it to let me take 1 . fromJust $ getSolutions 8 (1,1)... within a reasonable amount of time |
2023-05-02 04:58:25 +0200 | <Inst_> | ah, i see what you mean |
2023-05-02 04:58:37 +0200 | <Inst_> | since StateT is a monad transformer |
2023-05-02 04:58:52 +0200 | <ski> | being able to prune the state-space tree early, would be nice |
2023-05-02 04:59:29 +0200 | <ski> | (not sure whether there's an opportunity for that, though) |
2023-05-02 05:01:50 +0200 | <ski> | hm .. perhaps one could maintain a graph, keep removing edges, and somehow detect when it becomes disconnected |
2023-05-02 05:02:18 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::3) (Remote host closed the connection) |
2023-05-02 05:03:54 +0200 | <ski> | anyway, i guess i would start with the counter, see if that makes a noticable difference |
2023-05-02 05:04:49 +0200 | <Inst_> | yeah, already added it, slight performance improvement on non-vector version |
2023-05-02 05:05:38 +0200 | <Inst_> | what i'm looking for right now is an improved quicksort / treesort, i.e, in the sense that it was used to show off how much nicer a declarative programming paradigm was to an imperative one |
2023-05-02 05:06:08 +0200 | <ski> | "treesort" ? |
2023-05-02 05:06:26 +0200 | <ski> | guess you mean a recursive sort (?) |
2023-05-02 05:07:53 +0200 | <ski> | hm, also wondering if one could do divide-and-conquer, somehow |
2023-05-02 05:08:08 +0200 | <Inst_> | quicksort u = if null u then u else quicksort [lesser | lesser <- u, lesser < head u] <> [head u] <> [greaterOrEqual | greaterOrEqual <- u, greaterOrEqual >= head u] |
2023-05-02 05:08:18 +0200 | <Inst_> | someone else suggested that |
2023-05-02 05:08:43 +0200 | gemmaro | (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection) |
2023-05-02 05:08:46 +0200 | <Inst_> | hmmm, that doesn't work |
2023-05-02 05:08:52 +0200 | <ski> | missing one recursive call |
2023-05-02 05:08:56 +0200 | <Inst_> | quicksort u = if null u then u else quicksort [lesser | lesser <- tail u, lesser < head u] <> [head u] <> [greaterOrEqual | greaterOrEqual <- tail u, greaterOrEqual >= head u] |
2023-05-02 05:09:07 +0200 | <Inst_> | quicksort u = if null u then u else quicksort [lesser | lesser <- tail u, lesser < head u] <> [head u] <> quicksort [greaterOrEqual | greaterOrEqual <- tail u, greaterOrEqual >= head u] |
2023-05-02 05:09:38 +0200 | <ski> | pattern-matching to the rescue |
2023-05-02 05:09:50 +0200 | <Inst_> | as a one liner? ;) |
2023-05-02 05:09:59 +0200 | <Inst_> | but that's not in-place |
2023-05-02 05:10:02 +0200 | <ski> | just use `;' |
2023-05-02 05:10:04 +0200 | <Inst_> | so not a true quicksort |
2023-05-02 05:10:07 +0200 | <ski> | right |
2023-05-02 05:10:08 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-05-02 05:10:44 +0200 | <ski> | mergesort is not too bad |
2023-05-02 05:10:52 +0200 | <Inst_> | and no one would write that cancer code, it's pretty much massaged so it can be a one-liner |
2023-05-02 05:11:10 +0200 | <ski> | @type partition |
2023-05-02 05:11:11 +0200 | <lambdabot> | (a -> Bool) -> [a] -> ([a], [a]) |
2023-05-02 05:11:21 +0200 | <Inst_> | how well does timsort work in Haskell, since people decided that would be standard? |
2023-05-02 05:11:35 +0200 | <ski> | dunno about that one |
2023-05-02 05:13:01 +0200 | <Inst_> | i wonder if this works without scoped type variables |
2023-05-02 05:13:09 +0200 | <Inst_> | quicksort (u :: [a]) = if null u then u else quicksort [lesser | lesser <- tail u, lesser < head u] <> [head u] <> quicksort [greaterOrEqual | greaterOrEqual <- tail u, greaterOrEqual >= head u] :: [a] |
2023-05-02 05:13:31 +0200 | <Inst_> | seems to work |
2023-05-02 05:13:57 +0200 | <ski> | why would you think it needed those type ascriptions ? |
2023-05-02 05:14:18 +0200 | <Inst_> | the point / joke / parody is to turn quicksort into a one-liner in haskell without use of ; |
2023-05-02 05:14:33 +0200 | <Inst_> | that is the contents of the classic Haskell quicksort stuffed into one line |
2023-05-02 05:14:50 +0200 | <Inst_> | which is also useful as an example of "just because you can,t doesn't mean you should; i.e, give a damn about readability" |
2023-05-02 05:14:55 +0200 | <ski> | i don't really see the point in avoiding `;' |
2023-05-02 05:15:40 +0200 | <Inst_> | abuse of ; is something you can do in any language, only in heavily expression-oriented languages like haskell can you start creating degenerate expression-based code |
2023-05-02 05:15:58 +0200 | <ski> | anyway, you could at least avoid `head' and `tail', if you used an irrefutable pattern-match |
2023-05-02 05:17:28 +0200 | <Inst_> | quicksort u@(~(x:xs) :: [a]) = if null u then u else quicksort [lesser | lesser <- xs, lesser < x] <> [x] <> quicksort [greaterOrEqual | greaterOrEqual <- xs, greaterOrEqual >= x] :: [a] |
2023-05-02 05:17:29 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds) |
2023-05-02 05:19:34 +0200 | <ski> | hmm, now i'm wondering about a version of quick-sort that'd use three recursive calls |
2023-05-02 05:20:44 +0200 | zer0bitz_ | (~zer0bitz@2001:2003:f443:d600:5dc3:37f0:5096:1b30) |
2023-05-02 05:22:35 +0200 | zer0bitz | (~zer0bitz@2001:2003:f443:d600:799d:b077:ccea:4521) (Ping timeout: 265 seconds) |
2023-05-02 05:24:27 +0200 | rekahsoft | (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) |
2023-05-02 05:31:37 +0200 | phma | (phma@2001:5b0:2143:d3b8:7a30:9fcb:3105:385a) (Read error: Connection reset by peer) |
2023-05-02 05:32:41 +0200 | phma | (phma@2001:5b0:215a:e9f8:70e:a131:7bd8:ec6) |
2023-05-02 05:47:57 +0200 | <hammond> | im confused about the record syntax, say i have data Person = Person {name::String, adddrs::String} and I wanted to pattern match the name portion |
2023-05-02 05:48:11 +0200 | <hammond> | check p.name |
2023-05-02 05:49:26 +0200 | <hammond> | check p.name | p.name == "John" = ... if i pass the check function a person. |
2023-05-02 05:57:04 +0200 | <ski> | check Person {name = "John"} = ... |
2023-05-02 06:00:36 +0200 | <johnw> | I'm here |
2023-05-02 06:08:56 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-05-02 06:09:13 +0200 | <hammond> | even if u do something like `prefixOf` |
2023-05-02 06:15:10 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2023-05-02 06:17:18 +0200 | <geekosaur> | I think if you want to use record dot then it's `check p | "John" `isPrefixOf` p.name = …` |
2023-05-02 06:18:20 +0200 | rekahsoft | (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Ping timeout: 260 seconds) |
2023-05-02 06:19:11 +0200 | <ski> | check Person {name = (("John" `isPrefixOf`) -> True),adddrs} = ... |
2023-05-02 06:20:05 +0200 | <hammond> | slick ski |
2023-05-02 06:20:08 +0200 | <hammond> | thanks. |
2023-05-02 06:20:45 +0200 | <ski> | check Person {name,adddrs} | "John" `isPrefixOf` name = ... -- also works, obviously |
2023-05-02 06:20:58 +0200 | rekahsoft | (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) |
2023-05-02 06:27:48 +0200 | falafel | (~falafel@2603-8000-d700-115c-9bf8-6766-e74e-f083.res6.spectrum.com) |
2023-05-02 06:33:29 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
2023-05-02 06:35:11 +0200 | rekahsoft | (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Ping timeout: 268 seconds) |
2023-05-02 06:37:02 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2023-05-02 06:37:30 +0200 | bilegeek | (~bilegeek@97.sub-174-208-228.myvzw.com) (Quit: Leaving) |
2023-05-02 06:37:53 +0200 | jargon_ | (~jargon@184.101.78.160) |
2023-05-02 06:38:36 +0200 | jargon | (~jargon@184.101.73.92) (Ping timeout: 250 seconds) |
2023-05-02 06:48:39 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-05-02 06:49:25 +0200 | gmg | (~user@user/gehmehgeh) |
2023-05-02 06:54:55 +0200 | <hammond> | but then say check Person{name,addrs} "John" `isPrefixOf` name = -- return ( registrationNumber, Person) |
2023-05-02 06:55:39 +0200 | <hammond> | or do i have to do (registrationNumber, Person{name=name, addrs=addrs} |
2023-05-02 06:55:43 +0200 | <hammond> | ) |
2023-05-02 06:56:13 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-182-194.46.114.pool.telefonica.de) |
2023-05-02 06:56:41 +0200 | <geekosaur> | check p@Person{name} | "John" `isPrefixOf` name = return (registrationNumber, p) |
2023-05-02 06:56:58 +0200 | <hammond> | shhh |
2023-05-02 06:57:03 +0200 | <hammond> | ok thx |
2023-05-02 06:59:31 +0200 | mbuf | (~Shakthi@49.207.178.186) |
2023-05-02 07:13:42 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds) |
2023-05-02 07:16:12 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-02 07:18:16 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-05-02 07:21:04 +0200 | falafel | (~falafel@2603-8000-d700-115c-9bf8-6766-e74e-f083.res6.spectrum.com) (Ping timeout: 248 seconds) |
2023-05-02 07:31:55 +0200 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 268 seconds) |
2023-05-02 07:33:42 +0200 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
2023-05-02 07:34:43 +0200 | trev | (~trev@user/trev) |
2023-05-02 07:34:56 +0200 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) |
2023-05-02 07:36:13 +0200 | cyphase | (~cyphase@user/cyphase) |
2023-05-02 07:37:26 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-05-02 07:54:43 +0200 | <Inst_> | i have a problem, wherein i'm addicted to helping people with their Haskell homework, because sometimes the problems get so interesting |
2023-05-02 07:55:03 +0200 | <Inst_> | right now, i'm trying to figure out how to get lazy conditionals, i.e, they evaluate the conditions lazily |
2023-05-02 07:55:30 +0200 | <Inst_> | like, if you want to run simultaneous checks on different options |
2023-05-02 07:57:52 +0200 | CiaoSen | (~Jura@tmo-108-9.customers.d1-online.com) |
2023-05-02 07:58:21 +0200 | <jade[m]> | use a tree to simultaneously traverse different possibilities and discard ones that don't match? |
2023-05-02 07:59:18 +0200 | <jade[m]> | not sure if I understood correctly what is asked for |
2023-05-02 08:02:25 +0200 | <Inst_> | someone tried a recursive approach to some problem, i was wondering if i understood laziness correctly, but i realize the problem with their approach, it's because conditionals are strict |
2023-05-02 08:02:46 +0200 | <Inst_> | the solution would be instead to parallelize the process, and when one spark returns with the correct answer, the function returns |
2023-05-02 08:03:46 +0200 | <Inst_> | question is, how do you do that? i mean, it'd be easy to do with mvar and code in IO, but purely? |
2023-05-02 08:10:16 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds) |
2023-05-02 08:11:21 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-05-02 08:18:13 +0200 | <Inst_> | ehhh, this is intrinsically impure |
2023-05-02 08:20:28 +0200 | michalz | (~michalz@185.246.207.197) |
2023-05-02 08:26:08 +0200 | CyberSoul | (~ray@2405:201:680a:b174:7b30:abcb:1d56:b23) (Quit: Leaving) |
2023-05-02 08:28:04 +0200 | CyberSoul | (~ray@2405:201:680a:b174:7b30:abcb:1d56:b23) |
2023-05-02 08:37:01 +0200 | mncheckm | (~mncheck@193.224.205.254) |
2023-05-02 08:39:08 +0200 | Square | (~Square4@user/square) (Ping timeout: 268 seconds) |
2023-05-02 08:42:37 +0200 | <Inst_> | maybe the par monad is what i'm looking for? |
2023-05-02 08:45:25 +0200 | acidjnk | (~acidjnk@p200300d6e715c460285fef55bd00a3c3.dip0.t-ipconnect.de) |
2023-05-02 08:50:20 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-182-194.46.114.pool.telefonica.de) (Ping timeout: 250 seconds) |
2023-05-02 08:51:25 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds) |
2023-05-02 08:59:50 +0200 | <somerandomnick[m> | is it that you want to short circuit a parallel evaluation of conditionals? |
2023-05-02 09:00:12 +0200 | <somerandomnick[m> | where it is obvious how to achieve this for a sequence of conditionals |
2023-05-02 09:02:22 +0200 | Gremlin8483 | (~Gremlin84@73.243.250.212) |
2023-05-02 09:03:38 +0200 | <Gremlin8483> | hi, i dont write haskell but wondering how hard it is to build cabal from source, i use a source based distro and trying to build shellcheck which dep on cabal, wondering how difficult it is before i commit, i could also just use prebuilt shellcheck binary. appreciate any insights |
2023-05-02 09:04:21 +0200 | <Gremlin8483> | however if its not too hard i would prefer to build |
2023-05-02 09:04:26 +0200 | <opqdonut> | cabal is usually distributed with GHC, so i guess the bigger problem is building GHC |
2023-05-02 09:04:39 +0200 | <tomsmeding> | Gremlin8483: do you have any other haskell packages already in the distro |
2023-05-02 09:04:47 +0200 | <tomsmeding> | pandoc perhaps? |
2023-05-02 09:04:49 +0200 | <Gremlin8483> | right this is my first time hearing about cabal and it seemed kinda overwheliming |
2023-05-02 09:05:00 +0200 | <Gremlin8483> | tomsmeding no its the only one |
2023-05-02 09:05:19 +0200 | <Gremlin8483> | is ghc a complex software? |
2023-05-02 09:05:19 +0200 | <opqdonut> | is GHC (the haskell compiler) available? |
2023-05-02 09:05:30 +0200 | <opqdonut> | I've heard it is a beast to build |
2023-05-02 09:05:36 +0200 | <opqdonut> | but things might've gotten better over the years |
2023-05-02 09:05:38 +0200 | <Gremlin8483> | i would have to build everything from scratch, i currently have 38 packages on my system total lol |
2023-05-02 09:05:46 +0200 | <tomsmeding> | it's not a beast to build, but it does have its own build system that you have to make do what you want |
2023-05-02 09:05:46 +0200 | <Gremlin8483> | maybe i just stick with the binary then |
2023-05-02 09:05:51 +0200 | <tomsmeding> | ah lol |
2023-05-02 09:06:04 +0200 | <tomsmeding> | you'd also have to decide what to do with haskell dependencies |
2023-05-02 09:06:13 +0200 | <tomsmeding> | as in, other haskell libraries that shellcheck depends on |
2023-05-02 09:06:27 +0200 | <Gremlin8483> | oh i see, sounds like its too difficult for me, but i appreciate the advice fellas |
2023-05-02 09:06:49 +0200 | <Gremlin8483> | wish you all well! |
2023-05-02 09:06:55 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 260 seconds) |
2023-05-02 09:07:24 +0200 | <tomsmeding> | you could probably do it, none of the steps are individually very hard |
2023-05-02 09:07:40 +0200 | <Gremlin8483> | ill consider it in the future |
2023-05-02 09:07:42 +0200 | <tomsmeding> | but it's a whole lot of infrastructure (that you could indeed share for further haskell packages) |
2023-05-02 09:07:54 +0200 | <Gremlin8483> | being source based i would like to be self sufficient and build every type of software |
2023-05-02 09:08:02 +0200 | <Gremlin8483> | but right now might not be teh right time |
2023-05-02 09:08:03 +0200 | <tomsmeding> | yeah it's cool |
2023-05-02 09:08:24 +0200 | <tomsmeding> | perhaps if you're a bit further into also having things set up for other languages |
2023-05-02 09:08:29 +0200 | <Gremlin8483> | i dont mind the infrastructure, will ahve a dedicated machine for builds |
2023-05-02 09:08:38 +0200 | <tomsmeding> | e.g. python packages, or nodejs packages, or perl/ruby stuff |
2023-05-02 09:08:56 +0200 | <tomsmeding> | then adding haskell packages will be more of the same but different :) |
2023-05-02 09:09:14 +0200 | <Gremlin8483> | tbh i didnt even know software i used had haskell in it |
2023-05-02 09:09:20 +0200 | <Gremlin8483> | but shell check is essential software to me |
2023-05-02 09:09:37 +0200 | <tomsmeding> | but it's more well-known how packaging e.g. python stuff works, so starting there would be a good idea |
2023-05-02 09:09:42 +0200 | <tomsmeding> | Gremlin8483: that's a haskell win I guess :) |
2023-05-02 09:10:18 +0200 | <Gremlin8483> | you gotta rename it shellskellcheck or something |
2023-05-02 09:10:21 +0200 | <Gremlin8483> | advertise it more |
2023-05-02 09:10:42 +0200 | <tomsmeding> | opqdonut: iirc it's now just ./configure; hadrian/build; # grab a few coffees; cp _build/stage-2/ghc somewhere or so |
2023-05-02 09:11:06 +0200 | <tomsmeding> | Gremlin8483: we're in functional programming because we like the interesting programming problems |
2023-05-02 09:11:09 +0200 | <tomsmeding> | not because we like marketing |
2023-05-02 09:11:09 +0200 | <tomsmeding> | :D |
2023-05-02 09:11:24 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-05-02 09:11:34 +0200 | <tomsmeding> | (some do and have given haskell a serious boost over the past 10 years or so) |
2023-05-02 09:11:38 +0200 | <Gremlin8483> | i spent some time studying functional a few weeks ago, im not a fper but the concepts are important |
2023-05-02 09:11:39 +0200 | <tomsmeding> | *haskell usage |
2023-05-02 09:11:46 +0200 | <Gremlin8483> | you cant ignore it as a programmer |
2023-05-02 09:12:02 +0200 | <mauke> | Gremlin8483: you can't build ghc from source because it is written in haskell |
2023-05-02 09:12:06 +0200 | <tomsmeding> | the ideas are slowly making their way into other languages, which was part of why haskell exists in the first place |
2023-05-02 09:12:33 +0200 | <tomsmeding> | as a platform for working out language ideas and implementation ideas, to advance the field of programming language design and development |
2023-05-02 09:12:41 +0200 | <Gremlin8483> | it doesnt have to be functional or nonfunctional, part of engineering istaking good parts from here and there |
2023-05-02 09:12:41 +0200 | <tomsmeding> | mauke: oh good point lol |
2023-05-02 09:13:08 +0200 | <Gremlin8483> | well how do the creaters do it then, break out the assembly? |
2023-05-02 09:13:15 +0200 | <Gremlin8483> | punch cards? |
2023-05-02 09:13:18 +0200 | <tomsmeding> | Gremlin8483: use an already-built previous-version ghc |
2023-05-02 09:13:41 +0200 | <tomsmeding> | at some point in the past there were other useful implementations |
2023-05-02 09:13:44 +0200 | <mauke> | btw, gcc is written in C++ |
2023-05-02 09:14:03 +0200 | <tomsmeding> | currently most haskell code is written using a bunch of language extensions that basically only GHC implements |
2023-05-02 09:14:12 +0200 | <tomsmeding> | which is the same with gcc I guess :p |
2023-05-02 09:14:42 +0200 | <Gremlin8483> | yea its in over my head here |
2023-05-02 09:14:56 +0200 | <tomsmeding> | as in, gcc is written in C++ with gnu extensions |
2023-05-02 09:14:56 +0200 | <Gremlin8483> | good to know, ill save some of this info for the future |
2023-05-02 09:15:18 +0200 | <Gremlin8483> | my distro came with gcc so i didnt have to do anythign with it |
2023-05-02 09:15:28 +0200 | <tomsmeding> | probably installed as a binary ;) |
2023-05-02 09:15:35 +0200 | <Gremlin8483> | dont ask me how to compile the compiler |
2023-05-02 09:15:37 +0200 | <tomsmeding> | you have to start _somewhere_ |
2023-05-02 09:15:44 +0200 | <Gremlin8483> | i think asking chatgpt that question would make it blow up |
2023-05-02 09:15:59 +0200 | <tomsmeding> | aren't there projects for making a fully bootstrapped computing platform starting from assembly or something |
2023-05-02 09:16:10 +0200 | <Gremlin8483> | all me know is make, make install |
2023-05-02 09:16:29 +0200 | <tomsmeding> | but at some point you need to make specific choices, like how to type in the machine code for the first assembler :p |
2023-05-02 09:17:03 +0200 | <tomsmeding> | what you consider the baseline of already-compiled stuff is a spectrum, there's multiple different possible choices -- assuming gcc is one of those |
2023-05-02 09:17:16 +0200 | <Gremlin8483> | use haskell to compile gcc which then compiles cabal again, big brain |
2023-05-02 09:17:22 +0200 | <tomsmeding> | *ghc |
2023-05-02 09:17:26 +0200 | <tomsmeding> | ghc != gcc :p |
2023-05-02 09:17:30 +0200 | <tomsmeding> | but yes |
2023-05-02 09:17:32 +0200 | <opqdonut> | this is veering into offtopic, but guix is going all-in on the bootstrapping thing: https://guix.gnu.org/manual/en/html_node/Reduced-Binary-Seed-Bootstrap.html |
2023-05-02 09:17:54 +0200 | <Gremlin8483> | thats a useful topic to me, what does that mean? |
2023-05-02 09:18:02 +0200 | <Gremlin8483> | just they are using another os to build new one? |
2023-05-02 09:18:16 +0200 | <Gremlin8483> | yes build thc, gotcha |
2023-05-02 09:18:38 +0200 | <opqdonut> | basically, they have a sequence of simpler and simpler c compilers to be able to build gcc, and then build the world |
2023-05-02 09:18:59 +0200 | <Gremlin8483> | man they must really hate user's cpu time |
2023-05-02 09:19:14 +0200 | <tomsmeding> | opqdonut: impressive |
2023-05-02 09:19:23 +0200 | <Gremlin8483> | maybe have the user glue together the silicon wafers int he cpu |
2023-05-02 09:20:35 +0200 | <tomsmeding> | opqdonut: very offtopic, but "Work is ongoing to remove all binary blobs from our free software bootstrap stack, working towards a Full Source Bootstrap." -- how do you remove _all_ binary blobs, that sounds fundamentally impossible |
2023-05-02 09:21:09 +0200 | <Gremlin8483> | better fire up the ghc then |
2023-05-02 09:21:33 +0200 | <opqdonut> | tomsmeding: I think they start with a very simple binary (like tens of bytes) that can be verified by hand |
2023-05-02 09:21:51 +0200 | <opqdonut> | I've been meaning to read up on how this stuff actually works, but there's mostly just lots of blog fluff |
2023-05-02 09:22:18 +0200 | <opqdonut> | a bit more info here: https://www.gnu.org/software/mes/manual/mes.html#Stage0 |
2023-05-02 09:23:10 +0200 | <tomsmeding> | opqdonut: I see, that's cool |
2023-05-02 09:24:01 +0200 | <tomsmeding> | yeah so they assume just some machine code input, very cool |
2023-05-02 09:25:44 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2023-05-02 09:26:58 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-05-02 09:26:58 +0200 | pyook | (~puke@user/puke) (Remote host closed the connection) |
2023-05-02 09:27:22 +0200 | pyook | (~puke@user/puke) |
2023-05-02 09:32:51 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) |
2023-05-02 09:39:05 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) |
2023-05-02 09:44:43 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-05-02 09:48:00 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bef2:f17a:dedf:ac57) |
2023-05-02 09:50:29 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-05-02 09:55:26 +0200 | machinedgod | (~machinedg@198.53.218.113) |
2023-05-02 10:03:14 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
2023-05-02 10:03:46 +0200 | kuribas | (~user@188.118.57.242) |
2023-05-02 10:06:07 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-05-02 10:08:21 +0200 | cfricke | (~cfricke@user/cfricke) |
2023-05-02 10:08:40 +0200 | mmhat | (~mmh@p200300f1c701f1d6ee086bfffe095315.dip0.t-ipconnect.de) |
2023-05-02 10:10:47 +0200 | mmhat | (~mmh@p200300f1c701f1d6ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
2023-05-02 10:11:40 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!) |
2023-05-02 10:16:59 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2023-05-02 10:17:27 +0200 | stefan-_ | (~cri@42dots.de) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in) |
2023-05-02 10:17:43 +0200 | stefan-_ | (~cri@42dots.de) |
2023-05-02 10:23:52 +0200 | <Athas> | We are observing this error from a Haskell program: |
2023-05-02 10:23:53 +0200 | <Athas> | mmap 4096 bytes at (nil): Cannot allocate memory |
2023-05-02 10:23:58 +0200 | <Athas> | (Followed by SIGSEGV.) |
2023-05-02 10:24:09 +0200 | <Athas> | Does this error indicate that the Haskell RTS is trying to map page zero? |
2023-05-02 10:24:47 +0200 | <geekosaur> | no, it means the mmap address was unspecified, which means the OS can pick an address. |
2023-05-02 10:25:01 +0200 | <geekosaur> | is this on linux 6.1 or later by any chance? |
2023-05-02 10:25:16 +0200 | <geekosaur> | (kernel) |
2023-05-02 10:25:31 +0200 | <Athas> | Most likely. (I'm forwarding a report from a user; hoping to get more information soon.) |
2023-05-02 10:27:44 +0200 | <geekosaur> | kernels after a certain version switched to a new memory management system which is buggy. there's a hotfix which hasn't been committed yet, in the meantime there's an ugly LD_PRELOAD hack to work around it |
2023-05-02 10:29:51 +0200 | <merijn> | Athas: There's a linux kernel bug that causes that, afaik |
2023-05-02 10:30:05 +0200 | <Athas> | OK, I will blame my user. |
2023-05-02 10:30:10 +0200 | <geekosaur> | http://paste.debian.net/1274454/ is the hack, if it works then you're hitting the maple-tree implementation bug and you need https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-hotfixes-unstable&id=aa4e… to fix it |
2023-05-02 10:30:41 +0200 | <geekosaur> | or use ghc 9.4+ which changed how they mmap in a way that avoids the bug |
2023-05-02 10:30:59 +0200 | <Athas> | I'm curious why I'm not hitting it myself. I use GHC 9.2.6 and Linux 6.1.25. |
2023-05-02 10:31:01 +0200 | <merijn> | Athas: https://bbs.archlinux.org/viewtopic.php?id=282429 |
2023-05-02 10:31:13 +0200 | <merijn> | This bug: https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/commit/queue-6.2/maple_tre… |
2023-05-02 10:33:44 +0200 | kuribas | (~user@188.118.57.242) (Read error: Connection reset by peer) |
2023-05-02 10:34:02 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-05-02 10:35:34 +0200 | <kuribas> | If I have a isPermutationOf b, b isPermutationOf c => a isPermutationOf c, can I say that isPermutationOf is transitive? |
2023-05-02 10:36:24 +0200 | <Athas> | Yes, isn't that the definition of transitivity? |
2023-05-02 10:37:38 +0200 | jinsl- | (~jinsl@2408:8207:2558:8870:211:32ff:fec8:6aea) (Quit: ZNC - https://znc.in) |
2023-05-02 10:37:55 +0200 | jinsl | (~jinsl@123.120.169.188) |
2023-05-02 10:38:02 +0200 | <kuribas> | I think so |
2023-05-02 10:39:00 +0200 | <kuribas> | And symmetry? |
2023-05-02 10:39:43 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Remote host closed the connection) |
2023-05-02 10:41:55 +0200 | wiosna | (~karangura@209.166.121.87) |
2023-05-02 10:42:12 +0200 | <wiosna> | hello haskellers |
2023-05-02 10:42:15 +0200 | <kuribas> | a isPermutationOf b => b isPermutationOf a |
2023-05-02 10:42:25 +0200 | <wiosna> | seems to be right |
2023-05-02 10:42:53 +0200 | <wiosna> | what is everyone's favorite fibonacci implementation |
2023-05-02 10:43:21 +0200 | <merijn> | > let fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) in fibs |
2023-05-02 10:43:23 +0200 | <lambdabot> | [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,... |
2023-05-02 10:43:24 +0200 | <kuribas> | the matrix version |
2023-05-02 10:43:45 +0200 | <merijn> | > let fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) in fibs !! 1000000 |
2023-05-02 10:43:50 +0200 | <kuribas> | well, it's my favorite, not everyones |
2023-05-02 10:43:51 +0200 | <lambdabot> | mueval-core: Time limit exceeded |
2023-05-02 10:43:55 +0200 | <merijn> | ok, maybe that was excessive xD |
2023-05-02 10:43:58 +0200 | <merijn> | > let fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) in fibs !! 1000 |
2023-05-02 10:44:00 +0200 | <lambdabot> | 4346655768693745643568852767504062580256466051737178040248172908953655541794... |
2023-05-02 10:46:30 +0200 | <wiosna> | wow this bot is so cool |
2023-05-02 10:48:38 +0200 | phma | (phma@2001:5b0:215a:e9f8:70e:a131:7bd8:ec6) (Read error: Connection reset by peer) |
2023-05-02 10:49:15 +0200 | phma | (~phma@host-67-44-208-157.hnremote.net) |
2023-05-02 10:56:26 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-05-02 10:56:52 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-182-194.46.114.pool.telefonica.de) |
2023-05-02 11:01:20 +0200 | chexum_ | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
2023-05-02 11:01:56 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-05-02 11:05:06 +0200 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 250 seconds) |
2023-05-02 11:16:18 +0200 | czy | (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
2023-05-02 11:30:11 +0200 | JScript | (~JScript@103.137.12.134) |
2023-05-02 11:30:14 +0200 | JScript | (~JScript@103.137.12.134) (Max SendQ exceeded) |
2023-05-02 11:30:44 +0200 | JScript | (~JScript@103.137.12.134) |
2023-05-02 11:39:31 +0200 | <mikko> | is it possible to have "specialized" instances of a class like this https://bpa.st/ZRY32 |
2023-05-02 11:39:51 +0200 | <mikko> | so it would have a default implementation for every type that implements Show but some types might have a more specific implementation |
2023-05-02 11:40:12 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 11:40:24 +0200 | ubert1 | (~Thunderbi@2a02:8109:abc0:6434:e31:8ae3:609:552d) |
2023-05-02 11:40:53 +0200 | <geekosaur> | take a look at https://downloads.haskell.org/ghc/9.6.1/docs/users_guide/exts/default_signatures.html |
2023-05-02 11:41:42 +0200 | <geekosaur> | that said, if you don't need a more specific type for the default then you don't need an extension; you can simply provide a default implementation in the class definition |
2023-05-02 11:44:32 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Ping timeout: 250 seconds) |
2023-05-02 11:52:09 +0200 | bontaq | (~user@69.119.155.132) (Ping timeout: 265 seconds) |
2023-05-02 11:52:46 +0200 | wiosna | (~karangura@209.166.121.87) (Ping timeout: 268 seconds) |
2023-05-02 11:53:18 +0200 | <geekosaur> | oh, sorry, you can not provide a default instance for all `Show`able types |
2023-05-02 11:53:30 +0200 | <geekosaur> | it will overlap with every other instance |
2023-05-02 11:54:48 +0200 | <mikko> | ah that explains why i'm having trouble getting it to compile |
2023-05-02 11:55:36 +0200 | <geekosaur> | the rule is, contexts on an instance are checked at the use site, instance selection does not take contexts into account |
2023-05-02 11:55:37 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) |
2023-05-02 11:56:33 +0200 | <geekosaur> | and can't because the instance selection may take place in code that doesn't know and may select the wrong instance as a result |
2023-05-02 11:57:00 +0200 | <geekosaur> | (it only needs to know about the class to compile) |
2023-05-02 12:00:21 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving) |
2023-05-02 12:10:51 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 248 seconds) |
2023-05-02 12:12:37 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-05-02 12:13:17 +0200 | <mikko> | are there any workarounds besides writing an instance separately for each type implementing Show? |
2023-05-02 12:14:27 +0200 | <dminuoso> | mikko: Yes, default signatures like geekosaur mentioned. |
2023-05-02 12:14:49 +0200 | <dminuoso> | But dispatching based on whether or not an instance exists doesn't really work. |
2023-05-02 12:15:44 +0200 | <dminuoso> | The primary reason is that you can't supply evidence that an instance does *not* exist. |
2023-05-02 12:15:56 +0200 | <dminuoso> | You can only supply evidence that it does. |
2023-05-02 12:17:06 +0200 | <mikko> | with that in mind, how would you implement something like this? |
2023-05-02 12:17:40 +0200 | <dminuoso> | Well so in principle you can have that instance for Joinable |
2023-05-02 12:17:55 +0200 | <dminuoso> | If you make it Overlapping, then you can supply specific instances that will take precedence |
2023-05-02 12:18:24 +0200 | <mikko> | doesn't that still have the same issue of dispatching based on whether or not an instance exists |
2023-05-02 12:18:30 +0200 | <dminuoso> | Not quite |
2023-05-02 12:18:50 +0200 | <dminuoso> | What you can use, is the instance selection algorithm |
2023-05-02 12:19:03 +0200 | <dminuoso> | See https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/instances.html#overlapping-instances |
2023-05-02 12:19:27 +0200 | <mikko> | it says status deprecated :/ |
2023-05-02 12:19:31 +0200 | <dminuoso> | That's fine |
2023-05-02 12:19:55 +0200 | <dminuoso> | It's only the LANGUAGE extension that is deprecated. |
2023-05-02 12:20:24 +0200 | <dminuoso> | But the {-# OVERLAPPING #-} and {-# OVERLAPPABLE #-} pragmas, as well as the rest of the semantics, holds. |
2023-05-02 12:20:43 +0200 | <dminuoso> | I think the whole text should be moved into a different non-deprecated section for clarity |
2023-05-02 12:20:48 +0200 | <mikko> | oh you mean i don't even need the language extension to do that? |
2023-05-02 12:21:06 +0200 | <dminuoso> | Well, you need the {-# OVERLAPPING #-} or {-# OVERLAPPABLE #-} pragmas |
2023-05-02 12:21:15 +0200 | <dminuoso> | In some sense they are extensions to the language |
2023-05-02 12:21:20 +0200 | <dminuoso> | Just not formal LANGUAGE extensions |
2023-05-02 12:21:26 +0200 | <dminuoso> | Strangely enough. |
2023-05-02 12:21:43 +0200 | <dminuoso> | In that text, below, you can see: |
2023-05-02 12:21:48 +0200 | <dminuoso> | ```Now suppose that, in some client module, we are searching for an instance of the target constraint (C ty1 .. tyn). The search works like this:``` |
2023-05-02 12:21:57 +0200 | <dminuoso> | The block that follows gives the exact semantics how GHC selects an instance. |
2023-05-02 12:22:03 +0200 | <dminuoso> | Or how it fails |
2023-05-02 12:22:34 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-05-02 12:22:45 +0200 | ub | (~Thunderbi@p200300ecdf15588e8ba3eaebe9e1d757.dip0.t-ipconnect.de) |
2023-05-02 12:23:08 +0200 | ubert | (~Thunderbi@p548c9793.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-05-02 12:23:08 +0200 | ubert1 | ubert |
2023-05-02 12:23:17 +0200 | <dminuoso> | Very very roughly, for your case, we can say if we have `instance {-# OVERLAPPABLE #-} Show a => Joinable a where ...` and `instance {-# OVERLAPPING #-} Joinable T` (note that you can leave one of the two pragmas away if you like), then it will always select the second instance if `Joinable T` is looked up. |
2023-05-02 12:23:28 +0200 | <dminuoso> | And the reason is that `Joinable T` is "more specific" than `Joinable a` |
2023-05-02 12:23:54 +0200 | <dminuoso> | Take additional note |
2023-05-02 12:24:59 +0200 | <dminuoso> | `Eliminate any candidate IX for which there is another candidate IY such that ***both*** of the following hold:` (emphasis added by me) |
2023-05-02 12:25:04 +0200 | <ncf> | mikko: here's an example of a class with a default implementation for Show instances https://hackage.haskell.org/package/prettyprinter-1.7.1/docs/Prettyprinter.html#t:Pretty |
2023-05-02 12:25:05 +0200 | <dminuoso> | `IY is strictly more specific than IX` |
2023-05-02 12:25:12 +0200 | <dminuoso> | `IX is overlappable or IY is overlapping` |
2023-05-02 12:25:17 +0200 | <mikko> | nice, so this works: https://bpa.st/TMJE4 |
2023-05-02 12:25:48 +0200 | <dminuoso> | mikko: Great. For brevity you can leave OVERLAPPING away. |
2023-05-02 12:26:00 +0200 | <dminuoso> | It's sufficient for just one side to have it. |
2023-05-02 12:26:13 +0200 | <dminuoso> | And its just less typing work to have it on the less specific instance, since you only need it once. |
2023-05-02 12:26:41 +0200 | <mikko> | got it, thanks |
2023-05-02 12:27:13 +0200 | <mikko> | although i think i'll have to read through those docs a few more times before i really understand what's going on :D |
2023-05-02 12:27:35 +0200 | <dminuoso> | It's very subtle and hard to grok for the average user. |
2023-05-02 12:28:21 +0200 | <dminuoso> | mikko: Roughly we can condense is down to this: GHC will look up all matching instances. If no instance matches, it fails. If they match, it will "eliminate" any instance that is "strictly less specific *and* overlappable by the other" |
2023-05-02 12:28:28 +0200 | <dminuoso> | By eliminate this means from the pool of potential instances. |
2023-05-02 12:29:14 +0200 | <dminuoso> | And if only one remains, it will use it. If multiple remains - outside of other (here irrelevant) language features - it will error with "overlapping instances" |
2023-05-02 12:29:56 +0200 | <dminuoso> | Ah well, in truth there's that extra final setp of in-scope constraints |
2023-05-02 12:30:06 +0200 | <dminuoso> | And there's some very subtle relevancy: |
2023-05-02 12:30:32 +0200 | <dminuoso> | Any constraints on an instance are not considered for instance *selection* |
2023-05-02 12:31:16 +0200 | <dminuoso> | So given `instance Foo a => Bar a`, then `Foo` is not considered for the purpose of *selecting* an instance. Conversely this means `instance Foo a => Bar a` matches *all* types, irrespective of whether an instance Foo exists or not. |
2023-05-02 12:31:37 +0200 | CiaoSen | (~Jura@tmo-108-9.customers.d1-online.com) (Ping timeout: 268 seconds) |
2023-05-02 12:31:39 +0200 | <dminuoso> | Which can be counter intuitive |
2023-05-02 12:33:19 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-02 12:36:25 +0200 | <dminuoso> | So if you had `data S = S` (without a Show instance), and you did not have any overlapping/overlappable pragmas, and then wrote both `instance Show a => Joinable a ...` and `instance Joinable T`, you will have overlapping instances, even though it seems the first instance shouldn't be considered. |
2023-05-02 12:36:48 +0200 | <dminuoso> | (Because the algorithm will not consider constraints for the purpose of selecting candidates) |
2023-05-02 12:36:59 +0200 | <dminuoso> | Oh I meant `instance Joinable S` |
2023-05-02 12:37:10 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 268 seconds) |
2023-05-02 12:38:29 +0200 | paul_j | (~user@2001:8b0:dea0:f3c9:cd47:c8b0:d6:5463) (Quit: Asta la vista) |
2023-05-02 12:44:20 +0200 | wiosna | (~karangura@209.166.121.87) |
2023-05-02 12:56:33 +0200 | inversed | (~inversed@bcdcac82.skybroadband.com) |
2023-05-02 12:58:05 +0200 | <tomsmeding> | the fact that the instance head is not considered when selecting instances basically means that instance search is greedy |
2023-05-02 12:58:12 +0200 | <tomsmeding> | it will never backtrack |
2023-05-02 12:58:43 +0200 | <tomsmeding> | now the term "greedy" is not very precisely defined, but it may be helpful as intuition |
2023-05-02 12:59:42 +0200 | <tomsmeding> | you can't do prolog with type class resolution |
2023-05-02 12:59:46 +0200 | <dminuoso> | Mmm, greedy and backtracking are not mutually exclusive. This is in fact the reason many regex provide denial of service vectors. |
2023-05-02 13:00:23 +0200 | <dminuoso> | Arguably greedyness can exponentially drive up backtracking |
2023-05-02 13:01:56 +0200 | <dminuoso> | (Greedy is a mode of ambiguity resolution, no?) |
2023-05-02 13:04:47 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
2023-05-02 13:05:25 +0200 | <fbytez> | Is there a standard function like: `nullOr tr fls x = if null x then tr else fls` ? |
2023-05-02 13:05:54 +0200 | <fbytez> | Like `either` and `maybe`. |
2023-05-02 13:06:32 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2023-05-02 13:07:02 +0200 | <tomsmeding> | dminuoso: greedy is a mode of ambiguity resolution where there is always a way to full resolve the ambiguity |
2023-05-02 13:07:06 +0200 | <tomsmeding> | *to fully |
2023-05-02 13:07:16 +0200 | <tomsmeding> | I'd say if you're greedy, then you have no backtracking |
2023-05-02 13:07:41 +0200 | <dminuoso> | tomsmeding: Consider a PCRE regex: .*foo |
2023-05-02 13:07:43 +0200 | <tomsmeding> | :t \a b x -> if null x then a else b |
2023-05-02 13:07:44 +0200 | <lambdabot> | Foldable t => p -> p -> t a -> p |
2023-05-02 13:07:54 +0200 | <dminuoso> | tomsmeding: This will require some form of backtracking, otherwise it cannot ever match. |
2023-05-02 13:08:06 +0200 | <tomsmeding> | @hoogle a -> a -> [b] -> a |
2023-05-02 13:08:07 +0200 | <lambdabot> | No results found |
2023-05-02 13:08:14 +0200 | <dminuoso> | At least if .* is resolved greedily. |
2023-05-02 13:08:25 +0200 | <tomsmeding> | dminuoso: so then it can't be resolved greedily :p |
2023-05-02 13:08:30 +0200 | <tomsmeding> | who says that regex matching is greedy |
2023-05-02 13:08:39 +0200 | <tomsmeding> | I'd say it isn't |
2023-05-02 13:08:40 +0200 | <dminuoso> | tomsmeding: greedy in regex means as much as possible. |
2023-05-02 13:08:48 +0200 | <tomsmeding> | ah, different greedy |
2023-05-02 13:08:55 +0200 | <tomsmeding> | greedy as in longest match, not greedy as in algorithm design |
2023-05-02 13:09:19 +0200 | <dminuoso> | tomsmeding: How are they different? |
2023-05-02 13:09:33 +0200 | <tomsmeding> | I guess my "greedy" is basically equivalent to "no backtracking" |
2023-05-02 13:09:38 +0200 | <tomsmeding> | hence perhaps why you don't have a word for it :p |
2023-05-02 13:09:47 +0200 | <dminuoso> | tomsmeding: longest match in regex is a greedy algorithm. |
2023-05-02 13:09:54 +0200 | <dminuoso> | its a local optimization problem. |
2023-05-02 13:09:54 +0200 | <tomsmeding> | dminuoso: https://en.wikipedia.org/wiki/Greedy_algorithm |
2023-05-02 13:09:59 +0200 | <dminuoso> | Yes, I am aware. |
2023-05-02 13:10:21 +0200 | <dminuoso> | Greedy algorithms are about local optimization, not global optimization. |
2023-05-02 13:10:24 +0200 | <tomsmeding> | is there a greedy algorithm for matching regex? |
2023-05-02 13:10:29 +0200 | <tomsmeding> | yes |
2023-05-02 13:10:39 +0200 | <dminuoso> | tomsmeding: Of course, most regex employ greedy matching |
2023-05-02 13:10:53 +0200 | <tomsmeding> | well, partially greedy, because they also backtrack |
2023-05-02 13:10:54 +0200 | <tomsmeding> | ;) |
2023-05-02 13:10:57 +0200 | <dminuoso> | Which is why `.*foo` will match `quuxfoo` |
2023-05-02 13:11:02 +0200 | <dminuoso> | At least in most implementations |
2023-05-02 13:11:10 +0200 | <dminuoso> | tomsmeding: those two are orthogonal. |
2023-05-02 13:11:19 +0200 | <tomsmeding> | or if they NFA the thing and run the automaton, I'm not sure that's "greedy" by any useful definition |
2023-05-02 13:11:39 +0200 | <dminuoso> | tomsmeding: the backtracking merely means that the locally chosen maximum wont work with the rest. |
2023-05-02 13:11:56 +0200 | <dminuoso> | Which is why I said these two things go hand in hand in regex. |
2023-05-02 13:11:59 +0200 | <tomsmeding> | right |
2023-05-02 13:12:03 +0200 | <dminuoso> | You cant really have greedyness without backtracking |
2023-05-02 13:12:06 +0200 | <tomsmeding> | in regex not |
2023-05-02 13:12:14 +0200 | <dminuoso> | Well you could, it just woudlnt make them useful in most situations |
2023-05-02 13:12:18 +0200 | <tomsmeding> | in instance selection yes, precisely because of this head-doesn't-matter restriction! |
2023-05-02 13:12:31 +0200 | <tomsmeding> | that's the whole point |
2023-05-02 13:12:37 +0200 | <tomsmeding> | regex matching cannot be _fully_ greedy |
2023-05-02 13:12:47 +0200 | <tomsmeding> | the problem is too hard for that |
2023-05-02 13:12:52 +0200 | <dminuoso> | "fully greedy" would require some definition of what that even means |
2023-05-02 13:13:04 +0200 | <dminuoso> | given that greedyness implicitly is about *local* optimization, it sounds like a contradiction |
2023-05-02 13:13:11 +0200 | <tomsmeding> | whenever you have a choice, choose one and commit to that choice |
2023-05-02 13:13:25 +0200 | <tomsmeding> | "fully greedy" being that all choices in the algorithm are local |
2023-05-02 13:13:27 +0200 | <dminuoso> | tomsmeding: oh, no that is simple. |
2023-05-02 13:13:32 +0200 | <dminuoso> | that is excessively simple to do for regex |
2023-05-02 13:13:36 +0200 | <dminuoso> | it just wouldnt be very useful |
2023-05-02 13:13:38 +0200 | freeside | (~mengwong@122.11.248.245) |
2023-05-02 13:13:46 +0200 | <tomsmeding> | oh sure |
2023-05-02 13:14:01 +0200 | <tomsmeding> | as in, it wouldn't match "quuxfoo" with /.*foo/ ? |
2023-05-02 13:14:27 +0200 | <dminuoso> | Plenty of regex can even turn off backtracking on portions |
2023-05-02 13:14:32 +0200 | <dminuoso> | tomsmeding: right. |
2023-05-02 13:14:52 +0200 | <freeside> | question re WASM -- I see Asterius has been mothballed on Github in favour of the merged WASM backend in 9.6, but how do I build something that has significant dependencies? If I understand correctly, stack and cabal aren't fully wasm-enabled |
2023-05-02 13:15:12 +0200 | <tomsmeding> | dminuoso: yes of course, for many problems for which there is no sensible greedy solution, you can still try to write a greedy algorithm and see how far it gets. Sometimes that's very useful |
2023-05-02 13:15:40 +0200 | <tomsmeding> | dminuoso: so my point about instance selection is that the algorithm there _is_ greedy -- as opposed to the prolog semantics, which aren't (fully) |
2023-05-02 13:15:44 +0200 | <dminuoso> | tomsmeding: like I said, I think its silly to call this "fully greedy" |
2023-05-02 13:15:51 +0200 | <dminuoso> | its still greedy, just without backtracking |
2023-05-02 13:16:01 +0200 | <dminuoso> | backtracking is about undoing the greedy choices |
2023-05-02 13:16:02 +0200 | <tomsmeding> | well I'm only introducing "fully greedy" because what you call "greedy" I'd call "partially greedy" :p |
2023-05-02 13:16:16 +0200 | <dminuoso> | well, "partially greedy" is certainly uncommon terminology |
2023-05-02 13:16:32 +0200 | <tomsmeding> | yeah, because it's not a greedy algorithm if it backtracks in common terminology :p |
2023-05-02 13:16:44 +0200 | <dminuoso> | because greediness in all algorithmic contexts is always about expanding to some local maximum |
2023-05-02 13:17:01 +0200 | <dminuoso> | tomsmeding: I guess it depends on the perspecftive. |
2023-05-02 13:17:06 +0200 | <tomsmeding> | anyway this is offtopic :p |
2023-05-02 13:17:08 +0200 | <dminuoso> | right |
2023-05-02 13:18:03 +0200 | <dminuoso> | freeside: I feel WASM hit the scene without much documentation or information how to do anything with it. |
2023-05-02 13:18:08 +0200 | <dminuoso> | It feels rushed. |
2023-05-02 13:19:17 +0200 | <dminuoso> | https://cabal.readthedocs.io/en/stable/search.html?q=wasm&check_keywords=yes&area=default |
2023-05-02 13:19:20 +0200 | <dminuoso> | This is not comforting. |
2023-05-02 13:19:20 +0200 | <freeside> | mmm. I'm seeing asterius's readme has an ahc-cabal for building things with deps, but, like you say, now that the repo is archived, one is left wondering if that functionality made it into regular cabal |
2023-05-02 13:19:31 +0200 | <dminuoso> | While I understand these projects are separate, from a user experience point of view its a bit sad. |
2023-05-02 13:20:05 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2023-05-02 13:20:15 +0200 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc-wasm-meta |
2023-05-02 13:20:23 +0200 | <dminuoso> | This is all the documentation you are being given right now |
2023-05-02 13:20:41 +0200 | <tomsmeding> | wasm in ghc is definitely not ready for intensive use, but I guess the people working on asterius/ghcjs are now working on making wasm in ghc better, so naturally there is no time any more for asterius/ghcjs |
2023-05-02 13:21:20 +0200 | <tomsmeding> | so the result is that the new thing is not yet ready when the old thing is mothballed -- nothing to be done about that, and now at least we _have_ a partially-complete ghc wasm backend :p |
2023-05-02 13:21:25 +0200 | <tomsmeding> | as opposed to none |
2023-05-02 13:21:42 +0200 | <dminuoso> | Sure, I think no mention of something rather incomplete in the release notes would have been better |
2023-05-02 13:22:02 +0200 | <dminuoso> | Perhaps a teaser, but some "we now have wasm, GOOD LUCK!" is not very helpful |
2023-05-02 13:22:44 +0200 | <freeside> | is "partially complete" like "partially greedy" |
2023-05-02 13:23:00 +0200 | <dminuoso> | Only tomsmeding can say! |
2023-05-02 13:28:30 +0200 | <tomsmeding> | freeside: :') |
2023-05-02 13:29:01 +0200 | <tomsmeding> | my "partially greedy" meant "some components of the algorithm are greedy" |
2023-05-02 13:29:08 +0200 | Guest45678 | (~Guest4567@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de) |
2023-05-02 13:29:37 +0200 | <tomsmeding> | my "partially complete" meant "(more-than-half)-complete" |
2023-05-02 13:29:52 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:e31:8ae3:609:552d) (Remote host closed the connection) |
2023-05-02 13:29:52 +0200 | ub | ubert |
2023-05-02 13:29:55 +0200 | <tomsmeding> | I first wanted to write "half-complete" but then realised that that would be an unfair characterisation of the work |
2023-05-02 13:30:05 +0200 | ubert1 | (~Thunderbi@2a02:8109:abc0:6434:f753:ade8:fcc8:e633) |
2023-05-02 13:30:26 +0200 | <tomsmeding> | it _looks_ half-complete from the outside, but I don't think that's accurate in terms of work hours |
2023-05-02 13:31:18 +0200 | <dminuoso> | I have a job that produces log output. Some external services want to visualize that log output and do so by polling. With the polling I would get some offset (to skip any chunks the receiver has seen so far). |
2023-05-02 13:31:34 +0200 | <dminuoso> | The log is, currently anyway, held in memory only |
2023-05-02 13:31:59 +0200 | <dminuoso> | While its being polled, the producer amends it |
2023-05-02 13:32:05 +0200 | freeside | (~mengwong@122.11.248.245) (Ping timeout: 246 seconds) |
2023-05-02 13:32:28 +0200 | <dminuoso> | What kind of data structure would be ideally suited here? Naively Id just use files because that offers me exactly the interface needed. |
2023-05-02 13:35:28 +0200 | wiosna | (~karangura@209.166.121.87) (Ping timeout: 248 seconds) |
2023-05-02 13:35:54 +0200 | <tomsmeding> | dminuoso: naively just a Map from (monotonically increasing) ID to log message, where an offset is simply the ID of the last-seen message |
2023-05-02 13:37:01 +0200 | <tomsmeding> | can chunk up stuff to reduce Map overhead, and one can probably figure out a way to do regular chunking, GC style, in a way that it doesn't increase time complexity |
2023-05-02 13:37:23 +0200 | <dminuoso> | Mmm that sounds just wrong. |
2023-05-02 13:39:48 +0200 | <dminuoso> | Perhaps I should just admit that this is a C-style problem. |
2023-05-02 13:40:10 +0200 | <tomsmeding> | I mean, you could mutable vector your way out of this :p |
2023-05-02 13:41:06 +0200 | <dminuoso> | Mm, do I get much benefit from an unboxed mutable vector over just holding a `ForeignPtr Word8`? |
2023-05-02 13:41:43 +0200 | <dminuoso> | The `ForeignPtr` can trivially be turned into ByteString at least! |
2023-05-02 13:42:10 +0200 | <dminuoso> | So even a simple offset n is just `BS.drop n` |
2023-05-02 13:42:50 +0200 | <tomsmeding> | not if you don't want to any of the meaning of the word8s :p |
2023-05-02 13:44:03 +0200 | <dminuoso> | My contract will be that its just terminal data (i.e. unicode) |
2023-05-02 13:44:07 +0200 | <dminuoso> | I wont even pretend to verify this. |
2023-05-02 13:44:18 +0200 | <dminuoso> | (Any decoding bug will be handled leniently anyway) |
2023-05-02 13:44:40 +0200 | <dminuoso> | So its just utf8 encoded stuff. |
2023-05-02 13:45:03 +0200 | <tomsmeding> | then go buffer of Word8 all the way |
2023-05-02 13:46:05 +0200 | <dminuoso> | Heck, I could even steal the buffer and stuff it into a Text! |
2023-05-02 13:46:09 +0200 | <dminuoso> | as long as I use text-2.0 |
2023-05-02 13:46:17 +0200 | <dminuoso> | :P |
2023-05-02 13:46:20 +0200 | <dminuoso> | What could possibly go wrong! |
2023-05-02 13:46:53 +0200 | <dminuoso> | But on a more serious note, I can just use decodeUtf8Lenient as well |
2023-05-02 13:47:41 +0200 | wiosna | (~karangura@209.166.121.87) |
2023-05-02 13:52:10 +0200 | wiosna | (~karangura@209.166.121.87) (Ping timeout: 260 seconds) |
2023-05-02 13:55:13 +0200 | CiaoSen | (~Jura@tmo-108-9.customers.d1-online.com) |
2023-05-02 14:03:23 +0200 | <merijn> | dminuoso: You can turn the ForeignPtr into a Storable vector easily too :p |
2023-05-02 14:06:22 +0200 | <dminuoso> | Im very very tempted to just use files anyway, because the entire interface is already there. |
2023-05-02 14:06:28 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 276 seconds) |
2023-05-02 14:08:22 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-02 14:26:07 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-05-02 14:28:16 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-05-02 14:32:43 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-05-02 14:32:58 +0200 | tr_ev | (~trev@user/trev) |
2023-05-02 14:34:00 +0200 | Me-me | (~Me-me@user/me-me) (Quit: Something has gone terribly, terribly wrong, that being that I'm not here any more.) |
2023-05-02 14:36:41 +0200 | euandreh1 | (~Thunderbi@189.6.18.7) |
2023-05-02 14:37:05 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Read error: Connection reset by peer) |
2023-05-02 14:37:06 +0200 | euandreh1 | euandreh |
2023-05-02 14:39:49 +0200 | fryguybob | (~fryguybob@cpe-24-94-50-22.stny.res.rr.com) (Quit: leaving) |
2023-05-02 14:43:00 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 14:47:20 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Ping timeout: 246 seconds) |
2023-05-02 14:54:14 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-05-02 14:58:20 +0200 | tr_ev | trev |
2023-05-02 15:00:21 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-05-02 15:00:24 +0200 | vulfe | (~vulfe@207.229.148.168) |
2023-05-02 15:09:49 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) (Remote host closed the connection) |
2023-05-02 15:16:46 +0200 | rlj | (~rlj@c-5eea62ba-74736162.cust.telenor.se) |
2023-05-02 15:16:48 +0200 | acidjnk | (~acidjnk@p200300d6e715c460285fef55bd00a3c3.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2023-05-02 15:20:31 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-05-02 15:22:08 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 248 seconds) |
2023-05-02 15:22:35 +0200 | <tomsmeding> | dminuoso: use files in a tmpfs |
2023-05-02 15:23:30 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-02 15:23:43 +0200 | <dminuoso> | tomsmeding: If only this was controllable from haskell itself. :p |
2023-05-02 15:23:57 +0200 | <dminuoso> | withTmpfsTemporaryFile |
2023-05-02 15:24:23 +0200 | <tomsmeding> | hah |
2023-05-02 15:24:30 +0200 | <tomsmeding> | I guess needing this is pretty niche |
2023-05-02 15:27:10 +0200 | <dminuoso> | Yeah. |
2023-05-02 15:30:02 +0200 | rlj | (~rlj@c-5eea62ba-74736162.cust.telenor.se) (Quit: Client closed) |
2023-05-02 15:32:29 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-02 15:32:29 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-02 15:32:29 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-02 15:36:39 +0200 | extor | (~extor@2001:41d0:1004:636::1) |
2023-05-02 15:45:25 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2023-05-02 15:48:39 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-05-02 15:48:56 +0200 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:8c38:7008:d307:dea1) (Quit: caryhartline) |
2023-05-02 15:59:59 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2023-05-02 16:03:20 +0200 | vulfe | (~vulfe@207.229.148.168) (Ping timeout: 246 seconds) |
2023-05-02 16:03:51 +0200 | extor | (~extor@2001:41d0:1004:636::1) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in) |
2023-05-02 16:04:03 +0200 | rlj | (~rlj@c-5eea62ba-74736162.cust.telenor.se) |
2023-05-02 16:05:13 +0200 | vulfe | (~vulfe@207.229.148.168) |
2023-05-02 16:06:02 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) |
2023-05-02 16:08:00 +0200 | catern | (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Remote host closed the connection) |
2023-05-02 16:08:27 +0200 | vulfe | (~vulfe@207.229.148.168) (Remote host closed the connection) |
2023-05-02 16:08:43 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 248 seconds) |
2023-05-02 16:15:17 +0200 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.au) |
2023-05-02 16:15:17 +0200 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.au) (Changing host) |
2023-05-02 16:15:17 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-05-02 16:21:11 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-05-02 16:21:30 +0200 | CiaoSen | (~Jura@tmo-108-9.customers.d1-online.com) (Ping timeout: 260 seconds) |
2023-05-02 16:23:49 +0200 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-05-02 16:24:32 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 248 seconds) |
2023-05-02 16:35:12 +0200 | wiosna | (~karangura@209.166.121.87) |
2023-05-02 16:38:04 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-05-02 16:38:52 +0200 | rlj | (~rlj@c-5eea62ba-74736162.cust.telenor.se) (Quit: Client closed) |
2023-05-02 16:40:50 +0200 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.au) |
2023-05-02 16:40:50 +0200 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.au) (Changing host) |
2023-05-02 16:40:50 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-05-02 16:43:01 +0200 | img | (~img@user/img) |
2023-05-02 16:47:10 +0200 | rlj | (~rlj@c-5eea62ba-74736162.cust.telenor.se) |
2023-05-02 16:50:14 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2023-05-02 16:50:15 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-05-02 16:51:47 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 16:53:15 +0200 | <ncf> | does ghc make any difference between using | otherwise and just repeating the pattern with no guard? |
2023-05-02 16:53:44 +0200 | <ncf> | e.g. f x | p = ...; | otherwise = ... vs f x | p = ...; f x = ... |
2023-05-02 16:54:17 +0200 | <merijn> | maybe :p |
2023-05-02 16:54:35 +0200 | ddellacosta | (~ddellacos@146.70.171.166) (Ping timeout: 248 seconds) |
2023-05-02 16:54:44 +0200 | <merijn> | To get a real answer, inspect the bird entrails^H^H^H^H^H^H^H core |
2023-05-02 16:55:09 +0200 | cheater | (~Username@user/cheater) |
2023-05-02 16:55:15 +0200 | <ncf> | i feared as much |
2023-05-02 16:55:24 +0200 | <merijn> | Why? |
2023-05-02 16:55:38 +0200 | <ncf> | i'm lazy |
2023-05-02 16:55:51 +0200 | <merijn> | ncf: I meant more like "why would that even matter?" |
2023-05-02 16:56:04 +0200 | <merijn> | That seems like an incredibly niche thing to worry about |
2023-05-02 16:56:14 +0200 | <ncf> | just wondering if there's any reason to prefer one over the other beyond style |
2023-05-02 16:56:22 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-05-02 16:56:26 +0200 | <merijn> | doubt it |
2023-05-02 16:57:03 +0200 | <geekosaur> | I would be very surprised if it made a difference |
2023-05-02 16:57:24 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 268 seconds) |
2023-05-02 17:02:18 +0200 | rlj | (~rlj@c-5eea62ba-74736162.cust.telenor.se) (Ping timeout: 245 seconds) |
2023-05-02 17:04:04 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bef2:f17a:dedf:ac57) (Quit: WeeChat 2.8) |
2023-05-02 17:09:41 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 17:12:53 +0200 | <monochrom> | At Pareto equilibrium there is no difference. :) |
2023-05-02 17:13:59 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 246 seconds) |
2023-05-02 17:18:03 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 248 seconds) |
2023-05-02 17:21:02 +0200 | Square | (~Square4@user/square) |
2023-05-02 17:27:49 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 17:33:49 +0200 | wiosna | (~karangura@209.166.121.87) (Ping timeout: 276 seconds) |
2023-05-02 17:34:49 +0200 | nick4 | (~nick@wsip-174-78-110-18.pn.at.cox.net) |
2023-05-02 17:35:07 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-182-194.46.114.pool.telefonica.de) (Ping timeout: 276 seconds) |
2023-05-02 17:35:54 +0200 | Square | (~Square4@user/square) (Quit: Leaving) |
2023-05-02 17:36:24 +0200 | Square | (~Square4@user/square) |
2023-05-02 17:36:36 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-183-223.46.114.pool.telefonica.de) |
2023-05-02 17:45:37 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2023-05-02 17:49:49 +0200 | famubu | (~julinuser@user/famubu) |
2023-05-02 17:50:44 +0200 | econo | (uid147250@user/econo) |
2023-05-02 17:50:51 +0200 | <famubu> | Hi. In haskell-mode of emacs, is there a way to disable the red underlining that shows up when there are erros in the code? Ideally a way to toggle it on and off? It's quite annoying when one is trying to figure out the error. Does anyone know how to do this? |
2023-05-02 17:54:22 +0200 | rlj | (~rlj@194-218-34-180.customer.telia.com) |
2023-05-02 17:54:41 +0200 | <probie> | Just the underlines, or the error checking entirely? |
2023-05-02 18:02:56 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-05-02 18:06:33 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-05-02 18:06:44 +0200 | machinedgod | (~machinedg@198.53.218.113) (Ping timeout: 265 seconds) |
2023-05-02 18:06:48 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 18:08:55 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-05-02 18:09:17 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Remote host closed the connection) |
2023-05-02 18:11:24 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2023-05-02 18:11:36 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 265 seconds) |
2023-05-02 18:11:44 +0200 | ub | (~Thunderbi@p200300ecdf15583fadacaf30e6b5a958.dip0.t-ipconnect.de) |
2023-05-02 18:11:47 +0200 | ubert | (~Thunderbi@p200300ecdf15588e8ba3eaebe9e1d757.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-05-02 18:11:48 +0200 | ubert1 | ubert |
2023-05-02 18:13:16 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2023-05-02 18:15:42 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-05-02 18:17:52 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 18:22:43 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 265 seconds) |
2023-05-02 18:32:59 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-05-02 18:36:36 +0200 | mbuf | (~Shakthi@49.207.178.186) (Quit: Leaving) |
2023-05-02 18:37:58 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
2023-05-02 18:37:58 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-05-02 18:38:25 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2023-05-02 18:50:22 +0200 | acidjnk | (~acidjnk@p200300d6e715c400492023c9075c5278.dip0.t-ipconnect.de) |
2023-05-02 18:51:03 +0200 | ddellacosta | (~ddellacos@143.244.47.86) |
2023-05-02 19:00:21 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 19:03:30 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 250 seconds) |
2023-05-02 19:05:55 +0200 | <Hecate> | https://discourse.haskell.org/t/manual-qa-for-cabal-install/6225 |
2023-05-02 19:06:05 +0200 | Square | (~Square4@user/square) (Ping timeout: 240 seconds) |
2023-05-02 19:07:02 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 246 seconds) |
2023-05-02 19:12:37 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
2023-05-02 19:13:24 +0200 | <sm> | famubu: M-x customize-group haskell<TAB> and you'll |
2023-05-02 19:13:24 +0200 | <sm> | probably find it |
2023-05-02 19:21:08 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-05-02 19:26:15 +0200 | puke | (~puke@user/puke) (Remote host closed the connection) |
2023-05-02 19:26:21 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
2023-05-02 19:26:40 +0200 | puke | (~puke@user/puke) |
2023-05-02 19:27:25 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
2023-05-02 19:27:26 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-05-02 19:30:45 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-05-02 19:32:54 +0200 | kuribas | (~user@2a02:1808:83:eb5c:7e9d:6d4d:1da8:cade) |
2023-05-02 19:33:37 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.8) |
2023-05-02 19:35:16 +0200 | kuribas | (~user@2a02:1808:83:eb5c:7e9d:6d4d:1da8:cade) (Remote host closed the connection) |
2023-05-02 19:36:03 +0200 | mikail | (~mikail@2a02:c7c:609d:c900:4cef:c956:5d99:43ab) |
2023-05-02 19:55:53 +0200 | johnjaye | (~pi@072-181-052-090.res.spectrum.com) (Read error: Connection reset by peer) |
2023-05-02 19:58:47 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-05-02 19:59:11 +0200 | johnjaye | (~pi@072-181-052-090.res.spectrum.com) |
2023-05-02 20:05:07 +0200 | puke | (~puke@user/puke) (Quit: puke) |
2023-05-02 20:07:06 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 20:11:12 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 248 seconds) |
2023-05-02 20:11:19 +0200 | mikail | (~mikail@2a02:c7c:609d:c900:4cef:c956:5d99:43ab) (Ping timeout: 256 seconds) |
2023-05-02 20:12:17 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
2023-05-02 20:12:48 +0200 | ray_ | (~ray@2405:201:680a:b174:ca64:ecc9:98b0:81d3) |
2023-05-02 20:13:12 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 20:16:17 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
2023-05-02 20:16:57 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2023-05-02 20:17:11 +0200 | ub1 | (~Thunderbi@p548c9793.dip0.t-ipconnect.de) |
2023-05-02 20:17:44 +0200 | ub | (~Thunderbi@p200300ecdf15583fadacaf30e6b5a958.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-05-02 20:17:44 +0200 | polyphem | (~polyphem@ip-109-43-49-185.web.vodafone.de) |
2023-05-02 20:19:27 +0200 | ub1 | ub |
2023-05-02 20:22:54 +0200 | <polyphem> | hi, i once read a funny quote about javaEnterpriseBoolFactory or something . If you know what i mean , do you have any pointers ? |
2023-05-02 20:23:22 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
2023-05-02 20:26:01 +0200 | <monochrom> | In priv msg with lambdabot, try "@quote factory". Try multiple times because each time it randomly picks one. |
2023-05-02 20:27:49 +0200 | wiosna | (~karangura@209.166.121.87) |
2023-05-02 20:27:57 +0200 | <polyphem> | monochrom: thank you , will try |
2023-05-02 20:28:57 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-05-02 20:34:14 +0200 | wiosna | (~karangura@209.166.121.87) (Ping timeout: 246 seconds) |
2023-05-02 20:34:38 +0200 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2023-05-02 20:36:28 +0200 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
2023-05-02 20:37:54 +0200 | yaroot_ | (~yaroot@p3099038-ipngn6001souka.saitama.ocn.ne.jp) |
2023-05-02 20:38:38 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2023-05-02 20:39:16 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Ping timeout: 250 seconds) |
2023-05-02 20:39:16 +0200 | yaroot_ | yaroot |
2023-05-02 20:42:18 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-05-02 20:42:44 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-05-02 20:42:59 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 246 seconds) |
2023-05-02 20:44:14 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Remote host closed the connection) |
2023-05-02 20:46:48 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2023-05-02 20:49:07 +0200 | <polyphem> | i think it was in a george wilson talk, he is so funny, can't recall which one |
2023-05-02 20:50:21 +0200 | <[exa]> | polyphem: it might have been embedded in maven source code |
2023-05-02 20:52:03 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) |
2023-05-02 20:52:49 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Remote host closed the connection) |
2023-05-02 20:53:49 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2023-05-02 20:55:27 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 20:56:10 +0200 | thaumavorio | (~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-05-02 20:57:19 +0200 | mikail | (~mikail@2a02:c7c:609d:c900:4cef:c956:5d99:43ab) |
2023-05-02 20:57:21 +0200 | thaumavorio | (~thaumavor@thaumavor.io) |
2023-05-02 20:57:47 +0200 | mikail | (~mikail@2a02:c7c:609d:c900:4cef:c956:5d99:43ab) (Client Quit) |
2023-05-02 21:02:27 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 21:02:38 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-05-02 21:07:09 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 268 seconds) |
2023-05-02 21:22:20 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Remote host closed the connection) |
2023-05-02 21:27:36 +0200 | <tomsmeding> | polyphem: probably not what you're referring to, but it's related https://codegolf.stackexchange.com/questions/4838/most-complex-hello-world-program-you-can-justify |
2023-05-02 21:29:09 +0200 | pavonia | (~user@user/siracusa) |
2023-05-02 21:38:36 +0200 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Quit: o/) |
2023-05-02 21:39:23 +0200 | <dminuoso> | famubu: What red underlining are you referring to exactly? |
2023-05-02 21:40:28 +0200 | <dminuoso> | haskell-mode neither has the ability to detect compilation errors, nor to hilight them |
2023-05-02 21:41:20 +0200 | <dminuoso> | Are you perhaps talking about lsp-haskell + lsp-mode + flycheck? |
2023-05-02 21:41:50 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
2023-05-02 21:42:02 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Remote host closed the connection) |
2023-05-02 21:42:26 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2023-05-02 21:43:04 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
2023-05-02 21:46:21 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 21:46:25 +0200 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) |
2023-05-02 21:47:14 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
2023-05-02 21:51:33 +0200 | tv1 | (~tv@user/tv) (Quit: derp) |
2023-05-02 21:51:44 +0200 | Guest4243 | (~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de) |
2023-05-02 21:51:47 +0200 | tv | (~tv@user/tv) |
2023-05-02 21:51:48 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) |
2023-05-02 21:52:45 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-05-02 21:54:28 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 276 seconds) |
2023-05-02 21:55:26 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-05-02 21:57:44 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-05-02 22:00:02 +0200 | Sciencentistguy1 | (~sciencent@hacksoc/ordinary-member) |
2023-05-02 22:01:04 +0200 | vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2023-05-02 22:02:12 +0200 | Guest45678 | (~Guest4567@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de) (Quit: Client closed) |
2023-05-02 22:02:39 +0200 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 268 seconds) |
2023-05-02 22:02:39 +0200 | Sciencentistguy1 | Sciencentistguy |
2023-05-02 22:13:53 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) |
2023-05-02 22:14:59 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 268 seconds) |
2023-05-02 22:15:06 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-05-02 22:16:19 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-05-02 22:16:21 +0200 | czy | (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
2023-05-02 22:17:36 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds) |
2023-05-02 22:21:21 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-05-02 22:21:31 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-5d8c-8b3d-ea84-cebb.rev.sfr.net) (Remote host closed the connection) |
2023-05-02 22:21:49 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d153-c9b1-0894-c65f.rev.sfr.net) |
2023-05-02 22:22:51 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) |
2023-05-02 22:27:15 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a180:5f0a:ca2e:8345) (Ping timeout: 260 seconds) |
2023-05-02 22:28:44 +0200 | johnjaye | (~pi@072-181-052-090.res.spectrum.com) (Quit: WeeChat 4.0.0-dev) |
2023-05-02 22:30:35 +0200 | tremon | (~tremon@83.80.159.219) |
2023-05-02 22:31:38 +0200 | nick4 | (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 268 seconds) |
2023-05-02 22:36:55 +0200 | Guest4243 | (~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de) (Quit: Connection closed) |
2023-05-02 22:38:48 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-05-02 22:46:28 +0200 | chomwitt | (~chomwitt@2a02:587:7a1d:9d00:1ac0:4dff:fedb:a3f1) |
2023-05-02 22:51:53 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d153-c9b1-0894-c65f.rev.sfr.net) (Remote host closed the connection) |
2023-05-02 22:52:10 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d153-c9b1-0894-c65f.rev.sfr.net) |
2023-05-02 22:52:21 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d153-c9b1-0894-c65f.rev.sfr.net) (Remote host closed the connection) |
2023-05-02 22:55:59 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d153-c9b1-0894-c65f.rev.sfr.net) |
2023-05-02 22:57:02 +0200 | son0p | (~ff@181.136.122.143) |
2023-05-02 23:04:48 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Quit: WeeChat 3.8) |
2023-05-02 23:06:36 +0200 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 250 seconds) |
2023-05-02 23:08:29 +0200 | m5zs7k | (aquares@web10.mydevil.net) |
2023-05-02 23:08:32 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2023-05-02 23:09:01 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) |
2023-05-02 23:09:55 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-05-02 23:14:00 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
2023-05-02 23:14:07 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 23:18:20 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 246 seconds) |
2023-05-02 23:21:35 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 268 seconds) |
2023-05-02 23:27:18 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) |
2023-05-02 23:28:32 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-05-02 23:30:43 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-05-02 23:34:30 +0200 | michalz | (~michalz@185.246.207.197) (Remote host closed the connection) |
2023-05-02 23:36:56 +0200 | chomwitt | (~chomwitt@2a02:587:7a1d:9d00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
2023-05-02 23:39:39 +0200 | freeside | (~mengwong@103.252.202.85) |
2023-05-02 23:44:48 +0200 | freeside | (~mengwong@103.252.202.85) (Ping timeout: 240 seconds) |
2023-05-02 23:46:54 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-183-223.46.114.pool.telefonica.de) (Ping timeout: 250 seconds) |
2023-05-02 23:47:29 +0200 | merijn | (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2023-05-02 23:49:46 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |