Logs on 2024-05-26 (liberachat/#haskell)
| 00:16:48 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 00:21:00 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
| 00:22:16 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:22:30 | → | gentauro joins (~gentauro@user/gentauro) |
| 00:24:37 | → | troydm joins (~troydm@user/troydm) |
| 00:32:36 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:34:12 | → | califax joins (~califax@user/califx) |
| 00:36:36 | → | o-90 joins (~o-90@gateway/tor-sasl/o-90) |
| 00:40:14 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:40:43 | → | califax joins (~califax@user/califx) |
| 00:42:28 | × | Square2 quits (~Square@user/square) (Ping timeout: 260 seconds) |
| 00:44:45 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:56:09 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:56:52 | → | califax joins (~califax@user/califx) |
| 01:01:17 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 240 seconds) |
| 01:03:15 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 01:30:39 | → | madariaga joins (~madariaga@user/madariaga) |
| 01:31:09 | <madariaga> | hi, can tuples be added like vectors? as in (0, 1) + (1, 0) = (1, 1) |
| 01:31:29 | <geekosaur> | no |
| 01:31:29 | <glguy> | not without you adding an extra Num instance that isn't in the base package |
| 01:31:42 | <madariaga> | ok thanks |
| 01:31:54 | <geekosaur> | I'm not even sure how you would define it |
| 01:32:49 | <glguy> | instance (Num a, Num b) => Num (a, b) where (x,y) + (z,w) = (x+z,y+w); ... ; fromIntegral x = (fromIntegral x, fromIntegral x) |
| 01:32:51 | <glguy> | stuff like that I assume |
| 01:33:13 | <c_wraith> | If you want something that works like vectors, I'd really recommend using the linear package. V2 just does what you want |
| 01:33:18 | <geekosaur> | it's the ... that makes me wonder. what's abs? signum? |
| 01:33:44 | <glguy> | geekosaur: abs (x,y) = (abs x, abs y) ; same for signum |
| 01:42:51 | × | o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection) |
| 01:44:22 | <EvanR> | V2 has a lot more support than you want to write yourself for subset of (,) |
| 01:44:44 | → | fizbin__ joins (~fizbin@user/fizbin) |
| 01:56:23 | × | otto_s quits (~user@p5de2f67f.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 01:57:38 | → | otto_s joins (~user@p4ff27cd0.dip0.t-ipconnect.de) |
| 02:00:01 | × | fliife quits (~fliife@user/fliife) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in) |
| 02:00:51 | → | fliife joins (~fliife@user/fliife) |
| 02:05:02 | × | op_4 quits (~tslil@user/op-4/x-9116473) (Remote host closed the connection) |
| 02:05:31 | → | op_4 joins (~tslil@user/op-4/x-9116473) |
| 02:12:21 | → | ddellacosta joins (~ddellacos@ool-44c73d29.dyn.optonline.net) |
| 02:22:46 | × | Rodney_ quits (~Rodney@176.254.244.83) (Read error: Connection reset by peer) |
| 02:30:46 | × | destituion quits (~destituio@2a02:2121:607:127a:8ad9:5c0a:45fb:3e09) (Ping timeout: 255 seconds) |
| 02:33:31 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 02:34:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 02:34:25 | → | philopsos1 joins (~caecilius@user/philopsos) |
| 02:59:00 | × | td_ quits (~td@i53870937.versanet.de) (Ping timeout: 268 seconds) |
| 02:59:30 | × | fizbin__ quits (~fizbin@user/fizbin) (Remote host closed the connection) |
| 03:00:29 | → | td_ joins (~td@i5387093D.versanet.de) |
| 03:02:16 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds) |
| 03:10:16 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 04:30:19 | × | xdminsy quits (~xdminsy@117.147.70.240) (Remote host closed the connection) |
| 04:30:47 | → | xdminsy joins (~xdminsy@117.147.70.240) |
| 04:53:45 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 05:06:55 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:51:05 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 05:54:18 | × | euleritian quits (~euleritia@dynamic-176-006-185-100.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 05:54:36 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:05:18 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:05:32 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Remote host closed the connection) |
| 06:14:58 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 06:19:32 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 06:22:11 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 06:33:29 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 06:38:04 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 06:54:24 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 260 seconds) |
| 06:57:29 | × | philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 252 seconds) |
| 07:00:02 | × | tt1231097 quits (~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Quit: The Lounge - https://thelounge.chat) |
| 07:00:24 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:00:51 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 07:02:45 | → | tt1231097 joins (~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) |
| 07:04:28 | → | euphores joins (~SASL_euph@user/euphores) |
| 07:05:40 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 07:15:11 | × | xff0x quits (~xff0x@2405:6580:b080:900:18cf:170e:58a4:4739) (Ping timeout: 260 seconds) |
| 07:16:17 | → | acidjnk joins (~acidjnk@p200300d6e714dc267155b07e20dae7cf.dip0.t-ipconnect.de) |
| 07:22:19 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 07:22:32 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:26:26 | → | xff0x joins (~xff0x@2405:6580:b080:900:9755:68f6:487e:4599) |
| 07:28:51 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 07:33:25 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 07:37:52 | × | lyxia quits (~lyxia@poisson.chat) (Quit: WeeChat 4.2.2) |
| 07:41:52 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 07:42:54 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 07:46:59 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 07:47:16 | → | oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) |
| 07:51:16 | → | lyxia joins (~lyxia@poisson.chat) |
| 07:53:22 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 07:54:42 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:58:47 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 08:00:48 | → | Nixkernal joins (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) |
| 08:01:07 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 08:05:41 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 08:11:52 | <tomsmeding> | geekosaur: you probably made the mistake of assuming that the Num operations make any sense |
| 08:12:20 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:12:51 | <tomsmeding> | let's start with taking fromInteger out of Num and allowing implementing Num for rank0typed arrays |
| 08:12:53 | <tomsmeding> | *rank-typed |
| 08:13:15 | <tomsmeding> | (I can add 2-dimensional arrays, but what is "17" as a 2-dimensional array? Where is the size supposed to come from?) |
| 08:19:57 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 08:21:22 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:24:28 | → | Guest64 joins (~Guest64@p200300cdb730567a31d3106a893235d7.dip0.t-ipconnect.de) |
| 08:24:36 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 08:26:44 | → | notzmv joins (~daniel@user/notzmv) |
| 08:27:06 | <Leary> | tomsmeding: Though `Num` indeed ought to be split up, the individual parts make plenty of sense. The missing law here is: `fromInteger` must be the (unique!) homomorphism from the Integers to the ring in question. |
| 08:31:27 | <Leary> | Also, ring products are a standard construction. We have monoid products up to 5-tuples, so we really ought to have the Num instances here too. |
| 08:37:36 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 08:38:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:42:48 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 08:43:08 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 08:52:56 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 08:53:35 | → | __monty__ joins (~toonn@user/toonn) |
| 08:55:48 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 09:00:50 | × | mesaoptimizer quits (~mesaoptim@user/PapuaHardyNet) (Quit: zzz) |
| 09:02:05 | × | Guest64 quits (~Guest64@p200300cdb730567a31d3106a893235d7.dip0.t-ipconnect.de) (Quit: Client closed) |
| 09:02:11 | × | lockywolf quits (~lockywolf@public.lockywolf.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 09:02:17 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 09:02:23 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 272 seconds) |
| 09:02:58 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 09:04:11 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 09:05:47 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:07:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:07:31 | × | Nixkernal quits (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) (Quit: No Ping reply in 180 seconds.) |
| 09:07:47 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 09:07:49 | → | billchenchina joins (~billchenc@103.152.35.21) |
| 09:08:56 | → | Nixkernal joins (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) |
| 09:12:20 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 09:16:57 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 272 seconds) |
| 09:17:39 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 09:18:40 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 09:21:15 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 09:24:15 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:26:33 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 09:31:24 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 09:34:40 | → | guy joins (~guy@sgyl-43-b2-v4wan-169648-cust2111.vm6.cable.virginm.net) |
| 09:34:46 | <guy> | hi |
| 09:35:35 | <guy> | some of the users here are set up on a server at the uni to deliver delayed messages from my profs, are there any human users online? |
| 09:35:59 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 09:39:12 | ncf | beeps |
| 09:39:59 | <guy> | turing test complete! |
| 09:40:45 | <guy> | not that i mind talking to my profs... its just they have different constraints on how they can help me or participate in collaboration |
| 09:40:48 | <ski> | delayed messages from your profs ? |
| 09:40:58 | <guy> | but late for that! |
| 09:41:03 | <guy> | bit* |
| 09:41:09 | → | lockywolf joins (~lockywolf@public.lockywolf.net) |
| 09:41:24 | ski | doesn't really understand the motivation for the question |
| 09:41:44 | <guy> | so im working on an AGI |
| 09:41:49 | <guy> | i actually have it complete |
| 09:41:57 | <guy> | im wondering where to go from here |
| 09:42:13 | <guy> | it has taken a long time! |
| 09:42:14 | <ski> | make it sound ? |
| 09:42:27 | <guy> | people complain if i start moaning... |
| 09:42:35 | <sprout> | AGI doesn't need to be sound, people aren't sound |
| 09:42:46 | <guy> | wait, what do you mean sound? |
| 09:42:53 | <guy> | it is written in a legible cannical form |
| 09:43:24 | <guy> | cannonical* |
| 09:44:08 | <guy> | i think basically i might have thought by that you meant that i should apply it to classifying phonemes |
| 09:44:21 | <guy> | but really it is a application agnostic |
| 09:44:44 | <guy> | and id prefer not to have it mussed up with any application |
| 09:44:53 | <guy> | especially not something with application to human control |
| 09:44:57 | ski | . o O ( "In Sound Mind" (OST) by The Living Tombstone in 2020-06-25 at <https://www.youtube.com/watch?v=LsNd5DmbOgA&list=PL5-WT4DlkvgpZCLKZuDSgwbsY7jRBlkGw>, for a game by Modus & We Create Stuff ) |
| 09:45:47 | <guy> | ok, if thats how you think we should speak about this? |
| 09:46:00 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:46:24 | <ski> | i'm not too sure what exactly you have produced, tbh |
| 09:46:39 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:46:43 | <ski> | is this some kind of LLM thing, or perhaps something else ? |
| 09:46:45 | <guy> | er... i certainly do not endorse this "song" you have shared |
| 09:47:01 | <guy> | oh, you request the working definition for AGI |
| 09:47:16 | <ncf> | i request that this move to #haskell-offtopic |
| 09:47:24 | <guy> | an AI applied to training such an AI to get better at training itself to do this |
| 09:47:39 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:47:45 | <guy> | ncf: yeah, the song was certainly off topic, and is not how we should discuss this. |
| 09:48:00 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 09:48:02 | <ncf> | no, the whole discussion |
| 09:48:47 | <guy> | what "whole discussion" |
| 09:48:54 | <guy> | basically. no |
| 09:49:03 | <guy> | dont start pushing people around, people end up getting banned |
| 09:49:06 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:49:17 | <guy> | it might seem like a reasonable request, but its normally an excuse for a pile on |
| 09:49:24 | <guy> | this is illigal in the UK where i am residing |
| 09:49:30 | <guy> | ok. |
| 09:50:12 | <guy> | we can have code examples, and engage the community in this project if we do so responsibly |
| 09:51:58 | × | mqlnv quits (~tripod@47.154.25.27) (Remote host closed the connection) |
| 09:52:27 | × | guy quits (~guy@sgyl-43-b2-v4wan-169648-cust2111.vm6.cable.virginm.net) (Quit: Connection closed) |
| 09:53:23 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:53:24 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 09:53:55 | → | mesaoptimizer joins (~mesaoptim@user/PapuaHardyNet) |
| 09:57:04 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:58:16 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:59:00 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 10:00:04 | → | safinaskar joins (~quassel@212.73.77.104) |
| 10:00:08 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:02:15 | <safinaskar> | as well as i understand, there is some transformation, which converts normal imperative code with side effects to code written using monads (or vice-versa). how it is called? |
| 10:07:30 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 10:08:30 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 10:09:19 | <ski> | hm, i guess something like a monadic ANF transformation |
| 10:12:09 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:13:17 | <safinaskar> | ski: i googled "monadic ANF transformation" and got nothing |
| 10:13:25 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 10:14:21 | <int-e> | ANF = https://en.wikipedia.org/wiki/A-normal_form I guess |
| 10:17:47 | <ncf> | perhaps look at Moggi's papers on monads; i'm not sure there is a specific translation with a name |
| 10:17:52 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 10:18:33 | <tomsmeding> | also kind of related to the idea of "idiom brackets" |
| 10:20:06 | <ski> | yes |
| 10:20:39 | <ski> | i recall seeing some paper mentioning such a transformation, but alas, can't recall which. maybe it was Wadler, or maybe someone else |
| 10:20:40 | <int-e> | or simply expanding do-blocks |
| 10:20:56 | <ncf> | hmm, i didn't remember https://en.wikipedia.org/wiki/Monad_(functional_programming) looking so good |
| 10:21:01 | <ski> | basically, it would look a bit similar to CPS transformation |
| 10:21:09 | <int-e> | @undo do x <- a; let { y = f x }; c y |
| 10:21:09 | <lambdabot> | a >>= \ x -> let { y = f x} in c y |
| 10:22:24 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 10:24:51 | <safinaskar> | ncf: yeah, i think it is called "Moggi transformation" |
| 10:25:08 | <int-e> | Somehow it feels less like a transformation and more like specifying semantics for the imperative code to me. |
| 10:26:00 | <int-e> | I love keywords that have less than 10 hits on Google :) |
| 10:27:19 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 10:27:28 | <int-e> | Once you have the concept of monads and their capability to capture effects and sequencing this step becomes very shallow. No doubt many people have done that as part of other works, but does it even deserve a name? |
| 10:27:34 | <ncf> | yeah, i agree |
| 10:27:43 | <ncf> | hmm this diagram is slightly off https://en.wikipedia.org/wiki/Monad_(functional_programming)#/media/File:Multivalued_functions_with_List_monad.svg |
| 10:28:36 | <ski> | [| x |] = return x |
| 10:28:44 | <ski> | [| \x0 -> e1 |] = return (\x0 -> [| e1 |]) |
| 10:28:50 | <ski> | [| e e0 |] = [| e |] >>= \v -> [| e0 |] >>= \v0 -> v v0 |
| 10:28:53 | <ski> | compare with |
| 10:29:02 | <ski> | [| x |] = \k -> k x |
| 10:29:09 | <ski> | [| \x0 -> e1 |] = \k -> k (\x0 k1 -> [| e1 |] k1) |
| 10:29:12 | <ski> | [| e e0 |] = \k1 -> [| e |] \v -> [| e0 |] \v0 -> v v0 k1 |
| 10:29:22 | <ski> | .. the latter being cbv CPS transformation |
| 10:30:11 | <tomsmeding> | both decide on an order of evaluation |
| 10:30:54 | <ski> | yep |
| 10:30:54 | <tomsmeding> | although CPS is, in some sense, nothing more than precisely that, whereas monadic lifting does a bit more, semantically |
| 10:31:00 | <tomsmeding> | maybe |
| 10:31:12 | <ski> | (and pick, say, `Cont o' as the monad ..) |
| 10:31:17 | <tomsmeding> | :) |
| 10:31:17 | <int-e> | I imagine that you can plug in Cont r as a monad to the top one to get the bottom one, so it's a generalization. |
| 10:31:33 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 10:32:10 | <ski> | ANF basically lifts out nested expressions into explicit `let'. for monadic, you could simply use `do' instead |
| 10:34:14 | <ski> | ncf : it looks weird, yea |
| 10:35:25 | <tomsmeding> | I feel like there is an implicit reassociation step before that 'map' |
| 10:35:41 | <tomsmeding> | where they go from `(cbrt [8, -8])` to `(map cbrt) [8, -8]` |
| 10:36:07 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 272 seconds) |
| 10:37:05 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 10:37:39 | <ncf> | https://commons.wikimedia.org/w/index.php?title=File_talk%3AMultivalued_functions_with_List_monad.svg#map_cbrt_should_be_a_single_step |
| 10:38:08 | <tomsmeding> | heh |
| 10:39:04 | → | destituion joins (~destituio@2a02:2121:6c3:b5b4:4960:5aad:77da:7e14) |
| 10:40:51 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 10:45:35 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 10:56:43 | <safinaskar> | i once found a toot in some mastodon server (maybe types.pl), which said something like this: "in haskell programmers are punished for using side effects. haskell was intentionally made to make side effects as painful as possible. so haskell programmers learnt that they should use side effects as little as possible. but such design is wrong. in fact, proper programming language should implement automatic Moggi transformation" |
| 10:56:53 | <safinaskar> | please, help me find this original too |
| 10:56:56 | <safinaskar> | original toot |
| 10:57:02 | <safinaskar> | i am unable to find it anymore |
| 10:57:16 | <sprout> | yah, sounds important |
| 10:58:48 | <tomsmeding> | the retrofitting of that idea is idiom brackets, I think |
| 10:59:16 | <ncf> | sounds like something conor would say |
| 10:59:45 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 11:00:01 | <ski> | that does sentiment does sound a bit confused |
| 11:00:06 | → | gmg joins (~user@user/gehmehgeh) |
| 11:00:15 | <ncf> | https://types.pl/@pigworker/112214856633998920 |
| 11:00:52 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 11:01:28 | <sprout> | it's more a sentiment than anything else. haskell wasn't engineered to make side effects painful |
| 11:01:32 | <ski> | (specifically "make side effects as painful as possible". not counting `unsafePerformIO' and similar, there are no side-effects, so therefore it both makes side-effects as easy as possible, and as hard as possible. (vacuously)) |
| 11:01:36 | × | mrmr1553343 quits (~mrmr@user/mrmr) (Quit: Bye, See ya later!) |
| 11:01:47 | <tomsmeding> | the toot is also a bit "from the category theory bubble", I'd say :p |
| 11:01:52 | <sprout> | maybe they are, but that's up the eye of the beholder since most haskell programmers seem to do fine |
| 11:02:23 | <ski> | i do agree that some notion of automatic Moggi could be useful, though |
| 11:02:25 | <int-e> | What does he mean by "imagine that carrier determines structure"? |
| 11:03:33 | <ski> | (hm, that page is blank, for me) |
| 11:03:44 | <safinaskar> | ncf: toot i'm talking about was made earlier that this April 2024. thanks anyway |
| 11:04:04 | <ncf> | int-e: probably the fact that instances have to be unique, and you "select" which instance to use by wrapping things in newtypes |
| 11:04:13 | <int-e> | ski: Mastodon needs Javascript unfortunately. |
| 11:04:18 | <ski> | what ncf said |
| 11:04:25 | <ski> | int-e : it's enabled |
| 11:04:32 | <int-e> | oh. odd. |
| 11:04:37 | <ncf> | maybe you need more javascript |
| 11:04:41 | <tomsmeding> | https://tomsmeding.com/ss/get/tomsmeding/f97paG |
| 11:05:16 | <ski> | (checking the source seems to work) |
| 11:05:43 | <sprout> | weird, I cannot seem to follow him on mastodon |
| 11:06:55 | <ski> | apart from (4), the criticism sounds reasonable. (4) is unclear what is meant, to me |
| 11:07:07 | <sprout> | ask |
| 11:07:11 | <tomsmeding> | ski: automatic idiom brackets around everything? |
| 11:07:28 | <ski> | it's not obvious to me that that's what he's suggesting |
| 11:07:32 | <ncf> | i think it's clear what is meant but unclear how to solve it |
| 11:07:56 | <tomsmeding> | ski: > The key reference is "Notions of computation and monads". The key idea is to give the semantics of a term (in an ML-like language) as a morphism in the Kleisli category of a monad. That's exactly what you do when you write a program in "monadic style". You keep a dog and bark yourself! |
| 11:08:44 | <ski> | some kind of take on (4) is what my "reflective syntax" is intended to cover |
| 11:08:57 | <tomsmeding> | it's odd to say that a language did something wrong without suggesting any alternative, so I'm going to assume that he did intend an alternative :p |
| 11:09:09 | <ski> | (but it's not obvious to me if he wants something akin to that, or perhaps something else entirely) |
| 11:09:12 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 11:09:56 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 11:13:56 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 11:19:25 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 11:22:12 | → | euphores joins (~SASL_euph@user/euphores) |
| 11:22:55 | → | mrmr1553343 joins (~mrmr@user/mrmr) |
| 11:24:15 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 11:25:50 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:28:47 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 11:31:41 | × | manwithluck quits (manwithluc@gateway/vpn/protonvpn/manwithluck) (Ping timeout: 240 seconds) |
| 11:32:48 | → | manwithluck joins (manwithluc@gateway/vpn/protonvpn/manwithluck) |
| 11:32:56 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 11:37:40 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 11:42:02 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 11:46:52 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 11:49:14 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 11:49:39 | × | rachelambda quits (~rachelamb@cust-95-80-25-71.csbnet.se) (Ping timeout: 268 seconds) |
| 11:50:49 | → | todi joins (~todi@p57803331.dip0.t-ipconnect.de) |
| 11:51:10 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 11:55:35 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 11:56:35 | → | rachelambda joins (~rachelamb@cust-95-80-25-71.csbnet.se) |
| 12:00:07 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 12:08:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
| 12:11:32 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 12:15:48 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 12:20:36 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 12:22:45 | → | elevenkb joins (elevenkb@thunix.net) |
| 12:23:22 | → | danza joins (~francesco@151.43.109.66) |
| 12:24:59 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 12:29:41 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 12:31:31 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 12:32:02 | → | rvalue joins (~rvalue@user/rvalue) |
| 12:34:00 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 12:34:21 | × | ddellacosta quits (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 12:35:59 | × | ocra8 quits (ocra8@user/ocra8) (Quit: WeeChat 4.2.2) |
| 12:38:40 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 12:40:27 | × | remmie quits (ianremsen@tilde.team) (Ping timeout: 256 seconds) |
| 12:43:07 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 12:47:55 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 12:52:31 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 12:54:59 | × | paddymahoney quits (~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds) |
| 12:55:48 | × | darrik quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 255 seconds) |
| 12:57:09 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 255 seconds) |
| 12:58:44 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 13:01:48 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 13:02:15 | → | remmie joins (ianremsen@tilde.team) |
| 13:03:01 | → | paddymahoney joins (~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com) |
| 13:03:20 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 13:03:54 | → | euleritian joins (~euleritia@dynamic-176-006-177-191.176.6.pool.telefonica.de) |
| 13:06:44 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 13:07:05 | × | rembo10 quits (~rembo10@main.remulis.com) (Client Quit) |
| 13:09:08 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 13:11:18 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 13:11:56 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 13:14:01 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 13:15:22 | <safinaskar> | i found that toot!!! |
| 13:15:32 | <safinaskar> | here it is: https://types.pl/@pigworker/111320631493915615 |
| 13:16:39 | <safinaskar> | ncf: and yes, it was Conor! thank you! |
| 13:16:42 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 13:20:01 | <ski> | automate, in what manner ? |
| 13:22:25 | <lyxia> | you may need 10 phds to find out the answer, and another 10 to actually implement it. |
| 13:23:34 | <int-e> | just `do` it |
| 13:25:56 | <safinaskar> | ski: i don't know what Conor meant. but personally I like how things done in Koka language ( https://koka-lang.github.io/koka/doc/book.html ) |
| 13:26:38 | <safinaskar> | ski: i Koka you write code just like in usual imperative language. but under hood Koka seem to do something like Moggi translation |
| 13:27:04 | <ski> | effect handlers, yea |
| 13:27:17 | <ski> | not quite like Moggi, iiuc |
| 13:29:13 | <safinaskar> | (also, i kind of remember your nicknames. i think 10 years ago very same people were present in this channel) |
| 13:35:24 | × | madariaga quits (~madariaga@user/madariaga) (Read error: Connection reset by peer) |
| 13:37:50 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Remote host closed the connection) |
| 13:38:16 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 13:39:58 | <safinaskar> | and i think i can easily implement something like koka (but their Perceus reference counting seems to be hard to implement, so i will skip it) |
| 13:41:05 | <safinaskar> | and koka have: 1) truly total functions, 2) failible functions, 3) possibly non-terminating functions, 4) haskell-like functions (i. e. failible AND possibly non-terminating) 5) functions with side-effects 6) etc |
| 13:41:16 | <safinaskar> | koka is absolutely brilliant!! |
| 13:42:08 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 13:44:30 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 13:48:53 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 13:50:34 | → | Square2 joins (~Square@user/square) |
| 13:51:39 | ← | safinaskar parts (~quassel@212.73.77.104) () |
| 13:51:46 | → | safinaskar joins (~quassel@212.73.77.104) |
| 13:54:21 | × | euleritian quits (~euleritia@dynamic-176-006-177-191.176.6.pool.telefonica.de) (Ping timeout: 272 seconds) |
| 13:54:45 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 13:55:52 | → | euleritian joins (~euleritia@dynamic-176-004-181-220.176.4.pool.telefonica.de) |
| 13:58:02 | <ski> | (well, i do remember your nickname, as well) |
| 13:59:27 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 14:00:23 | <safinaskar> | ski: cool :) |
| 14:00:52 | <safinaskar> | somewhere in 2014 i tried to write my prover in haskell. and it is still unfinished and buggy :( |
| 14:01:13 | <safinaskar> | i still have no time to implement proper de bruijn indices |
| 14:02:54 | <safinaskar> | also i remember someone in this channel told about his idea for idiom brackets long time ago. this brackets didn't exist in that time. yet they seem to be available now (in form of a plugin) |
| 14:04:06 | <ski> | perhaps you're thinking of |
| 14:04:15 | <ski> | @hackage applicative-quoters |
| 14:04:15 | <lambdabot> | https://hackage.haskell.org/package/applicative-quoters |
| 14:04:38 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 14:04:47 | <ski> | .. or it was me talking about my idea, which is inspired by idiom brackets, amongst other things |
| 14:05:08 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 14:08:59 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 14:09:22 | <safinaskar> | i just asked Conor on mastodon what he thinks about koka. he said: "it’s the right way out of this mess." |
| 14:12:05 | × | Square2 quits (~Square@user/square) (Ping timeout: 240 seconds) |
| 14:12:11 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 14:12:38 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 14:17:24 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 14:17:44 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
| 14:27:09 | <safinaskar> | also i recently wrote post about how bad de brujin indices are. https://safinaskar.writeas.com/this-is-why-you-should-never-use-de-bruijn-indices-especially-if-you-program |
| 14:39:53 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 14:45:35 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 14:47:17 | × | danza quits (~francesco@151.43.109.66) (Remote host closed the connection) |
| 14:47:42 | → | danza joins (~francesco@151.43.109.66) |
| 14:49:19 | × | danza quits (~francesco@151.43.109.66) (Remote host closed the connection) |
| 14:51:33 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 14:55:02 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 14:55:41 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 14:57:19 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 14:57:58 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 14:58:38 | × | euleritian quits (~euleritia@dynamic-176-004-181-220.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
| 14:58:57 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 14:58:58 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 14:59:03 | → | euleritian joins (~euleritia@dynamic-176-004-181-220.176.4.pool.telefonica.de) |
| 14:59:39 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 15:02:19 | → | Square2 joins (~Square@user/square) |
| 15:04:14 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 15:07:43 | <mauke> | "Programming languages, such as Haskell and Agda, have a feature: they allow us to copy values very easily" sounds backwards to me |
| 15:07:49 | <mauke> | conceptually, Haskell never copies anything |
| 15:12:16 | <kaol> | It's one way to look at immutable values. |
| 15:16:30 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 15:20:59 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 15:27:53 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 15:30:06 | → | bjorkint0sh joins (~bjork@2600:1700:5400:c80:f334:68eb:cbb4:99fd) |
| 15:31:34 | → | actfulCitrusT joins (~al@2a02:8012:87a6:0:fbe0:6116:6e30:e047) |
| 15:32:12 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 15:32:29 | × | bjorkintosh quits (~bjork@user/bjorkintosh) (Ping timeout: 240 seconds) |
| 15:33:02 | ← | safinaskar parts (~quassel@212.73.77.104) () |
| 15:33:54 | × | AlexNoo quits (~AlexNoo@5.139.233.209) (Read error: Connection reset by peer) |
| 15:34:19 | → | AlexNoo joins (~AlexNoo@5.139.233.209) |
| 15:35:08 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 15:35:31 | → | ocra8 joins (ocra8@user/ocra8) |
| 15:36:00 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:39:52 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 15:44:10 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 15:48:47 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 15:51:26 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 15:53:11 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 15:57:08 | × | Square2 quits (~Square@user/square) (Ping timeout: 260 seconds) |
| 15:58:47 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 16:03:23 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 16:05:33 | → | CiaoSen joins (~Jura@2a05:5800:2b6:2100:e6b9:7aff:fe80:3d03) |
| 16:06:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:07:06 | → | robobub joins (uid248673@id-248673.uxbridge.irccloud.com) |
| 16:08:23 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 16:11:56 | → | hammond joins (proscan@user/hammond2) |
| 16:12:26 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 16:12:49 | <hammond> | is there optimizations that can be done with haskell compiler? |
| 16:14:23 | <Rembane> | hammond: Yes! Give GHC the option -O2 to make it optimize. How come you're asking? |
| 16:15:27 | <hammond> | im reading learning about compilers just now and i was wondering. seems like a dauthing task to optimize code. |
| 16:16:21 | <tomsmeding> | if you are using cabal, the default is -O1, which is enough for most purposes |
| 16:16:30 | <tomsmeding> | so in that case you don't even have to specify anything :) |
| 16:16:32 | <hammond> | Rembane: Does haskell go to c first and then optimize further with something like gcc |
| 16:16:39 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 16:16:46 | <tomsmeding> | GHC did that in the past, not anymore |
| 16:16:58 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 16:17:10 | <tomsmeding> | one can build GHC in such a way that it uses LLVM in the end to further optimise and assemble your code |
| 16:17:19 | <tomsmeding> | but GHC has many good optimisations built-in :) |
| 16:17:37 | <hammond> | nice to know. |
| 16:18:11 | <tomsmeding> | as an idea for a very simple, but important one: if you have `case Constr x y of { ... ; Constr a b -> E ; ... }`, then this can be simplified to `E` with a and b replaced by x and y, respectively |
| 16:18:16 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 16:18:22 | <tomsmeding> | this is "case of known constructor" |
| 16:19:15 | <tomsmeding> | if you have `let x = A in B` where x is used only once in B, then you can replace that x by A and move the let binding (this is "inlining") |
| 16:19:34 | <tomsmeding> | inlining can lead to more occurrences of case-of-known-constructor |
| 16:19:44 | <hammond> | i see. |
| 16:19:45 | × | CiaoSen quits (~Jura@2a05:5800:2b6:2100:e6b9:7aff:fe80:3d03) (Quit: CiaoSen) |
| 16:19:46 | <tomsmeding> | in general, optimisations typically work well together, where one enables more uses of the other |
| 16:19:58 | <tomsmeding> | compilers have a whole arsenal of these :) |
| 16:20:48 | <hammond> | tomsmeding: why does it feel like haskell is harder to optimize than something like c. I cant explain why i feel this but it's there. |
| 16:20:56 | → | joeyadams joins (~joeyadams@38.48.105.67) |
| 16:21:08 | <tomsmeding> | there are different things that you can do, because the language works differently |
| 16:21:13 | <tomsmeding> | it's not really inherently easier or harder |
| 16:21:19 | <hammond> | yeah |
| 16:21:32 | <tomsmeding> | some things are much easier to _analyse_ about a haskell program, because of the purity |
| 16:21:50 | <tomsmeding> | a C compiler must worry that after a function call, all kinds of variables, arrays, etc. may now suddenly have different values |
| 16:22:11 | <Leary> | Seems much easier in Haskell to me. A lot of it is just compile-time evaluation. |
| 16:22:11 | <hammond> | tomsmeding: would there be cases where the compiler tries to optimize and actually makes it harder? say if your cpu doesn't have enough L1 cache. |
| 16:22:20 | <tomsmeding> | hence must re-load things from memory etc; if it can analyse the function to not touch those arrays, then it can avoid those additional memory accesses |
| 16:22:23 | → | euphores joins (~SASL_euph@user/euphores) |
| 16:22:27 | <tomsmeding> | in a pure language, this whole point is moot |
| 16:22:38 | <hammond> | i see |
| 16:22:47 | <tomsmeding> | but then, purely functional languages map less directly to the hardware, so there is more work to do in making them practically efficient |
| 16:22:55 | <tomsmeding> | the difficulty is in different places |
| 16:23:01 | → | Rodney_ joins (~Rodney@176.254.244.83) |
| 16:23:12 | <tomsmeding> | Leary: the optimisations in Core are easier perhaps |
| 16:23:26 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 16:23:37 | <tomsmeding> | but what about thinking up STG, its semantics, and the Core->STG->Cmm->Asm translations? |
| 16:23:58 | <tomsmeding> | LLVM IR may have a lot of operations, and may be a "big" language in comparison, but conceptually it's quite simple |
| 16:23:58 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 16:24:19 | → | puke joins (~puke@user/puke) |
| 16:24:25 | <tomsmeding> | "take assembly and make it a bit more high level" |
| 16:24:44 | <tomsmeding> | STG is fundamentally different from both Core and the imperative CPU execution model |
| 16:25:22 | × | puke quits (~puke@user/puke) (Max SendQ exceeded) |
| 16:25:32 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 16:25:56 | <hammond> | well let me ask you this since im still a beginner, does -02 act like -O3 in gcc where some new bug arrises because of the optimization ? you're essentially making the final code unsafer right? |
| 16:26:17 | <tomsmeding> | is -O3 in gcc unsound? |
| 16:26:32 | <tomsmeding> | ("unsound", in this situation means that it may change the meaning of the code) |
| 16:26:37 | <tomsmeding> | if so that would be a gcc bug :p |
| 16:26:50 | → | puke joins (~puke@user/puke) |
| 16:27:04 | <EvanR> | making floating point math faster, while breaking it |
| 16:27:04 | <tomsmeding> | -ffast-math is a common C compiler flag that does change the meaning of code for the purpose of making some things faster |
| 16:27:13 | <tomsmeding> | -O3 != -ffast-math |
| 16:27:47 | <tomsmeding> | gcc -O3 is just "try harder and take more time, potentially making your code a bit slower if gcc makes some wrong assumptions about hot/cold code or hardware" |
| 16:27:50 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 16:27:55 | <tomsmeding> | ghc -O2 is similar |
| 16:28:12 | <tomsmeding> | if any -O flag changes the code's meaning, that's a bug in the compiler |
| 16:28:50 | <tomsmeding> | (0 != O, if they look the same to you you should use a better font :) ) |
| 16:29:44 | <tomsmeding> | ghc -O1 is cabal's default and is like gcc -O2, the "standard optimisation set" |
| 16:30:10 | <tomsmeding> | ghc -O2 is like gcc -O3, "I want more performance and am willing to 1. spend more compile time and 2. benchmark and profile to see if it really helps" |
| 16:30:46 | <hammond> | i see. well i was looking at loop-unrolling for example in gcc, and how it can make it slower for some processors. |
| 16:30:55 | <tomsmeding> | that's an example |
| 16:31:07 | <hammond> | yeah i read -O3 was buggy back in the beginning. |
| 16:31:08 | <tomsmeding> | gcc -O3 may be more aggressive there, which may help sometimes and not help other times |
| 16:31:20 | <tomsmeding> | probably, but many things are buggy when software projects are young :) |
| 16:31:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:31:37 | <hammond> | heh ok. |
| 16:32:27 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 16:38:11 | × | euleritian quits (~euleritia@dynamic-176-004-181-220.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:38:25 | → | euleritian joins (~euleritia@tmo-118-108.customers.d1-online.com) |
| 16:41:00 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 16:41:02 | × | Rodney_ quits (~Rodney@176.254.244.83) (Ping timeout: 252 seconds) |
| 16:45:20 | × | euleritian quits (~euleritia@tmo-118-108.customers.d1-online.com) (Ping timeout: 268 seconds) |
| 16:46:32 | → | euleritian joins (~euleritia@dynamic-176-004-181-220.176.4.pool.telefonica.de) |
| 16:46:45 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 16:51:30 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 16:52:16 | → | Rodney_ joins (~Rodney@176.254.244.83) |
| 16:56:06 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 17:00:36 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 255 seconds) |
| 17:03:03 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:04:15 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:04:49 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 17:04:55 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:09:35 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 264 seconds) |
| 17:13:05 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
| 17:14:12 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 17:16:48 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 17:18:31 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 17:18:41 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 17:19:54 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 17:21:22 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 17:22:28 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 17:23:24 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 17:27:53 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 17:28:30 | × | euleritian quits (~euleritia@dynamic-176-004-181-220.176.4.pool.telefonica.de) (Ping timeout: 268 seconds) |
| 17:29:05 | × | joeyadams quits (~joeyadams@38.48.105.67) (Quit: Leaving) |
| 17:32:33 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 17:36:26 | → | raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
| 17:36:39 | → | puke joins (~puke@user/puke) |
| 17:38:55 | → | Adeon joins (sid418992@id-418992.lymington.irccloud.com) |
| 17:41:58 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 17:44:29 | × | visilii quits (~visilii@188.254.126.159) (Ping timeout: 240 seconds) |
| 17:45:34 | → | visilii joins (~visilii@188.254.126.41) |
| 17:46:09 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:46:59 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 17:49:50 | × | turlando quits (~turlando@user/turlando) (Quit: No Ping reply in 180 seconds.) |
| 17:51:05 | → | turlando joins (~turlando@user/turlando) |
| 17:51:51 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 272 seconds) |
| 17:58:35 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 18:01:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:04:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:04:16 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 18:04:40 | → | ddellacosta joins (~ddellacos@ool-44c73d29.dyn.optonline.net) |
| 18:09:28 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 255 seconds) |
| 18:14:26 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 18:16:12 | × | manwithluck quits (manwithluc@gateway/vpn/protonvpn/manwithluck) (Ping timeout: 260 seconds) |
| 18:16:45 | → | manwithluck joins (manwithluc@gateway/vpn/protonvpn/manwithluck) |
| 18:19:00 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 260 seconds) |
| 18:19:05 | × | visilii quits (~visilii@188.254.126.41) (Read error: Connection reset by peer) |
| 18:20:50 | → | visilii joins (~visilii@188.254.126.41) |
| 18:21:31 | → | kadir joins (~kadir@88.251.51.100) |
| 18:21:39 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 18:22:31 | → | euleritian joins (~euleritia@77.22.252.56) |
| 18:23:36 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 18:25:24 | → | titibandit joins (~user@user/titibandit) |
| 18:26:38 | × | Luj quits (~Luj@2a01:e0a:de4:a0e1:be24:11ff:febc:b5b5) (Quit: The Lounge - https://thelounge.chat) |
| 18:27:01 | → | Luj joins (~Luj@2a01:e0a:de4:a0e1:be24:11ff:febc:b5b5) |
| 18:28:05 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 18:28:57 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 18:29:23 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 264 seconds) |
| 18:29:57 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 18:38:06 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 18:41:14 | × | infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection) |
| 18:42:33 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 256 seconds) |
| 18:43:20 | → | infinity0 joins (~infinity0@pwned.gg) |
| 18:47:15 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 18:52:01 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 272 seconds) |
| 18:56:15 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 19:01:00 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
| 19:02:14 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 19:02:42 | → | lxsameer joins (lxsameer@Serene/lxsameer) |
| 19:04:02 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 19:04:21 | → | euleritian joins (~euleritia@dynamic-176-006-192-186.176.6.pool.telefonica.de) |
| 19:12:18 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 19:12:48 | → | pyooque joins (~puke@user/puke) |
| 19:12:48 | puke | is now known as Guest9287 |
| 19:12:48 | × | Guest9287 quits (~puke@user/puke) (Killed (lead.libera.chat (Nickname regained by services))) |
| 19:12:48 | pyooque | is now known as puke |
| 19:14:39 | → | Square2 joins (~Square@user/square) |
| 19:18:04 | → | michalz joins (~michalz@185.246.207.221) |
| 19:19:43 | × | euleritian quits (~euleritia@dynamic-176-006-192-186.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 19:20:00 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 19:22:52 | → | fun-safe-math joins (~fun-safe-@24.21.106.247) |
| 19:33:12 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 19:42:14 | → | zetef joins (~quassel@5.2.182.98) |
| 19:44:10 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 268 seconds) |
| 19:47:45 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 19:48:07 | → | TheCoffeMaker_ joins (~TheCoffeM@200.114.213.75) |
| 19:48:37 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 19:52:59 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 19:55:27 | × | TheCoffeMaker_ quits (~TheCoffeM@200.114.213.75) (Read error: Connection reset by peer) |
| 19:56:02 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 19:57:43 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 20:01:18 | → | joeyadams joins (~joeyadams@38.48.105.67) |
| 20:02:24 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 255 seconds) |
| 20:15:04 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 20:19:49 | → | zenstoic joins (uid461840@id-461840.hampstead.irccloud.com) |
| 20:24:20 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Ping timeout: 252 seconds) |
| 20:28:00 | × | raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 256 seconds) |
| 20:31:05 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 20:31:31 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 20:37:08 | × | paddymahoney quits (~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds) |
| 20:38:14 | → | pavonia joins (~user@user/siracusa) |
| 20:39:08 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 20:46:11 | × | zenstoic quits (uid461840@id-461840.hampstead.irccloud.com) () |
| 20:47:05 | → | paddymahoney joins (~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com) |
| 21:02:15 | × | ddellacosta quits (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 255 seconds) |
| 21:03:56 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 21:04:23 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 21:11:44 | × | lxsameer quits (lxsameer@Serene/lxsameer) (Ping timeout: 268 seconds) |
| 21:12:37 | × | kadir quits (~kadir@88.251.51.100) (Quit: WeeChat 4.2.2) |
| 21:13:56 | → | liyang joins (uid322268@id-322268.uxbridge.irccloud.com) |
| 21:21:05 | × | michalz quits (~michalz@185.246.207.221) (Quit: ZNC 1.9.0 - https://znc.in) |
| 21:23:07 | × | titibandit quits (~user@user/titibandit) (Ping timeout: 260 seconds) |
| 21:23:21 | → | boxscape_ joins (~boxscape_@139.80-202-125.nextgentel.com) |
| 21:26:21 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 21:26:47 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 21:30:47 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 21:36:41 | → | kspalaiologos joins (~kspalaiol@user/kspalaiologos) |
| 21:38:58 | × | xdminsy quits (~xdminsy@117.147.70.240) (Quit: Konversation terminated!) |
| 21:47:02 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:49:38 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 21:51:37 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:52:18 | × | kspalaiologos quits (~kspalaiol@user/kspalaiologos) (Remote host closed the connection) |
| 21:52:47 | × | BigKozlowski quits (~BigKozlow@194.5.60.133) (Remote host closed the connection) |
| 22:01:51 | → | ystael joins (~ystael@user/ystael) |
| 22:02:14 | → | BigKozlowski joins (~BigKozlow@194.5.60.133) |
| 22:02:40 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:02:53 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 22:09:56 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:11:33 | → | AlexNoo_ joins (~AlexNoo@94.233.240.116) |
| 22:13:47 | × | AlexZenon quits (~alzenon@5.139.233.209) (Ping timeout: 252 seconds) |
| 22:14:01 | → | TheCoffeMaker_ joins (~TheCoffeM@200.114.213.75) |
| 22:14:23 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds) |
| 22:15:10 | × | AlexNoo quits (~AlexNoo@5.139.233.209) (Ping timeout: 255 seconds) |
| 22:20:41 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:20:53 | × | TheCoffeMaker_ quits (~TheCoffeM@200.114.213.75) (Ping timeout: 240 seconds) |
| 22:21:38 | → | AlexZenon joins (~alzenon@94.233.240.116) |
| 22:26:13 | → | xdminsy joins (~xdminsy@117.147.70.240) |
| 22:31:20 | × | zetef quits (~quassel@5.2.182.98) (Remote host closed the connection) |
| 22:36:54 | × | boxscape_ quits (~boxscape_@139.80-202-125.nextgentel.com) (Quit: Connection closed) |
| 22:37:58 | × | joeyadams quits (~joeyadams@38.48.105.67) (Quit: Leaving) |
| 22:50:23 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 264 seconds) |
| 22:50:44 | → | kilolympus joins (~kilolympu@31.205.200.246) |
| 22:51:04 | × | acidjnk quits (~acidjnk@p200300d6e714dc267155b07e20dae7cf.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 22:52:36 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:03:38 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 23:17:23 | × | Square2 quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 23:19:04 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds) |
| 23:21:20 | → | Square joins (~Square@user/square) |
| 23:55:52 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
All times are in UTC on 2024-05-26.