2022-03-08 00:01:08 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
2022-03-08 00:03:35 +0100 | <anon04088520> | ok |
2022-03-08 00:04:17 +0100 | InstX1_ | (~Liam@2601:6c4:4080:3f80:b5e9:14a0:500e:3e39) |
2022-03-08 00:06:01 +0100 | burnsidesLlama | (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
2022-03-08 00:07:04 +0100 | Topsi | (~Tobias@dyndsl-095-033-017-136.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-03-08 00:08:00 +0100 | mreh | (~mreh@2a00:23c7:2803:ef00:d01b:c280:b64b:b893) |
2022-03-08 00:09:19 +0100 | mreh | mreh_ |
2022-03-08 00:10:14 +0100 | <mreh_> | What is there difference between the types in this error message? |
2022-03-08 00:10:15 +0100 | <mreh_> | Couldn't match type ‘[S.PhotoT (QExpr Postgres s0)]’ |
2022-03-08 00:10:15 +0100 | <mreh_> | with ‘forall s'. [S.PhotoT (QExpr Postgres s')]’ |
2022-03-08 00:10:57 +0100 | <hpc> | rank |
2022-03-08 00:10:59 +0100 | <mreh_> | Is the s not the same in all the elements in the list? |
2022-03-08 00:11:44 +0100 | <hpc> | s0 is part of a larger scope than s' |
2022-03-08 00:12:10 +0100 | <hpc> | s' is introduced right at the list, and s0 is introduced somewhere further out that's not communicated in that error |
2022-03-08 00:15:18 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-03-08 00:15:59 +0100 | <mreh_> | I can't work out where s' is introduced, all the functions I'm using to construct values of S.PhotoT... all have forall s. in their type. |
2022-03-08 00:16:26 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2022-03-08 00:18:20 +0100 | <hpc> | s' is introduced by that forall right there in the error |
2022-03-08 00:18:30 +0100 | <hpc> | :P |
2022-03-08 00:20:33 +0100 | daemonises | (uid545329@id-545329.uxbridge.irccloud.com) |
2022-03-08 00:23:39 +0100 | acidjnk | (~acidjnk@p200300d0c7049f37592e4ec9ecef3fab.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-03-08 00:31:15 +0100 | mreh_ | (~mreh@2a00:23c7:2803:ef00:d01b:c280:b64b:b893) (Ping timeout: 256 seconds) |
2022-03-08 00:32:32 +0100 | stefan-_ | (~cri@42dots.de) (Ping timeout: 240 seconds) |
2022-03-08 00:36:57 +0100 | stefan-_ | (~cri@42dots.de) |
2022-03-08 00:39:01 +0100 | anon04088520 | (~anon04088@host-92-19-97-204.as13285.net) (Remote host closed the connection) |
2022-03-08 00:39:19 +0100 | anon04088520 | (~anon04088@host-92-19-97-204.as13285.net) |
2022-03-08 00:40:58 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-03-08 00:43:43 +0100 | anon04088520 | (~anon04088@host-92-19-97-204.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 00:44:51 +0100 | fluxit | (~fluxit@techsmix.net) (Quit: Bye!) |
2022-03-08 00:45:38 +0100 | anon04088520 | (~anon04088@host-92-19-97-204.as13285.net) |
2022-03-08 00:49:35 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (WeeChat 3.4) |
2022-03-08 00:49:57 +0100 | anon04088520 | (~anon04088@host-92-19-97-204.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 00:50:51 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) |
2022-03-08 00:52:09 +0100 | chenqisu1 | (~chenqisu1@183.217.201.47) |
2022-03-08 00:53:47 +0100 | <worldhelloworld> | Really struggling to conceptualize folds when traversing a list - could barely define a takeWhile in terms of foldr, but can't for the life of me, conceptualize a dropWhile in terms of fold :( |
2022-03-08 00:55:25 +0100 | <dminuoso> | Can you share your version of takeWhile perhaps? |
2022-03-08 00:55:32 +0100 | shailangsa | (~shailangs@host86-186-133-59.range86-186.btcentralplus.com) |
2022-03-08 00:55:32 +0100 | <worldhelloworld> | Sure |
2022-03-08 00:55:50 +0100 | <worldhelloworld> | `takeWhile'' f = foldr (\x acc -> if f x then x:acc else []) []` |
2022-03-08 00:57:27 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:a396:9946:d0cf:5cc0) (Remote host closed the connection) |
2022-03-08 01:01:31 +0100 | <worldhelloworld> | scanr helped a bit with coming up with the definition, but for dropWhile finding it difficult .... been 3 days now lol |
2022-03-08 01:02:20 +0100 | liz_ | (~liz@2a00:23c5:9680:501:b62e:99ff:fee4:47fa) |
2022-03-08 01:04:59 +0100 | <Axman6> | worldhelloworld: so, acc can be a function, it doesn't have to be another list, so you can pass arguments to it. if you could pass in whether you've finished dropping and then not drop any more that might work |
2022-03-08 01:05:27 +0100 | <Axman6> | (this isn't a function I've written myself, at least not for a very long time so not too sure about that) |
2022-03-08 01:07:04 +0100 | <worldhelloworld> | @Axman6 `acc` is the accumulator - the one which holds the result after successive operations in fold ..... it's already inside the anonymous function .... not sure what you mean |
2022-03-08 01:07:04 +0100 | <lambdabot> | Unknown command, try @list |
2022-03-08 01:07:30 +0100 | worldhelloworld1 | (uid543174@id-543174.helmsley.irccloud.com) |
2022-03-08 01:07:43 +0100 | <geekosaur> | try not thinking of it as an accumulator but as a state which sometimes gets used as an accumulator |
2022-03-08 01:08:46 +0100 | <Axman6> | yes, acc can have any type you want |
2022-03-08 01:08:55 +0100 | <liz_> | :t foldr |
2022-03-08 01:08:56 +0100 | <lambdabot> | Foldable t => (a -> b -> b) -> b -> t a -> b |
2022-03-08 01:09:11 +0100 | <Axman6> | % :t foldr @[] |
2022-03-08 01:09:11 +0100 | <yahb> | Axman6: (a -> b -> b) -> b -> [a] -> b |
2022-03-08 01:09:47 +0100 | <liz_> | so b can be any type you like, including a function |
2022-03-08 01:10:37 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-03-08 01:12:56 +0100 | <geekosaur> | it can also for example be a tuple, if you need to carry around moe than one thing |
2022-03-08 01:13:09 +0100 | <geekosaur> | *more |
2022-03-08 01:13:50 +0100 | <liz_> | i sometimes use tuples for simple state which is then discarded by whatever function is using the fold |
2022-03-08 01:16:30 +0100 | <liz_> | i had an [Int] -> [Int] fold that used a tuple, bin2int = fst $ foldr (\b (n,pow) -> (n+b*pow,2*pow)) (0,1) |
2022-03-08 01:18:28 +0100 | <worldhelloworld> | I am not sure how to think of it in terms of state tbh - I don't think the hutton book has such examples that I can remember |
2022-03-08 01:20:51 +0100 | <worldhelloworld> | but if one were to think in terms of accumulators, just for curiosity, is the dropWhile easy to grasp? Or am I struggling more than normal? Just trying to gauge my understanding |
2022-03-08 01:20:54 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-03-08 01:21:44 +0100 | <janus> | what are people's opinions on upgrading packages in anticipation of the release of a dependency? for example, does it make sense to make a package compatible with ghc 9.2 even though it relies on cryptonite? |
2022-03-08 01:22:08 +0100 | <janus> | i could appreciate the argument that since it hasn't actaully been run, one shouldn't claim compatibility |
2022-03-08 01:23:20 +0100 | <hpc> | if you think only in terms of the semantics of the version numbers, it's a valid thing to do |
2022-03-08 01:23:27 +0100 | <hpc> | i personally wouldn't do it, for the very reason you mention |
2022-03-08 01:23:59 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 01:24:02 +0100 | <janus> | for cryptonite, there are PRs open that patch cryptonite to make it compatible. but when i see people overriding dependencies in comitted code, it makes me cringe |
2022-03-08 01:24:33 +0100 | InstX1_ | (~Liam@2601:6c4:4080:3f80:b5e9:14a0:500e:3e39) (Ping timeout: 250 seconds) |
2022-03-08 01:24:34 +0100 | <hpc> | maybe you can test against those PRs? |
2022-03-08 01:24:36 +0100 | <janus> | i don't like comitting references to "replaced" dependencies because that code becomes stale as soon as the "real" upgrade happens |
2022-03-08 01:25:08 +0100 | <hpc> | if the PRs would be a minor version bump i think you're in the clear |
2022-03-08 01:25:26 +0100 | <janus> | hpc: what do you mean by testing? i am referring to stuff like this https://github.com/aesiniath/http-streams/pull/130/files |
2022-03-08 01:25:31 +0100 | <hpc> | and if it breaks after you can make your own updates to fix it |
2022-03-08 01:26:05 +0100 | <hpc> | build it yourself with those PRs merged in, and test against that |
2022-03-08 01:26:12 +0100 | <hpc> | however you test your package |
2022-03-08 01:26:42 +0100 | <janus> | right, i also think that it is a useful compromise to test with source-repository-package, but *not* commit that override |
2022-03-08 01:26:43 +0100 | <hpc> | a "what-if" build of the dependencies, as it were |
2022-03-08 01:27:18 +0100 | <janus> | my problem is that the PR description then becomes more complicated, since you have to explain to the repo owner how to 'override' the dependency and the anticipation and so on... |
2022-03-08 01:27:43 +0100 | <hpc> | only if they want to use those PRs |
2022-03-08 01:28:09 +0100 | <hpc> | otherwise the constraints of the released cryptonite package prevent using 9.2 anyway i assume? |
2022-03-08 01:28:49 +0100 | <hpc> | so pre-loosening the constraints doesn't break things in the now |
2022-03-08 01:28:51 +0100 | <janus> | yeah, the currently released cryptonite is unbuildable on 9.2 due to it's dependency on memory/foundation |
2022-03-08 01:28:56 +0100 | <hpc> | and this testing is just to prove it won't break things in the future |
2022-03-08 01:29:26 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) (Read error: Connection reset by peer) |
2022-03-08 01:29:35 +0100 | <janus> | it becomes even more involved with CI integration, because i speculate that some people don't want to merge code that isn't being exercised in CI |
2022-03-08 01:29:39 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) |
2022-03-08 01:29:53 +0100 | <janus> | so they wouldn't merge a bytestring bump that allows 0.11 until 9.2 is exercised on CI... |
2022-03-08 01:32:26 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) |
2022-03-08 01:33:02 +0100 | <janus> | hpc: what do you mean by "only if they want to use those PRs"? let's say the PR allows bytestring 0.11. would 'using the PR' mean compiling with GHC 9.2? and you're saying it could be allowed by the bounds even though overriden dependencies are not committed? |
2022-03-08 01:34:10 +0100 | <worldhelloworld> | The way that book describes fold is in two ways 1) Replacing the cons operator by the function 2) The accumulator value method , taking the head and processing recursively ....... Is there another way to think about folds? |
2022-03-08 01:34:30 +0100 | unyu | (~pyon@user/pyon) (Quit: WeeChat 3.4) |
2022-03-08 01:34:33 +0100 | <hpc> | janus: it would mean they did the same thing you did |
2022-03-08 01:34:50 +0100 | <hpc> | doing their own build of that dependency with some stuff changed from what's on hackage |
2022-03-08 01:35:24 +0100 | alMalsamo | lumberjack123 |
2022-03-08 01:36:08 +0100 | <hpc> | (which you don't need to support in your package, they're taking on the making-it-work burden themselves when they do that) |
2022-03-08 01:37:18 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
2022-03-08 01:37:23 +0100 | tommd | (~tommd@97-120-41-123.ptld.qwest.net) |
2022-03-08 01:38:23 +0100 | <monochrom> | There is no other way. In fact the second way is just a lousier way to say the first. |
2022-03-08 01:39:04 +0100 | <hpc> | worldhelloworld: the first way generalizes way better too |
2022-03-08 01:39:06 +0100 | <hpc> | :t maybe |
2022-03-08 01:39:07 +0100 | <lambdabot> | b -> (a -> b) -> Maybe a -> b |
2022-03-08 01:39:19 +0100 | <hpc> | worldhelloworld: maybe is just "replacing the Just" and "replacing the Nothing" |
2022-03-08 01:39:25 +0100 | <hpc> | :t either |
2022-03-08 01:39:26 +0100 | <lambdabot> | (a -> c) -> (b -> c) -> Either a b -> c |
2022-03-08 01:39:28 +0100 | <hpc> | etc |
2022-03-08 01:39:40 +0100 | <monochrom> | The first way though still has the problem of leaving it ambiguous what happens to infinite list. |
2022-03-08 01:40:18 +0100 | <hpc> | it's not ambiguous |
2022-03-08 01:40:39 +0100 | <hpc> | it just does whatever an infinite chain of that function would do |
2022-03-08 01:40:45 +0100 | <monochrom> | Well, I was being charitable. |
2022-03-08 01:40:53 +0100 | <hpc> | :P |
2022-03-08 01:41:03 +0100 | <Axman6> | worldhelloworld: is this homework? |
2022-03-08 01:41:07 +0100 | ishutin | (~ishutin@92-249-150-139.static.digikabel.hu) (Ping timeout: 272 seconds) |
2022-03-08 01:41:20 +0100 | <Axman6> | the dropWhile thing |
2022-03-08 01:41:33 +0100 | <monochrom> | Read literally, it implies that if you have infinitely many cons, then there is infinitely much work to be done. |
2022-03-08 01:41:37 +0100 | <worldhelloworld> | @axman6 - no trying to solve it for myself, got done with Uni way back |
2022-03-08 01:41:37 +0100 | <lambdabot> | Unknown command, try @list |
2022-03-08 01:41:52 +0100 | <Axman6> | ok, great, means we can be a bit more helpful |
2022-03-08 01:42:13 +0100 | <monochrom> | which is incompatible with how things unfold (pun!) in Haskell |
2022-03-08 01:42:17 +0100 | ishutin | (~ishutin@92-249-193-65.pool.digikabel.hu) |
2022-03-08 01:43:09 +0100 | <hpc> | monochrom: that is only the case strictly speaking (more pun!) |
2022-03-08 01:43:33 +0100 | <worldhelloworld> | the problem I have trying to conceptualise fold with replacing cons (:) operator is how does one know which side of the cons operator goes where in ... say an anonymous function (\a b -> do something) |
2022-03-08 01:43:57 +0100 | <hpc> | worldhelloworld: give that lambda a name - say, f |
2022-03-08 01:44:10 +0100 | <hpc> | worldhelloworld: now you have your list, a : (b : c) |
2022-03-08 01:44:11 +0100 | <Axman6> | @msg lambdabot > let everySecond xs = (foldr (\a acc keep -> if keep then a : acc (not keep) else acc (not keep)) (\_keep -> []) xs) True in everySecond [1..10] |
2022-03-08 01:44:12 +0100 | <lambdabot> | Not enough privileges |
2022-03-08 01:44:14 +0100 | <Axman6> | uh |
2022-03-08 01:44:23 +0100 | <monochrom> | x:xs = (:) x xs. Replace that (:) there. Not ambiguous. |
2022-03-08 01:44:29 +0100 | <hpc> | worldhelloworld: after you fold, it becomes a `f` (b `f` c) |
2022-03-08 01:44:38 +0100 | <Axman6> | Well good thing I got that right on the first try! |
2022-03-08 01:44:45 +0100 | <Axman6> | > let everySecond xs = (foldr (\a acc keep -> if keep then a : acc (not keep) else acc (not keep)) (\_keep -> []) xs) True in everySecond [1..10] |
2022-03-08 01:44:46 +0100 | <lambdabot> | [1,3,5,7,9] |
2022-03-08 01:44:53 +0100 | <monochrom> | Therefore, after replacement, (\a b -> do something) x xs. You do the math. |
2022-03-08 01:45:11 +0100 | unyu | (~pyon@user/pyon) |
2022-03-08 01:45:23 +0100 | <Axman6> | worldhelloworld: here's an example of using foldr where acc is a function |
2022-03-08 01:45:49 +0100 | <Axman6> | :t foldr `asAppliedTo` (\a acc keep -> if keep then a : acc (not keep) else acc (not keep)) |
2022-03-08 01:45:50 +0100 | <lambdabot> | Foldable t => (a -> (Bool -> [a]) -> Bool -> [a]) -> (Bool -> [a]) -> t a -> Bool -> [a] |
2022-03-08 01:46:11 +0100 | <monochrom> | Err "x:xs" is a bad example. |
2022-03-08 01:46:12 +0100 | <Axman6> | % :t foldr @[] `asAppliedTo` (\a acc keep -> if keep then a : acc (not keep) else acc (not keep)) -- to make the type a little simpler |
2022-03-08 01:46:12 +0100 | <yahb> | Axman6: ; <interactive>:1:11: error: Variable not in scope: asAppliedTo :: ((a0 -> b0 -> b0) -> b0 -> [a0] -> b0) -> (a1 -> (Bool -> [a1]) -> Bool -> [a1]) -> t |
2022-03-08 01:46:42 +0100 | <monochrom> | x : y : z : [] = (:) x ((:) y ((:) z [])). Replace all those (:)s there. |
2022-03-08 01:47:02 +0100 | <Axman6> | urgh - mniip can we get asAppliedTo, asTypeOf etc added to yahb? they're so useful in here |
2022-03-08 01:47:39 +0100 | <monochrom> | (\a b -> do something) x ((\a b -> do something) y ((\a b -> do something) z ???))...) where ??? is whatever replaces []. |
2022-03-08 01:48:31 +0100 | <dibblego> | (:) is right-associative, add parens if it helps |
2022-03-08 01:48:43 +0100 | <hpc> | worldhelloworld: by the way, take all of these examples and put them into a file and format it |
2022-03-08 01:49:02 +0100 | <hpc> | irc is not an ideal medium for these sorts of code snippets |
2022-03-08 01:49:26 +0100 | GIngeh | (~GIngeh@203.62.28.64) |
2022-03-08 01:49:27 +0100 | <hpc> | (formatting will probably include breaking out parts of it and giving them names) |
2022-03-08 01:49:28 +0100 | <worldhelloworld> | good idea ... my brain is unable to process it right now |
2022-03-08 01:49:44 +0100 | <hpc> | (names make all code better, even if they're just a b c) |
2022-03-08 01:50:59 +0100 | <worldhelloworld> | yea, easier to understand for the mental model |
2022-03-08 01:51:02 +0100 | <GIngeh> | @pl (\target -> listToMaybe . map (\[x,y] -> (x,y)) . filter (\x -> sum x == target) . combinations 2) |
2022-03-08 01:51:02 +0100 | <lambdabot> | (line 1, column 33): |
2022-03-08 01:51:02 +0100 | <lambdabot> | unexpected "[" |
2022-03-08 01:51:02 +0100 | <lambdabot> | expecting pattern |
2022-03-08 01:52:16 +0100 | <GIngeh> | @pl \target -> listToMaybe . map (\ [x,y] -> (x,y)) . filter (\x -> sum x == target) . combinations 2 |
2022-03-08 01:52:16 +0100 | <lambdabot> | (line 1, column 33): |
2022-03-08 01:52:16 +0100 | <lambdabot> | unexpected "[" |
2022-03-08 01:52:16 +0100 | <lambdabot> | expecting pattern |
2022-03-08 01:52:49 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-03-08 01:53:25 +0100 | cynomys | (~cynomys@user/cynomys) (Client Quit) |
2022-03-08 01:53:36 +0100 | <geekosaur> | you can't really make that part pointfree |
2022-03-08 01:53:37 +0100 | <Axman6> | > let everySecond xs = (foldr (\a acc keep -> if keep then a : acc (not keep) else acc (not keep)) (\_keep -> []) {- <- this is acc -} xs {- <- this provedes each a -}) True {- <- this is the inital keep -} in everySecond [1..10] -- worldhelloworldthis might be useful to study, with comments added now |
2022-03-08 01:53:39 +0100 | <lambdabot> | [1,3,5,7,9] |
2022-03-08 01:54:10 +0100 | <worldhelloworld> | It's funny because i picked up the recursive cases really fast, but folds just got to me |
2022-03-08 01:54:19 +0100 | <worldhelloworld> | hmm will note it down |
2022-03-08 01:54:31 +0100 | <Axman6> | @pl \target -> listToMaybe . map (\ xs -> (xs!!0,xs!!1)) . filter (\x -> sum x == target) . combinations 2 -- hack for pl? |
2022-03-08 01:54:31 +0100 | <lambdabot> | ((listToMaybe . map (liftM2 (,) (!! 0) (!! 1))) .) . (. combinations 2) . filter . (. sum) . (==) |
2022-03-08 01:55:03 +0100 | vysn | (~vysn@user/vysn) |
2022-03-08 01:55:04 +0100 | <geekosaur> | maybe hork instead of hack :þ |
2022-03-08 01:55:12 +0100 | <liz_> | lambdabot can do eta reduction? :o |
2022-03-08 01:55:20 +0100 | <geekosaur> | then again hat describes most of pl's output |
2022-03-08 01:56:04 +0100 | <Axman6> | worldhelloworld: the thing to take note of is the function we give to foldr here is taking three things: the current value in the list, what to do next, and some state that is uses, and passes on, to decide what to do with this particular a |
2022-03-08 01:56:09 +0100 | <monochrom> | If you understand recursion, you can understand foldr by using recursion to reinvent it yourself. |
2022-03-08 01:56:39 +0100 | <hpc> | to some extent, foldr /is/ recursion for lists |
2022-03-08 01:56:43 +0100 | <Axman6> | liz_: pl is short for pointless, a pun on making things pointfree, because it often doesn't improve code at all |
2022-03-08 01:57:02 +0100 | <GIngeh> | oh lord |
2022-03-08 01:57:04 +0100 | <hpc> | but that's a whole other thing ;) |
2022-03-08 01:57:06 +0100 | <GIngeh> | yeah I'm not gonna bother trying to use that |
2022-03-08 01:57:08 +0100 | <Axman6> | hpc: to some extent, or it is univeral? |
2022-03-08 01:57:11 +0100 | <dibblego> | > foldr (++) [] [[1,2,3], [4,5,6]] -- insert (++) in every (:) and [] in [] |
2022-03-08 01:57:12 +0100 | <lambdabot> | [1,2,3,4,5,6] |
2022-03-08 01:57:22 +0100 | <worldhelloworld> | @monochrom thanks for making me feel I don't even understand recursion :P |
2022-03-08 01:57:22 +0100 | <lambdabot> | Unknown command, try @list |
2022-03-08 01:57:23 +0100 | <hpc> | Axman6: to the entire extent :P |
2022-03-08 01:57:29 +0100 | <Axman6> | :) |
2022-03-08 01:57:50 +0100 | GIngeh | Gingeh |
2022-03-08 01:57:59 +0100 | Gingeh | (~GIngeh@203.62.28.64) (Quit: Client closed) |
2022-03-08 01:58:22 +0100 | <geekosaur> | we call it "pl" ("pointless") for a reason :) |
2022-03-08 01:58:32 +0100 | <hpc> | worldhelloworld: if it makes you feel better, the entire field of math doesn't even understand real numbers |
2022-03-08 01:58:34 +0100 | <geekosaur> | and even so that's one of ts cleaner outputs |
2022-03-08 01:58:41 +0100 | <geekosaur> | *its |
2022-03-08 01:58:51 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-03-08 01:58:54 +0100 | <geekosaur> | oh they left already |
2022-03-08 01:59:00 +0100 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2022-03-08 01:59:17 +0100 | <liz_> | it sounds very funny then |
2022-03-08 01:59:22 +0100 | alp | (~alp@user/alp) |
2022-03-08 01:59:31 +0100 | <hpc> | you're further in the weeds here than hardly any programmer ever gets |
2022-03-08 01:59:43 +0100 | <hpc> | but they're really cool weeds |
2022-03-08 01:59:50 +0100 | <monochrom> | Hell I think most people understand recursion less than they think. |
2022-03-08 02:00:04 +0100 | <jackdk> | I understand recursion as much as I understand recursion |
2022-03-08 02:00:23 +0100 | <monochrom> | I recently proved that well-founded induction justifies well-founded recursive definitions. |
2022-03-08 02:00:29 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-03-08 02:00:34 +0100 | <worldhelloworld> | hpc not sure what that means about real numbers, but I presume it must be something fancy |
2022-03-08 02:01:09 +0100 | <monochrom> | I think I found out that no matter how you dice it, some kind of choice axiom is needed. |
2022-03-08 02:01:13 +0100 | <worldhelloworld> | monochrom am I a case in point? |
2022-03-08 02:01:14 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 02:01:14 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-03-08 02:01:47 +0100 | <geekosaur> | you have more justification than "most people", I suspect |
2022-03-08 02:01:50 +0100 | <hpc> | worldhelloworld: just that fundamental math is deceptively tricky |
2022-03-08 02:02:01 +0100 | cynomys | (~cynomys@user/cynomys) (Client Quit) |
2022-03-08 02:02:06 +0100 | <Axman6> | > let takeEnd n0 xs = fst $ foldr (\a (ys,n) -> if n <= 0 then (ys, n) else (a:ys, n-1)) ([],n0) xs in takeEnd 3 [1..10] |
2022-03-08 02:02:09 +0100 | <lambdabot> | [8,9,10] |
2022-03-08 02:02:09 +0100 | <worldhelloworld> | fair enough |
2022-03-08 02:02:10 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-03-08 02:02:12 +0100 | <monochrom> | I checked a set theory textbook, it handwaved away the involvement of choice, as in, it avoided saying that choice is needed. |
2022-03-08 02:02:20 +0100 | burnsidesLlama | (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Remote host closed the connection) |
2022-03-08 02:02:28 +0100 | <monochrom> | I feel like the authors were not aware. |
2022-03-08 02:02:43 +0100 | <liz_> | in my experience, the axiom of choice only comes up in extremely rigorous texts |
2022-03-08 02:02:57 +0100 | <monochrom> | By extension, if certain authors of a certain set theory textbook were not aware, perhaps a lot of mathematicians neither. |
2022-03-08 02:03:03 +0100 | cynomys | (~cynomys@user/cynomys) (Client Quit) |
2022-03-08 02:03:18 +0100 | <hpc> | worldhelloworld: there's a joke that real analysis should be called complex analysis due to how difficult it is and how many problems aren't solvable |
2022-03-08 02:03:30 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-03-08 02:03:39 +0100 | <hpc> | worldhelloworld: and complex numbers should be called rational numbers because they have so many fewer edge cases |
2022-03-08 02:03:42 +0100 | <hpc> | etc etc |
2022-03-08 02:03:52 +0100 | <hpc> | (the whole numeric hierarchy gets renamed) |
2022-03-08 02:03:53 +0100 | <worldhelloworld> | haha that sounds funny, even though I'm unable to understand the depths of it |
2022-03-08 02:04:00 +0100 | <liz_> | complex analysis is no cakewalk either though x_x |
2022-03-08 02:04:27 +0100 | <hpc> | heh, yeah |
2022-03-08 02:04:33 +0100 | cynomys | (~cynomys@user/cynomys) (Client Quit) |
2022-03-08 02:04:52 +0100 | <Axman6> | hypercomplex analysis |
2022-03-08 02:05:15 +0100 | <hpc> | my formal learning ended just before linear algebra |
2022-03-08 02:05:31 +0100 | <hpc> | partially due to bad teachers and partially due to bad teaching |
2022-03-08 02:05:48 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-03-08 02:05:49 +0100 | <worldhelloworld> | how did you manage to be self taught as much? |
2022-03-08 02:06:02 +0100 | <hpc> | i wasn't able to independently figure out what the actual fundamental stuff was, and all the classes ever did was drill how to solve eigenvectors and such |
2022-03-08 02:06:12 +0100 | <liz_> | i have a masters degree in maths and i still struggle with real/complex analysis a lot |
2022-03-08 02:06:34 +0100 | <hpc> | worldhelloworld: when i started college i tried learning python after being stuck with java all through HS |
2022-03-08 02:06:44 +0100 | <hpc> | quickly realized i was too stupid for python, and learned haskell instead |
2022-03-08 02:06:55 +0100 | <hpc> | it was way easier, ghc does a lot of thinking for me |
2022-03-08 02:07:01 +0100 | <geekosaur> | this sounds like me :þ |
2022-03-08 02:07:02 +0100 | <hpc> | then i just followed the concepts |
2022-03-08 02:07:20 +0100 | <hpc> | people say things here, i google them, follow wikipedia links, mess with them in ghci, and ask questions |
2022-03-08 02:07:41 +0100 | <worldhelloworld> | I, unfortunately, learned python a bit, now I am trying to unlearn it to learn haskell - it's more difficult |
2022-03-08 02:07:59 +0100 | <hpc> | yeah, try unlearning java sometime, it's even harder |
2022-03-08 02:08:12 +0100 | mvk | (~mvk@2607:fea8:5cc3:7e00::45ee) |
2022-03-08 02:08:15 +0100 | <worldhelloworld> | :) |
2022-03-08 02:08:19 +0100 | <hpc> | it took me a month to get to an irc bot that could echo back what i sent it |
2022-03-08 02:08:20 +0100 | <geekosaur> | except I have some baggage like never quite trusting myself at math because of some horrific early "schooling" |
2022-03-08 02:08:47 +0100 | <liz_> | this is interesting to hear about, because my introduction to haskell was quite formal; a professor recommended it to me while we were discussing semigroup theory |
2022-03-08 02:09:08 +0100 | <hpc> | and then it barely worked at that, i think the early versions could only run for a few days at a time before getting memory-killed |
2022-03-08 02:09:42 +0100 | Sgeo_ | (~Sgeo@user/sgeo) |
2022-03-08 02:10:10 +0100 | <monochrom> | I recommend "Linear Algebra Done Right" for a non-computational, putting-the-algebra-back-into-linear-algebra explanation of linear algebra. |
2022-03-08 02:10:36 +0100 | <hpc> | 3b1b was what finally got linear algebra's concepts in my head |
2022-03-08 02:10:43 +0100 | <hpc> | but by then it was too late to feel like anything but work |
2022-03-08 02:10:47 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-03-08 02:10:48 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-08 02:10:53 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 272 seconds) |
2022-03-08 02:11:04 +0100 | <worldhelloworld> | monochrom - how approachable is it for someone out of touch with academics? |
2022-03-08 02:11:35 +0100 | <worldhelloworld> | hpc whats 3b1b? |
2022-03-08 02:11:48 +0100 | <hpc> | https://www.youtube.com/c/3blue1brown |
2022-03-08 02:11:57 +0100 | <monochrom> | For example, transpose is really defined by an adjunction. <T v, w> = <v, (transpose T) w> |
2022-03-08 02:11:57 +0100 | <worldhelloworld> | oh that channel - got it |
2022-03-08 02:12:12 +0100 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 240 seconds) |
2022-03-08 02:12:40 +0100 | <monochrom> | It also has a no-matrix proof that eigenthings exist. |
2022-03-08 02:12:51 +0100 | <monochrom> | Hell, no-determinant too. |
2022-03-08 02:13:11 +0100 | <hpc> | ooh, nice |
2022-03-08 02:13:17 +0100 | <hpc> | i hated calculating those |
2022-03-08 02:13:24 +0100 | <hpc> | even computers hate calculating thoses |
2022-03-08 02:13:44 +0100 | da39a3ee5e6b4b0d | (~textual@171.5.29.46) |
2022-03-08 02:13:56 +0100 | <hpc> | it's like the math version doing lines on the chalkboarad for detention |
2022-03-08 02:14:48 +0100 | <worldhelloworld> | I'm afraid I havent read as much as you guys, couldn't even read Gilbert Strang .... but someday |
2022-03-08 02:15:00 +0100 | <hpc> | i haven't read gilbert strang :P |
2022-03-08 02:15:36 +0100 | <worldhelloworld> | I assumed it's a good book so many/most must have |
2022-03-08 02:16:49 +0100 | <liz_> | if you ever wanted to dip your toes in more formal theory, then |
2022-03-08 02:16:53 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-03-08 02:16:54 +0100 | <liz_> | whoops, mispressed enter |
2022-03-08 02:17:26 +0100 | <liz_> | I. N. Herstein's "Topics in Algebra" has good sections on vector spaces and linear transformations |
2022-03-08 02:18:37 +0100 | <worldhelloworld> | Interesting .... I am too rusty, that sounds like something rigourous, hopefully in due time |
2022-03-08 02:18:41 +0100 | <worldhelloworld> | thanks though |
2022-03-08 02:22:17 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-03-08 02:25:07 +0100 | alp | (~alp@user/alp) (Remote host closed the connection) |
2022-03-08 02:25:29 +0100 | alp | (~alp@user/alp) |
2022-03-08 02:28:08 +0100 | <romesrf> | night everyone |
2022-03-08 02:28:12 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
2022-03-08 02:29:02 +0100 | <worldhelloworld> | nighty |
2022-03-08 02:29:37 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:3065:9fc7:d58e:fc3e) (Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)) |
2022-03-08 02:30:04 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:3065:9fc7:d58e:fc3e) |
2022-03-08 02:30:44 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:598a:8b0b:9405:6e26) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 02:34:01 +0100 | da39a3ee5e6b4b0d | (~textual@171.5.29.46) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 02:35:35 +0100 | alp | (~alp@user/alp) (Ping timeout: 268 seconds) |
2022-03-08 02:45:16 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-03-08 02:45:33 +0100 | img | (~img@user/img) |
2022-03-08 02:46:07 +0100 | tommd | (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 256 seconds) |
2022-03-08 03:00:45 +0100 | unyu | (~pyon@user/pyon) (Quit: brb) |
2022-03-08 03:01:10 +0100 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 256 seconds) |
2022-03-08 03:01:54 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:3065:9fc7:d58e:fc3e) (Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)) |
2022-03-08 03:02:29 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:3065:9fc7:d58e:fc3e) |
2022-03-08 03:03:22 +0100 | unyu | (~pyon@user/pyon) |
2022-03-08 03:03:48 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-03-08 03:07:30 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) |
2022-03-08 03:07:45 +0100 | gentauro | (~gentauro@user/gentauro) |
2022-03-08 03:17:16 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2022-03-08 03:18:36 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection) |
2022-03-08 03:21:50 +0100 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
2022-03-08 03:23:44 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-03-08 03:23:44 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-03-08 03:23:44 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-03-08 03:25:12 +0100 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) |
2022-03-08 03:34:02 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) (Ping timeout: 256 seconds) |
2022-03-08 03:34:20 +0100 | x_kuru | (~xkuru@user/xkuru) |
2022-03-08 03:35:19 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) |
2022-03-08 03:37:06 +0100 | caildddddt^ | (~cailddddd@50.232.121.75) |
2022-03-08 03:37:30 +0100 | cheater1__ | (~Username@user/cheater) |
2022-03-08 03:37:34 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:4154:7a97:7f52:6596) (Remote host closed the connection) |
2022-03-08 03:37:39 +0100 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 272 seconds) |
2022-03-08 03:37:39 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2022-03-08 03:37:45 +0100 | cheater1__ | cheater |
2022-03-08 03:37:51 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:8cff:8f3a:46d8:f6ed) |
2022-03-08 03:38:34 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-03-08 03:41:06 +0100 | liz | (~liz@2a00:23c5:9680:501:f2d5:bfff:fe6a:5af4) (Remote host closed the connection) |
2022-03-08 03:41:42 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-03-08 03:41:58 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-03-08 03:48:03 +0100 | aeka` | (~aeka@pool-100-4-208-71.albyny.fios.verizon.net) |
2022-03-08 03:48:06 +0100 | aeka | (~aeka@user/hiruji) (Ping timeout: 260 seconds) |
2022-03-08 03:49:00 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
2022-03-08 03:51:57 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-03-08 03:52:11 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 03:55:53 +0100 | merijn | (~merijn@c-001-002-007.client.esciencecenter.eduvpn.nl) |
2022-03-08 03:57:54 +0100 | aeka` | (~aeka@pool-100-4-208-71.albyny.fios.verizon.net) (Ping timeout: 260 seconds) |
2022-03-08 04:04:44 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Remote host closed the connection) |
2022-03-08 04:08:07 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:3065:9fc7:d58e:fc3e) (Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)) |
2022-03-08 04:08:17 +0100 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds) |
2022-03-08 04:08:22 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-03-08 04:09:46 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2022-03-08 04:25:06 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-03-08 04:28:08 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-03-08 04:28:26 +0100 | merijn | (~merijn@c-001-002-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-08 04:34:20 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Remote host closed the connection) |
2022-03-08 04:34:37 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 04:41:37 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds) |
2022-03-08 04:42:53 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-03-08 04:44:05 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-03-08 04:48:50 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-03-08 04:51:37 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-03-08 04:52:25 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) |
2022-03-08 04:53:02 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Client Quit) |
2022-03-08 04:54:41 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Remote host closed the connection) |
2022-03-08 04:55:00 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 04:55:01 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) |
2022-03-08 04:55:18 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2022-03-08 04:55:36 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-03-08 04:59:17 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 04:59:46 +0100 | emf_ | (~emf@2620:10d:c090:400::5:8ba5) |
2022-03-08 05:01:28 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Ping timeout: 250 seconds) |
2022-03-08 05:02:27 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-03-08 05:02:44 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-03-08 05:02:59 +0100 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50) |
2022-03-08 05:05:56 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-03-08 05:10:02 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-03-08 05:11:55 +0100 | mbuf | (~Shakthi@122.174.51.86) |
2022-03-08 05:17:46 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 05:20:07 +0100 | liz_ | (~liz@2a00:23c5:9680:501:b62e:99ff:fee4:47fa) (Quit: Leaving) |
2022-03-08 05:20:16 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) |
2022-03-08 05:24:52 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 250 seconds) |
2022-03-08 05:25:17 +0100 | mvk | (~mvk@2607:fea8:5cc3:7e00::45ee) (Ping timeout: 240 seconds) |
2022-03-08 05:28:36 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 05:29:04 +0100 | kayvank | (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Ping timeout: 256 seconds) |
2022-03-08 05:33:17 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 05:35:13 +0100 | caildddddt^ | (~cailddddd@50.232.121.75) (Remote host closed the connection) |
2022-03-08 05:36:13 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2022-03-08 05:36:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-03-08 05:36:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-03-08 05:36:51 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-03-08 05:43:47 +0100 | kayvank | (~user@52-119-115-185.PUBLIC.monkeybrains.net) |
2022-03-08 05:46:39 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 05:53:45 +0100 | worldhelloworld1 | (uid543174@id-543174.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-08 05:59:40 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-03-08 06:00:02 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) |
2022-03-08 06:10:10 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2022-03-08 06:12:37 +0100 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (Ping timeout: 240 seconds) |
2022-03-08 06:13:26 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Ping timeout: 272 seconds) |
2022-03-08 06:14:34 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2022-03-08 06:14:42 +0100 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) |
2022-03-08 06:23:35 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 272 seconds) |
2022-03-08 06:25:10 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 06:28:35 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2022-03-08 06:33:56 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-03-08 06:35:40 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-03-08 06:40:34 +0100 | ajb | (~ajb@cupid.whatbox.ca) (Quit: bye) |
2022-03-08 06:41:26 +0100 | res0nat0r08 | (~Fletch@dia.whatbox.ca) (Quit: The Lounge - https://thelounge.chat) |
2022-03-08 06:41:48 +0100 | coot | (~coot@213.134.190.95) |
2022-03-08 06:45:39 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-03-08 06:45:47 +0100 | kaph | (~kaph@151.47.91.217) |
2022-03-08 06:46:02 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-03-08 06:49:47 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 06:52:25 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-03-08 06:52:53 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-03-08 06:53:15 +0100 | nattiestnate | (~nate@202.138.250.13) |
2022-03-08 06:59:24 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-03-08 07:01:02 +0100 | nattiestnate | (~nate@202.138.250.13) (Quit: WeeChat 3.4) |
2022-03-08 07:01:12 +0100 | emf_ | (~emf@2620:10d:c090:400::5:8ba5) (Quit: emf_) |
2022-03-08 07:02:43 +0100 | zincy_ | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
2022-03-08 07:02:48 +0100 | kaph_ | (~kaph@151.47.91.217) |
2022-03-08 07:03:33 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 07:03:38 +0100 | kaph | (~kaph@151.47.91.217) (Read error: Connection reset by peer) |
2022-03-08 07:07:21 +0100 | zincy_ | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 256 seconds) |
2022-03-08 07:09:14 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-03-08 07:13:20 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 256 seconds) |
2022-03-08 07:13:26 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-03-08 07:13:45 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-03-08 07:15:26 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) |
2022-03-08 07:19:40 +0100 | kaph__ | (~kaph@151.35.204.82) |
2022-03-08 07:22:25 +0100 | kaph__ | (~kaph@151.35.204.82) (Read error: Connection reset by peer) |
2022-03-08 07:22:29 +0100 | kaph_ | (~kaph@151.47.91.217) (Ping timeout: 272 seconds) |
2022-03-08 07:30:24 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Remote host closed the connection) |
2022-03-08 07:30:42 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 07:32:37 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-03-08 07:35:00 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Remote host closed the connection) |
2022-03-08 07:35:17 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 07:39:07 +0100 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2022-03-08 07:43:55 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Remote host closed the connection) |
2022-03-08 07:44:13 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 07:58:42 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) |
2022-03-08 07:59:11 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-03-08 07:59:34 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) |
2022-03-08 08:00:23 +0100 | res0nat0r08 | (~Fletch@dia.whatbox.ca) |
2022-03-08 08:03:27 +0100 | niekvandepas | (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-03-08 08:06:51 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 08:09:24 +0100 | akurilin_ | (uid322841@id-322841.ilkley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-08 08:17:03 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 08:18:05 +0100 | beka | (~beka@104.193.170.240) (Remote host closed the connection) |
2022-03-08 08:18:33 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-03-08 08:18:43 +0100 | beka | (~beka@104.193.170.240) |
2022-03-08 08:18:46 +0100 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2022-03-08 08:19:24 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-03-08 08:20:45 +0100 | FragByte | (~christian@user/fragbyte) |
2022-03-08 08:21:36 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 08:22:28 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-03-08 08:23:11 +0100 | fendor | (~fendor@178.115.53.79.wireless.dyn.drei.com) |
2022-03-08 08:23:51 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-03-08 08:30:22 +0100 | mbuf | (~Shakthi@122.174.51.86) (Quit: Leaving) |
2022-03-08 08:30:34 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-03-08 08:32:04 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 08:32:59 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 08:41:11 +0100 | alp | (~alp@user/alp) |
2022-03-08 08:44:39 +0100 | x_kuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-03-08 08:47:50 +0100 | michalz | (~michalz@185.246.204.93) |
2022-03-08 08:55:03 +0100 | mncheck | (~mncheck@193.224.205.254) |
2022-03-08 08:56:28 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) (Ping timeout: 256 seconds) |
2022-03-08 09:00:47 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 09:00:48 +0100 | acidjnk | (~acidjnk@p200300d0c7049f27690562e0ba62f824.dip0.t-ipconnect.de) |
2022-03-08 09:02:44 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) |
2022-03-08 09:03:39 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-03-08 09:18:27 +0100 | jespada | (~jespada@85.255.234.169) |
2022-03-08 09:19:57 +0100 | mncheck | (~mncheck@193.224.205.254) (Quit: Leaving) |
2022-03-08 09:20:40 +0100 | mncheck | (~mncheck@193.224.205.254) |
2022-03-08 09:25:15 +0100 | drdo | (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
2022-03-08 09:25:28 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2022-03-08 09:29:43 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:3240:c699:b7eb:e5b0) |
2022-03-08 09:30:25 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-03-08 09:31:35 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:8cff:8f3a:46d8:f6ed) (Remote host closed the connection) |
2022-03-08 09:34:28 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-03-08 09:35:12 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 09:35:52 +0100 | lumberjack123 | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-03-08 09:36:09 +0100 | lumberjack123 | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-03-08 09:36:24 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 09:37:23 +0100 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-03-08 09:45:28 +0100 | pranshukhandal | (pranshukha@envs.net) (Quit: the lounge - https://webirc.envs.net) |
2022-03-08 09:45:28 +0100 | sus | (zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net) |
2022-03-08 09:46:03 +0100 | Topsi | (~Tobias@dyndsl-095-033-088-239.ewe-ip-backbone.de) |
2022-03-08 09:48:06 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-03-08 09:48:23 +0100 | sus | (zero@user/zeromomentum) |
2022-03-08 09:48:24 +0100 | pranshukhandal | (~ghost@envs.net) |
2022-03-08 09:49:38 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 09:50:17 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) |
2022-03-08 09:53:58 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 09:58:01 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-03-08 10:00:06 +0100 | kadoban | (~kadoban@user/kadoban) (Quit: You have been kicked for being idle) |
2022-03-08 10:00:31 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 10:00:33 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-03-08 10:01:00 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-03-08 10:03:28 +0100 | krappix | (~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) |
2022-03-08 10:06:07 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-03-08 10:09:35 +0100 | ptrcmd | (~ptrcmd@user/ptrcmd) (Remote host closed the connection) |
2022-03-08 10:11:05 +0100 | ptrcmd | (~ptrcmd@user/ptrcmd) |
2022-03-08 10:11:34 +0100 | ccntrq | (~Thunderbi@2a01:c22:9102:c100:80c3:8f62:e3ae:6455) |
2022-03-08 10:12:47 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:598a:8b0b:9405:6e26) |
2022-03-08 10:18:10 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-03-08 10:19:11 +0100 | ishutin | (~ishutin@92-249-193-65.pool.digikabel.hu) (Ping timeout: 272 seconds) |
2022-03-08 10:20:14 +0100 | ishutin | (~ishutin@87-97-30-219.pool.digikabel.hu) |
2022-03-08 10:21:28 +0100 | kuribas | (~user@ptr-25vy0i8r77cynr1cb5v.18120a2.ip6.access.telenet.be) |
2022-03-08 10:21:32 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 10:22:11 +0100 | <kuribas> | Does correctness and simplicity even go together? |
2022-03-08 10:22:54 +0100 | <kuribas> | I have been looking to solve this problem: in lisp (clojure) we can put a specification in data, then create the functionality by interpreting the data (for example a specification of an API). |
2022-03-08 10:22:58 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 10:23:23 +0100 | <kuribas> | Doing this in haskell is easy. The problem is proving consistency. |
2022-03-08 10:23:53 +0100 | <kuribas> | You'll end up with something like servant, which is hardly simple... |
2022-03-08 10:24:23 +0100 | <kuribas> | Or you need to use GADTs to have stronger consistency garantees. |
2022-03-08 10:24:36 +0100 | <kuribas> | And hashmaps are easy to work with in clojure, records in haskell aren't very flexible. |
2022-03-08 10:26:51 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) |
2022-03-08 10:27:05 +0100 | <kuribas> | The thing is, doing these things is all possible, but doing it with "simple" haskell seems nearly impossible. |
2022-03-08 10:31:50 +0100 | <kuribas> | Or maybe better to not "prove" consistency, but write a lot of tests? |
2022-03-08 10:32:31 +0100 | <kuribas> | probably "not consistent haskell" is still better than clojure. |
2022-03-08 10:33:30 +0100 | jespada | (~jespada@85.255.234.169) (Ping timeout: 268 seconds) |
2022-03-08 10:38:13 +0100 | <kuribas> | I found two solutions: higher kinded records, manipulating them using generic "magic". |
2022-03-08 10:38:34 +0100 | <kuribas> | Or going to idris, where types can be data, and data can be types. That makes manipulating types much easier. |
2022-03-08 10:42:57 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) (Remote host closed the connection) |
2022-03-08 10:43:46 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-08 10:44:07 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-03-08 10:45:25 +0100 | <romesrf> | good morning |
2022-03-08 10:47:04 +0100 | cosimone | (~user@93-47-229-38.ip115.fastwebnet.it) |
2022-03-08 10:47:13 +0100 | krappix | (~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Ping timeout: 256 seconds) |
2022-03-08 10:47:24 +0100 | <kuribas> | morning |
2022-03-08 10:48:32 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-03-08 10:48:39 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 10:51:40 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) |
2022-03-08 10:52:46 +0100 | jespada | (~jespada@148.252.132.235) |
2022-03-08 10:53:42 +0100 | ehammarstrom_ | (~ehammarst@62-20-203-39-no182.tbcn.telia.com) |
2022-03-08 10:53:47 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-03-08 10:54:01 +0100 | ehammarstrom | (~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 256 seconds) |
2022-03-08 10:54:03 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-03-08 10:56:57 +0100 | alt-romes | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-03-08 10:58:27 +0100 | kaph | (~kaph@151.37.169.201) |
2022-03-08 10:59:38 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 252 seconds) |
2022-03-08 11:00:01 +0100 | agumonkey | (~user@88.163.231.79) |
2022-03-08 11:01:24 +0100 | mncheck | (~mncheck@193.224.205.254) (Remote host closed the connection) |
2022-03-08 11:03:57 +0100 | phma | (phma@2001:5b0:210b:8f48:791b:849d:7db1:84dd) |
2022-03-08 11:05:07 +0100 | kaph | (~kaph@151.37.169.201) (Ping timeout: 256 seconds) |
2022-03-08 11:05:44 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 11:10:44 +0100 | mncheck | (~mncheck@193.224.205.254) |
2022-03-08 11:13:15 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 11:14:37 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-08 11:14:41 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) |
2022-03-08 11:16:13 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) (Client Quit) |
2022-03-08 11:16:45 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) |
2022-03-08 11:18:25 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2022-03-08 11:20:24 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-03-08 11:25:11 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 11:26:11 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 245 seconds) |
2022-03-08 11:27:10 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-08 11:30:27 +0100 | __monty__ | (~toonn@user/toonn) |
2022-03-08 11:30:51 +0100 | jespada | (~jespada@148.252.132.235) (Ping timeout: 268 seconds) |
2022-03-08 11:32:55 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-03-08 11:33:02 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) |
2022-03-08 11:34:19 +0100 | jespada | (~jespada@148.252.132.235) |
2022-03-08 11:36:28 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 11:36:50 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Ping timeout: 256 seconds) |
2022-03-08 11:41:22 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-03-08 11:43:21 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) |
2022-03-08 11:44:49 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 11:47:24 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) (Ping timeout: 240 seconds) |
2022-03-08 11:51:01 +0100 | agumonkey | (~user@88.163.231.79) (Ping timeout: 256 seconds) |
2022-03-08 11:52:56 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 11:55:56 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:598a:8b0b:9405:6e26) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 11:56:34 +0100 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-03-08 11:57:24 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:598a:8b0b:9405:6e26) |
2022-03-08 11:57:28 +0100 | rembo10 | (~rembo10@main.remulis.com) |
2022-03-08 11:57:30 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 11:58:51 +0100 | worldhelloworld1 | (uid543174@id-543174.helmsley.irccloud.com) |
2022-03-08 11:58:53 +0100 | alt-romes | (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
2022-03-08 11:59:12 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-03-08 11:59:36 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) (Quit: Leaving) |
2022-03-08 11:59:50 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) |
2022-03-08 12:01:56 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds) |
2022-03-08 12:01:56 +0100 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
2022-03-08 12:04:30 +0100 | dsamperi | (~dsamperi@2603-7000-3b42-5400-bdd9-2653-5498-c104.res6.spectrum.com) |
2022-03-08 12:05:13 +0100 | dsamperi | (~dsamperi@2603-7000-3b42-5400-bdd9-2653-5498-c104.res6.spectrum.com) (Client Quit) |
2022-03-08 12:06:51 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) (Ping timeout: 272 seconds) |
2022-03-08 12:08:35 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-03-08 12:10:28 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-03-08 12:10:32 +0100 | srk | (~sorki@user/srk) |
2022-03-08 12:10:42 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 12:12:57 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 12:13:56 +0100 | yauhsien | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-08 12:14:45 +0100 | <tomsmeding_> | kuribas: proving correctness is always hard |
2022-03-08 12:14:50 +0100 | tomsmeding_ | tomsmeding |
2022-03-08 12:15:06 +0100 | <tomsmeding> | or at least, nobody has found a way yet to easily prove correctness of nontrivial programs |
2022-03-08 12:15:26 +0100 | <kuribas> | perhaps correctness is a vague name |
2022-03-08 12:15:33 +0100 | <kuribas> | I prefer "consistency". |
2022-03-08 12:15:43 +0100 | <tomsmeding> | s/correctness/any nontrivial behavioural property/ |
2022-03-08 12:15:58 +0100 | <kuribas> | As in, I have a (API) specification, and I want to ensure the program implements this specification. |
2022-03-08 12:16:05 +0100 | <tomsmeding> | same thing |
2022-03-08 12:16:23 +0100 | <kuribas> | Or a database schema, and the SQL is correct WRT to that schema. |
2022-03-08 12:16:38 +0100 | <tomsmeding> | that is easier, because sql is a more limited language than haskell |
2022-03-08 12:17:20 +0100 | <kuribas> | It's subtly different, because I don't prove the program implements the business logic correctly. |
2022-03-08 12:17:26 +0100 | <kuribas> | I just prove it is consisten with itself. |
2022-03-08 12:17:32 +0100 | <kuribas> | Though possible wrong. |
2022-03-08 12:17:52 +0100 | fendor_ | (~fendor@178.165.181.170.wireless.dyn.drei.com) |
2022-03-08 12:17:56 +0100 | <tomsmeding> | it's still a nontrivial property about the behaviour of the program |
2022-03-08 12:18:04 +0100 | <kuribas> | yeah |
2022-03-08 12:18:19 +0100 | <tomsmeding> | "In computability theory, Rice's theorem states that all non-trivial semantic properties of programs are undecidable." |
2022-03-08 12:18:38 +0100 | <tomsmeding> | it's hard, and humans have the impressive ability to write proofs for some of those properties |
2022-03-08 12:18:43 +0100 | <tomsmeding> | but we haven't found a way yet to make that much easier |
2022-03-08 12:18:55 +0100 | <kuribas> | Still, is it so hard to prove, this server implements this API specification? |
2022-03-08 12:19:04 +0100 | <kuribas> | servant does it, but clumsily. |
2022-03-08 12:19:20 +0100 | <tomsmeding> | in general, yes; if your program has specific structure that you can exploit (e.g. in the types), then that helps |
2022-03-08 12:19:55 +0100 | <tomsmeding> | in particular, with a strong enough type system, you can encode the proof in the types, so that any total program that has that type does the right thing |
2022-03-08 12:20:15 +0100 | <tomsmeding> | which is a fairly extreme case of "if your program has specific structure, it's easier" |
2022-03-08 12:20:28 +0100 | fendor | (~fendor@178.115.53.79.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
2022-03-08 12:20:34 +0100 | <tomsmeding> | PL people very much like the approach, but it's not the only approach |
2022-03-08 12:20:58 +0100 | <kuribas> | What I like to aim for is not "correct" business logic, but transparent and consistent business logic. |
2022-03-08 12:21:24 +0100 | <kuribas> | In a sense that what business logic the program implements is easy to see from the code. |
2022-03-08 12:21:29 +0100 | <tomsmeding> | you also have stuff like Why3, where you (write the program in their dialect of ocaml and) annotate pre- and post-conditions and loop invariants, and it tries to use an SMT solver to prove stuff |
2022-03-08 12:21:31 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-03-08 12:21:50 +0100 | <tomsmeding> | true, maybe "correct" is a too-loaded term for this |
2022-03-08 12:22:02 +0100 | <tomsmeding> | but for me, what you say falls into the same bucket |
2022-03-08 12:22:15 +0100 | <kuribas> | Right, but that's "after the fact" proving. |
2022-03-08 12:22:24 +0100 | <tomsmeding> | whether the specification is external, or if it's another part of your program, same thing |
2022-03-08 12:22:24 +0100 | <kuribas> | You write some code or algorithm, then you prove it correct. |
2022-03-08 12:22:28 +0100 | <tomsmeding> | yes |
2022-03-08 12:22:42 +0100 | <kuribas> | It seems easier to make something correct by construction. |
2022-03-08 12:22:46 +0100 | <tomsmeding> | as distinct from the dependent-types encode-the-proof-in-the-type-system approach |
2022-03-08 12:24:09 +0100 | <kuribas> | Technically haskell is a subset of dependent-types. |
2022-03-08 12:24:12 +0100 | <tomsmeding> | my point is, your observation that it's hard is not surprising :p |
2022-03-08 12:24:12 +0100 | <tomsmeding> | yes |
2022-03-08 12:24:13 +0100 | <Hecate> | hohai |
2022-03-08 12:24:42 +0100 | <kuribas> | "Integer" is just a proposition that the value behaves like a mathematical integer |
2022-03-08 12:24:56 +0100 | <tomsmeding> | Hecate: hi :) |
2022-03-08 12:26:03 +0100 | aeka | (~aeka@pool-100-4-208-71.albyny.fios.verizon.net) |
2022-03-08 12:26:10 +0100 | <kuribas> | And the HM inference engine just proofs that it does. |
2022-03-08 12:26:26 +0100 | <kuribas> | tomsmeding: yeah, I guess it's non-trivial. |
2022-03-08 12:26:30 +0100 | <Hecate> | are we on the propositions as types / programs as proof discussion? |
2022-03-08 12:26:36 +0100 | <Hecate> | tomsmeding: hello you :) |
2022-03-08 12:26:51 +0100 | <kuribas> | tomsmeding: it's just, clojure doesn't feel very satisfying, though there good ideas in there. |
2022-03-08 12:27:51 +0100 | <tomsmeding> | Hecate: this started the discussion https://ircbrowse.tomsmeding.com/day/lchaskell/today?id=463224#trid463224 |
2022-03-08 12:28:02 +0100 | <Hecate> | > Does correctness and simplicity even go together? |
2022-03-08 12:28:04 +0100 | <lambdabot> | <hint>:1:50: error: |
2022-03-08 12:28:04 +0100 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2022-03-08 12:28:05 +0100 | <Hecate> | oh oh oh |
2022-03-08 12:28:07 +0100 | <Hecate> | good question |
2022-03-08 12:28:10 +0100 | <Hecate> | I have a short answer |
2022-03-08 12:28:13 +0100 | <Hecate> | no and yes |
2022-03-08 12:28:38 +0100 | <Hecate> | no: Being correct implies that you need to forgo a simplistic world view and take care of the sharp edges of your model |
2022-03-08 12:29:05 +0100 | <Hecate> | yes: Having correct foundations mean that you have to do less work in your program to maintain correctness |
2022-03-08 12:29:27 +0100 | <Hecate> | also read: Complexity has to live somewhere: https://ferd.ca/complexity-has-to-live-somewhere.html |
2022-03-08 12:29:47 +0100 | Rembane | builds house for complexity |
2022-03-08 12:30:18 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 260 seconds) |
2022-03-08 12:30:39 +0100 | <Hecate> | following this aphorism, we can indeed state that correctness is complex to nail, but having it live in your compiler rather than as an external library or, worse, to be manually verified by the user, makes thing simpler for downstream users |
2022-03-08 12:31:09 +0100 | <Hecate> | now if you truly want a yes XOR no answer, you need to ask the question of costs and benefits |
2022-03-08 12:31:27 +0100 | <Hecate> | at which scale of users is it more economic to have correctness upstreamed? |
2022-03-08 12:31:45 +0100 | <Hecate> | if you're five cave dwellers using a lisp interpreter written in Forth, maybe not |
2022-03-08 12:32:07 +0100 | <Hecate> | if you're 200k people around the globe and your language promotes correctness of thinking and implementation, then yeah sure |
2022-03-08 12:32:51 +0100 | <Hecate> | any question? :p |
2022-03-08 12:33:28 +0100 | <maerwald> | I never had the impression that Haskell promotes correctness. Correctness is usually something rather low-level that only in a few domains coincides with the type system. |
2022-03-08 12:33:58 +0100 | <maerwald> | So not only is "simplicity" underspecified, but so is "correctness" |
2022-03-08 12:34:41 +0100 | <maerwald> | what promotes correctness is usually the compiler, not the language, or the base libraries |
2022-03-08 12:34:41 +0100 | <Hecate> | maerwald: on my side, I'd say that the expressivity of Haskell and some of its type-level feature enable you to achieve more correctness when representing a business domain |
2022-03-08 12:35:06 +0100 | <Hecate> | for example, the ability to have Word16 for port numbers instead of Integer |
2022-03-08 12:35:06 +0100 | <Hecate> | :) |
2022-03-08 12:35:20 +0100 | <Franciman> | Hecate: maybe you can subsume your no, yes answer by talking about correctness with respect to a model |
2022-03-08 12:35:28 +0100 | <maerwald> | Hecate: expressivity introduces complexity, too |
2022-03-08 12:35:43 +0100 | <Franciman> | now if the model is to be accurate of reality, then it is going to probably be very wild and hard |
2022-03-08 12:36:02 +0100 | <Hecate> | Franciman: ah well, the best questions attract the best answers, and general questions usually attract "it depends" as an answer :) |
2022-03-08 12:36:04 +0100 | <maerwald> | so the most correct way to build something is usually not a turing complete language |
2022-03-08 12:36:11 +0100 | <maerwald> | but the *most* restrictive way |
2022-03-08 12:36:17 +0100 | <Hecate> | maerwald: everything introduces complexity, see https://ferd.ca/complexity-has-to-live-somewhere.html |
2022-03-08 12:36:32 +0100 | <Hecate> | I don't think this is a valid deterrent :p |
2022-03-08 12:36:52 +0100 | <maerwald> | the more you constrain expressivity, the less ways of expressing the wrong thing you have |
2022-03-08 12:37:15 +0100 | <Hecate> | but then you deport complexity elsewhere, downstream |
2022-03-08 12:37:19 +0100 | <maerwald> | but that means you want your primitives to express something meaningful, but not have many of those primitives |
2022-03-08 12:37:31 +0100 | <maerwald> | so you could say horizontal vs vertical complexity |
2022-03-08 12:37:37 +0100 | <c_wraith> | the solution must be as complex as the problem, yes. But that puts a lower bound on complexity that little software approaches. |
2022-03-08 12:37:48 +0100 | <Hecate> | that's why I don't like the argument of building "simple", "minimal" language. It just means a tonne of boilerplate downstream while the compiler authors are wanking over their LoC count |
2022-03-08 12:37:59 +0100 | <c_wraith> | Most software has a lot of complexity it doesn't need to |
2022-03-08 12:38:37 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) |
2022-03-08 12:38:50 +0100 | <maerwald> | There are only two ways to build correct systems: 1. DSL that carry proofs, 2. everything else with manual proofs |
2022-03-08 12:39:05 +0100 | <maerwald> | both things exist |
2022-03-08 12:39:27 +0100 | <maerwald> | and Haskell is only used in the first and to a lesser degree |
2022-03-08 12:40:54 +0100 | <Hecate> | yeah I'm not saying Haskell produces correct programs by construction |
2022-03-08 12:41:01 +0100 | <Hecate> | it's not a prover |
2022-03-08 12:41:03 +0100 | <Hecate> | but it help |
2022-03-08 12:41:04 +0100 | yauhsien | (~Yau-Hsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 12:41:05 +0100 | <Hecate> | *helps |
2022-03-08 12:41:09 +0100 | <kuribas> | maerwald: correctness automatically implies less "wiggle room". |
2022-03-08 12:41:19 +0100 | <kuribas> | I guess that's why a lot of people don't like it. |
2022-03-08 12:41:55 +0100 | <maerwald> | Hecate: depends on the domain |
2022-03-08 12:42:04 +0100 | <kuribas> | It gives you the feeling you have less flexibility. |
2022-03-08 12:42:14 +0100 | <kuribas> | But I think the flexibility is just different, not less. |
2022-03-08 12:42:21 +0100 | <maerwald> | I have more confidence in rust, when doing low-level stuff with posix APIs |
2022-03-08 12:42:54 +0100 | <maerwald> | but rust is so verbose, my fingers hurt afterwards |
2022-03-08 12:44:13 +0100 | vglfr | (~vglfr@88.155.96.35) (Ping timeout: 272 seconds) |
2022-03-08 12:44:18 +0100 | <maerwald> | Haskell is just more pleasure to code |
2022-03-08 12:44:28 +0100 | <maerwald> | and pleasure is more important than correctness to me |
2022-03-08 12:44:52 +0100 | <maerwald> | pleasure also affects productivity |
2022-03-08 12:45:16 +0100 | lumberjack123 | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-03-08 12:45:48 +0100 | <tomsmeding> | maerwald: s/correctness/proven correctness/ ? |
2022-03-08 12:47:14 +0100 | <maerwald> | tomsmeding: hmm... |
2022-03-08 12:47:22 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
2022-03-08 12:47:39 +0100 | <maerwald> | I mean, typescripts type system isn't really *correct*, yet it's pleasure (unless you hit those few corner cases) |
2022-03-08 12:49:10 +0100 | glguy | (x@libera/staff/glguy) (Read error: Connection reset by peer) |
2022-03-08 12:49:13 +0100 | <maerwald> | I rarely need proven correctness |
2022-03-08 12:49:29 +0100 | glguy | (x@libera/staff/glguy) |
2022-03-08 12:50:31 +0100 | <tomsmeding> | isn't typescript's type system more like "as long as you don't do x,y,z dumb thing, it's type-safe"? |
2022-03-08 12:50:36 +0100 | <maerwald> | yeah |
2022-03-08 12:50:48 +0100 | <maerwald> | which is fine most of the time |
2022-03-08 12:50:49 +0100 | <tomsmeding> | it's a partial correctness proof then |
2022-03-08 12:50:50 +0100 | <tomsmeding> | yeah |
2022-03-08 12:51:17 +0100 | <tomsmeding> | as long as you don't use unsafeCoerce and friends, Haskell is also pretty strong |
2022-03-08 12:51:58 +0100 | <tomsmeding> | the existence of ways to still make bugs doesn't make measures to prevent lots of bugs bad |
2022-03-08 12:52:42 +0100 | <maerwald> | I'm not satisfied with IO stuff in Haskell. It's either naive (most of base), has odd custom abstractions (process package) or incomplete bindings (unix package) |
2022-03-08 12:53:20 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-08 12:54:14 +0100 | <maerwald> | other languages have more thoughtful stdlibs |
2022-03-08 12:54:49 +0100 | <maerwald> | that's the "correctness" I care about |
2022-03-08 12:55:20 +0100 | <tomsmeding> | because your non-IO code is clear enough that you don't need any extra assurance? |
2022-03-08 12:55:35 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 12:57:59 +0100 | <maerwald> | IO is the hardest |
2022-03-08 12:58:06 +0100 | <tomsmeding> | in your application domain |
2022-03-08 12:58:21 +0100 | <maerwald> | I've not yet seen a domain where it isn't |
2022-03-08 12:58:26 +0100 | <tomsmeding> | compilers? |
2022-03-08 12:58:34 +0100 | <tomsmeding> | I know, unimaginative example |
2022-03-08 12:59:02 +0100 | <tomsmeding> | a compiler doesn't do a lot of interesting IO, barring TH handling in GHC I guess |
2022-03-08 12:59:47 +0100 | <maerwald> | tomsmeding: What happens when you compile a file? |
2022-03-08 13:00:07 +0100 | <tomsmeding> | you read the file, read some more files, and write an output file |
2022-03-08 13:00:08 +0100 | <maerwald> | first you read it, then you produce artifacts, what if you ctrl+c during that... will the object file be deleted? |
2022-03-08 13:00:10 +0100 | <maerwald> | etc. etc. |
2022-03-08 13:00:25 +0100 | <maerwald> | you see this happening with cabal breaking it's dist-newstyle/ dir |
2022-03-08 13:00:42 +0100 | <tomsmeding> | true, there is more stuff than a simple programmer would see at first glance |
2022-03-08 13:01:00 +0100 | <tomsmeding> | but I think it's less complex than ghc's simplification engine |
2022-03-08 13:01:40 +0100 | <tomsmeding> | and producing broken compilation artifacts if someone ^C's the compilation is annoying, but not as destructive as quiet miscompilation |
2022-03-08 13:05:23 +0100 | <tomsmeding> | (but of course, I'm biased) |
2022-03-08 13:05:57 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2022-03-08 13:06:23 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2022-03-08 13:06:23 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2022-03-08 13:06:23 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2022-03-08 13:07:48 +0100 | int-e | (~noone@int-e.eu) (Remote host closed the connection) |
2022-03-08 13:08:28 +0100 | <maerwald> | the RTS is all IO, allocation, primops, ... |
2022-03-08 13:09:15 +0100 | int-e | (~noone@int-e.eu) |
2022-03-08 13:13:15 +0100 | <tomsmeding> | also true, so there's both |
2022-03-08 13:13:21 +0100 | jinsun__ | (~jinsun@user/jinsun) (Ping timeout: 272 seconds) |
2022-03-08 13:13:49 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-03-08 13:13:59 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 13:16:00 +0100 | <maerwald> | another example... if you look at the ouroboros consensus protocol of cardano, it's all very heavy type level Haskell code. But what's really difficult is that all this blockchain foo is distributed IO actions |
2022-03-08 13:16:27 +0100 | <maerwald> | and very few people can reason about it |
2022-03-08 13:21:21 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-08 13:21:36 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 13:23:03 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 13:25:54 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) (Ping timeout: 256 seconds) |
2022-03-08 13:25:54 +0100 | jespada | (~jespada@148.252.132.235) (Read error: Connection reset by peer) |
2022-03-08 13:27:13 +0100 | LiaoTao_ | (~LiaoTao@gateway/tor-sasl/liaotao) |
2022-03-08 13:27:29 +0100 | agumonkey | (~user@88.163.231.79) |
2022-03-08 13:27:36 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 240 seconds) |
2022-03-08 13:33:00 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-08 13:33:59 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 13:34:40 +0100 | thevishy | (~Nishant@49.37.242.151) |
2022-03-08 13:38:35 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) |
2022-03-08 13:45:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) |
2022-03-08 13:47:59 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-03-08 13:49:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) (Ping timeout: 240 seconds) |
2022-03-08 13:50:00 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-08 13:50:20 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 13:52:36 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-03-08 13:55:35 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-03-08 13:56:27 +0100 | Kaipi | (~Kaiepi@156.34.47.253) (Remote host closed the connection) |
2022-03-08 13:59:23 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) |
2022-03-08 13:59:29 +0100 | Kaipi | (~Kaiepi@156.34.47.253) |
2022-03-08 13:59:46 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-03-08 14:02:25 +0100 | Inst | (~Liam@2601:6c4:4080:3f80:112d:add3:9747:500f) |
2022-03-08 14:05:25 +0100 | anon04088520 | (~anon04088@host-92-19-98-150.as13285.net) () |
2022-03-08 14:06:00 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-03-08 14:09:13 +0100 | <ProfSimm> | FP is flawed because immutability of a piece of state or code is an assumption that's always wrong in the long term. |
2022-03-08 14:10:21 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 272 seconds) |
2022-03-08 14:12:11 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-08 14:14:00 +0100 | <hpc> | that's like saying types are flawed because in the long term everything's a string |
2022-03-08 14:14:49 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 14:14:54 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-03-08 14:15:16 +0100 | jinsun | (~jinsun@user/jinsun) |
2022-03-08 14:15:28 +0100 | <ProfSimm> | hpc: yes. Except I wouldn't say string. |
2022-03-08 14:15:47 +0100 | <ProfSimm> | hpc: in the long term everything's an actor. |
2022-03-08 14:16:23 +0100 | <hpc> | and all the world's a staging environment? :D |
2022-03-08 14:17:48 +0100 | <maerwald> | everything's an actor suspiciously sounds like Java |
2022-03-08 14:18:12 +0100 | <hpc> | actors are more a smalltalk thing |
2022-03-08 14:18:18 +0100 | <hpc> | in java everything's a bean |
2022-03-08 14:18:23 +0100 | <hpc> | and in erlang everything's a process |
2022-03-08 14:19:34 +0100 | gnyeki | (~gnyeki@user/gnyeki) (Quit: leaving) |
2022-03-08 14:20:28 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-03-08 14:20:42 +0100 | <ProfSimm> | hpc: I'd say Erlang's the most apt implementation of actors we have so far. |
2022-03-08 14:20:50 +0100 | <ProfSimm> | Process = actor. |
2022-03-08 14:21:05 +0100 | <hpc> | probably yeah |
2022-03-08 14:21:16 +0100 | <ProfSimm> | That said Erlang processes are internally functional |
2022-03-08 14:21:28 +0100 | <ProfSimm> | But they're small so it's kinda manageable |
2022-03-08 14:22:45 +0100 | gnyeki | (~gnyeki@user/gnyeki) |
2022-03-08 14:23:00 +0100 | <ProfSimm> | Something I don't understand |
2022-03-08 14:23:10 +0100 | <ProfSimm> | Functional programming often uses CSP in compilers |
2022-03-08 14:23:19 +0100 | <ProfSimm> | But how does functional reduction work in CPS |
2022-03-08 14:23:23 +0100 | <ProfSimm> | CPS sorry not CSP |
2022-03-08 14:23:42 +0100 | <ProfSimm> | If CPS is all about calling things, what are we "reducing" |
2022-03-08 14:24:44 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) |
2022-03-08 14:26:50 +0100 | <kuribas> | ProfSimm: you change the state, but don't mutate it. |
2022-03-08 14:27:07 +0100 | <kuribas> | ProfSimm: you just update it. |
2022-03-08 14:27:15 +0100 | <kuribas> | ProfSimm: it's the same result, but without mutation. |
2022-03-08 14:31:26 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2022-03-08 14:34:02 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-03-08 14:35:47 +0100 | chenqisu1 | (~chenqisu1@183.217.201.47) (Ping timeout: 252 seconds) |
2022-03-08 14:35:56 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-03-08 14:36:16 +0100 | boborygmy | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-03-08 14:37:34 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
2022-03-08 14:37:45 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 14:38:11 +0100 | <ProfSimm> | kuribas: change and mutate mean the same thing |
2022-03-08 14:38:36 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-08 14:41:18 +0100 | <kuribas> | ProfSimm: change by replacing it. |
2022-03-08 14:41:31 +0100 | <kuribas> | Using a state monad or IORef. |
2022-03-08 14:41:36 +0100 | <kuribas> | But you don't mutate the contents. |
2022-03-08 14:41:52 +0100 | <kuribas> | It actually make concurrency much easier. |
2022-03-08 14:42:43 +0100 | acidjnk | (~acidjnk@p200300d0c7049f27690562e0ba62f824.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-03-08 14:42:59 +0100 | jespada | (~jespada@148.252.132.235) |
2022-03-08 14:44:50 +0100 | <ProfSimm> | kuribas: replacing it implies you're taking something from a place, and putting something else in its place |
2022-03-08 14:44:55 +0100 | <ProfSimm> | kuribas: you mutated the place |
2022-03-08 14:45:34 +0100 | <kuribas> | For IORef yes. |
2022-03-08 14:45:38 +0100 | <kuribas> | For State, no. |
2022-03-08 14:45:54 +0100 | <kuribas> | The effect is the same though. |
2022-03-08 14:46:31 +0100 | <kuribas> | Especially in a concurrent setting, not mutating the content is an important distinction. |
2022-03-08 14:47:05 +0100 | <ProfSimm> | kuribas: creating a copy with a change is not the same as changing. |
2022-03-08 14:47:23 +0100 | <ProfSimm> | kuribas: also in concurrent setting you can still mutate, just use linear types |
2022-03-08 14:47:39 +0100 | <kuribas> | linear types are overrated. |
2022-03-08 14:47:41 +0100 | <ProfSimm> | kuribas: the abstractions Haskell provides is a bit like a way to avoid implementing linear types |
2022-03-08 14:48:01 +0100 | <kuribas> | at least when I tried them in idris. |
2022-03-08 14:48:40 +0100 | <ProfSimm> | kuribas: are they. a linear typeis mutable. If you have a continuous block of memory of 2MB and you want one byte changed in it, you just change it. How you do that in Haskell |
2022-03-08 14:49:05 +0100 | <kuribas> | you don't. |
2022-03-08 14:49:11 +0100 | <ProfSimm> | Great |
2022-03-08 14:49:29 +0100 | <ProfSimm> | Well in that case linear types are not overrated :) |
2022-03-08 14:49:42 +0100 | <kuribas> | Or use a vector with ST. |
2022-03-08 14:49:51 +0100 | <kuribas> | Or whatever suits the problem. |
2022-03-08 14:49:54 +0100 | <ProfSimm> | Doesn't match the requirements |
2022-03-08 14:50:06 +0100 | <ProfSimm> | Rust uses linear types, and it's both concurrently safe, and can write kernel code. |
2022-03-08 14:50:11 +0100 | <kuribas> | I don't know your requirements. |
2022-03-08 14:50:25 +0100 | <ProfSimm> | kuribas: well it was: block of 2MB memory, change a byte |
2022-03-08 14:50:35 +0100 | <kuribas> | I know that on a SSD, changing one byte will copy 4MBs of data. |
2022-03-08 14:50:53 +0100 | <ProfSimm> | I think you mean 4k |
2022-03-08 14:50:55 +0100 | <kuribas> | ProfSimm: that's an impementation detail, not a requirement. |
2022-03-08 14:51:00 +0100 | <merijn> | I mean, you just use "Ptr Word8" and IO |
2022-03-08 14:51:02 +0100 | <ProfSimm> | That's because storage devices are block devices |
2022-03-08 14:51:05 +0100 | <kuribas> | right, 4k. |
2022-03-08 14:51:41 +0100 | <merijn> | ProfSimm: I mean, you can literally just use the same approach as C and allocate a pointer to 2MB of bytes and update any arbitrary byte |
2022-03-08 14:51:45 +0100 | <kuribas> | ProfSimm: change one byte in 2MB of memory is not a requirement, it's one possible solution for some problems. |
2022-03-08 14:51:54 +0100 | <ProfSimm> | kuribas: however SSD doesn't map its contents linearly, it's about locality |
2022-03-08 14:52:29 +0100 | <kuribas> | So first, I'd like to know what problem you need to solve. And as merijn says, if needed you can just use IO. |
2022-03-08 14:52:33 +0100 | <ProfSimm> | kuribas: the problem is locality in general |
2022-03-08 14:53:01 +0100 | <ProfSimm> | Replacing Earth when you have to turn on the light is not pragmatic. Even if you reuse most parts |
2022-03-08 14:53:33 +0100 | <kuribas> | I'd say, the problem in general if making programs which are easy to reason about, easy to maintain, etc... |
2022-03-08 14:54:02 +0100 | <ProfSimm> | Working with Lenses is not easy to reason about. |
2022-03-08 14:54:05 +0100 | <kuribas> | So if you need to optimize for performance, I'd first look for architectural and algorithmic changes. |
2022-03-08 14:54:36 +0100 | <kuribas> | Optimizing cache locality is onely a late change. |
2022-03-08 14:55:09 +0100 | <kuribas> | However, speaking generally. For some problems (matrix operations, linear algebra) it could be important. |
2022-03-08 14:55:25 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 256 seconds) |
2022-03-08 14:56:57 +0100 | <kuribas> | ProfSimm: I'd go for immutability by default, only if it is really not possible, use mutation. |
2022-03-08 14:57:07 +0100 | xff0x | (~xff0x@dslb-094-222-029-254.094.222.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2022-03-08 14:57:47 +0100 | <kuribas> | Just responding to your "FP is flawed" argument, I don't mean immutable works for every problem. |
2022-03-08 14:57:54 +0100 | <ProfSimm> | kuribas: sure |
2022-03-08 14:58:08 +0100 | <kuribas> | But often we make immutable abstractions which actually mutate "under the hood", like bytestrings. |
2022-03-08 14:58:13 +0100 | <kuribas> | or bytestring builders. |
2022-03-08 14:58:30 +0100 | <kuribas> | You use them as if they are immutable, but under the hood they just fill buffers mutably. |
2022-03-08 14:58:33 +0100 | <ProfSimm> | kuribas: I think immutability is a "local assumption" that's wrong in a wider scale. So a language should basically allow this recursive approach to immutability. |
2022-03-08 14:59:28 +0100 | <ProfSimm> | kuribas: i.e. "in this moment right now, x y z are immutable" then you get out of this context, they're linear and mutable, but a b c are immutable. You get out in a wider context, a b c are linear and mutable. |
2022-03-08 14:59:36 +0100 | <ProfSimm> | kuribas: so you can kinda work at the right level |
2022-03-08 15:00:18 +0100 | <ProfSimm> | Haskell implements half of that |
2022-03-08 15:00:29 +0100 | <ProfSimm> | Hides the other half in the runtime, and IO and what not |
2022-03-08 15:00:40 +0100 | <ProfSimm> | If it make it explicit, I think it'd be even more powerful |
2022-03-08 15:01:39 +0100 | <kuribas> | I don't know, I have yet to see the advantage of linear types. But I heared they work well in rust, which is on my list of languages to learn :) |
2022-03-08 15:01:56 +0100 | <kuribas> | I guess affine types they are called? |
2022-03-08 15:02:56 +0100 | off^ | (~off@50.232.121.75) |
2022-03-08 15:02:59 +0100 | <kuribas> | however rust is not haskell, haskell is not rust |
2022-03-08 15:03:10 +0100 | kadoban | (~kadoban@user/kadoban) |
2022-03-08 15:03:21 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 15:03:28 +0100 | <ProfSimm> | kuribas: yes affine means used at most once, linear exactly once. But it's the same idea. |
2022-03-08 15:03:54 +0100 | <ProfSimm> | kuribas: in Rust you can make a single mutable borrow, OR multiple immutable borrows. The latter half is kinda like Haskell |
2022-03-08 15:04:00 +0100 | ystael | (~ystael@user/ystael) |
2022-03-08 15:04:14 +0100 | <ProfSimm> | kuribas: but if you get back your immutable borrows, now you can mutate the thing, before you reshare it immutably. |
2022-03-08 15:04:23 +0100 | <ProfSimm> | kuribas: it's kinda like State/IO if you squint |
2022-03-08 15:04:25 +0100 | <kuribas> | right |
2022-03-08 15:04:26 +0100 | <ProfSimm> | But made explicit |
2022-03-08 15:07:22 +0100 | neurocyte0917090 | (~neurocyte@IP-045014190241.dynamic.medianet-world.de) |
2022-03-08 15:07:22 +0100 | neurocyte0917090 | (~neurocyte@IP-045014190241.dynamic.medianet-world.de) (Changing host) |
2022-03-08 15:07:22 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-03-08 15:07:58 +0100 | worldhelloworld | (~c1utt4r@vmi275462.contaboserver.net) (Ping timeout: 272 seconds) |
2022-03-08 15:09:15 +0100 | xff0x | (~xff0x@dslb-094-222-029-254.094.222.pools.vodafone-ip.de) |
2022-03-08 15:11:32 +0100 | <ProfSimm> | kuribas: rust is not haskell, and rust does a lot of things i wish Haskell doesn't, but I feel there's core idea that could scale from the kernel to math proofs to scripting. If we get it right, we won't need 1000 languages |
2022-03-08 15:12:41 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-03-08 15:13:24 +0100 | jespada | (~jespada@148.252.132.235) (Read error: Connection reset by peer) |
2022-03-08 15:15:12 +0100 | jespada | (~jespada@148.252.132.235) |
2022-03-08 15:17:17 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 256 seconds) |
2022-03-08 15:18:17 +0100 | <geekosaur> | uh |
2022-03-08 15:18:40 +0100 | <geekosaur> | ob https://xkcd.com/927/ |
2022-03-08 15:19:54 +0100 | <maerwald> | that's the most prominent fallacy of programmers talking about programming languages... they only talk about technical properties |
2022-03-08 15:20:29 +0100 | <geekosaur> | and in any case different languages often make meeting specific requirements easier while making others harder. for example, Ive worked with real time control languages, they workvery wellfor that but areless than idea for generalcomputation |
2022-03-08 15:21:10 +0100 | <geekosaur> | something like matlab or octave is very good for matrix related math but lousy for anything else |
2022-03-08 15:21:31 +0100 | <geekosaur> | similarly r/s and plotting/charts/data relationships |
2022-03-08 15:22:18 +0100 | <geekosaur> | sql's a great database access language but worthless for anything else; conversely anything other than just packaging up an sql query to access a databaseis painful in other languages |
2022-03-08 15:23:04 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
2022-03-08 15:23:29 +0100 | <maerwald> | it's like saying english is the best language, because it has the most words |
2022-03-08 15:24:23 +0100 | <geekosaur> | pl/I tried to be a do-everything language. it was less than successful |
2022-03-08 15:24:27 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-03-08 15:25:43 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) (Ping timeout: 272 seconds) |
2022-03-08 15:26:57 +0100 | <kuribas> | geekosaur: well, hasure thinks SQL is great for graphql APIs |
2022-03-08 15:27:44 +0100 | <maerwald> | I think we should accept that even programming languages have cultural context and that personal preferences of ergonomics and pleasure may be far more important than technical properties |
2022-03-08 15:27:52 +0100 | <geekosaur> | ^ |
2022-03-08 15:28:17 +0100 | <geekosaur> | and corporate preferences and contexts |
2022-03-08 15:28:58 +0100 | <ProfSimm> | maerwald: I'd be fine if English became the only language |
2022-03-08 15:29:08 +0100 | <ProfSimm> | maerwald: in fact, I strongly would prefer it |
2022-03-08 15:29:24 +0100 | <geekosaur> | lotsof others would disagree |
2022-03-08 15:29:30 +0100 | <ProfSimm> | They're wrong. |
2022-03-08 15:30:30 +0100 | <ProfSimm> | geekosaur: a good language would permit DSLs for specific purposes. |
2022-03-08 15:30:45 +0100 | <kuribas> | ProfSimm: Ik geef de voorkeur aan nederlands :) |
2022-03-08 15:31:10 +0100 | <ProfSimm> | geekosaur: imagine the world if you could only write libraries in C, because only C supports the C ABI |
2022-03-08 15:31:15 +0100 | <geekosaur> | that was PL/I-think |
2022-03-08 15:31:17 +0100 | <geekosaur> | it failed |
2022-03-08 15:31:37 +0100 | <geekosaur> | hey, that was largely true for a couple decades |
2022-03-08 15:31:48 +0100 | off^ | (~off@50.232.121.75) (Remote host closed the connection) |
2022-03-08 15:32:01 +0100 | <ProfSimm> | geekosaur: so we're happy now when many languages use the same ABI right |
2022-03-08 15:32:20 +0100 | <ProfSimm> | geekosaur: I wanna move the bar up. Everyone uses the same basic language, and everything is a DSL in it |
2022-03-08 15:32:28 +0100 | <geekosaur> | because of the historical accident that C compilers were for a while moe readily available to programmers than expensive then-"mainstream" languages |
2022-03-08 15:32:49 +0100 | <geekosaur> | again, that was PL/I-think |
2022-03-08 15:33:28 +0100 | <geekosaur> | you end up with a huge ungainly language that's nearly impossible to compile and get reasonable performance out of |
2022-03-08 15:33:41 +0100 | <geekosaur> | (this might even sound familiar to some people…) |
2022-03-08 15:34:25 +0100 | kongsheng | (~kongsheng@71.28.228.142) |
2022-03-08 15:36:12 +0100 | <kongsheng> | Hello. I have a mathematical model which consists of a semigroup (or magma). It's a set with a binary operation defined by a table. What kind of background reading do I need to code this in haskell? I know absolutely nothing about programming computers. |
2022-03-08 15:36:37 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:7f03:8b0:a81c:56d7) (Ping timeout: 240 seconds) |
2022-03-08 15:36:43 +0100 | jinsun__ | (~jinsun@user/jinsun) |
2022-03-08 15:37:06 +0100 | <romesrf> | how can I ask for a function type here? |
2022-03-08 15:39:24 +0100 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 240 seconds) |
2022-03-08 15:42:13 +0100 | <romesrf> | auto reply: geekosaur answered elsewhere, it's just :t |
2022-03-08 15:42:15 +0100 | <romesrf> | :t id |
2022-03-08 15:42:16 +0100 | <lambdabot> | a -> a |
2022-03-08 15:44:08 +0100 | jespada | (~jespada@148.252.132.235) (Read error: Connection reset by peer) |
2022-03-08 15:47:18 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) |
2022-03-08 15:47:31 +0100 | jespada | (~jespada@148.252.132.235) |
2022-03-08 15:51:24 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) (Ping timeout: 240 seconds) |
2022-03-08 15:52:44 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-03-08 15:54:25 +0100 | shailangsa | (~shailangs@host86-186-133-59.range86-186.btcentralplus.com) (Remote host closed the connection) |
2022-03-08 15:57:00 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 240 seconds) |
2022-03-08 16:00:21 +0100 | <siers> | what are some cool uses of bijections/invertible functions? I suppose you could compose a bunch of them together to achieve something quite magical |
2022-03-08 16:02:30 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-08 16:03:02 +0100 | alp | (~alp@user/alp) (Ping timeout: 240 seconds) |
2022-03-08 16:03:08 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 16:03:48 +0100 | ishutin | (~ishutin@87-97-30-219.pool.digikabel.hu) (Ping timeout: 252 seconds) |
2022-03-08 16:04:03 +0100 | <siers> | % :t (1, "x", [()]) -- I think this should work, romesrf |
2022-03-08 16:04:03 +0100 | <yahb> | siers: Num a => (a, String, [()]) |
2022-03-08 16:04:45 +0100 | <siers> | if you meant in IRC, specifically |
2022-03-08 16:05:27 +0100 | ishutin | (~ishutin@87-97-82-131.pool.digikabel.hu) |
2022-03-08 16:05:54 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-03-08 16:07:24 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-03-08 16:07:42 +0100 | <kuribas> | kongsheng: the interesting question is, what do you want to do with it? |
2022-03-08 16:07:57 +0100 | <kuribas> | why do you want to code it? |
2022-03-08 16:09:20 +0100 | <kuribas> | haskell has a Semigroup typeclass |
2022-03-08 16:10:38 +0100 | <kongsheng> | kuribas: I want to start with a set {x,y} as well as a binary operation that is defined by a table. The binary operation is not associative by nature. I want to code it because the semigroup represents a thing in the real world, and I need a framework for testing whether the abstract mathematics works physically. |
2022-03-08 16:11:41 +0100 | <kuribas> | isn't a semigroup supposed to be associative? |
2022-03-08 16:12:30 +0100 | <kongsheng> | OH! Sorry! I am actually starting with something called a Magma instead of a semigroup. |
2022-03-08 16:12:39 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-03-08 16:12:41 +0100 | <kongsheng> | Dang. |
2022-03-08 16:12:47 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-03-08 16:14:00 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-03-08 16:17:30 +0100 | <kongsheng> | Basically, what I want to do is start with a set {x,y} and this binary operation. I need an operator * to represent the binary operation. So I can symbolically do things like x*y*x*x etc. I am building a second function which depends on the first. The third function depends on the first two. The operators are ~ and +. So then I can build |
2022-03-08 16:17:31 +0100 | <kongsheng> | expressions like x*y + ~x*y + ~x*~y. Given one of these expressions. I want to instantiate an object where the set {x,y} has been made more concrete with {0,1}. Then I need to build expressions i.e. ~(x*y + ~x*~*y) but have an option to evaluate them with the instantiated, concrete set. |
2022-03-08 16:18:51 +0100 | <kongsheng> | But the problem is that I know nothing about haskell or programming, and my initial set with binary operation is non-associative. |
2022-03-08 16:18:52 +0100 | <sclv> | so a magma has no laws to verify |
2022-03-08 16:19:25 +0100 | <kongsheng> | The only law is that the operation remained closed, I think. That must be checked. |
2022-03-08 16:19:27 +0100 | <sclv> | the rest is straightforward if you know haskell, but i don't think its something that you can learn how to do if you don't really learn the language first |
2022-03-08 16:19:44 +0100 | nisstyre | (~wes@user/nisstyre) (Quit: WeeChat 3.2.1) |
2022-03-08 16:20:11 +0100 | <sclv> | if you encode your magma as a datatype (rather than just associating it to some subset of the naturals) then it will be definitionally closed |
2022-03-08 16:20:32 +0100 | <sclv> | and even otherwise, its easy enough to read off by hand from the "multiplication table" if it is |
2022-03-08 16:20:43 +0100 | <kongsheng> | Cool. I can probably do it in Mathematica but I don't have the money and would rather keep this study as Haskell as possible since it has theoretical underpinnings to Computer Science. |
2022-03-08 16:21:36 +0100 | <siers> | sclv, what do you mean by "associating it to some subset of the naturals"? |
2022-03-08 16:21:51 +0100 | <kongsheng> | Yea I see what you mean. I kind of want to build a skeleton Magma and then build a particular Magma with my binary operation and set. |
2022-03-08 16:22:01 +0100 | <kongsheng> | But hey thanks for giving me some ideas. |
2022-03-08 16:22:19 +0100 | <sclv> | so the most straightforward thing in haskell is to not do that, but to define a specific datatype for each particular magma |
2022-03-08 16:22:28 +0100 | <sclv> | or semigroup, or monoid |
2022-03-08 16:22:33 +0100 | <sclv> | and again -- doing it for a magma seems pointless |
2022-03-08 16:22:34 +0100 | <siers> | Wouldn't a typeclass for the magma be appropriate? I assume not, otherwise you (sclv) would've suggested it. |
2022-03-08 16:22:56 +0100 | <kongsheng> | Ok. So use datatype logic instead of Object Oriented logic? |
2022-03-08 16:23:21 +0100 | <sclv> | then, as siers suggested, you can make that datatype an instance of the appropriate typeclass |
2022-03-08 16:23:51 +0100 | <sclv> | then you auto-derive some insteances and can use something like https://hackage.haskell.org/package/quickcheck-classes-0.6.5.0/docs/Test-QuickCheck-Classes.html to generate and run testcases for the properties you want |
2022-03-08 16:24:06 +0100 | <kongsheng> | Hmm, maybe I don't need a skeleton framework at all, since like you said, all I have to do is check closure by the mult table. |
2022-03-08 16:24:18 +0100 | <sclv> | but again, doing things this way requires knowing some haskell, otherwise you will get confused very quickly |
2022-03-08 16:24:51 +0100 | <kongsheng> | Cool. I will do some reading and some more headwork. |
2022-03-08 16:26:30 +0100 | <kongsheng> | The mathematics is more primitive than Boolean algebra and Logic, but my research group is trying to find out if we can start with this particular Magma and reach a turing complete device. |
2022-03-08 16:26:47 +0100 | <sclv> | this isn't working with a general AST of your expressions btw, just letting you evaluate them directly |
2022-03-08 16:27:46 +0100 | <sclv> | if you want to build an expression syntax tree to programmatically manipulate them, then you can do that too. there are lots of examples of this. the first i found on a google (idk if its good or not, just the first i found on a google) is something like https://john.cs.olemiss.edu/~hcc/csci450/ELIFP/Ch42/42_Abstract_Syntax.html |
2022-03-08 16:28:02 +0100 | <shapr> | > let ones = 1 : ones in take 5 ones |
2022-03-08 16:28:03 +0100 | <lambdabot> | [1,1,1,1,1] |
2022-03-08 16:28:05 +0100 | <kongsheng> | ok thank you. I am writing all this down by the way. |
2022-03-08 16:31:06 +0100 | <kuribas> | kongsheng: you can try macsyma, which is a free mathematica alternative. |
2022-03-08 16:31:30 +0100 | <kuribas> | kongsheng: if you want to prove mathematical things, a dependently typed language could be better, like agda or idris. |
2022-03-08 16:32:17 +0100 | Inst | (~Liam@2601:6c4:4080:3f80:112d:add3:9747:500f) (Ping timeout: 240 seconds) |
2022-03-08 16:33:28 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2022-03-08 16:33:58 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 16:34:25 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-03-08 16:35:17 +0100 | jz99_ | (~jz99@pa49-186-65-17.pa.vic.optusnet.com.au) |
2022-03-08 16:35:18 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-03-08 16:35:42 +0100 | Inst | (~Liam@2601:6c4:4080:3f80:8c26:e871:cea5:bbc0) |
2022-03-08 16:36:40 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2022-03-08 16:36:47 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds) |
2022-03-08 16:37:09 +0100 | jz99_ | (~jz99@pa49-186-65-17.pa.vic.optusnet.com.au) (Remote host closed the connection) |
2022-03-08 16:37:42 +0100 | <sclv> | if they don't even know haskell yet, sending them down the road to a dependently typed language is Not Good Advice |
2022-03-08 16:37:54 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-03-08 16:38:18 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-03-08 16:38:31 +0100 | <kuribas> | sclv: why not? There is a lot of DT teaching material which is self contained. |
2022-03-08 16:38:44 +0100 | <kuribas> | Do DT languages assume haskell knowledge? |
2022-03-08 16:38:47 +0100 | <sclv> | i won't argue. i'll just say that it requires a lot more ramp up |
2022-03-08 16:38:57 +0100 | <sclv> | this person said they had virtually no programming background full stop |
2022-03-08 16:39:17 +0100 | <sclv> | and they were looking to do computational checks not proofs |
2022-03-08 16:39:32 +0100 | <kuribas> | I don't disagree, but I thought that idris or agda are more mathy... |
2022-03-08 16:40:28 +0100 | <sclv> | they're suited for being proof assistants. doing symbolic computation and generated verification is very much in the haskell wheelhouse |
2022-03-08 16:40:43 +0100 | <sclv> | not all maths is formal theorem proving!!! |
2022-03-08 16:41:23 +0100 | <juri_> | not all math is formal theorem proving.. yet. |
2022-03-08 16:41:39 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2022-03-08 16:41:58 +0100 | <siers> | what kind of symbolic computation is haskell good at? how does that work even |
2022-03-08 16:42:04 +0100 | <siers> | or what is meant by that |
2022-03-08 16:42:41 +0100 | <geekosaur> | > foldr (*) z [a,b,c] -- looks symbolic to me :þ |
2022-03-08 16:42:42 +0100 | <lambdabot> | a * (b * (c * z)) |
2022-03-08 16:42:46 +0100 | <sclv> | i mean that haskell is an excellent language for creating and manipulating ASTs -- what is commonly known as "computer algebra" |
2022-03-08 16:44:57 +0100 | <siers> | geekosaur, hm |
2022-03-08 16:45:06 +0100 | <kuribas> | surprising no CAS are written in haskell. |
2022-03-08 16:45:41 +0100 | <geekosaur> | @hackage simple-reflect -- siers |
2022-03-08 16:45:41 +0100 | <lambdabot> | https://hackage.haskell.org/package/simple-reflect -- siers |
2022-03-08 16:46:12 +0100 | <siers> | nice |
2022-03-08 16:46:24 +0100 | <kuribas> | that cannot even rewrite or simplify expressions. |
2022-03-08 16:47:12 +0100 | <geekosaur> | true, but it shows the possibilities. and I'd suspect something more capable could be written. I have no idea why it hasn't yet, unlessit's just that it already exists elsewhere |
2022-03-08 16:47:17 +0100 | <siers> | how was 1+2*(3+4) captured? |
2022-03-08 16:47:28 +0100 | <siers> | yeah, the examples within illustrate what was meant by symbolic computation |
2022-03-08 16:48:00 +0100 | <polyphem> | geekosaur: is that term rewriting (foldr example) possible also in ghci or is it a lambdabot feature ? |
2022-03-08 16:48:17 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Quit: ec_) |
2022-03-08 16:48:23 +0100 | <kuribas> | polyphem: it's just a library |
2022-03-08 16:48:31 +0100 | <geekosaur> | see the hackage library I pointed to |
2022-03-08 16:48:45 +0100 | <geekosaur> | \you could install it, import Debug.SimpleReflect into ghci, and go nuts |
2022-03-08 16:49:03 +0100 | <geekosaur> | you do need to use a few tricks to keep it from getting confused though |
2022-03-08 16:49:16 +0100 | <geekosaur> | > foldr (*) (0::Expr) [a,b,c,d] |
2022-03-08 16:49:17 +0100 | <lambdabot> | a * (b * (c * (d * 0))) |
2022-03-08 16:49:29 +0100 | <siers> | what's Expr? |
2022-03-08 16:49:31 +0100 | <geekosaur> | well I should have used 1 but then (*) is a placeholder |
2022-03-08 16:49:35 +0100 | <geekosaur> | it just looks nicer infix |
2022-03-08 16:49:40 +0100 | <siers> | ah, just some data type that implements Num? |
2022-03-08 16:49:48 +0100 | <geekosaur> | Expr is the type simple-reflect uses internally to do this |
2022-03-08 16:49:59 +0100 | <geekosaur> | it implenments Num and a number of other typeclasses |
2022-03-08 16:50:01 +0100 | <siers> | how does it load 0 into Expr? |
2022-03-08 16:50:14 +0100 | <siers> | by some function by implementing Num? |
2022-03-08 16:50:23 +0100 | <geekosaur> | that just means it has a Num instance, so fromInteger works |
2022-03-08 16:50:32 +0100 | <polyphem> | how does it not freak out , with all those free (undefined) variables |
2022-03-08 16:50:46 +0100 | <siers> | that's probably lambdabot magic |
2022-03-08 16:50:47 +0100 | <polyphem> | s/variables/bindings/ :) |
2022-03-08 16:51:00 +0100 | <geekosaur> | (remember that any literal number has `fromInteger` or `fromRational` wrapped around it automatically to allow it to be any Num or Fractional instance as appropriate |
2022-03-08 16:51:11 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
2022-03-08 16:51:19 +0100 | <geekosaur> | there's no lambdabot magic there, just the Expr type |
2022-03-08 16:51:43 +0100 | <geekosaur> | and the library binding all the single letter names to Expr or related types |
2022-03-08 16:51:46 +0100 | <geekosaur> | :t a |
2022-03-08 16:51:47 +0100 | <lambdabot> | Expr |
2022-03-08 16:51:47 +0100 | <siers> | geekosaur, I knew what implementing Num means :P but right, obviously it's fromInteger |
2022-03-08 16:51:50 +0100 | <geekosaur> | :t f |
2022-03-08 16:51:51 +0100 | <lambdabot> | FromExpr a => a |
2022-03-08 16:51:52 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-03-08 16:52:00 +0100 | <siers> | I just thought there's more to it, but no |
2022-03-08 16:52:16 +0100 | <geekosaur> | nothing else to it, just abusing Num a lot :) |
2022-03-08 16:53:27 +0100 | <geekosaur> | and Show instances |
2022-03-08 16:55:02 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:e5ea:1ffe:3a64:8fa7) |
2022-03-08 16:55:09 +0100 | <polyphem> | i see , thanks |
2022-03-08 16:56:41 +0100 | <siers> | I read TAPL a bit and I remember seeing the semantical rules to compute a value from a term... kind of eye opening to see them written out |
2022-03-08 16:57:07 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-03-08 17:00:29 +0100 | <siers> | and those rules immediately spring into mind upon seeing the reduction example in simple-reflect |
2022-03-08 17:00:59 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:e5ea:1ffe:3a64:8fa7) (Ping timeout: 250 seconds) |
2022-03-08 17:01:05 +0100 | nisstyre | (wes@user/nisstyre) |
2022-03-08 17:07:00 +0100 | agumonkey | (~user@88.163.231.79) (Ping timeout: 240 seconds) |
2022-03-08 17:10:12 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-03-08 17:12:39 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-08 17:14:43 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-03-08 17:15:45 +0100 | briandaed | (~root@109.95.142.93.r.toneticgroup.pl) |
2022-03-08 17:15:56 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-03-08 17:16:57 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-03-08 17:17:06 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:3240:c699:b7eb:e5b0) (Quit: WeeChat 2.8) |
2022-03-08 17:17:12 +0100 | Vajb | (~Vajb@2001:999:62:aa00:7f5a:4f10:c894:3813) |
2022-03-08 17:20:36 +0100 | <briandaed> | quick question regarding Hackage/Stackage, I see that all LTSes from 16.31 to 18.27 use network-3.1.1.1 which is deprecated - why? |
2022-03-08 17:21:34 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-03-08 17:21:38 +0100 | worldhelloworld1 | (uid543174@id-543174.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-08 17:22:39 +0100 | <merijn> | Presumably because not everything in the snapshots was updated to work with newer versions of network yet? |
2022-03-08 17:24:53 +0100 | <briandaed> | ok, sounds reasonably |
2022-03-08 17:26:19 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-03-08 17:26:43 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 256 seconds) |
2022-03-08 17:27:26 +0100 | <geekosaur> | I don't think they update snapshots actually, they just release new ones |
2022-03-08 17:28:43 +0100 | <jneira[m]> | iirc it was deprecated due to a bug affecting cabal and msys with a relatively new version of autoconf |
2022-03-08 17:29:06 +0100 | <jneira[m]> | they released a patched version 3.1.1.2 and deprecated .1 |
2022-03-08 17:29:38 +0100 | <jneira[m]> | but it is not affecting stack it seems so 🤷 |
2022-03-08 17:30:09 +0100 | <jneira[m]> | but I guess the lts would work with 3.1.1.2 |
2022-03-08 17:31:14 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
2022-03-08 17:31:18 +0100 | <geekosaur> | stack controls its version of msys so presumably can avoid the issue |
2022-03-08 17:32:17 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2022-03-08 17:32:19 +0100 | <briandaed> | next is 3.1.2.0 and looks a lot happened there https://hackage.haskell.org/package/network-3.1.2.0/changelog |
2022-03-08 17:32:51 +0100 | incertia | (~incertia@207.98.163.88) (Quit: ZNC 1.7.5 - https://znc.in) |
2022-03-08 17:33:49 +0100 | <geekosaur> | and immutability of LTSes is important for reproducible builds, which is one of stack's "selling points" |
2022-03-08 17:34:17 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-03-08 17:35:00 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-03-08 17:35:14 +0100 | <geekosaur> | (to be clear the scare quotes are only because you're "selling" something that's for free, not because I'm casting aspersions on it) |
2022-03-08 17:35:23 +0100 | <briandaed> | again sounds reasonably, but if there is a bug in compiler or library, the only way to fix it is to use newer LTS or use some hacked version provieded in extra-deps... |
2022-03-08 17:35:53 +0100 | <kuribas> | couldn't you implement unlift EitherT using exceptions? |
2022-03-08 17:36:12 +0100 | incertia | (~incertia@207.98.163.88) |
2022-03-08 17:36:25 +0100 | <geekosaur> | true, but they do a lot of testing to avoid that. at some point it may let something slipthrough though, in which case they may need a way to deprecate resolvers |
2022-03-08 17:36:42 +0100 | zer0bitz | (~zer0bitz@2001:2003:f74d:b800:7859:22cf:713c:fe6e) |
2022-03-08 17:37:08 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-08 17:39:28 +0100 | <briandaed> | then I'm cursed, one week and I encountered https://github.com/haskell-crypto/cryptonite/issues/329 and then https://github.com/haskell/network/issues/438 , LTS-16.31, pity there is no summary which LTSes are used most frequently by commercial projects, similarly to some android version - market share stats |
2022-03-08 17:47:05 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-03-08 17:47:14 +0100 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-03-08 17:48:09 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
2022-03-08 17:48:09 +0100 | zer0bitz_ | (~zer0bitz@2001:2003:f74d:b800:7859:22cf:713c:fe6e) |
2022-03-08 17:48:47 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
2022-03-08 17:48:47 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) |
2022-03-08 17:50:36 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2022-03-08 17:50:46 +0100 | zer0bitz | (~zer0bitz@2001:2003:f74d:b800:7859:22cf:713c:fe6e) (Ping timeout: 245 seconds) |
2022-03-08 17:51:27 +0100 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-03-08 17:51:30 +0100 | Cheery | (~cheery@7-239-179-185.static.tentacle.fi) (Ping timeout: 250 seconds) |
2022-03-08 17:51:40 +0100 | Cheery | (~cheery@7-239-179-185.static.tentacle.fi) |
2022-03-08 17:52:05 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-08 17:52:31 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) (Remote host closed the connection) |
2022-03-08 17:52:36 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Client Quit) |
2022-03-08 17:52:46 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-03-08 17:53:43 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
2022-03-08 17:55:22 +0100 | raym | (~raym@user/raym) (Ping timeout: 256 seconds) |
2022-03-08 17:56:00 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
2022-03-08 17:56:17 +0100 | raym | (~raym@user/raym) |
2022-03-08 17:56:37 +0100 | jinsun__ | (~jinsun@user/jinsun) (Ping timeout: 240 seconds) |
2022-03-08 17:57:44 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-03-08 18:01:41 +0100 | nisstyre | (wes@user/nisstyre) (Quit: WeeChat 3.4) |
2022-03-08 18:01:41 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:598a:8b0b:9405:6e26) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 18:02:01 +0100 | nisstyre | (wes@user/nisstyre) |
2022-03-08 18:05:15 +0100 | agumonkey | (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) |
2022-03-08 18:05:54 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 252 seconds) |
2022-03-08 18:05:56 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-03-08 18:06:08 +0100 | ishutin | (~ishutin@87-97-82-131.pool.digikabel.hu) (Ping timeout: 256 seconds) |
2022-03-08 18:06:28 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
2022-03-08 18:07:58 +0100 | ishutin | (~ishutin@84-236-21-25.pool.digikabel.hu) |
2022-03-08 18:08:55 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 18:09:06 +0100 | mmhat | (~mmh@55d49be1.access.ecotel.net) |
2022-03-08 18:12:18 +0100 | toulene_ | (~toulene@user/toulene) |
2022-03-08 18:13:55 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-03-08 18:14:48 +0100 | toulene_ | (~toulene@user/toulene) (Remote host closed the connection) |
2022-03-08 18:15:33 +0100 | jinsun | (~jinsun@user/jinsun) |
2022-03-08 18:16:45 +0100 | Arsen | (arsen@managarm/dev/Arsen) (Quit: Quit.) |
2022-03-08 18:17:24 +0100 | Arsen | (arsen@managarm/dev/Arsen) |
2022-03-08 18:19:04 +0100 | ccntrq | (~Thunderbi@2a01:c22:9102:c100:80c3:8f62:e3ae:6455) (Remote host closed the connection) |
2022-03-08 18:21:05 +0100 | coot | (~coot@213.134.190.95) |
2022-03-08 18:22:00 +0100 | bjobjo | (~bjobjo@user/bjobjo) (Quit: leaving) |
2022-03-08 18:27:04 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) |
2022-03-08 18:27:52 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-08 18:28:29 +0100 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
2022-03-08 18:28:36 +0100 | bjobjo | (~bjobjo@user/bjobjo) |
2022-03-08 18:30:55 +0100 | <maerwald> | don't use cryptonite |
2022-03-08 18:31:56 +0100 | <briandaed> | hard to avoid that, a lot of libraries use it already |
2022-03-08 18:32:42 +0100 | <maerwald> | well, then use different libraries |
2022-03-08 18:33:26 +0100 | <maerwald> | wrt the network issue, it seems no one opened a ticket on the warp issue tracker |
2022-03-08 18:34:12 +0100 | <maerwald> | but yeah... just today we were talking about correctness and haskell, which is rather confusing given that so many libraries use sloppy and unverified cryptolibraries |
2022-03-08 18:34:12 +0100 | <briandaed> | yeah, also checked that |
2022-03-08 18:34:38 +0100 | <maerwald> | not even audited |
2022-03-08 18:38:33 +0100 | <janus> | maerwald: why would someone open a ticket on the warp issue tracker? doesn't seem like it forbids 3.1.2.0? what is the issue with warp? |
2022-03-08 18:39:01 +0100 | <janus> | kazu says that warp 3.3.5 has fixed the gracefulClose issue |
2022-03-08 18:40:19 +0100 | econo | (uid147250@user/econo) |
2022-03-08 18:40:46 +0100 | <maerwald> | janus: because of https://github.com/haskell/network/issues/438#issuecomment-784771757 |
2022-03-08 18:41:08 +0100 | analognoise | (~analognoi@185.229.59.233) |
2022-03-08 18:44:58 +0100 | jespada | (~jespada@148.252.132.235) (Read error: Connection reset by peer) |
2022-03-08 18:48:54 +0100 | <Hecate> | briandaed: it is indeed hard to avoid. Fortunately there are alternatives that are emerging, if you have a direct need for cryptography primitives. You can always ask questions on #haskell-cryptography about this. :) |
2022-03-08 18:51:28 +0100 | notzmv | (~zmv@user/notzmv) |
2022-03-08 18:52:17 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-08 18:54:13 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 18:54:25 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:598a:8b0b:9405:6e26) |
2022-03-08 18:54:51 +0100 | Vajb | (~Vajb@2001:999:62:aa00:7f5a:4f10:c894:3813) (Read error: Connection reset by peer) |
2022-03-08 18:55:06 +0100 | bontaq` | (~user@165.1.205.23) |
2022-03-08 18:56:01 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-03-08 18:56:35 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
2022-03-08 18:57:36 +0100 | unyu | (~pyon@user/pyon) (Quit: brb) |
2022-03-08 18:57:48 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-03-08 18:58:02 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-03-08 18:58:56 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2022-03-08 18:59:14 +0100 | <briandaed> | Hecate: thx, joined |
2022-03-08 19:00:21 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 19:00:48 +0100 | bontaq`` | (~user@ool-45779fe5.dyn.optonline.net) |
2022-03-08 19:01:37 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-03-08 19:02:24 +0100 | toulene | (~toulene@user/toulene) |
2022-03-08 19:02:49 +0100 | bontaq` | (~user@165.1.205.23) (Ping timeout: 256 seconds) |
2022-03-08 19:05:38 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-08 19:07:56 +0100 | xkuru | (~xkuru@user/xkuru) |
2022-03-08 19:09:00 +0100 | raym | (~raym@user/raym) (Remote host closed the connection) |
2022-03-08 19:09:17 +0100 | ishutin | (~ishutin@84-236-21-25.pool.digikabel.hu) (Ping timeout: 272 seconds) |
2022-03-08 19:10:17 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-03-08 19:10:27 +0100 | ishutin | (~ishutin@87-97-88-220.pool.digikabel.hu) |
2022-03-08 19:11:00 +0100 | Vajb | (~Vajb@2001:999:62:aa00:7f5a:4f10:c894:3813) |
2022-03-08 19:11:18 +0100 | unyu | (~pyon@user/pyon) |
2022-03-08 19:11:44 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-03-08 19:12:10 +0100 | raym | (~raym@user/raym) |
2022-03-08 19:12:46 +0100 | kongsheng | (~kongsheng@71.28.228.142) (Quit: Client closed) |
2022-03-08 19:13:12 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) |
2022-03-08 19:13:35 +0100 | kongsheng | (~kongsheng@71.28.228.142) |
2022-03-08 19:16:03 +0100 | alp | (~alp@user/alp) |
2022-03-08 19:17:55 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:49fc:dd14:62fe:1d6f) |
2022-03-08 19:19:06 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3d9b:7fc7:6af0:b7ab) (Remote host closed the connection) |
2022-03-08 19:19:46 +0100 | emf | (~emf@2620:10d:c090:400::5:33d6) |
2022-03-08 19:23:04 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-08 19:25:22 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-03-08 19:30:20 +0100 | kuribas | (~user@ptr-25vy0i8r77cynr1cb5v.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2022-03-08 19:32:02 +0100 | bontaq``` | (~user@165.1.205.23) |
2022-03-08 19:32:50 +0100 | bontaq`` | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
2022-03-08 19:37:44 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8852:a14c:a420:3fd8) |
2022-03-08 19:37:48 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-03-08 19:39:41 +0100 | bontaq``` | (~user@165.1.205.23) (Ping timeout: 272 seconds) |
2022-03-08 19:41:15 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 19:46:25 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2022-03-08 19:46:33 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2022-03-08 19:46:33 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2022-03-08 19:46:33 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2022-03-08 19:46:38 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-03-08 19:57:16 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2022-03-08 19:57:43 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-03-08 20:00:10 +0100 | loonycyborg | (loonycybor@wesnoth/developer/loonycyborg) (Quit: ZNC - http://znc.sourceforge.net) |
2022-03-08 20:00:26 +0100 | loonycyborg | (loonycybor@wesnoth/developer/loonycyborg) |
2022-03-08 20:00:43 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-03-08 20:02:37 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2022-03-08 20:02:53 +0100 | dsrt^ | (~dsrt@50.232.121.75) |
2022-03-08 20:03:26 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-03-08 20:05:32 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-03-08 20:05:57 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-03-08 20:06:57 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-03-08 20:09:19 +0100 | Vajb | (~Vajb@2001:999:62:aa00:7f5a:4f10:c894:3813) (Read error: Connection reset by peer) |
2022-03-08 20:09:34 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-03-08 20:09:39 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
2022-03-08 20:12:31 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4) |
2022-03-08 20:17:45 +0100 | <Unicorn_Princess> | is there an easy way to get ghcup to upgrade all the things to the latest version? ghcup install ghc 9.2.2 for each is tedious |
2022-03-08 20:18:02 +0100 | desantra | (~skykanin@user/skykanin) |
2022-03-08 20:18:14 +0100 | vicfred | (~vicfred@user/vicfred) |
2022-03-08 20:18:55 +0100 | <geekosaur> | I don't think it has an "all" option. I just use ghcup tui and hit "i" on the things I want to install |
2022-03-08 20:20:02 +0100 | <Unicorn_Princess> | then i guess i will suffer |
2022-03-08 20:20:13 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) (Ping timeout: 272 seconds) |
2022-03-08 20:20:25 +0100 | <janus> | Unicorn_Princess: what do you mean with "for each"? the ghc version is independent of the other versions |
2022-03-08 20:20:43 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) |
2022-03-08 20:20:51 +0100 | <geekosaur> | I presume that means ghc, cabal, stack, etc. |
2022-03-08 20:20:56 +0100 | <Unicorn_Princess> | i mean ghcup handles ghc, cabal, stack, the lsp.. |
2022-03-08 20:22:41 +0100 | coot | (~coot@213.134.190.95) |
2022-03-08 20:22:44 +0100 | vicfred | (~vicfred@user/vicfred) (Ping timeout: 250 seconds) |
2022-03-08 20:24:46 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-08 20:28:26 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-03-08 20:29:39 +0100 | <monochrom> | "ghcup install" understands the "latest" tag. |
2022-03-08 20:30:13 +0100 | <monochrom> | The default is "recommended" this is why the default is not "latest". |
2022-03-08 20:30:21 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 272 seconds) |
2022-03-08 20:30:52 +0100 | <geekosaur> | for thing in ghcup ghc stack cabal; do ghcup install $thing latest; done # hls is installed with ghc |
2022-03-08 20:32:49 +0100 | <geekosaur> | oh I'm wrong, so add hls to the list |
2022-03-08 20:32:52 +0100 | <geekosaur> | sorry |
2022-03-08 20:33:06 +0100 | <geekosaur> | wsd thinking of the hls-powered epithet |
2022-03-08 20:33:07 +0100 | <monochrom> | :) |
2022-03-08 20:34:08 +0100 | sceptttre | (~sceptttre@2603-6011-df05-84ab-dcd9-3721-0281-3545.res6.spectrum.com) |
2022-03-08 20:34:43 +0100 | sceptttre | (~sceptttre@2603-6011-df05-84ab-dcd9-3721-0281-3545.res6.spectrum.com) (Quit: Client closed) |
2022-03-08 20:34:47 +0100 | <geekosaur> | qactually I wonder if ghcup install works for itselfor if you have to use upgrade |
2022-03-08 20:34:52 +0100 | agumonke` | (~user@88.163.231.79) |
2022-03-08 20:35:07 +0100 | <monochrom> | Defaulting to "recommended" not "latest" works great for me and my students. It is the prudent thing to do and it is not tedious, my students and I do not suffer. |
2022-03-08 20:35:22 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
2022-03-08 20:35:39 +0100 | <geekosaur> | in particular there is no hls yet for ghc 9.2.2 |
2022-03-08 20:35:57 +0100 | zincy_ | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
2022-03-08 20:35:57 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Remote host closed the connection) |
2022-03-08 20:36:12 +0100 | <geekosaur> | and unless you need some new feature, 8.10.7 works fine |
2022-03-08 20:36:17 +0100 | agumonkey | (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Ping timeout: 240 seconds) |
2022-03-08 20:37:10 +0100 | <monochrom> | "ghcup install ghcup" shows an error message that suggests that ghcup is confused. :) |
2022-03-08 20:37:57 +0100 | <monochrom> | The error messages and warnings says something along the line of "to install ghc, say ghcup install ghc" |
2022-03-08 20:38:27 +0100 | <geekosaur> | just saw that :) |
2022-03-08 20:38:43 +0100 | <monochrom> | So yeah it has to be "ghcup upgrade". |
2022-03-08 20:38:48 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) |
2022-03-08 20:39:04 +0100 | <geekosaur> | ghcup upgrade; for thing in hls ghc stack cabal; do ghcup install $thing latest; done |
2022-03-08 20:39:48 +0100 | <monochrom> | ghcup installs those who don't install themselves >:) |
2022-03-08 20:40:12 +0100 | <monochrom> | (Sorry I have been hairsplitting set theory lately!) |
2022-03-08 20:40:25 +0100 | <geekosaur> | hm, could use ghcup list to extract the list of things to install, but it includes ghcup… |
2022-03-08 20:40:54 +0100 | <Unicorn_Princess> | ghcup tui is very pleasant, thanks geekosaur |
2022-03-08 20:41:31 +0100 | <monochrom> | It may be more robust to extract from "ghcup install --help" instead, under the "available commands" heading. |
2022-03-08 20:42:19 +0100 | <monochrom> | or "ghcup list --help" and look for the "[-t|--tool <ghc|cabal|hls|stack>]" |
2022-03-08 20:42:21 +0100 | <geekosaur> | but harder to sewd/awk :þ |
2022-03-08 20:42:31 +0100 | <geekosaur> | *sed |
2022-03-08 20:42:46 +0100 | <monochrom> | sewk and awek :) |
2022-03-08 20:44:17 +0100 | kilolympus | (~kilolympu@31.205.200.235) |
2022-03-08 20:45:28 +0100 | zincy_ | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
2022-03-08 20:46:40 +0100 | briandaed | (~root@109.95.142.93.r.toneticgroup.pl) (Quit: leaving) |
2022-03-08 20:47:59 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-03-08 20:53:52 +0100 | unyu | (~pyon@user/pyon) (Quit: brb) |
2022-03-08 20:54:39 +0100 | worldhelloworld | (~c1utt4r@164.68.96.37) |
2022-03-08 20:55:29 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:598a:8b0b:9405:6e26) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 20:55:37 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-03-08 20:56:57 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2022-03-08 20:57:21 +0100 | <maerwald> | `ghcup install ghcup` will end up trying to install a GHC with the version 'ghcup' |
2022-03-08 20:57:34 +0100 | <monochrom> | Oh heh |
2022-03-08 20:57:40 +0100 | <maerwald> | becaus `ghcup install <ver>` is the legacy form of installing GHC |
2022-03-08 20:57:45 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:1c1a:3fa2:4926:7c5a) |
2022-03-08 20:57:55 +0100 | <maerwald> | which is kept for compatibility |
2022-03-08 20:57:58 +0100 | <geekosaur> | figured it was something like that |
2022-03-08 20:58:13 +0100 | <monochrom> | Yeah I forgot that the parser could be trying "since ghcup is not a 'command' it must be a 'version/tag'" |
2022-03-08 20:58:23 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-03-08 20:58:50 +0100 | <worldhelloworld> | unrelated question - what free irc client is there that has a history of conversations even when you are disconnected? there is so much to learn from this group .... I tried irccloud, but that's paid ... any free versions? |
2022-03-08 20:58:52 +0100 | <monochrom> | as opposed to "parse error: ghcup is not a valid command" |
2022-03-08 20:59:37 +0100 | <maerwald> | much more confusing is this: `ghcup install lol-8.10.7` |
2022-03-08 20:59:56 +0100 | <monochrom> | See the /topic line for a volunteer's log website. |
2022-03-08 21:00:13 +0100 | <Unicorn_Princess> | worldhelloworld, what do you mean history when disconnected? like, that you can access your logs from when you were connected, even if you're not currently connected? |
2022-03-08 21:00:15 +0100 | <maerwald> | it will parse 'lol' as an arch-triple, because we support compiling cross-ghc, but it's ignored for install commands |
2022-03-08 21:00:37 +0100 | <monochrom> | If you really want to do your own recording, consider an "irc bouncer" so you have a background process that connects 24/7 |
2022-03-08 21:00:41 +0100 | <Unicorn_Princess> | or do you mean that will show you channel chat history even for times when you weren't connected? |
2022-03-08 21:01:16 +0100 | <monochrom> | (and the background process also serves as a proxy for your IRC client" |
2022-03-08 21:01:35 +0100 | <worldhelloworld> | Unicorn_Princess ... yes something like that - irccloud used to have a history of missed cconversations, current one i'm trying , hexchat, doesn't |
2022-03-08 21:02:14 +0100 | <Unicorn_Princess> | is there any reason i shouldn't stick OverloadedRecordDot and DuplicateRecordFields in .cabal's default-extensions and pretend haskell is sane? |
2022-03-08 21:02:27 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2022-03-08 21:02:43 +0100 | <sclv> | for a given project? no. have fun with them! |
2022-03-08 21:02:47 +0100 | <monochrom> | OverloadedRecordDot is not sane. |
2022-03-08 21:03:02 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 240 seconds) |
2022-03-08 21:03:07 +0100 | <sclv> | i mean i don't like it either, but if you do, just use it freely and see how it goes |
2022-03-08 21:03:21 +0100 | <Unicorn_Princess> | worldhelloworld, alas, as monochrom said, you will need something to connect to the channel in your stead and maintain a history. irc does not support offline history syncing |
2022-03-08 21:03:53 +0100 | <monochrom> | IRC servers don't record for you because they don't serve ads. |
2022-03-08 21:03:54 +0100 | <Unicorn_Princess> | that something is called an "irc bouncer" in the lingo |
2022-03-08 21:04:12 +0100 | <sclv> | the ircbrowse link in the channel description still maintains up to date logs |
2022-03-08 21:04:15 +0100 | <monochrom> | (or sell your credit card number to strangers) |
2022-03-08 21:04:15 +0100 | <Unicorn_Princess> | (and that's where my knowledge ends) |
2022-03-08 21:04:18 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-03-08 21:04:22 +0100 | <sclv> | so you can just browse those too |
2022-03-08 21:04:23 +0100 | <worldhelloworld> | Hmmm yes, the logs are one way, unfortunately not very interactive |
2022-03-08 21:04:29 +0100 | <Unicorn_Princess> | monochrom, what's not sane about overloadedrecorddot? |
2022-03-08 21:05:00 +0100 | <monochrom> | Cargo culting C, C++, and Java syntax is not sane. |
2022-03-08 21:05:25 +0100 | <monochrom> | I guess it was Algol syntax. |
2022-03-08 21:05:56 +0100 | <Unicorn_Princess> | i'll leave you to your personId, cowId, catId, dogId, etcId then :P |
2022-03-08 21:06:23 +0100 | <sclv> | ugh... that's terrible. Now, on the other hand, id_person, id_cow, id_cat, now that's great! |
2022-03-08 21:06:24 +0100 | <monochrom> | No I'm OK with for example SML's choice which is # IIRC. |
2022-03-08 21:06:24 +0100 | <worldhelloworld> | Pardon my ignorance, but what does the term "cargo culting" mean? Or is it some dismissive reference to a rusty language monochrom ? |
2022-03-08 21:06:55 +0100 | <monochrom> | Blindly mimicking things. |
2022-03-08 21:07:13 +0100 | <geekosaur> | see the pacific island cargo cults post-ww2 |
2022-03-08 21:07:26 +0100 | <worldhelloworld> | ok, thanks - googling now |
2022-03-08 21:07:40 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-08 21:07:40 +0100 | <geekosaur> | there are IRC clients like quassel which involve a bouncer component which stays connected, but that assumes you have some way for them to stay connected |
2022-03-08 21:07:40 +0100 | <monochrom> | For example "I saw other people doing pair programming, I must do the same! I don't ask why. I don't ask suitability to my context." |
2022-03-08 21:07:53 +0100 | <geekosaur> | otherwise, yes, you'd have to pay to have someone stay connected for you |
2022-03-08 21:08:25 +0100 | <geekosaur> | there's also matrix but I don't know if that's free either |
2022-03-08 21:08:55 +0100 | <worldhelloworld> | geekosaur , so if I have a cloud machine - is it easy to stay connected and then read it on another machine? I'd imagine it sounds a bit complicated to configure |
2022-03-08 21:09:13 +0100 | <geekosaur> | quassel would configure it for you |
2022-03-08 21:09:26 +0100 | <geekosaur> | otherwise you'd have to set up something like znc manually |
2022-03-08 21:09:28 +0100 | <worldhelloworld> | thats true monochrom - follow the herd :) |
2022-03-08 21:09:37 +0100 | ishutin | (~ishutin@87-97-88-220.pool.digikabel.hu) (Ping timeout: 272 seconds) |
2022-03-08 21:10:02 +0100 | <worldhelloworld> | ok will read if quassel fits my needs, configuring manually is a pain |
2022-03-08 21:10:02 +0100 | <sclv> | i believe i first became familiar with cargo cults from the classic Niven sci fi novel Dream Park |
2022-03-08 21:10:15 +0100 | <monochrom> | Unicorn_Princess, there are several sane choices. Use . for function composition, choose some other symbol for record selection. Or, use . for record selection, choose some other symbol for function composition. Using the same symbol for both is the insane one. |
2022-03-08 21:10:40 +0100 | <geekosaur> | dot does too many things already and it shows |
2022-03-08 21:10:46 +0100 | <monochrom> | FWIW SML chooses o for function composition, # for record selection. |
2022-03-08 21:10:51 +0100 | <geekosaur> | > [False..True] -- nope |
2022-03-08 21:10:52 +0100 | ishutin | (~ishutin@84-236-40-230.pool.digikabel.hu) |
2022-03-08 21:10:52 +0100 | <lambdabot> | error: |
2022-03-08 21:10:52 +0100 | <lambdabot> | Not in scope: ‘False..’ |
2022-03-08 21:10:52 +0100 | <lambdabot> | No module named ‘False’ is imported.error: |
2022-03-08 21:11:14 +0100 | <Hecate> | pity not everyone has easy access to ∘ on their keyboard |
2022-03-08 21:11:47 +0100 | <monochrom> | And SML was defined long before unicode existed. |
2022-03-08 21:12:15 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-03-08 21:12:24 +0100 | <ski> | SML's `#foo' also nicely differentiates between the field name, and the field accessor function |
2022-03-08 21:12:27 +0100 | <Hecate> | that being said I'd have also (|>) and (<|) |
2022-03-08 21:12:34 +0100 | worldhelloworld2 | (~quassel@vmi275462.contaboserver.net) |
2022-03-08 21:12:38 +0100 | <monochrom> | But we can still debate which one is more nighmarish, "g o h" or "g `o` h" :) |
2022-03-08 21:12:40 +0100 | <Hecate> | ski: don't we have that with overloaded labels nowadays? |
2022-03-08 21:12:52 +0100 | <Hecate> | monochrom: the second one has a funny face though |
2022-03-08 21:13:10 +0100 | <Hecate> | ( `o`) .oO(hello) |
2022-03-08 21:15:50 +0100 | simendsjo | (~user@84.211.91.241) |
2022-03-08 21:17:27 +0100 | <monochrom> | SML has the nice uniformity that tuples are records too, (x,y,z) is the record {1=x, 2=y, 3=z} using 1, 2, 3 as field names. |
2022-03-08 21:17:51 +0100 | <ski> | Hecate : well, you'd need `NoFieldSelectors', too |
2022-03-08 21:17:51 +0100 | <monochrom> | So #2 works for all of: (x,y), (x,y,z), (x,y,z,t), ... |
2022-03-08 21:19:00 +0100 | agumonke` | (~user@88.163.231.79) (Remote host closed the connection) |
2022-03-08 21:19:37 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) |
2022-03-08 21:22:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8852:a14c:a420:3fd8) (Remote host closed the connection) |
2022-03-08 21:22:59 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8852:a14c:a420:3fd8) |
2022-03-08 21:24:11 +0100 | yauhsien_ | (~yauhsien@61-231-43-120.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-03-08 21:24:30 +0100 | unyu | (~pyon@user/pyon) |
2022-03-08 21:25:04 +0100 | desantra | (~skykanin@user/skykanin) (Quit: WeeChat 3.3) |
2022-03-08 21:27:52 +0100 | zincy_ | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
2022-03-08 21:28:46 +0100 | <Hecate> | ski: I think NoFieldSelectors is good |
2022-03-08 21:30:29 +0100 | zincy_ | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
2022-03-08 21:33:01 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
2022-03-08 21:35:32 +0100 | zer0bitz | (~zer0bitz@2001:2003:f74d:b800:1d57:8085:a2ac:6196) |
2022-03-08 21:37:39 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) |
2022-03-08 21:39:04 +0100 | agumonkey | (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) |
2022-03-08 21:39:06 +0100 | zer0bitz_ | (~zer0bitz@2001:2003:f74d:b800:7859:22cf:713c:fe6e) (Ping timeout: 260 seconds) |
2022-03-08 21:39:50 +0100 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-03-08 21:40:22 +0100 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-03-08 21:41:17 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
2022-03-08 21:41:31 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
2022-03-08 21:42:33 +0100 | deadmarshal_ | (~deadmarsh@95.38.114.14) (Ping timeout: 272 seconds) |
2022-03-08 21:45:25 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 21:46:14 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-03-08 21:46:21 +0100 | dcoutts__ | (~duncan@host86-144-78-249.range86-144.btcentralplus.com) (Ping timeout: 272 seconds) |
2022-03-08 21:47:18 +0100 | neurocyte0917090 | (~neurocyte@IP-045014190241.dynamic.medianet-world.de) |
2022-03-08 21:47:18 +0100 | neurocyte0917090 | (~neurocyte@IP-045014190241.dynamic.medianet-world.de) (Changing host) |
2022-03-08 21:47:18 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-03-08 21:47:48 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds) |
2022-03-08 21:48:51 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2022-03-08 21:49:36 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:509f:97b6:34da:4a) |
2022-03-08 21:49:51 +0100 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Remote host closed the connection) |
2022-03-08 21:50:07 +0100 | <mastarija> | I'm wondering, is there an alternative to the `network` package? |
2022-03-08 21:50:42 +0100 | <Hecate> | not sure |
2022-03-08 21:50:49 +0100 | <geekosaur> | I think there might be higher level interfaces, but network is the loest level interface and would still be there underneath |
2022-03-08 21:50:53 +0100 | <geekosaur> | *lowest |
2022-03-08 21:51:06 +0100 | <Hecate> | hmm |
2022-03-08 21:51:08 +0100 | <Hecate> | https://hackage.haskell.org/package/network-bsd ? |
2022-03-08 21:51:09 +0100 | <Hecate> | maybe? |
2022-03-08 21:51:20 +0100 | <[exa]> | it would be pretty hard to write a really different alternative to the sockets API |
2022-03-08 21:51:24 +0100 | <mastarija> | I was just wondering if someone tried to do something else with low level networking |
2022-03-08 21:51:55 +0100 | <[exa]> | the BSD subpackage is about netdb name resolution |
2022-03-08 21:52:02 +0100 | acidjnk | (~acidjnk@p200300d0c7049f27690562e0ba62f824.dip0.t-ipconnect.de) |
2022-03-08 21:52:15 +0100 | <geekosaur> | yeh |
2022-03-08 21:52:42 +0100 | <geekosaur> | network-bsd is name resolution, network is sockets, the docs for network point to some higher level interfaces |
2022-03-08 21:52:46 +0100 | <[exa]> | mastarija: not really, berkeley sockets are kinda everywhere |
2022-03-08 21:53:01 +0100 | <geekosaur> | "Other packages provide higher level interfaces: |
2022-03-08 21:53:01 +0100 | <geekosaur> | connection |
2022-03-08 21:53:01 +0100 | <geekosaur> | hookup |
2022-03-08 21:53:01 +0100 | <geekosaur> | network-simple" |
2022-03-08 21:53:08 +0100 | <[exa]> | mastarija: as geekosaur said, there's plenty of middleware that adds abstractions/goodies (0mq etc) |
2022-03-08 21:53:27 +0100 | <mastarija> | yes I saw that |
2022-03-08 21:53:34 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-03-08 21:53:59 +0100 | <[exa]> | is there even an OS that uses a non-socketish API for networking? |
2022-03-08 21:54:06 +0100 | <mastarija> | but since there are usually 50 different takes on something in haskell I was surprised there's nothing for networking :D |
2022-03-08 21:54:33 +0100 | <geekosaur> | there used to be some that used alternatives, but de facto sockets have won |
2022-03-08 21:54:56 +0100 | <mastarija> | [exa], I'm not really looking for nonsocket networking, but maybe a different "wrapper" around the C library |
2022-03-08 21:55:23 +0100 | <geekosaur> | the problem here is that network itself shows how difficult writing such wrappers is |
2022-03-08 21:55:29 +0100 | <[exa]> | mastarija: for any specific purpose? |
2022-03-08 21:55:34 +0100 | <geekosaur> | it'skinda notoriously difficult to keep wprking |
2022-03-08 21:55:36 +0100 | <mastarija> | I was just interested if there's something out there |
2022-03-08 21:55:46 +0100 | <mastarija> | Like looking at weird animals in the zoo |
2022-03-08 21:55:50 +0100 | <mastarija> | nothing in particular :D |
2022-03-08 21:56:26 +0100 | <geekosaur> | especially on windows |
2022-03-08 21:56:29 +0100 | <mastarija> | geekosaur, yes I have problems on windows on occasions |
2022-03-08 21:56:30 +0100 | <[exa]> | mastarija: I tend to take all sockets and wrap them with the haskell handles and then pretend the world is a happy place with only handles and IO |
2022-03-08 21:56:44 +0100 | <mastarija> | xD |
2022-03-08 21:57:13 +0100 | <[exa]> | ah, windows |
2022-03-08 21:57:20 +0100 | <monochrom> | There are usually 50 different takes on something high-level. |
2022-03-08 21:59:55 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-03-08 22:00:50 +0100 | TQuid | (~TQuid@2604:3d08:6e7e:9700:9106:2a95:ca3a:5770) |
2022-03-08 22:02:07 +0100 | alMalsamo | lumberjack123 |
2022-03-08 22:02:15 +0100 | TQuid | register |
2022-03-08 22:02:20 +0100 | register | TQuid |
2022-03-08 22:02:44 +0100 | <janus> | mastarija: i have made uring/iocp api compatible bindings for chez (used via idris), something similar should be possible with haskell (except i don't know how the haskell rts works). |
2022-03-08 22:03:31 +0100 | <janus> | mastarija: https://git.sr.ht/~janus/ |
2022-03-08 22:03:48 +0100 | <geekosaur> | I think there might be some work on uring support in the rts |
2022-03-08 22:04:05 +0100 | <geekosaur> | not inany released version, and still early |
2022-03-08 22:04:16 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2022-03-08 22:05:37 +0100 | zer0bitz | (~zer0bitz@2001:2003:f74d:b800:1d57:8085:a2ac:6196) (Ping timeout: 250 seconds) |
2022-03-08 22:06:57 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-08 22:07:59 +0100 | <mastarija> | janus, never heard of uring |
2022-03-08 22:08:20 +0100 | <mastarija> | gonna check that out, thanks :) |
2022-03-08 22:08:24 +0100 | <janus> | mastarija: there are some good articles on lwn |
2022-03-08 22:10:03 +0100 | simendsjo | (~user@84.211.91.241) (Ping timeout: 256 seconds) |
2022-03-08 22:12:40 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-03-08 22:12:47 +0100 | <mastarija> | janus, thx, found one : https://lwn.net/Articles/810414/ |
2022-03-08 22:13:42 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
2022-03-08 22:14:27 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-03-08 22:15:24 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-03-08 22:17:17 +0100 | pavonia | (~user@user/siracusa) |
2022-03-08 22:18:28 +0100 | shailangsa | (~shailangs@host86-186-133-59.range86-186.btcentralplus.com) |
2022-03-08 22:19:08 +0100 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-03-08 22:19:24 +0100 | coot | (~coot@213.134.190.95) |
2022-03-08 22:20:50 +0100 | dcoutts__ | (~duncan@host86-144-78-249.range86-144.btcentralplus.com) |
2022-03-08 22:24:41 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8852:a14c:a420:3fd8) (Remote host closed the connection) |
2022-03-08 22:25:29 +0100 | cosimone | (~user@93-47-229-38.ip115.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-03-08 22:26:23 +0100 | <TQuid> | Anyone here had success setting up a Haskell environment on an M1 mac? |
2022-03-08 22:27:35 +0100 | <geekosaur> | ghc 8.10.7 should work fine |
2022-03-08 22:27:43 +0100 | <geekosaur> | 9.2.2 apparently has a signing problem |
2022-03-08 22:28:03 +0100 | <geekosaur> | but mostly people still use 8.10.7 so I wouldn't be in much hurry to upgrade anyway |
2022-03-08 22:28:19 +0100 | <TQuid> | Yeah, when I try to install that from the bindist, "make install" results in every single library giving a security exception ("cannot scan for malicious software"). I don't relish re-running make for every one of those |
2022-03-08 22:28:51 +0100 | <TQuid> | I have not found any way to tell the idiot OS to give a pass to a whole directory |
2022-03-08 22:29:01 +0100 | kongsheng | (~kongsheng@71.28.228.142) (Quit: Client closed) |
2022-03-08 22:29:25 +0100 | AlexZenon | (~alzenon@178.34.160.24) (Read error: Connection reset by peer) |
2022-03-08 22:29:26 +0100 | Alex_test | (~al_test@178.34.160.24) (Read error: Connection reset by peer) |
2022-03-08 22:29:26 +0100 | AlexNoo | (~AlexNoo@178.34.160.24) (Read error: Connection reset by peer) |
2022-03-08 22:30:40 +0100 | ubert | (~Thunderbi@p548c8d84.dip0.t-ipconnect.de) (Quit: ubert) |
2022-03-08 22:30:43 +0100 | <mastarija> | geekosaur, I just tried setting up 9.2.2 on windows and it's broken it seems |
2022-03-08 22:30:59 +0100 | <maerwald> | mastarija: yes |
2022-03-08 22:31:03 +0100 | <maerwald> | see https://gitlab.haskell.org/ghc/ghc/-/issues/21196 |
2022-03-08 22:31:22 +0100 | <mastarija> | :D |
2022-03-08 22:31:52 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 250 seconds) |
2022-03-08 22:32:58 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8852:a14c:a420:3fd8) |
2022-03-08 22:33:00 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-03-08 22:33:32 +0100 | <maerwald> | you can try putting yur msys2 into PATH |
2022-03-08 22:33:54 +0100 | <maerwald> | but that can cause all sorts of other problems |
2022-03-08 22:34:22 +0100 | <maerwald> | since windows uses PATH to look for dynamic libraries too |
2022-03-08 22:34:58 +0100 | AlexNoo | (~AlexNoo@178.34.160.24) |
2022-03-08 22:35:33 +0100 | Alex_test | (~al_test@178.34.160.24) |
2022-03-08 22:36:05 +0100 | AlexZenon | (~alzenon@178.34.160.24) |
2022-03-08 22:37:52 +0100 | <mastarija> | maerwald, I have msys2 in my path (parts of it) it works nicely and I quite like the experience. When I need a package, just pacman -S and it's on! |
2022-03-08 22:39:09 +0100 | ubert | (~Thunderbi@p200300ecdf3be9b38bc0692fc3914e47.dip0.t-ipconnect.de) |
2022-03-08 22:39:16 +0100 | dsrt^ | (~dsrt@50.232.121.75) (Remote host closed the connection) |
2022-03-08 22:39:47 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:509f:97b6:34da:4a) (Quit: Leaving) |
2022-03-08 22:41:56 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds) |
2022-03-08 22:42:20 +0100 | <janus> | maybe the msys2 equivalent of /usr/lib needs to be on the path for libgcc_s.dll to be found (i am guessing the file name) |
2022-03-08 22:42:39 +0100 | TQuid | (~TQuid@2604:3d08:6e7e:9700:9106:2a95:ca3a:5770) (Remote host closed the connection) |
2022-03-08 22:42:52 +0100 | Topsi | (~Tobias@dyndsl-095-033-088-239.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-03-08 22:43:00 +0100 | <maerwald> | it's absolutely not recommended |
2022-03-08 22:43:08 +0100 | <maerwald> | weird things will happen |
2022-03-08 22:43:35 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection) |
2022-03-08 22:47:46 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-03-08 22:48:51 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-03-08 22:50:50 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
2022-03-08 22:51:57 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-03-08 22:53:07 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-03-08 22:53:45 +0100 | <monochrom> | Yikes, I was hoping that 9.2.2 would solve all platform-related problems. Apparently, it has caused more. |
2022-03-08 22:54:04 +0100 | <monochrom> | OK, "caused" is unfair. suffered. |
2022-03-08 22:54:25 +0100 | <maerwald> | msys2 maintainers also managed to break GHC: https://github.com/msys2/MINGW-packages/issues/10837 |
2022-03-08 22:54:30 +0100 | <maerwald> | so you get hit from all angles |
2022-03-08 22:54:31 +0100 | <geekosaur> | 9.2.2 hasso far been abit of a cursedrelease. starting with "is not released" |
2022-03-08 22:54:51 +0100 | <monochrom> | (Someone on the mailing list reported a signature-checking error on intel mac.) |
2022-03-08 22:54:59 +0100 | <geekosaur> | yep |
2022-03-08 22:55:42 +0100 | merijn | (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-08 22:56:03 +0100 | <monochrom> | Though, the silver lining is that all the issues seem to be just packaging rather than fundamental eg code generator broken. :) |
2022-03-08 22:56:11 +0100 | <monochrom> | So, much easily fixable. |
2022-03-08 22:56:36 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-03-08 22:56:53 +0100 | <monochrom> | OK, I guess from the POV of the GHC devs, it is packaging that's the hard part. :) |
2022-03-08 22:56:57 +0100 | <geekosaur> | yeh, but imagine being poor bgamari right now |
2022-03-08 22:57:34 +0100 | <monochrom> | They're probably like "code optimization based on abstract interpretation is trivial" :) |
2022-03-08 22:59:31 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 245 seconds) |
2022-03-08 23:01:08 +0100 | <sm> | releasing is hard |
2022-03-08 23:01:18 +0100 | <sm> | sorry to hear 9.2.2 is continuing the tradition .. :/ |
2022-03-08 23:03:58 +0100 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-03-08 23:05:02 +0100 | <romesrf> | hahaah |
2022-03-08 23:05:27 +0100 | <romesrf> | it is indeed unfortunate that so much work is required for that all to work |
2022-03-08 23:06:10 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-03-08 23:06:43 +0100 | <maerwald> | well, first of all: supporting windows is hard anyway |
2022-03-08 23:07:11 +0100 | <romesrf> | :') *windows* is hard |
2022-03-08 23:07:17 +0100 | <maerwald> | then supporting mac is hard |
2022-03-08 23:07:24 +0100 | <maerwald> | M1 even harder |
2022-03-08 23:07:32 +0100 | <maerwald> | then FreeBSD is a nightmare at times |
2022-03-08 23:07:51 +0100 | <maerwald> | alpine linux also causes issues |
2022-03-08 23:07:54 +0100 | <maerwald> | and the list goes on |
2022-03-08 23:08:02 +0100 | <romesrf> | it does seem like a chore |
2022-03-08 23:08:05 +0100 | <sm> | bgamari needs help |
2022-03-08 23:08:13 +0100 | <romesrf> | sm: how can we help? |
2022-03-08 23:08:31 +0100 | <maerwald> | clone em |
2022-03-08 23:08:41 +0100 | <sm> | get hired as a full time engineer with the GHC team |
2022-03-08 23:08:46 +0100 | <romesrf> | sm: dream job? |
2022-03-08 23:08:56 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-03-08 23:09:01 +0100 | <sm> | hehe maybe ask bgamari |
2022-03-08 23:09:12 +0100 | <sm> | yes and no :) |
2022-03-08 23:09:17 +0100 | <sm> | I imagine |
2022-03-08 23:09:28 +0100 | Maxdaman1us | (~Maxdamant@user/maxdamantus) |
2022-03-08 23:09:30 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8852:a14c:a420:3fd8) (Remote host closed the connection) |
2022-03-08 23:09:34 +0100 | <romesrf> | "OK everyone 9.2.2 is out everyone get back on code optimization" |
2022-03-08 23:09:44 +0100 | <romesrf> | *everyone is happy for a month* |
2022-03-08 23:09:51 +0100 | <romesrf> | OK everyone 9.2.3 let's go |
2022-03-08 23:09:57 +0100 | <romesrf> | 3 months of hell? |
2022-03-08 23:09:59 +0100 | <romesrf> | :) |
2022-03-08 23:10:12 +0100 | <Unicorn_Princess> | hm. project-name.cabal other-modules and default-extensions lists are newline-separated, but build-depends needs commas between items. what gives? |
2022-03-08 23:10:56 +0100 | <romesrf> | sm: unfortunately full time isn't on the table for me, the thesis comes first |
2022-03-08 23:10:58 +0100 | <maerwald> | Unicorn_Princess: because you already have optional whitespace between dependency name and version range |
2022-03-08 23:11:08 +0100 | <sm> | picture how Debian supports multiple architectures. It's an army of maintainers all working together. (Actually it's probably a much smaller number of hard-working folks. But in principle, it's definitely not expected to all be handled by 1-2 people) |
2022-03-08 23:11:13 +0100 | <romesrf> | but "where" is bgamari working? |
2022-03-08 23:11:31 +0100 | <Unicorn_Princess> | maerwald, aaah, ugly, but makes sense, thanks |
2022-03-08 23:11:47 +0100 | <monochrom> | If the job is just to pick one single platform and support it, it could be a dream job. If the job is to support multiple platforms, that's a nightmare job. |
2022-03-08 23:11:51 +0100 | <janus> | Unicorn_Princess: you can avoid the commas by having multiple build-depends |
2022-03-08 23:11:54 +0100 | <maerwald> | sm: a distro like debian probably has 50 active volunteers and easily up to 200 devs in total |
2022-03-08 23:12:00 +0100 | <sm> | I think he and maybe others like mpickering are employees of Well-Typed and part/full time funded to work on GHC |
2022-03-08 23:12:04 +0100 | <romesrf> | monochrom: I can see that :) |
2022-03-08 23:12:05 +0100 | <monochrom> | Ugh wait a second! nightmare is a special case of dream... >:) |
2022-03-08 23:12:12 +0100 | <Unicorn_Princess> | lol |
2022-03-08 23:12:22 +0100 | <romesrf> | monochrom: LOL |
2022-03-08 23:12:26 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 260 seconds) |
2022-03-08 23:12:34 +0100 | <romesrf> | instance Dreamable Nightmare |
2022-03-08 23:13:56 +0100 | biberu | (~biberu@user/biberu) |
2022-03-08 23:14:18 +0100 | <romesrf> | perhaps you know impurepics.com, they have some really funny images |
2022-03-08 23:14:23 +0100 | <romesrf> | this one always comes to mind: https://impurepics.com/posts/2018-07-29-names-dont-matter.html |
2022-03-08 23:14:25 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-03-08 23:14:42 +0100 | <monochrom> | Haha rosable. |
2022-03-08 23:16:10 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:9e8a:8fa1:6b4e:dd92) |
2022-03-08 23:17:34 +0100 | Maxdaman1us | (~Maxdamant@user/maxdamantus) (Ping timeout: 260 seconds) |
2022-03-08 23:17:58 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:9e8a:8fa1:6b4e:dd92) (Client Quit) |
2022-03-08 23:19:17 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-03-08 23:21:59 +0100 | Guest14 | (~Guest14@185.249.168.124) |
2022-03-08 23:22:31 +0100 | Guest14 | (~Guest14@185.249.168.124) (Client Quit) |
2022-03-08 23:22:34 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8852:a14c:a420:3fd8) |
2022-03-08 23:26:49 +0100 | jz99 | (~jz99@pa49-186-65-17.pa.vic.optusnet.com.au) |
2022-03-08 23:27:08 +0100 | jz99 | (~jz99@pa49-186-65-17.pa.vic.optusnet.com.au) (Remote host closed the connection) |
2022-03-08 23:27:09 +0100 | euouae | (~euouae@user/euouae) |
2022-03-08 23:27:25 +0100 | <euouae> | Hello does anyone else have two entries of ~/.cabal/bin and ~/.gchup/bin in their $PATH? |
2022-03-08 23:27:36 +0100 | jz99 | (~jz99@pa49-186-65-17.pa.vic.optusnet.com.au) |
2022-03-08 23:28:07 +0100 | jz99 | (~jz99@pa49-186-65-17.pa.vic.optusnet.com.au) (Remote host closed the connection) |
2022-03-08 23:28:09 +0100 | <monochrom> | I think most people do. |
2022-03-08 23:28:22 +0100 | <euouae> | why is that monochrom, shouldn't there be a single entry instead? |
2022-03-08 23:28:25 +0100 | <geekosaur> | I think they might mean two of each? |
2022-03-08 23:28:29 +0100 | <euouae> | ah yeah, two of each |
2022-03-08 23:28:38 +0100 | kaph | (~kaph@151.35.10.65) |
2022-03-08 23:28:48 +0100 | <geekosaur> | ideally there'd be only one. you might have to check your shell dotfiles for duplication |
2022-03-08 23:29:04 +0100 | <euouae> | I can't even figure out where it is that it gets added |
2022-03-08 23:29:09 +0100 | <monochrom> | I don't, but that's because I set up my ~/.cabal/config to have a non-default setting about installdir so I have ~/bin instead of ~/.cabal/bin |
2022-03-08 23:29:18 +0100 | <euouae> | I don't see it under my .bashrc or .profile nor my corresponding /etc files |
2022-03-08 23:30:11 +0100 | <geekosaur> | look for a line which sources ~/.ghcup/env |
2022-03-08 23:30:22 +0100 | <geekosaur> | or possibly two such lines |
2022-03-08 23:30:42 +0100 | <euouae> | aha, thanks. I will investigate. that does bring up results |
2022-03-08 23:30:53 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-03-08 23:31:31 +0100 | <euouae> | in ~/.bashrc there's [ -f "/home/fox/.ghcup/env" ] && source "/home/fox/.ghcup/env" |
2022-03-08 23:31:39 +0100 | fendor_ | (~fendor@178.165.181.170.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-03-08 23:31:44 +0100 | <euouae> | that one should be fine, as -f only tests for existence I believe, so ... hmm... |
2022-03-08 23:31:48 +0100 | <geekosaur> | yes |
2022-03-08 23:32:12 +0100 | <monochrom> | What if something runs .bashrc twice? |
2022-03-08 23:33:09 +0100 | <euouae> | That's probably it |
2022-03-08 23:33:16 +0100 | <geekosaur> | .bashrc is run with every shell, .profile only by a login shell. if you start a second shell under the first it'll add them to $PATH again |
2022-03-08 23:33:47 +0100 | <euouae> | but who added that line to my .bashrc? Was it me? |
2022-03-08 23:34:23 +0100 | <euouae> | It's not automatically done by ghcup, right? I must've mistakenly modified my .bashrc instead of .profile |
2022-03-08 23:34:45 +0100 | <monochrom> | The "curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh" thing does. Although, it did ask you. |
2022-03-08 23:35:02 +0100 | <maerwald> | euouae: that has been fixed |
2022-03-08 23:35:03 +0100 | <geekosaur> | shouldn't it have added it to .profile though? |
2022-03-08 23:35:10 +0100 | <geekosaur> | oh |
2022-03-08 23:35:21 +0100 | <maerwald> | https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/229 |
2022-03-08 23:35:24 +0100 | <euouae> | aha, okay. thanks again for all the clarifications and the unix lesson :D |
2022-03-08 23:35:50 +0100 | <maerwald> | 2 months ago, so if you re-run the ghcup installer, it will fix ~/.ghcup/env |
2022-03-08 23:35:54 +0100 | kaph | (~kaph@151.35.10.65) (Remote host closed the connection) |
2022-03-08 23:36:16 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2022-03-08 23:36:22 +0100 | kaph | (~kaph@151.35.10.65) |
2022-03-08 23:37:04 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-03-08 23:37:37 +0100 | <monochrom> | neat trick :) |
2022-03-08 23:37:38 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
2022-03-08 23:37:48 +0100 | <euouae> | maerwald https://www.haskell.org/ghcup/install/#manual-install the website could also be fixed |
2022-03-08 23:38:06 +0100 | <euouae> | Because it seems that it's still suggesting the old thing? |
2022-03-08 23:38:22 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-03-08 23:38:53 +0100 | <euouae> | won't re-running ghcup also re-download everything? |
2022-03-08 23:39:03 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-03-08 23:39:03 +0100 | <maerwald> | not much |
2022-03-08 23:39:37 +0100 | <maerwald> | You can also: curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=1 sh |
2022-03-08 23:40:46 +0100 | <euouae> | I'm going to write my own hack that detects .cabal/bin presence in $PATH for now |
2022-03-08 23:41:17 +0100 | <maerwald> | euouae: the link I gave you shows how to do it |
2022-03-08 23:41:36 +0100 | haskellnoob | (~haskellno@181.122.131.227) |
2022-03-08 23:42:57 +0100 | <haskellnoob> | hello all, it's me again with another noob question where I am stuck |
2022-03-08 23:43:01 +0100 | <haskellnoob> | https://pastebin.com/RSTJEZnb |
2022-03-08 23:43:47 +0100 | <haskellnoob> | basically I have a newtype wrapped around a bytestring that gets hex-encoded, but I cannot implement the FromJSON instance, I'm just not smart enough to figure it out |
2022-03-08 23:44:15 +0100 | <euouae> | maerwald in that commit, right? yup, but I'm going with the simpler $PATH =~ "cabal/.bin" |
2022-03-08 23:45:16 +0100 | <geekosaur> | https://github.com/geekosaur/dotty/blob/master/.bsa-common#L21-L53 for those who like their minds blown :þ |
2022-03-08 23:47:10 +0100 | ubert | (~Thunderbi@p200300ecdf3be9b38bc0692fc3914e47.dip0.t-ipconnect.de) (Quit: ubert) |
2022-03-08 23:47:23 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) |
2022-03-08 23:47:32 +0100 | Guest|40 | (~Guest|40@dsl-94-229-145-149.pool.bitel.net) |
2022-03-08 23:47:50 +0100 | ubert | (~Thunderbi@p200300ecdf3be9b34516931a7c3fe14b.dip0.t-ipconnect.de) |
2022-03-08 23:47:56 +0100 | Guest|40 | (~Guest|40@dsl-94-229-145-149.pool.bitel.net) () |
2022-03-08 23:48:33 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-03-08 23:49:30 +0100 | <[exa]> | haskellnoob: I guess it's missing a simple conversion back into the bytestring. do you have a function that converts the hex back? |
2022-03-08 23:49:32 +0100 | <euouae> | cool trick with IFS |
2022-03-08 23:51:07 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving) |
2022-03-08 23:51:16 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2022-03-08 23:51:49 +0100 | <bgamari> | geekosaur, heh, life isn't so bad for me |
2022-03-08 23:51:56 +0100 | <bgamari> | romesrf, I'm in New Hampshire |
2022-03-08 23:52:10 +0100 | kaph_ | (~kaph@93-39-148-20.ip76.fastwebnet.it) |
2022-03-08 23:52:11 +0100 | <bgamari> | geekosaur, it is indeed a tad annoying that we have to do yet another release |
2022-03-08 23:52:36 +0100 | <bgamari> | but as you say, this is a problem that we know how to fix |
2022-03-08 23:52:49 +0100 | da39a3ee5e6b4b0d | (~textual@2403:6200:8876:d2a9:6da2:b132:dfcb:fb0e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-03-08 23:52:51 +0100 | <bgamari> | things could be much worse and we are certainly converging |
2022-03-08 23:53:15 +0100 | <bgamari> | the "not" mistake on the other hand I was quite annoyed by :) |
2022-03-08 23:53:35 +0100 | da39a3ee5e6b4b0d | (~textual@mx-ll-171.5.29-46.dynamic.3bb.co.th) |
2022-03-08 23:54:55 +0100 | kaph | (~kaph@151.35.10.65) (Ping timeout: 272 seconds) |
2022-03-08 23:55:33 +0100 | dsrt^ | (~dsrt@50.232.121.75) |
2022-03-08 23:55:59 +0100 | <haskellnoob> | exa, I now have this, at least compiling: https://pastebin.com/n9HViRdP - but I think the usage of "fromJust" is wrong here |
2022-03-08 23:57:48 +0100 | <maerwald> | haskellnoob: you can case match on it and use `fail "blah"` for Nothing |
2022-03-08 23:58:03 +0100 | <maerwald> | https://hackage.haskell.org/package/aeson-2.0.3.0/docs/Data-Aeson-Types.html#t:Parser has a MonadFail instance |
2022-03-08 23:58:37 +0100 | <haskellnoob> | that works, nice !! |
2022-03-08 23:58:46 +0100 | <haskellnoob> | thanks a lot guys, you're my heros |