Logs on 2022-07-13 (liberachat/#haskell)
| 00:00:33 | <talismanick> | Is it acceptable to ask about Haskell-family languages in here? |
| 00:01:19 | <talismanick> | I'll ask anyways: What are the options for pure (or almost) languages which compile to wasm and avoid touching Node/JS? |
| 00:01:26 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 00:01:42 | <talismanick> | like what Rust has with Yew |
| 00:02:15 | <arahael> | talismanick: i was going to suggest rust, but didnt know what you meant by "pure". |
| 00:02:57 | <talismanick> | arahael: Weeeell, I'm really happy that Rust has come this far, but I'd like something a bit higher level :) |
| 00:03:30 | <talismanick> | I've actually started to think as of late that I should take the plunge and learn Rust, but not to build a webapp |
| 00:03:43 | <talismanick> | (or plain website) |
| 00:04:13 | → | nightbreak joins (~nightbrea@2600:1700:70d1:d800:7997:c6a5:32b7:3d2e) |
| 00:04:59 | <geekosaur[m]> | Not ready yet but ghc will be targeting wasm with 9.6 hopefully |
| 00:05:01 | → | zaquest joins (~notzaques@5.130.79.72) |
| 00:06:22 | <talismanick> | geekosaur: Oh! I had basically given up on hope for Haskell itself after it seemed Asterius landed short of what I'd call "usable". (for someone like me) |
| 00:06:57 | <talismanick> | (really impressive, but I'm not skilled/diligent enough to wield it efficiently) |
| 00:07:02 | <arahael> | geekosaur[m]: woohoo! |
| 00:07:05 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 00:08:08 | <geekosaur[m]> | Also don't know if it uses node; talk to terrorjack in #ghc |
| 00:08:59 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 00:10:00 | <geekosaur> | asterius and ghcjs development got turned into the ghc 9.6 effort |
| 00:10:15 | <talismanick> | Ah, that explains why I stopped finding news after a certain point |
| 00:10:29 | <talismanick> | (or maybe it was a lull then) |
| 00:11:28 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 244 seconds) |
| 00:12:06 | <talismanick> | And, re possible node dependence, it's likely that it can drop Node for Deno (lighter, partially backwards-compatible rewrite in Rust from author of Node) |
| 00:12:26 | <talismanick> | Depending on how it uses Node, that is |
| 00:13:02 | <talismanick> | I've learned a bit about alternatives in my crusade to purge Node from anything I do |
| 00:13:15 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::909a) |
| 00:13:46 | <arahael> | i was surprised to learn that node's gc, and js's gc in general, is a reference counting scheme. |
| 00:15:22 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 00:15:25 | <Axman6> | I should write more JS with cyclic data structures... |
| 00:15:45 | × | ph88 quits (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 00:15:49 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 00:16:40 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 00:17:18 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 00:19:18 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 276 seconds) |
| 00:22:11 | × | xff0x quits (~xff0x@2405:6580:b080:900:9e06:cb70:78ee:9dbc) (Ping timeout: 272 seconds) |
| 00:22:54 | <Axman6> | geschwindig: you can write foo (someInt :: Int) (someBar :: Bar) = ... which I've don on $work projectsd where functions had lots of arguments. you might need a language extension to do that but GHC will tell you if you do need it |
| 00:28:08 | <talismanick> | Is gi-gtk still the best library for a mostly-declarative, implementation-details-hidden GTK GUI? |
| 00:28:43 | <talismanick> | err, gi-gtk-declarative |
| 00:28:44 | <talismanick> | https://hackage.haskell.org/package/gi-gtk-declarative |
| 00:30:21 | <talismanick> | I started working with it a while back and liked it, but got sidetracked and never returned |
| 00:31:26 | <talismanick> | Never used gtk2hs (that's the standard one, right), but the former looked more idiomatic |
| 00:32:38 | <glguy> | I've used gi-gtk together with glade. Is this an alternative to glade? |
| 00:33:28 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 00:36:58 | × | bontaq` quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 00:38:39 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 00:39:26 | nightbreak | is now known as nightbreak[Away] |
| 00:39:37 | → | jargon joins (~jargon@184.101.188.251) |
| 00:40:04 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 00:42:08 | × | slack6215 quits (~slack1256@186.11.84.89) (Remote host closed the connection) |
| 00:48:44 | <jackdk> | Axman6: you are right - type annotations in pattern bindings need `-XScopedTypeVariables` |
| 00:49:32 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 00:49:59 | <talismanick> | glguy: In a sense, yeah. You lay out your GUI, "as the ancients would have", via text commands to put this next to that or nest it over yonder |
| 00:51:00 | <talismanick> | but, it goes beyond eliminating the need to (presumably) wire Glade output to gi-gtk - it has its own language of "events" overlaying GTK's native, imperative notion of "signals" |
| 00:51:02 | → | nate4 joins (~nate@98.45.169.16) |
| 00:51:27 | <talismanick> | for example ^ |
| 00:52:00 | → | qhong_ joins (~qhong@rescomp-21-400677.stanford.edu) |
| 00:52:51 | <Axman6> | > let foldr (f :: a -> b -> b) (z :: b) ([] :: [a]) = z; foldr (f :: a -> b -> b) (z :: b) (x:xs :: [a]) = f x (foldr f z xs) in foldr (:) [] [1,2,3] |
| 00:52:53 | <lambdabot> | [1,2,3] |
| 00:55:10 | × | qhong quits (~qhong@DN200ouju.stanford.edu) (Ping timeout: 240 seconds) |
| 00:58:20 | × | califax quits (~califax@user/califx) (Ping timeout: 268 seconds) |
| 00:58:33 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 00:58:44 | → | califax joins (~califax@user/califx) |
| 00:58:47 | × | cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection) |
| 00:58:57 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 276 seconds) |
| 00:59:17 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 00:59:40 | → | cosimone joins (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) |
| 00:59:52 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 01:00:11 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 01:01:51 | <Axman6> | Where's Dons when you need him |
| 01:02:46 | <talismanick> | Wow, I'm amazed reactive-banana is still kicking |
| 01:03:29 | <talismanick> | It really does live up to the first (fake) testimonial from its wiki page: |
| 01:03:30 | <talismanick> | "In the programming-language world, one rule of survival is simple: dance or die. This library makes dancing easy." – Simon Banana Jones |
| 01:04:53 | <glguy> | talismanick: in my case I automated away the wiring of the glade to my app |
| 01:04:56 | <glguy> | (using ghc.generics) |
| 01:06:33 | <talismanick> | glguy: Glade outputs... XML, if I'm not mistaken? Did you throw an XML->ADT parser at it and match up what came out with ghc.generics? |
| 01:08:57 | <edwardk> | Axman6: didn't he move back to .au? you should be able to go knock on his door |
| 01:09:28 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:10:00 | <glguy> | talismanick: I did it from a data type, but that could have been automated away with template haskell (I just didn't go that route) |
| 01:10:21 | <glguy> | https://github.com/glguy/CookieCalculator/blob/master/gui/Main.hs#L44-L55 |
| 01:10:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 01:10:37 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer) |
| 01:11:52 | <glguy> | The declarative thing seems like it'd be nice for a dynamically defined UI, though |
| 01:13:15 | <talismanick> | glguy: that's actually why I looked up reactive-banana again - there was reactive-banana-gi-gtk, and I was wondering if I could use the two together |
| 01:13:32 | <Axman6> | edwardk: yeah, but he's stopped showing up here. I don't have a car do popping down the road to Sydney is a bit more difficult |
| 01:13:37 | <Axman6> | so* |
| 01:16:44 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:16:58 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection) |
| 01:17:24 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 01:17:56 | → | entheogenesis[m] joins (~entheogen@2001:470:69fc:105::1:e7c4) |
| 01:18:48 | → | orion joins (~orion@user/orion) |
| 01:20:41 | <orion> | Hello. Does Herbert Valerio Riedel (hvr) hang out here? If so, what is his pseudonym? |
| 01:22:38 | <talismanick> | glguy: is this... a program to play Cookie Clicker for you? |
| 01:22:46 | <talismanick> | A) that's awesome |
| 01:22:49 | <talismanick> | B) why |
| 01:23:23 | <talismanick> | C) why is the repo dominated in size by a .c file too large to be displayed in the browser |
| 01:24:14 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 01:24:32 | <Axman6> | I'm trying to build glean on macOS - seems that macOS defines isinf as a macro, and then one of the C++ deps tried to define a function with the same name without checking first -_- |
| 01:26:19 | <jackdk> | Axman6: I recommend s/mac/nix/ |
| 01:29:30 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 01:29:49 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 01:30:00 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 01:31:43 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 01:32:20 | → | finsternis joins (~X@23.226.237.192) |
| 01:32:38 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 01:33:40 | → | mixfix41 joins (~sdenynine@user/mixfix41) |
| 01:34:50 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 01:35:06 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 01:37:03 | → | abhinav joins (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) |
| 01:39:45 | <glguy> | talismanick: it was a model of cookie clicker that I used to try out combinations of upgrades to prioritize my purchases |
| 01:40:01 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 01:40:35 | <glguy> | talismanick: the C file is the game icons png/gif (don't remember) stashed in a C array |
| 01:40:49 | <glguy> | I think I meant to not commit that; it must have sneaked in at some point |
| 01:41:28 | <glguy> | It used to be able to generate very accurate values for cookies per second, click, etc, but the game has moved on since I implemented it and I haven't kept up |
| 01:43:38 | <glguy> | cookie clicker ends up getting surprisingly complicated when you're trying to generate cookies efficiently; there are a number of different strategies with varying levels of reliability and output and user involvement |
| 01:44:26 | → | g joins (x@libera/staff/glguy) |
| 01:46:42 | → | hughjfchen joins (~hughjfche@vmi556545.contaboserver.net) |
| 01:47:44 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection) |
| 01:48:07 | × | simpleauthority quits (~simpleaut@user/simpleauthority) (Quit: ZNC 1.8.2 - https://znc.in) |
| 01:48:32 | → | simpleauthority joins (~simpleaut@user/simpleauthority) |
| 01:49:48 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 01:51:21 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
| 01:53:08 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 01:53:45 | → | onr joins (~onr@user/onr) |
| 02:00:50 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 255 seconds) |
| 02:01:02 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 02:09:51 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 02:11:30 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 02:12:14 | → | seriously joins (~seriously@ool-18bd55d4.dyn.optonline.net) |
| 02:16:13 | × | brettgilio quits (~brettgili@c9yh.net) (Remote host closed the connection) |
| 02:18:37 | → | brettgilio joins (~brettgili@c9yh.net) |
| 02:19:59 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
| 02:20:01 | × | brettgilio quits (~brettgili@c9yh.net) (Client Quit) |
| 02:20:37 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 02:20:40 | → | brettgilio joins (~brettgili@c9yh.net) |
| 02:21:17 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:21:36 | × | brettgilio quits (~brettgili@c9yh.net) (Client Quit) |
| 02:21:53 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds) |
| 02:22:24 | → | brettgilio joins (~brettgili@c9yh.net) |
| 02:22:28 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 02:26:50 | × | td_ quits (~td@94.134.91.223) (Ping timeout: 244 seconds) |
| 02:27:26 | → | nate4 joins (~nate@98.45.169.16) |
| 02:28:36 | <edwardk> | orion: he used to, quite actively. not so much these days. nick: hvr |
| 02:28:48 | <orion> | Thank you edwardk. |
| 02:28:51 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 02:28:59 | → | td_ joins (~td@muedsl-82-207-238-241.citykom.de) |
| 02:29:50 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 02:31:51 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 02:34:33 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 02:38:12 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 244 seconds) |
| 02:41:30 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 02:41:31 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
| 02:42:38 | × | wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (Ping timeout: 255 seconds) |
| 02:44:03 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:44:03 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:44:03 | finn_elija | is now known as FinnElija |
| 02:45:26 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 02:47:54 | × | seriously quits (~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed) |
| 02:50:20 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 02:54:05 | × | onr quits (~onr@user/onr) (Quit: Leaving) |
| 02:56:07 | → | sagax joins (~sagax_nb@user/sagax) |
| 03:02:49 | × | geschwindig quits (~John_Ivan@user/john-ivan/x-1515935) (Ping timeout: 256 seconds) |
| 03:03:01 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 03:06:44 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 03:07:53 | → | Cajun joins (~Cajun@user/cajun) |
| 03:15:30 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 03:15:37 | × | orion quits (~orion@user/orion) (Quit: Leaving...) |
| 03:20:47 | → | nate4 joins (~nate@98.45.169.16) |
| 03:27:30 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 03:30:01 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 03:30:01 | × | noteness quits (~noteness@user/noteness) (Read error: Connection reset by peer) |
| 03:30:22 | → | noteness joins (~noteness@user/noteness) |
| 03:30:24 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:34:14 | → | johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 03:38:31 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 03:41:36 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 03:43:20 | → | nate4 joins (~nate@98.45.169.16) |
| 03:48:18 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 03:49:22 | × | Adran quits (adran@botters/adran) (Quit: Este é o fim.) |
| 03:58:41 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 03:59:02 | nightbreak[Away] | is now known as nightbreak |
| 04:00:51 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 04:01:10 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 04:01:14 | → | noteness joins (~noteness@user/noteness) |
| 04:06:11 | × | toluene quits (~toluene@user/toulene) (Quit: Ping timeout (120 seconds)) |
| 04:09:03 | → | toluene joins (~toluene@user/toulene) |
| 04:09:46 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 04:14:37 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 04:16:00 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 04:17:46 | → | nate4 joins (~nate@98.45.169.16) |
| 04:22:50 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 04:27:28 | → | dschrempf joins (~dominik@mobiledyn-62-240-134-33.mrsn.at) |
| 04:27:43 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 04:31:44 | → | notzmv joins (~zmv@user/notzmv) |
| 04:33:50 | × | forell quits (~forell@user/forell) (Ping timeout: 255 seconds) |
| 04:37:29 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 04:40:01 | → | kenran joins (~kenran@200116b82b67ed0072df3d95acc6d4a7.dip.versatel-1u1.de) |
| 04:40:34 | qhong_ | is now known as qhong |
| 04:40:37 | → | forell joins (~forell@user/forell) |
| 04:41:45 | × | kenran quits (~kenran@200116b82b67ed0072df3d95acc6d4a7.dip.versatel-1u1.de) (Client Quit) |
| 04:44:18 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 04:49:01 | <talismanick> | Are there actively-maintained libraries to display subsets of HTML, like in emails? |
| 04:52:08 | <talismanick> | blizzard-html? |
| 05:00:26 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 05:05:37 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 05:13:52 | → | mmhat joins (~mmh@p200300f1c7090757ee086bfffe095315.dip0.t-ipconnect.de) |
| 05:14:34 | × | nightbreak quits (~nightbrea@2600:1700:70d1:d800:7997:c6a5:32b7:3d2e) (Quit: Signing off for now...) |
| 05:16:55 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 05:17:40 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 05:20:27 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 05:22:23 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 05:22:31 | × | sagax quits (~sagax_nb@user/sagax) (Quit: Konversation terminated!) |
| 05:26:01 | → | mbuf joins (~Shakthi@122.165.55.71) |
| 05:28:25 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
| 05:31:45 | → | nschoe joins (~quassel@2a01:e0a:8e:a190:55e:c980:c5f4:9be5) |
| 05:33:30 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:34:17 | → | nightbreak_ joins (~nightbrea@2600:1700:70d1:d800:7997:c6a5:32b7:3d2e) |
| 05:35:10 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 05:44:12 | → | gmg joins (~user@user/gehmehgeh) |
| 05:50:03 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:51:52 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 05:54:47 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 05:57:06 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
| 06:02:48 | × | dschrempf quits (~dominik@mobiledyn-62-240-134-33.mrsn.at) (Ping timeout: 244 seconds) |
| 06:13:18 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 06:13:49 | → | frost joins (~frost@user/frost) |
| 06:20:42 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5) |
| 06:21:44 | → | dcoutts joins (~duncan@host86-176-29-6.range86-176.btcentralplus.com) |
| 06:22:37 | → | john joins (~john@60.254.0.204) |
| 06:23:00 | × | juri_ quits (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 276 seconds) |
| 06:23:49 | × | dcoutts_ quits (~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 272 seconds) |
| 06:24:59 | → | dcoutts_ joins (~duncan@host86-176-29-6.range86-176.btcentralplus.com) |
| 06:26:35 | → | schweers joins (~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c) |
| 06:26:47 | × | dcoutts quits (~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 255 seconds) |
| 06:26:59 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 06:30:01 | → | nate4 joins (~nate@98.45.169.16) |
| 06:30:05 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 06:31:05 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
| 06:32:29 | × | dolio quits (~dolio@130.44.130.54) (Ping timeout: 256 seconds) |
| 06:32:41 | × | nschoe quits (~quassel@2a01:e0a:8e:a190:55e:c980:c5f4:9be5) (Ping timeout: 272 seconds) |
| 06:32:42 | → | Batzy joins (~quassel@user/batzy) |
| 06:36:09 | → | dcoutts joins (~duncan@host86-176-29-6.range86-176.btcentralplus.com) |
| 06:38:02 | × | dcoutts_ quits (~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 255 seconds) |
| 06:38:12 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
| 06:40:31 | → | benin0 joins (~benin@183.82.29.162) |
| 06:40:55 | × | schweers quits (~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c) (Ping timeout: 272 seconds) |
| 06:45:09 | → | dcoutts_ joins (~duncan@host86-176-29-6.range86-176.btcentralplus.com) |
| 06:45:09 | × | Vajb quits (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 06:45:20 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 06:47:53 | × | dcoutts quits (~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 272 seconds) |
| 06:48:00 | → | dolio joins (~dolio@130.44.130.54) |
| 06:48:38 | → | bilegeek joins (~bilegeek@2600:1008:b051:ad72:b292:6384:9c6:e29c) |
| 06:50:30 | → | dcoutts__ joins (~duncan@host86-151-9-13.range86-151.btcentralplus.com) |
| 06:53:30 | × | dcoutts_ quits (~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 260 seconds) |
| 06:53:42 | × | Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:54:24 | × | shriekingnoise quits (~shrieking@201.212.175.181) (Quit: Quit) |
| 06:54:53 | × | winny quits (~weechat@user/winny) (Remote host closed the connection) |
| 06:54:59 | → | dcoutts_ joins (~duncan@host109-149-38-36.range109-149.btcentralplus.com) |
| 06:55:30 | → | winny joins (~weechat@user/winny) |
| 06:56:13 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection) |
| 06:56:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 06:57:35 | × | dcoutts__ quits (~duncan@host86-151-9-13.range86-151.btcentralplus.com) (Ping timeout: 260 seconds) |
| 07:00:03 | × | noteness quits (~noteness@user/noteness) (Read error: Connection reset by peer) |
| 07:00:03 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 07:00:18 | → | christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) |
| 07:00:30 | × | dcoutts_ quits (~duncan@host109-149-38-36.range109-149.btcentralplus.com) (Ping timeout: 260 seconds) |
| 07:00:47 | → | noteness joins (~noteness@user/noteness) |
| 07:00:51 | → | gmg joins (~user@user/gehmehgeh) |
| 07:01:13 | nightbreak_ | is now known as nightbreak[Away] |
| 07:02:21 | → | dcoutts_ joins (~duncan@host86-151-9-74.range86-151.btcentralplus.com) |
| 07:06:09 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:07:20 | → | coot joins (~coot@213.134.190.95) |
| 07:09:55 | × | bilegeek quits (~bilegeek@2600:1008:b051:ad72:b292:6384:9c6:e29c) (Quit: Leaving) |
| 07:12:02 | × | noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 07:12:40 | → | noteness joins (~noteness@user/noteness) |
| 07:13:59 | <albet70> | how to merge others cabal project into my project? |
| 07:16:50 | → | dcoutts joins (~duncan@host86-151-9-74.range86-151.btcentralplus.com) |
| 07:17:10 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 240 seconds) |
| 07:17:12 | × | dcoutts_ quits (~duncan@host86-151-9-74.range86-151.btcentralplus.com) (Ping timeout: 244 seconds) |
| 07:17:25 | → | nschoe joins (~quassel@178.251.84.79) |
| 07:17:50 | <[exa]> | albet70: as in "use more packages in 1 project directory" ? there's `cabal.project` for that |
| 07:18:07 | <[exa]> | AFAIK you just list the project subdirectories there and that's it |
| 07:18:36 | <[exa]> | roughly like this: https://cabal.readthedocs.io/en/3.6/cabal-project.html |
| 07:21:05 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 07:21:16 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:21:40 | → | dcoutts_ joins (~duncan@host86-151-9-74.range86-151.btcentralplus.com) |
| 07:22:30 | × | dcoutts quits (~duncan@host86-151-9-74.range86-151.btcentralplus.com) (Ping timeout: 240 seconds) |
| 07:22:31 | → | zmt00 joins (~zmt00@user/zmt00) |
| 07:24:21 | × | abhinav quits (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 07:25:50 | × | dcoutts_ quits (~duncan@host86-151-9-74.range86-151.btcentralplus.com) (Ping timeout: 240 seconds) |
| 07:29:31 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 07:29:35 | → | dcoutts joins (~duncan@host165-120-97-107.range165-120.btcentralplus.com) |
| 07:31:17 | <albet70> | I use 'cabal v2-install --lib scotty' to install scotty, but runghc told me couldn't load module 'Network.Wai' ... a member of the hidden package 'wai-3.2.3' |
| 07:31:51 | <albet70> | why there always hidden package what the heck that supposed to be |
| 07:34:21 | <[exa]> | if you don't declare that you need the package, it's hidden. How do you compile your project? with ghc or with cabal? |
| 07:34:54 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 252 seconds) |
| 07:35:58 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 07:36:50 | × | dcoutts quits (~duncan@host165-120-97-107.range165-120.btcentralplus.com) (Ping timeout: 244 seconds) |
| 07:37:00 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 07:37:20 | → | Cajun joins (~Cajun@user/cajun) |
| 07:37:21 | → | Tuplanolla joins (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) |
| 07:37:41 | → | dcoutts joins (~duncan@host213-122-124-201.range213-122.btcentralplus.com) |
| 07:38:19 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 07:39:36 | <jackdk> | I'm about to run out the door, but I think albet70 just needs to be set up with a cabal package for his work, so that he can add any dependencies that he needs |
| 07:39:38 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 07:40:00 | → | dcoutts_ joins (~duncan@host213-122-124-145.range213-122.btcentralplus.com) |
| 07:40:32 | → | acidjnk_new joins (~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de) |
| 07:40:59 | → | Guest|38 joins (~Guest|38@89.253.138.59) |
| 07:42:02 | → | dcoutts__ joins (~duncan@host213-122-124-189.range213-122.btcentralplus.com) |
| 07:42:17 | → | MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 07:42:32 | × | dcoutts quits (~duncan@host213-122-124-201.range213-122.btcentralplus.com) (Ping timeout: 244 seconds) |
| 07:44:23 | × | `2jt quits (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 07:44:36 | × | dcoutts_ quits (~duncan@host213-122-124-145.range213-122.btcentralplus.com) (Ping timeout: 244 seconds) |
| 07:48:22 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:49:38 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds) |
| 07:49:57 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds) |
| 07:52:00 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 07:52:29 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:99fe:ae00:5424:6d23) |
| 07:55:19 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 07:55:21 | → | jumper149 joins (~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) |
| 07:55:24 | × | jumper149 quits (~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) (Client Quit) |
| 07:55:47 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 07:55:49 | → | jumper149 joins (~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) |
| 07:55:59 | × | jumper149 quits (~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) (Client Quit) |
| 07:56:28 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 07:58:41 | → | jumper149 joins (~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) |
| 07:58:52 | → | chele joins (~chele@user/chele) |
| 07:58:59 | × | jumper149 quits (~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) (Client Quit) |
| 07:59:19 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 08:05:16 | → | fockerize joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 08:05:21 | → | lottaquestions joins (~nick@S0106a84e3f794893.ca.shawcable.net) |
| 08:05:23 | <fockerize> | [1..10] ^. ix 1 :: (Num a, Enum a, Monoid a) => a |
| 08:05:38 | <fockerize> | it complains Int not a Monoid |
| 08:05:56 | <Axman6> | Int is not a monoid |
| 08:06:07 | <Axman6> | % :t ix |
| 08:06:07 | <yahb2> | <interactive>:1:1: error: ; • Variable not in scope: ix ; • Perhaps you meant one of these: ; ‘id’ (imported from Prelude), ‘it’ (line 94) |
| 08:06:17 | <Axman6> | % :t Control.Lens.At.ix |
| 08:06:17 | <c_wraith> | what happens if there is no value at index 1 in the list? |
| 08:06:17 | <yahb2> | <interactive>:1:1: error: ; Not in scope: ‘Control.Lens.At.ix’ ; No module named ‘Control.Lens.At’ is imported. |
| 08:06:45 | <Axman6> | you possibly want to use ^? |
| 08:06:55 | <c_wraith> | or at instead of ix |
| 08:07:10 | <fockerize> | do i need to unwrap from a maybe? |
| 08:07:16 | <Axman6> | % [1.. 10 :: Int] ^. ix 1 |
| 08:07:16 | <yahb2> | <interactive>:136:17: error: ; • Variable not in scope: (^.) :: [Int] -> t0 -> t ; • Perhaps you meant one of these: ; ‘^’ (imported from Prelude), ‘.’ (imported from Prelude), ; ... |
| 08:07:28 | <Axman6> | % import Control.Lens |
| 08:07:28 | <yahb2> | <no location info>: error: ; Could not find module ‘Control.Lens’ ; It is not a module in the current program, or in any known package. |
| 08:07:32 | <Axman6> | D: |
| 08:07:41 | <c_wraith> | just use lambdabot |
| 08:07:45 | <Axman6> | why is yahb2 so uninformed |
| 08:07:52 | <Axman6> | does lambdabot have any of the lens stuff? |
| 08:07:53 | <c_wraith> | > [1 .. 10] ^. at 1 |
| 08:07:55 | <lambdabot> | error: |
| 08:07:55 | <lambdabot> | • No instance for (At [Integer]) arising from a use of ‘e_11101’ |
| 08:07:55 | <lambdabot> | • In the expression: e_11101 |
| 08:08:12 | <c_wraith> | oh, right. lists can't be At |
| 08:08:18 | <c_wraith> | > [1 .. 10] ^? ix 1 |
| 08:08:20 | <lambdabot> | Just 2 |
| 08:08:29 | → | dcoutts_ joins (~duncan@host213-122-124-249.range213-122.btcentralplus.com) |
| 08:09:34 | <fockerize> | [1..10] ^. pre (ix 1) . non 0 |
| 08:09:38 | → | ccntrq joins (~Thunderbi@2a01:c22:90b1:6100:1d89:f6ad:e13f:6833) |
| 08:09:42 | <fockerize> | > [1..10] ^. pre (ix 1) . non 0 |
| 08:09:44 | <lambdabot> | 2 |
| 08:10:12 | <fockerize> | ok just checking if there's other canonical way of doing this |
| 08:10:30 | <Axman6> | > [1.. 10::Int] ^? ix 1 |
| 08:10:32 | <lambdabot> | Just 2 |
| 08:10:38 | <fockerize> | > [1..10] ^. pre (ix 11) . non 0 |
| 08:10:40 | <lambdabot> | 0 |
| 08:11:29 | × | dcoutts__ quits (~duncan@host213-122-124-189.range213-122.btcentralplus.com) (Ping timeout: 272 seconds) |
| 08:13:42 | × | lottaquestions quits (~nick@S0106a84e3f794893.ca.shawcable.net) (Quit: Konversation terminated!) |
| 08:14:39 | × | benin0 quits (~benin@183.82.29.162) (Ping timeout: 272 seconds) |
| 08:14:45 | <Profpatsch> | When I have a left fold from postgres, I guess I don’t want to use a [] as the intermediate result type right? |
| 08:15:06 | <Profpatsch> | cause append is horrible |
| 08:15:53 | <Profpatsch> | In the same vein, is Validation (NonEmpty err) a even a good idea? |
| 08:16:04 | <Profpatsch> | When using it with applicative instances that is |
| 08:17:24 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:99fe:ae00:5424:6d23) (Ping timeout: 276 seconds) |
| 08:18:44 | × | mud quits (~mud@user/kadoban) (Remote host closed the connection) |
| 08:19:02 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
| 08:19:04 | <Profpatsch> | But looks like there isn’t even a Map.fromSeq |
| 08:19:09 | → | mud joins (~mud@user/kadoban) |
| 08:21:30 | × | phma quits (phma@2001:5b0:211c:eca8:4705:335b:2d2:d9c2) (Read error: Connection reset by peer) |
| 08:22:25 | × | raym quits (~raym@user/raym) (Quit: kernel update, rebooting...) |
| 08:22:30 | → | phma joins (phma@2001:5b0:211f:568:3cfb:a496:a509:3082) |
| 08:22:44 | × | thaumavorio quits (~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:24:01 | → | thaumavorio joins (~thaumavor@thaumavor.io) |
| 08:24:14 | dextaa8 | is now known as dextaa |
| 08:25:20 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 08:27:22 | → | Midjak joins (~Midjak@82.66.147.146) |
| 08:28:29 | → | dcoutts joins (~duncan@host86-177-125-93.range86-177.btcentralplus.com) |
| 08:29:38 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 08:30:02 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 08:30:19 | <kuribas> | ugh, my project for making a record of lenses is going totally out of hand... |
| 08:30:35 | × | dcoutts_ quits (~duncan@host213-122-124-249.range213-122.btcentralplus.com) (Ping timeout: 244 seconds) |
| 08:31:39 | <kuribas> | using generics |
| 08:31:50 | × | wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 08:31:59 | <kuribas> | Now I am using an existential to hide a type variable, then unsafeCoerce to pull it out again. |
| 08:32:13 | <kuribas> | I wonder if I shouldn't just scrap the idea, and go with template haskell instead. |
| 08:32:16 | → | wagle joins (~wagle@quassel.wagle.io) |
| 08:32:30 | <kuribas> | The generics will be probably slower as well. |
| 08:32:46 | <fockerize> | I have a MyData record type which contains a field(MyField) of type Num. how to make instance Num MyData to be the same as the field MyField? |
| 08:32:59 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 08:33:27 | <fockerize> | so that I don't have to define all the functions required by the class Num |
| 08:33:32 | <kuribas> | fockerize: you cannot |
| 08:33:33 | <fockerize> | by hand |
| 08:33:35 | <kuribas> | unless it's a newtype |
| 08:33:51 | → | Pickchea joins (~private@user/pickchea) |
| 08:34:11 | <fockerize> | kuribas: that's sad |
| 08:34:11 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 244 seconds) |
| 08:34:12 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 244 seconds) |
| 08:35:52 | <merijn> | fockerize: Also, that sounds like a terrible idea that should not be attempted >.> |
| 08:36:06 | <kuribas> | that also |
| 08:36:47 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 08:36:54 | <merijn> | Whenever you think "I want X to be an instance of Num" and you are *not* writing an algebra library where X is something resembling a number, just go for a walk until the insanity passes :) |
| 08:37:00 | <kuribas> | fockerize: make lenses for your record. |
| 08:37:24 | <kuribas> | fockerize: then you can update the field using "over myFieldLens" |
| 08:37:32 | <kuribas> | :t over |
| 08:37:34 | <lambdabot> | ASetter s t a b -> (a -> b) -> s -> t |
| 08:37:53 | <kuribas> | much saner |
| 08:37:59 | <kuribas> | and also more general |
| 08:39:47 | <kuribas> | or with generic-lens: over field @"myField" (* 2) |
| 08:44:16 | <kuribas> | https://hackage.haskell.org/package/generic-lens-2.2.1.0/docs/Data-Generics-Product-Fields.html#v:field |
| 08:44:59 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 08:44:59 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Write error: Connection reset by peer) |
| 08:44:59 | × | noteness quits (~noteness@user/noteness) (Write error: Connection reset by peer) |
| 08:44:59 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Write error: Connection reset by peer) |
| 08:44:59 | × | winny quits (~weechat@user/winny) (Read error: Connection reset by peer) |
| 08:44:59 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Read error: Connection reset by peer) |
| 08:44:59 | × | califax quits (~califax@user/califx) (Read error: Connection reset by peer) |
| 08:45:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection) |
| 08:45:21 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 08:45:22 | → | califax joins (~califax@user/califx) |
| 08:45:23 | → | noteness joins (~noteness@user/noteness) |
| 08:45:24 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 08:45:30 | → | winny joins (~weechat@user/winny) |
| 08:45:32 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 08:46:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 08:46:14 | → | nate4 joins (~nate@98.45.169.16) |
| 08:46:33 | × | winny quits (~weechat@user/winny) (Remote host closed the connection) |
| 08:46:40 | → | ubert joins (~Thunderbi@91.141.39.36.wireless.dyn.drei.com) |
| 08:46:58 | → | winny joins (~weechat@user/winny) |
| 08:48:08 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds) |
| 08:50:18 | × | jargon quits (~jargon@184.101.188.251) (Remote host closed the connection) |
| 08:50:34 | → | schweers joins (~user@p200300e34f1b3c008e5a2f37be14a79a.dip0.t-ipconnect.de) |
| 08:50:58 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:51:55 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 08:54:51 | <albet70> | I have a cabal project named "upload-files", and "cd upload-files; cabal init" got upload-files.cabal, now there's a cabal project called scotty-login-session on github, I git clone it into my upload-files, now how can use the third party modules in my code by config cabal.project? |
| 08:55:36 | <albet70> | I read the doc about cabal.project, sorry I don't get it |
| 08:57:11 | <albet70> | I know I can just cd scotty-login-session and use cabal v2-install --lib to install it, then config upload-files.cabal to use it, is there other proper way? |
| 08:58:15 | <albet70> | I can't find kind of this question on google, it's so few people to use it? |
| 08:58:28 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 08:59:57 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 09:00:15 | × | Guest|38 quits (~Guest|38@89.253.138.59) (Ping timeout: 272 seconds) |
| 09:02:37 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 09:02:39 | → | dcoutts_ joins (~duncan@host86-158-23-99.range86-158.btcentralplus.com) |
| 09:03:00 | × | dcoutts quits (~duncan@host86-177-125-93.range86-177.btcentralplus.com) (Ping timeout: 260 seconds) |
| 09:07:51 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 09:08:06 | → | noteness joins (~noteness@user/noteness) |
| 09:10:07 | → | `2jt joins (~jtomas@84.78.228.192) |
| 09:10:16 | → | wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de) |
| 09:13:21 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 09:14:40 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:14:40 | → | Igloo joins (~ian@matrix.chaos.earth.li) |
| 09:14:43 | → | coot joins (~coot@213.134.190.95) |
| 09:15:27 | × | noctux quits (~noctux@user/noctux) (Read error: Connection reset by peer) |
| 09:16:03 | × | ix quits (~ix@82-71-2-184.dsl.in-addr.zen.co.uk) (Ping timeout: 244 seconds) |
| 09:16:48 | → | Pickchea joins (~private@user/pickchea) |
| 09:17:36 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 09:18:47 | × | bjobjo quits (~bjobjo@user/bjobjo) (Quit: leaving) |
| 09:18:58 | → | gmg joins (~user@user/gehmehgeh) |
| 09:24:25 | <[exa]> | albet70: the "install it" goes to local project directories, it is still separated from other packages. Do you see the example on the top of the cabal.project docs? |
| 09:25:44 | → | Guest|38 joins (~Guest|38@89.253.138.59) |
| 09:25:50 | <[exa]> | the only thing from that you need is the first line -- just put it into your "upload-files" directory next to "upload-files.cabal", i.e. into file "upload-files/cabal.project" |
| 09:26:05 | <[exa]> | that tells cabal you have local packages in that directory's subdirectories |
| 09:26:37 | <[exa]> | then you put the scotty-login-session as a subdirectory there, i.e. you will have `upload-files/scotty-login-session` |
| 09:27:03 | <[exa]> | and then it should just work™ |
| 09:27:38 | <[exa]> | (just checking -- do you have a dependency declared in upload-files.cabal? it should explicitly say that it needs the scotty-login-session package.) |
| 09:31:06 | × | pie__ quits (~pie_bnc@user/pie/x-2818909) () |
| 09:31:27 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 09:31:30 | → | noctux joins (~noctux@user/noctux) |
| 09:32:08 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 09:33:09 | <albet70> | "[exa] :the only thing from that you need is the first line -- just put it into your "upload-files" directory next to "upload-files.cabal", i.e. into file "upload-files/cabal.project"", the first line is "package: */*.cabal"? just write this into cabal.project? |
| 09:33:22 | <albet70> | "[exa] :(just checking -- do you have a dependency declared in upload-files.cabal? it should explicitly say that it needs the scotty-login-session package.)", yes, I do |
| 09:35:43 | × | mmhat quits (~mmh@p200300f1c7090757ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 09:36:32 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:36:38 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 09:38:33 | → | ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) |
| 09:39:51 | <albet70> | now I have upload-files/scotty-login-session and upload-files/cabal.project, just one line "package: */*.cabal" in it, and in upload-files.cabal's build-depends, there is scotty-login-session, but when I run "cabal run " it tells no target given and no package in current directory |
| 09:41:15 | × | nschoe quits (~quassel@178.251.84.79) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 09:41:28 | → | nschoe joins (~quassel@178.251.84.79) |
| 09:44:35 | × | `2jt quits (~jtomas@84.78.228.192) (Ping timeout: 272 seconds) |
| 09:44:36 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:45:09 | × | ix quits (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Ping timeout: 276 seconds) |
| 09:45:40 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 09:47:00 | → | hsman joins (~hsman@80.95.197.227) |
| 09:47:11 | × | drlkf quits (~drlkf@ns327185.ip-37-187-109.eu) (Quit: q=) |
| 09:47:44 | → | drlkf joins (~drlkf@ns327185.ip-37-187-109.eu) |
| 09:48:48 | → | mmhat joins (~mmh@p200300f1c7090754ee086bfffe095315.dip0.t-ipconnect.de) |
| 09:48:49 | <hsman> | Hello all! I recently started using Haskell and I like what I've seen so far. Can somebody please point me to a good, open-source project to learn from? \ |
| 09:50:30 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 268 seconds) |
| 09:54:33 | → | __monty__ joins (~toonn@user/toonn) |
| 09:54:47 | <[exa]> | hsman: depends on what you want to learn. The whole hackage has "source" buttons, so you can literally click any function you like in the docs and see how people do it |
| 09:55:20 | <[exa]> | albet70: do you have `upload-files.cabal` ? |
| 09:55:35 | <[exa]> | that should be the starting point of your current project |
| 09:59:29 | <hsman> | I would like to learn how to structure the project, how to "include" files etc. My experience this far is only with the usual suspects (C++, Python etc) where you have quite a lot of liberty on how to organise files etc. |
| 09:59:42 | → | CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:01:08 | <hsman> | albet70: I haven't used cabal |
| 10:01:23 | × | CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Client Quit) |
| 10:04:00 | → | CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:04:32 | → | Everything joins (~Everythin@37.115.210.35) |
| 10:05:48 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 10:07:27 | <chreekat> | albet70: it sounds like you just want to use scotty-login-session as a dependency in your project, right? If that's the case you don't want to download it manually, you just want to add it as a dependency in your project. You do that by editing your project's cabal file |
| 10:10:05 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:10:24 | <chreekat> | Also if you just want to use it as a dependency, you don't need to bother with cabal.project file yet. That's basically only for projects that contain multiple Haskell packages. But you've just got one so far, "upload-files" |
| 10:10:46 | → | `2jt joins (~jtomas@84.78.228.192) |
| 10:13:08 | <[exa]> | hsman: then this is probably for you https://wiki.haskell.org/How_to_write_a_Haskell_program |
| 10:13:20 | <chreekat> | hsman: a Haskell package is defined by a cabal file. Unfortunately I haven't approached this from the newcomer perspective in a while, and I don't know if any good tutorials or examples for getting started off the top of my head. Fwiw the cabal docs are at https://cabal.readthedocs.io/en/3.6/ |
| 10:13:43 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Ping timeout: 272 seconds) |
| 10:15:56 | <chreekat> | Ah it looks like https://en.m.wikibooks.org/wiki/Haskell/Packaging has a link to a simple example package |
| 10:16:16 | × | toluene quits (~toluene@user/toulene) (Quit: Ping timeout (120 seconds)) |
| 10:16:18 | → | Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
| 10:16:21 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds) |
| 10:17:48 | → | toluene joins (~toluene@user/toulene) |
| 10:18:10 | → | merijn joins (~merijn@86.86.29.250) |
| 10:18:18 | <albet70> | "🟢 [exa] :albet70: do you have `upload-files.cabal` ?", yes, I have |
| 10:18:18 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds) |
| 10:18:50 | ← | Everything parts (~Everythin@37.115.210.35) () |
| 10:19:25 | <hsman> | Thanks. I'll have a look |
| 10:19:58 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 10:22:10 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:24:16 | <schweers> | Since I recently ran `stack clean` on my project, my builds fail with this mysterious error: https://pastebin.com/gZx9bBD4 Does anyone have an idea what might be going on here? |
| 10:26:53 | × | erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Read error: Connection reset by peer) |
| 10:27:12 | → | erisco joins (~erisco@d24-57-249-233.home.cgocable.net) |
| 10:28:36 | × | fjmorazan quits (~quassel@user/fjmorazan) (Remote host closed the connection) |
| 10:29:45 | → | fjmorazan joins (~quassel@user/fjmorazan) |
| 10:30:35 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 268 seconds) |
| 10:30:37 | <schweers> | On a possibly related note: are there known problems with both cabal and stack when using debian unstable? I get warnings about GHC being very new. Also cabal won’t build my project, because it can’t satisfy the dependencies for some reason. It seems to be a problem with different versions. |
| 10:31:12 | → | alexhandy2 joins (~trace@user/trace) |
| 10:31:32 | × | MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Quit: WeeChat 3.5) |
| 10:33:23 | → | MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) |
| 10:33:42 | → | cfricke joins (~cfricke@user/cfricke) |
| 10:34:11 | × | alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 10:34:17 | × | CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 10:34:23 | → | alexhandy joins (~trace@user/trace) |
| 10:36:13 | → | ccapndave joins (~ccapndave@xcpe-194-230-18-110.cgn.res.adslplus.ch) |
| 10:36:56 | × | phma quits (phma@2001:5b0:211f:568:3cfb:a496:a509:3082) (Read error: Connection reset by peer) |
| 10:37:40 | × | alexhandy2 quits (~trace@user/trace) (Ping timeout: 244 seconds) |
| 10:37:42 | → | phma joins (~phma@host-67-44-208-126.hnremote.net) |
| 10:39:10 | <chreekat> | schweers: that warning looks specific to stack, which I hear doesn't support certain versions of ghc yet. In general, the interplay of versions of Haskell software (compiler, build tools, libraries) is sufficiently complex that relying on distro packages nearly doesn't work. For libraries you can rely on cabal/stack, and for compilers and cabal/stack themselves you can look at ghcup |
| 10:40:32 | → | jmorris joins (uid537181@id-537181.uxbridge.irccloud.com) |
| 10:40:56 | <schweers> | So the general recommendation of the haskell community is to use ghcup instead of distro packages? |
| 10:41:14 | <maerwald> | schweers: that's an excellent choice |
| 10:44:33 | <Clint> | schweers: unstable is a mess right now due to the GHC 9 transition; if you want something usable you'd need to use stable or testing |
| 10:47:03 | <[exa]> | schweers: distro packages usually serve for powering the distro haskell software distribution (e.g., compiling pandoc for debians), which is very likely not what you want as a programmer |
| 10:47:31 | <[exa]> | albet70: where do you run the 'cabal install' ? should be next to that upload-files.cabal file. |
| 10:48:08 | <schweers> | I see that it’s a mess at the time. I normally prefer to use distro packages, but it seems that for many languages that’s no longer a good choice. |
| 10:49:06 | × | ccapndave quits (~ccapndave@xcpe-194-230-18-110.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com) |
| 10:49:13 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 10:50:32 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 10:51:18 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 10:51:28 | <john> | Hi .. I have a type signature munge :: (x -> y) -> (y -> (w, z)) -> x -> w for which the implementation in haskell book is |
| 10:51:49 | <john> | munge :: (x -> y) -> (y -> (w, z)) -> x -> w |
| 10:52:13 | <john> | sorry |
| 10:52:37 | <john> | munge xy ywz x = fst $ ywz $ xy x |
| 10:52:48 | <john> | how did they get the fst function here ?? |
| 10:53:14 | <john> | :t munge xy ywz x = fst $ ywz $ xy x |
| 10:53:15 | <lambdabot> | error: parse error on input ‘=’ |
| 10:54:05 | × | Guest|38 quits (~Guest|38@89.253.138.59) (Ping timeout: 255 seconds) |
| 10:55:17 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 10:56:28 | <geekosaur> | :t let munge xy ywz x = fst $ ywz $ xy x in munge |
| 10:56:29 | <lambdabot> | (t1 -> t2) -> (t2 -> (a, b)) -> t1 -> a |
| 10:57:41 | → | Julius joins (~Julius@ip5f5abb4c.dynamic.kabel-deutschland.de) |
| 10:58:16 | × | Julius quits (~Julius@ip5f5abb4c.dynamic.kabel-deutschland.de) (Client Quit) |
| 10:59:01 | <geekosaur> | and I don't really understand the question, beyond that `ywz` is returning `(a,b)` so if we want just `a` then we have to use `fst` |
| 10:59:08 | absence_ | is now known as absence |
| 11:00:03 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 11:00:03 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 11:00:04 | <john> | "ywz is returning (a,b)" ? |
| 11:00:39 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 11:01:10 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 11:01:19 | <geekosaur> | this comes from the type signature, compared to what the function is doing |
| 11:01:30 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 11:01:39 | <john> | geekosaur: Can you explain the type signature "munge :: (x -> y) -> (y -> (w, z)) -> x -> w" |
| 11:01:49 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 11:01:56 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 11:01:57 | <geekosaur> | yes, based on the implementation |
| 11:01:59 | → | pmarg joins (~pmarg@2a01:799:159f:9b00:6584:89a5:7099:99c5) |
| 11:02:17 | × | cheater quits (~Username@user/cheater) (Quit: Bitchx: Better than peer) |
| 11:02:18 | <albet70> | "🟢 [exa] :albet70: where do you run the 'cabal install' ? should be next to that upload-files.cabal file.", you mean I need to run "cabal install" inside upload-files before "cabal run"? |
| 11:02:21 | <geekosaur> | fst (ywz (xy x)) |
| 11:02:45 | <geekosaur> | (turning the `$`s into parentheses to show that it's function application) |
| 11:03:22 | <geekosaur> | so this indicates that `ywz` and `xy` must be functions, and the type signature is showing you the types of these functions |
| 11:04:07 | <geekosaur> | `xy` is a function from `x` to `y`, and `ywz` is a function from `y` to a tuple `(w,z)` |
| 11:04:15 | <john> | I understood munge as a function which takes xy which in turn takes another function ywz which in turn takes an argument x resulting in an output w" .. does that sound right? |
| 11:04:28 | <geekosaur> | not quite |
| 11:04:49 | <geekosaur> | `xy` does not take that function. `munge xy` does |
| 11:05:01 | <john> | yes |
| 11:05:22 | <geekosaur> | (partial application, that is) |
| 11:05:25 | <john> | yes |
| 11:05:35 | <geekosaur> | `xy` is just a function from `x` to `y` |
| 11:05:41 | <john> | ok |
| 11:05:53 | <geekosaur> | `ywz` is a function from `y` to `(w,z)` |
| 11:05:56 | × | mjacob quits (~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer) |
| 11:06:05 | <john> | ok |
| 11:06:09 | <geekosaur> | then we want, according to the type of `munge`, just the `w` |
| 11:06:18 | <geekosaur> | so it applies `fst` to the result |
| 11:06:49 | <john> | in such a scenario.. y refers to the function fst? |
| 11:07:15 | <geekosaur> | it *is* kinda difficul;t to trace through this because it all looks like type variable soup 🙂 but if you trace through them it becomes fairly obvious |
| 11:07:23 | <geekosaur> | no |
| 11:07:38 | <geekosaur> | `fst` is not a parameter, it's a function from the Prelude |
| 11:07:43 | <john> | yes |
| 11:08:11 | <geekosaur> | `y` is the same `y` produced by `xy` |
| 11:08:42 | <john> | ok |
| 11:10:09 | <geekosaur> | in some sense you can think of `$` as pipelining values from one function to another, so `ywz $ xy x` computes `xy x` and sends the result to `ywz` |
| 11:10:13 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 11:10:20 | <geekosaur> | then the result of that is sent to `fst` |
| 11:10:24 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 11:10:26 | → | cheater joins (~Username@user/cheater) |
| 11:10:54 | <geekosaur> | (in general function application and function composition go right to left, not left to right) |
| 11:11:21 | <john> | and that necessarily has to give the value (w,z) and we want to get w out so we apply fst ?? |
| 11:11:42 | → | mjacob joins (~mjacob@adrastea.uberspace.de) |
| 11:12:22 | <geekosaur> | yes |
| 11:12:29 | <john> | got it.. |
| 11:12:35 | → | bontaq` joins (~user@ool-45779fe5.dyn.optonline.net) |
| 11:13:49 | <john> | one more advice.. you mentioned tracing through the it.. how do you do it.? I understand when you have real values you can compute / solve a bit and see if its lining along but how do you do it with abstract values? |
| 11:15:22 | <geekosaur> | you can still see the flow of types. you also need the implementation as guidance, though |
| 11:15:31 | → | hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net) |
| 11:15:38 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 11:16:28 | → | xff0x joins (~xff0x@2405:6580:b080:900:226f:8243:60d1:9235) |
| 11:16:28 | <geekosaur> | but, for example, since `w` only appears in the tuple `(w,z)` and as the result type, you can tell immediately that the tuple must be the result of `ywz` |
| 11:16:38 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 11:16:38 | → | bjobjo joins (~bjobjo@user/bjobjo) |
| 11:17:05 | <john> | ok |
| 11:17:18 | <absence> | is there a way to "rebalance" tuples automatically, e.g. ((x, y), z) -> (x, (y, z)), without spelling out all possible permutations? i realise that such tuples are different types, so i guess it would involve something like generics/th |
| 11:17:51 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 11:18:15 | <geekosaur> | yeh, probably generics |
| 11:19:00 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 244 seconds) |
| 11:19:10 | <geekosaur> | it's kinda unfortunate that tuples don't behave somewhat like lists (iirc they do in some other haskell-like languages😞 (a,b,c) is actually (a,(b,c)), and so on |
| 11:20:12 | <fockerize> | any web scrapers that also supports modification or updates? |
| 11:20:37 | <fockerize> | I'm fond of the scalpel library, but it can't update files |
| 11:22:10 | <absence> | geekosaur: that sounds nice... do you know if there's a library that already does something like that with generics? |
| 11:22:45 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 11:23:01 | <geekosaur[m]> | Not offhand |
| 11:26:19 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 11:27:50 | × | john quits (~john@60.254.0.204) (Ping timeout: 255 seconds) |
| 11:30:25 | → | nate4 joins (~nate@98.45.169.16) |
| 11:32:50 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 240 seconds) |
| 11:33:17 | → | jtomas joins (~jtomas@84.78.228.192) |
| 11:34:13 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 11:34:38 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 11:34:50 | × | `2jt quits (~jtomas@84.78.228.192) (Read error: Connection reset by peer) |
| 11:35:15 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 11:36:08 | → | `2jt joins (~jtomas@84.78.228.192) |
| 11:37:02 | <schweers> | Can someone explain this cabal line to me? [__1] rejecting: base-4.14.3.0/installed-4.14.3.0 (conflict: aufb => base^>=4.11.3.0 && <5) |
| 11:37:06 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:37:17 | <schweers> | Why does 4.14.3 not satisfy >=4.11.3.0? |
| 11:37:31 | <schweers> | Also: what does ^>= mean, compared to >=? |
| 11:38:10 | × | jtomas quits (~jtomas@84.78.228.192) (Ping timeout: 260 seconds) |
| 11:38:49 | <merijn> | schweers: See the 2nd half of: https://cabal.readthedocs.io/en/3.6/cabal-package.html#pkg-field-build-depends |
| 11:39:19 | × | cheater quits (~Username@user/cheater) (Quit: (BitchX) If you gaze into the abyss, the abyss gazes also into you) |
| 11:40:18 | <schweers> | Oh, I see, thank you very much! |
| 11:40:18 | <schweers> | |
| 11:40:45 | <merijn> | I'm guessing the <5 constraint comes from another package |
| 11:40:47 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 11:41:19 | <merijn> | And it's really just a conflict of ^>=4.11.3.0 not allowing 4.14 |
| 11:41:40 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:42:19 | → | raym joins (~raym@user/raym) |
| 11:43:10 | × | [exa] quits (exa@user/exa/x-3587197) (Ping timeout: 240 seconds) |
| 11:44:00 | → | [exa] joins (exa@srv3.blesmrt.net) |
| 11:46:02 | → | emanon421 joins (~emanon42@103.120.19.44) |
| 11:47:24 | → | cheater joins (~Username@user/cheater) |
| 11:47:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 11:47:54 | × | emanon42 quits (~emanon42@103.120.19.44) (Ping timeout: 272 seconds) |
| 11:47:54 | emanon421 | is now known as emanon42 |
| 11:51:41 | × | merijn quits (~merijn@86.86.29.250) (Ping timeout: 255 seconds) |
| 11:52:04 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 244 seconds) |
| 11:57:26 | → | john joins (~john@115.96.219.230) |
| 12:05:30 | × | bliminse quits (~bliminse@user/bliminse) (Ping timeout: 240 seconds) |
| 12:06:57 | × | cheater quits (~Username@user/cheater) (Read error: Connection reset by peer) |
| 12:07:28 | → | bliminse joins (~bliminse@user/bliminse) |
| 12:18:25 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 12:21:11 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:23:55 | × | pmarg quits (~pmarg@2a01:799:159f:9b00:6584:89a5:7099:99c5) (Remote host closed the connection) |
| 12:27:45 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 12:29:10 | × | `2jt quits (~jtomas@84.78.228.192) (Ping timeout: 240 seconds) |
| 12:29:28 | × | schweers quits (~user@p200300e34f1b3c008e5a2f37be14a79a.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 12:30:47 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 12:31:13 | → | alexhandy2 joins (~trace@user/trace) |
| 12:31:34 | → | dschrempf joins (~dominik@mobiledyn-62-240-134-33.mrsn.at) |
| 12:33:59 | × | alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 12:34:19 | → | alexhandy joins (~trace@user/trace) |
| 12:35:28 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:37:32 | × | alexhandy2 quits (~trace@user/trace) (Ping timeout: 244 seconds) |
| 12:37:45 | → | pgas joins (~pg@190.247.245.154) |
| 12:38:25 | → | img joins (~img@user/img) |
| 12:39:47 | → | fserucas joins (~fserucas@89.214.118.110) |
| 12:39:51 | → | fserucas_ joins (~fserucas@89.214.118.110) |
| 12:41:51 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 12:42:24 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 12:42:37 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 12:43:45 | → | Guest34 joins (~Guest34@152.7.255.203) |
| 12:47:40 | × | phma quits (~phma@host-67-44-208-126.hnremote.net) (Read error: Connection reset by peer) |
| 12:47:58 | × | raym quits (~raym@user/raym) (Ping timeout: 240 seconds) |
| 12:48:19 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 12:48:38 | → | phma joins (~phma@2001:5b0:211c:45d8:dcca:18c7:bf12:f383) |
| 12:50:22 | → | dextaa joins (~DV@user/dextaa) |
| 12:51:09 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 12:51:55 | <qrpnxz> | there a way to get ghc to do an action when the garbage collector is called on an object? |
| 12:52:32 | × | ccntrq quits (~Thunderbi@2a01:c22:90b1:6100:1d89:f6ad:e13f:6833) (Ping timeout: 244 seconds) |
| 12:52:35 | bontaq` | is now known as bontaq |
| 12:53:03 | <qrpnxz> | like __gc in lua |
| 12:53:22 | → | dextaa joins (~DV@user/dextaa) |
| 12:53:27 | <kuribas> | qrpnxz: if you use the FFI you can make your own finalizer. |
| 12:53:36 | <kuribas> | as far as I remember |
| 12:54:19 | <qrpnxz> | hmm thanks. |
| 12:54:33 | <qrpnxz> | Think i can get by with just a bracket actually, but that's good to know. |
| 12:54:35 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 12:54:52 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 12:55:56 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:56:58 | jpds1 | is now known as jpds |
| 12:59:07 | <geekosaur> | there is ForeignPtr |
| 12:59:38 | → | ccntrq joins (~Thunderbi@dynamic-095-112-112-176.95.112.pool.telefonica.de) |
| 12:59:38 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:00:23 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 13:01:06 | × | mima quits (~mmh@aftr-62-216-210-233.dynamic.mnet-online.de) (Quit: leaving) |
| 13:01:23 | × | ubert quits (~Thunderbi@91.141.39.36.wireless.dyn.drei.com) (Quit: ubert) |
| 13:01:31 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 13:02:21 | → | shriekingnoise joins (~shrieking@201.212.175.181) |
| 13:03:20 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::909a) |
| 13:06:39 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
| 13:07:50 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds) |
| 13:08:33 | → | Colere joins (~colere@about/linux/staff/sauvin) |
| 13:09:28 | → | nate4 joins (~nate@98.45.169.16) |
| 13:09:36 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 13:11:00 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 13:11:07 | → | Furor joins (~colere@about/linux/staff/sauvin) |
| 13:12:58 | × | john quits (~john@115.96.219.230) (Quit: Leaving) |
| 13:13:43 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 244 seconds) |
| 13:14:29 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
| 13:18:01 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 13:19:18 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:2f00:f9a4:8560:d503) |
| 13:20:20 | × | jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:25:08 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:25:39 | → | ccntrq1 joins (~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397) |
| 13:26:03 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:26:10 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:27:27 | × | ccntrq quits (~Thunderbi@dynamic-095-112-112-176.95.112.pool.telefonica.de) (Ping timeout: 276 seconds) |
| 13:27:27 | ccntrq1 | is now known as ccntrq |
| 13:28:45 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
| 13:29:36 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:32:11 | × | dcoutts_ quits (~duncan@host86-158-23-99.range86-158.btcentralplus.com) (Remote host closed the connection) |
| 13:32:29 | → | dcoutts_ joins (~duncan@host86-158-23-99.range86-158.btcentralplus.com) |
| 13:35:31 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 13:36:01 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:36:33 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
| 13:38:21 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 13:39:16 | × | ystael quits (~ystael@user/ystael) (Quit: Lost terminal) |
| 13:40:36 | → | dcoutts joins (~duncan@host86-151-44-236.range86-151.btcentralplus.com) |
| 13:41:50 | × | dcoutts_ quits (~duncan@host86-158-23-99.range86-158.btcentralplus.com) (Ping timeout: 240 seconds) |
| 13:42:34 | → | geschwindig joins (~John_Ivan@user/john-ivan/x-1515935) |
| 13:43:59 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 13:45:40 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 13:49:26 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 13:49:33 | → | juri_ joins (~juri@84-19-175-179.pool.ovpn.com) |
| 13:49:41 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 13:50:45 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5) |
| 13:51:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:51:20 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 13:51:38 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 13:53:38 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 13:54:24 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 13:55:41 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:56:13 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:57:06 | → | ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) |
| 13:57:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:57:38 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:58:34 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 13:58:43 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 13:58:51 | → | dcoutts_ joins (~duncan@host86-151-44-236.range86-151.btcentralplus.com) |
| 13:59:05 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:59:41 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 13:59:41 | × | dcoutts quits (~duncan@host86-151-44-236.range86-151.btcentralplus.com) (Ping timeout: 244 seconds) |
| 14:00:11 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:00:20 | → | raym joins (~raym@user/raym) |
| 14:00:37 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:01:13 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:02:10 | × | fockerize quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 14:03:10 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 14:06:29 | → | dcoutts joins (~duncan@host86-151-44-236.range86-151.btcentralplus.com) |
| 14:07:50 | × | dcoutts_ quits (~duncan@host86-151-44-236.range86-151.btcentralplus.com) (Ping timeout: 240 seconds) |
| 14:08:38 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 14:10:20 | → | dcoutts_ joins (~duncan@host86-176-29-82.range86-176.btcentralplus.com) |
| 14:10:44 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 14:11:13 | × | MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 272 seconds) |
| 14:12:04 | → | MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) |
| 14:12:10 | × | dcoutts quits (~duncan@host86-151-44-236.range86-151.btcentralplus.com) (Ping timeout: 240 seconds) |
| 14:12:40 | → | dcoutts joins (~duncan@host86-167-90-210.range86-167.btcentralplus.com) |
| 14:14:07 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:14:41 | × | dcoutts_ quits (~duncan@host86-176-29-82.range86-176.btcentralplus.com) (Ping timeout: 244 seconds) |
| 14:17:31 | → | fserucas__ joins (~fserucas@1.75.114.89.rev.vodafone.pt) |
| 14:18:17 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 14:19:38 | × | fserucas_ quits (~fserucas@89.214.118.110) (Ping timeout: 240 seconds) |
| 14:19:51 | → | fserucas_ joins (~fserucas@1.75.114.89.rev.vodafone.pt) |
| 14:20:43 | × | fserucas quits (~fserucas@89.214.118.110) (Ping timeout: 272 seconds) |
| 14:24:15 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 14:27:57 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 14:28:43 | <maerwald[m]> | https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-200002.6 |
| 14:28:57 | <maerwald[m]> | I'm wondering if base's Char type violates the standard |
| 14:29:18 | <maerwald[m]> | As in: is the description of Char in the standard exhaustive? |
| 14:30:09 | <maerwald[m]> | Because it doesn't speak of unicode codepoint, it is much more specific. But it's not clear to me whether it demands only those properties |
| 14:30:18 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
| 14:32:34 | → | elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 14:33:02 | <dolio> | https://www.haskell.org/onlinereport/haskell2010/haskellch6.html#x13-1190006.1.2 |
| 14:33:41 | <geekosaur> | https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-160002.2 has it hidden in graphic |
| 14:34:19 | <dolio> | Or do you mean, it doesn't say you're allowed to use actual codepoints in a string? |
| 14:34:27 | <geekosaur> | interestingly, the spec disallows literal unicode whitespace |
| 14:35:03 | <geekosaur> | (since it calls for space instead of whitechar) |
| 14:35:41 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:35:43 | → | frost joins (~frost@user/frost) |
| 14:35:47 | <maerwald[m]> | dolio: Char allows surrogates even |
| 14:35:53 | <maerwald[m]> | I don't see that in the spec |
| 14:36:32 | <maerwald[m]> | This causes issues for IsString class |
| 14:36:44 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 14:38:39 | <geekosaur> | (actually it also excludes literal tabs, which makes me think it's the standard that is buggy) |
| 14:38:57 | → | dextaa joins (~DV@user/dextaa) |
| 14:39:56 | <dolio> | What is the space lexeme used for? |
| 14:41:17 | <geekosaur> | it's used in the definition of whitechar which in turn is used in the definition of whitestuff |
| 14:41:35 | <geekosaur> | space → a space (https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-160002.2) |
| 14:41:36 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 14:42:38 | <dolio> | Yeah, I saw that. But I don't have an encyclopedic knowledge of everywhere else `space` is referred to. And without that, it's not obvious that having a symbol for exactly an ascii space is a bug. |
| 14:43:25 | <geekosaur> | I didn';t say it was. I said that using it in the definition of Char and String literals probably is, because it excludes both Unicode whitespace codepoints and literal tabs |
| 14:43:44 | <geekosaur> | and that whitechar was probably intended |
| 14:44:24 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:45:09 | <dolio> | Can't be whitechar. |
| 14:45:24 | <dolio> | It'd have to be filtered, at least. |
| 14:45:25 | <geekosaur> | it also looks to me like grapheme covers most non-whitespace Unicode codepoints, so they're valid in Char and String literals. dunno on a quick look whether that would include surrogates |
| 14:45:27 | <maerwald[m]> | Unicode standard chapter 22 defines Symbols. From my understanding, that excludes surrogates |
| 14:45:30 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 240 seconds) |
| 14:45:40 | <dolio> | Which I assume is what the subscript means. |
| 14:46:10 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5) |
| 14:46:12 | → | nate4 joins (~nate@98.45.169.16) |
| 14:46:43 | × | juri_ quits (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 244 seconds) |
| 14:46:53 | <maerwald[m]> | https://imgur.com/a/px8MqRQ |
| 14:49:19 | <geekosaur> | but I also think excluding surrogates from Char is a similar problem to excluding negative numbers from Word: for the most part it's defined at runtime, not compile time |
| 14:50:40 | <geekosaur> | literals should exclude them, but excluding them from base would require every operation on Char or String to check for them |
| 14:51:18 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 14:51:50 | <maerwald[m]> | geekosaur: yes but IsString doesn't just work on literals |
| 14:53:27 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 14:53:32 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 14:54:26 | <geekosaur> | dolio, what did you mean by "can't be whitechar"? |
| 14:55:25 | <geekosaur> | oh, that newline would need to be filtered? (and probablky vertical tab) |
| 14:55:43 | <geekosaur> | that's unfortunate, yes |
| 14:55:59 | <geekosaur> | but then this feels like the whole grammar needs to be carefully gone over |
| 14:56:21 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:2f00:f9a4:8560:d503) (Remote host closed the connection) |
| 14:56:40 | <dolio> | Right, it has stuff that can't be allowed in a character literal. |
| 14:56:42 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:deae:e1cf:72:7368) |
| 14:57:09 | <dolio> | There needs to be a 'within line whitespace' token or something. |
| 14:57:27 | × | raym quits (~raym@user/raym) (Ping timeout: 272 seconds) |
| 14:57:38 | → | raym joins (~raym@user/raym) |
| 14:58:43 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 14:59:04 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 15:00:17 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 15:02:10 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 15:02:23 | ← | pgas parts (~pg@190.247.245.154) (Leaving) |
| 15:02:37 | → | pgas joins (~pg@190.247.245.154) |
| 15:04:10 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:05:09 | → | dcoutts_ joins (~duncan@host86-167-90-210.range86-167.btcentralplus.com) |
| 15:11:01 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 15:11:07 | → | frost joins (~frost@user/frost) |
| 15:16:26 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 15:16:55 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 15:18:13 | → | yax joins (~yax@2402:e280:3e30:264:6382:23ae:df6a:b0e1) |
| 15:18:36 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 15:18:48 | → | cheater joins (~Username@user/cheater) |
| 15:18:55 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 15:18:56 | × | yax quits (~yax@2402:e280:3e30:264:6382:23ae:df6a:b0e1) (Changing host) |
| 15:18:56 | → | yax joins (~yax@user/yax/x-9576643) |
| 15:18:57 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 15:19:21 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 15:19:24 | ← | yax parts (~yax@user/yax/x-9576643) () |
| 15:19:39 | → | yax joins (~yax@user/yax/x-9576643) |
| 15:19:55 | yax | is now known as yax__ |
| 15:20:01 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:20:10 | → | ulvarrefr joins (~user@185.24.53.152) |
| 15:20:29 | ← | yax__ parts (~yax@user/yax/x-9576643) () |
| 15:21:14 | → | yax__ joins (~yax@user/yax/x-9576643) |
| 15:21:31 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 15:22:08 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:23:04 | → | zebrag joins (~chris@user/zebrag) |
| 15:23:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:24:29 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 15:24:39 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 15:26:14 | × | nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat) |
| 15:27:12 | × | christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 268 seconds) |
| 15:27:40 | → | nek0 joins (~nek0@2a01:4f8:222:2b41::12) |
| 15:28:34 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Read error: Connection reset by peer) |
| 15:29:27 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 15:30:23 | → | PiDelport joins (uid25146@id-25146.lymington.irccloud.com) |
| 15:30:33 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 15:30:47 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 15:32:51 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 15:35:11 | HaxCPU | is now known as Andrew |
| 15:37:42 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection) |
| 15:39:33 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 15:40:30 | stoned | is now known as Hash |
| 15:41:01 | → | dcoutts__ joins (~duncan@host86-155-218-160.range86-155.btcentralplus.com) |
| 15:41:23 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 268 seconds) |
| 15:42:26 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 15:43:32 | × | dcoutts quits (~duncan@host86-167-90-210.range86-167.btcentralplus.com) (Ping timeout: 244 seconds) |
| 15:43:45 | × | dcoutts_ quits (~duncan@host86-167-90-210.range86-167.btcentralplus.com) (Ping timeout: 260 seconds) |
| 15:44:03 | × | biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 15:44:13 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 15:44:46 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 15:45:59 | → | dcoutts joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 15:46:06 | → | dcoutts_ joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 15:46:50 | Andrew | is now known as HaxCPU |
| 15:47:23 | → | schweers joins (~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c) |
| 15:47:51 | × | dcoutts__ quits (~duncan@host86-155-218-160.range86-155.btcentralplus.com) (Ping timeout: 276 seconds) |
| 15:49:19 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 15:50:06 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
| 15:50:14 | → | o-90 joins (~o-90@gateway/tor-sasl/o-90) |
| 15:52:25 | × | o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection) |
| 15:54:39 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 15:56:05 | → | skubcat joins (~Guest48@156.57.184.235) |
| 15:56:07 | × | dschrempf quits (~dominik@mobiledyn-62-240-134-33.mrsn.at) (Quit: WeeChat 3.5) |
| 15:56:23 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:57:36 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 276 seconds) |
| 15:57:44 | <sm> | is there a more robust, featureful, portable regex lib than regex-tdfa these days ? |
| 15:58:53 | × | ccntrq quits (~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397) (Remote host closed the connection) |
| 15:59:12 | → | ccntrq joins (~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397) |
| 15:59:43 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 16:00:43 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 16:01:50 | → | christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) |
| 16:02:06 | × | dcoutts quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Remote host closed the connection) |
| 16:02:29 | → | dcoutts joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:02:37 | → | dcoutts__ joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:05:51 | × | dcoutts_ quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 272 seconds) |
| 16:06:16 | → | dcoutts_ joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:07:30 | × | dcoutts quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 240 seconds) |
| 16:07:38 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Ping timeout: 240 seconds) |
| 16:07:58 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
| 16:08:23 | × | dcoutts__ quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 272 seconds) |
| 16:08:38 | × | acidjnk_new quits (~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 16:08:45 | → | dcoutts joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:09:30 | → | Guest8527 joins (~Guest85@ti0185a400-0748.bb.online.no) |
| 16:09:38 | → | juri_ joins (~juri@84-19-175-179.pool.ovpn.com) |
| 16:12:06 | × | MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Read error: Connection reset by peer) |
| 16:15:36 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:16:57 | × | ccntrq quits (~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397) (Remote host closed the connection) |
| 16:22:05 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5) |
| 16:24:13 | × | mmhat quits (~mmh@p200300f1c7090754ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5) |
| 16:24:15 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:deae:e1cf:72:7368) (Ping timeout: 276 seconds) |
| 16:24:45 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 16:25:10 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 16:26:33 | × | kuribas quits (~user@silversquare.silversquare.eu) (Quit: ERC (IRC client for Emacs 26.3)) |
| 16:27:10 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds) |
| 16:27:47 | → | biberu joins (~biberu@user/biberu) |
| 16:31:32 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 16:31:36 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 16:32:36 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 16:32:38 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 16:36:16 | × | yax__ quits (~yax@user/yax/x-9576643) (Ping timeout: 268 seconds) |
| 16:38:05 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 16:43:02 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 272 seconds) |
| 16:43:42 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:46:58 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 16:49:43 | × | dcoutts quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Remote host closed the connection) |
| 16:49:54 | ← | schweers parts (~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c) (ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 16:50:01 | → | dcoutts__ joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:50:06 | → | dcoutts joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:50:27 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
| 16:51:21 | → | fockerize joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 16:52:10 | × | dcoutts_ quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 240 seconds) |
| 16:53:58 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:54:50 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:dd89:2ce:aa76:b885) |
| 16:56:14 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 16:58:30 | → | dcoutts_ joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:59:21 | × | dcoutts quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 276 seconds) |
| 16:59:30 | × | dcoutts__ quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds) |
| 16:59:45 | → | dcoutts joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 16:59:48 | → | jese joins (~nikola@178-221-112-41.dynamic.isp.telekom.rs) |
| 17:00:17 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 17:00:28 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 17:00:36 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 17:00:57 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 268 seconds) |
| 17:01:38 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 17:01:38 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 17:01:41 | allbery_b | is now known as geekosaur |
| 17:03:26 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 17:04:42 | <jese> | Where can i see with which versions of base my compiler comes with? |
| 17:05:31 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 17:05:35 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 17:05:35 | jinsun | is now known as Guest2672 |
| 17:05:35 | × | Guest2672 quits (~jinsun@user/jinsun) (Killed (tungsten.libera.chat (Nickname regained by services))) |
| 17:05:35 | jinsun__ | is now known as jinsun |
| 17:06:36 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:10:57 | <[exa]> | jese: I'm usually looking at the output of `ghc-pkg list` but there might be better ways |
| 17:11:05 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 17:11:46 | <[exa]> | AFAIK the ghc and base versions are pretty much fixed 1:1, so you might have luck with just `ghc --version` and looking base up on the internet (if there's a page about it :D ) |
| 17:13:02 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:13:09 | → | yax___ joins (~yax@user/yax/x-9576643) |
| 17:14:26 | → | nate4 joins (~nate@98.45.169.16) |
| 17:15:06 | <geekosaur> | https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history |
| 17:16:19 | <[exa]> | oh beautiful |
| 17:16:33 | × | mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving) |
| 17:17:32 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 17:17:53 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 17:17:57 | <geekosaur> | but as mentioned, to see which version your compiler comes with, "ghc-pkg list base" |
| 17:18:49 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 268 seconds) |
| 17:19:18 | → | pmarg joins (~pmarg@2a01:799:159f:9b00:893e:346:2854:a0fd) |
| 17:19:57 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
| 17:20:20 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:20:30 | → | Guest45 joins (~Guest45@bras-base-okvlon5405w-grc-53-70-30-46-127.dsl.bell.ca) |
| 17:20:48 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
| 17:21:48 | × | yax___ quits (~yax@user/yax/x-9576643) (Remote host closed the connection) |
| 17:24:04 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:24:56 | → | econo joins (uid147250@user/econo) |
| 17:25:20 | → | coot joins (~coot@213.134.190.95) |
| 17:27:30 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds) |
| 17:29:19 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:32:09 | <jese> | i see i have only one version of base; i thought i have more of them. can i install other versions of base or is base always tied to the compiler? |
| 17:32:42 | <[exa]> | base is very tightly glued to the compiler |
| 17:32:54 | <[exa]> | if you want another base, you probably need another ghc |
| 17:32:54 | <Rembane> | jese: You can have many versions of base but base is always tied to the compiler. Both ghcup and stack helps you manage different version of ghc. |
| 17:33:22 | <geekosaur> | well, there was one compiler which supported two versions of base. it's the reason they don't do that any more |
| 17:34:03 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:38:38 | <jese> | Rembane: what about cabal? can it automatically select ghc to use based upon base constraints of a package i want to build? |
| 17:38:56 | <jese> | (probably not but let's give it a try) |
| 17:39:14 | <geekosaur> | cabal can't autoselect one for you but you can select one for it with -w |
| 17:39:25 | <Rembane> | jese: What geekosaur said |
| 17:39:30 | <geekosaur> | I'm unclear on whether that's intended as a future feature |
| 17:39:59 | → | janus joins (janus@anubis.0x90.dk) |
| 17:40:15 | <jese> | i get it |
| 17:40:17 | <janus> | which ghc releases, if any, include the driver rework patch ? https://gitlab.haskell.org/ghc/ghc/-/commit/25977ab542a30df4ae71d9699d015bcdd1ab7cfb |
| 17:41:14 | <janus> | if i click the '...' next to 'branches unavailable' it says 9.4.1-alpha1, I guess that means its not in 9.2? |
| 17:42:19 | <geekosaur> | yeh, that looks like it's in 9.4pre |
| 17:46:01 | → | dcoutts__ joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 17:48:34 | × | dcoutts quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds) |
| 17:48:34 | × | dcoutts_ quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds) |
| 17:48:58 | → | dcoutts joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 17:50:55 | × | dcoutts__ quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 260 seconds) |
| 17:55:18 | <jese> | if i use stack will the process of building, installing, and selecting the appropriate compiler version be carried out automatically? so that i don't have to bother with both ghcup and cabal. |
| 17:57:15 | <geekosaur> | stack doesn't select automatically either. it lives and dies by the resolver you specify |
| 17:57:44 | <geekosaur> | it just autoselects a bunch of compatible libraries for you, not just base, from the resolver |
| 17:57:48 | → | acidjnk_new joins (~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de) |
| 17:58:56 | nightbreak[Away] | is now known as nightbreak_ |
| 17:58:58 | <jese> | okay thanks |
| 17:59:33 | × | Guest34 quits (~Guest34@152.7.255.203) (Quit: Client closed) |
| 18:00:04 | × | hsman quits (~hsman@80.95.197.227) (Quit: Client closed) |
| 18:03:08 | <jese> | /exit/exit |
| 18:03:10 | × | jese quits (~nikola@178-221-112-41.dynamic.isp.telekom.rs) (Quit: leaving) |
| 18:05:57 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 18:06:22 | → | kenran joins (~kenran@200116b82b67ed00effa09132c8744c8.dip.versatel-1u1.de) |
| 18:08:17 | → | causal joins (~user@50.35.83.177) |
| 18:09:59 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:14:02 | → | sander joins (~sander@user/sander) |
| 18:15:04 | × | Guest45 quits (~Guest45@bras-base-okvlon5405w-grc-53-70-30-46-127.dsl.bell.ca) (Quit: Client closed) |
| 18:15:13 | <romes[m]> | what’s the best way of debugging an infinite loop |
| 18:15:42 | → | Dutchgriffon joins (~Laurens@70.36.53.134) |
| 18:16:06 | × | dcoutts quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Remote host closed the connection) |
| 18:16:30 | → | dcoutts joins (~duncan@host86-150-18-52.range86-150.btcentralplus.com) |
| 18:17:48 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection) |
| 18:18:11 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 18:18:15 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 18:19:36 | <ski> | romes[m] : i guess you could try binary search, maybe |
| 18:19:43 | <ski> | ("staring hard" is also an option) |
| 18:19:46 | → | dcoutts_ joins (~duncan@host109-149-38-92.range109-149.btcentralplus.com) |
| 18:20:11 | <ski> | (but it really depends on the nature of the code which exhibited the loop) |
| 18:20:28 | <romes[m]> | hahahahah |
| 18:20:35 | <romes[m]> | I have littered everything with traces |
| 18:20:41 | <romes[m]> | I am at a loss ahah |
| 18:20:54 | <romes[m]> | I cannot figure out what is looping |
| 18:21:07 | × | dcoutts quits (~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds) |
| 18:21:10 | <romes[m]> | it feels like it just stops |
| 18:21:25 | <ski> | i'm assuming you're talking about a data loop, rather than a control loop ? |
| 18:21:42 | <monochrom> | If your debugging messages are not being printed infinitely, then your debugging messages are not part of the infinite loop. |
| 18:22:00 | <romes[m]> | indeed monochrom |
| 18:22:05 | <romes[m]> | but i’ve run out of ideas where to place more of them |
| 18:22:14 | <monochrom> | But we gotta up the game and ask: What's the best way to ask a question? |
| 18:22:19 | <romes[m]> | i was ready to turn to actual profiling/debugging |
| 18:22:34 | <ski> | monochrom : surely to ask it as open-ended as possible ? |
| 18:22:52 | <monochrom> | Yeah, in #math it would be "hi how do I solve equations?" |
| 18:23:01 | <romes[m]> | ski: how would you differentiate them |
| 18:23:25 | <ski> | i'm not sure i know how to differentiate (nor integrate) questions .. sounds interesting, though |
| 18:23:25 | <Rembane> | romes[m]: Does the infinite loop make the program eventually crash? |
| 18:23:28 | [exa] | suspects a traditional case of let x = x. romes[m], did you check your lets? |
| 18:23:58 | <romes[m]> | but all is good, I’ll stare harder. I just realized I had never really asked “so how would the best way look like” |
| 18:24:47 | <romes[m]> | Yeah, I’m going to revert some bits |
| 18:24:47 | <romes[m]> | the program doesn’t crash; i’ll double check the let’s |
| 18:25:26 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 18:25:29 | <[exa]> | esp. the nice great looking let's in `do` blocks tend to eeeasily mix with harmless `x <- x` binds |
| 18:25:47 | <ski> | for a data loop, i guess there's a cyclic path somewhere .. so all points on the cycle contributes to the loop (or, if you break it anywhere, the loop disappears). so that would suggest not looking for a particular spot in code (although it can be that), but a set of spots, contributing to the cycle (a global property) |
| 18:25:53 | <Rembane> | romes[m]: If the program doesn't crash it either means that you have infinite RAM or that it doesn't allocate in the infinite loop. |
| 18:26:37 | <ski> | (or that what it allocates is GCed, i guess ?) |
| 18:26:45 | <monochrom> | Rembane: In my case, Chrome crashed. (Explanation: Linux OOM handler chose to kill Chrome rather than my Haskell program. >:) ) |
| 18:26:46 | <romes[m]> | Rembane good insight |
| 18:26:57 | <romes[m]> | LOL |
| 18:27:19 | × | talismanick quits (~talismani@2601:200:c100:3850::dd64) (Ping timeout: 244 seconds) |
| 18:27:34 | <romes[m]> | ski: right; those are trickier. mine is in a hotspot. i’m starting to feel like exa might be right |
| 18:27:36 | <Rembane> | monochrom: That's a good symtom. :D |
| 18:27:46 | <romes[m]> | those x <- x bindings are indeed misleading |
| 18:27:53 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:28:18 | <monochrom> | Heh yesterday my student wrote "numberHelper left >>= \left -> ..." |
| 18:28:25 | <ski> | try adding some `rec' to your `do's |
| 18:28:30 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 18:28:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:28:57 | <ski> | monochrom : and they were then confused ? |
| 18:28:58 | → | noteness joins (~noteness@user/noteness) |
| 18:29:42 | <monochrom> | Naw, he knew he had two different "left"s, just too lazy to think of a better name at an early stage, eventually he did the proper renaming. |
| 18:30:02 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 18:30:02 | <ski> | ic |
| 18:30:06 | <monochrom> | It was actually OK because the 1st "left" would not be used again. |
| 18:30:44 | <ski> | in OCaml, they often suggest using (non-recursive) `let foo = ..foo..'s |
| 18:30:49 | × | feliix42 quits (~felix@gibbs.uberspace.de) (Read error: Connection reset by peer) |
| 18:31:07 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 18:31:07 | × | AWizzArd quits (~code@gehrels.uberspace.de) (Read error: Connection reset by peer) |
| 18:31:18 | <ski> | (for different versions of "the same thing") |
| 18:32:30 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 18:32:48 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 18:33:44 | → | seriously joins (~seriously@ool-18bd55d4.dyn.optonline.net) |
| 18:33:56 | → | feliix42 joins (~felix@gibbs.uberspace.de) |
| 18:35:15 | <seriously> | Hey question... am i reading this bit here wrong? https://paste.tomsmeding.com/ExKVF9us |
| 18:35:33 | <monochrom> | Going back to debugging messages, I guess the difference between my success and other people's failure is because I add debugging messages to where I think nothing goes wrong, other people add to where they thing something goes wrong. |
| 18:35:49 | <seriously> | Does the refactored function not take any arguments? |
| 18:36:10 | <darkling> | seriously: It returns a function. |
| 18:36:10 | <monochrom> | Now consider the fact that human nature confirmation bias implies that I actually have a better chance. |
| 18:36:17 | <[exa]> | seriously: that's perfectly okay |
| 18:36:32 | <darkling> | seriously: So you can then pass an argument to it, and it'll evalute its thing. |
| 18:36:43 | → | AWizzArd joins (~code@gehrels.uberspace.de) |
| 18:38:38 | <ski> | seriously : it does take an input |
| 18:38:50 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 18:38:53 | <seriously> | but wont the compiler complain that its a partial function? The definition doesnt match any patteerns |
| 18:38:55 | <ski> | (albeit not explicitly, in that code) |
| 18:39:00 | <ski> | no |
| 18:39:41 | <monochrom> | Patterns are not compulsory in defining functions. (or defining anything.) |
| 18:39:59 | <[exa]> | seriously: (mathspeak:) it matches a single empty pattern |
| 18:40:04 | <ski> | `even . length . greaterThan100' *is* a function, myTest' is declared to be a function (further, with matching input and output types). so there is no problem defining the latter to be equal to the former |
| 18:40:07 | <monochrom> | You answer one single question. |
| 18:40:09 | <romes[m]> | [exa]: let b = b + 1 :))))))))))))) |
| 18:40:09 | × | PiDelport quits (uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 18:40:24 | <ski> | [exa] : how's that mathspeak ? |
| 18:40:25 | <monochrom> | Does "even . length . greaterThan100" have type "[Integer] -> Bool"? |
| 18:40:32 | <monochrom> | If yes, then you're done. |
| 18:40:36 | <[exa]> | romes[m]: that was the loop? :D |
| 18:40:37 | <monochrom> | No but. |
| 18:41:02 | <romes[m]> | [exa]: not literally but something like that |
| 18:41:04 | <romes[m]> | your prediction was spot on |
| 18:41:04 | <ski> | romes[m] : perhaps you should have added `b :: Natural' .. |
| 18:41:15 | <monochrom> | You know, at this level, you don't even care whether "[Integer] -> Bool" is a function type. |
| 18:41:47 | <[exa]> | haha lol good. Hope it helped. :D |
| 18:41:57 | <romes[m]> | i finally understood why you might want to have explicit recursive lets |
| 18:42:02 | <[exa]> | ski: I meant the tone there. :] |
| 18:42:27 | <romes[m]> | the name didn’t even exist before the let :) i meant |
| 18:42:56 | <ski> | i don't think math people talk about matching patterns too much .. |
| 18:43:01 | <romes[m]> | * (null) |
| 18:43:25 | <ski> | seriously : anyway, the definition is not "partial". and not matching patterns (explicitly) wouldn't make it partial, anyway |
| 18:43:37 | <monochrom> | ski, math people include degenerate cases all the time, e.g., "a circle" can have radius 0. |
| 18:43:51 | <ski> | sure |
| 18:44:32 | <seriously> | How does myTest', when called, know what argument to apply itself too |
| 18:44:41 | <ski> | (although, `1' is (nowadays) not a prime number. and an empty space is not connected) |
| 18:45:10 | <ski> | myTest' [42] |
| 18:45:22 | <ski> | = (even . length . greaterThan100) [42] |
| 18:45:35 | <ski> | = even ((length . greaterThan100) [42]) |
| 18:45:50 | <ski> | = even (length (greaterThan100 [42])) |
| 18:45:56 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 18:45:59 | <ski> | = ... |
| 18:46:41 | <darkling> | seriously: The Haskell syntax is very very simple: "f x" means apply the function f to the thing x. |
| 18:47:35 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:47:52 | <darkling> | So it doesn't need to know anything extra here -- invoking myTest' (which takes no parameters) returns a function which takes a parameter and returns a Bool. |
| 18:48:02 | <seriously> | I see... I guess just up to this point it seemed mandatory to give a function definition arguments if its type demanded it... just through me off |
| 18:48:54 | <seriously> | looking at it this way, myTest' [42], helps |
| 18:49:23 | <monochrom> | I showed my students "f = \x -> ..." |
| 18:49:52 | <monochrom> | from which point onwards it's a slippery slope to conclude that "f = <any expression of the right type>" is OK. |
| 18:50:40 | <monochrom> | I also showed early on "v :: Integer ; v = 4" so they know that "definition" is not limited to "functions". |
| 18:51:43 | × | fockerize quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.5) |
| 18:52:06 | <darkling> | I was reaching for that one just now, but wasn't sure I could do the explanation justice. |
| 18:55:10 | <monochrom> | Well, there is a cultural shock because the imperative culture is to make a big artificial fuss about syntactically distinguishing function definitions and non-function definitions. |
| 18:55:10 | × | seriously quits (~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed) |
| 18:55:45 | → | seriously joins (~seriously@ool-18bd55d4.dyn.optonline.net) |
| 18:56:02 | → | alp joins (~alp@user/alp) |
| 18:56:19 | <seriously> | Is there a way for me to stay in the chat without leaving; so I can review conversations later? |
| 18:57:08 | <geekosaur> | use matrix instead of irc directly? |
| 18:57:20 | <geekosaur> | (or irccloud or other service that does the same) |
| 18:57:29 | <monochrom> | It took me a couple of years of teaching before I realized I could break that curse by the simple act of showing "n :: Int ; n = 4" and "f :: X->Y; f = \x -> ...", and stating that "f x = ..." is syntax sugar for the lambda version. |
| 18:57:35 | <geekosaur> | you might however want to look at the logs url in the /topic |
| 18:58:22 | <seriously> | ok |
| 18:59:23 | <monochrom> | I also took the time to explain "X -> (Y -> Z)" and "\x -> \y -> ..." and even "f x = \y -> ...", at which point nothing is sacred. |
| 18:59:44 | <ski> | monochrom : it's hard to even remember the time before this lesson was grokked |
| 19:00:00 | <geekosaur> | I keep my client idling on the channel but I'm also on matrix because element for android is better than the android irc clients I've found; but it means I can pop onto app.element.io as well |
| 19:00:08 | → | alexhandy2 joins (~trace@user/trace) |
| 19:00:57 | <monochrom> | Yeah, but I have the benefit of observing beginner questions in here and in my office hours. |
| 19:01:39 | ski | nods |
| 19:02:48 | × | skubcat quits (~Guest48@156.57.184.235) (Quit: Client closed) |
| 19:03:30 | × | alexhandy quits (~trace@user/trace) (Ping timeout: 244 seconds) |
| 19:03:32 | <ski> | [exa] : i guess i would've been less thrown off if you'd said something like "it matches a single case with no patterns" |
| 19:04:08 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 19:05:03 | sander | is now known as sndr |
| 19:05:47 | <ski> | ("empty pattern" made me think of e.g. the "absurd patterns" in Agda .. like in Haskell, you have `foo :: Void -> ...; foo v = case v of {}'. in Agda, that'd be `foo : Void -> ...; foo ()' (no definiens/body/right-hand-side), `()' being the absurd pattern .. personally, i write overscore instead (with an RHS)) |
| 19:06:39 | <ski> | foo ‾ = ‾ -- i.e. |
| 19:07:31 | <monochrom> | -_- |
| 19:07:37 | <monochrom> | I mean heh |
| 19:08:04 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 19:08:30 | <monochrom> | But they should totally consider the syntax foo ^ = ^ |
| 19:09:13 | <seriously> | *Instead of thinking about what we want to do with each element, we can instead think about making incremental transformations to the entire input, using the existing recursion patterns that we know of. * |
| 19:09:16 | <seriously> | this |
| 19:09:20 | <ski> | (`‾' being the neutral element for disjunctive / or- patterns, just like the wildcard `_' is the neutral element for conjunctive / and- patterns (of which `<var> @ <pat>' is a special case)) |
| 19:09:21 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
| 19:09:28 | <seriously> | is said nicely** |
| 19:09:34 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 19:09:39 | → | talismanick joins (~talismani@campus-045-135.ucdavis.edu) |
| 19:09:45 | × | talismanick quits (~talismani@campus-045-135.ucdavis.edu) (Remote host closed the connection) |
| 19:10:01 | → | talismanick joins (~talismani@campus-045-135.ucdavis.edu) |
| 19:10:04 | <ski> | monochrom : heh, i think i've used `^' occasionally, when i only had access to ASCII |
| 19:10:26 | <ski> | seriously : where does that come from ? |
| 19:10:40 | <seriously> | https://www.seas.upenn.edu/~cis1940/spring13/lectures/04-higher-order.html |
| 19:10:41 | <ski> | talk about wholemeal vs. piecemeal programming ? |
| 19:10:43 | <monochrom> | I don't think it is said nicely. But it's because I don't think it can be said nicely at all. At least not until a few concrete examples are shown. |
| 19:10:46 | <seriously> | yeah |
| 19:11:28 | <seriously> | true I mean it makes better sense now after everything that was said here |
| 19:11:33 | × | Guest8527 quits (~Guest85@ti0185a400-0748.bb.online.no) (Quit: Client closed) |
| 19:11:47 | <monochrom> | This is also why I refuse to explain monads in words. |
| 19:11:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection) |
| 19:12:30 | ski | . o O ( <https://en.wikipedia.org/wiki/Ostensive_definition> ) |
| 19:12:57 | × | Cajun quits (~Cajun@user/cajun) (Quit: Client closed) |
| 19:12:58 | <Rembane> | monochrom: Do you give the equations and point to the paper? |
| 19:13:06 | <monochrom> | Nah. |
| 19:13:35 | <monochrom> | Examples. Use cases. Equations (but supported by examples and use cases). |
| 19:13:42 | <seriously> | I suppose I will try to write all my functions in the "composed" style from now on, for practice |
| 19:14:08 | <ski> | seriously : it is good practice .. but it can also be taken too far |
| 19:14:52 | <ski> | @pointless myTest xs = even (length (greaterThan100 xs)) |
| 19:14:52 | <lambdabot> | myTest = even . length . greaterThan100 |
| 19:14:53 | <monochrom> | Haskell does have the advantage that you can do algebra and it explains a whole lot, and then you understand why Dijkstra says a formula is worth a thousand pictures. |
| 19:15:40 | <ski> | @pointless greaterThan100 xs = filter (\x -> x > 100) xs |
| 19:15:40 | <lambdabot> | greaterThan100 = filter (> 100) |
| 19:15:53 | <Rembane> | monochrom: I dig that. |
| 19:16:33 | <seriously> | probably best to keep a standard tho no?? if Im going to do it to long functions to make them short; shouldnt I just do it to the simple ones too? |
| 19:16:58 | <seriously> | easier to read theas a whole |
| 19:17:00 | <seriously> | then* |
| 19:17:23 | <monochrom> | Keep 15 standards |
| 19:18:14 | <monochrom> | The Haskell community is one of the very few sane communities that understand that one coding style guide doesn't fit all. |
| 19:18:35 | <monochrom> | There we have another cultural shock. |
| 19:20:01 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds) |
| 19:20:32 | <ski> | seriously : i mean, sometimes if you do it to a function, the code just becomes pretty much incomprehensible (especially after a week or a month) |
| 19:21:04 | ski | was looking for a suitable example in CIS194 to illustrate this on, but didn't find one |
| 19:22:09 | → | Guest85 joins (~Guest85@ti0185a400-0748.bb.online.no) |
| 19:22:11 | <ski> | @pointless pythagoreanDiagonal x y = sqrt (x^2 + y^2) -- i guess this example will do ? |
| 19:22:11 | <lambdabot> | pythagoreanDiagonal = (sqrt .) . (. (^ 2)) . (+) . (^ 2) |
| 19:22:19 | <monochrom> | Yeah |
| 19:22:40 | <ski> | seriously : would you prefer reading the "pointful" version, or the "pointless" one ? |
| 19:22:46 | × | ulvarrefr quits (~user@185.24.53.152) (Ping timeout: 268 seconds) |
| 19:23:08 | <seriously> | lol gotcha |
| 19:23:18 | <monochrom> | Even in Unix pipelining, we realize that pipelining is very limiting. A general data flow diagram does not always look like a line. |
| 19:24:10 | <ski> | it can be nice mental gymnastics to explore and try to stretch your ability to formulate code like this, once in a while .. but you should probably think twice before committing such code to your code base |
| 19:25:42 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
| 19:25:50 | <ski> | (sometimes it can be warranted. e.g. using `liftA2 (+)' (using `Applicative (rho ->)') or specific (with practice) recognizable idioms like `(f .) . g' or `(post .) . (. pre)' .. but you should probably such sparingly) |
| 19:26:48 | <monochrom> | I don't go as far as (f .) . g |
| 19:26:55 | <seriously> | maybe then "point-style" is generally best for functions that work on list inputs |
| 19:26:56 | <ski> | monochrom : reminds me of a shell that allowed naming pipes (not as files), passing them as explicit parameters to shell-defined procedures (actually the shell was inspired by logic programming) |
| 19:28:10 | <monochrom> | bash has "cmd (< cmd2) (> cmd3)" for non-linear data flow diagrams |
| 19:28:24 | <monochrom> | (Haskell has Arrow proc->do notation, heh) |
| 19:28:35 | <geekosaur> | ksh had the notion of a (single) "coprocess" |
| 19:28:38 | → | PiDelport joins (uid25146@id-25146.lymington.irccloud.com) |
| 19:28:47 | <geekosaur> | I think zsh generalized that |
| 19:29:18 | → | shapr joins (~user@2600:4040:2d31:7100:a4a4:5e03:eeb6:d024) |
| 19:30:33 | <ski> | "one coding style guide doesn't fit all" -- as much as i have some quite particular idiosyncratic preferences and tendencies in code, i realize my personal style isn't for everyone (and shouldn't be) (although i'm not loathe to show examples of, or give suggestions regarding, my opinions about it) .. what matters most is how well *you* can understand your code |
| 19:30:56 | × | pmarg quits (~pmarg@2a01:799:159f:9b00:893e:346:2854:a0fd) (Remote host closed the connection) |
| 19:31:25 | <exarkun> | that matters most until it matters more that someone else can understand your code :) |
| 19:31:42 | <darkling> | And how much the other people that have to read your code can do so. :) |
| 19:31:48 | <monochrom> | Yeah I s/self/everyone who work with this code/ |
| 19:31:52 | <ski> | yes (i was thinking about adding that the "you" that's relevant can vary) |
| 19:32:00 | <monochrom> | Sure, 99% of the time it's self again, but meh |
| 19:32:17 | <monochrom> | Naw, since I teach, 99% of the time it's my poor students haha. |
| 19:33:16 | × | Guest85 quits (~Guest85@ti0185a400-0748.bb.online.no) (Quit: Client closed) |
| 19:33:37 | <monochrom> | Ugh now I see my code sometimes uses >> and sometimes uses *> and it's now inconsistent for no good reason :) |
| 19:33:58 | <monochrom> | (worksforme wontfix) |
| 19:34:10 | <ski> | seriously : it's good to lurk around and see what style and idioms people use and suggest. but in the end, you have to decide what is reasonable in your circumstance. but you should try to understand the commonly proposed options, and preferably the *reasons* for them (then you can make a more informed decision) |
| 19:34:10 | <Bulby[m]> | mood |
| 19:34:11 | <EvanR> | what matters most is if someone else can understand the code. Where someone else = you in 1 or more months from now |
| 19:34:54 | <darkling> | "Which idiot wrote this code? Oh, yeah, that darkling knew nothing." |
| 19:35:25 | <EvanR> | this test has been flunked many times by using "clever tricks" in the code |
| 19:35:40 | <darkling> | I'm sure there's stuff in our codebase at work that, 5 years from now, will be the subject of a refactoring exercise initiated with the phrase "yes, that's a darkling special" :) |
| 19:36:00 | <EvanR> | xkcd code review metric "wtfs per minute" |
| 19:37:48 | × | nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat) |
| 19:37:52 | ski | agrees with everything said in the last eight minutes, or so |
| 19:39:14 | <ski> | seriously : it's more related to whether the processing can be expressed more or less as a "linear pipeline" or not, i think |
| 19:39:55 | <ski> | (reminds me of concatenative programming, like in Forth e.g. ..) |
| 19:42:11 | <seriously> | ski ok ill keep that in mind... while were on the subject of coding standards; I've found myself doing this alot... could be an imperative habit of mine manifesting into functional style: https://paste.tomsmeding.com/igJBGaD1 |
| 19:42:32 | × | phma quits (~phma@2001:5b0:211c:45d8:dcca:18c7:bf12:f383) (Read error: Connection reset by peer) |
| 19:42:50 | <seriously> | What is the general opinion on that ... "by that, I mean the code in there 'where' block" |
| 19:43:24 | <ski> | you mean the `where'-naming ? .. yea, you do |
| 19:43:50 | → | phma joins (phma@2001:5b0:210d:adb8:1b94:33b4:266b:899a) |
| 19:44:02 | <ski> | sometimes, it's nice to give some names to intermediate results (documenting their intended interpretation somewhat) |
| 19:44:41 | <ski> | sometimes, it doesn't really help comprehension, and just clutters up the code (and may be annoying to have to conjure up a name for it) |
| 19:45:58 | <darkling> | Yeah, names as documentation is a very good reason for doing that sort of thing. |
| 19:47:53 | <EvanR> | I just like a where clause so the sub-definitions don't extend down and to the right like a messed up stairway |
| 19:48:16 | <ski> | > (last . transpose . chunksOf 3) "abcdefghijkl" |
| 19:48:18 | <lambdabot> | "cfil" |
| 19:48:46 | <ski> | > (map last . chunksOf 3) "abcdefghijkl" -- also as |
| 19:48:47 | <lambdabot> | "cfil" |
| 19:49:32 | <EvanR> | moving "dot chain" function definitions into a where clause can also serve to remove parentheses, esp if you use this function multiple times |
| 19:50:11 | <ski> | (the `transpose' idea is nice, if you want to split a list/stream into `n' ones (alternating), process those separately, and then interleave them back into a single one again) |
| 19:50:26 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-81b9-1e80-00bb-4a85.res6.spectrum.com) (Remote host closed the connection) |
| 19:50:40 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:51:15 | × | fserucas__ quits (~fserucas@1.75.114.89.rev.vodafone.pt) (Remote host closed the connection) |
| 19:51:23 | <ski> | darkling : otoh, naming a loop is often just clutter :) |
| 19:51:29 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:51:32 | → | fserucas__ joins (~fserucas@1.75.114.89.rev.vodafone.pt) |
| 19:51:38 | × | fserucas_ quits (~fserucas@1.75.114.89.rev.vodafone.pt) (Read error: Connection reset by peer) |
| 19:52:08 | → | pavonia joins (~user@user/siracusa) |
| 19:52:46 | → | TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) |
| 19:52:47 | → | fserucas joins (~fserucas@1.75.114.89.rev.vodafone.pt) |
| 19:53:41 | <darkling> | Yeha, it needs care. And of course, you're an idiot 3 months from now. :) |
| 19:54:17 | → | nek0 joins (~nek0@2a01:4f8:222:2b41::12) |
| 19:55:38 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 19:56:02 | × | EvanR quits (~EvanR@user/evanr) (Remote host closed the connection) |
| 19:56:22 | → | EvanR joins (~EvanR@user/evanr) |
| 19:59:20 | × | bliminse quits (~bliminse@user/bliminse) (Quit: leaving) |
| 20:00:11 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
| 20:00:58 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 20:01:39 | → | dcoutts joins (~duncan@host109-149-38-92.range109-149.btcentralplus.com) |
| 20:01:43 | → | yax__ joins (~yax@user/yax/x-9576643) |
| 20:02:23 | × | kenran quits (~kenran@200116b82b67ed00effa09132c8744c8.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 20:03:54 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:06:07 | × | seriously quits (~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed) |
| 20:07:40 | → | seriously joins (~seriously@ool-18bd55d4.dyn.optonline.net) |
| 20:09:35 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:10:49 | → | slack1256 joins (~slack1256@191.125.99.86) |
| 20:12:15 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 20:13:16 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 20:15:05 | <ski> | or .. you were an idiot, 3 months ago, perpetually |
| 20:16:52 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 244 seconds) |
| 20:17:25 | <EvanR> | not being an idiot is always 40 years away |
| 20:17:37 | Furor | is now known as Colere |
| 20:17:48 | <Rembane> | When I stop being an idiot I stop learning. |
| 20:18:46 | → | Guest34 joins (~Guest34@2605:a601:a615:f600:81b3:7572:de1c:534d) |
| 20:19:17 | → | bliminse joins (~bliminse@user/bliminse) |
| 20:23:58 | → | dcoutts__ joins (~duncan@host86-151-9-33.range86-151.btcentralplus.com) |
| 20:24:50 | × | dcoutts_ quits (~duncan@host109-149-38-92.range109-149.btcentralplus.com) (Ping timeout: 240 seconds) |
| 20:25:47 | → | dcoutts_ joins (~duncan@host86-151-9-33.range86-151.btcentralplus.com) |
| 20:26:09 | × | dcoutts quits (~duncan@host109-149-38-92.range109-149.btcentralplus.com) (Ping timeout: 272 seconds) |
| 20:26:21 | <Bulby[m]> | and imo, not learning is BORING |
| 20:26:35 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 20:27:18 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 20:40:43 | × | dfg quits (dfg@user/dfg) (Remote host closed the connection) |
| 20:40:54 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 20:40:58 | <yax__> | i was born a god |
| 20:41:03 | → | gustik joins (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) |
| 20:42:06 | → | dfg joins (~dfg@dfg.rocks) |
| 20:42:06 | × | dfg quits (~dfg@dfg.rocks) (Changing host) |
| 20:42:06 | → | dfg joins (~dfg@user/dfg) |
| 20:42:37 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 20:43:22 | × | [exa] quits (exa@srv3.blesmrt.net) (Changing host) |
| 20:43:22 | → | [exa] joins (exa@user/exa/x-3587197) |
| 20:44:28 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 20:44:43 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 20:45:04 | × | seriously quits (~seriously@ool-18bd55d4.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 20:45:58 | × | talismanick quits (~talismani@campus-045-135.ucdavis.edu) (Ping timeout: 240 seconds) |
| 20:46:38 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 20:47:50 | <slack1256> | The `compactAdd` function is the efficient way to append data to `Compact a` in the sense it will not re-copy the data already on the compact, right? |
| 20:49:22 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 20:49:28 | → | seriously joins (~seriously@ool-18bd55d4.dyn.optonline.net) |
| 20:49:38 | nightbreak_ | is now known as nightbreak[Away] |
| 20:50:01 | <maerwald> | hey, I also want in on the idiot club |
| 20:51:34 | <slack1256> | In this sense, a compact regions serves as an older manually promoted generation. I wonder if I could set up 4 generations. Not much data apart from this really long lived data structure will reach it. |
| 20:51:51 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 20:52:28 | → | cosimone` joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 20:54:01 | × | cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Ping timeout: 272 seconds) |
| 20:54:18 | <EvanR> | behind the scenes compactAdd achieves what you said by taking on to a linked list of compacts? xD |
| 20:54:24 | <monochrom> | I am an egomaniac. Anyone care to join me and form the egomaniac club? >:) |
| 20:54:35 | → | aisa joins (~serum@2a02:8388:6bc1:1d00:6ddd:7a24:70:80) |
| 20:54:47 | <monochrom> | (P.S. Of course it is the, not an, egomaniac club!) |
| 20:55:14 | <Rembane> | monochrom: I would love to join your meetings, but not your club. :D |
| 20:55:21 | <monochrom> | haha |
| 20:55:31 | <monochrom> | I'm a collegial egomaniac haha |
| 20:56:15 | <Rembane> | ^^ |
| 20:57:08 | <darkling> | Is anybody else th eonly member of hte solipsist society? |
| 20:57:38 | → | sektor[m] joins (~sektor@2001:470:69fc:105::2:3f60) |
| 20:57:58 | × | seriously quits (~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed) |
| 20:58:18 | <slack1256> | EvanR: Oh no no, the list is just for example purposes. I mean you obvious can cost on a list and preserve the most of the structure. |
| 20:58:56 | <slack1256> | What I am asking is this: given that I only added a cons, will compactAdd make pay the cost of waiting for the whole list instead of just the new head? |
| 21:00:13 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:01:30 | × | christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
| 21:02:13 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 21:03:45 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 276 seconds) |
| 21:03:46 | geekosaur | decides to avoid the clubs |
| 21:04:13 | Rembane | hands geekosaur a sword instead |
| 21:04:18 | <monochrom> | "I believe in talking nicely but chairing a bigger club" >:) |
| 21:04:32 | <darkling> | I'll stick with slings and arrows. |
| 21:04:41 | <monochrom> | w00t arrows |
| 21:04:50 | <monochrom> | We have arrows in Haskell haha. |
| 21:05:18 | <Rembane> | You'll have no chance against my profunctors! Ha! |
| 21:05:39 | <monochrom> | Monads are like clubs. You use a club to slam two layers into one. club :: M (M a) -> M a |
| 21:06:15 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 21:06:38 | ski | . o O ( "<shapr> I'm addicted to arrows. * shapr begins his own paper \"Generalizing Arrows to Spears\" <shapr> Spears can do anything efficiently, but they have sixty thousand laws they must satisfy, and we haven't actually found one yet. <raphael> maybe \"Generalizing Arrows to Nuclear Weapons\" would simply be: unsafeInterleaveIO" ) |
| 21:06:47 | <monochrom> | Alternatively, a 1000-page book like CLRS or HFFPP also works. >:) |
| 21:07:52 | <Rembane> | :D |
| 21:10:59 | <EvanR> | unsafeInterleaveIO seems more like a dr strange spell, whereas unsafeCoerce seems like the nuclear option. Unstoppable force followed by contamination xD |
| 21:11:29 | × | alp quits (~alp@user/alp) (Remote host closed the connection) |
| 21:11:48 | → | alp joins (~alp@user/alp) |
| 21:12:18 | <ski> | i've argued before that it shouldn't really be called `unsafe' |
| 21:12:27 | <ski> | (unlike `unsafeInterleaveST') |
| 21:12:38 | <int-e> | they're both capable footguns when put into capable hands |
| 21:12:43 | <monochrom> | What do you prefer to call it? |
| 21:12:47 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 21:13:00 | <ski> | how about just `interleaveIO' ? |
| 21:13:36 | <ski> | (also, i don't really like the whole "unsafe" terminology .. there's many different notions of unsafe) |
| 21:13:43 | <monochrom> | Hrm. I am sympathetic to that. |
| 21:14:36 | <EvanR> | such as the rust version of safety. If it's written in rust, it's safe. Otherwise it's unsafe xD |
| 21:14:40 | <int-e> | Hmm. unsafeInterleaveIO was named before nodup when it could produce observably impure values. |
| 21:14:49 | <ski> | (Mercury uses "promise" instead, together with a description of the conditions under which it's safe to use, and which the programmer has as a proof obligation) |
| 21:14:51 | <[exa]> | one should have a few levels of unsafe that allow to distinguish reasonably safe stuff from unsafePerformIO |
| 21:15:01 | <monochrom> | Well, my similar gripe is about the simpleton dichotomy of "strict" and "non-strict". |
| 21:16:06 | <ski> | (e.g. `promise_det'(erministic),`promise_equivalent_solutions',`promise_semipure',..) |
| 21:16:09 | <int-e> | Also... how does unsafeInterleaveIO work wrt. exceptions when the value is used inside STM? I think there's still the thing that aborting an STM action doesn't cause an exception breaking stuff like withMVar. |
| 21:16:54 | → | nate4 joins (~nate@98.45.169.16) |
| 21:18:01 | <EvanR> | how about pure and not pure |
| 21:18:23 | <EvanR> | by what calculus can we know what is and isn't "really pure" |
| 21:18:31 | <geekosaur> | hm, isn't that a ghc / rts violation then? (unsafeInterleaveIO is supposed to swallow/ignore exceptions, but doesn't) |
| 21:18:32 | <dolio> | What happens in STM when you divide by 0? |
| 21:18:43 | × | [Leary] quits (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 272 seconds) |
| 21:18:49 | <dolio> | Or run out of memory? |
| 21:18:59 | <ski> | i've suggested `promisePureIO' for `unsafePerformIO' before (with the understanding that `promisePureIO . return = id') |
| 21:19:54 | <int-e> | that reminds me of the naming of irrefutable patterns |
| 21:20:11 | <int-e> | in that it requires logic to interpret correctly |
| 21:20:56 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
| 21:21:00 | <EvanR> | promisePureIO makes sense. Is every place unsafePerformIO used in the standard library pure? xD |
| 21:21:16 | <EvanR> | otherwise that would be hypocritical! |
| 21:21:17 | <int-e> | ...global variables... |
| 21:21:41 | [exa] | discovers don'tPerformIO is a valid identifier |
| 21:21:47 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 21:21:50 | <ski> | int-e : logic, how ? |
| 21:21:52 | <int-e> | (decidedly impure; the trick there is to ensure perfect sharing) |
| 21:22:07 | <int-e> | ski: who's doing the promising here? |
| 21:22:14 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:22:24 | <geekosaur> | [exa], acme-dont |
| 21:22:48 | <ski> | promising what, re irrefutable patterns ? that they can't be refuted, always matches ? |
| 21:23:31 | <ski> | i guess the matching "promises" that in some sense, while later the actual subpattern may fail, when the branch has already been comitted to |
| 21:23:48 | <EvanR> | a global variable can be pure, imagine the meaning of the term socrates. As long as all programs referring to socrates refer to the same guy, and he can hold values for you, it's referentially transparent xD |
| 21:24:06 | <monochrom> | hahahaha |
| 21:24:33 | <int-e> | Oh that. Well, I know what "irrefutable patterns" means (they match; they fail instead of being refuted at that point), but I think "lazy patterns", while less precise, would be easier to understand. |
| 21:24:36 | <[exa]> | geekosaur: I knew it was somewhere! |
| 21:25:10 | <ski> | EvanR : makes me think of mobile code |
| 21:26:03 | <ski> | perhaps "delayed patterns" could be another option |
| 21:26:11 | <EvanR> | I was going to use king of france but that's a different connotation |
| 21:26:30 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:26:57 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 272 seconds) |
| 21:27:30 | <monochrom> | Yeah that gives me baldness anxiety haha |
| 21:28:10 | <ski> | if a program spawns a thread on a different node in the network, do you expect it to communicate with your node in order to access the "global variable", or to have its own instance ? |
| 21:28:29 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:28:45 | <ski> | (you can express such things in Alice ML, iirc) |
| 21:29:22 | <EvanR> | if you wanted it to not be so global, you should have passed it in as an argument xD |
| 21:29:51 | <monochrom> | Yes I passed it in by reference. |
| 21:29:51 | <EvanR> | taking global variables literally for fun and profit |
| 21:30:54 | <EvanR> | point was originally... if that's what it means, accessing it by means of unsafePerformIO shouldn't violate your promise |
| 21:31:11 | <ski> | <https://www.ps.uni-saarland.de/alice/manual/distribution.html> |
| 21:31:22 | <EvanR> | having different instances is where it gets complicated |
| 21:31:43 | → | kyborg2011 joins (~kyborg201@217.147.170.194) |
| 21:32:05 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 21:33:10 | × | alexhandy2 quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 21:33:28 | → | alexhandy joins (~trace@user/trace) |
| 21:33:56 | ski | . o O ( "This implies that you must be careful not to use sited values in a service!" ) |
| 21:34:11 | × | kyborg2011 quits (~kyborg201@217.147.170.194) (Remote host closed the connection) |
| 21:35:12 | → | kyborg2011 joins (~kyborg201@217.147.170.194) |
| 21:35:13 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5) |
| 21:35:20 | → | dextaa joins (~DV@user/dextaa) |
| 21:35:23 | → | mmhat joins (~mmh@p200300f1c7090754ee086bfffe095315.dip0.t-ipconnect.de) |
| 21:35:45 | <yax__> | @pf (\x -> if isAlphaNum x then x else ' ') |
| 21:35:45 | <lambdabot> | Maybe you meant: pl bf |
| 21:35:55 | <yax__> | what |
| 21:35:58 | <yax__> | @help |
| 21:35:58 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
| 21:36:09 | <yax__> | @help list |
| 21:36:09 | <lambdabot> | list [module|command]. Show commands for [module] or the module providing [command]. |
| 21:36:13 | <geekosaur> | it's @pl |
| 21:36:17 | <yax__> | @pl (\x -> if isAlphaNum x then x else ' ') |
| 21:36:17 | <lambdabot> | flip (if' =<< isAlphaNum) ' ' |
| 21:36:24 | × | Guest34 quits (~Guest34@2605:a601:a615:f600:81b3:7572:de1c:534d) (Ping timeout: 252 seconds) |
| 21:36:28 | <[exa]> | yax__: contrary to the popular belief it's a pointless form |
| 21:36:33 | <yax__> | nvm im better of with it being point full |
| 21:37:28 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::909a) |
| 21:40:15 | × | kyborg2011 quits (~kyborg201@217.147.170.194) (Ping timeout: 272 seconds) |
| 21:41:27 | <ski> | i remember seeing `cond p f g x = if p x then f x else g x' defined |
| 21:41:28 | ← | janus parts (janus@anubis.0x90.dk) () |
| 21:42:10 | × | tomgus1 quits (~tomgus1@97e50351.skybroadband.com) (Ping timeout: 240 seconds) |
| 21:42:10 | <ski> | (which'd make that `cond isAlphaNum id (const ' ')') |
| 21:44:40 | <monochrom> | I wrote a shell script that went: if ... ; then cat foo ; else grep "$city" foo fi | sort | ... |
| 21:44:46 | → | pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl) |
| 21:44:58 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 21:45:05 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:49:09 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection) |
| 21:49:13 | <hpc> | functional bash is entertainingly weird |
| 21:49:21 | <hpc> | and sometimes unentertainingly |
| 21:49:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 21:49:37 | <monochrom> | Hey you liked it! Let me tell you a recursive shell function I wrote, too |
| 21:49:43 | <hpc> | you know how you can do x="--a --b", and then "foo $x" runs foo with two arguments? |
| 21:50:01 | <hpc> | if you do x = "foo --a" and then "$x --b", it tries to find a binary named "foo --a" :( |
| 21:51:20 | <monochrom> | piper() { if [ $# -eq 0 ]; then cat; else p=$1 ; shift ; "$p" | piper "$@" ; fi ; } |
| 21:51:59 | <monochrom> | So "piper x y z" means "x | y | z" (or more precisely "x | y | z | cat" but cat is the identity of the | monoid) |
| 21:52:18 | <hpc> | another member of the useless use of cat club! |
| 21:52:26 | <hpc> | i always start my pipelines with cat too |
| 21:52:30 | <hpc> | cat file | grep foo |
| 21:52:51 | <hpc> | this is definitely #haskell material :D |
| 21:53:25 | <hpc> | although, i like calling it the pipe monoid |
| 21:55:00 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:55:34 | <hpc> | i like thinking of rust code as a big monad too, because of they way their blocks work |
| 21:55:42 | <hpc> | returning isn't a return keyword that changes control flow |
| 21:55:48 | <hpc> | it's just the value of the last line of the block |
| 21:55:59 | <hpc> | kind of like do, with implicit pure |
| 21:56:22 | <monochrom> | Yeah they have a ? marker for an ExceptT IO monad. |
| 21:56:31 | <hpc> | and the async keyword |
| 21:57:42 | <hpc> | no joke, the first time i ever wrote rust code, i got to where i needed to write a case statement about 5 minutes into trying stuff out |
| 21:57:52 | <hpc> | and thought "wow, this is basically low-level haskell" |
| 21:57:53 | → | img joins (~img@user/img) |
| 21:58:05 | → | jeetelongname joins (~jeet@cpc96970-rdng25-2-0-cust390.15-3.cable.virginm.net) |
| 21:58:38 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
| 21:58:45 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:59:16 | <hpc> | its record syntax feels really natural too, and i think it's reproducible with a few language extensions |
| 21:59:28 | → | Pickchea joins (~private@user/pickchea) |
| 21:59:41 | <hpc> | maybe ghc could bring back something like the glasgow extensions, and just have a quick "rust records" flag that turns them all on at once |
| 22:00:04 | <geekosaur> | they're too wedded to the record dot abomination |
| 22:01:09 | <monochrom> | They now say "-X GHC2021" but I don't know whether that package has what you want. |
| 22:01:20 | <hpc> | i can live with record dot |
| 22:01:29 | <hpc> | i always compose functions as f . g anyway |
| 22:02:06 | <monochrom> | But it is referentially transparent glasgow extensions :) |
| 22:03:33 | <monochrom> | nix-style glasgow extensions >:) |
| 22:04:36 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 22:04:47 | <yax__> | isnt the correct way to use grep is to do `grep <pattern> <files>` |
| 22:04:58 | <hpc> | if you don't specify a file, grep uses stdin |
| 22:05:02 | <yax__> | instead of a pipe from cat |
| 22:05:16 | <hpc> | it's meant to be used from pipelines, everything else is random conveniences |
| 22:05:18 | <monochrom> | I did have grep <pattern> <one file> |
| 22:05:35 | <monochrom> | I did not pipe from cat to grep. Read again. |
| 22:05:45 | <monochrom> | I piped either cat or grep to sort. |
| 22:05:53 | <monochrom> | Yes you can do that. |
| 22:06:02 | <hpc> | monochrom: i meant how you put an empty cat at the end of the pipeline |
| 22:06:04 | <monochrom> | Yes you can have if-then-else | sort |
| 22:06:06 | ski | . o O ( `< file blah | bleh' ) |
| 22:06:31 | <yax__> | i was talking about hpc's message |
| 22:06:38 | <monochrom> | OTOH yes grep is happy to read stdin too. |
| 22:06:39 | <hpc> | oh, heh |
| 22:06:47 | <hpc> | ski: <() is a pretty good construct too, yeah |
| 22:07:01 | <geekosaur> | yax__ hence the "useless use of cat" remark |
| 22:07:03 | <hpc> | diff <(foo) <(bar) is a staple of my shell scripts |
| 22:07:03 | <yax__> | im not sure, which is the preferable way, pipe from cat or grep file |
| 22:07:15 | <geekosaur> | either |
| 22:07:18 | <yax__> | ive heard arguments for both but idk which one is better |
| 22:07:51 | <geekosaur> | beauty is in the eye of the beholder |
| 22:07:56 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 244 seconds) |
| 22:08:01 | <monochrom> | Depends on what you want to convey. |
| 22:08:08 | <yax__> | mhm |
| 22:08:11 | <monochrom> | (convey to people who read your code) |
| 22:08:18 | <hpc> | yax__: a good way to see how fundamental piping is, is to see how all the commands handle specified files just a little bit differently |
| 22:08:44 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 22:08:45 | <monochrom> | So just yesterday a student asked me (about C) should you write "a[0]" or should you write "*a" (when char *a) |
| 22:08:47 | <hpc> | you might see that the file is an --option instead of a positional argument, or that input and output files are specified oddly |
| 22:08:47 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 22:08:57 | <hpc> | or that recursive is -r sometimes and -R other times |
| 22:09:21 | <monochrom> | And my answer is again "depends on whether you want to emphasize arrayness or pointerness to people who read your code" |
| 22:09:40 | <hpc> | everyone knows it's 0[a] |
| 22:09:58 | <yax__> | monochrom: write 0[a] |
| 22:10:05 | <yax__> | eeeee you said it befor me |
| 22:10:08 | <monochrom> | Any other argument is pointless. |
| 22:10:15 | <hpc> | @quote .stereo |
| 22:10:15 | <lambdabot> | xplat says: Welcome to #haskell-blah, where your bot commands are executed in triumphant stereo! |
| 22:10:28 | <hpc> | bah, there's a million of those quotes now |
| 22:10:39 | × | nightbreak[Away] quits (~nightbrea@2600:1700:70d1:d800:7997:c6a5:32b7:3d2e) (Ping timeout: 272 seconds) |
| 22:10:52 | <monochrom> | As if programmers were a communist party and one single party line is to be imposed and anyone deviating is to be excommunicated. |
| 22:11:19 | <yax__> | what |
| 22:11:32 | <hpc> | thou shalt always CamelCase, except for mysql_real_escape_string |
| 22:11:33 | <monochrom> | This is why I made a fugue quote rather than a stereo quote :) |
| 22:11:36 | <monochrom> | @quote fugue |
| 22:11:36 | <lambdabot> | monochrom says: Welcome to #haskell, where your questions are answered in contrapuntal fugues. |
| 22:11:54 | <hpc> | that's a totally different situation |
| 22:12:05 | <hpc> | completing each other's sentences instead of just saying the same thing |
| 22:12:22 | <hpc> | although that's also a really good one, that happens pretty frequently too |
| 22:13:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:13:50 | × | pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 240 seconds) |
| 22:14:07 | <monochrom> | But fugues also have multiple parts singing the same thing, and sometimes time-delayed. |
| 22:14:29 | → | skubcat joins (~skubcat@156.57.184.235) |
| 22:14:58 | → | pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl) |
| 22:15:08 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection) |
| 22:15:24 | <hpc> | if we accept electronic music slang, we could say #haskell is a layer 2 protocol, because it's full of arps :D |
| 22:15:47 | <monochrom> | Yikes I don't understand that, but haha. |
| 22:15:57 | <hpc> | arp is arpeggio, when you fake a chord by alternating notes |
| 22:16:09 | <monochrom> | haha |
| 22:16:43 | <hpc> | (and for the non-network people reading scrollback, https://en.wikipedia.org/wiki/Address_Resolution_Protocol) |
| 22:16:44 | <monochrom> | OK that one I think I learned from twosetviolin |
| 22:17:35 | <hpc> | monophonic synths were so common they needed to shorten the name of it because you had to do it everywhere just for technical reasons |
| 22:18:17 | <monochrom> | Apparently in some circles "conflict of interests" is common enough to earn its acronym "COI" hehe |
| 22:18:25 | <hpc> | heh |
| 22:19:15 | <yax__> | add the Haskell's prayer to the bot |
| 22:19:18 | × | juri_ quits (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 244 seconds) |
| 22:19:27 | → | Dutchgriffon_ joins (~Laurens@70.36.53.134) |
| 22:19:56 | × | Dutchgriffon quits (~Laurens@70.36.53.134) (Read error: Connection reset by peer) |
| 22:20:41 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:24:59 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 22:26:10 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 22:26:10 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 22:26:59 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:30:35 | <slack1256> | Has anyone used three generations on the garbage collection (-G3)? What kind of test did you run to decide it was a good idea? or it was just a "this is long lived program with long lived data structures". |
| 22:31:18 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 22:31:24 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:31:59 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Read error: Connection reset by peer) |
| 22:32:18 | × | jeetelongname quits (~jeet@cpc96970-rdng25-2-0-cust390.15-3.cable.virginm.net) (Remote host closed the connection) |
| 22:36:10 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 22:36:27 | → | kyborg2011 joins (~kyborg201@88.155.101.148) |
| 22:36:51 | × | kyborg2011 quits (~kyborg201@88.155.101.148) (Client Quit) |
| 22:40:54 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Read error: Connection reset by peer) |
| 22:41:00 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::909a) |
| 22:43:24 | × | acidjnk_new quits (~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 22:45:59 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 22:46:07 | × | yax__ quits (~yax@user/yax/x-9576643) (Ping timeout: 272 seconds) |
| 22:47:10 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 22:49:15 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:49:50 | → | acidjnk_new joins (~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de) |
| 22:51:11 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 22:52:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:53:18 | → | merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
| 22:54:34 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Read error: Connection reset by peer) |
| 22:54:54 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 22:55:29 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 244 seconds) |
| 22:56:45 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 23:01:11 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 23:01:57 | × | acidjnk_new quits (~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 23:02:02 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:02:14 | Dutchgriffon_ | is now known as Dutchgriffon |
| 23:03:22 | × | gustik quits (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Quit: Leaving) |
| 23:04:57 | → | img joins (~img@user/img) |
| 23:05:17 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 244 seconds) |
| 23:05:51 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 23:06:19 | → | juri__ joins (~juri@79.140.115.119) |
| 23:06:26 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:08:35 | × | geschwindig quits (~John_Ivan@user/john-ivan/x-1515935) (Quit: Leaving) |
| 23:11:16 | × | juri__ quits (~juri@79.140.115.119) (Ping timeout: 272 seconds) |
| 23:11:16 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 23:11:43 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 23:12:29 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:16:20 | <vulpine> | @pl \x -> map (fst) x |
| 23:16:20 | <lambdabot> | map fst |
| 23:16:44 | → | juri_ joins (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) |
| 23:18:18 | × | pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 276 seconds) |
| 23:21:19 | × | juri_ quits (~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Ping timeout: 244 seconds) |
| 23:21:34 | → | jmorris joins (uid537181@id-537181.uxbridge.irccloud.com) |
| 23:21:44 | → | juri_ joins (~juri@79.140.115.122) |
| 23:22:21 | × | merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds) |
| 23:24:20 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 23:24:30 | × | kjak quits (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
| 23:27:31 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
| 23:35:04 | → | tomgus1 joins (~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3) |
| 23:36:49 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 23:37:12 | × | skubcat quits (~skubcat@156.57.184.235) (Quit: Client closed) |
| 23:38:03 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
| 23:38:04 | Lord_of_Life_ | is now known as Lord_of_Life |
| 23:45:28 | × | alp quits (~alp@user/alp) (Ping timeout: 268 seconds) |
| 23:53:04 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 23:57:56 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection) |
| 23:58:34 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) |
| 23:59:35 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 272 seconds) |
All times are in UTC on 2022-07-13.