2022-11-30 00:03:04 +0100 | cheater | (~Username@user/cheater) |
2022-11-30 00:05:51 +0100 | king_gs | (~Thunderbi@2806:103e:29:86f9:15db:b0e0:45d5:32a8) |
2022-11-30 00:05:59 +0100 | king_gs | (~Thunderbi@2806:103e:29:86f9:15db:b0e0:45d5:32a8) (Client Quit) |
2022-11-30 00:09:29 +0100 | <iqubic> | I'm getting this warning when I load a file in GHCi: |
2022-11-30 00:09:40 +0100 | <iqubic> | These modules are needed for compilation but not listed in your .cabal file's other-modules: |
2022-11-30 00:09:47 +0100 | <iqubic> | Common.Parser Common.Runner |
2022-11-30 00:09:54 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-11-30 00:10:28 +0100 | <iqubic> | https://dpaste.com/GLGPS7AWJ |
2022-11-30 00:10:37 +0100 | <iqubic> | Anyone know what the issue here is? |
2022-11-30 00:11:16 +0100 | <geekosaur> | how are you running ghci? |
2022-11-30 00:11:23 +0100 | shailangsa | (~shailangs@host86-186-177-178.range86-186.btcentralplus.com) |
2022-11-30 00:15:49 +0100 | euandreh | (~Thunderbi@179.214.113.107) |
2022-11-30 00:16:32 +0100 | <iqubic> | geekosaur: I'm using `cabal repl` |
2022-11-30 00:16:56 +0100 | <iqubic> | Sorry, had to get food. |
2022-11-30 00:17:06 +0100 | <geekosaur> | interesting. I wonder if you need to specify the lib component |
2022-11-30 00:17:22 +0100 | <geekosaur> | (don't worry about getting food, I'm working on dinner myself) |
2022-11-30 00:18:17 +0100 | <iqubic> | Weird... I haven't specified a lib component. |
2022-11-30 00:18:55 +0100 | <geekosaur> | looks like you did to me (everything is under line 16) |
2022-11-30 00:19:29 +0100 | <iqubic> | Like, GHCi is working properly, and is able to find the functions I've got in Common.Runner and Common.Parser |
2022-11-30 00:20:23 +0100 | merijn | (~merijn@86.86.29.250) (Ping timeout: 260 seconds) |
2022-11-30 00:21:54 +0100 | <geekosaur> | it all looks in order to me, so I'm not sure why you'd get that |
2022-11-30 00:22:39 +0100 | <iqubic> | It's just a warning, and everything's working fine for me right now. |
2022-11-30 00:22:46 +0100 | <iqubic> | I'm not gonna worry about it too much. |
2022-11-30 00:24:34 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 265 seconds) |
2022-11-30 00:28:07 +0100 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2022-11-30 00:34:04 +0100 | mastarija | (~mastarija@2a05:4f46:e03:6000:f1ac:bce8:2f8c:70c3) (Ping timeout: 252 seconds) |
2022-11-30 00:37:50 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-11-30 00:39:03 +0100 | acidjnk_new | (~acidjnk@p200300d6e7137a95e97f13ccb1fca6e5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-11-30 00:42:54 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-11-30 00:44:37 +0100 | Topsi | (~Topsi@dyndsl-095-033-143-187.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-11-30 00:45:47 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) |
2022-11-30 00:46:59 +0100 | cafkafk_ | (~cafkafk@fsf/member/cafkafk) (Ping timeout: 255 seconds) |
2022-11-30 00:47:54 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection) |
2022-11-30 00:55:03 +0100 | titibandit | (~titibandi@xdsl-78-34-153-165.nc.de) (Remote host closed the connection) |
2022-11-30 00:58:03 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) |
2022-11-30 01:04:00 +0100 | causal | (~user@50.35.83.177) |
2022-11-30 01:07:02 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-11-30 01:09:47 +0100 | Guest75 | (~Guest75@178.141.153.191) |
2022-11-30 01:11:55 +0100 | polo | money |
2022-11-30 01:14:21 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) (Ping timeout: 265 seconds) |
2022-11-30 01:17:14 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 01:22:51 +0100 | kraftwerk28 | (~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-11-30 01:24:12 +0100 | kraftwerk28 | (~kraftwerk@178.62.210.83) |
2022-11-30 01:26:26 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Ping timeout: 265 seconds) |
2022-11-30 01:27:17 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2022-11-30 01:31:43 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) |
2022-11-30 01:32:54 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection) |
2022-11-30 01:33:31 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) |
2022-11-30 01:43:09 +0100 | ulvarrefr | (~user@188.124.56.153) |
2022-11-30 01:44:59 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::efb) |
2022-11-30 01:45:06 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::efb) (Client Quit) |
2022-11-30 01:51:05 +0100 | iqubic | (~user@2601:602:9502:c70:4937:ec1d:8679:10f2) (Read error: Connection reset by peer) |
2022-11-30 01:52:03 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2022-11-30 01:52:15 +0100 | iqubic | (~user@2601:602:9502:c70:8460:2630:d857:cfc) |
2022-11-30 01:55:28 +0100 | Guest75 | (~Guest75@178.141.153.191) (Ping timeout: 260 seconds) |
2022-11-30 01:58:49 +0100 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 265 seconds) |
2022-11-30 01:59:22 +0100 | jinsun | (~jinsun@user/jinsun) |
2022-11-30 02:05:40 +0100 | <iqubic> | For some reason, I'm finding megaparsec not working for me now, despite using literally the same code as last year. |
2022-11-30 02:05:48 +0100 | <iqubic> | https://dpaste.com/725CVPE97 |
2022-11-30 02:06:11 +0100 | <iqubic> | That file is the code I'm using plus two simgle tests at the bottom. |
2022-11-30 02:06:33 +0100 | <iqubic> | The issue is that parseLines seems to be giving me an infinite loop. |
2022-11-30 02:07:21 +0100 | <iqubic> | Oh, it's just the combination of my "parseLines" combinator with my "commaSep" combinator. |
2022-11-30 02:08:54 +0100 | astra | amish |
2022-11-30 02:08:58 +0100 | amish | (sid289983@id-289983.hampstead.irccloud.com) (Changing host) |
2022-11-30 02:08:58 +0100 | amish | (sid289983@user/amish) |
2022-11-30 02:08:58 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) (Ping timeout: 265 seconds) |
2022-11-30 02:09:13 +0100 | <iqubic> | because `parseLines number "1\n2\n"` works just fine. |
2022-11-30 02:10:12 +0100 | amish | astra |
2022-11-30 02:13:49 +0100 | <zzz> | [__1] rejecting: sete:setup.Cabal-3.8.1.0/installed-3.8.1.0 (conflict: sete => |
2022-11-30 02:13:49 +0100 | <zzz> | sete:setup.Cabal>=1.0 && <1.25) |
2022-11-30 02:13:55 +0100 | <zzz> | ^ i dont know what this means |
2022-11-30 02:14:34 +0100 | <zzz> | what is the setup.Cabal dependency and how can i get rid of the constraint? |
2022-11-30 02:18:11 +0100 | shailangsa | (~shailangs@host86-186-177-178.range86-186.btcentralplus.com) (Ping timeout: 264 seconds) |
2022-11-30 02:23:23 +0100 | <maerwald[m]> | Don't think you can |
2022-11-30 02:24:05 +0100 | xff0x | (~xff0x@2405:6580:b080:900:7923:62c4:dbe7:6816) (Ping timeout: 255 seconds) |
2022-11-30 02:26:08 +0100 | <iqubic> | Why is Megaparsec failing for me? |
2022-11-30 02:26:30 +0100 | Guest|76 | (~Guest|76@c-73-147-47-145.hsd1.va.comcast.net) |
2022-11-30 02:27:26 +0100 | <EvanR> | does it have to do with left recursion |
2022-11-30 02:27:31 +0100 | <EvanR> | in your grammar |
2022-11-30 02:27:42 +0100 | yuribarros | (~yuribarro@2804:14c:65e4:865c::1000) (Quit: Leaving) |
2022-11-30 02:28:14 +0100 | <EvanR> | e.g. e := 3 | -e | e + e, would loop if you attempted to megaparsec that directly |
2022-11-30 02:29:21 +0100 | <iqubic> | I'm not sure. |
2022-11-30 02:30:08 +0100 | <iqubic> | If you rewrite it, it boils down to this: |
2022-11-30 02:30:16 +0100 | <iqubic> | ((PARSER `sepBy` char ',') `endBy` optional eol)) |
2022-11-30 02:30:27 +0100 | <iqubic> | Where PARSER is any parser. |
2022-11-30 02:30:39 +0100 | <zzz> | does anyone have a clue why my build is failing? https://paste.jrvieira.com/1669771810579 |
2022-11-30 02:31:06 +0100 | <iqubic> | EvanR: Does ((PARSER `sepBy` char ',') `endBy` optional eol)) look wrong? |
2022-11-30 02:31:52 +0100 | <ephemient> | why optional eol? |
2022-11-30 02:32:07 +0100 | <ephemient> | that looks like you will get into an infinite loop if your parser accepts an empty string |
2022-11-30 02:33:07 +0100 | <iqubic> | Removing the `optional eol` bit fixes my issues. I think... More testing is needed. |
2022-11-30 02:33:21 +0100 | <ephemient> | also I think you are more likely to want ((PARSER `sepBy1` char ',') `endBy` eol) |
2022-11-30 02:33:37 +0100 | <EvanR> | (PARSER `sepBy` char ',') `endBy` |
2022-11-30 02:33:40 +0100 | <EvanR> | does look wrong xD |
2022-11-30 02:34:45 +0100 | Guest|76 | (~Guest|76@c-73-147-47-145.hsd1.va.comcast.net) (Quit: Connection closed) |
2022-11-30 02:34:48 +0100 | <iqubic> | Yeah, sepBy1 is what I want. |
2022-11-30 02:35:37 +0100 | <iqubic> | Well, except that I also want to match bits where there are no commas. |
2022-11-30 02:36:41 +0100 | <iqubic> | Yeah, sepBy1 is what I wanted. |
2022-11-30 02:41:41 +0100 | <iqubic> | EvanR: What does sepBy1 match exactly? |
2022-11-30 02:42:39 +0100 | <EvanR> | same as sepBy but 1 instance of p has to come first |
2022-11-30 02:43:26 +0100 | <iqubic> | Ah. That's exactly what I want. |
2022-11-30 02:44:12 +0100 | <iqubic> | A lot of Advent of Code problems end up having a parser that just looking like this: "parseLines (commaSep number) "1\n1,2,3\n" |
2022-11-30 02:45:22 +0100 | <iqubic> | When you expand all the functions there you get: ((signed (return ()) decimal) `sepBy1` char ',') `endBy` eol) |
2022-11-30 02:45:35 +0100 | <EvanR> | map (map read) . splitOn "," . lines xD |
2022-11-30 02:45:45 +0100 | <EvanR> | er |
2022-11-30 02:45:55 +0100 | <EvanR> | map (map read) . map (splitOn ",") . lines |
2022-11-30 02:46:09 +0100 | <iqubic> | Yeah... I know that Megaparsec is overkill. I know that... |
2022-11-30 02:46:53 +0100 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Quit: WeeChat 3.7.1) |
2022-11-30 02:47:07 +0100 | <EvanR> | my stupid AF line parser for this day in 2020 https://paste.tomsmeding.com/M8m8Hy2d |
2022-11-30 02:47:47 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 02:49:05 +0100 | foul_owl | (~kerry@157.97.134.156) (Ping timeout: 265 seconds) |
2022-11-30 02:49:13 +0100 | <EvanR> | I tried to make a savant level parser language like glguy has but could not |
2022-11-30 02:50:50 +0100 | <int-e> | pl ('a':'c':'c':' ':xs) = Acc (ri xs) |
2022-11-30 02:51:21 +0100 | <iqubic> | https://paste.tomsmeding.com/E5EUIGdj |
2022-11-30 02:51:26 +0100 | <iqubic> | That's what I did there. |
2022-11-30 02:52:55 +0100 | <iqubic> | See Megaparsec is cool because it automatically parsers an option + or - at the start of a number |
2022-11-30 02:53:00 +0100 | <zzz> | this is my most useful little function for AoC: |
2022-11-30 02:53:01 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) |
2022-11-30 02:53:03 +0100 | <zzz> | -- parse numbers from a string |
2022-11-30 02:53:03 +0100 | <zzz> | parseNums :: (Read a,Num a) => String -> [a] |
2022-11-30 02:53:03 +0100 | <zzz> | parseNums xs | null n = [] | otherwise = read n : parseNums r where (n,r) = span isDigit $ dropWhile (not . isDigit) xs |
2022-11-30 02:53:22 +0100 | <iqubic> | I have a lot of little useful things for AoC. |
2022-11-30 02:53:33 +0100 | <zzz> | aw i messed the line breaks |
2022-11-30 02:53:33 +0100 | <EvanR> | Seq, dang |
2022-11-30 02:54:05 +0100 | glguy | gets the aoc ping (it's starting!) I did it like https://github.com/glguy/advent/blob/main/solutions/src/2020/08.hs#L39 |
2022-11-30 02:54:34 +0100 | <EvanR> | ah, it's a quasi quoter |
2022-11-30 02:55:08 +0100 | <iqubic> | I wrote function "freq :: (Ord a, Foldable t) => t a -> Map a Int" which counts up how many times each thing appears. |
2022-11-30 02:55:20 +0100 | <iqubic> | *freqs |
2022-11-30 02:55:26 +0100 | <iqubic> | I use freqs a lot |
2022-11-30 02:56:11 +0100 | <zzz> | glguy: `pure[]` |
2022-11-30 02:56:15 +0100 | <zzz> | :/ thanks i hate it |
2022-11-30 02:57:23 +0100 | <int-e> | :t M.fromListWith (+) . map (,1) . foldMap pure |
2022-11-30 02:57:24 +0100 | <lambdabot> | (Ord k, Num a, Foldable t) => t k -> M.Map k a |
2022-11-30 02:57:50 +0100 | <iqubic> | freqs = foldr (\val m -> M.insertWith (+) val 1 m) M.empty |
2022-11-30 02:58:49 +0100 | <int-e> | M.fromListWith (+) is quite versatile by itself |
2022-11-30 02:58:57 +0100 | <iqubic> | It really is. |
2022-11-30 02:59:26 +0100 | <int-e> | a lot of the run-the-mill DP problems can be expressed with that, followed by a do block or list comprehension |
2022-11-30 02:59:36 +0100 | <iqubic> | same :: (Foldable t, Eq a) => t a -> Bool |
2022-11-30 02:59:40 +0100 | <iqubic> | same xs = all (head (toList xs) ==) xs |
2022-11-30 02:59:54 +0100 | <iqubic> | Why did I write that? Because I thought it would be useful. |
2022-11-30 03:00:14 +0100 | <iqubic> | int-e: How so? |
2022-11-30 03:00:25 +0100 | shailangsa | (~shailangs@host86-185-98-123.range86-185.btcentralplus.com) |
2022-11-30 03:00:37 +0100 | <iqubic> | How do you use M.fromListWith (+) to do run-of-the-mill DP? |
2022-11-30 03:00:43 +0100 | <int-e> | :t null . tail . group |
2022-11-30 03:00:45 +0100 | <lambdabot> | Eq a => [a] -> Bool |
2022-11-30 03:01:51 +0100 | <int-e> | iqubic: because most of them are counting... like counting paths in a DAG... so you make the key the subproblem, and the list comprehension unfold one level of subproblems. |
2022-11-30 03:02:50 +0100 | <int-e> | (and if its' not counting, you can change (+) to something else and do stuff like minimization) |
2022-11-30 03:04:24 +0100 | <iqubic> | I bet you could use that for 2020 Day 10 Part 2 |
2022-11-30 03:04:27 +0100 | <iqubic> | https://adventofcode.com/2020/day/10 |
2022-11-30 03:04:38 +0100 | foul_owl | (~kerry@157.97.134.156) |
2022-11-30 03:05:07 +0100 | <int-e> | iqubic: why foldr rather than foldl[']? |
2022-11-30 03:05:23 +0100 | <iqubic> | Is foldl['] better? |
2022-11-30 03:05:36 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-11-30 03:05:52 +0100 | <iqubic> | In this case there's no difference in output because it's an associative operation. |
2022-11-30 03:05:55 +0100 | <int-e> | map updates aren't lazy. |
2022-11-30 03:06:18 +0100 | <iqubic> | So, is foldl' better? |
2022-11-30 03:07:02 +0100 | <int-e> | Yes. (Unless I'm missing something but I really don't know what that would be.) |
2022-11-30 03:08:29 +0100 | <iqubic> | No. You probably aren't. |
2022-11-30 03:09:09 +0100 | <int-e> | FWIW, fromListWithKey f xs = Foldable.foldl' ins empty xs where ins t (k,x) = insertWithKey f k x t (and fromListWith is defined in terms of that) |
2022-11-30 03:10:12 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2022-11-30 03:10:30 +0100 | <segfaultfizzbuzz> | can i fairly trivially use haskell itself as a scripting language within a haskell program (such as via ghci)? |
2022-11-30 03:11:16 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-11-30 03:11:37 +0100 | <zzz> | segfaultfizzbuzz: not only that but even https://hackage.haskell.org/package/turtle-1.6.1/docs/Turtle-Tutorial.html |
2022-11-30 03:12:16 +0100 | <segfaultfizzbuzz> | yeah i don't like scripting languages |
2022-11-30 03:12:17 +0100 | <zzz> | wait, wdym? |
2022-11-30 03:12:27 +0100 | <Cale> | segfaultfizzbuzz: You can use the GHC API or more user-friendly wrappers for it such as the 'hint' package to evaluate Haskell at runtime. |
2022-11-30 03:12:35 +0100 | <segfaultfizzbuzz> | okay so let's say that i write some code which provides a bunch of functions for interacting with a database |
2022-11-30 03:13:23 +0100 | <segfaultfizzbuzz> | and let's say that i want a user to be able to (safely!) munch on those functions,... perhaps to take the output of a function and display it in a programmable manner, such as to highlight certain conditions in the color red or somesuch |
2022-11-30 03:13:48 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
2022-11-30 03:14:18 +0100 | <segfaultfizzbuzz> | that is to say, perhaps i write a function that spits out a table from a database, so my user could "haskell-script" a function which accepts the output of that function and selects certain rows and colors them red |
2022-11-30 03:14:27 +0100 | <gurkenglas> | uh oh, "HLS doesn't support GHC 9.2.5 yet" when all I did was follow HLS's instructions to install ghcup |
2022-11-30 03:14:49 +0100 | <segfaultfizzbuzz> | gurkenglas: what platform are you on |
2022-11-30 03:14:54 +0100 | <gurkenglas> | Debian 11 |
2022-11-30 03:15:20 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-11-30 03:15:20 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-11-30 03:15:20 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-11-30 03:19:12 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-11-30 03:19:28 +0100 | <segfaultfizzbuzz> | Cale: hmm hint doesn't look like it would be safe to run on a server...? |
2022-11-30 03:21:03 +0100 | <albet70> | if there's f x $ do ... $ y since the middle do notation has indentation, write where y should be? |
2022-11-30 03:21:20 +0100 | <albet70> | if do not use flip |
2022-11-30 03:21:22 +0100 | <Cale> | segfaultfizzbuzz: Running arbitrary Haskell code probably isn't all that safe |
2022-11-30 03:22:16 +0100 | <zzz> | gurkenglas: it supports 9.4.2 if you're good with updating |
2022-11-30 03:22:20 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-30 03:22:27 +0100 | <Cale> | segfaultfizzbuzz: Though lambdabot exists... |
2022-11-30 03:23:09 +0100 | <Cale> | https://hackage.haskell.org/package/mueval |
2022-11-30 03:23:42 +0100 | <Cale> | mueval is built on top of hint and does a bunch of the sanitizing you might want if you're letting people type random expressions in |
2022-11-30 03:24:33 +0100 | <Cale> | However, if you are serious about security, this really isn't enough. |
2022-11-30 03:26:51 +0100 | <Cale> | (The amount of damage someone can do by pwning lambdabot is also not that high, so it balances out to be sufficient there.) |
2022-11-30 03:28:26 +0100 | <zzz> | i have NO CLUE of what's going on... why does my build fail? |
2022-11-30 03:29:09 +0100 | <glguy> | zzz: what's sete? is the .cabal file online somewhere? |
2022-11-30 03:29:22 +0100 | <zzz> | https://paste.jrvieira.com/1669775357753 |
2022-11-30 03:29:32 +0100 | <zzz> | oh, sorry |
2022-11-30 03:29:48 +0100 | <glguy> | I think you probably need a cabal-version declaration in your .cabal file |
2022-11-30 03:29:55 +0100 | <zzz> | https://paste.jrvieira.com/1669775386868 |
2022-11-30 03:30:01 +0100 | <zzz> | here's the cabal file |
2022-11-30 03:30:47 +0100 | <glguy> | zzz: change that first line to cabal-version: 2.4 |
2022-11-30 03:33:29 +0100 | <zzz> | ok that worked |
2022-11-30 03:33:49 +0100 | <zzz> | what happened here? |
2022-11-30 03:34:37 +0100 | <glguy> | What you had was invalid, so I guess it got ignored |
2022-11-30 03:34:58 +0100 | <glguy> | that declaration was added in Cabal 2, so without it Cabal assumes it's an old Cabal 1 file |
2022-11-30 03:35:00 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 265 seconds) |
2022-11-30 03:35:25 +0100 | <glguy> | The declaration states which version of the cabal format you're using, so a range doesn't make sense |
2022-11-30 03:35:53 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.7.1) |
2022-11-30 03:37:06 +0100 | <zzz> | oh |
2022-11-30 03:37:19 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds) |
2022-11-30 03:37:24 +0100 | <zzz> | thanks, i must have messed that up at some point |
2022-11-30 03:37:26 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-11-30 03:37:55 +0100 | <zzz> | the error messages are complete nonsense though |
2022-11-30 03:39:03 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2022-11-30 03:45:28 +0100 | <segfaultfizzbuzz> | last updated... 7 years ago :/ |
2022-11-30 03:47:38 +0100 | talismanick | (~user@76.133.152.122) (Read error: Connection reset by peer) |
2022-11-30 03:53:20 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-11-30 03:53:52 +0100 | sammelweis | (~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Remote host closed the connection) |
2022-11-30 03:54:07 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-30 03:54:28 +0100 | talismanick | (~user@76.133.152.122) |
2022-11-30 03:56:01 +0100 | <segfaultfizzbuzz> | on a somewhat related note, i have been using rust and diesel with great success but just noticed that if i want to change my schema i need to basically recompile (excepting raw sql queries) |
2022-11-30 03:56:14 +0100 | <segfaultfizzbuzz> | for example if i want to add or remove a table, or add columns to a table |
2022-11-30 03:56:29 +0100 | <segfaultfizzbuzz> | does haskell/a haskell orm have a nice way of handling this situation which isn't so burdensome? |
2022-11-30 04:00:36 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 04:01:28 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2022-11-30 04:07:33 +0100 | <pixie> | exit |
2022-11-30 04:07:36 +0100 | pixie | (~pixie@cm-170-253-186-17.maxxsouthbb.net) (Quit: Lost terminal) |
2022-11-30 04:14:38 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2022-11-30 04:14:58 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-11-30 04:16:33 +0100 | razetime | (~quassel@49.207.211.219) |
2022-11-30 04:16:33 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-30 04:22:04 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Remote host closed the connection) |
2022-11-30 04:23:25 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2022-11-30 04:27:51 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-11-30 04:27:51 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-11-30 04:27:51 +0100 | finn_elija | FinnElija |
2022-11-30 04:32:31 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 265 seconds) |
2022-11-30 04:32:34 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-11-30 04:33:07 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-11-30 04:33:23 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 04:43:41 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-11-30 04:46:12 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) |
2022-11-30 04:46:54 +0100 | offtherock | (~blurb@96.45.2.121) (Remote host closed the connection) |
2022-11-30 04:51:25 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-30 04:51:35 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 04:54:16 +0100 | td_ | (~td@83.135.9.40) (Ping timeout: 265 seconds) |
2022-11-30 04:55:59 +0100 | td_ | (~td@83.135.9.45) |
2022-11-30 05:01:19 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection) |
2022-11-30 05:02:04 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) |
2022-11-30 05:08:02 +0100 | mbuf | (~Shakthi@49.204.141.87) |
2022-11-30 05:08:22 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-11-30 05:09:24 +0100 | jargon | (~jargon@174-22-207-8.phnx.qwest.net) |
2022-11-30 05:09:29 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 05:09:29 +0100 | jargon | (~jargon@174-22-207-8.phnx.qwest.net) (Remote host closed the connection) |
2022-11-30 05:10:19 +0100 | jargon | (~jargon@174-22-207-8.phnx.qwest.net) |
2022-11-30 05:18:46 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 05:19:23 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 264 seconds) |
2022-11-30 05:22:40 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 260 seconds) |
2022-11-30 05:28:42 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds) |
2022-11-30 05:34:02 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-30 05:35:16 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 05:44:49 +0100 | Vajb | (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) (Read error: Connection reset by peer) |
2022-11-30 05:45:13 +0100 | Vajb | (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) |
2022-11-30 05:47:24 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds) |
2022-11-30 05:49:22 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 05:53:35 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
2022-11-30 05:54:06 +0100 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 05:54:11 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 264 seconds) |
2022-11-30 05:55:59 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 264 seconds) |
2022-11-30 06:00:09 +0100 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-30 06:02:15 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 06:13:28 +0100 | iqubic | (~user@2601:602:9502:c70:8460:2630:d857:cfc) (Ping timeout: 256 seconds) |
2022-11-30 06:14:19 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-30 06:15:41 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 06:19:59 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit) |
2022-11-30 06:21:06 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 06:26:43 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-30 06:26:53 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 06:39:32 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds) |
2022-11-30 06:39:56 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-11-30 06:42:05 +0100 | tritlo | (sid58727@user/tritlo) (Ping timeout: 252 seconds) |
2022-11-30 06:43:30 +0100 | son0p | (~ff@2604:3d08:5b7f:5540::ebf0) (Ping timeout: 256 seconds) |
2022-11-30 06:43:50 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-11-30 06:45:16 +0100 | tritlo | (sid58727@user/tritlo) |
2022-11-30 06:49:39 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 06:51:47 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-11-30 06:54:37 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2022-11-30 06:59:16 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-30 06:59:27 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 07:02:20 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-11-30 07:05:17 +0100 | califax | (~califax@user/califx) |
2022-11-30 07:07:13 +0100 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-11-30 07:17:43 +0100 | y04nn | (~y04nn@2a03:1b20:5:f011::aaae) |
2022-11-30 07:26:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-30 07:27:01 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 07:27:16 +0100 | rburkholder | (~blurb@96.45.2.121) |
2022-11-30 07:29:53 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-30 07:31:30 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-11-30 07:36:15 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-30 07:37:32 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 07:41:14 +0100 | acidjnk_new | (~acidjnk@p200300d6e7137a95e97f13ccb1fca6e5.dip0.t-ipconnect.de) |
2022-11-30 07:43:10 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-11-30 07:43:37 +0100 | mei | (~mei@user/mei) |
2022-11-30 07:44:29 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 07:45:47 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 264 seconds) |
2022-11-30 07:46:59 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 07:50:30 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 07:50:36 +0100 | darkstardevx | (~darkstard@50.53.3.186) |
2022-11-30 07:51:29 +0100 | tcard_ | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Remote host closed the connection) |
2022-11-30 07:51:44 +0100 | tcard_ | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) |
2022-11-30 07:57:06 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 07:59:56 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 08:04:07 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-11-30 08:22:26 +0100 | safinaskar | (~quassel@178.160.244.66) |
2022-11-30 08:25:00 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2022-11-30 08:27:14 +0100 | safinaskar | (~quassel@178.160.244.66) () |
2022-11-30 08:27:59 +0100 | kenran | (~user@user/kenran) |
2022-11-30 08:29:32 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 08:32:15 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-11-30 08:33:03 +0100 | mastarija | (~mastarija@2a05:4f46:e03:6000:2089:7745:26f1:513b) |
2022-11-30 08:34:49 +0100 | ulvarrefr | (~user@188.124.56.153) (Ping timeout: 260 seconds) |
2022-11-30 08:35:19 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:97d5:4102:827f:e93) |
2022-11-30 08:39:43 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-30 08:39:53 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 08:40:43 +0100 | y04nn | (~y04nn@2a03:1b20:5:f011::aaae) (Remote host closed the connection) |
2022-11-30 08:44:26 +0100 | mmhat | (~mmh@p200300f1c725456bee086bfffe095315.dip0.t-ipconnect.de) |
2022-11-30 08:45:14 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-11-30 08:51:40 +0100 | CiaoSen | (~Jura@p200300c95716a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-11-30 08:53:08 +0100 | son0p | (~ff@2604:3d08:5b7f:5540::1a33) |
2022-11-30 08:58:50 +0100 | michalz | (~michalz@185.246.204.69) |
2022-11-30 09:02:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 255 seconds) |
2022-11-30 09:03:05 +0100 | safinaskar | (~quassel@178.160.244.66) |
2022-11-30 09:03:37 +0100 | Guest60 | (~Guest60@101.98.118.246) |
2022-11-30 09:03:55 +0100 | CiaoSen | (~Jura@p200300c95716a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2022-11-30 09:04:29 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 09:04:31 +0100 | <Guest60> | What's the recommended approach to working with filepaths? Ideally, with convenience functions such as splitting paths into directory, name and extension as well as construction. |
2022-11-30 09:04:51 +0100 | safinaskar | (~quassel@178.160.244.66) () |
2022-11-30 09:04:55 +0100 | <geekosaur> | the filepath library is a bootlib |
2022-11-30 09:04:59 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds) |
2022-11-30 09:05:11 +0100 | <geekosaur> | (that is, core to ghc) |
2022-11-30 09:06:05 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 265 seconds) |
2022-11-30 09:07:13 +0100 | <Guest60> | This one? https://hackage.haskell.org/package/filepath-1.4.100.0 |
2022-11-30 09:07:57 +0100 | <geekosaur> | yes |
2022-11-30 09:09:06 +0100 | <Guest60> | to use the `OsPath` type do I `import System.OsPath` ? Looking at the docs it would suggest I do but I am getting a compilation error that it can't find the module. |
2022-11-30 09:09:21 +0100 | <DigitalKiwi> | was it a bootlib before or after ghc decided to delete haskell source files on windows |
2022-11-30 09:09:34 +0100 | <geekosaur> | heh |
2022-11-30 09:10:34 +0100 | <geekosaur> | Guest60, you need to make sure you have installed the latest version to get System.OsPath; it's quite new and only ghc 9.4.1 ships with it |
2022-11-30 09:10:55 +0100 | <geekosaur> | which means using cabal or stack to install it |
2022-11-30 09:10:59 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) (Ping timeout: 264 seconds) |
2022-11-30 09:11:21 +0100 | <geekosaur> | before that you will want to look at https://hackage.haskell.org/package/filepath-1.4.2.2 |
2022-11-30 09:11:32 +0100 | fserucas | (~fserucas@212.157.222.2) |
2022-11-30 09:11:49 +0100 | <Guest60> | ah I see. I'm on 9.2.4. I'll try upgrade to 9.4.2 since thats the latest hls version I believe. |
2022-11-30 09:12:47 +0100 | Guest9064 | (~Guest90@174.136.135.37.dynamic.jazztel.es) |
2022-11-30 09:13:06 +0100 | <geekosaur> | DigitalKiwi, that problem was separate (it was supposed to delete the generated .hi file, but passed the wrong suffix) |
2022-11-30 09:13:19 +0100 | Guest9064 | (~Guest90@174.136.135.37.dynamic.jazztel.es) (Client Quit) |
2022-11-30 09:13:22 +0100 | <geekosaur> | not much can be done with stringly typed filenames 🙂 |
2022-11-30 09:15:42 +0100 | <Guest60> | oh bummer 9.2.4 is the latest GHC with a stackage nightly + HLS support |
2022-11-30 09:16:17 +0100 | <geekosaur> | yeh |
2022-11-30 09:16:17 +0100 | <Guest60> | I will try the older version of filepath |
2022-11-30 09:16:40 +0100 | <geekosaur> | just use the older filepath, it has most of the same functions just differently implemented |
2022-11-30 09:16:45 +0100 | <DigitalKiwi> | i'm going to make a typed filename library and have a bug that parses .hi as HaskellSourceFileType instead of HaskellInterfaceFileType |
2022-11-30 09:17:52 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 09:18:19 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) |
2022-11-30 09:18:22 +0100 | <geekosaur> | ghc might actually benefit from the core idea, it'd probably make handling of hidir/odir/etc. easier |
2022-11-30 09:18:23 +0100 | <DigitalKiwi> | s/bug/easter egg/ |
2022-11-30 09:19:30 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-30 09:20:09 +0100 | mastarija | (~mastarija@2a05:4f46:e03:6000:2089:7745:26f1:513b) (Quit: WeeChat 3.5) |
2022-11-30 09:20:41 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 09:21:17 +0100 | <DigitalKiwi> | the difference between a bug and an easter egg is whether it has an open issue in the tracker before or after the release date |
2022-11-30 09:22:07 +0100 | <geekosaur> | easter eggs aren't destructive |
2022-11-30 09:22:27 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-11-30 09:23:18 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 09:23:33 +0100 | <DigitalKiwi> | they are if you boil them |
2022-11-30 09:25:13 +0100 | <geekosaur> | (Guest60, if you're wondering, ghc has had bugs where a compilation error caused deletion of the source file. twice on Windows and once on all platforms. needless to say, that is now one of the core tests…) |
2022-11-30 09:26:24 +0100 | <Guest60> | Oh no hahaha. Hopefully it didn't touch the .git directory |
2022-11-30 09:27:18 +0100 | <DigitalKiwi> | (and i'm fond of bringing those bugs up lol) |
2022-11-30 09:30:19 +0100 | ft | (~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving) |
2022-11-30 09:40:30 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-30 09:41:46 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-11-30 09:43:09 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 09:51:38 +0100 | acidjnk_new | (~acidjnk@p200300d6e7137a95e97f13ccb1fca6e5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-11-30 09:52:19 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 252 seconds) |
2022-11-30 09:53:46 +0100 | gmg | (~user@user/gehmehgeh) |
2022-11-30 09:53:50 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 09:56:00 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2022-11-30 09:57:21 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-11-30 09:59:23 +0100 | kmein | (~weechat@user/kmein) (Quit: ciao kakao) |
2022-11-30 10:00:01 +0100 | kmein | (~weechat@user/kmein) |
2022-11-30 10:00:04 +0100 | kfiz[m] | (~louismatr@2001:470:69fc:105::2:aee0) (Quit: You have been kicked for being idle) |
2022-11-30 10:00:04 +0100 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) (Quit: You have been kicked for being idle) |
2022-11-30 10:03:53 +0100 | mei | (~mei@user/mei) (Remote host closed the connection) |
2022-11-30 10:05:09 +0100 | <Guest60> | Can optparse-applicative parse a `some argument` into a NonEmpty list? |
2022-11-30 10:05:20 +0100 | son0p | (~ff@2604:3d08:5b7f:5540::1a33) (Ping timeout: 255 seconds) |
2022-11-30 10:05:48 +0100 | <Guest60> | Or rather, how can I massage it? |
2022-11-30 10:06:34 +0100 | <tomsmeding> | Guest60: `(:|) <$> argument <*> many argument` ? |
2022-11-30 10:08:12 +0100 | <dminuoso> | Guest60: I would just use the unsafe https://hackage.haskell.org/package/base-4.17.0.0/docs/Data-List-NonEmpty.html#v:fromList |
2022-11-30 10:08:25 +0100 | <dminuoso> | Guest60: For convenience, write yourself a someNE wrapper that you cant misuse this. |
2022-11-30 10:08:53 +0100 | <dminuoso> | i.e. `someNE = fmap NE.fromList . some` |
2022-11-30 10:09:15 +0100 | <tomsmeding> | `fmap (fmap NE.fromList) some` for more fun ;) |
2022-11-30 10:09:27 +0100 | <tomsmeding> | (don't do that) |
2022-11-30 10:09:57 +0100 | <dminuoso> | Or well, I guess tomsmeding's solution is nice too. Pick your poison. |
2022-11-30 10:11:46 +0100 | <dminuoso> | i.e. `someNE a = (:|) <$> a <*> many a` |
2022-11-30 10:12:01 +0100 | <dminuoso> | Every time I use NonEmpty I kind of regret it though |
2022-11-30 10:13:26 +0100 | <tomsmeding> | @pl \a -> liftA2 (:|) a (many a) |
2022-11-30 10:13:27 +0100 | <lambdabot> | ap (liftA2 (:|)) many |
2022-11-30 10:13:37 +0100 | <tomsmeding> | :t liftA2 (:|) <*> many |
2022-11-30 10:13:38 +0100 | <lambdabot> | Alternative f => f a -> f (NonEmpty a) |
2022-11-30 10:13:43 +0100 | <Guest60> | ah wonderful, that's elegant, I suppose its fair to use the unsafe version. Would be nice if the library used nonempty as the type for some |
2022-11-30 10:14:15 +0100 | <Guest60> | Why do you regret using NonEmpty? |
2022-11-30 10:14:37 +0100 | MajorBiscuit | (~MajorBisc@145.94.143.231) |
2022-11-30 10:14:54 +0100 | <dminuoso> | Because most of the time it gets turned back into a list anyway |
2022-11-30 10:15:52 +0100 | <geekosaur> | how much of that is just not enough stuff using NonEmpty that ought to? or just missing NonEmpty versions of things |
2022-11-30 10:16:14 +0100 | <geekosaur> | e.g. foldr1 ought to take a NonEmpty |
2022-11-30 10:16:18 +0100 | <dminuoso> | These two look like the same thing |
2022-11-30 10:16:41 +0100 | <Guest60> | I ended up using NonEmpty because the function where I use the list was partial unless I handled the "impossible" empty case |
2022-11-30 10:16:49 +0100 | <dminuoso> | geekosaur: well I guess its mostly "semigroupoids should be in base" |
2022-11-30 10:16:56 +0100 | <geekosaur> | not quite the same, the latter is stuff that also makes sense on a normal list but to use it with a NonEmpty you need to convert to a list and back |
2022-11-30 10:17:00 +0100 | <Guest60> | feels wrong to add the empty list pattern for a function that should never receive an empty list |
2022-11-30 10:17:08 +0100 | <dminuoso> | If that was to ever happen, I think NonEmpty might become more useful |
2022-11-30 10:19:51 +0100 | <dminuoso> | Guest60: Feel free to use it, maybe it works out great for you. If not, you will know what kind of friction I mean. There's nothing inherently wrong about NonEmpty |
2022-11-30 10:20:32 +0100 | <dminuoso> | Sometimes its these small things like just recursing on a non-empty list. |
2022-11-30 10:21:24 +0100 | <dminuoso> | You end up having senseless base cases regardless |
2022-11-30 10:21:46 +0100 | <Guest60> | In that case would you use the go function pattern? |
2022-11-30 10:21:55 +0100 | <Guest60> | (not sure if go function is the common terminology) |
2022-11-30 10:22:09 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-30 10:22:19 +0100 | <dminuoso> | Well sure, I mean you can either write two go clauses, or you end up with some quirkly code. |
2022-11-30 10:22:38 +0100 | <dminuoso> | e.g. `go (x :| xs) = go1 x xs` ... |
2022-11-30 10:22:42 +0100 | <tomsmeding> | dminuoso: doesn't that end up looking like `f (x:|[]) = ... ; f (x:|xs@(y:ys)) = combine x (f (y:|ys))` |
2022-11-30 10:22:55 +0100 | <tomsmeding> | (while I was writing that I realised the quirkiness of having to write y:ys) |
2022-11-30 10:23:15 +0100 | <dminuoso> | Right, or you end up doing these deep matches |
2022-11-30 10:23:21 +0100 | <dminuoso> | None of that is really satisfying |
2022-11-30 10:23:25 +0100 | <tomsmeding> | agreed |
2022-11-30 10:23:34 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) (Remote host closed the connection) |
2022-11-30 10:24:05 +0100 | <dminuoso> | In an ideal world, something like liquid haskell or dependent types are much better at conceptualizing non-empty lists. |
2022-11-30 10:24:50 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-30 10:24:58 +0100 | <dminuoso> | but it shifts quirkiness into a type system |
2022-11-30 10:25:13 +0100 | <tomsmeding> | I think the best ergonomics for non-empty lists are with refinement types, i.e. liquid haskell |
2022-11-30 10:25:37 +0100 | <tomsmeding> | or... of course you can get the same with dependent types and inferred value arguments |
2022-11-30 10:26:16 +0100 | <dminuoso> | its a bit strange, maybe there is a different representation. |
2022-11-30 10:26:27 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 10:26:28 +0100 | <tomsmeding> | liquid haskell won't silence non-exhaustive pattern warnings though, iirc |
2022-11-30 10:26:49 +0100 | <dminuoso> | tomsmeding: one could conceive a kind of marrying refinement types and the compiler, though. |
2022-11-30 10:26:53 +0100 | <geekosaur> | yet? they;re trying to rewrite as a plugin last I heard, which should |
2022-11-30 10:27:02 +0100 | <tomsmeding> | cool! |
2022-11-30 10:27:52 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-11-30 10:28:46 +0100 | <dminuoso> | Guest60: Anyway, dont let any of this sway you from using NonEmpty. I do have some situations where NonEmpty works without any quirk. |
2022-11-30 10:29:02 +0100 | <Guest60> | What a happy moment that after a week of coding, my console finally prints "Hello, World!" |
2022-11-30 10:29:19 +0100 | <dminuoso> | Guest60: here this is an example straight from one of our projects https://gist.github.com/dminuoso/d8558ad3235d6d2b93194d7bd49106ce |
2022-11-30 10:29:38 +0100 | <dminuoso> | Note how the NonEmpty gets turned back into a regular list? |
2022-11-30 10:30:04 +0100 | <dminuoso> | But it is useful since it allows one side to generate extractable information, and at the rdGroup I dont have to handle some empty list base case to generate the label |
2022-11-30 10:31:16 +0100 | <int-e> | @where subtyping |
2022-11-30 10:31:16 +0100 | <lambdabot> | I know nothing about subtyping. |
2022-11-30 10:31:38 +0100 | <Guest60> | Yeah, I can see NonEmpty has its uses |
2022-11-30 10:32:25 +0100 | <dminuoso> | I mean yeah, in this case the underlying problem is that mapMaybe is too monomorphic. |
2022-11-30 10:32:26 +0100 | <int-e> | (subtypes are a can of worms but NonEmpty is so clunky without them) |
2022-11-30 10:32:45 +0100 | Guest75 | (~Guest75@178.141.153.191) |
2022-11-30 10:33:07 +0100 | <dminuoso> | mapMaybe could easily have the type `Foldable f => (a -> Maybe b) -> f a -> [b]` |
2022-11-30 10:33:23 +0100 | <dminuoso> | If it had, I wouldnt need to turn the NE back into a list |
2022-11-30 10:33:34 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 265 seconds) |
2022-11-30 10:34:13 +0100 | <dminuoso> | Take note, that NonEmpty wouldnt have a Filterable (see witherable) instance, so that would be kind of frustrating. |
2022-11-30 10:34:42 +0100 | <DigitalKiwi> | hello world in haskell is 6 days of getting hls, stack, cabal, emacs, nix, direnv, lorri, etc. to work and 1 day of writing main = putStrLn "Hello World" |
2022-11-30 10:35:08 +0100 | <dminuoso> | DigitalKiwi: ghcup should set up the average user in just minutes. |
2022-11-30 10:35:09 +0100 | tomsmeding | skipped stack, emacs, nix, direnv and lorri, and used nvim instead |
2022-11-30 10:35:18 +0100 | <tomsmeding> | also that |
2022-11-30 10:35:36 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 10:35:37 +0100 | <DigitalKiwi> | i'm not an average user :( |
2022-11-30 10:35:48 +0100 | <tomsmeding> | why does ghcup not work for you? |
2022-11-30 10:35:53 +0100 | <tomsmeding> | oh because nix |
2022-11-30 10:35:58 +0100 | <dminuoso> | In nix its also trivial |
2022-11-30 10:36:15 +0100 | <dminuoso> | Depending on how much you want to build it in nix. |
2022-11-30 10:36:17 +0100 | <tomsmeding> | but if you're set on using nix you can't complain about having to deal with direnv/lorri :p |
2022-11-30 10:36:27 +0100 | <DigitalKiwi> | because maerwald hates haskell and i don't want to use their software ;) |
2022-11-30 10:36:29 +0100 | <dminuoso> | But yeah, the haskell situation in nix is very sad and poor. |
2022-11-30 10:37:35 +0100 | <dminuoso> | If you want to learn Haskell, I would strongly discourage you from building with nix itself. Can use nix to provide cabal-install, ghc and HLS - and that takes just mere minutes. |
2022-11-30 10:37:54 +0100 | <dminuoso> | But the actual build process, well this confronts the user with the painful realities of haskell-in-nix. |
2022-11-30 10:37:59 +0100 | <DigitalKiwi> | i have a shell.nix i cargo cult around that does a lot lol |
2022-11-30 10:38:11 +0100 | <dminuoso> | I use shell.nix + cabal-install mostly. |
2022-11-30 10:38:12 +0100 | <Dominik[m]1> | DigitalKiwi: All you need is a flake template. But setting that up takes ages. You could use one of the templates made by others. |
2022-11-30 10:38:40 +0100 | <dminuoso> | Hah. All you need is a template for a poorly documented experimental feature in nix. :p |
2022-11-30 10:38:54 +0100 | <Dominik[m]1> | You are completely right. |
2022-11-30 10:38:59 +0100 | <Dominik[m]1> | But it is awesome :-). |
2022-11-30 10:39:21 +0100 | <DigitalKiwi> | i have a bunch of these kinds of things i don't know which one i like best yet lol https://github.com/Kiwi/nix-hs-template |
2022-11-30 10:39:22 +0100 | <dminuoso> | It is in fact so experimental, that we dont even have an RFC anymore. :p |
2022-11-30 10:39:34 +0100 | <Dominik[m]1> | And I share your concerns about documentation and stuff. |
2022-11-30 10:39:59 +0100 | <geekosaur> | re "maerwald hates haskell" — he hates every language. he's on record as having said he hates haskell somewhat less, though |
2022-11-30 10:40:08 +0100 | <geekosaur> | (sounds like a sysadmin…) |
2022-11-30 10:40:29 +0100 | <tomsmeding> | someone who writes ghcup and has to deal with weird filesystem issues on windows is a honorary sysadmin |
2022-11-30 10:40:52 +0100 | <Dominik[m]1> | I agree. |
2022-11-30 10:40:59 +0100 | <int-e> | geekosaur: "user data is protocol overhead" (sounds like BOFH but I think it came from somewhere else... can't remember) |
2022-11-30 10:41:13 +0100 | <geekosaur> | and yes, with all the work he's put in on both ghcup and the new filepath, I wouldn't take "hates haskell" too seriously |
2022-11-30 10:41:51 +0100 | <geekosaur> | definitely a BOFH mindset though |
2022-11-30 10:42:07 +0100 | <Dominik[m]1> | when will the new filepath proposal be merged btw? |
2022-11-30 10:42:18 +0100 | <DigitalKiwi> | https://github.com/Kiwi/hakyll-nix-template |
2022-11-30 10:42:21 +0100 | <dminuoso> | I think maerwald is just very open and blunt with the problems he sees. There's certainly folks that have blinders on and advertise Haskell as the perfect and best thing in the world. He's not that. |
2022-11-30 10:42:21 +0100 | <geekosaur> | it's in 9.4 |
2022-11-30 10:42:32 +0100 | <Dominik[m]1> | oh cool |
2022-11-30 10:42:51 +0100 | <geekosaur> | and on hackage as https://hackage.haskell.org/package/filepath-1.4.100.0 |
2022-11-30 10:43:44 +0100 | <DigitalKiwi> | haskell sucks, everything else sucks at least as much lol |
2022-11-30 10:44:11 +0100 | <DigitalKiwi> | 03:44 DigitalKiwi: !as |
2022-11-30 10:44:13 +0100 | <int-e> | Brainfuck is the perfect language. Change my mind. |
2022-11-30 10:44:13 +0100 | <DigitalKiwi> | 03:44 phrik: Arch Sucks™ |
2022-11-30 10:44:19 +0100 | <tomsmeding> | "haskell is the worst language if it weren't for all the others"? |
2022-11-30 10:44:30 +0100 | <DigitalKiwi> | int-e: whitespace |
2022-11-30 10:44:40 +0100 | <geekosaur> | I think it's "except for" |
2022-11-30 10:44:42 +0100 | <DigitalKiwi> | int-e: you can write a program in a program! |
2022-11-30 10:45:02 +0100 | <int-e> | DigitalKiwi: Nah, no contest. It's pretty messy, though it may be hard to see that by looking at the source code. |
2022-11-30 10:45:21 +0100 | <mauke> | DigitalKiwi: https://raw.githubusercontent.com/mauke/poly.poly/master/poly.poly |
2022-11-30 10:45:31 +0100 | <DigitalKiwi> | take a language that doesn't have strict rules on indentation and you can indent it however you want and have 2 programs! |
2022-11-30 10:45:53 +0100 | <mauke> | I can write a program in a program in a program in a program |
2022-11-30 10:45:54 +0100 | <Dominik[m]1> | geekosaur: Did the version number arise from all frustrations? minor 100 :-). |
2022-11-30 10:46:14 +0100 | <geekosaur> | no idea, ask maerwald |
2022-11-30 10:46:37 +0100 | <tomsmeding> | int-e: https://esolangs.org/wiki/Bitwise_Cyclic_Tag |
2022-11-30 10:46:39 +0100 | <geekosaur> | I'd guess he left room in case a change is needed for a new 9.2 release or something, though |
2022-11-30 10:46:51 +0100 | <geekosaur> | not that that seems particularly likely |
2022-11-30 10:48:51 +0100 | <DigitalKiwi> | pretty sure >19 isn't minor |
2022-11-30 10:49:23 +0100 | <mauke> | > "100" > "18" |
2022-11-30 10:49:24 +0100 | <lambdabot> | False |
2022-11-30 10:49:27 +0100 | <DigitalKiwi> | mauke: what's it do |
2022-11-30 10:49:43 +0100 | <DigitalKiwi> | (poly.poly) |
2022-11-30 10:49:51 +0100 | <mauke> | DigitalKiwi: tells you what language it's in :-) |
2022-11-30 10:50:07 +0100 | <DigitalKiwi> | does it run it too |
2022-11-30 10:50:16 +0100 | <mauke> | ? |
2022-11-30 10:50:23 +0100 | <DigitalKiwi> | https://xkcd.com/1654/ |
2022-11-30 10:50:24 +0100 | <int-e> | Dominik[m]1: "This is a major release, but it's actually fully backward compatible so let's not force every downstream package to bump its upper bound on filepath" |
2022-11-30 10:50:40 +0100 | <geekosaur> | ^ |
2022-11-30 10:50:52 +0100 | <Dominik[m]1> | oh |
2022-11-30 10:51:01 +0100 | <geekosaur> | point being that if you use the old FilePath interface it should be 100% compatible |
2022-11-30 10:51:09 +0100 | <dminuoso> | I would suspect the version to be an artifact of maerwald's work strategy. During much of the work, he steadily increased 1.4.99.1 with the last minor version tag, presumably to allow for concurrent branches to bump the previous minor version (1, 2, ...) while staying ahead. |
2022-11-30 10:51:21 +0100 | <dminuoso> | With 1.4.100 presumably being the "done version" of it. |
2022-11-30 10:52:17 +0100 | <mauke> | DigitalKiwi: for something simpler, see https://raw.githubusercontent.com/mauke/poly.poly/master/yes.c |
2022-11-30 10:52:38 +0100 | <Dominik[m]1> | ok but that still does not explain why 100. one could use 1.4.4. |
2022-11-30 10:52:39 +0100 | <mauke> | it shares the main code and semantics between haskell and perl |
2022-11-30 10:53:28 +0100 | <dminuoso> | Dominik[m]1: and if 2 minor versions were to be released in between? |
2022-11-30 10:53:28 +0100 | <Dominik[m]1> | not knowing when the change gets merged though may be a reason |
2022-11-30 10:53:31 +0100 | <geekosaur> | Dominik[m]1, I answered that. they're not going to change ghc9.2.6 (if needed) to use the new filepath, they would make a new minor version of the old one |
2022-11-30 10:53:45 +0100 | <geekosaur> | filepath is a bootlib used by ghc |
2022-11-30 10:54:21 +0100 | zant | (~zant@62.214.20.26) |
2022-11-30 10:54:23 +0100 | <dminuoso> | at the end, none of this really matters anyway |
2022-11-30 10:54:24 +0100 | <geekosaur> | presuming a change were needed, but the prudent programmer assumes it might |
2022-11-30 10:54:38 +0100 | <Dominik[m]1> | ok, those are two separate reasons though |
2022-11-30 10:54:39 +0100 | <dminuoso> | one should never interpret more into a version number than what PVP guarantees (assuming the package follows PVP) |
2022-11-30 10:54:56 +0100 | <Dominik[m]1> | hehe |
2022-11-30 10:55:01 +0100 | <Dominik[m]1> | but one still does |
2022-11-30 10:55:05 +0100 | dminuoso | does not |
2022-11-30 10:55:20 +0100 | <Dominik[m]1> | 😃 |
2022-11-30 10:55:44 +0100 | <dminuoso> | plus, the 100 nicely denotes a major thing, it directly suggests "some major changes" |
2022-11-30 10:55:55 +0100 | <dminuoso> | because it was on the minor version you can then infer its just additional stuff, but something major |
2022-11-30 10:56:01 +0100 | <dminuoso> | (that is nothing was altered or removed) |
2022-11-30 10:57:05 +0100 | <int-e> | dminuoso: did you see the 2.0.0.0 to 2.0.0.3 candidates that predate the 1.4.99.0 one? |
2022-11-30 10:57:09 +0100 | tomsmeding | has always found it awkward how the HTTP package has major version 4000 |
2022-11-30 10:57:27 +0100 | <dminuoso> | int-e: the original proposal was to break api, was it not? |
2022-11-30 10:59:12 +0100 | <geekosaur> | "break api" ran into a brick wall |
2022-11-30 10:59:26 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds) |
2022-11-30 10:59:52 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 268 seconds) |
2022-11-30 11:01:47 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-11-30 11:02:07 +0100 | Pangz[m] | (~pangzpayn@2001:470:69fc:105::2:cdc7) |
2022-11-30 11:02:11 +0100 | <geekosaur> | see for example https://mail.haskell.org/pipermail/ghc-devs/2022-November/021029.html |
2022-11-30 11:02:42 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) (Remote host closed the connection) |
2022-11-30 11:04:30 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-30 11:04:45 +0100 | <Guest60> | Another library question: how would you all approach walking a directory recursively to get valid filepaths? |
2022-11-30 11:04:56 +0100 | <int-e> | dminuoso: At a glance, I don't think those candidates broke the API. (They include the System.FilePath hierarchy and the types look the same.) So I guess the breaking-the-API ship had already sailed, but the version number was tweaked later. |
2022-11-30 11:07:02 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 11:07:23 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 264 seconds) |
2022-11-30 11:09:21 +0100 | mixfix41 | (~sdenynine@user/mixfix41) |
2022-11-30 11:10:02 +0100 | <dminuoso> | Guest60: In the presence of symlinks, that will require some answers on your side. |
2022-11-30 11:10:13 +0100 | <Dominik[m]1> | Guest60: There is https://hackage.haskell.org/package/extra-1.7.12/docs/Extra.html#v:listFilesRecursive |
2022-11-30 11:11:14 +0100 | <geekosaur> | this has both symlink issues and race conditions |
2022-11-30 11:12:46 +0100 | <Dominik[m]1> | race condition would be: if somebody creates files in the meantime they are not found? or are they found and they should not be? |
2022-11-30 11:12:46 +0100 | <DigitalKiwi> | so i guess it was fitting that my original thought to the question "how would you all approach..." was "poorly :(" |
2022-11-30 11:13:09 +0100 | <geekosaur> | could be either, also files that go away |
2022-11-30 11:13:22 +0100 | <dminuoso> | int-e: https://gitlab.haskell.org/haskell/filepath/-/commit/32bbf19e0d02f68d2de9edc842bd0c04af74f12e - it seems the version idea of 2.0.0 ranged back quite a bit. |
2022-11-30 11:13:25 +0100 | <geekosaur> | but there is no good answer to this as very few filesystems are transactional |
2022-11-30 11:13:35 +0100 | <Dominik[m]1> | ok but with a function like that you can never avoid files being created inbetween |
2022-11-30 11:13:36 +0100 | <dminuoso> | So its probably just an artifact from the break-api stage of the proposal |
2022-11-30 11:13:37 +0100 | <geekosaur> | and there's no standard interface for the ones that are |
2022-11-30 11:13:41 +0100 | <Dominik[m]1> | (or delted) |
2022-11-30 11:13:41 +0100 | <Guest60> | haha, yeah I suppose there are always those issues. The executor of the code has control over the environment in this case so they're to blame for the race conditions here I would say |
2022-11-30 11:13:47 +0100 | DigitalKiwi | uses zfs |
2022-11-30 11:13:51 +0100 | <Guest60> | this caes being, my application use case |
2022-11-30 11:14:20 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-30 11:14:27 +0100 | <geekosaur> | as for symlinks, the question is whether you want to follow them or not. usually you don't because it can lead to things like recursion or duplication |
2022-11-30 11:14:31 +0100 | <Guest60> | I think the listFilesRecusrive will be fine considering I don't want to support symlinks |
2022-11-30 11:14:41 +0100 | <geekosaur> | (foo -> ../..) |
2022-11-30 11:14:50 +0100 | <dminuoso> | duplication is another interesting bit, how do you want to handle additional hardlinks. |
2022-11-30 11:14:55 +0100 | <Dominik[m]1> | or (foo -> /) |
2022-11-30 11:15:09 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 11:15:10 +0100 | <DigitalKiwi> | https://mostlyabsurd.com/files/2022-11-30-041457_1314x829_scrot.png |
2022-11-30 11:15:41 +0100 | <dminuoso> | Guest60: But yeah, in addition you get obvious TOCTOU races outside of transactional file systems. So be ready for those too. |
2022-11-30 11:16:05 +0100 | <dminuoso> | These are pretty much unavoidable for recursing directories |
2022-11-30 11:16:28 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 11:16:45 +0100 | <geekosaur> | even just for listing a single directory, but much worse for the recursive case |
2022-11-30 11:16:52 +0100 | <int-e> | Is posix even equipped to deal with those? It's already bad for single files... |
2022-11-30 11:16:53 +0100 | <Guest60> | The use case is for a command-line application so I think these downsides are acceptable |
2022-11-30 11:17:07 +0100 | <geekosaur> | int-e, no, which is why IO said there's no standard for it |
2022-11-30 11:17:13 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-30 11:17:15 +0100 | <geekosaur> | *I said |
2022-11-30 11:17:32 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-11-30 11:17:37 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2022-11-30 11:17:54 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 11:18:11 +0100 | <dminuoso> | Guest60: So its not just that files can be created in the meantime, worse they could also be deleted or modified. |
2022-11-30 11:18:15 +0100 | <dminuoso> | Anyway |
2022-11-30 11:18:24 +0100 | <dminuoso> | I would handroll any such recursion. |
2022-11-30 11:18:28 +0100 | <int-e> | I guess I could study `find` and `rsync` to get an idea what *is* possible. |
2022-11-30 11:18:42 +0100 | <dminuoso> | And step back and think deeply about other platforms the code may run on (linux, darwin, windows) |
2022-11-30 11:20:06 +0100 | <int-e> | hmm, https://hackage.haskell.org/package/extra-1.7.12/docs/src/System.Directory.Extra.html#listContents filters out entries like '.....' in addition to '.' and '..'. |
2022-11-30 11:20:07 +0100 | <DigitalKiwi> | just put a big note in the readme that your software is only supported on transactional file systems |
2022-11-30 11:21:05 +0100 | <geekosaur> | I think there's some filesystem on which ... is also special, so that's not too surprising |
2022-11-30 11:21:17 +0100 | <DigitalKiwi> | https://github.com/Kiwi/clyde/blob/master/README or just use this |
2022-11-30 11:21:54 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
2022-11-30 11:22:35 +0100 | <dminuoso> | int-e: Is `...` even a valid filename? |
2022-11-30 11:22:37 +0100 | <int-e> | Of course that's minor compared to blindly following symlinks. So I think I'd avoid using that package for this purpose. |
2022-11-30 11:22:40 +0100 | <int-e> | dminuoso: it is |
2022-11-30 11:22:46 +0100 | <dminuoso> | `touch ...` provokes touch: setting times of '../..': Permission denied |
2022-11-30 11:22:56 +0100 | <dminuoso> | Im not even sure why |
2022-11-30 11:23:18 +0100 | <geekosaur> | worked here |
2022-11-30 11:23:26 +0100 | <geekosaur> | I now have an empty file called ... |
2022-11-30 11:23:33 +0100 | <dminuoso> | Is touch a shell command? |
2022-11-30 11:23:42 +0100 | <dminuoso> | MMm no its a GNU coreutils bin |
2022-11-30 11:23:51 +0100 | <dminuoso> | Or maybe my shell does some shenanigans regardless? |
2022-11-30 11:24:03 +0100 | <mauke> | what's your shell? |
2022-11-30 11:24:08 +0100 | <dminuoso> | Yes it does! |
2022-11-30 11:24:09 +0100 | <int-e> | dminuoso: probably some inline shell alias |
2022-11-30 11:24:15 +0100 | <dminuoso> | λ ~/ strace touch ... execve("/run/current-system/sw/bin/touch", ["touch", "../.."], 0x7ffeb1bb91d8 /* 67 vars */) = 0 |
2022-11-30 11:24:19 +0100 | <mauke> | does it support something like argument aliases? |
2022-11-30 11:24:20 +0100 | <dminuoso> | Wow. :( |
2022-11-30 11:24:22 +0100 | <dminuoso> | I hate shells. |
2022-11-30 11:24:26 +0100 | <geekosaur> | what shell? |
2022-11-30 11:24:28 +0100 | <dminuoso> | zsh |
2022-11-30 11:24:32 +0100 | <mauke> | hah |
2022-11-30 11:24:34 +0100 | <geekosaur> | I'm using zsh |
2022-11-30 11:25:05 +0100 | <dminuoso> | Im seriously displeased about this. |
2022-11-30 11:25:05 +0100 | <geekosaur> | $ZSH_VERSION is 5.8 |
2022-11-30 11:25:10 +0100 | <mauke> | some people like to type cd .../asdf to go two levels up |
2022-11-30 11:25:45 +0100 | <geekosaur> | what's "setopt" say? |
2022-11-30 11:25:51 +0100 | <dminuoso> | Yeah but touch is not a regsitered alias. |
2022-11-30 11:25:57 +0100 | <dminuoso> | So my zsh must have some magic hook for this |
2022-11-30 11:26:08 +0100 | <geekosaur> | I zap the ones "helpfully" set by ubuntu and set my own |
2022-11-30 11:26:18 +0100 | <dminuoso> | geekosaur: https://gist.github.com/dminuoso/c5ac0eb40e682f7d6158d14a136c93d1 |
2022-11-30 11:26:26 +0100 | <int-e> | zsh has "global" aliases, I suspect alias -g ...=../.. |
2022-11-30 11:26:42 +0100 | <dminuoso> | int-e: that are expanded even if they occur in the middle of a command? |
2022-11-30 11:26:47 +0100 | <dminuoso> | Oh you are right |
2022-11-30 11:26:51 +0100 | <int-e> | dminuoso: that's what I think |
2022-11-30 11:26:57 +0100 | <dminuoso> | λ ~/ echo ... => ../.. |
2022-11-30 11:27:00 +0100 | <dminuoso> | Wow! Such evil. |
2022-11-30 11:27:15 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) |
2022-11-30 11:27:35 +0100 | <int-e> | bash has stolen enough of zsh's nicer features that I never made the switch |
2022-11-30 11:27:44 +0100 | <geekosaur> | good to know I should still nuke the ubuntu setup files |
2022-11-30 11:28:53 +0100 | <maerwald[m]> | I use fish and switch to bash when I actually need to code a little shell |
2022-11-30 11:29:08 +0100 | <dminuoso> | Luckily my zsh comes with only ..., ...., ....., ...... as global aliases, nothing further. |
2022-11-30 11:29:09 +0100 | <geekosaur> | I still like foreach-style loops for things like curring and pasting a list of filenames |
2022-11-30 11:29:15 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
2022-11-30 11:29:18 +0100 | <maerwald[m]> | Shells shouldn't be smart, but predictable |
2022-11-30 11:29:21 +0100 | <geekosaur> | *cutting |
2022-11-30 11:29:22 +0100 | <DigitalKiwi> | alias cd..='cd ..' |
2022-11-30 11:29:23 +0100 | <DigitalKiwi> | alias ..='cd ..' |
2022-11-30 11:29:25 +0100 | <dminuoso> | But this type of thing can cause some serious bugs. |
2022-11-30 11:29:36 +0100 | xacktm | (~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
2022-11-30 11:29:46 +0100 | <geekosaur> | yeh, we used to call this head on the keyboard bugs |
2022-11-30 11:30:03 +0100 | <geekosaur> | "you bang your head against the keyboard and *something* happens" |
2022-11-30 11:30:37 +0100 | <dminuoso> | I now want to disable global alias feature entirely. |
2022-11-30 11:32:03 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 265 seconds) |
2022-11-30 11:32:05 +0100 | <mauke> | alias zsh=bash |
2022-11-30 11:32:32 +0100 | <dminuoso> | By the way, is there a command like `which` that will follow symlinks until the end? |
2022-11-30 11:32:47 +0100 | <int-e> | geekosaur: Heh, essentially all I know about TECO is that you could play that game... mash keyboard, predict what will happen. |
2022-11-30 11:32:48 +0100 | <dminuoso> | I cant be the first nix user to want this :> |
2022-11-30 11:33:43 +0100 | <Dominik[m]1> | readlink -f "$(which "$1")" |
2022-11-30 11:33:45 +0100 | <mauke> | realpath? |
2022-11-30 11:33:46 +0100 | <Dominik[m]1> | Is what I use. |
2022-11-30 11:34:33 +0100 | <dminuoso> | yeah I guess so. time to make an alias for `realpath $(which "$1")` |
2022-11-30 11:34:37 +0100 | <Dominik[m]1> | I think they are the same, but realpath is preferred, as far as I an see. |
2022-11-30 11:34:45 +0100 | <maerwald[m]> | realpath is not posix |
2022-11-30 11:34:58 +0100 | acidjnk | (~acidjnk@p200300d6e7137a95e97f13ccb1fca6e5.dip0.t-ipconnect.de) |
2022-11-30 11:35:04 +0100 | <dminuoso> | Yeah that's fine. |
2022-11-30 11:35:22 +0100 | <DigitalKiwi> | function lswhich() { ls -ahl "$(which "$1")"; } |
2022-11-30 11:35:23 +0100 | <DigitalKiwi> | function realpathwhich() { realpath "$(which "$1")"; } |
2022-11-30 11:35:25 +0100 | <DigitalKiwi> | welke () { |
2022-11-30 11:35:27 +0100 | <DigitalKiwi> | readlink -f "$(command -v "${1}")" |
2022-11-30 11:35:29 +0100 | <DigitalKiwi> | } |
2022-11-30 11:35:41 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-11-30 11:35:55 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 265 seconds) |
2022-11-30 11:37:10 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 11:37:25 +0100 | <mauke> | maerwald[m]: realpath(3) is :-) |
2022-11-30 11:40:16 +0100 | <Dominik[m]1> | https://unix.stackexchange.com/questions/136494/whats-the-difference-between-realpath-and-readlink-f |
2022-11-30 11:40:17 +0100 | <Dominik[m]1> | wtf |
2022-11-30 11:40:38 +0100 | <Dominik[m]1> | like 10 different realpaths |
2022-11-30 11:40:43 +0100 | <dminuoso> | Welcome to Linux. |
2022-11-30 11:42:28 +0100 | <Dominik[m]1> | the question is now, should we use readlink or realpath |
2022-11-30 11:42:34 +0100 | <int-e> | reminds me of `rename` |
2022-11-30 11:42:37 +0100 | <mauke> | s/Linux/Unix/ |
2022-11-30 11:42:38 +0100 | <Dominik[m]1> | the manual page of readlink says, use realpath |
2022-11-30 11:42:57 +0100 | <Dominik[m]1> | "Note realpath(1) is the preferred command to use for canonicalization functionality." |
2022-11-30 11:43:35 +0100 | <dminuoso> | mauke: No, I really meant Linux. In the unix family, POSIX was a result to deal with the fragmentation of interfaces. |
2022-11-30 11:43:46 +0100 | <dminuoso> | But most linux distributions dont adhere much to POSIX anymore. |
2022-11-30 11:43:53 +0100 | <dminuoso> | And they certainly care even less about standardization. |
2022-11-30 11:43:58 +0100 | <dminuoso> | (beyond POSIX that is) |
2022-11-30 11:44:28 +0100 | <dminuoso> | And for unixes you have the SUS that you can adhere to |
2022-11-30 11:44:39 +0100 | CiaoSen | (~Jura@p200300c95716a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-11-30 11:44:40 +0100 | <dminuoso> | Linux is pretty much the wild west for hobbyist groups. |
2022-11-30 11:45:07 +0100 | <mauke> | what are the BSDs? |
2022-11-30 11:45:30 +0100 | Pangz[m] | (~pangzpayn@2001:470:69fc:105::2:cdc7) () |
2022-11-30 11:45:48 +0100 | <geekosaur> | tbh I don't really believe in POSIX any more. it's a marketing standard, not a technical one |
2022-11-30 11:45:59 +0100 | <int-e> | (SUS predates Among Us by 25-ish years) |
2022-11-30 11:46:24 +0100 | <geekosaur> | see for example ripping out all the ksh-derived stuff when they realized it could be done using Bourne shell interfaces |
2022-11-30 11:47:04 +0100 | <mauke> | inb4 scientific name for pig |
2022-11-30 11:47:47 +0100 | <int-e> | geekosaur: could be done? couldn't be done? |
2022-11-30 11:47:48 +0100 | <geekosaur> | and in any case POSIX certification costs a fair bit of money so only Red Hat ever got certified and even they stopped bothering a couple decades back |
2022-11-30 11:48:12 +0100 | <geekosaur> | could be done. [[ ]] wasn't actually necessaru, just a convenience |
2022-11-30 11:48:30 +0100 | <dminuoso> | geekosaur: You aim (and claim) to be POSIX compliant, though. |
2022-11-30 11:48:58 +0100 | <dminuoso> | macOS is properly POSIX certified |
2022-11-30 11:49:08 +0100 | <dminuoso> | (Not sure to which POSIX standard, though) |
2022-11-30 11:49:20 +0100 | xff0x | (~xff0x@2405:6580:b080:900:275b:7fdb:aec8:b0f1) |
2022-11-30 11:49:34 +0100 | <int-e> | "certified" does reek of marketing all right |
2022-11-30 11:50:04 +0100 | <dminuoso> | In principle "certification" is better than just a wild claim "yes Im posix compliant" |
2022-11-30 11:50:21 +0100 | <geekosaur> | which meant anyone wanting to be certified to a later POSIX standard had to rewrite their scripts to not use [[ ]] any more |
2022-11-30 11:50:27 +0100 | <dminuoso> | But because it does reek of marketing, it quickly turns into a cash cow. |
2022-11-30 11:50:58 +0100 | <dminuoso> | geekosaur: In any case, POSIX is better than nothing. |
2022-11-30 11:51:12 +0100 | CiaoSen | (~Jura@p200300c95716a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-11-30 11:51:30 +0100 | <geekosaur> | but the alternative isn't nothing. SUS and X-Open existed |
2022-11-30 11:51:43 +0100 | <dminuoso> | I mean yes, linux is largely posix compliant - but if you introduce non-posix libraries left and right, it very rapidly becomes difficult to build posix-compliant software with it. |
2022-11-30 11:52:11 +0100 | <dminuoso> | fair,. |
2022-11-30 11:52:13 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-11-30 11:52:19 +0100 | <geekosaur> | POSIX was a checkbox for US government purchase orders |
2022-11-30 11:53:56 +0100 | <DigitalKiwi> | https://twitter.com/grhmc/status/1582463721699303425 |
2022-11-30 11:54:00 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 11:54:17 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-11-30 11:56:39 +0100 | <int-e> | DigitalKiwi: POSIX and thread safety... that reminds me of https://tomsmeding.com/blog/bugs/efault (which I spent some time tracing down) |
2022-11-30 11:56:47 +0100 | <int-e> | tracking down even |
2022-11-30 11:57:41 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-11-30 11:58:20 +0100 | <geekosaur> | (the whole sordid story on the [[ ]] thing: it was incorrectly believed that test aka [ ] incorrectly handled strings that started with hyphens. this is only true if you use the shortcut [ "str" ], though; if you write it out ([ -z "str" ] or [ "str" != "" ]) it's fine) |
2022-11-30 11:58:55 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 11:59:04 +0100 | <geekosaur> | [[ ]] always handled it because it removed the dash-operators (< instead of -lt, etc.) |
2022-11-30 11:59:43 +0100 | <geekosaur> | sorry, -s not -z, -a does the opposite 🙂 |
2022-11-30 11:59:51 +0100 | <geekosaur> | *-z does |
2022-11-30 12:00:34 +0100 | ubert | (~Thunderbi@2a02:8109:abc0:6434:c4f7:41e7:304c:6584) (Quit: ubert) |
2022-11-30 12:00:36 +0100 | <geekosaur> | unix/posix is poorly suited to threads, too many things are defined at process instead of thread level |
2022-11-30 12:00:47 +0100 | ubert | (~Thunderbi@2a02:8109:abc0:6434:93d7:8f5e:1428:3062) |
2022-11-30 12:00:50 +0100 | <tomsmeding> | DigitalKiwi: unexpected dutch? |
2022-11-30 12:01:03 +0100 | <dminuoso> | tomsmeding: Will you be extending that blog entry? |
2022-11-30 12:01:05 +0100 | <DigitalKiwi> | evils gave me that alias |
2022-11-30 12:01:32 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-30 12:02:32 +0100 | <geekosaur> | linux clone() is actually significantly better designed, but then you lose pthread compatibility |
2022-11-30 12:02:44 +0100 | <tomsmeding> | dminuoso: I think I put a resolution at the bottom of the thing |
2022-11-30 12:03:12 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) |
2022-11-30 12:03:16 +0100 | <tomsmeding> | see also the "EDIT 2" |
2022-11-30 12:03:23 +0100 | <int-e> | "All possible solutions to this problem are hacks." |
2022-11-30 12:03:36 +0100 | <dminuoso> | tomsmeding: Sure, but the parts before it read like a nice story while going into details. |
2022-11-30 12:03:46 +0100 | <dminuoso> | The end is quite unsatisfying to read. :S |
2022-11-30 12:03:50 +0100 | <tomsmeding> | lol |
2022-11-30 12:03:51 +0100 | dminuoso | wants his money back |
2022-11-30 12:03:55 +0100 | <tomsmeding> | but the end _is_ unsatisfying |
2022-11-30 12:04:11 +0100 | <dminuoso> | tomsmeding: You could outline why this causes the EFAULT. |
2022-11-30 12:04:32 +0100 | <tomsmeding> | true, I could explain a bit more :) |
2022-11-30 12:04:42 +0100 | <dminuoso> | And perhaps go into potential solutions. |
2022-11-30 12:05:35 +0100 | __monty__ | (~toonn@user/toonn) |
2022-11-30 12:05:45 +0100 | <tomsmeding> | I still don't know why the described seemingly-nondeterministic crap happens though |
2022-11-30 12:05:56 +0100 | <tomsmeding> | and honestly I don't feel like debugging that :p |
2022-11-30 12:05:57 +0100 | <dminuoso> | I see, so the tale is still untold! |
2022-11-30 12:06:06 +0100 | <dminuoso> | Dont you want to entertain me? |
2022-11-30 12:06:09 +0100 | <tomsmeding> | heh |
2022-11-30 12:06:16 +0100 | <DigitalKiwi> | hahaha holy shit it's true |
2022-11-30 12:06:21 +0100 | <int-e> | dminuoso: The old environment gets moved around by `setenv`; pointers become invalid. I don't know, quite possibly the list of pointers isn't 0-terminated in some intermediate state too? You probably need global locking to solve this properly. |
2022-11-30 12:06:23 +0100 | <tomsmeding> | my most reasonable hypothesis is that this is just obscure timing issues |
2022-11-30 12:06:37 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1) |
2022-11-30 12:07:04 +0100 | <geekosaur> | because setenv() reallocates and copies the environment if the change won't fit, and if execve() looks at environ in the middle of this it's either not null terminated or contains garbage at the end |
2022-11-30 12:07:19 +0100 | <tomsmeding> | as in, what int-e says, and then the question is whether execve(2) runs in precisely the right time window or not |
2022-11-30 12:07:24 +0100 | <geekosaur> | or the specified environment |
2022-11-30 12:07:44 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) (Ping timeout: 255 seconds) |
2022-11-30 12:07:49 +0100 | <dminuoso> | Why does snap setenv on every request anyway? |
2022-11-30 12:08:02 +0100 | <tomsmeding> | dminuoso: it runs setenv on server startup |
2022-11-30 12:08:13 +0100 | <geekosaur> | locale is my guess |
2022-11-30 12:08:18 +0100 | <tomsmeding> | yes |
2022-11-30 12:08:22 +0100 | <tomsmeding> | see link https://github.com/snapframework/snap-server/blob/8d89c10014d8d295bfbf5419bbb8551de32d7f85/src/Sna… |
2022-11-30 12:08:24 +0100 | <int-e> | The amazing thing was that it was actually the clone system call that failed, because at that point the environment pointer was invalid. |
2022-11-30 12:08:55 +0100 | <dminuoso> | tomsmeding: Maybe I dont understand why this is a problem. Does your program simultaneously start the server *and* spawn these shell scripts? |
2022-11-30 12:08:58 +0100 | <int-e> | (Or some pointer inside of that.) |
2022-11-30 12:09:06 +0100 | <tomsmeding> | and it failed with an error that was not in the manpage for any of this!!! |
2022-11-30 12:09:14 +0100 | <tomsmeding> | dminuoso: yes |
2022-11-30 12:09:33 +0100 | <geekosaur> | EFAULT is implicitly present any time a syscall has a pointer parameter |
2022-11-30 12:09:34 +0100 | <dminuoso> | You should mention this. |
2022-11-30 12:09:35 +0100 | <DigitalKiwi> | https://www.dropbox.com/s/g4r6muempkvrhgv/2022-11-30%2005.08.06.jpg?dl=0 |
2022-11-30 12:09:42 +0100 | <tomsmeding> | it starts a bunch of worker processes and also starts an http server, and I saw no reason why that couldn't be done concurrently |
2022-11-30 12:09:50 +0100 | <geekosaur> | I think only intro(2) mentions this though |
2022-11-30 12:09:58 +0100 | <DigitalKiwi> | i saw on twitter a few days ago you can run graphical apps in wsl 2 now |
2022-11-30 12:10:05 +0100 | <tomsmeding> | 'FAULT' not found in intro(2) |
2022-11-30 12:10:16 +0100 | <geekosaur> | yes, that;s been true for several months now |
2022-11-30 12:10:21 +0100 | <geekosaur> | sad |
2022-11-30 12:10:22 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 252 seconds) |
2022-11-30 12:10:48 +0100 | <dminuoso> | tomsmeding: No with that many mistakes I really do want my money back. Who do I contact? |
2022-11-30 12:10:59 +0100 | <geekosaur> | v7 mentioned it, any pointer is potentially going to cause EFAULT on copyin()/copyout() |
2022-11-30 12:11:17 +0100 | <geekosaur> | maybe someone removed that because linux doesn't have those as such |
2022-11-30 12:11:26 +0100 | <tomsmeding> | dminuoso: mistakes in the blog post, snap-server, linux manpages, or something else? |
2022-11-30 12:12:54 +0100 | <dminuoso> | tomsmeding: You should mention that the server is started simultaneously along side the workers. Without it, the final cause mentioned makes no sense. |
2022-11-30 12:13:00 +0100 | Xeroine | (~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2022-11-30 12:13:27 +0100 | <dminuoso> | Ontop, I think this is also a snap bug in that it should mention it does non-thread safe things. |
2022-11-30 12:13:28 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-11-30 12:13:29 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-11-30 12:14:07 +0100 | son0p | (~ff@2604:3d08:5b7f:5540::fc20) |
2022-11-30 12:14:08 +0100 | <tomsmeding> | dminuoso: I'll make a note for next weekend that I should write a little more here :p |
2022-11-30 12:14:14 +0100 | <dminuoso> | Does snap offer a kind of beforeMainLoop hook? |
2022-11-30 12:14:20 +0100 | <tomsmeding> | no |
2022-11-30 12:14:23 +0100 | <tomsmeding> | I looked for that |
2022-11-30 12:14:54 +0100 | <dminuoso> | Then that should be added. That + a note about thread safety seems the clean and proper solution. |
2022-11-30 12:18:00 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2022-11-30 12:18:21 +0100 | xacktm | (~xacktm@user/xacktm) |
2022-11-30 12:18:24 +0100 | `2jt | (~jtomas@255.red-193-153-6.dynamicip.rima-tde.net) |
2022-11-30 12:19:20 +0100 | freeside | (~mengwong@103.252.202.193) |
2022-11-30 12:20:59 +0100 | chele | (~chele@user/chele) |
2022-11-30 12:21:02 +0100 | kadobanana | (~mud@user/kadoban) |
2022-11-30 12:21:15 +0100 | <freeside> | so, i'm trying to move one of my projects from LTS 19.33 to LTS 20.2, but I'm running into errors like In the dependencies for network-3.1.2.7: directory needed, but this GHC boot package has been pruned (issue #4510); you need to add the package explicitly to extra-deps |
2022-11-30 12:21:37 +0100 | <int-e> | dminuoso: right... but it's pervasive... there should be a warning about this in `base`, in `process` and who knows where else |
2022-11-30 12:21:48 +0100 | mud | (~mud@user/kadoban) (Ping timeout: 256 seconds) |
2022-11-30 12:21:59 +0100 | <geekosaur> | freeside, that looks pretty self-explanatory |
2022-11-30 12:22:27 +0100 | <Unhammer> | Is there some difference in making hsc Storable's on ARM? https://github.com/unhammer/fastText-haskell/issues/1 – the first Prediction should say "__label__no" but says "\210\NUL\NUL\NUL\NUL\NUL\NUL\NUL_no" |
2022-11-30 12:22:29 +0100 | <freeside> | but is that something that needs to be done inside MissingH's stack.yaml or inside my own stack.yaml? |
2022-11-30 12:22:32 +0100 | <geekosaur> | directory used to come with ghc and stack knows it. but as of ghc 9.2 which LTS 20 uses, it doesn't any more so you need to add it as an extra0dep |
2022-11-30 12:22:47 +0100 | <Unhammer> | (the Storable https://github.com/unhammer/fastText-haskell/blob/main/Data/FastText/Internal.hsc#L27-L43 ) |
2022-11-30 12:22:55 +0100 | <dminuoso> | int-e: Right, I guess we lack thread-safety notes on *anything* that invokes system calls - and this needs to be done transitively. |
2022-11-30 12:23:09 +0100 | <dminuoso> | Perhaps to the point, that this is something that be attached and be generated in haddock automatically. |
2022-11-30 12:23:30 +0100 | <freeside> | I have a screenful of those kinds of errors "in the dependencies for MissingH ... lsp ... haskeline ... graphviz ... sbv ... etc" |
2022-11-30 12:23:30 +0100 | <int-e> | (Hmm, can you crash a program by using setEnv from several threads? Probably!) |
2022-11-30 12:23:51 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 12:24:18 +0100 | <geekosaur> | I think when it comes to system and libc calls, this might need to be pushed upstream. in particular, you have issues where some systems define something as a syscall which can be reasonably atomic, but others define it as a library call which can't |
2022-11-30 12:24:46 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-11-30 12:25:41 +0100 | <dminuoso> | But ultimately, I think its incredibly frustrating that you get that many thread unsafe APIs anyway. |
2022-11-30 12:25:55 +0100 | <geekosaur> | freeside, you will probably need to do this for most of those, yes. I think in cabal it's easier as you could do it with one entry in cabal.project (`package * { build-dependency = directory }` iirc) |
2022-11-30 12:26:17 +0100 | <geekosaur> | dminuoso, see my earlier comment about POSIX and thread safety |
2022-11-30 12:26:27 +0100 | <geekosaur> | it's part of the package, sadly |
2022-11-30 12:27:17 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 12:27:34 +0100 | <freeside> | ok. i think it's because some of the packages i'm importing are stuck to old versions of packages like compact and so aren't LTS20-ready yet. I'll go send some pull requests for those packages. |
2022-11-30 12:27:41 +0100 | <geekosaur> | yeh |
2022-11-30 12:28:13 +0100 | <mauke> | Unhammer: peek label_size = len; poke label_size = str?? |
2022-11-30 12:28:16 +0100 | <geekosaur> | not sure MissingH is even maintained, although on the other hand I would expect your installed haskeline (it comes with ghc) should already be updated |
2022-11-30 12:28:30 +0100 | <geekosaur> | so maybe you need to check your version |
2022-11-30 12:29:09 +0100 | <freeside> | thanks. I think it's the fault of one or two packages in particular that are on old LTS versions. |
2022-11-30 12:30:21 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2022-11-30 12:31:29 +0100 | <Unhammer> | mauke: haha good catch, thanks, though i only read so i dont think that can be the reason |
2022-11-30 12:34:05 +0100 | <mauke> | Unhammer: label_size has type size_t, but you're reading it at type Int, and who knows what that is in C |
2022-11-30 12:34:17 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 255 seconds) |
2022-11-30 12:37:05 +0100 | <mauke> | Unhammer: poke is completely broken; use-after-free |
2022-11-30 12:37:14 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-30 12:42:44 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-30 12:47:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 255 seconds) |
2022-11-30 12:49:27 +0100 | sammelweis | (~quassel@c-68-48-18-140.hsd1.mi.comcast.net) |
2022-11-30 12:49:58 +0100 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.7.1) |
2022-11-30 12:50:54 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 260 seconds) |
2022-11-30 12:52:44 +0100 | Xeroine | (~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2022-11-30 12:53:08 +0100 | oldsk00l | (~znc@ec2-3-75-221-101.eu-central-1.compute.amazonaws.com) |
2022-11-30 12:54:38 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-11-30 12:57:01 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 13:00:53 +0100 | Guest60 | (~Guest60@101.98.118.246) (Quit: Client closed) |
2022-11-30 13:00:58 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
2022-11-30 13:01:57 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2022-11-30 13:03:03 +0100 | <Unhammer> | Int is because I'm using packCStringLen :: (CString, Int) -> ByteString; should I e.g. use ::Int32 in hs and cast string.size() to int32_t in C? |
2022-11-30 13:07:48 +0100 | yuribarros | (~yuribarro@2804:14c:65e4:865c::1000) |
2022-11-30 13:09:08 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-11-30 13:09:41 +0100 | <Unhammer> | (I find it so strange that it reads the second string in that vector just fine, and even the length of the first label is the same, it's just filled with Ò and NUL's for the first bytes) |
2022-11-30 13:11:59 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-11-30 13:12:06 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) |
2022-11-30 13:13:51 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-11-30 13:18:20 +0100 | fockerize | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-11-30 13:20:13 +0100 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-11-30 13:20:36 +0100 | <freeside> | i need to check my assumptions. I have package B using package A. Package B's stack.yaml configures package B explicitly in extra-deps. Is it necessary for both package A and B to use the same LTS version in their respective stack.yamls? |
2022-11-30 13:20:53 +0100 | <freeside> | I am wondering if it is possible for package B to have LTS 18 while package A uses LTS 20. |
2022-11-30 13:21:08 +0100 | <freeside> | er, package B's stack.yaml configures package A explicitly in extra-deps. |
2022-11-30 13:21:39 +0100 | <freeside> | or vice versa; package B would use LTS 20 while package A uses LTS 18. |
2022-11-30 13:21:45 +0100 | <geekosaur> | sounds like a diamond dependency looking for a chance to happen |
2022-11-30 13:24:51 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-11-30 13:35:22 +0100 | acidjnk | (~acidjnk@p200300d6e7137a95e97f13ccb1fca6e5.dip0.t-ipconnect.de) (Remote host closed the connection) |
2022-11-30 13:36:06 +0100 | acidjnk | (~acidjnk@p200300d6e7137a95b0d18cc63c896dfc.dip0.t-ipconnect.de) |
2022-11-30 13:36:37 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-30 13:38:52 +0100 | <maralorn> | freeside: Not possible. All Haskell build tools enforce so called "local coherence" which means during a build of one package all occurrences of a certain dependency anywhere in the dependency tree must be of the same version. In theory ghc would try to build the package anyway, but the a build fail would be likely and the error very confusing. |
2022-11-30 13:40:30 +0100 | <maralorn> | freeside: In your case your best hope is that package A also builds with LTS 18 otherwise you need to port package B to LTS 20. |
2022-11-30 13:44:16 +0100 | CiaoSen | (~Jura@p200300c95716a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-11-30 13:47:07 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 13:50:28 +0100 | <freeside> | I see. Thank you. I have traversed the dependencies to https://github.com/ezyang/compact/blob/master/compact.cabal which looks generally unmaintained except that somebody else has already gotten to the same point, and has made some minor change to advise the various build tools that ghc 9.2 is safe to build with |
2022-11-30 13:50:33 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-11-30 13:50:55 +0100 | <freeside> | however, i wonder why they didn't update the `tested-with` in compact.cabal |
2022-11-30 13:51:44 +0100 | <sm> | well.. if other package bounds allow it you can choose to use the older version of B. (It makes sense to speak of combining package versions, not combining stackage snapshots) |
2022-11-30 13:52:23 +0100 | <sm> | like maralorn said |
2022-11-30 13:52:28 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-30 13:53:32 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-11-30 13:53:41 +0100 | <freeside> | so how do mature packages deal with the need to be consumed by multiple projects possibly running different resolvers? I see the STACK_YAML env mechanism, but I don't see how that would work in practice if one project uses an old LTS and another project uses a recent LTS. |
2022-11-30 13:54:33 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-11-30 13:55:23 +0100 | acidjnk | (~acidjnk@p200300d6e7137a95b0d18cc63c896dfc.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-11-30 13:57:09 +0100 | <dminuoso> | freeside: Not thinking about TLS, for starters. |
2022-11-30 13:57:27 +0100 | <maralorn> | Honestly in my opinion libraries shouldn't be build with stack. They should provide a cabal file specifying correct bounds for their dependencies. |
2022-11-30 13:57:33 +0100 | <dminuoso> | Generate the foo.cabal as you should, and maintain open and wide boundaries. |
2022-11-30 13:57:52 +0100 | <dminuoso> | That by the way will enable non-cabal users to use it too. |
2022-11-30 13:57:54 +0100 | <dminuoso> | *non-stack |
2022-11-30 14:02:14 +0100 | <freeside> | ok. so the ezyang/compact on github has its version boundaries bumped to allow base < 4.17, but when i look at https://hackage.haskell.org/package/compact-0.2.0.0 on hackage, i still see dependencies base < 4.16. |
2022-11-30 14:02:35 +0100 | <freeside> | so, how should i proceed? allow-newer: true? or something else? |
2022-11-30 14:04:11 +0100 | <freeside> | i will point extra-deps at github's latest commit |
2022-11-30 14:04:52 +0100 | <dminuoso> | freeside: fork it, bump base bound, test it. |
2022-11-30 14:04:56 +0100 | <dminuoso> | if it works, make a pull request. |
2022-11-30 14:05:09 +0100 | <dminuoso> | allow-newer is a hammer you probably dont want |
2022-11-30 14:05:29 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2022-11-30 14:05:31 +0100 | <freeside> | the pull request is approved, it's that ezyang hasn't pushed the latest build to hackage. |
2022-11-30 14:05:42 +0100 | <freeside> | https://github.com/ezyang/compact/commit/1e80459d16ca4d914c9bf9e0538493f7cf2fd610 |
2022-11-30 14:06:03 +0100 | <dminuoso> | contact a hackage trustee then |
2022-11-30 14:06:07 +0100 | <maralorn> | dminuoso: They write that upstream has already bumped the bound. So I would say allow newer is fine. |
2022-11-30 14:06:17 +0100 | <dminuoso> | maralorn: you cant tie that to a single package, though. |
2022-11-30 14:06:37 +0100 | <dminuoso> | which makes it an incredibly blunt hammer that can cause breakage and subtle bugs down the line. |
2022-11-30 14:06:45 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-11-30 14:06:57 +0100 | <maralorn> | You can't? I was pretty sure you could... |
2022-11-30 14:07:01 +0100 | <freeside> | i mean, i know ezyang is busy, what with his youtube videos and all :) |
2022-11-30 14:07:31 +0100 | <dminuoso> | maralorn: you're probably confusing it with nix doJailbreak |
2022-11-30 14:08:05 +0100 | <dminuoso> | freeside: yeah no worry, either raise an additional issue asking for a release, contact him via mail, or just ask a hackage trustee. |
2022-11-30 14:08:14 +0100 | <maralorn> | dminuoso: As a frequent user of doJailbreak allow-newer feels like a very fine tool. |
2022-11-30 14:08:38 +0100 | <dminuoso> | maralorn: You should feel ashamed and stay in the corner for the rest of the day. |
2022-11-30 14:08:55 +0100 | <dminuoso> | And maybe Ill make you write "You shall not jailbreak haskell packages" a hundred times on this black board. |
2022-11-30 14:10:06 +0100 | <dminuoso> | maralorn: uh but no, actually no - they are actually the same. |
2022-11-30 14:10:14 +0100 | <dminuoso> | you cant just untie a singular dependency with it. |
2022-11-30 14:10:36 +0100 | <dminuoso> | freeside: as a temporary step, you can also just vendor the code that includes the change. |
2022-11-30 14:10:47 +0100 | <dminuoso> | until the maintainer or a trustee bumps the bound |
2022-11-30 14:11:26 +0100 | <freeside> | mmph. I am now confused because the version on hackage appears to be https://github.com/ezyang/compact/blob/0.2.0.0/compact.cabal but the version that had the bump is in master branch with "version: 0.1.0.1" |
2022-11-30 14:11:29 +0100 | <maralorn> | dminuoso: Have a look here: https://github.com/haskell/haskell-language-server/blob/aeb57a8eb56964c8666d7cd05b6ba46d531de7c7/c… |
2022-11-30 14:11:43 +0100 | <dminuoso> | freeside: seems bgamari[m] has uploaded the last version, you can ask him as well. |
2022-11-30 14:12:04 +0100 | <dminuoso> | maralorn: yes, cabal can do it. |
2022-11-30 14:12:07 +0100 | <dminuoso> | they use stack. |
2022-11-30 14:12:21 +0100 | <dminuoso> | and stack's allow-newer just accepts true or false as far as I know |
2022-11-30 14:12:29 +0100 | accord | (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-11-30 14:12:39 +0100 | <maralorn> | Oooh, well then I was confusing something but not the thing you said.^^ |
2022-11-30 14:13:26 +0100 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) |
2022-11-30 14:13:28 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 14:13:37 +0100 | <maralorn> | Still, the cabal allow-newer feels like a very targeted and fine tool compared to … well, everything else discussed.^^ |
2022-11-30 14:14:17 +0100 | <dminuoso> | Will allow-newer ignore local constraints? |
2022-11-30 14:14:43 +0100 | <dminuoso> | Or is there a way to introduce arbitrary constraints in a .cabal? |
2022-11-30 14:14:56 +0100 | <dminuoso> | I guess you can specify `constraints: ...` |
2022-11-30 14:15:27 +0100 | elevenkb | (~elevenkb@105.184.125.168) |
2022-11-30 14:16:04 +0100 | fockerize | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
2022-11-30 14:16:05 +0100 | <dminuoso> | But its redundant since you can `specify allow-newer: foo-1.1:bar` |
2022-11-30 14:17:09 +0100 | <maralorn> | I am a bit torn here: Telling people "do the proper thing and wait an unknown amount of time before they can proceed to build and continue developing" sounds like a way to really entrench in them the feeling that the Haskell ecosystem is clunky. I suggest enabling allow-newer, so you have a chance to fix the real thing before clocking off, but remember you did so and open an issue upstream at the same time. |
2022-11-30 14:17:34 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-11-30 14:18:05 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-11-30 14:18:35 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 14:18:45 +0100 | Guest75 | (~Guest75@178.141.153.191) (Quit: Client closed) |
2022-11-30 14:19:56 +0100 | <freeside> | now, if the only change i made to `compact` is to bump the version bounds for dependencies in the compact.cabal file, is it appropriate to bump the actual version of compact in compact.cabal, or leave it as it was? |
2022-11-30 14:20:57 +0100 | <freeside> | i'm looking at https://github.com/mengwong/compact/commit/7c047f4455af8b6c49cbeac908bd0c35ae1cc258 for clues |
2022-11-30 14:21:48 +0100 | <maralorn> | That's the difference between a release and a revision and I think both are fine, but peoples opinions differ. |
2022-11-30 14:22:20 +0100 | <maralorn> | If you bump the version then only the forth digit. |
2022-11-30 14:22:46 +0100 | <freeside> | i'm thinking there are probably consequences for snapshot computation when stackage looks at cabal's versioning |
2022-11-30 14:23:02 +0100 | <dminuoso> | Revisions occur especially when hackage trustees do this. |
2022-11-30 14:23:13 +0100 | <dminuoso> | Because they cant arbitrary upload packages |
2022-11-30 14:23:26 +0100 | <dminuoso> | (And revisions cant alter the version, so...) |
2022-11-30 14:27:47 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) (Ping timeout: 255 seconds) |
2022-11-30 14:29:12 +0100 | <freeside> | cool. thanks for the hints, i really appreciate it. Now all I have left to figure out is "Cabal dependency cyle detected" |
2022-11-30 14:29:35 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-11-30 14:29:35 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds) |
2022-11-30 14:29:35 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2022-11-30 14:30:02 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
2022-11-30 14:30:02 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
2022-11-30 14:30:56 +0100 | `2jt | (~jtomas@255.red-193-153-6.dynamicip.rima-tde.net) (Read error: Connection reset by peer) |
2022-11-30 14:31:48 +0100 | <dminuoso> | The main annoyance with revisions, is that there's no standardized approach of keeping your .cabal file in git aligned with whats on hackage. |
2022-11-30 14:31:54 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-11-30 14:31:55 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-11-30 14:32:15 +0100 | <dminuoso> | And there's no actual cabal field denoting the revision, which makes it even harder to see in git which hackage revision a given commit reflects |
2022-11-30 14:32:44 +0100 | <freeside> | the nice thing about versioning systems is there are so many to choose from. |
2022-11-30 14:32:58 +0100 | <dminuoso> | People tend to work around that by using the fact that `x-...` named fields can be artbirarily specified (and they dont affect usual build processes. |
2022-11-30 14:33:10 +0100 | <dminuoso> | So sometimes you see people specifying `x-revision: 1` in their cabal file to reflect that |
2022-11-30 14:33:38 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-30 14:34:19 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Client Quit) |
2022-11-30 14:34:21 +0100 | elevenkb25 | (~elevenkb@105.184.125.168) |
2022-11-30 14:34:26 +0100 | elevenkb25 | (~elevenkb@105.184.125.168) (Write error: Broken pipe) |
2022-11-30 14:35:04 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-30 14:35:50 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-30 14:36:01 +0100 | cafkafk | (~cafkafk@fsf/member/cafkafk) |
2022-11-30 14:39:47 +0100 | acidjnk | (~acidjnk@p200300d6e7137a61b0d18cc63c896dfc.dip0.t-ipconnect.de) |
2022-11-30 14:41:39 +0100 | <freeside> | okay. I'm getting such a weird error: In the dependencies for Cabal-syntax-3.6.0.0: Cabal dependency cycle detected: Cabal, Cabal-syntax, Cabal, baby-l4, needed due to baby-l4-nnnn -> Cabal-syntax-3.6.0.0 |
2022-11-30 14:42:37 +0100 | <freeside> | nowhere in my project baby-l4 do I attempt to use Cabal-syntax. I only use Cabal, in package.yaml and explicitly versioned to 3.8.1.0 in extra-deps. |
2022-11-30 14:43:03 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-11-30 14:43:15 +0100 | <freeside> | do i need to nuke ./stack-work and ~/.stack ? |
2022-11-30 14:43:16 +0100 | elevenkb | (~elevenkb@105.184.125.168) (Quit: Client closed) |
2022-11-30 14:43:34 +0100 | <freeside> | maybe there is something lying around in a DB somewhere? when I run stack -v build I see a lot of SQL going on, so maybe something is cached? |
2022-11-30 14:52:23 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
2022-11-30 14:54:25 +0100 | teo | (~teo@user/teo) |
2022-11-30 14:57:00 +0100 | elevenkb | (~elevenkb@105.184.125.168) |
2022-11-30 14:58:26 +0100 | <elevenkb> | Are there any popular programing environments/text editors written in Haskell other than Leksah and Yi from a while back? |
2022-11-30 14:59:25 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-30 14:59:59 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-11-30 15:02:01 +0100 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-11-30 15:04:30 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 15:04:46 +0100 | coot | (~coot@213.134.171.3) |
2022-11-30 15:04:51 +0100 | <elevenkb> | I know of `rasa`... and that only by accident. |
2022-11-30 15:05:25 +0100 | zmt01 | (~zmt00@user/zmt00) |
2022-11-30 15:05:35 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) (Ping timeout: 264 seconds) |
2022-11-30 15:06:46 +0100 | nschoe | (~q@141.101.51.197) |
2022-11-30 15:08:48 +0100 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 260 seconds) |
2022-11-30 15:09:32 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-30 15:09:40 +0100 | mmhat | (~mmh@p200300f1c725456bee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2022-11-30 15:09:45 +0100 | xff0x | (~xff0x@2405:6580:b080:900:275b:7fdb:aec8:b0f1) (Quit: xff0x) |
2022-11-30 15:15:50 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 265 seconds) |
2022-11-30 15:17:58 +0100 | xff0x | (~xff0x@2405:6580:b080:900:71e1:3426:76c:30b0) |
2022-11-30 15:18:29 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-30 15:19:24 +0100 | <xilo> | if converting a file to data structure is callled parsing, how do you call process of converting parse tree to a file? also parsing? |
2022-11-30 15:20:22 +0100 | <lortabac> | xilo: what do you mean by "converting to a file"? |
2022-11-30 15:21:11 +0100 | <mauke> | formatting, serialization, marshaling |
2022-11-30 15:21:49 +0100 | <lortabac> | pretty-printing? |
2022-11-30 15:23:44 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-11-30 15:23:59 +0100 | elevenkb | (~elevenkb@105.184.125.168) (Quit: Client closed) |
2022-11-30 15:25:23 +0100 | elevenkb | (~elevenkb@105.184.125.168) |
2022-11-30 15:26:27 +0100 | Guest94 | (~Guest94@172.58.110.175) |
2022-11-30 15:27:13 +0100 | Guest94 | (~Guest94@172.58.110.175) (Client Quit) |
2022-11-30 15:27:31 +0100 | coot | (~coot@213.134.171.3) (Quit: coot) |
2022-11-30 15:28:30 +0100 | <freeside> | compiling & transpiling, too |
2022-11-30 15:28:53 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 15:30:34 +0100 | <DigitalKiwi> | elevenkb: ghcid |
2022-11-30 15:31:38 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-30 15:31:59 +0100 | <maerwald> | DigitalKiwi: hm? |
2022-11-30 15:32:30 +0100 | <DigitalKiwi> | ? |
2022-11-30 15:33:19 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-11-30 15:33:32 +0100 | <maerwald> | ghcid is a simple wrapper around ghci |
2022-11-30 15:33:48 +0100 | <DigitalKiwi> | also haskell-language-server |
2022-11-30 15:33:53 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-30 15:33:54 +0100 | <maerwald> | HLS uses 'ghc' |
2022-11-30 15:33:57 +0100 | <maerwald> | the package |
2022-11-30 15:35:14 +0100 | <DigitalKiwi> | hls and ghcid are the two programmming environments i use ;p |
2022-11-30 15:35:40 +0100 | <albet70> | there is postChunkedDataFromFilePond :: (String -> ActionM ()) -> String -> ActionM (), what's the benifit to turn it to ContT () ActionM String? |
2022-11-30 15:35:46 +0100 | <mauke> | I prefer linux |
2022-11-30 15:38:36 +0100 | <geekosaur> | https://gitlab.haskell.org/ghc/ghc/-/commit/cc25d52e0f65d54c052908c7d91d5946342ab88a |
2022-11-30 15:38:53 +0100 | <geekosaur> | js backend landed in time for 9.6 |
2022-11-30 15:40:31 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 15:42:46 +0100 | <geekosaur> | elevenkb, manatee was another. sadly they're all bitrotted |
2022-11-30 15:43:02 +0100 | <geekosaur> | most people these days just use HLS with their favorite editor |
2022-11-30 15:43:07 +0100 | <elevenkb> | thanks y'alls |
2022-11-30 15:43:28 +0100 | <geekosaur> | (I alternate between vscode and emacs) |
2022-11-30 15:44:46 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 15:46:00 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-30 15:55:21 +0100 | mmhat | (~mmh@p200300f1c725456bee086bfffe095315.dip0.t-ipconnect.de) |
2022-11-30 15:55:45 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-11-30 15:57:16 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-30 15:59:32 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 16:00:52 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-11-30 16:08:15 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) (Remote host closed the connection) |
2022-11-30 16:11:06 +0100 | <albet70> | I'm now confused, where runContT (x :: ContT () ActionM String) (y :: String -> ActionM ()) will get ActionM (), right? but where this (z :: String) come from? |
2022-11-30 16:11:35 +0100 | Guest64 | (~Guest64@2401:4900:1c19:4827:acc1:1436:facf:9a1d) |
2022-11-30 16:12:02 +0100 | <Guest64> | i want to contribute to Haskell Language, i am a beginner please guide me |
2022-11-30 16:13:13 +0100 | Guest64 | (~Guest64@2401:4900:1c19:4827:acc1:1436:facf:9a1d) (Client Quit) |
2022-11-30 16:13:50 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) |
2022-11-30 16:17:20 +0100 | <xilo> | first step would be learning a language |
2022-11-30 16:17:43 +0100 | <geekosaur> | they left |
2022-11-30 16:18:01 +0100 | <geekosaur> | but the question is what they mean by "contribute to"; might be looking for HF |
2022-11-30 16:21:13 +0100 | <xilo> | sadly, we will never know |
2022-11-30 16:22:49 +0100 | Guest67 | (~Guest67@104.28.156.101) |
2022-11-30 16:23:49 +0100 | Guest67 | (~Guest67@104.28.156.101) (Client Quit) |
2022-11-30 16:24:18 +0100 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
2022-11-30 16:33:08 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
2022-11-30 16:34:00 +0100 | sm | runs emacs in vscode |
2022-11-30 16:34:37 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::efb) |
2022-11-30 16:35:13 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::efb) (Client Quit) |
2022-11-30 16:35:30 +0100 | <freeside> | ok, i am making more progress toward figuring out what is going on with my dependency cycle error. So, with LTS 20.2, I try to stack build. I get a "Recommended action: try adding to your extra-deps: Cabal-3.8.1.0@sha256:155d64beeecbae2b19e5d67844532494af88bc8795d4db4146a0c29296f59967,12220" |
2022-11-30 16:36:18 +0100 | <freeside> | So, I duly do that, and I notice that when I run stack -v build, the cryptic remark flashes past: [debug] Ignoring package Cabal due to wanting version 3.8.1.0 instead of 3.6.3.0 |
2022-11-30 16:37:39 +0100 | <geekosaur> | sounds like your stack is a bit old? |
2022-11-30 16:38:01 +0100 | <freeside> | Where is it getting this notion of 3.6.3.0? Well, when I run ~/.stack/programs/aarch64-osx/ghc-9.2.5/bin/ghc-pkg-9.2.5 --global --no-user-package-db dump --expand-pkgroot | grep Cabal, I see id: Cabal-3.6.3.0. |
2022-11-30 16:38:35 +0100 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 264 seconds) |
2022-11-30 16:39:01 +0100 | <freeside> | so, let's try a stack update, with stack v2.9.1 |
2022-11-30 16:39:31 +0100 | <geekosaur> | actually I have 2.9.1 but it's not telling me which Cabal it's linked against with --version |
2022-11-30 16:39:43 +0100 | <geekosaur> | (cabal tells you the linked Cabal version) |
2022-11-30 16:40:37 +0100 | <geekosaur> | but yes, it's likely that ghc 9.2.5 ships with Cabal-3.6.3.0. this shouldn't matter unless you're using ghc-as-a-library though |
2022-11-30 16:41:45 +0100 | <freeside> | my project's package.yaml does use "ghc" as a library ... I wonder how that factors in. |
2022-11-30 16:42:07 +0100 | <freeside> | meanwhile, I went off and investigated ~/.stack/stack.sqlite3 |
2022-11-30 16:42:26 +0100 | <geekosaur> | ghc will pin Cabal, because it's how package dbs are accessed |
2022-11-30 16:42:44 +0100 | <geekosaur> | (Cabal the library is distinct from cabal aka cabal-install the program) |
2022-11-30 16:42:47 +0100 | <freeside> | if we .dump the entire database, we discover three lines in precompiled_cache, showing Cabal-syntax-3.6.0.0, just as you say. |
2022-11-30 16:43:04 +0100 | <freeside> | for example: INSERT INTO precompiled_cache VALUES(4775,'aarch64-osx/','ghc-9.2.4','3.6.3.0','540758d21e908626932cb4a3f0fc4d7cd3e656720dd3708f7206e5cc0cd48529,156',X'5674a02f5b065a88ecb6bec80decdd433c9d0dbe459b6f83f2536c52a3d4fc5e',0,'snapshots/aarch64-osx/2b3a2e2a6f04a8613a9fe228d08f7147b0babbc228e75f5a49a07d4195a5c430/9.2.4/pkgdb/Cabal-syntax-3.6.0.0-6HeyoYPNDDbHyBhGydrkl8.conf'); |
2022-11-30 16:43:49 +0100 | accord | (uid568320@id-568320.hampstead.irccloud.com) |
2022-11-30 16:44:29 +0100 | <freeside> | now, if we look at that Cabal-syntax-...conf file, we see, indeed, "depends: Cabal-3.6.3.0" |
2022-11-30 16:45:11 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 16:47:16 +0100 | <sclv> | i suggest you pin to a newer cabal-syntax or an older cabal |
2022-11-30 16:48:09 +0100 | <geekosaur> | right, the question now is not why Cabal-3.6.3.0 but why stack originally recommended 3.8.1.0 |
2022-11-30 16:49:18 +0100 | <freeside> | well, if we read the "description" in the Cabal-syntax conf file, we see the text shown at https://hackage.haskell.org/package/Cabal-syntax-3.6.0.0 |
2022-11-30 16:49:30 +0100 | <freeside> | notably, Version 3.6 (unlike the following versions) is a dummy package that prevents module name clases between Cabal and Cabal-syntax if used together with a Cabal flag as described below. |
2022-11-30 16:49:59 +0100 | <geekosaur> | yes, in 3.6 it's a dummy package because it was split from Cabal in 3.8 (forward compat) |
2022-11-30 16:50:08 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-30 16:50:58 +0100 | <freeside> | but the real mystery behind my dependency cycle is this: why does Cabal depend on Cabal-syntax? It's the question that drives us, Neo. It's the question that brought you here. You know the question, just as I did. |
2022-11-30 16:51:14 +0100 | fserucas | (~fserucas@212.157.222.2) (Quit: Leaving) |
2022-11-30 16:51:48 +0100 | <geekosaur> | again, because of forward compatibility. it's not strictly needed for 3.6 but is for 3.8 and the upcoming 3.10 |
2022-11-30 16:52:26 +0100 | <freeside> | wait, what? Cabal depends on Cabal-syntax? Then if Cabal-syntax depends on Cabal, we have a dependency cycle. Which stack rightly complains about. |
2022-11-30 16:53:12 +0100 | <geekosaur> | I may have described that backwards |
2022-11-30 16:53:35 +0100 | <geekosaur> | the real question is still not the one you are asking now, it is why [30 15:35:30] <freeside> ok, i am making more progress toward figuring out what is going on with my dependency cycle error. So, with LTS 20.2, I try to stack build. I get a "Recommended action: try adding to your extra-deps: Cabal-3.8.1.0@sha256:155d64beeecbae2b19e5d67844532494af88bc8795d4db4146a0c29296f59967,12220" |
2022-11-30 16:53:49 +0100 | <geekosaur> | when you must use 3.6.3.0 with your ghc |
2022-11-30 16:54:02 +0100 | <freeside> | let me try 3.6.3.0. |
2022-11-30 16:55:44 +0100 | <sclv> | Cabal 3.8 depends on Cabal-syntax 3.8. Cabal 3.6 does not. Cabal-syntax 3.6 has a dependency on cabal less than 3.8. |
2022-11-30 16:56:09 +0100 | <sclv> | but again this is orthogonal to the main issue, which is the one geekosaur is adroitly steering you to |
2022-11-30 17:01:08 +0100 | <freeside> | ... about where that particular version 3.8 recommendation is coming from ... |
2022-11-30 17:06:19 +0100 | mmhat | (~mmh@p200300f1c725456bee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1) |
2022-11-30 17:09:34 +0100 | <freeside> | ... that recommendation comes from the getExtras function in Stack/Types/Build.hs, https://github.com/commercialhaskell/stack/blob/e8dbd692a761d4245c1cf489bf8fe3b7ace1f780/src/Stack… |
2022-11-30 17:10:35 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2022-11-30 17:11:34 +0100 | <freeside> | without tracing that logic too closely, we would expect the recommended version to be 3.6.3.0 simply because that's what's in the package set for LTS 20.2. |
2022-11-30 17:11:48 +0100 | <freeside> | https://www.stackage.org/lts-20.2/package/Cabal-3.6.3.0 |
2022-11-30 17:12:07 +0100 | <geekosaur> | segfaultfizzbuzz, https://www.sciencedaily.com/releases/2022/11/221128140414.htm might be of interest to you |
2022-11-30 17:12:12 +0100 | ulvarrefr | (~user@188.124.56.153) |
2022-11-30 17:16:56 +0100 | elevenkb | (~elevenkb@105.184.125.168) (Quit: Client closed) |
2022-11-30 17:19:30 +0100 | <segfaultfizzbuzz> | geekosaur: this stuff tends to be too superficial, i am interested in something more deep mathematically |
2022-11-30 17:20:04 +0100 | <segfaultfizzbuzz> | but thanks for thinking of me |
2022-11-30 17:27:58 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-30 17:30:30 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-11-30 17:34:40 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-11-30 17:34:40 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-11-30 17:35:12 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) (Quit: Leaving.) |
2022-11-30 17:35:22 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-30 17:36:42 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-30 17:40:44 +0100 | cawfee | (~root@2406:3003:2077:2758::babe) (Ping timeout: 255 seconds) |
2022-11-30 17:40:50 +0100 | LemanR | (~LemanR@vpn.drexelmed.edu) |
2022-11-30 17:43:10 +0100 | cawfee | (~root@2406:3003:2077:2758::babe) |
2022-11-30 17:45:04 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) (Quit: opticblast) |
2022-11-30 17:45:19 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 17:45:34 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) (Client Quit) |
2022-11-30 17:45:51 +0100 | opticblast | (~Thunderbi@secure-165.caltech.edu) |
2022-11-30 17:45:51 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 17:46:25 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:97d5:4102:827f:e93) (Ping timeout: 252 seconds) |
2022-11-30 17:47:19 +0100 | mbuf | (~Shakthi@49.204.141.87) (Quit: Leaving) |
2022-11-30 17:48:15 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) |
2022-11-30 17:50:07 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-11-30 17:50:28 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
2022-11-30 17:50:52 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-11-30 17:52:43 +0100 | MajorBiscuit | (~MajorBisc@145.94.143.231) (Ping timeout: 260 seconds) |
2022-11-30 17:54:40 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1) |
2022-11-30 17:56:05 +0100 | <zzz> | on a clean debian vm, having installed both ghc, cabal and hls by ghcup, i'm getting this error in nvim: https://paste.jrvieira.com/1669827214089 |
2022-11-30 17:56:06 +0100 | califax_ | (~califax@user/califx) |
2022-11-30 17:56:08 +0100 | califax | (~califax@user/califx) (Ping timeout: 255 seconds) |
2022-11-30 17:56:24 +0100 | <zzz> | i have no idea what i need to do to get this working |
2022-11-30 17:57:06 +0100 | <zzz> | "GHC ABIs don't match" apparently mean that "hls was compiled with another version of ghc" according to the folks at #haskell-language-server |
2022-11-30 17:57:19 +0100 | califax_ | califax |
2022-11-30 17:59:28 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-11-30 17:59:54 +0100 | califax | (~califax@user/califx) |
2022-11-30 18:01:37 +0100 | Xeroine | (~Xeroine@user/xeroine) (Read error: Connection reset by peer) |
2022-11-30 18:01:44 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) |
2022-11-30 18:04:56 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:88b2:8e58:1784:1509) |
2022-11-30 18:06:29 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-11-30 18:07:51 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) (Remote host closed the connection) |
2022-11-30 18:08:36 +0100 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds) |
2022-11-30 18:08:45 +0100 | LemanR | (~LemanR@vpn.drexelmed.edu) (Quit: Client closed) |
2022-11-30 18:09:21 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-30 18:10:21 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-11-30 18:11:22 +0100 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
2022-11-30 18:11:45 +0100 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-11-30 18:14:41 +0100 | <turlando> | Not sure if this is a philosophical or practical question: just for the sake of learning I'm writing a FLAC parser/decoder. So far I have some records that represent the information encoded in the binary representation. Some values are encoded as odd-sized non-aligned bit vectors (e.g. number of channels is 3 bits, sample depth is 5 bits spanning across byte boundaries). Should I make my data representation high level (e.g. encode everything as Int or |
2022-11-30 18:14:41 +0100 | <turlando> | similar) or should I make it low level (e.g. trying to encode the exact data representation at the type level)? (I guess the answer is "it depends") |
2022-11-30 18:15:45 +0100 | <geekosaur> | both? typically you'd have a Storable or Binary instance for the external format and a more Haskell-friendly internal format generated from it |
2022-11-30 18:16:04 +0100 | <geekosaur> | sadly Haskell doesn't have Erlang's bitvectors |
2022-11-30 18:16:53 +0100 | <turlando> | geekosaur I wish Haskell has Erlang bit manipulation facilities or Ada's bit-precise types as well |
2022-11-30 18:17:16 +0100 | <geekosaur> | or even just C's bitfields |
2022-11-30 18:18:02 +0100 | LemanR | (~LemanR@vpn.drexelmed.edu) |
2022-11-30 18:18:06 +0100 | <turlando> | I was thinking of having higher and lower level representations, but is it worth it? Shouldn't I just have one representation, possibly high level, and functions that are able to bring it back to the binary repr? |
2022-11-30 18:19:07 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-11-30 18:21:05 +0100 | <turlando> | (Also was thinking of building some helpers to be able to automagically extract arbitrary bits, not yet sure how and not yet sure how to store them afterwards) |
2022-11-30 18:22:22 +0100 | Guest75 | (~Guest75@178.141.153.191) |
2022-11-30 18:23:08 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
2022-11-30 18:23:09 +0100 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
2022-11-30 18:23:35 +0100 | califax | (~califax@user/califx) (Ping timeout: 255 seconds) |
2022-11-30 18:23:35 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2022-11-30 18:25:31 +0100 | <geekosaur> | the binary package has stuff to help with that |
2022-11-30 18:25:41 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-30 18:25:45 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-11-30 18:26:10 +0100 | ubert | (~Thunderbi@2a02:8109:abc0:6434:93d7:8f5e:1428:3062) (Quit: ubert) |
2022-11-30 18:26:35 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-30 18:27:09 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-11-30 18:27:45 +0100 | <turlando> | Yeah, I've seen the binary-bits package. Again, just for the sake of learning I wanted to roll my own binary decoder and see how far I can go before the code is a total unoptimized incomprehensible mess |
2022-11-30 18:28:21 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-11-30 18:30:02 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
2022-11-30 18:30:20 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 18:30:51 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 18:31:02 +0100 | <turlando> | Something else but still related: some values, e.g. the block size, admit values is a specific range, e.g. 16-65536. I'm wondering if I can encode that at the type level or I need to switch to Idris/Clean/Adga and the like |
2022-11-30 18:33:34 +0100 | califax | (~califax@user/califx) |
2022-11-30 18:34:44 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 18:35:04 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-30 18:36:07 +0100 | TroyFletcher | (~TroyFletc@rrcs-147-0-159-10.central.biz.rr.com) |
2022-11-30 18:37:32 +0100 | ormaaj | (~ormaaj@user/ormaaj) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:32 +0100 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:32 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:32 +0100 | fgaz | (~fgaz@2001:470:69fc:105::842) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:32 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:32 +0100 | tiziodcaio | (~tiziodcai@2001:470:69fc:105::1:2bf8) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:32 +0100 | jinsun_ | (~jinsun@user/jinsun) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | chreekat | (~chreekat@2001:470:69fc:105::16b5) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | oak- | (~oak-@2001:470:69fc:105::fcd) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | Deide | (~deide@user/deide) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | vladan[m] | (~vladanmat@2001:470:69fc:105::2:24df) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | olivermead[m] | (~olivermea@2001:470:69fc:105::2:4289) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | sektor[m] | (~sektor@2001:470:69fc:105::2:3f60) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | drsooch[m] | (~drsoochma@2001:470:69fc:105::1:c8a1) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | UdayKiran[m] | (~neoatnebu@2001:470:69fc:105::2:bae0) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | czuberion[m] | (~czuberion@2001:470:69fc:105::2:bc47) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | crazazy[m] | (~crazazyut@2001:470:69fc:105::2:ba2a) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | kadoban | (~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | Dominik[m]1 | (~dschrempf@2001:470:69fc:105::2:bbb6) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | VanceIsM7[m] | (~vanceism7@2001:470:69fc:105::3ad) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:33 +0100 | kjlid[m] | (~kjlidmatr@2001:470:69fc:105::2:c193) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:34 +0100 | ted[m] | (~tedmatrix@2001:470:69fc:105::2:bf60) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:35 +0100 | Tisoxin | (~ikosit@user/ikosit) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:35 +0100 | famubu[m] | (~famubumat@2001:470:69fc:105::1081) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:35 +0100 | psydroid | (~psydroid@user/psydroid) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:35 +0100 | ElliotAlderson[m | (~elliotal_@2001:470:69fc:105::bb21) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:35 +0100 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:35 +0100 | sm | (~sm@plaintextaccounting/sm) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:36 +0100 | VOID[m] | (~void404ma@2001:470:69fc:105::2:c72c) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:36 +0100 | TomWesterhout[m] | (~twesterho@2001:470:69fc:105::1:2918) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:36 +0100 | Player205[m] | (~rootsandw@2001:470:69fc:105::2:ca2e) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:36 +0100 | FurudeRika[m] | (~chitandae@2001:470:69fc:105::1:6039) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:36 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:36 +0100 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:37 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:37 +0100 | AdamConner-Sax[m | (~adamcsmat@2001:470:69fc:105::1:e2c8) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:37 +0100 | oo_miguel[m] | (~oomiguelm@2001:470:69fc:105::1:5ab0) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:37 +0100 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:37 +0100 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:37 +0100 | nicm[m] | (~nicmollel@2001:470:69fc:105::1:feeb) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:37 +0100 | jecxjo[m] | (~jecxjomat@2001:470:69fc:105::2:bd7c) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | bgamari[m] | (~bgamari@2001:470:69fc:105::c7b9) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | jbggs[m] | (~jbggsmatr@2001:470:69fc:105::2:995f) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | zarel[m] | (~zarelitma@2001:470:69fc:105::1:fcfb) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | yl53[m] | (~yl53matri@2001:470:69fc:105::85b) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | JonathanWatson[m | (~jjwmatrix@2001:470:69fc:105::2:a544) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:38 +0100 | peddie | (~peddie@2001:470:69fc:105::25d) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:39 +0100 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:39 +0100 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:39 +0100 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:39 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:39 +0100 | M0rphee[m] | (~M0rpheema@2001:470:69fc:105::2:b1ce) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:37:39 +0100 | Player-205[m] | (~sashaserp@2001:470:69fc:105::2:30b8) (Quit: Bridge terminating on SIGTERM) |
2022-11-30 18:40:16 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-11-30 18:40:48 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-11-30 18:41:40 +0100 | <EvanR> | turlando, list of bit, for the win xD |
2022-11-30 18:41:46 +0100 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2022-11-30 18:41:47 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-30 18:42:07 +0100 | <EvanR> | make it work then make it fast / memory efficient |
2022-11-30 18:42:08 +0100 | peddie | (~peddie@2001:470:69fc:105::25d) |
2022-11-30 18:42:08 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2022-11-30 18:42:09 +0100 | famubu[m] | (~famubumat@2001:470:69fc:105::1081) |
2022-11-30 18:42:09 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2022-11-30 18:42:09 +0100 | sm | (~sm@plaintextaccounting/sm) |
2022-11-30 18:42:09 +0100 | tiziodcaio | (~tiziodcai@2001:470:69fc:105::1:2bf8) |
2022-11-30 18:42:09 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
2022-11-30 18:42:09 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) |
2022-11-30 18:42:23 +0100 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) |
2022-11-30 18:42:34 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2022-11-30 18:42:41 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-30 18:42:48 +0100 | chreekat | (~chreekat@2001:470:69fc:105::16b5) |
2022-11-30 18:43:01 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
2022-11-30 18:43:01 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2022-11-30 18:43:15 +0100 | oak- | (~oak-@2001:470:69fc:105::fcd) |
2022-11-30 18:43:17 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) |
2022-11-30 18:43:17 +0100 | jinsun_ | (~jinsun@user/jinsun) |
2022-11-30 18:43:28 +0100 | king_gs | (~Thunderbi@2806:103e:29:86f9:15db:b0e0:45d5:32a8) |
2022-11-30 18:43:30 +0100 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) |
2022-11-30 18:43:35 +0100 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) |
2022-11-30 18:43:35 +0100 | ormaaj | (~ormaaj@user/ormaaj) |
2022-11-30 18:43:36 +0100 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) |
2022-11-30 18:43:48 +0100 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
2022-11-30 18:43:49 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2022-11-30 18:43:49 +0100 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) |
2022-11-30 18:43:49 +0100 | JonathanWatson[m | (~jjwmatrix@2001:470:69fc:105::2:a544) |
2022-11-30 18:44:01 +0100 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) |
2022-11-30 18:44:18 +0100 | M0rphee[m] | (~M0rpheema@2001:470:69fc:105::2:b1ce) |
2022-11-30 18:44:24 +0100 | geekosaur | wonders if this restart fixed the control-q thing |
2022-11-30 18:44:31 +0100 | drsooch[m] | (~drsoochma@2001:470:69fc:105::1:c8a1) |
2022-11-30 18:44:33 +0100 | olivermead[m] | (~olivermea@2001:470:69fc:105::2:4289) |
2022-11-30 18:44:46 +0100 | jbggs[m] | (~jbggsmatr@2001:470:69fc:105::2:995f) |
2022-11-30 18:44:46 +0100 | nicm[m] | (~nicmollel@2001:470:69fc:105::1:feeb) |
2022-11-30 18:44:59 +0100 | oo_miguel[m] | (~oomiguelm@2001:470:69fc:105::1:5ab0) |
2022-11-30 18:45:02 +0100 | Tisoxin | (~ikosit@user/ikosit) |
2022-11-30 18:45:11 +0100 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) |
2022-11-30 18:45:11 +0100 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2022-11-30 18:45:11 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2022-11-30 18:45:11 +0100 | sektor[m] | (~sektor@2001:470:69fc:105::2:3f60) |
2022-11-30 18:45:18 +0100 | <mauke> | control-q thing? |
2022-11-30 18:45:27 +0100 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) |
2022-11-30 18:45:27 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2022-11-30 18:45:27 +0100 | vladan[m] | (~vladanmat@2001:470:69fc:105::2:24df) |
2022-11-30 18:45:27 +0100 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) |
2022-11-30 18:45:27 +0100 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) |
2022-11-30 18:45:27 +0100 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) |
2022-11-30 18:45:28 +0100 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) |
2022-11-30 18:45:28 +0100 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) |
2022-11-30 18:45:28 +0100 | VanceIsM7[m] | (~vanceism7@2001:470:69fc:105::3ad) |
2022-11-30 18:45:28 +0100 | Deide | (~deide@user/deide) |
2022-11-30 18:45:28 +0100 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) |
2022-11-30 18:45:42 +0100 | Player-205[m] | (~sashaserp@2001:470:69fc:105::2:30b8) |
2022-11-30 18:45:42 +0100 | psydroid | (~psydroid@user/psydroid) |
2022-11-30 18:45:42 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) |
2022-11-30 18:45:54 +0100 | yl53[m] | (~yl53matri@2001:470:69fc:105::85b) |
2022-11-30 18:46:08 +0100 | crazazy[m] | (~crazazyut@2001:470:69fc:105::2:ba2a) |
2022-11-30 18:46:11 +0100 | <geekosaur> | the gateway has been mapping matrix fixed-width text to control-q markers |
2022-11-30 18:46:21 +0100 | <geekosaur> | sadly, it's only been outputting starts, not ends |
2022-11-30 18:46:24 +0100 | UdayKiran[m] | (~neoatnebu@2001:470:69fc:105::2:bae0) |
2022-11-30 18:46:25 +0100 | czuberion[m] | (~czuberion@2001:470:69fc:105::2:bc47) |
2022-11-30 18:46:32 +0100 | <geekosaur> | which makes it kinda hard to add support in my client |
2022-11-30 18:46:39 +0100 | zarel[m] | (~zarelitma@2001:470:69fc:105::1:fcfb) |
2022-11-30 18:46:46 +0100 | <mauke> | ah |
2022-11-30 18:46:52 +0100 | <geekosaur> | not that I know what support to add yet; I may just make it go back to using backticks |
2022-11-30 18:46:55 +0100 | AdamConner-Sax[m | (~adamcsmat@2001:470:69fc:105::1:e2c8) |
2022-11-30 18:46:55 +0100 | Dominik[m] | (~dschrempf@2001:470:69fc:105::2:bbb6) |
2022-11-30 18:47:05 +0100 | kjlid[m] | (~kjlidmatr@2001:470:69fc:105::2:c193) |
2022-11-30 18:47:05 +0100 | bgamari[m] | (~bgamari@2001:470:69fc:105::c7b9) |
2022-11-30 18:47:05 +0100 | VOID[m] | (~void404ma@2001:470:69fc:105::2:c72c) |
2022-11-30 18:47:05 +0100 | ElliotAlderson[m | (~elliotal_@2001:470:69fc:105::bb21) |
2022-11-30 18:47:05 +0100 | kadoban | (~kadoban@user/kadoban) |
2022-11-30 18:47:07 +0100 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) |
2022-11-30 18:47:08 +0100 | <mauke> | I've seen ^Q ... ^O from matrix |
2022-11-30 18:47:08 +0100 | <geekosaur> | https://modern.ircdocs.horse/formatting.html#monospace |
2022-11-30 18:47:17 +0100 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) |
2022-11-30 18:47:17 +0100 | TomWesterhout[m] | (~twesterho@2001:470:69fc:105::1:2918) |
2022-11-30 18:47:17 +0100 | FurudeRika[m] | (~chitandae@2001:470:69fc:105::1:6039) |
2022-11-30 18:47:17 +0100 | jecxjo[m] | (~jecxjomat@2001:470:69fc:105::2:bd7c) |
2022-11-30 18:47:18 +0100 | Player205[m] | (~rootsandw@2001:470:69fc:105::2:ca2e) |
2022-11-30 18:47:18 +0100 | ted[m] | (~tedmatrix@2001:470:69fc:105::2:bf60) |
2022-11-30 18:47:48 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 18:47:59 +0100 | nschoe | (~q@141.101.51.197) (Quit: Switching off) |
2022-11-30 18:48:12 +0100 | <geekosaur> | mm, suppose that's possible since ^O is reset |
2022-11-30 18:48:29 +0100 | Xeroine | (~Xeroine@user/xeroine) (Ping timeout: 260 seconds) |
2022-11-30 18:48:51 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-11-30 18:49:19 +0100 | <TroyFletcher> | Can anyone help me use a different version of a package with stack? I'm in ghci and one of the datasets is 404's. The issue was fixed last year in a github issue to dh-core, but my stack/hackage is using an older version which lacks the fix. Can I make stack load a later version or manually correct it? |
2022-11-30 18:49:24 +0100 | <mauke> | s/\cQ([^\cQ\cO]*)(?:\cQ|\z|(?=\cO))/`$1`/g # quick and dirty |
2022-11-30 18:49:41 +0100 | <TroyFletcher> | Of figure out who the hackage maintainer is? |
2022-11-30 18:49:55 +0100 | razetime | (~quassel@49.207.211.219) (Remote host closed the connection) |
2022-11-30 18:51:03 +0100 | <TroyFletcher> | I found stack bits about extra-deps, but I'm just getting started and mucking about in ghci, and don't have a package yaml |
2022-11-30 18:52:40 +0100 | <segfaultfizzbuzz> | sans io! https://sans-io.readthedocs.io/ anyone familiar with this? is there a simple example of doing things this way in haskell? |
2022-11-30 18:53:23 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:88b2:8e58:1784:1509) (Ping timeout: 260 seconds) |
2022-11-30 18:55:16 +0100 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.7.1) |
2022-11-30 18:56:06 +0100 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) |
2022-11-30 18:57:09 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) |
2022-11-30 18:57:25 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-30 18:57:33 +0100 | <EvanR> | basically just separate the algorithm from the I/O |
2022-11-30 18:58:02 +0100 | <EvanR> | take ByteString as input instead of combining the processing with IO that gets a ByteString |
2022-11-30 18:58:20 +0100 | <segfaultfizzbuzz> | they were saying something about using a "buffer" |
2022-11-30 18:58:32 +0100 | <segfaultfizzbuzz> | it seems like they probably mean a buffer of fixed and finite size...? |
2022-11-30 18:58:38 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-11-30 18:58:57 +0100 | <EvanR> | for the purposes of a protocol a buffer can just be a ByteString that you slice and concat |
2022-11-30 18:59:16 +0100 | <EvanR> | if it gets too long, that's buffer overflow |
2022-11-30 18:59:48 +0100 | <EvanR> | rather, if it would get too long. Check before you concat |
2022-11-30 19:00:48 +0100 | <EvanR> | using a piece of mutable memory as a buffer leads you back to IO |
2022-11-30 19:01:43 +0100 | <jean-paul[m]> | What about this idea - in some ways, IO is already sans-io. |
2022-11-30 19:02:44 +0100 | <EvanR> | that would be nice |
2022-11-30 19:03:11 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2022-11-30 19:03:12 +0100 | <EvanR> | you could define a type to represent limited I/O and interpret that in IO or in a test bench |
2022-11-30 19:03:30 +0100 | <juri_> | polysemy? |
2022-11-30 19:03:38 +0100 | jean-paul[m] | nods |
2022-11-30 19:04:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 19:04:13 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-30 19:04:23 +0100 | <jean-paul[m]> | in an imperative language, if you write a function that does application logic and side-effects, that's just what you have - a mix of those two things, never to be untangled |
2022-11-30 19:04:24 +0100 | <EvanR> | iteratees |
2022-11-30 19:05:20 +0100 | <jean-paul[m]> | in a functional language with IO, if you write a function that returns an IO a then you have a set of instructions for some I/O to do, and you can untangle it if you want? |
2022-11-30 19:05:39 +0100 | <jean-paul[m]> | (okay matrix implosion is too much for me now) |
2022-11-30 19:05:40 +0100 | <EvanR> | if you have IO you can't do anything with it except combine it with more IO |
2022-11-30 19:05:52 +0100 | <EvanR> | oh dang jean-paul[m] is delayed? |
2022-11-30 19:06:08 +0100 | econo | (uid147250@user/econo) |
2022-11-30 19:08:39 +0100 | <EvanR> | segfaultfizzbuzz, that page "excludes libraries which just abstract out I/O", I'd say this exclusion is unnecessary in haskell because we can so easily make abstractions. Like jean-paul[m] was suggesting |
2022-11-30 19:08:48 +0100 | Scraeling | (~Username@user/scraeling) |
2022-11-30 19:09:20 +0100 | <segfaultfizzbuzz> | you can "untangle instructions from io" ? |
2022-11-30 19:09:37 +0100 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2022-11-30 19:09:49 +0100 | <segfaultfizzbuzz> | haskellers don't introspect on the functions themselves right...? |
2022-11-30 19:10:15 +0100 | <segfaultfizzbuzz> | like i don't have a function fn1 which accepts a function fn2, and then fn1 says "oh i see you are doing division there fn2, in that case we shall..." |
2022-11-30 19:10:26 +0100 | <EvanR> | you can't deconstruct a function in haskell |
2022-11-30 19:10:34 +0100 | <segfaultfizzbuzz> | right |
2022-11-30 19:10:35 +0100 | <EvanR> | or IO actions |
2022-11-30 19:10:39 +0100 | teo | (~teo@user/teo) () |
2022-11-30 19:11:04 +0100 | <segfaultfizzbuzz> | (although laziness ought to be a nice thing to combine with what you call introspection...?) |
2022-11-30 19:11:21 +0100 | <loonycyborg> | Maybe you can with template haskell? :P |
2022-11-30 19:11:23 +0100 | <EvanR> | you called something introspection not me! |
2022-11-30 19:11:35 +0100 | <segfaultfizzbuzz> | pardon me, deconstruction |
2022-11-30 19:11:45 +0100 | <segfaultfizzbuzz> | s/introspection/deconstruction |
2022-11-30 19:12:34 +0100 | <mauke> | > (a + b)^2 |
2022-11-30 19:12:36 +0100 | <lambdabot> | (a + b) * (a + b) |
2022-11-30 19:12:41 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) |
2022-11-30 19:12:46 +0100 | <EvanR> | laziness goes great with everything except side effects and debugging |
2022-11-30 19:13:36 +0100 | <segfaultfizzbuzz> | and on a related note i had a question about "infinite" data structures, |
2022-11-30 19:14:36 +0100 | <segfaultfizzbuzz> | which is that as far as i can tell one ought to be able to associate to any "infinite" data structure (or "infinite" recursion etc) some kind of monotonic counter which imposes a depth limit |
2022-11-30 19:14:44 +0100 | finsternis | (~X@23.226.237.192) |
2022-11-30 19:15:14 +0100 | <EvanR> | there's generics for operating generically on ADTs |
2022-11-30 19:15:15 +0100 | <segfaultfizzbuzz> | the only situation i have encountered where it is useful to *not* have a counter like that was when i was writing a CAS retry operation in rust, to gain a small improvement in speed |
2022-11-30 19:15:36 +0100 | <EvanR> | oh you're talking about something specific now |
2022-11-30 19:15:51 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit) |
2022-11-30 19:16:55 +0100 | <EvanR> | what's with the dubious quotes around infinite xD |
2022-11-30 19:17:17 +0100 | <segfaultfizzbuzz> | so my question is, is the primary reason to have an "infinite" data structure, "infinite" recursion, etc to ditch the performance impact of having a counter, or is there something more fundamental which imposes the need to not have a counter |
2022-11-30 19:17:42 +0100 | <mauke> | I don't understand the question |
2022-11-30 19:17:46 +0100 | <segfaultfizzbuzz> | well, i am going to die in less than one hundred years, my computer will die in ten years or something, etc so the "infinite" aspect is probably always a fiction |
2022-11-30 19:17:54 +0100 | <EvanR> | oh, ultrafinitism? |
2022-11-30 19:18:00 +0100 | <segfaultfizzbuzz> | > take 5 [1 ..] |
2022-11-30 19:18:02 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-11-30 19:18:02 +0100 | <lambdabot> | [1,2,3,4,5] |
2022-11-30 19:18:16 +0100 | <mauke> | > repeat () |
2022-11-30 19:18:18 +0100 | <segfaultfizzbuzz> | > take 500! [1 ..] |
2022-11-30 19:18:18 +0100 | <lambdabot> | [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),... |
2022-11-30 19:18:19 +0100 | <davean> | segfaultfizzbuzz: So, you might only ever explore a finite portion of it, but what portion? |
2022-11-30 19:18:20 +0100 | <lambdabot> | error: |
2022-11-30 19:18:20 +0100 | <lambdabot> | • Couldn't match expected type ‘Array [a1] e’ |
2022-11-30 19:18:20 +0100 | <lambdabot> | with actual type ‘[a0] -> [a0]’ |
2022-11-30 19:18:40 +0100 | <segfaultfizzbuzz> | > take 500^500 [1 ..] |
2022-11-30 19:18:42 +0100 | <lambdabot> | <[Integer] -> [Integer]> |
2022-11-30 19:18:49 +0100 | <segfaultfizzbuzz> | > take (500^500) [1 ..] |
2022-11-30 19:18:50 +0100 | <lambdabot> | [] |
2022-11-30 19:18:57 +0100 | <segfaultfizzbuzz> | anyway you get the idea, i don't know what to write there |
2022-11-30 19:19:05 +0100 | <mauke> | > [1 ..] |
2022-11-30 19:19:07 +0100 | TroyFletcher | (~TroyFletc@rrcs-147-0-159-10.central.biz.rr.com) (Quit: Client closed) |
2022-11-30 19:19:07 +0100 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
2022-11-30 19:19:15 +0100 | <darkling> | I guess if you're defining a type that uses itself in a way that can be continued indefinitely, then its' actually easier to define it like that (without bounds), rather than impose a limit on it. |
2022-11-30 19:19:17 +0100 | <EvanR> | infinite structures are more composable because the decision of "how big should it be" is dropped, and is often unnecessary |
2022-11-30 19:19:26 +0100 | <davean> | segfaultfizzbuzz: So consider the reals, if I want to explore it to find Pi |
2022-11-30 19:19:31 +0100 | <EvanR> | it's a practical thing |
2022-11-30 19:20:01 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-30 19:20:06 +0100 | <zzz> | useful as control |
2022-11-30 19:20:23 +0100 | <segfaultfizzbuzz> | EvanR: yeah so i think i am thinking here that overlooking "how big should it be" is like overlooking whether it can have a null value,... it's literally the "infinity" counterpart to null |
2022-11-30 19:20:36 +0100 | <EvanR> | you can't check for infinite though, so it's not like null |
2022-11-30 19:20:53 +0100 | <EvanR> | at best you are told, here this is infinite, or not |
2022-11-30 19:21:34 +0100 | <segfaultfizzbuzz> | right but for example i can say "from this entry point, nothing shall iterate to a greater depth than max_int32" |
2022-11-30 19:21:35 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-11-30 19:21:58 +0100 | <mauke> | > take maxBound [1 ..] |
2022-11-30 19:22:00 +0100 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
2022-11-30 19:22:00 +0100 | <EvanR> | you can impose that in various ways if you want, but doing at the implementation of the language is silly |
2022-11-30 19:22:16 +0100 | <davean> | segfaultfizzbuzz: you very much might itterate to a greater depth than INT32_MAX |
2022-11-30 19:22:27 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-30 19:22:31 +0100 | <zzz> | > length [0..maxBound :: Word] |
2022-11-30 19:22:37 +0100 | <lambdabot> | mueval-core: Time limit exceeded |
2022-11-30 19:22:38 +0100 | <davean> | segfaultfizzbuzz: Getting to a depth of more than INT32_MAX is NORMAL |
2022-11-30 19:22:53 +0100 | <segfaultfizzbuzz> | davean: yeah you are objecting to my choice of number rather than the fundamental idea. if you like, replace that with int64_max or something |
2022-11-30 19:23:08 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
2022-11-30 19:23:16 +0100 | <davean> | segfaultfizzbuzz: But thats litterly the point, and now you're carring the weight of tracking the choice, which is inefficient |
2022-11-30 19:23:21 +0100 | <EvanR> | that you don't know what the limit will be is the reason ultrafinitism is silly |
2022-11-30 19:23:46 +0100 | xacktm | (~xacktm@user/xacktm) (Ping timeout: 252 seconds) |
2022-11-30 19:23:47 +0100 | <EvanR> | among others |
2022-11-30 19:23:49 +0100 | <davean> | You're doing more work to have less, and maybe not enough |
2022-11-30 19:23:54 +0100 | <segfaultfizzbuzz> | EvanR: in an impractical theoretical sense you are right that you can't know the limit. in a realistic sense, perhaps you are wrong |
2022-11-30 19:24:10 +0100 | <EvanR> | practically, you are skipping that complication |
2022-11-30 19:24:11 +0100 | king_gs | (~Thunderbi@2806:103e:29:86f9:15db:b0e0:45d5:32a8) (Ping timeout: 264 seconds) |
2022-11-30 19:24:18 +0100 | <segfaultfizzbuzz> | for example, no CPU is going to do more than 10^10 operations per second we may safely assume |
2022-11-30 19:24:23 +0100 | <EvanR> | kind of like how exceptions skips explicit error handling |
2022-11-30 19:24:38 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-11-30 19:24:42 +0100 | <EvanR> | infinite data, or traditional streams, skips "size" |
2022-11-30 19:25:03 +0100 | <segfaultfizzbuzz> | so an operation taking longer than one hour * 10^10 is a "high load operation" and needs to be specially approved |
2022-11-30 19:25:06 +0100 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 256 seconds) |
2022-11-30 19:25:14 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2022-11-30 19:25:26 +0100 | <EvanR> | you also regularly skip considering concrete CPU speed |
2022-11-30 19:25:34 +0100 | <EvanR> | in the name of getting things done |
2022-11-30 19:25:53 +0100 | <EvanR> | if it's "fast enough" you win |
2022-11-30 19:26:04 +0100 | <segfaultfizzbuzz> | ok well the takeaway from your response i am gathering is this: |
2022-11-30 19:26:17 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-30 19:26:30 +0100 | <davean> | I get the feeling segfaultfizzbuzz is still skipping the part where a counter is less efficient |
2022-11-30 19:26:50 +0100 | <EvanR> | no they skipped the actual problem to be solved xD |
2022-11-30 19:27:06 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 19:27:25 +0100 | <Scraeling> | > foldl (+) 0 [1..] |
2022-11-30 19:27:29 +0100 | <EvanR> | we're getting bogged down in some kind of implementation detail of something |
2022-11-30 19:27:34 +0100 | <lambdabot> | mueval-core: Time limit exceeded |
2022-11-30 19:27:34 +0100 | <lambdabot> | mueval.real: ExitFailure 1 |
2022-11-30 19:27:44 +0100 | <segfaultfizzbuzz> | (1) untracked infinities in computation can be always be tracked in principle, but then you have the overhead of handling that which may be undesirable from a programmer cognition and/or compute speed perspective and (2) it is undesirable to include this kind of consideration at a language-level |
2022-11-30 19:27:52 +0100 | <darkling> | I just looked up ultrafinitism. TIL that the universe is filled with stranger mathematicians that I thought possible. |
2022-11-30 19:28:14 +0100 | <mauke> | what's an infinity? |
2022-11-30 19:28:16 +0100 | <segfaultfizzbuzz> | yeah i think i am naturally an ultrafinitist |
2022-11-30 19:28:25 +0100 | <segfaultfizzbuzz> | i don't believe circles and spheres actually exist |
2022-11-30 19:28:32 +0100 | <zzz> | Scraeling: use foldl' :p |
2022-11-30 19:28:35 +0100 | <mauke> | define "exist" |
2022-11-30 19:28:47 +0100 | jrm | (~jrm@user/jrm) (Read error: Connection reset by peer) |
2022-11-30 19:29:05 +0100 | jrm | (~jrm@user/jrm) |
2022-11-30 19:29:29 +0100 | <zzz> | segfaultfizzbuzz: they are platonic archetipes |
2022-11-30 19:29:37 +0100 | <EvanR> | when you ask for the last element of an infinite list, it's not like your electricity bill or the universes laws of physics are the reason nothing ever comes back |
2022-11-30 19:29:57 +0100 | <mauke> | what color is yellow? |
2022-11-30 19:30:05 +0100 | <zzz> | you can make the case that they are *all* that exists |
2022-11-30 19:30:14 +0100 | <segfaultfizzbuzz> | it's interesting to note here by the way that ramanujan got a lot of his discovered identities wrong, ... if you read a bit you can piece together the story that would often compute equalities to some kind of finite depth, and then when the depth was sufficient he would conjecture equality |
2022-11-30 19:31:04 +0100 | <EvanR> | you're getting caught up in some sort of tangential metaanaylsis, rather than taking the problems and solutions as is |
2022-11-30 19:31:24 +0100 | <EvanR> | if you ask for the last element of an infinite list, the result is bottom, because it's infinite |
2022-11-30 19:31:35 +0100 | <Scraeling> | > :t foldl' |
2022-11-30 19:31:37 +0100 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
2022-11-30 19:31:53 +0100 | <geekosaur> | :t foldl' |
2022-11-30 19:31:54 +0100 | <lambdabot> | Foldable t => (b -> a -> b) -> b -> t a -> b |
2022-11-30 19:31:55 +0100 | <zzz> | segfaultfizzbuzz: you might find this talk entertaining https://www.youtube.com/watch?v=43XaZEn2aLc |
2022-11-30 19:32:00 +0100 | <geekosaur> | lambdabot is not ghci |
2022-11-30 19:32:14 +0100 | <Scraeling> | thanks |
2022-11-30 19:32:17 +0100 | <segfaultfizzbuzz> | zzz: thx ill take al ook |
2022-11-30 19:33:10 +0100 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 260 seconds) |
2022-11-30 19:33:16 +0100 | <darkling> | EvanR: I'm curious -- how long does it take to get there? (or is "bottom" simply "does not return"? I'm not sure about the semantics of the term) |
2022-11-30 19:33:27 +0100 | <EvanR> | so the concept of an infinite list carries actual engineering facts with it, and we don't make it to metaphysics before lunch |
2022-11-30 19:33:55 +0100 | <EvanR> | darkling, bottom being a thing in the semantics of haskell |
2022-11-30 19:34:04 +0100 | <geekosaur> | bottom is any kind of nontermination: infinite loop, exception, run out of memory, whatever |
2022-11-30 19:34:20 +0100 | <segfaultfizzbuzz> | right |
2022-11-30 19:34:29 +0100 | <EvanR> | values can be more or less defined, and bottom is the least defined of all |
2022-11-30 19:34:31 +0100 | <darkling> | OK, that makes sense. |
2022-11-30 19:34:56 +0100 | <zzz> | in theory it does |
2022-11-30 19:35:41 +0100 | <darkling> | I've generally only met bottom before in terms of lattices, hence the question. |
2022-11-30 19:35:48 +0100 | <EvanR> | yeah it's the same thing |
2022-11-30 19:36:50 +0100 | <darkling> | OK, so it's the nominal set that is a subset of all sets of types (viewing types as sets) |
2022-11-30 19:36:55 +0100 | <EvanR> | here are some things in the lattice of haskell values. ⊥, 3, 7:⊥, 7:7:⊥, 7:7:7:⊥, |
2022-11-30 19:37:15 +0100 | <EvanR> | 7:⊥ is less defined than 7:7:⊥ |
2022-11-30 19:37:37 +0100 | <EvanR> | infinite 7s in a row is more defined than any finite number of 7s followed by ⊥ |
2022-11-30 19:38:20 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 19:39:23 +0100 | <EvanR> | you need something like this to ask what a lazy recursively defined data structure evaluates to |
2022-11-30 19:39:25 +0100 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
2022-11-30 19:39:58 +0100 | <EvanR> | ... when you're allowed to write non sense programs xD |
2022-11-30 19:40:20 +0100 | <zzz> | http://blog.ezyang.com/2010/12/hussling-haskell-types-into-hasse-diagrams/ |
2022-11-30 19:42:05 +0100 | <segfaultfizzbuzz> | hahah nonsense programs? |
2022-11-30 19:42:12 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-11-30 19:42:56 +0100 | <EvanR> | yeah haskell's type system doesn't stop nonsense |
2022-11-30 19:43:10 +0100 | <EvanR> | let x = x + 1 in x |
2022-11-30 19:44:07 +0100 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 260 seconds) |
2022-11-30 19:45:20 +0100 | <segfaultfizzbuzz> | ah very interesting, rewriting... |
2022-11-30 19:48:17 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) |
2022-11-30 19:49:06 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit) |
2022-11-30 19:50:32 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-11-30 19:50:40 +0100 | <mauke> | > fix (\xs -> [xs !! 0]) |
2022-11-30 19:50:40 +0100 | nisstyre | (wes@user/nisstyre) (Ping timeout: 252 seconds) |
2022-11-30 19:50:42 +0100 | <lambdabot> | [*Exception: <<loop>> |
2022-11-30 19:51:15 +0100 | <segfaultfizzbuzz> | zzz: thanks for this talk, it touches on a lot of stuff. i'm kinda tired of language religion wars and eliminating opinions from computer languages ;-) |
2022-11-30 19:51:30 +0100 | nisstyre | (wes@user/nisstyre) |
2022-11-30 19:51:31 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 19:53:08 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
2022-11-30 19:53:25 +0100 | <segfaultfizzbuzz> | "what happens inside parenthesis stays inside parenthesis" haha |
2022-11-30 19:53:46 +0100 | freeside | (~mengwong@103.252.202.193) |
2022-11-30 19:54:04 +0100 | <mauke> | newtype Void = MkVoid Void -- gaze into the abyss |
2022-11-30 19:54:27 +0100 | <EvanR> | hmm, MkVoid !Void? |
2022-11-30 19:54:32 +0100 | <darkling> | I... feel like something's watching me. |
2022-11-30 19:55:16 +0100 | <mauke> | EvanR: that's illegal |
2022-11-30 19:55:23 +0100 | <EvanR> | oh |
2022-11-30 19:56:03 +0100 | <dsal> | That's absurd. |
2022-11-30 19:56:49 +0100 | <segfaultfizzbuzz> | EvanR: is there an example of a nonsense haskell program somewhere? |
2022-11-30 19:57:01 +0100 | <EvanR> | facepalm, that is what let x = x + 1 in x is |
2022-11-30 19:57:13 +0100 | <EvanR> | or what mauke wrote |
2022-11-30 19:57:32 +0100 | <EvanR> | more pedestrian maybe: head [] |
2022-11-30 19:57:37 +0100 | <mauke> | absurd (MkVoid v) = absurd v |
2022-11-30 19:58:07 +0100 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 252 seconds) |
2022-11-30 19:59:05 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-30 19:59:29 +0100 | <EvanR> | something about well typed programs don't get stuck |
2022-11-30 19:59:35 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2022-11-30 20:01:56 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) |
2022-11-30 20:02:01 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-11-30 20:02:23 +0100 | <EvanR> | anonymous user #757 is so leet they are already beating us all on the #haskell AoC leaderboard |
2022-11-30 20:02:23 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit) |
2022-11-30 20:03:21 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-30 20:03:23 +0100 | LemanR | (~LemanR@vpn.drexelmed.edu) (Ping timeout: 260 seconds) |
2022-11-30 20:04:43 +0100 | <segfaultfizzbuzz> | zzz: i am hitting the part at 24:56 where the speaker is saying "can you in code ... measure time/power" as being central to determining equality |
2022-11-30 20:05:29 +0100 | elkcl | (~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru) (Ping timeout: 260 seconds) |
2022-11-30 20:06:11 +0100 | <segfaultfizzbuzz> | i mean okay i guess that instead of literal equality he is interested in some kind of ordered equality where the substitution is approximately no worse than the original expression in time/power etc |
2022-11-30 20:06:18 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2022-11-30 20:06:30 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 20:06:45 +0100 | elkcl | (~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru) |
2022-11-30 20:07:34 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-11-30 20:07:48 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-11-30 20:08:18 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-30 20:10:48 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2022-11-30 20:11:09 +0100 | xacktm | (~xacktm@user/xacktm) |
2022-11-30 20:11:10 +0100 | <EvanR> | "literal equality" xD |
2022-11-30 20:12:00 +0100 | <EvanR> | definitional equality, propositional equality, john major's equality, ... |
2022-11-30 20:18:06 +0100 | <mauke> | Equality ("the same"), Isomorphism ("basically the same"), Equivalence ("basically basically the same"), Natural isomorphism ("basically the same but spicy"), Adjunction ("... I don't even know") |
2022-11-30 20:18:09 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 20:18:31 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 20:20:14 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2022-11-30 20:22:05 +0100 | <segfaultfizzbuzz> | so this guy is saying a language feature addition is "expressive" if it makes more programs terminate |
2022-11-30 20:23:27 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-11-30 20:23:30 +0100 | <EvanR> | another jargon is productive. If the program denotes something infinite, you want the program to be productive |
2022-11-30 20:24:04 +0100 | <EvanR> | which might not mean terminating |
2022-11-30 20:24:13 +0100 | <segfaultfizzbuzz> | he does a good job of describing a "local" transormation, but at least so far he hasn't gone into what a "nonlocal" transofmration is,... nonlocal with respect to what? some kind of AST? |
2022-11-30 20:25:58 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 268 seconds) |
2022-11-30 20:26:47 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-11-30 20:27:34 +0100 | freeside | (~mengwong@103.252.202.193) |
2022-11-30 20:29:42 +0100 | CiaoSen | (~Jura@p200300c95716a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-11-30 20:37:02 +0100 | <zzz> | mauke: what is the relationship between homomorphisms and isomorphisms? |
2022-11-30 20:37:28 +0100 | <mauke> | I don't know, the video didn't say |
2022-11-30 20:38:04 +0100 | <segfaultfizzbuzz> | i suppose that one of the biggest takeaways from this talk is that objective comparison of programming languages is an open and ongoing research topic |
2022-11-30 20:38:31 +0100 | <segfaultfizzbuzz> | i think i understood 65% to 75% of this, i don't think i know the lambda notation he assumes the viewer knows |
2022-11-30 20:38:55 +0100 | <zzz> | you can learn lambda notation in 5 minutes |
2022-11-30 20:39:49 +0100 | <EvanR> | homomorphisms is long for morphisms, the significance depends on the category |
2022-11-30 20:40:22 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-11-30 20:40:26 +0100 | <segfaultfizzbuzz> | so at least some notions of equality are empirical |
2022-11-30 20:40:34 +0100 | <EvanR> | isomorphisms are reversible homomorphisms in the sense there's another morphism which combines backward to form id |
2022-11-30 20:41:11 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 20:41:15 +0100 | <segfaultfizzbuzz> | i think also i am a bit confused about the symbols/atoms he is using--i think of symbols/atoms as always having some kind of representation in a finite alphabet, is that not true? |
2022-11-30 20:41:24 +0100 | <segfaultfizzbuzz> | or excuse me, countably infinite alphabet such as naturals |
2022-11-30 20:41:49 +0100 | <zzz> | EvanR: topologists may digree |
2022-11-30 20:42:01 +0100 | <segfaultfizzbuzz> | for example he discusses the fact that 5 and 6 may or may not be determined to be equal depending on the language |
2022-11-30 20:42:16 +0100 | <EvanR> | I think you are thinking of homeomorphisms |
2022-11-30 20:42:39 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-30 20:42:58 +0100 | <EvanR> | which are morphisms in the category of topospaces |
2022-11-30 20:43:17 +0100 | <EvanR> | oops, isomorphisms |
2022-11-30 20:45:07 +0100 | Lycurgus | (~juan@user/Lycurgus) |
2022-11-30 20:46:13 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-11-30 20:46:30 +0100 | <EvanR> | 5 and 6 taken as D&D dungeon maps, better not be equal. Tactically speaking |
2022-11-30 20:47:55 +0100 | Guest75 | (~Guest75@178.141.153.191) (Quit: Client closed) |
2022-11-30 20:48:09 +0100 | <segfaultfizzbuzz> | so if i recall correctly the probability of a bit thermally flipping from a 0 to a 1 or vice versa is about 10^-10 per... second? i'm not quite sure here the precise figure but the point is that it is nonzero and it may well be measurable |
2022-11-30 20:48:12 +0100 | <zzz> | segfaultfizzbuzz: 5 and 6 can be equal just as 6 and 6 can be unequal |
2022-11-30 20:48:39 +0100 | <segfaultfizzbuzz> | so in the context of programming we may as well assume some kind of nonzero and possibly measurable probability of defect in the machine itself |
2022-11-30 20:48:39 +0100 | <zzz> | if there is nothing in the language that can tell those symbols apart, they are equal |
2022-11-30 20:49:27 +0100 | <segfaultfizzbuzz> | and so then instead of asking whether the program halts, we may ask about the probability that it halts, and make whatever analysis we do incorrect with a probability which is small with respect to the defect rate of the machine itself,... for example we accept a defective analysis with probability of 10^-20 |
2022-11-30 20:49:32 +0100 | <EvanR> | usually you use maths shenanigans do ignore stuff like the cosmic rays hitting your RAM or the thermal tolerance of the semiconductor, when it's irrelevant to the problem |
2022-11-30 20:49:41 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 246 seconds) |
2022-11-30 20:50:04 +0100 | <zzz> | there is no spoon |
2022-11-30 20:50:09 +0100 | <segfaultfizzbuzz> | well i am arguing here that it *is* relevant to the problem because it takes an "infinity" which is the correctness of the analysis you are doing |
2022-11-30 20:50:13 +0100 | <EvanR> | until it's not, then you can use probability. Itself more maths shenanigans |
2022-11-30 20:50:35 +0100 | <segfaultfizzbuzz> | and establishes a scale which makes the "infinity" finite, so we allow a probabilistic interpretation with some small likelihood of a defect |
2022-11-30 20:51:44 +0100 | <segfaultfizzbuzz> | there may be some nontrivial implications here--for example with modern memory bandwidths i've seen an analysis that you really have a very substantial (and rapidly increasing) probability of encountering a bit flip |
2022-11-30 20:51:49 +0100 | <zzz> | are assuming a computer? |
2022-11-30 20:52:15 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-30 20:52:29 +0100 | <zzz> | s/are/are you |
2022-11-30 20:52:37 +0100 | <segfaultfizzbuzz> | so if your program state advances based on a computation which munches a huge amount of io bandwidth (like, say you crunch numbers for an entire day, and then move your state forward based on that) |
2022-11-30 20:53:16 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2022-11-30 20:53:19 +0100 | <zzz> | if i do math in my head i can also get the result wrong |
2022-11-30 20:53:26 +0100 | <zzz> | how do you deal with that? |
2022-11-30 20:53:29 +0100 | <segfaultfizzbuzz> | then that is quite different from something which takes many smaller steps with some kind of check after each step |
2022-11-30 20:53:41 +0100 | <segfaultfizzbuzz> | zzz: i usually just get the wrong answer and try to have a computer solve it |
2022-11-30 20:53:42 +0100 | <EvanR> | all lists in haskell are of the form [] or x:(list). If you explicitly never put [], it's infinite. There's no scare quotes possible |
2022-11-30 20:53:44 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-30 20:53:45 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 20:54:04 +0100 | <EvanR> | it has nothing to do with circuitry and everything to do with common sense |
2022-11-30 20:54:09 +0100 | <zzz> | what if a meteor strikes your computer mid-computation? |
2022-11-30 20:54:28 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-11-30 20:54:29 +0100 | <EvanR> | cancelling a computation doesn't magically put [] |
2022-11-30 20:54:36 +0100 | <EvanR> | ending the list |
2022-11-30 20:54:46 +0100 | <zzz> | you can't know that |
2022-11-30 20:54:48 +0100 | <zzz> | maybe it does |
2022-11-30 20:55:02 +0100 | <zzz> | this has not been studied |
2022-11-30 20:55:18 +0100 | <EvanR> | a meteor could strike my head, changing my position on the subject, and then what |
2022-11-30 20:55:30 +0100 | <zzz> | then segfaultfizzbuzz has a point |
2022-11-30 20:55:31 +0100 | <EvanR> | does it change anything about the list |
2022-11-30 20:55:41 +0100 | <EvanR> | as it was constructed earlier |
2022-11-30 20:56:08 +0100 | <EvanR> | euclid could prove things by drawing pictures in sand, if a meteor hit him, does it invalidate the proofs |
2022-11-30 20:56:35 +0100 | <zzz> | only if the proof was about a meteor not hitting him |
2022-11-30 20:57:20 +0100 | <EvanR> | ultrafinitism seems to always change the subject to ones electricity bill or celestial mechanics, stuff unrelated to the original problem entirely |
2022-11-30 20:57:52 +0100 | <EvanR> | kind of a flatearth thing |
2022-11-30 20:58:19 +0100 | king_gs | (~Thunderbi@187.201.63.8) |
2022-11-30 20:58:41 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-11-30 20:58:42 +0100 | <zzz> | yes the domain is important |
2022-11-30 20:58:51 +0100 | <EvanR> | if the original problem was literally about getting hit or not by a meteor while traveling to the moon I can see it being relevant |
2022-11-30 21:01:32 +0100 | <EvanR> | on cancelling computations, you could draw analogy to astronomy. While things are working properly, or you make no mistakes in the computation, you're on topic, you see the subject clearly. If the computer / telescope breaks, the image is no longer meaningful |
2022-11-30 21:02:32 +0100 | king_gs | (~Thunderbi@187.201.63.8) (Ping timeout: 252 seconds) |
2022-11-30 21:02:49 +0100 | <segfaultfizzbuzz> | a computation is either about physical entities, or it is not (e.g. a cryptographic computation, or trying to check a fact about mathematics, etc) |
2022-11-30 21:03:22 +0100 | <EvanR> | when the image of a galaxy goes to blurry mush, that has no bearing on the galaxy really |
2022-11-30 21:03:33 +0100 | <segfaultfizzbuzz> | if a computation is about physical entities then the necessary precision will be bounded and be very small in comparison to non-physical computations |
2022-11-30 21:04:16 +0100 | <darkling> | Wasn't it Dijkstra who said that computer science is no more about computers than astronomy is about telescopes? |
2022-11-30 21:05:06 +0100 | <darkling> | CS is an outbranch of mathematics, and what happens on actual computers is merely a practically-achievable approximation to that theory. |
2022-11-30 21:05:18 +0100 | gmg | (~user@user/gehmehgeh) |
2022-11-30 21:05:57 +0100 | <EvanR> | technology to access the computable world |
2022-11-30 21:10:34 +0100 | <zzz> | segfaultfizzbuzz: then, all computations are non terminating |
2022-11-30 21:10:48 +0100 | <zzz> | they never cease to affect the world |
2022-11-30 21:11:23 +0100 | <segfaultfizzbuzz> | uh,... sure, i mean,... i guess somebody could forget about a computer in the back room running norton anti-virus,... but then that will heat up the room a bit... maybe make another server crash a little earlier |
2022-11-30 21:12:16 +0100 | <EvanR> | yes if you get too confused, then the wave function of the universe is one giant computation, and you can't discriminate one computation from another |
2022-11-30 21:13:14 +0100 | <zzz> | and if i see [] printed on a screen, those photons will travel to my retinas, it will change the state of my brain and condition everything i'll do and so on... |
2022-11-30 21:13:18 +0100 | <segfaultfizzbuzz> | i wish there was a formal notion of a "non-central refutation" |
2022-11-30 21:13:35 +0100 | <zzz> | EvanR said it better |
2022-11-30 21:13:59 +0100 | <segfaultfizzbuzz> | that is to say you can basically always find mathematically correct exceptions to some kind of principle/law etc |
2022-11-30 21:14:20 +0100 | <segfaultfizzbuzz> | but which don't "centrally refute" the principle |
2022-11-30 21:14:45 +0100 | <segfaultfizzbuzz> | in a physical context, we might say that "cosmic rays make computers impossible to build physically" |
2022-11-30 21:14:57 +0100 | <zzz> | it seems we were able to turn that on you :) |
2022-11-30 21:15:04 +0100 | Guest75 | (~Guest75@178.141.153.191) |
2022-11-30 21:15:15 +0100 | <segfaultfizzbuzz> | whereas an example of a central refutation would be: "at economically viable temperatures, there are no reliable switches" |
2022-11-30 21:16:44 +0100 | <EvanR> | if you think of problems as a game where the engineer first comes up with game rules, then plays the game to solve the problem, then what you're basically doing is flipping the table xD |
2022-11-30 21:16:57 +0100 | <EvanR> | constantly |
2022-11-30 21:17:26 +0100 | <darkling> | "Heads!" *flip* "Nope, butter side down." |
2022-11-30 21:17:45 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:73e5:127c:a401:fc03) |
2022-11-30 21:20:13 +0100 | kenran | (~user@user/kenran) |
2022-11-30 21:24:47 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-11-30 21:24:55 +0100 | <segfaultfizzbuzz> | sorry i don't understand this, i am not interested in flipping the table |
2022-11-30 21:25:07 +0100 | <segfaultfizzbuzz> | i am trying to draw a distinction between exceptional and central refutations |
2022-11-30 21:27:34 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2022-11-30 21:27:58 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-30 21:31:42 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-30 21:33:01 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-30 21:34:04 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-11-30 21:35:14 +0100 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 246 seconds) |
2022-11-30 21:36:34 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-30 21:36:57 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-11-30 21:41:19 +0100 | ulvarref` | (~user@185.24.53.152) |
2022-11-30 21:43:08 +0100 | ulvarrefr | (~user@188.124.56.153) (Ping timeout: 260 seconds) |
2022-11-30 21:48:53 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 21:51:14 +0100 | fjmorazan | (~quassel@user/fjmorazan) () |
2022-11-30 21:51:36 +0100 | pavonia | (~user@user/siracusa) |
2022-11-30 21:51:58 +0100 | fjmorazan | (~quassel@user/fjmorazan) |
2022-11-30 21:53:16 +0100 | <sammelweis> | (read "e7c22b994c59d9cf2b48e549b1e24666636045930d3da7c1acb299d1c3b7f931f94aae41edda2c2b207a36e10f8bcb8d45223e54878f5b316e7ce3b6bc019629") :: Digest SHA512 |
2022-11-30 21:53:24 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-11-30 21:53:39 +0100 | <segfaultfizzbuzz> | what? |
2022-11-30 21:54:13 +0100 | <sammelweis> | how do i express a literal Digest SHA512 with syntax checking at compile time, to make above code more correct? |
2022-11-30 21:55:27 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-11-30 21:55:50 +0100 | acidjnk | (~acidjnk@p200300d6e7137a61b0d18cc63c896dfc.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-11-30 21:56:19 +0100 | <geekosaur> | if there isn't a quasiquoter or TH module for it, you don't |
2022-11-30 21:57:17 +0100 | <geekosaur> | (and you're not the only one in that boat; many people badly want compile time bytestring and text literals) |
2022-11-30 22:02:30 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-30 22:04:40 +0100 | ubert | (~Thunderbi@p200300ecdf264ec09cb76a5007726dbb.dip0.t-ipconnect.de) |
2022-11-30 22:07:04 +0100 | freeside | (~mengwong@103.252.202.193) |
2022-11-30 22:07:07 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) (Remote host closed the connection) |
2022-11-30 22:07:21 +0100 | acidjnk | (~acidjnk@p200300d6e7137a610c26e0714ef85554.dip0.t-ipconnect.de) |
2022-11-30 22:08:37 +0100 | <sammelweis> | could be 8 Word64s |
2022-11-30 22:11:35 +0100 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 252 seconds) |
2022-11-30 22:11:55 +0100 | ft | (~ft@p508dbd59.dip0.t-ipconnect.de) |
2022-11-30 22:12:30 +0100 | mastarija | (~mastarija@2a05:4f46:e03:6000:9d12:9fcd:7976:e137) |
2022-11-30 22:15:24 +0100 | Topsi | (~Topsi@dyndsl-095-033-041-101.ewe-ip-backbone.de) |
2022-11-30 22:20:44 +0100 | Scraeling | (~Username@user/scraeling) (Quit: Going offline, see ya! (www.adiirc.com)) |
2022-11-30 22:21:20 +0100 | freeside | (~mengwong@103.252.202.193) |
2022-11-30 22:23:12 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-11-30 22:23:44 +0100 | <EvanR> | hard to eyeball 8 numbers and know if it doesn't match some hex sha somewhere |
2022-11-30 22:23:51 +0100 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt https://tinyurl.com/4m8d4kd5) |
2022-11-30 22:25:33 +0100 | <EvanR> | if I know my ghc, they are scrambling to figure out how to put arbitrary literals that can be checked arbitrary ways, instead of just implementing a "SHA512 literal" feature |
2022-11-30 22:29:23 +0100 | mixfix41 | (~sdenynine@user/mixfix41) (Ping timeout: 265 seconds) |
2022-11-30 22:34:07 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-11-30 22:41:55 +0100 | mixfix41 | (~sdenynine@user/mixfix41) |
2022-11-30 22:42:05 +0100 | mmhat | (~mmh@p200300f1c72545c1ee086bfffe095315.dip0.t-ipconnect.de) |
2022-11-30 22:42:21 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-11-30 22:44:50 +0100 | Topsi | (~Topsi@dyndsl-095-033-041-101.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-11-30 22:45:19 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-11-30 22:47:53 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-11-30 22:51:08 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2022-11-30 22:54:54 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:73e5:127c:a401:fc03) (Quit: WeeChat 2.8) |
2022-11-30 23:00:24 +0100 | <zzz> | where can we get a list of which versions of hls are compatible with each versions of ghc? |
2022-11-30 23:00:36 +0100 | <Rembane> | zzz: From ghcup IIRC |
2022-11-30 23:01:30 +0100 | fjmorazan | (~quassel@user/fjmorazan) () |
2022-11-30 23:01:56 +0100 | <zzz> | i wasted more hours than i care to admit in the last 2 days trying to get that to work |
2022-11-30 23:02:13 +0100 | fjmorazan | (~quassel@user/fjmorazan) |
2022-11-30 23:03:12 +0100 | <zzz> | including messing around with `ghcup compile hls -v X.X.X.X --ghc X.X.X --cabal-update -- --allow-newer` ... etc |
2022-11-30 23:05:09 +0100 | <zzz> | something to do with haskell-language-server issues #2675, #2431 i think |
2022-11-30 23:05:49 +0100 | <zzz> | I finally got 1.6.1.0 to work with 9.0.2 |
2022-11-30 23:07:05 +0100 | califax | (~califax@user/califx) (Ping timeout: 255 seconds) |
2022-11-30 23:07:37 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) |
2022-11-30 23:11:20 +0100 | califax | (~califax@user/califx) |
2022-11-30 23:12:30 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 260 seconds) |
2022-11-30 23:12:50 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d078:9921:dcf:5e81) (Ping timeout: 246 seconds) |
2022-11-30 23:13:42 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-11-30 23:17:15 +0100 | califax | (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-11-30 23:19:24 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-30 23:21:33 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-30 23:21:40 +0100 | califax | (~califax@user/califx) |
2022-11-30 23:24:48 +0100 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 252 seconds) |
2022-11-30 23:24:48 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) |
2022-11-30 23:25:25 +0100 | money_ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit) |
2022-11-30 23:26:21 +0100 | titibandit | (~titibandi@xdsl-78-35-173-119.nc.de) (Remote host closed the connection) |
2022-11-30 23:26:39 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-11-30 23:29:11 +0100 | <zzz> | ghc: panic! (the 'impossible' happened) |
2022-11-30 23:29:11 +0100 | <zzz> | (GHC version 9.0.2: |
2022-11-30 23:29:11 +0100 | <zzz> | Ix{Int}.index: Index (4091527055) out of range ((0,821)) |
2022-11-30 23:29:11 +0100 | <zzz> | Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug |
2022-11-30 23:29:13 +0100 | <zzz> | o.o |
2022-11-30 23:34:11 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2022-11-30 23:35:34 +0100 | <EvanR> | :oof: |
2022-11-30 23:38:08 +0100 | freeside | (~mengwong@103.252.202.193) |
2022-11-30 23:39:00 +0100 | fockerize | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-11-30 23:39:03 +0100 | pwug | (~pwug@user/pwug) |
2022-11-30 23:39:23 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-30 23:42:38 +0100 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 246 seconds) |
2022-11-30 23:44:46 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) |
2022-11-30 23:48:49 +0100 | kfiz[m] | (~louismatr@2001:470:69fc:105::2:aee0) |
2022-11-30 23:53:53 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-11-30 23:56:53 +0100 | freeside | (~mengwong@103.252.202.193) |
2022-11-30 23:58:45 +0100 | michalz | (~michalz@185.246.204.69) (Remote host closed the connection) |