Logs on 2022-05-06 (liberachat/#haskell)
| 00:01:31 | <seydar> | please don't be mad... but i couldn't come up with a type signature to work, so i got rid of the signature and just let the compiler figure it out for me |
| 00:01:32 | <EvanR> | no instance of Integral Double means Double has no Integral instance, which maps to "you can't do long division with Double" |
| 00:01:57 | <EvanR> | "unless you implement the instance yourself" |
| 00:02:02 | <monochrom> | Then what is the type sig the compiler figured out? |
| 00:02:29 | <monochrom> | I am mad but I don't have remote desktop access. |
| 00:03:48 | <EvanR> | best to double check the compiler arrived at the same conclusion as you-at-your-best |
| 00:06:39 | <sm> | seydar: again, excellent haskell dev technique, no problem with that! |
| 00:06:43 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 00:07:00 | <sm> | vs code will insert that for you if you like |
| 00:07:19 | <EvanR> | oh man, I should learn vs code |
| 00:08:20 | <seydar> | limit :: Ord a => a -> a -> a -> a |
| 00:08:33 | <seydar> | (limit low high value -> result) |
| 00:09:06 | <EvanR> | so basically a clamp |
| 00:10:10 | <monochrom> | So you are saying "limit 0 18 (floor foo) :: Double". Therefore a=Double. Therefore floor foo :: Double. Therefore you are asking floor to return Double not Int. |
| 00:10:49 | <EvanR> | floor is funny in that it can't turn a Double into a Double :( |
| 00:10:53 | <EvanR> | unlike math.h |
| 00:12:48 | <monochrom> | C's floor probably is designed to just map to a machine instruction, and most machine's floor instruction is probably double->double, and C does not aspire to think about it. |
| 00:13:50 | <monochrom> | Although, both ways are inconvenient half of the time. |
| 00:14:43 | <dons> | morning all. happy friday |
| 00:14:54 | <monochrom> | double->int has the up side of using types to tell you "no fractional part". double->double has the up side of using types to tell you "the answer always fits in the range". |
| 00:16:23 | <monochrom> | However, in Haskell, you're supposed to do Double->Integer therefore there is no out-of-range UB problem. |
| 00:17:06 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 00:17:17 | <EvanR> | but my premature optimizations |
| 00:18:15 | <EvanR> | when you really do want Double->Double, premature or not, it's annoying |
| 00:18:32 | <monochrom> | This is why we need dependent predicate subtyping of Liquor Haskell to prove that your output fits in 4 bits therefore you are allowed Double-Nibble. |
| 00:18:51 | <monochrom> | And dependent linear typing to prove that destructive update is OK too. |
| 00:19:42 | × | mmhat quits (~mmh@2001:4090:a246:806c:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5) |
| 00:19:47 | → | xff0x joins (~xff0x@om126167084162.29.openmobile.ne.jp) |
| 00:19:57 | <monochrom> | We are doing EGA 16-colour image processing, therefore 4 bits are enough, right? >:) |
| 00:20:38 | <EvanR> | 4 bit color palettes can be pretty cool |
| 00:25:33 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 00:26:11 | → | kaipei joins (~Kaiepi@156.34.47.253) |
| 00:28:59 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 00:29:28 | <dmj`> | Liquor Haskell ? go on. |
| 00:29:48 | × | kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds) |
| 00:30:17 | <monochrom> | It's a 100-proof assistant >:) |
| 00:30:45 | <monochrom> | <monochrom> "Liquor Haskell combines dependent typing, dependent refinement typing, dependent predicate subtyping, and dependent linear typing." |
| 00:31:03 | <monochrom> | I forgot "dependent effect typing" there. |
| 00:31:30 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 00:32:08 | <monochrom> | Start with https://ircbrowse.tomsmeding.com/browse/lchaskell?id=540506#trid540506 for the whole conversation :) |
| 00:34:12 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 248 seconds) |
| 00:34:14 | <seydar> | https://paste.tomsmeding.com/yKQNirHg |
| 00:34:42 | <seydar> | I'm getting NaN when r, g, b are small values |
| 00:34:48 | <seydar> | is there a better way to phrase this function? |
| 00:35:13 | <monochrom> | If NaN, check that you are not doing sqrt (-0.001) for example. |
| 00:35:21 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:35:31 | <monochrom> | I phrased it wrong. |
| 00:35:32 | <seydar> | i 10000% most definitely am |
| 00:35:48 | <seydar> | some tiktok influencer told me to do it |
| 00:36:00 | <monochrom> | Clearly sqrt (-0.0001) is the sole source of NaN. OK, either that, or it's sqrt NaN in the first place. |
| 00:36:51 | <seydar> | this would explain why the C code does like copysignf(pow(fabsf(... |
| 00:39:20 | <monochrom> | I actually had experience debugging black pixels that turned out to be caused by acos(sqrt( dot product that came out as -0.001 because floating point)) and then some C compiler on some platform decided that "x = (int)NaN;" meant "x = 0;" or something. |
| 00:39:54 | <seydar> | HOLY SHIT i did it |
| 00:40:01 | <seydar> | this has been a team effort |
| 00:40:10 | <seydar> | thank you all for helping me grow into a better programmer and haskeller |
| 00:46:15 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:46:15 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:46:15 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:47:56 | <seydar> | I humbly submit my code for review: https://paste.tomsmeding.com/ElLdaMKb |
| 00:50:35 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
| 00:54:10 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 00:57:15 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Remote host closed the connection) |
| 00:57:30 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 01:13:43 | → | yauhsien joins (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) |
| 01:18:14 | × | yauhsien quits (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 01:22:58 | × | x_kuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 01:29:48 | × | seydar quits (~seydar@154-27-113-252.starry-inc.net) (Quit: leaving) |
| 01:35:30 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
| 01:37:06 | → | frost joins (~frost@user/frost) |
| 01:37:28 | → | andrey__ joins (~andrey@p200300dbcf09f8009147dcedbd430909.dip0.t-ipconnect.de) |
| 01:40:13 | × | andrey_ quits (~andrey@p200300dbcf1053000b1abd83a6152638.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 01:44:43 | <sm> | who has read Haskell from the Very Beginning, https://www.amazon.com/dp/095767113X ? it looks good |
| 01:49:55 | <sm> | "For Whitington to both mention and omit monads is quite irresponsible. He has written what I'd consider the standard (but incomplete) introduction to Haskell for non-programmers, but at the same time, he's condemned his readers to monad obsessions as he's taken readers all the way to the gate, told them they exist, and abandoned them there. |
| 01:49:55 | <sm> | Despite the above flaws, this is a very good book." |
| 01:49:56 | × | kaskal quits (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) (Quit: ZNC - https://znc.in) |
| 01:50:11 | → | kaskal joins (~kaskal@089144207160.atnat0016.highway.bob.at) |
| 01:50:14 | × | fluxit quits (~fluxit@techsmix.net) (Quit: Bye!) |
| 01:52:18 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 02:02:00 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 250 seconds) |
| 02:04:37 | × | wroathe quits (~wroathe@user/wroathe) (Read error: Connection reset by peer) |
| 02:04:52 | → | jao joins (~jao@211.68.17.95.dynamic.jazztel.es) |
| 02:07:03 | × | michalz quits (~michalz@185.246.204.101) (Ping timeout: 260 seconds) |
| 02:11:25 | → | gpncarl joins (~gpncarl@222.249.231.5) |
| 02:14:33 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:14:33 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:14:33 | finn_elija | is now known as FinnElija |
| 02:16:25 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
| 02:20:23 | → | zaquest joins (~notzaques@5.130.79.72) |
| 02:26:53 | <monochrom> | Sounds like the recent Dune movie. >:) |
| 02:29:40 | <monochrom> | "Villeneuve has taken viewers all the way to the gate of the Fremen community, told them they exist, and abandoned them there." >:) |
| 02:43:58 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 02:45:12 | → | terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 02:46:27 | → | Guest4318 joins (~Polo@user/polo) |
| 02:48:36 | → | jespada joins (~jespada@146.70.119.114) |
| 02:50:45 | × | jespada_ quits (~jespada@185.195.232.138) (Ping timeout: 260 seconds) |
| 02:54:47 | × | td_ quits (~td@muedsl-82-207-238-115.citykom.de) (Ping timeout: 256 seconds) |
| 02:56:39 | → | td_ joins (~td@94.134.91.66) |
| 02:56:50 | Guest4318 | is now known as yous |
| 02:57:28 | <sm> | very true :) |
| 02:58:20 | <sm> | @where books |
| 02:58:20 | <lambdabot> | https://www.extrema.is/articles/haskell-books http://www.vex.net/~trebla/haskell/learn-sources.html, see also @where LYAH, RWH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD, |
| 02:58:20 | <lambdabot> | WYAH, non-haskell-books |
| 02:59:28 | <sm> | @where LYAH |
| 02:59:28 | <lambdabot> | http://www.learnyouahaskell.com/ |
| 02:59:28 | × | xff0x quits (~xff0x@om126167084162.29.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 02:59:53 | <sm> | @where+ HFTVB https://www.extrema.is/articles/haskell-books/haskell-from-the-very-beginning |
| 02:59:53 | <lambdabot> | Okay. |
| 03:01:00 | <sm> | @where+ books https://www.extrema.is/articles/haskell-books http://www.vex.net/~trebla/haskell/learn-sources.html, see also @where LYAH, RWH, YAHT, HFTVB, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD, WYAH, non-haskell-books |
| 03:01:01 | <lambdabot> | Done. |
| 03:10:28 | × | yous quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:20:19 | → | arjun joins (~arjun@user/arjun) |
| 03:24:25 | → | xff0x joins (~xff0x@om126167084162.29.openmobile.ne.jp) |
| 03:30:01 | × | xff0x quits (~xff0x@om126167084162.29.openmobile.ne.jp) (Ping timeout: 256 seconds) |
| 03:40:36 | → | Guest8867 joins (~Polo@user/polo) |
| 03:50:58 | Guest8867 | is now known as Polo |
| 03:52:42 | × | Ram-Z_ quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 246 seconds) |
| 03:54:19 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 03:56:37 | → | seydar joins (~seydar@154-27-113-252.starry-inc.net) |
| 03:56:44 | × | seydar quits (~seydar@154-27-113-252.starry-inc.net) (Client Quit) |
| 04:12:36 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 04:14:45 | × | jao quits (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 246 seconds) |
| 04:18:55 | → | notzmv joins (~zmv@user/notzmv) |
| 04:19:18 | × | raym quits (~raym@user/raym) (Quit: rebooting...) |
| 04:23:23 | → | raym joins (~raym@user/raym) |
| 04:24:47 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:27:45 | × | kaipei quits (~Kaiepi@156.34.47.253) (Quit: Leaving) |
| 04:28:12 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 04:28:26 | → | Polo joins (~Polo@user/polo) |
| 04:29:09 | → | coot joins (~coot@213.134.190.95) |
| 04:29:25 | → | asivitz joins (uid178348@id-178348.tinside.irccloud.com) |
| 04:37:02 | → | bahamas joins (~lucian@84.232.141.55) |
| 04:37:13 | → | yauhsien joins (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) |
| 04:42:23 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 04:46:02 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:50:08 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:54:01 | → | Vajb joins (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) |
| 05:01:56 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:11:50 | → | mbuf joins (~Shakthi@223.184.62.182) |
| 05:14:15 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 260 seconds) |
| 05:19:32 | → | chomwitt joins (~chomwitt@2a02:587:dc19:d600:8f70:f0f3:1c35:cd8a) |
| 05:21:03 | → | Polo joins (~Polo@user/polo) |
| 05:22:46 | <juhp[m]> | geekosaur: https://paste.tomsmeding.com/zhha2cRX is a minimal example of "error: (if ... then ... else ...)-syntax in pattern" |
| 05:23:11 | → | searemind joins (~searemind@122.161.49.191) |
| 05:23:23 | × | searemind quits (~searemind@122.161.49.191) (Remote host closed the connection) |
| 05:27:04 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
| 05:27:37 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 05:30:35 | × | yauhsien quits (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 05:30:57 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 05:31:15 | × | zyklotomic quits (~ethan@res388d-128-61-89-205.res.gatech.edu) (Ping timeout: 260 seconds) |
| 05:32:58 | → | zyklotomic joins (~ethan@res380d-128-61-86-102.res.gatech.edu) |
| 05:33:33 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:35:38 | → | Polo joins (~Polo@user/polo) |
| 05:36:55 | × | jargon quits (~jargon@174-22-206-112.phnx.qwest.net) (Remote host closed the connection) |
| 05:37:03 | × | Polo quits (~Polo@user/polo) (Client Quit) |
| 05:39:15 | → | Polo joins (~Polo@user/polo) |
| 05:40:14 | → | michalz joins (~michalz@185.246.204.101) |
| 05:47:28 | → | yauhsien joins (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) |
| 05:51:04 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:00:23 | → | agumonkey joins (~user@88.163.231.79) |
| 06:00:35 | → | Polo joins (~Polo@user/polo) |
| 06:06:20 | → | odnes joins (~odnes@5-203-246-15.pat.nym.cosmote.net) |
| 06:08:59 | × | phma quits (~phma@2001:5b0:211f:67e8:28ee:b8ea:db61:4883) (Read error: Connection reset by peer) |
| 06:10:04 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
| 06:10:15 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 06:12:26 | → | phma joins (~phma@231.sub-174-212-167.myvzw.com) |
| 06:12:52 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 248 seconds) |
| 06:16:17 | × | echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8) |
| 06:17:35 | → | echoreply joins (~echoreply@45.32.163.16) |
| 06:18:51 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 276 seconds) |
| 06:19:04 | Batzy_ | is now known as Batzy |
| 06:24:26 | → | mikoto-chan joins (~mikoto-ch@84.199.144.234) |
| 06:24:51 | → | alp_ joins (~alp@user/alp) |
| 06:25:35 | × | renzhi quits (~xp@2607:fa49:6500:b100::78de) (Ping timeout: 256 seconds) |
| 06:30:07 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 06:31:32 | → | bahamas joins (~lucian@84.232.141.55) |
| 06:34:57 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:f12b:6d29:e790:1b4f) |
| 06:35:25 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:37:20 | → | renzhi joins (~xp@2607:fa49:6500:b100::3c88) |
| 06:39:36 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:39:59 | → | Polo joins (~Polo@user/polo) |
| 06:44:48 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 06:47:11 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 06:49:00 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 240 seconds) |
| 06:49:22 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 06:51:16 | × | Polo quits (~Polo@user/polo) (Killed (osmium.libera.chat (Nickname regained by services))) |
| 06:51:23 | → | Polo joins (~Polo@user/polo) |
| 06:51:48 | → | xaotuk joins (~sasha@net9-32-245-109.mbb.telenor.rs) |
| 06:51:55 | → | acidjnk joins (~acidjnk@p200300d0c7068b349c270144d8822819.dip0.t-ipconnect.de) |
| 06:53:29 | × | jamestmartin quits (~james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
| 06:53:38 | → | jamestmartin joins (~james@jtmar.me) |
| 06:54:52 | → | fendor joins (~fendor@91.141.58.111.wireless.dyn.drei.com) |
| 07:02:10 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:02:11 | × | phma quits (~phma@231.sub-174-212-167.myvzw.com) (Read error: Connection reset by peer) |
| 07:05:05 | → | phma joins (phma@2001:5b0:211c:bd68:1a30:3d9:b27f:d715) |
| 07:06:12 | × | Polo quits (~Polo@user/polo) (Ping timeout: 248 seconds) |
| 07:09:09 | → | Polo joins (~Polo@user/polo) |
| 07:09:30 | → | dostoevsky joins (~5c42c5384@user/dostoevsky) |
| 07:14:48 | → | chele joins (~chele@user/chele) |
| 07:15:32 | <Athas> | I could swear that cabal is faster at building than stack. |
| 07:16:27 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 240 seconds) |
| 07:16:30 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 07:16:47 | → | chele joins (~chele@user/chele) |
| 07:16:51 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 07:17:48 | × | agumonkey quits (~user@88.163.231.79) (Ping timeout: 246 seconds) |
| 07:23:21 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:26:00 | → | Polo joins (~Polo@user/polo) |
| 07:27:07 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:8a52:6111:fb65:b9eb) (Remote host closed the connection) |
| 07:29:47 | → | ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:76e8:584c:bd55:70ba) |
| 07:30:28 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 07:34:08 | <maerwald[m]> | Athas: I don't think so |
| 07:34:37 | <maerwald[m]> | cabal repl, cabal run etc are all slower |
| 07:35:14 | <maerwald[m]> | Cabal frequently attempts rebuilds although there's nothing to rebuild and then wastes a lot of time |
| 07:35:19 | → | Ether17 joins (~Ether17@45.248.151.237) |
| 07:35:41 | <Athas> | But I think it does less poking around before starting work. |
| 07:35:44 | <Athas> | The latency is much lower. |
| 07:36:02 | <maerwald[m]> | Possible, might depend on your stack config |
| 07:36:07 | × | Ether17 quits (~Ether17@45.248.151.237) (Client Quit) |
| 07:36:24 | <maerwald[m]> | Stack does shenanigans with sqlite DBs and GHC installation before it starts |
| 07:36:38 | <Athas> | Yes, I suspect that is the reason. |
| 07:38:20 | <maerwald[m]> | Try `system-ghc: true` |
| 07:38:27 | <Athas> | No need, I use cabal now. |
| 07:45:08 | × | xaotuk quits (~sasha@net9-32-245-109.mbb.telenor.rs) (Ping timeout: 248 seconds) |
| 07:46:01 | × | fendor quits (~fendor@91.141.58.111.wireless.dyn.drei.com) (Remote host closed the connection) |
| 07:46:14 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 07:46:36 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 07:47:03 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 07:48:15 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 07:51:51 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 07:52:51 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:54:30 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 07:54:35 | × | hsw quits (~hsw@112-104-144-236.adsl.dynamic.seed.net.tw) (Quit: Leaving) |
| 07:57:17 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 07:58:22 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 08:01:02 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:01:32 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 08:05:22 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 08:08:54 | × | yauhsien quits (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:11:59 | → | yauhsien joins (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) |
| 08:13:47 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 08:18:27 | → | vpan joins (~0@212.117.1.172) |
| 08:18:27 | × | yauhsien quits (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
| 08:22:19 | → | xff0x joins (~xff0x@om126253182187.31.openmobile.ne.jp) |
| 08:29:42 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection) |
| 08:30:42 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 08:39:00 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:39:35 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 08:45:07 | → | __monty__ joins (~toonn@user/toonn) |
| 08:47:40 | → | bahamas joins (~lucian@84.232.141.55) |
| 08:48:15 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 08:48:30 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:48:47 | → | img joins (~img@user/img) |
| 08:50:44 | × | xff0x quits (~xff0x@om126253182187.31.openmobile.ne.jp) (Ping timeout: 248 seconds) |
| 08:54:04 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 09:00:09 | × | marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Quit: You have been kicked for being idle) |
| 09:08:41 | × | dextaa4 quits (~dextaa@user/dextaa) (Quit: Ping timeout (120 seconds)) |
| 09:08:52 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 09:09:24 | × | zyklotomic quits (~ethan@res380d-128-61-86-102.res.gatech.edu) (Ping timeout: 248 seconds) |
| 09:11:17 | → | zyklotomic joins (~ethan@res380d-128-61-83-67.res.gatech.edu) |
| 09:13:00 | × | odnes quits (~odnes@5-203-246-15.pat.nym.cosmote.net) (Remote host closed the connection) |
| 09:13:20 | → | odnes joins (~odnes@5-203-246-15.pat.nym.cosmote.net) |
| 09:16:38 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:16:58 | × | mikoto-chan quits (~mikoto-ch@84.199.144.234) (Ping timeout: 260 seconds) |
| 09:17:33 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 09:22:02 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 09:24:44 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 09:24:51 | × | caubert quits (~caubert@136.244.111.235) (Ping timeout: 246 seconds) |
| 09:25:12 | → | caubert joins (~caubert@136.244.111.235) |
| 09:25:16 | Polo | is now known as Guest6109 |
| 09:25:16 | × | Guest6109 quits (~Polo@user/polo) (Killed (zinc.libera.chat (Nickname regained by services))) |
| 09:25:22 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 09:25:27 | → | Polo joins (~Polo@user/polo) |
| 09:26:53 | × | odnes quits (~odnes@5-203-246-15.pat.nym.cosmote.net) (Ping timeout: 260 seconds) |
| 09:26:54 | × | Polo quits (~Polo@user/polo) (Client Quit) |
| 09:27:25 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 260 seconds) |
| 09:28:03 | <Las[m]> | Given `type family Const a b where Const a b = a`, is there a better way to write `type B (y :: Const Type x) = A x y`? |
| 09:28:34 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
| 09:29:14 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 09:29:43 | × | Hash quits (~Hash@hey.howstoned.ru) (Read error: Connection reset by peer) |
| 09:29:44 | <Las[m]> | Essentially I want something similar to the following Idris code: `B : {x : X} -> Y -> Type ; B {x} y = A x y` |
| 09:30:09 | → | coot_ joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 09:30:18 | → | Hash joins (~Hash@hey.howstoned.ru) |
| 09:31:04 | <[exa]> | Las[m]: naively I'd guess that B should be a type family |
| 09:31:57 | → | yauhsien joins (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) |
| 09:32:08 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:32:56 | × | coot_ quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit) |
| 09:33:16 | → | coot_ joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 09:33:56 | × | coot quits (~coot@213.134.190.95) (Ping timeout: 248 seconds) |
| 09:35:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 09:35:38 | × | coot_ quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Read error: Connection reset by peer) |
| 09:35:52 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 09:36:34 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
| 09:36:56 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds) |
| 09:39:08 | <lortabac> | how can I get the cabal.project.freeze corresponding to a given stackage snapshot? |
| 09:39:22 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 09:39:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:39:25 | <Franciman> | ping fgaz |
| 09:39:43 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:40:55 | <maerwald> | lortabac: stack2cabal |
| 09:41:05 | <maerwald> | https://hackage.haskell.org/package/stack2cabal |
| 09:41:09 | <Franciman> | messieur lortabac cette connexion https://github.com/fpco/stackage-server/issues/232 peut vous aider |
| 09:41:14 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Quit: Leaving) |
| 09:42:30 | <lortabac> | maerwald: can I use it to create only the .freeze file? |
| 09:43:02 | <maerwald> | lortabac: curl https://www.stackage.org/lts-18.26/cabal.config > cabal.project.freeze |
| 09:43:20 | <lortabac> | maerwald: thanks, that's what I was looking for |
| 09:44:09 | <maerwald> | lortabac: cabal-3.7 has first class support for includes btw |
| 09:44:11 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 09:44:21 | <maerwald> | https://github.com/haskell/cabal/issues/6528#issuecomment-1092062758 |
| 09:44:46 | <maerwald> | you'd just add this to cabal.project: `import: https://www.stackage.org/lts-18.26/cabal.config` |
| 09:44:55 | <maerwald> | cabal prerelease can be enabled via ghcup |
| 09:45:08 | × | acidjnk quits (~acidjnk@p200300d0c7068b349c270144d8822819.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 09:45:53 | <maerwald> | this won't work well if you're overwriting constraints from stackage snapshot with source-repository-package... only stack2cabal resolves those |
| 09:46:06 | <maerwald> | (I could add a --only-freeze option to it) |
| 09:46:44 | <lortabac> | I want the ability to override specific packages, is it possible with remote imports? |
| 09:47:09 | <lortabac> | I guess --only-freeze would be the best solution |
| 09:48:38 | <maerwald> | https://github.com/hasufell/stack2cabal/blob/6f12cea1bffaa804430317b1d66ce2d60c7b05b2/lib/StackageToHackage/Stackage.hs#L137 |
| 09:49:18 | <maerwald> | you can just manually delete stuff from the freeze file too |
| 09:49:24 | <maerwald> | I don't know your use case |
| 09:49:34 | <maerwald> | is it automated? |
| 09:50:08 | <lortabac> | no |
| 09:50:30 | <maerwald> | then you can just delete whatever you overwrite from the resolver from the freeze file |
| 09:51:14 | <lortabac> | yes, that was my idea |
| 09:51:32 | <lortabac> | but if the freeze file is remote, can I do it? |
| 09:51:51 | <lortabac> | (or maybe I misunderstood what import means?) |
| 09:51:57 | <maerwald> | nope... that's why duncan suggested a constraint algebra |
| 09:52:21 | <geekosaur> | juhp[m], okay, that's weird. I would expect the first line of the missing-do do to be an error, but I guess it's parsed as a … I forget what. (still working on first coffee) |
| 09:52:29 | <maerwald> | constraints are passed to the solver without any pre-processing, so if you have multiple constraints that can be solved, cabal will just barf out |
| 09:52:37 | <maerwald> | s/can/can't/ |
| 09:53:12 | <maerwald> | so importing mulitple freeze files will not overwrite anything, but just make cabal potentially fail |
| 09:53:38 | <maerwald> | it's simple union |
| 09:53:45 | <lortabac> | an algebra would be great indeed |
| 09:54:05 | <maerwald> | lortabac: well, but no one is working on it |
| 09:54:13 | <lortabac> | so the best thing for me at the moment is to download cabal.config |
| 09:54:26 | <maerwald> | yeah, process it like stack2cabal |
| 09:54:30 | <lortabac> | and remove the lines that I want to override |
| 09:54:58 | <maerwald> | wouldn't be hard to write a smaller tool than stack2cabal that just merges two freeze files with your preferred logic |
| 09:55:19 | <maerwald> | because it's yaml, not some esoteric custom format like cabal :p |
| 09:55:31 | <maerwald> | (stackage snapshots, that is) |
| 09:56:36 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 276 seconds) |
| 09:57:10 | <Las[m]> | [exa]: Unfortunately I couldn't find any way to do it with type families at all, even using the `Const`-trick. With `newtype`s, you can use GADT-syntax to introduce `forall`s. |
| 09:57:29 | <Las[m]> | But with type families, the arity changes if you put the parameters on the right side of the `::`, so I can't define the type family. |
| 10:01:39 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 10:08:30 | × | yauhsien quits (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 10:12:26 | → | yauhsien joins (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) |
| 10:15:42 | → | xaotuk joins (~sasha@net200-34-245-109.mbb.telenor.rs) |
| 10:15:55 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 10:16:56 | × | yauhsien quits (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 248 seconds) |
| 10:17:10 | ← | hrdl parts (~hrdl@mail.hrdl.eu) () |
| 10:18:04 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 10:20:43 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 10:23:24 | → | Midjak joins (~Midjak@82.66.147.146) |
| 10:34:49 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:37:49 | → | mmhat joins (~mmh@2001:4090:a246:8044:ee08:6bff:fe09:5315) |
| 10:47:59 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:48:31 | → | ubert joins (~Thunderbi@p200300ecdf15882975febf22f194fce4.dip0.t-ipconnect.de) |
| 10:48:33 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
| 10:48:40 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 10:49:16 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:53:45 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:00:42 | × | cheater quits (~Username@user/cheater) (Quit: BitchX: the OTHER white meat) |
| 11:01:22 | → | cheater joins (~Username@user/cheater) |
| 11:13:03 | → | xff0x joins (~xff0x@om126253182187.31.openmobile.ne.jp) |
| 11:15:02 | → | yauhsien joins (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) |
| 11:15:27 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 246 seconds) |
| 11:19:41 | × | yauhsien quits (~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 11:28:54 | × | zyklotomic quits (~ethan@res380d-128-61-83-67.res.gatech.edu) (Ping timeout: 276 seconds) |
| 11:30:32 | → | dfip^ joins (~dfip@173-160-94-253-atlanta.hfc.comcastbusiness.net) |
| 11:30:41 | → | zyklotomic joins (~ethan@res388d-128-61-94-22.res.gatech.edu) |
| 11:31:53 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 11:32:33 | → | bahamas joins (~lucian@84.232.141.55) |
| 11:34:24 | × | alp_ quits (~alp@user/alp) (Ping timeout: 252 seconds) |
| 11:41:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 11:44:39 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 11:46:01 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 248 seconds) |
| 11:46:12 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 11:50:58 | → | alp_ joins (~alp@user/alp) |
| 11:54:55 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 11:56:29 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 12:02:13 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 12:03:04 | → | frost joins (~frost@user/frost) |
| 12:04:09 | × | kraftwerk28 quits (~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:05:10 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 12:06:47 | → | Ether17 joins (~Ether17@45.248.151.250) |
| 12:07:39 | × | Ether17 quits (~Ether17@45.248.151.250) (Client Quit) |
| 12:12:06 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 12:14:15 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 260 seconds) |
| 12:15:07 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 12:18:02 | → | frost joins (~frost@user/frost) |
| 12:19:05 | → | zeenk joins (~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) |
| 12:21:16 | <dmj`> | monochrom: 100 proof assistant (><) |
| 12:22:15 | → | zebrag joins (~chris@user/zebrag) |
| 12:26:02 | → | bahamas joins (~lucian@84.232.141.55) |
| 12:29:21 | × | raym quits (~raym@user/raym) (Ping timeout: 276 seconds) |
| 12:35:50 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds) |
| 12:44:18 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 276 seconds) |
| 12:44:54 | → | raym joins (~raym@user/raym) |
| 12:49:03 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 12:49:28 | × | raym quits (~raym@user/raym) (Ping timeout: 248 seconds) |
| 12:51:15 | → | xkuru joins (~xkuru@user/xkuru) |
| 12:59:10 | × | phma quits (phma@2001:5b0:211c:bd68:1a30:3d9:b27f:d715) (Read error: Connection reset by peer) |
| 12:59:52 | → | phma joins (~phma@host-67-44-208-170.hnremote.net) |
| 13:01:03 | → | jao joins (~jao@211.68.17.95.dynamic.jazztel.es) |
| 13:06:17 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 13:10:42 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 13:10:51 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 13:13:54 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 13:17:16 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 13:17:19 | → | __monty__ joins (~toonn@user/toonn) |
| 13:20:10 | × | xaotuk quits (~sasha@net200-34-245-109.mbb.telenor.rs) (Ping timeout: 260 seconds) |
| 13:23:37 | × | arjun quits (~arjun@user/arjun) (Ping timeout: 248 seconds) |
| 13:23:57 | × | turlando quits (~turlando@user/turlando) (Ping timeout: 276 seconds) |
| 13:27:27 | → | odnes joins (~odnes@5-203-210-252.pat.nym.cosmote.net) |
| 13:29:26 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5) |
| 13:29:35 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 13:35:00 | × | jao quits (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 248 seconds) |
| 13:35:42 | → | raym joins (~raym@user/raym) |
| 13:38:36 | × | mmhat quits (~mmh@2001:4090:a246:8044:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5) |
| 13:43:07 | × | raym quits (~raym@user/raym) (Ping timeout: 240 seconds) |
| 13:43:11 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:44:19 | → | raym joins (~raym@user/raym) |
| 13:49:20 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds) |
| 13:50:42 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 13:50:45 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:56:21 | → | eltonpinto joins (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) |
| 13:59:41 | → | kenran joins (~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) |
| 14:00:42 | × | kenran quits (~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) (Client Quit) |
| 14:00:51 | → | kenran joins (~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) |
| 14:01:10 | × | kenran quits (~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) (Client Quit) |
| 14:01:46 | → | kenran joins (~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) |
| 14:02:31 | × | [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection) |
| 14:05:00 | → | [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) |
| 14:06:19 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:06:21 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 14:08:48 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds) |
| 14:10:26 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 250 seconds) |
| 14:10:28 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 14:12:53 | × | eltonpinto quits (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Quit: WeeChat 3.4.1) |
| 14:13:11 | × | zyklotomic quits (~ethan@res388d-128-61-94-22.res.gatech.edu) (Quit: WeeChat 2.7.1) |
| 14:16:48 | → | jao joins (~jao@211.68.17.95.dynamic.jazztel.es) |
| 14:17:45 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 252 seconds) |
| 14:19:45 | → | pavonia joins (~user@user/siracusa) |
| 14:20:15 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 14:20:43 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 14:21:35 | → | eltonpinto joins (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) |
| 14:22:27 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 14:26:09 | <juhp[m]> | geekosaur: okay |
| 14:26:49 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 14:31:21 | <juhp[m]> | The other day I couldn't get ghc9.4 alpha1 to build locally but it worked in the fedora buildsystem, today HLS builds locally for me with ghc9.0 but fails rejecting entropy in the buildsystem using cabal ugh (I suppose this is the kind of reason why people use nix... sigh) |
| 14:36:23 | <juhp[m]> | Ah I do have newer cabal-install locally now - wonder if that is the discrepancy |
| 14:37:53 | → | x_kuru joins (~xkuru@user/xkuru) |
| 14:38:08 | × | vpan quits (~0@212.117.1.172) (Quit: Leaving.) |
| 14:39:33 | × | Vajb quits (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer) |
| 14:39:44 | → | Vajb joins (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) |
| 14:41:15 | × | xkuru quits (~xkuru@user/xkuru) (Ping timeout: 260 seconds) |
| 14:41:15 | × | Vajb quits (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer) |
| 14:41:24 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:42:28 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 14:44:03 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:48:36 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 14:49:22 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 14:51:15 | × | eltonpinto quits (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Quit: WeeChat 3.4.1) |
| 14:51:32 | → | eltonpinto joins (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) |
| 14:53:50 | × | dfip^ quits (~dfip@173-160-94-253-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection) |
| 14:54:10 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:f12b:6d29:e790:1b4f) (Quit: WeeChat 2.8) |
| 14:54:17 | → | melas joins (~melas@172.77.31.247) |
| 14:54:43 | → | nattiestnate joins (~nate@202.138.250.52) |
| 14:54:48 | <melas> | Hi. I decided to make haskell my first language and I'm 37. go me. Just wanted to say hi. |
| 14:55:20 | × | eltonpinto quits (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Client Quit) |
| 14:55:35 | → | eltonpinto joins (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) |
| 14:55:45 | <maerwald> | hi |
| 14:58:33 | × | nattiestnate quits (~nate@202.138.250.52) (Client Quit) |
| 14:58:46 | → | nattiestnate joins (~nate@202.138.250.20) |
| 15:01:29 | → | moonsheep joins (~user@iespladelestany.xtec.cat) |
| 15:01:30 | <exarkun> | melas: welcome |
| 15:01:52 | <maerwald> | melas: do you already have learning material etc? |
| 15:03:24 | <melas> | Well, the only thing I have is the Haskell first principals book. I am interested in everything I can get my hands on though. Some video would be nice. |
| 15:04:12 | <melas> | I have a bunch of pdf's a friend gave to me that are all Haskell books from the 90's / early 200's but I'm not sure how relevant theyu are these days |
| 15:04:32 | × | eltonpinto quits (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Quit: WeeChat 3.4.1) |
| 15:04:48 | <melas> | I was thinking about getting a Udemy course or the like |
| 15:04:49 | → | eltonpinto joins (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) |
| 15:05:25 | ← | eltonpinto parts (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) () |
| 15:06:32 | <maerwald> | https://github.com/haskell-beginners-2022/course-plan |
| 15:06:46 | <maerwald> | and maybe https://www.cis.upenn.edu/~cis194/spring13/ |
| 15:08:04 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 15:12:30 | → | eltonpinto joins (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) |
| 15:12:56 | ← | eltonpinto parts (~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) () |
| 15:13:08 | → | odnes_ joins (~odnes@5-203-210-252.pat.nym.cosmote.net) |
| 15:13:28 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:13:59 | × | odnes quits (~odnes@5-203-210-252.pat.nym.cosmote.net) (Read error: Connection reset by peer) |
| 15:14:33 | × | alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 15:15:52 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:16:37 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 15:16:56 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:17:29 | → | odnes__ joins (~odnes@5-203-210-252.pat.nym.cosmote.net) |
| 15:18:05 | × | zeenk quits (~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) (Quit: Konversation terminated!) |
| 15:18:43 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:20:18 | × | odnes_ quits (~odnes@5-203-210-252.pat.nym.cosmote.net) (Ping timeout: 276 seconds) |
| 15:23:34 | × | hololeap_ quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 15:26:40 | <moonsheep> | is this the place to ask about the snap framework? |
| 15:26:48 | × | jao quits (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 248 seconds) |
| 15:26:51 | <moonsheep> | in their about page they point to a channel in freenode, but it seems to be completely empty |
| 15:27:29 | <moonsheep> | logging in was a nightmare (they have a password length limit!) and there was literally no one there |
| 15:28:04 | <moonsheep> | so I figured I might as well come here |
| 15:28:12 | → | hololeap_ joins (~hololeap@user/hololeap) |
| 15:28:47 | <maerwald> | snap might be past its prime... surprised there's no channel for it on libera though |
| 15:29:17 | → | alp_ joins (~alp@user/alp) |
| 15:29:43 | <moonsheep> | it seemed pretty nice on paper so I thought I might as well try it |
| 15:30:28 | <maerwald> | these days, servant is the most popular |
| 15:30:44 | <moonsheep> | hadn't heard of it |
| 15:30:52 | <maerwald> | it expresses APIs as types |
| 15:32:04 | <moonsheep> | so then, if I'm to learn one I should do servant? |
| 15:32:09 | <moonsheep> | I also heard of yesod, is it any good? |
| 15:33:53 | <juhp[m]> | juhp[m]: okay that fixed it... |
| 15:35:43 | <[exa]> | moonsheep: everyone kinda moved to libera since one certain event. If you just want to start with web APIs etc, scotty might "just do". |
| 15:35:58 | → | gnyeki joins (~gnyeki@user/gnyeki) |
| 15:36:11 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 15:36:24 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:36:28 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 15:36:38 | <moonsheep> | does it have a templating engine? |
| 15:36:46 | <moonsheep> | i feel like that's one of the primary things I need |
| 15:36:56 | <moonsheep> | I don't care too much for the bells and whistles |
| 15:37:02 | <[exa]> | moonsheep: yesod is a bit more oldschool haskell, lots of template haskell |
| 15:37:15 | <moonsheep> | ah |
| 15:37:20 | <[exa]> | there are template languages that can be easily plugged into all of these afaik |
| 15:37:32 | <moonsheep> | good to know |
| 15:38:07 | <moonsheep> | so then, between servant and scotty, which should I choose? |
| 15:38:14 | <[exa]> | but usually it's easier to just write the html directly in blaze |
| 15:39:28 | <[exa]> | re servant vs scotty, depends on project complexity |
| 15:39:37 | <moonsheep> | oh so writing HTML as an embedded language? |
| 15:39:51 | <moonsheep> | as for project complexity I don't expect to get very far |
| 15:39:54 | <[exa]> | also servant is basically meant as a super-complexly-typed REST api server |
| 15:40:08 | <moonsheep> | I'm mostly doing this for my own amusement |
| 15:40:08 | <[exa]> | if you just want a nice web running safely with haskell, scotty is the way |
| 15:40:14 | <moonsheep> | right |
| 15:40:15 | <tdammers> | indeed, servant was never designed to be a "web framework" |
| 15:40:32 | <[exa]> | also, the learning curve doesn't hit you |
| 15:40:56 | → | stackdroid18 joins (14094@user/stackdroid) |
| 15:41:06 | <tdammers> | And as far as template engines go, you can just plug in whichever one you like best. My go-to's are blaze when it's OK to compile templates in, and my own Ginger when I need users to change templates at runtime. |
| 15:41:43 | <maerwald> | moonsheep: https://haskell-servant.github.io/posts/2018-07-12-servant-dsl-typelevel.html |
| 15:42:34 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 15:42:38 | <[exa]> | moonsheep: I'd say the scotty ecosystem got pretty comprehensive, see here https://hoogle.haskell.org/?hoogle=scotty%20is%3Apackage&scope=set:stackage |
| 15:44:02 | <dolio> | Isn't not merely complexly typed, right? The point is that you write types to describe things, and functionality is derived from them. |
| 15:44:02 | <moonsheep> | thank you so much everyone |
| 15:44:23 | <moonsheep> | I think I'll go with scotty for now |
| 15:44:44 | <moonsheep> | I don't need to write an entire API at the type-level I don't think |
| 15:44:45 | <geekosaur> | right, the types aren't just there to be complex, they actually do most of the heavy lifting |
| 15:45:20 | × | phma quits (~phma@host-67-44-208-170.hnremote.net) (Read error: Connection reset by peer) |
| 15:45:40 | <dolio> | That's what's missing from a lot of 'fancy types' examples. Too many are just enforcing things that make writing anything a lot harder. One of the reasons for wanting fancy types is so that the machine can do more work for you, instead of requiring you to do more work. |
| 15:46:00 | <tdammers> | the issue with things like servant is that Haskell's type-level language is a bit more awkward than its term-level language |
| 15:46:09 | <maerwald> | well, I don't like most type-level heavy libraries, but I think servant managed to strike an ok balance |
| 15:46:16 | → | phma joins (~phma@2001:5b0:212a:a158:cf03:ba31:b20b:efff) |
| 15:46:24 | <dolio> | Yeah, Haskell is not ideal for accomplishing the goal. |
| 15:46:52 | <maerwald> | but yeah, type level APIs leak implementation difficulties |
| 15:46:59 | <[exa]> | dolio: btw that property about not overdoing types the wrong way should have a name (types as code generators, not restrictions?) |
| 15:47:03 | <dolio> | maerwald: Yeah, I'm trying to explain why you might like it better. |
| 15:47:48 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:49:08 | <moonsheep> | by the way, shouldn't https://wiki.haskell.org/Web/Frameworks make this things a bit clearer? I mean, most of the frameworks listed seem pretty unmaintained |
| 15:49:29 | <moonsheep> | perhaps there should be a section at the top for the more current frameworks? |
| 15:50:02 | <moonsheep> | it just blasted a bunch of options at me and didn't help me make a choice at all |
| 15:50:52 | <geekosaur> | the whole wiki's in that state, sadly |
| 15:51:14 | → | odnes joins (~odnes@5-203-206-15.pat.nym.cosmote.net) |
| 15:51:24 | <maerwald> | yeah, I want to delete it |
| 15:51:28 | <moonsheep> | I'd love to help imrpove that page, but I don't think I'm in a position to do that right now, especially considering I'm literally just starting out |
| 15:51:50 | × | odnes quits (~odnes@5-203-206-15.pat.nym.cosmote.net) (Remote host closed the connection) |
| 15:52:14 | <hololeap_> | internal libraries in Cabal seem so useful, how come they aren't seen more often? |
| 15:52:17 | hololeap_ | is now known as hololeap |
| 15:52:18 | <dolio> | Well, just don't forget to go back after you learn about everything, like everyone else did. :) |
| 15:52:30 | <hololeap> | https://cabal.readthedocs.io/en/3.4/cabal-package.html#sublibs |
| 15:52:36 | × | odnes__ quits (~odnes@5-203-210-252.pat.nym.cosmote.net) (Ping timeout: 248 seconds) |
| 15:52:48 | <moonsheep> | now those are some big words >learn about everything |
| 15:52:54 | <moonsheep> | btw what's the proper way to quote messages? |
| 15:53:02 | <geekosaur> | there isn't one on irc |
| 15:53:04 | <[exa]> | moonsheep: actually I kinda like that people come here and just ask the developers :D also wiki maintenance isn't free, esp. with a diverse, opinionated and quickly developing community |
| 15:53:12 | <geekosaur> | I use » so I don't set off the bot |
| 15:53:27 | × | cdman quits (~dcm@user/dmc/x-4369397) (Ping timeout: 276 seconds) |
| 15:53:31 | <moonsheep> | ah, so anything goes? (as long as it's clear that it's a quote?) |
| 15:53:35 | <geekosaur> | not thst I quote very often and most of the time that ends up being whole messages so I just cut and paste with timestamp |
| 15:53:40 | <moonsheep> | [exa]: yeah I agree, I really like chatrooms |
| 15:54:02 | <[exa]> | moonsheep: IRC is a RPG, really imagine you're speaking and try to reduce the markup :D |
| 15:54:20 | <geekosaur> | hololeap, internal libs are still new enough that I suspect they're just not well knnown yet |
| 15:54:29 | <geekosaur> | think they came in with cabal 3.x |
| 15:54:47 | <dolio> | According to that doc it was 2.0, apparently. |
| 15:54:48 | × | kenran quits (~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 15:54:58 | <[exa]> | moonsheep: btw in #haskell, > on the beginning of the message triggers lambdabot to evaluate the message, but that's it I guess |
| 15:55:18 | <moonsheep> | >2 * " |
| 15:55:21 | <moonsheep> | >2*2 |
| 15:55:30 | <geekosaur> | watch out for ">", "@", "?", and sometimes ":" |
| 15:55:32 | <int-e> | > 2*2 -- needs a space too |
| 15:55:33 | <geekosaur> | need a space |
| 15:55:33 | <lambdabot> | 4 |
| 15:55:35 | <moonsheep> | > 2 * 2 |
| 15:55:36 | <lambdabot> | 4 |
| 15:55:38 | <moonsheep> | ah |
| 15:55:40 | <moonsheep> | that's really neat |
| 15:55:45 | <dolio> | Cabal has a lot of features that are actually pretty old, but are still considered new. |
| 15:56:02 | <[exa]> | an and '%' for the other bot |
| 15:56:08 | <melas> | Thanks maerwald for those links. I see the college course is from 2013, is that not old, or should it not matter since I'm just starting? |
| 15:56:31 | <moonsheep> | what happens if I |
| 15:56:32 | <moonsheep> | > getLine |
| 15:56:33 | <lambdabot> | <IO [Char]> |
| 15:56:39 | <moonsheep> | the bot is too smart |
| 15:56:47 | <maerwald> | melas: the college course is good |
| 15:57:05 | <geekosaur> | melas, that particular instantiation is from 2013, but it's generally considered the best of the series |
| 15:57:22 | <geekosaur> | I think later ones are also online if you prefer |
| 15:57:55 | <int-e> | moonsheep: "can't we use Haskell's type system to prevent the use of arbitrary IO" must have been one of the inspirations for lambdabot |
| 15:58:10 | <moonsheep> | yeah I figured |
| 15:58:48 | <geekosaur> | nicely packaged up as mueval if you want to use it yourself |
| 15:58:53 | <moonsheep> | > unsafePerformIO (putStrLn "hello") |
| 15:58:55 | <lambdabot> | error: |
| 15:58:55 | <lambdabot> | Variable not in scope: unsafePerformIO :: IO () -> t |
| 15:59:00 | <moonsheep> | worth a shot |
| 15:59:02 | <int-e> | At the time, the answer was "almost, but not quite"; SafeHaskell fills that gap. (Though I don't think anyone is 100% certain that it succeeds.) |
| 15:59:03 | <dolio> | hololeap: I guess it's potentially an even worse case of, "I need access to the internals, but they aren't available." |
| 15:59:04 | <geekosaur> | can't even import it |
| 15:59:28 | <dolio> | hololeap: Although, nowadays I think youc an depend on sublibraries, so it's actually a better solution to that? |
| 15:59:33 | <moonsheep> | still, the existence of unsafePerformIO doesn't let me sleep at night |
| 15:59:53 | <geekosaur> | enh, it has its uses. as long as you're careful |
| 16:00:02 | <dolio> | Like, you can have all your .Internal modules in an internal library that isn't in the main API, but someone who needs them can depend on lib:internal or something? |
| 16:00:10 | <geekosaur> | Debug.Trace is a useful and safe use of unsafePerformIO |
| 16:00:11 | × | renatofdds[m] quits (~renatofdd@2001:470:69fc:105::1:3cfe) (Quit: You have been kicked for being idle) |
| 16:00:20 | <moonsheep> | yeah, I've used that before |
| 16:00:24 | → | renatofdds[m] joins (~renatofdd@2001:470:69fc:105::1:3cfe) |
| 16:00:26 | <geekosaur> | dolio, can't depend on internal libraries |
| 16:00:29 | ← | renatofdds[m] parts (~renatofdd@2001:470:69fc:105::1:3cfe) () |
| 16:00:35 | <moonsheep> | I mean, any language that doesn't have printf debugging is immediately painful to use |
| 16:00:52 | <geekosaur> | only the cabal file with them can depend on them, they're not exposed in the package system |
| 16:01:00 | <moonsheep> | but I feel like there should perhaps be some compiler flag in production to disable all trippy type system stuff |
| 16:01:07 | <int-e> | At the very least, unsafePerformIO is a necessary part of a usable FFI; without it, all imports would live in IO |
| 16:01:18 | <melas> | Ok great! I'm eventually wanting to get into helping with development on DSP/synthesis stuff. I was inspired by this: https://www.euterpea.com/ |
| 16:01:24 | <moonsheep> | int-e: oh good point |
| 16:01:36 | <melas> | And I use tidalcycles.org |
| 16:01:59 | <maerwald> | melas: fyi the installation instructions there are quite outdated |
| 16:02:09 | <moonsheep> | anyway, was really fun coming here today, goodbye folks |
| 16:02:10 | <dolio> | geekosaur: What is the feature that allows a package to have multiple sublibraries, then? |
| 16:02:12 | × | moonsheep quits (~user@iespladelestany.xtec.cat) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 16:02:17 | <maerwald> | melas: use https://www.haskell.org/ghcup/ instead |
| 16:02:46 | <geekosaur> | dolio, its original intent was to allow internals to be accessed by a test program without exposing them in the public API |
| 16:04:23 | <melas> | Looks like I cant install mueval with cabal |
| 16:04:36 | <geekosaur> | make sure you "cabal update" first |
| 16:05:27 | <geekosaur> | this is something I hope they improve at some point, it's kinda silly you have to manually "cabal update" after installing |
| 16:05:41 | <maerwald> | geekosaur: ghcup install script takes care of that :p |
| 16:05:45 | → | odnes joins (~odnes@5-203-198-83.pat.nym.cosmote.net) |
| 16:05:53 | <melas> | ok thanks! |
| 16:06:44 | × | jinsun__ quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 16:06:50 | <melas> | Yeha still cant fufill dependancies after cabal update for mueval |
| 16:07:13 | <melas> | oh derp, looks like a nux only packagae |
| 16:07:19 | <melas> | *nix |
| 16:07:41 | <melas> | Im on windows unfortunately for wok |
| 16:07:53 | <melas> | sorry cant type today...work |
| 16:08:38 | <melas> | I'll get my wsl up later. Thanks again for your help everyone, I'll definitely be around :) |
| 16:08:53 | <maerwald> | GHC also works on plain windows |
| 16:09:10 | → | jinsun joins (~jinsun@user/jinsun) |
| 16:09:49 | <melas> | I have ghc installed. Is mueval preferred for some reason? |
| 16:09:49 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:12:51 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:12:53 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 16:13:20 | × | xff0x quits (~xff0x@om126253182187.31.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 16:15:13 | → | kraftwerk28 joins (~kraftwerk@178.62.210.83) |
| 16:19:40 | <geekosaur> | I meant mueval is the sandboxed ghc used by lambdabot. You wouldn't use it normally |
| 16:19:46 | <geekosaur> | you would use ghci |
| 16:22:22 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 16:23:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:23:44 | <melas> | OH haha goctha |
| 16:24:06 | × | odnes quits (~odnes@5-203-198-83.pat.nym.cosmote.net) (Remote host closed the connection) |
| 16:24:39 | → | odnes joins (~odnes@5-203-198-83.pat.nym.cosmote.net) |
| 16:24:51 | → | jinsun joins (~jinsun@user/jinsun) |
| 16:28:42 | → | Guest87 joins (~Guest87@179.43.100.206) |
| 16:28:51 | → | Vajb joins (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) |
| 16:31:05 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 16:31:27 | → | jinsun joins (~jinsun@user/jinsun) |
| 16:32:35 | × | Guest87 quits (~Guest87@179.43.100.206) (Client Quit) |
| 16:33:05 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 16:33:22 | → | jinsun joins (~jinsun@user/jinsun) |
| 16:37:21 | × | kraftwerk28 quits (~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:38:09 | → | kraftwerk28 joins (~kraftwerk@178.62.210.83) |
| 16:39:02 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 16:39:17 | PapuaHardyNet | is now known as mesaoptimizer |
| 16:40:24 | <dolio> | geekosaur: At least locally, you can do what I said. Have a package that depends on a sublibrary of another package. Just tried it out. |
| 16:40:38 | <geekosaur> | interesting |
| 16:40:51 | <dolio> | I'd heard that hackage was going to get support for this, too, but I don't know whether it actually happened. |
| 16:40:59 | <geekosaur> | I think that contradicts the docs |
| 16:41:04 | <geekosaur> | ah |
| 16:41:19 | <dolio> | I'm not going to upload garbage package to hackage to test it out. :) |
| 16:41:49 | → | oxide joins (~lambda@user/oxide) |
| 16:47:53 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 16:48:07 | <dolio> | One plan I'd heard of for this is that lens could contain many sublibraries that could be depended on individually, rather than getting everything or nothing, but could they could all live in the same package. |
| 16:49:11 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 16:49:35 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 16:51:30 | <c_wraith> | I suppose if you partition it into things that exist solely to support lenses for types in extra packages, that would be of some use. |
| 16:51:45 | → | waleee joins (~waleee@h-155-4-221-82.NA.cust.bahnhof.se) |
| 16:52:58 | <c_wraith> | You could look at it as a way to address orphan instances. sublibraries that don't have the orphan instances if you don't want to pull in the dependencies, then one additional sublibrary for each dependency you want to add instances for. |
| 16:53:13 | <c_wraith> | They're kind of orphan, but kind of not. |
| 16:54:08 | × | phma quits (~phma@2001:5b0:212a:a158:cf03:ba31:b20b:efff) (Read error: Connection reset by peer) |
| 16:54:48 | <c_wraith> | though you wouldn't want an extra import when you do want the extra instances, so that might be a giant pain. |
| 16:55:08 | → | phma joins (~phma@2001:5b0:211b:9668:1b71:5de:d62c:3d45) |
| 16:58:01 | × | alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 16:59:04 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 17:00:48 | → | caef^ joins (~caef@173-160-94-253-atlanta.hfc.comcastbusiness.net) |
| 17:01:05 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:03:51 | → | inversed joins (~inversed@176.248.27.211) |
| 17:04:12 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:06:58 | × | inversed_ quits (~inversed@176.248.27.211) (Ping timeout: 272 seconds) |
| 17:08:41 | × | raym quits (~raym@user/raym) (Ping timeout: 248 seconds) |
| 17:11:34 | → | moonsheep joins (~user@iespladelestany.xtec.cat) |
| 17:12:26 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 250 seconds) |
| 17:13:01 | → | cyphase joins (~cyphase@user/cyphase) |
| 17:14:19 | × | odnes quits (~odnes@5-203-198-83.pat.nym.cosmote.net) (Ping timeout: 240 seconds) |
| 17:17:07 | <maerwald> | automatic partial builds... and cabal drops all the dependencies it doesn't need :p |
| 17:17:19 | → | odnes joins (~odnes@5-203-204-134.pat.nym.cosmote.net) |
| 17:17:56 | → | Polo joins (~Polo@user/polo) |
| 17:20:34 | <dolio> | c_wraith: I think part of the point was that there was already some partitioning in hackage, like `lens-X` such that if you depended on all of them, you'd get approximately all of lens. But it was a bunch of duplicated effort. |
| 17:21:13 | <dolio> | And instead of two dozen (or whatever) lens-X packages, it could be lens:X. |
| 17:21:43 | <Franciman> | when you escape haskell's ivory tower, writing interpreters becomes a breeze |
| 17:22:29 | <Franciman> | it all becomes so clear |
| 17:23:35 | × | waleee quits (~waleee@h-155-4-221-82.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 17:26:49 | <geekosaur> | Franciman, do you have anything cogent to say or are you just randomly popping up to piss on Haskell in a Haskell channel? |
| 17:27:23 | <Franciman> | uh yes. Once you start thinking about the memory layout and management of the interpreter |
| 17:27:26 | × | moonsheep quits (~user@iespladelestany.xtec.cat) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 17:27:29 | <Franciman> | every piece starts fitting correctly |
| 17:27:36 | <Franciman> | sorry i was distracted on soccer |
| 17:27:51 | <Franciman> | so basically your interpreter becomes much more inspectable |
| 17:28:03 | <Franciman> | and you can provide very fine grained statistics and debugging things |
| 17:28:06 | <Franciman> | in haskell it proved REALLY HARD |
| 17:28:09 | <Franciman> | same in sml, really |
| 17:28:11 | <geekosaur> | again, is this cogent or is it just random pissing? |
| 17:28:19 | <hololeap> | haskell is like the fire hydrant on a dog's morning walk |
| 17:28:45 | <Franciman> | geekosaur: it is cogent for me. |
| 17:28:53 | <Franciman> | getting predictable performances is IMPORTANT |
| 17:28:55 | <Franciman> | for me |
| 17:29:03 | <geekosaur> | I mean, you keep doing this. saying the same things. randomly popping up apparently because nobody's talking about your world-saving interpreter |
| 17:29:12 | <Franciman> | nono sir |
| 17:29:15 | <Franciman> | i'm not saving anybody |
| 17:29:21 | <Franciman> | haskell is the best functional programming language around |
| 17:29:31 | <Franciman> | i'm just saying my experience with it writing an interpreter |
| 17:29:37 | <Franciman> | my language is not gonna be better than haskell, NEVER |
| 17:29:39 | <Franciman> | so please |
| 17:29:47 | <Polo> | Ay im pretty chill just sayin |
| 17:30:44 | × | odnes quits (~odnes@5-203-204-134.pat.nym.cosmote.net) (Ping timeout: 248 seconds) |
| 17:31:18 | <Franciman> | my takeaway so far was that ghc produces much better code when you don't question too much how things are evaluated, in what order etc |
| 17:31:40 | <Franciman> | an this is great. Getting the best performances when you don't think about how to get them, but just work declaratively is RAD |
| 17:32:05 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 17:32:06 | → | odnes joins (~odnes@5-203-251-40.pat.nym.cosmote.net) |
| 17:32:36 | <Franciman> | now the question is: is it harder to write an interpreter in C from scratch or to learn to productively tweak with stg-machine? |
| 17:33:04 | <Franciman> | o far my takeaway was: better with C, it took less |
| 17:33:42 | → | dagit joins (~dagit@2001:558:6025:38:6476:a063:d05a:44da) |
| 17:34:04 | → | econo joins (uid147250@user/econo) |
| 17:34:19 | <Franciman> | apparently what laziness shines at is forcing you to think declaratively, equationally |
| 17:34:29 | <Franciman> | and avoiding shitty hacks |
| 17:34:38 | <Franciman> | it just says: don't worry, i'mma take care of it |
| 17:35:04 | <Franciman> | something else which really shines at is forcing the separation of side effects, if you start using unsafePerformIO |
| 17:35:15 | <Franciman> | that doesn't respect referential trasparency, you get unpredictable stuff out |
| 17:35:27 | <Franciman> | while with eager evaluation it's much easier to sneak side effects in |
| 17:36:05 | <Franciman> | would i use haskell for an interpreter? Nope |
| 17:36:29 | <Franciman> | i found myself too in need of tweaking even the lowest bits of the evaluation process |
| 17:37:18 | <Franciman> | because i found that i needed to make things work in a very specific way, to get good introspection and performances together |
| 17:37:38 | <Franciman> | and ghc's runtime just want to naturally work in a different way |
| 17:38:48 | <Franciman> | you want a cogent example you said. I at first used an environment based interpreter |
| 17:38:58 | <Franciman> | but i wanted to convert it to a stack based one, with a manually managed stack |
| 17:39:16 | <Franciman> | the output was both horrendous and slow |
| 17:39:23 | <Franciman> | i haven't yet succeeded at doing it |
| 17:39:26 | <monochrom> | geekosaur: Self-assessments of "do you understand this?" "is this relevant to the rest of us?" "is your writing clear and easy to follow?" "are you correct?" are clearly all doomed, of course everyone thinks they're right. |
| 17:40:02 | <Franciman> | how would you specify the code for your lambda calculus with call by value in Haskell? |
| 17:40:07 | <Franciman> | what strategy would you use? |
| 17:41:13 | <monochrom> | At school there is always a minority of 1st-year students who request for re-grade by starting with "my code works but it failed your test cases" |
| 17:41:19 | <sclv> | personally i would google and read decades of prior relevant research |
| 17:41:37 | <Franciman> | thanks sclv |
| 17:41:40 | <Franciman> | i didn't think about it |
| 17:44:09 | <Franciman> | lols honestly |
| 17:44:20 | <Franciman> | i think you have a bit of a preconception with what i say |
| 17:45:26 | <Franciman> | if i just wanted to talk shit about haskell, i would just say Clojure > Haskell |
| 17:45:39 | <Franciman> | and things like that. I'm trying to get in good relationship with laziness |
| 17:45:55 | <Franciman> | sorry if i seem too assertive, maybe that's it |
| 17:47:32 | <monochrom> | You have found a way to implement an efficiency interpreter. Now you just need to also find a way to efficiently say it. |
| 17:47:40 | → | alp_ joins (~alp@user/alp) |
| 17:48:24 | <Franciman> | but i'd like to write it in haskell :( |
| 17:48:26 | <Franciman> | but i can't |
| 17:48:34 | → | tfeb joins (~tfb@balview.plus.com) |
| 17:48:42 | <monochrom> | It takes only two sentences. Using an ADT in a high-level language for stack is inefficient. Using a low-level language to access memory more directly to build the stack is more efficient. THE END. |
| 17:48:56 | <Franciman> | most of the research i found was about doing kind of optimisations that require low level tweaks |
| 17:48:57 | × | caef^ quits (~caef@173-160-94-253-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection) |
| 17:49:11 | <Franciman> | like manually managing a stack where you intersperse activtion records |
| 17:49:18 | <Franciman> | and arguments to functions |
| 17:50:52 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 17:51:45 | <Franciman> | uhm monochrom but an unboxed representation wouldn't work? |
| 17:52:46 | <monochrom> | I am showing you how to use just two sentences to replace your I don't know 100 sentences? |
| 17:53:04 | × | mbuf quits (~Shakthi@223.184.62.182) (Quit: Leaving) |
| 17:53:09 | <monochrom> | "Now you just need to also find a way to efficiently say it." |
| 17:53:21 | <Franciman> | ah ok thank you |
| 17:53:28 | × | Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Read error: Connection reset by peer) |
| 17:53:33 | <monochrom> | If it is still not clear: Efficient communication with other people. |
| 17:53:45 | <Franciman> | yes, i will pay more attention |
| 17:53:49 | <Franciman> | sorry thanks |
| 17:54:25 | × | Polo quits (~Polo@user/polo) (Quit: Textual IRC Client: www.textualapp.com) |
| 17:58:30 | → | raym joins (~raym@user/raym) |
| 17:58:44 | → | bahamas joins (~lucian@84.232.141.55) |
| 17:58:52 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) () |
| 17:59:29 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 17:59:30 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 17:59:50 | → | stackdroid18 joins (14094@user/stackdroid) |
| 17:59:51 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 18:00:13 | × | nurupo quits (~nurupo.ga@user/nurupo) (Quit: nurupo.ga) |
| 18:00:27 | → | nurupo joins (~nurupo.ga@user/nurupo) |
| 18:00:41 | × | tfeb quits (~tfb@balview.plus.com) (Remote host closed the connection) |
| 18:02:44 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 248 seconds) |
| 18:03:05 | × | alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 18:03:19 | <sm> | Franciman, I can relate to refreshment you feel when switching from one language/paradigm to another after some time.. you really enjoy the things that are easier in the the other |
| 18:03:24 | <sm> | there's a bit of a honeymoon I find |
| 18:05:07 | → | kenran joins (~kenran@200116b82b9bc000295e8ec7d820b24d.dip.versatel-1u1.de) |
| 18:05:15 | × | kenran quits (~kenran@200116b82b9bc000295e8ec7d820b24d.dip.versatel-1u1.de) (Client Quit) |
| 18:05:25 | <sm> | there's also often a big effect from having just the done same thing elsewhere.. everything is much clearer in your mind |
| 18:05:55 | <sm> | but I like those experience reports/comparisons of the same task across in multiple languages/paradigms |
| 18:05:59 | × | gawen quits (~gawen@user/gawen) (Ping timeout: 240 seconds) |
| 18:06:01 | <maerwald> | yeah, working on vscode-haskell gave me a refresher why javascript is a nightmare :D |
| 18:06:11 | <sm> | heh |
| 18:06:16 | → | kenran joins (~kenran@200116b82b9bc000379afc39a9f09380.dip.versatel-1u1.de) |
| 18:06:47 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 18:06:57 | <sm> | I really enjoyed doing some scripting python lately. So much less ceremony! Delightful! It did get a bit tedious making it robust, fairly soon |
| 18:07:06 | <geekosaur> | still, there is that and there is whining about escaping the ivory tower |
| 18:07:43 | <monochrom> | The lesson holds for all high-level languages. |
| 18:08:00 | <monochrom> | All the way from Java to Clojure. Not just Haskell. Not just lazy evalution. |
| 18:08:04 | × | odnes quits (~odnes@5-203-251-40.pat.nym.cosmote.net) (Ping timeout: 248 seconds) |
| 18:08:46 | → | echoone joins (~echoone@2a02:8109:a1c0:5d05:c5d3:5bf9:8bd:8b04) |
| 18:08:56 | <monochrom> | But I guess this is just another facet of what sclv said about prior work. |
| 18:09:39 | <monochrom> | If you never look at prior work, you both don't know known lessons and don't know that it is not just Haskell and it is not just ivory tower. |
| 18:11:25 | <echoone> | https://sodocumentation.net/haskell/topic/4525/data-aeson---json-in-haskell <-- I was trying this aeson tutorial, but when I decode I get Nothing instead of Just. I'm not sure what I am doing wrong here. |
| 18:11:44 | <monochrom> | Show actual code? |
| 18:12:16 | <monochrom> | @where paste |
| 18:12:16 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 18:12:21 | <carbolymer> | echoone: you might probably need a type annotation to let decode know that you're decoding into `Maybe Person` |
| 18:12:39 | <maerwald> | echoone: try `eitherDecode` |
| 18:13:13 | <monochrom> | Or another blog that posts untested code? |
| 18:13:31 | <echoone> | Ah, the type annotation helped. |
| 18:13:52 | carbolymer | scores |
| 18:14:08 | <carbolymer> | we should have leaderboard in helping ;-] |
| 18:14:12 | → | tfeb joins (~tfb@balview.plus.com) |
| 18:14:23 | <maerwald> | please no... even more DMs |
| 18:14:57 | <carbolymer> | ;] |
| 18:15:07 | <monochrom> | Oh Haha "SO Documentation" "Based on the documentation made by Stack Overflow contributors" |
| 18:15:19 | <carbolymer> | lol |
| 18:15:23 | <Hecate> | hey folks |
| 18:15:26 | <carbolymer> | also why this looks like ripcode |
| 18:15:28 | <carbolymer> | but blue |
| 18:15:30 | <monochrom> | So yes, taken out of context. |
| 18:15:31 | <Hecate> | except Markdown support, what's your Haddock christmas list? |
| 18:15:43 | <carbolymer> | Asciidoc support |
| 18:15:45 | → | dsrt^ joins (~dsrt@173-160-94-253-atlanta.hfc.comcastbusiness.net) |
| 18:15:46 | <maerwald> | Hecate: this one thing there with CPP |
| 18:15:48 | <maerwald> | what was it |
| 18:15:56 | <Hecate> | maerwald: oh yes I stumbled across your ticket recently |
| 18:15:57 | <maerwald> | https://github.com/haskell/haddock/issues/1440 |
| 18:16:22 | <Hecate> | maerwald: wouldn't this be fixed by Haddock reading the documentation from .hi files directly? |
| 18:16:27 | <Hecate> | instead of parsing the fix? |
| 18:16:28 | <Hecate> | *file |
| 18:16:29 | <Hecate> | damnit |
| 18:16:30 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 18:17:28 | <maerwald> | not sure |
| 18:17:45 | × | Techcable quits (~Techcable@user/Techcable) (Ping timeout: 276 seconds) |
| 18:18:05 | <maerwald> | there was a workaround which somewhat works |
| 18:18:07 | <maerwald> | I forgot |
| 18:18:25 | → | gawen joins (~gawen@user/gawen) |
| 18:18:46 | <maerwald> | I think covid broke my memory, so yeah |
| 18:18:49 | <monochrom> | No worries, you wrote down the workarounds in that ticket too :) |
| 18:19:02 | <maerwald> | I think there was another one with a haddock flag |
| 18:19:07 | <echoone> | Here's another example aeson code that isn't working for me: https://paste.tomsmeding.com/uSWnLLi7 |
| 18:19:08 | <monochrom> | Ah |
| 18:19:16 | <echoone> | testDecode gives me Nothing |
| 18:19:22 | <carbolymer> | maerwald: quite probable, I've read somewhere that someone lost their sense of humour after covid vaccine... |
| 18:19:35 | <maerwald> | something along the lines of NO_HOME something |
| 18:19:55 | <maerwald> | I'm being overly specific |
| 18:20:04 | <monochrom> | I wonder if you should change _code to code or change code to _code |
| 18:20:25 | <dmj`> | echoone: ^ |
| 18:20:37 | <echoone> | Ah, it's the underscore. Crap. I didn't notice that for some reason. |
| 18:20:40 | <dmj`> | the underscore is causing the failure |
| 18:20:47 | <echoone> | Isn't there an option to ignore the underscore? |
| 18:21:12 | <dmj`> | genericParseJSON defaultOptions { fieldLabelModifier = drop 1 } |
| 18:21:41 | <echoone> | Yeah, let me try that. |
| 18:23:19 | <maerwald> | {-# OPTIONS_HADDOCK not-home #-} |
| 18:23:57 | <dmj`> | *suspense* |
| 18:24:02 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 18:24:46 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 18:26:13 | <maerwald> | hm no, that does nothing for me in the CPP case |
| 18:26:50 | <echoone> | It worked. Thanks dmj` |
| 18:30:34 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 18:34:39 | × | tfeb quits (~tfb@balview.plus.com) (Ping timeout: 276 seconds) |
| 18:34:52 | → | hololeap joins (~hololeap@user/hololeap) |
| 18:35:03 | <dmj`> | echoone: nice |
| 18:36:53 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:41:11 | → | king_gs joins (~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e) |
| 18:41:28 | × | echoone quits (~echoone@2a02:8109:a1c0:5d05:c5d3:5bf9:8bd:8b04) (Quit: Client closed) |
| 18:42:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:42:45 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds) |
| 18:44:15 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 18:44:44 | → | Techcable joins (~Techcable@user/Techcable) |
| 18:48:38 | × | mjrosenb quits (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 18:50:17 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:54:55 | → | mjrosenb joins (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) |
| 18:55:39 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 18:56:14 | → | Henson joins (~kvirc@107-179-133-201.cpe.teksavvy.com) |
| 18:57:37 | <Henson> | if I deepseq something more than once, does it stop traversing the tree of thunks when it encounters one that has already been evaluated? For example, if I have a data structure that is expensive to deepseq and I call deepseq on it more than once, do I only pay the evaluation cost once? |
| 18:58:58 | <maerwald> | I think it would at least traverse the spine twice https://hackage.haskell.org/package/deepseq-1.4.7.0/docs/src/Control.DeepSeq.html#line-541 |
| 18:59:28 | <Henson> | I have a complex algorithm that is having a memory leak because large data is being associated with some of the data that is being put in. For some reason that I can't unravel, this data is not being garbage collected due to unevaluated thunks prevent garbage collection. Deepseqing the data structure makes it work, but I can't figure out where the problem is occurring and don't know if I... |
| 18:59:33 | → | alp_ joins (~alp@user/alp) |
| 18:59:41 | <maerwald> | also remember reading that in Simon Marlow's concurrency book |
| 18:59:52 | <Henson> | should give up an be satisfied with having a deepseq in my algorithm. Somebody told me a couple months ago that you shouldn't use deepseq in production code. |
| 19:00:02 | <maerwald> | huh? why not |
| 19:00:28 | <maerwald> | I know a production use case for it. Without it, the backend wouldn't be able to correctly boot. |
| 19:00:40 | → | malinoskj290645 joins (~malinoskj@c-69-138-223-33.hsd1.va.comcast.net) |
| 19:00:50 | → | Guest6593 joins (~Polo@user/polo) |
| 19:01:13 | <geekosaur> | unevaluated thunks /per se/ shouldn't prevent gc |
| 19:01:29 | <Henson> | maerwald: so, it'll traverse the spine of any lists, but won't descend into the items on the list if they're already evaluated? |
| 19:01:59 | <geekosaur> | unless those thunks are themselves holding within them references perhaps, but I'd think then they wouldn't be thunks |
| 19:02:08 | <monochrom> | I am a different somebody and I tell you that all sentences of the form "___ in production code" are sus. |
| 19:02:24 | <Henson> | well, something is going on that is preventing things from being garbage collected, and despite putting bangs and seqs and maps of seqs all over the place, I can't figure out where the problem is. |
| 19:03:11 | <monochrom> | Aliasing blocks GC. Same as in Java. |
| 19:03:12 | <geekosaur> | also it is possible to have something whose outer constructor has been evaluated but an inner one hasn't, so deepsequ seems like it would be useless if it didn't descend into those |
| 19:04:24 | <Henson> | geekosaur: right, that's true. The algorithm is iterative, with only a little of the data structure changing each time. So if I deepseq on every iteration, then it has to traverse the whole data structure every time. |
| 19:04:38 | <monochrom> | Example. "main = let xs=[0..n] in print xs" is O(1) space. "main = let xs=[0..n] in print xs >> print (length xs)" is Ω(n) space. |
| 19:05:20 | <monochrom> | The latter has nothing to do with laziness. It holds in SML too. |
| 19:05:35 | <geekosaur> | right |
| 19:05:44 | <monochrom> | The former though is helped, not hurt, by laziness. The former is Ω(n) space in SML. |
| 19:05:52 | <Henson> | I tried using various heap profiling options to try to figure out where the problem is, but they're not very helpful. The problem is that the memory is being allocated and freed in C++, so the memory profiling doesn't clearly indicate who the culprit is, as Haskell only knows about the foreign pointers (which are small) and not the data they point to (which is large) |
| 19:05:58 | Guest6593 | is now known as Polo |
| 19:06:22 | <monochrom> | There are also examples doing the opposite, laziness causing more space than eagerness. |
| 19:06:40 | <monochrom> | The conclusion is that both sentences "laziness blocks GC" and "eagerness blocks GC" are sus. |
| 19:06:57 | <monochrom> | The meta-conclusion is that all Internet hearsays are sus. |
| 19:07:11 | Henson | chuckles |
| 19:07:17 | <monochrom> | The Internet is full of dimwit false dichotomies. |
| 19:07:59 | <monochrom> | As a final example just look at how they say "big-O is worst case, big-Omega is best case, big-Theta is average case". |
| 19:08:28 | <Henson> | does anybody have any suggestions on tracking down thunk chains? I imagine I just need to put a bang on one or two lines, but which line is the question. |
| 19:08:45 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:10:16 | → | moonsheep joins (~user@185.154.9.192) |
| 19:11:32 | <Henson> | I'm just progressively disabling the things that are being deepseq'd, to see if I can pinpoint which part of the thunk tree is causing the problem |
| 19:11:36 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 19:13:45 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 19:15:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 19:18:06 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:19:40 | → | hololeap joins (~hololeap@user/hololeap) |
| 19:20:02 | × | hololeap quits (~hololeap@user/hololeap) (Client Quit) |
| 19:21:21 | × | alp_ quits (~alp@user/alp) (Ping timeout: 256 seconds) |
| 19:22:45 | <Henson> | is there a function I can use to evaluate only the spine of a list? |
| 19:23:17 | <monochrom> | length :) |
| 19:25:27 | <Henson> | monochrom: but in pure core that length needs to be used somewhere for it to actually occur, right? Or can I use seq to cause the length to be evaluated without actually using it? Like l = length foo; l `seq` real_calculation |
| 19:25:54 | <Henson> | or maybe for the second part data = l `seq` real_calculation |
| 19:26:25 | Henson | plays with :sprint |
| 19:27:06 | → | odnes joins (~odnes@5-203-251-40.pat.nym.cosmote.net) |
| 19:28:16 | <monochrom> | You are under too much influence from Internet false dichotomies. Either that, or you also wish they were true because they are so simple and comforting (until refuted by actual code). |
| 19:28:50 | <monochrom> | Premature evaluating of an ADT spine causes more space, not less. At least in most cases. |
| 19:29:48 | × | king_gs quits (~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e) (Ping timeout: 250 seconds) |
| 19:29:58 | <Henson> | monochrom: I'm just trying different ideas to track down what it is that will cause my algorithm to stop bloating |
| 19:30:02 | <monochrom> | Here is the usual scenerio of laziness causing more space. An ADT must not be involved. Instead, a small footprint type such as Int has to be involved. You try to compute 1+2+3+...+n but you write a lazy foldl. |
| 19:31:02 | <energizer> | i've got a monoid with the property that for some f, f (f x) = x. is there a type class for that? |
| 19:31:22 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:32:00 | <monochrom> | No. But it's commonly known as an involution, provided f ≠ id. Also, not just for monoids. |
| 19:32:35 | <monochrom> | Every non-id self-inverse function is called an involution. No other constraint. |
| 19:33:22 | <energizer> | why isn't there a type class Involution? |
| 19:33:35 | <monochrom> | Not enough interest? |
| 19:33:44 | <tdammers> | no practical use? |
| 19:34:02 | <tdammers> | this would be a typeclass with no methods, only laws |
| 19:34:20 | → | king_gs joins (~Thunderbi@187.201.220.53) |
| 19:34:32 | <monochrom> | There is no drive in giving all involutions of the world the same name. |
| 19:35:13 | <monochrom> | Plus the harsh reality that there can be a million distinct involutions for the same type. |
| 19:35:36 | → | bliminse joins (~bliminse@host86-164-128-238.range86-164.btcentralplus.com) |
| 19:35:38 | <monochrom> | Every mathematical definition, no matter how useful, does not need a class. |
| 19:35:38 | <energizer> | the same is true of + isnt it? |
| 19:35:59 | <energizer> | or * |
| 19:36:10 | <maerwald> | Henson: https://play-haskell.tomsmeding.com/play/paste/UL3wRxWd/1) |
| 19:36:19 | <monochrom> | Is it? Ring axioms are much more constraining. |
| 19:36:53 | <energizer> | i guess this is why idris has "named instances" |
| 19:37:14 | <monochrom> | For each type there are usually fairly few ways to make a ring, and by the time you discard the trolling ones, there is usually just 0 or 1 way. |
| 19:37:34 | <monochrom> | But there can still be a ton of actually useful involutions. |
| 19:37:35 | → | notzmv joins (~zmv@user/notzmv) |
| 19:38:43 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 19:38:50 | <monochrom> | In the case of monoid, it is saved by wanting to express both Foldable and Writer. |
| 19:39:30 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:40:14 | <monochrom> | This is why Monoid is fairly recent. Because Foldable and Writer are also fairly recent. Observe that without Foldable or Writer, no one was interested in make a Monoid class either. |
| 19:40:40 | <monochrom> | Every mathematical definition does not need a class. |
| 19:43:04 | <monochrom> | Why does Haskell attract all the perfectionist idealists? |
| 19:43:16 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:43:40 | <darkling> | It's the mathematical elegance, I suspect. |
| 19:43:41 | <energizer> | it's either here or lisp |
| 19:43:50 | <monochrom> | Lean exists. |
| 19:44:02 | <monochrom> | 20 years ago I would understand. |
| 19:44:19 | <monochrom> | This is 2022 and we have Idris and Lean and Clean and Mercury. |
| 19:45:14 | <energizer> | imho Lean wasnt really a programming language before lean4 |
| 19:47:39 | <monochrom> | Why would a perfectionist want a programming language in the first place? |
| 19:48:26 | <energizer> | this conversation is getting weird |
| 19:48:52 | <monochrom> | OK, but IMO wanting a class for involutions is weird in the first place. |
| 19:49:10 | <juri_> | Don't believe in weird conversations? you better start believin', cause you're in one now. |
| 19:49:10 | <monochrom> | It would make sense in a math language but not a programming language. |
| 19:49:42 | <monochrom> | actually s/would/might/ , I am not even convinced about that. |
| 19:49:50 | → | coot joins (~coot@213.134.190.95) |
| 19:52:20 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Remote host closed the connection) |
| 19:52:45 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 19:57:04 | × | kaskal quits (~kaskal@089144207160.atnat0016.highway.bob.at) (Quit: ZNC - https://znc.in) |
| 19:59:25 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 256 seconds) |
| 20:00:13 | → | agumonkey joins (~user@88.163.231.79) |
| 20:00:47 | → | kaskal joins (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) |
| 20:01:40 | × | odnes quits (~odnes@5-203-251-40.pat.nym.cosmote.net) (Remote host closed the connection) |
| 20:01:59 | → | odnes joins (~odnes@5-203-251-40.pat.nym.cosmote.net) |
| 20:02:06 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:11:11 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 20:11:34 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 20:16:06 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:18:42 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:23:51 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 20:25:22 | → | marvin3 joins (www-data@2607:5300:60:8be::1) |
| 20:25:33 | × | marvin3 quits (www-data@2607:5300:60:8be::1) (Client Quit) |
| 20:27:27 | → | hexfive joins (~eric@50.35.83.177) |
| 20:31:58 | × | king_gs quits (~Thunderbi@187.201.220.53) (Read error: Connection reset by peer) |
| 20:34:05 | → | king_gs joins (~Thunderbi@187.201.220.53) |
| 20:34:15 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: No route to host) |
| 20:35:29 | × | agumonkey quits (~user@88.163.231.79) (Read error: Connection reset by peer) |
| 20:37:00 | → | agumonkey joins (~user@88.163.231.79) |
| 20:40:34 | → | bahamas joins (~lucian@84.232.141.55) |
| 20:41:21 | → | dostoevsky0 joins (~5c42c5384@user/dostoevsky) |
| 20:43:21 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 276 seconds) |
| 20:43:21 | dostoevsky0 | is now known as dostoevsky |
| 20:45:13 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 256 seconds) |
| 20:45:56 | → | bahamas joins (~lucian@84.232.141.55) |
| 20:48:44 | × | odnes quits (~odnes@5-203-251-40.pat.nym.cosmote.net) (Quit: Leaving) |
| 20:50:53 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 256 seconds) |
| 20:54:23 | × | king_gs quits (~Thunderbi@187.201.220.53) (Read error: Connection reset by peer) |
| 20:55:26 | → | king_gs joins (~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e) |
| 21:11:16 | → | jollygood2 joins (www-data@2607:5300:60:8be::1) |
| 21:12:21 | × | kraftwerk28 quits (~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:12:44 | → | kraftwerk28 joins (~kraftwerk@178.62.210.83) |
| 21:12:49 | × | kraftwerk28 quits (~kraftwerk@178.62.210.83) (Remote host closed the connection) |
| 21:13:56 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 21:14:10 | × | Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
| 21:14:25 | × | king_gs quits (~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e) (Ping timeout: 260 seconds) |
| 21:20:00 | × | michalz quits (~michalz@185.246.204.101) (Remote host closed the connection) |
| 21:20:29 | → | kraftwerk28 joins (~kraftwerk@178.62.210.83) |
| 21:20:33 | × | kraftwerk28 quits (~kraftwerk@178.62.210.83) (Remote host closed the connection) |
| 21:23:26 | → | bahamas joins (~lucian@84.232.141.55) |
| 21:23:53 | × | jollygood2 quits (www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (EOF)) |
| 21:24:22 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 21:25:07 | → | zeenk joins (~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) |
| 21:25:37 | × | megaTherion quits (~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:26:01 | × | agumonkey quits (~user@88.163.231.79) (Ping timeout: 256 seconds) |
| 21:26:26 | → | king_gs joins (~Thunderbi@187.201.220.53) |
| 21:27:37 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 246 seconds) |
| 21:29:01 | → | bahamas joins (~lucian@84.232.141.55) |
| 21:29:07 | → | kraftwerk28 joins (~kraftwerk@178.62.210.83) |
| 21:29:18 | → | jollygood2 joins (www-data@2607:5300:60:8be::1) |
| 21:33:24 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 248 seconds) |
| 21:34:01 | → | megaTherion joins (~therion@mail.unix.io) |
| 21:35:09 | → | bahamas joins (~lucian@84.232.141.55) |
| 21:35:34 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:36:05 | × | jollygood2 quits (www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (EOF)) |
| 21:36:20 | → | jollygood2 joins (www-data@2607:5300:60:8be::1) |
| 21:37:25 | <dmj`> | free monads are great |
| 21:39:48 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 250 seconds) |
| 21:40:44 | × | hexfive quits (~eric@50.35.83.177) (Quit: WeeChat 3.5) |
| 21:40:46 | × | kenran quits (~kenran@200116b82b9bc000379afc39a9f09380.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 21:41:38 | → | bahamas joins (~lucian@84.232.141.55) |
| 21:42:09 | <jollygood2> | any estimate when ghc 9.2.3 is coming? |
| 21:42:43 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 21:42:54 | → | Codaraxis joins (~Codaraxis@user/codaraxis) |
| 21:44:57 | → | stackdroid18 joins (14094@user/stackdroid) |
| 21:46:32 | → | causal joins (~eric@50.35.83.177) |
| 21:48:11 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:48:25 | × | causal quits (~eric@50.35.83.177) (Client Quit) |
| 21:48:42 | → | Tuplanolla joins (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) |
| 21:48:47 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 256 seconds) |
| 21:50:47 | → | causal joins (~eric@50.35.83.177) |
| 21:51:03 | → | srz joins (~srz@181.228.49.93) |
| 21:52:48 | × | causal quits (~eric@50.35.83.177) (Client Quit) |
| 21:53:24 | → | causal joins (~eric@50.35.83.177) |
| 21:53:46 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:54:10 | × | causal quits (~eric@50.35.83.177) (Client Quit) |
| 21:54:57 | → | causal joins (~user@50.35.83.177) |
| 21:56:23 | × | king_gs quits (~Thunderbi@187.201.220.53) (Read error: Connection reset by peer) |
| 21:59:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 21:59:15 | → | king_gs joins (~Thunderbi@187.201.220.53) |
| 21:59:20 | × | causal quits (~user@50.35.83.177) (Client Quit) |
| 22:00:00 | → | causal joins (~user@50.35.83.177) |
| 22:00:02 | × | causal quits (~user@50.35.83.177) (Client Quit) |
| 22:01:40 | → | causal joins (~user@50.35.83.177) |
| 22:01:41 | × | Vajb quits (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer) |
| 22:02:17 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 22:03:17 | × | causal quits (~user@50.35.83.177) (Client Quit) |
| 22:03:51 | → | causal joins (~user@50.35.83.177) |
| 22:04:01 | × | causal quits (~user@50.35.83.177) (Client Quit) |
| 22:04:34 | → | causal joins (~user@50.35.83.177) |
| 22:04:55 | → | abrantesasf joins (~abrantesa@177.137.232.91) |
| 22:05:46 | × | king_gs quits (~Thunderbi@187.201.220.53) (Ping timeout: 246 seconds) |
| 22:08:35 | × | abrantesasf quits (~abrantesa@177.137.232.91) (Remote host closed the connection) |
| 22:15:22 | → | srz_ joins (~srz@179.36.117.131) |
| 22:18:00 | × | srz quits (~srz@181.228.49.93) (Ping timeout: 260 seconds) |
| 22:18:48 | × | kadobanana quits (~mud@user/kadoban) (Remote host closed the connection) |
| 22:19:14 | → | kadobanana joins (~mud@user/kadoban) |
| 22:20:13 | → | bahamas joins (~lucian@84.232.141.55) |
| 22:20:48 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 22:23:50 | × | zeenk quits (~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) (Quit: Konversation terminated!) |
| 22:24:22 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5) |
| 22:24:36 | → | jargon joins (~jargon@174-22-206-112.phnx.qwest.net) |
| 22:24:48 | → | causal joins (~user@50.35.83.177) |
| 22:24:57 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 248 seconds) |
| 22:25:18 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
| 22:25:37 | → | king_gs joins (~Thunderbi@187.201.220.53) |
| 22:29:51 | → | vicfred joins (~vicfred@user/vicfred) |
| 22:30:01 | <kaol> | > let eConst = Endo . const in appEndo (eConst 10 <> eConst 3) undefined |
| 22:30:04 | <lambdabot> | 10 |
| 22:31:18 | <kaol> | I wanted to wrap a value to just get the first element with whatever it used <> on. Creative use of Endo. |
| 22:35:14 | <Unicorn_Princess> | State got renamed to MonadState? |
| 22:35:41 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 22:35:46 | → | _srz joins (~srz@181.228.49.93) |
| 22:35:58 | <Unicorn_Princess> | (the type constructor that is, from Control.Monad.State) |
| 22:36:02 | → | jinsun joins (~jinsun@user/jinsun) |
| 22:36:06 | <geekosaur> | no |
| 22:36:28 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:36:37 | <geekosaur> | MonadState is the common functionality. State the type constructor no longer exists, because State is a type alias for StateT Identity |
| 22:36:40 | <hpc> | data State ... is now type State ... = StateT ... |
| 22:36:41 | <[exa]> | Unicorn_Princess: MonadState is the typeclass that says that something is able to provide stateful computation |
| 22:37:03 | <[exa]> | (Unicorn_Princess: have a look at MonadState methods) |
| 22:37:12 | <hpc> | also look at the MonadState instances |
| 22:37:26 | <hpc> | most of them aren't actually State |
| 22:37:27 | <geekosaur> | sorry, data constructor. there is lowercase `state` if you want to replace the old `State` data constructor |
| 22:37:31 | <monochrom> | Also look at Control.Monad.Trans.State |
| 22:38:04 | <Unicorn_Princess> | thanks, i guess i'll get reading |
| 22:38:23 | × | srz_ quits (~srz@179.36.117.131) (Ping timeout: 260 seconds) |
| 22:38:31 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 22:38:52 | → | jinsun joins (~jinsun@user/jinsun) |
| 22:40:17 | <[exa]> | anyway, I'm kinda noticing that the best recommendation for "learning" many hs packages is "just go read the source/see the instances/...". It may be a bit harsh for newcomers, especially if they come from a language that doesn't read as nice. Great we have haddock that makes this much more natural. |
| 22:41:07 | → | Topsi joins (~Topsi@dyndsl-095-033-019-087.ewe-ip-backbone.de) |
| 22:42:06 | <[exa]> | the point is, does this kindof property have a name that I could explicitly state, so that people are not so hesitant about opening the source? |
| 22:42:12 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 22:42:32 | × | nattiestnate quits (~nate@202.138.250.20) (Quit: WeeChat 3.5) |
| 22:42:56 | → | nattiestnate joins (~nate@202.138.250.52) |
| 22:43:20 | <Unicorn_Princess> | "legible library source"? or "the opposite of C++ standard library code" |
| 22:44:04 | <hpc> | there was a bit the other day where someone pointed out comment vs lines of code stats for ghc |
| 22:44:11 | <hpc> | and ghc was over a third comments |
| 22:44:29 | <hpc> | so to some extent, even when you're reading the code you're still getting documentation anyway |
| 22:44:32 | <[exa]> | bc people write research papers in there. :D |
| 22:45:01 | <[exa]> | anyway yeah that's probably "literate code" |
| 22:45:24 | <monochrom> | The name is "use the source, Luke". |
| 22:45:35 | <monochrom> | Very popular attitude in C communities. |
| 22:45:37 | <[exa]> | mmhmmm :] |
| 22:45:47 | <[exa]> | good |
| 22:45:56 | <hpc> | also you can learn a lot of new stuff just by reading seemingly unrelated stuff |
| 22:45:57 | <monochrom> | I disagree with that attitude. Write better docs. |
| 22:46:16 | <hpc> | it's one thing to read a bunch of continuation passing style tutorials and whatnot |
| 22:46:32 | <hpc> | it's another to go "i want to parse something", and then go to the source just out of curiosity |
| 22:46:50 | <hpc> | and there's a parser defined in a way that makes the whole thing obvious |
| 22:47:05 | <hpc> | here's the "consumed character success" continuation, here's the "end of stream success" continuation, etc |
| 22:47:34 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:47:39 | <[exa]> | understanding code is insufficiently hyped |
| 22:47:44 | <monochrom> | Other language communities seem to just fall under two schools. One is like C, "read the source Luke". The other reads neither source nor doc, instead cargo cult from Google searches. |
| 22:47:52 | <hpc> | haskell library code is ridiculously good |
| 22:49:00 | <monochrom> | The Haskell community seems to be this odd thing in which much work has been put into making haddock possible, then library authors go on to use it for "you can glean so much from just the types". |
| 22:49:25 | <hpc> | it's the reverse billy madison, you read the code and learn more than what you're looking for |
| 22:50:40 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:76e8:584c:bd55:70ba) (Read error: Connection reset by peer) |
| 22:51:15 | <[exa]> | like, we understand this is cool & the right way |
| 22:51:24 | → | bahamas joins (~lucian@84.232.141.55) |
| 22:52:22 | <[exa]> | I really wanted to ask how to explain someone used to python (or worse) that they are able to just master the package from the ground up by eyeballing it for 5 minutes |
| 22:52:23 | <hpc> | (the forwards billy madison is of course https://www.youtube.com/watch?v=wKjxFJfcrcA) |
| 22:52:34 | × | sammelweis_ quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection) |
| 22:53:05 | <[exa]> | skywalker way is good tho. :] |
| 22:53:25 | <monochrom> | Is that like explaining STEM to politicians and management types? |
| 22:53:44 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 22:55:27 | × | bahamas quits (~lucian@84.232.141.55) (Ping timeout: 246 seconds) |
| 22:56:32 | <monochrom> | BTW if you look around, "use the source, Luke" is only slighly less worse than "RTFM" on the ladder of using condescension to hide laziness. |
| 22:57:18 | <[exa]> | true |
| 22:57:28 | <hpc> | "use the source luke" isn't that bad |
| 22:57:51 | <[exa]> | it's got a bit of hope in there, yes :D |
| 22:58:24 | <[exa]> | nvm guys thanks for ideas |
| 22:58:27 | [exa] | -> afk |
| 22:59:06 | <hpc> | "rtfm" implicitly says "why are you even asking, you should know better", and "use the source luke" implicitly says "i am answering the question by answering the higher-order question" |
| 22:59:44 | <monochrom> | That's not how I've seen it used. |
| 23:00:05 | <monochrom> | I've only seen it used to rationalize being to proud to write docs. |
| 23:00:14 | <monochrom> | s/to proud/too proud/ |
| 23:00:52 | × | Topsi quits (~Topsi@dyndsl-095-033-019-087.ewe-ip-backbone.de) (Ping timeout: 248 seconds) |
| 23:01:28 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection) |
| 23:01:33 | <darkling> | There's a lot to be said for "this is in [link]this FAQ entry", though... |
| 23:01:49 | <monochrom> | Yes, that I support. |
| 23:04:35 | <darkling> | It's a self-protective move, much like the others can be, "I'm fed up answering this question repeatedly" being the driving force. |
| 23:05:05 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 23:05:23 | <monochrom> | Oh, human psychology is all about self-defense mechanisms. |
| 23:05:51 | → | mmhat joins (~mmh@2001:4090:a246:8044:ee08:6bff:fe09:5315) |
| 23:07:34 | <darkling> | Who told you to say that? ;) |
| 23:07:59 | <monochrom> | My brain made me say that. What choice do I have? |
| 23:08:38 | <darkling> | We believe in free will because we have no choice. |
| 23:08:45 | <monochrom> | hee hee |
| 23:09:22 | → | Topsi joins (~Topsi@dyndsl-095-033-019-087.ewe-ip-backbone.de) |
| 23:17:09 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 246 seconds) |
| 23:17:32 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:27:19 | × | moonsheep quits (~user@185.154.9.192) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 23:27:51 | × | chomwitt quits (~chomwitt@2a02:587:dc19:d600:8f70:f0f3:1c35:cd8a) (Ping timeout: 256 seconds) |
| 23:29:45 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds) |
| 23:35:10 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 23:39:40 | → | jao joins (~jao@211.68.17.95.dynamic.jazztel.es) |
| 23:46:40 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 260 seconds) |
| 23:56:16 | → | bahamas joins (~lucian@84.232.141.55) |
All times are in UTC on 2022-05-06.