Logs on 2021-12-01 (liberachat/#haskell)
| 00:00:02 | × | zopsi_ quits (zopsi@2600:3c00::f03c:91ff:fe14:551f) (Quit: Oops) |
| 00:00:03 | × | jinsun quits (~quassel@user/jinsun) (*.net *.split) |
| 00:00:03 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (*.net *.split) |
| 00:00:03 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (*.net *.split) |
| 00:00:03 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (*.net *.split) |
| 00:00:03 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split) |
| 00:00:03 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (*.net *.split) |
| 00:00:03 | × | curiousgay quits (~curiousga@77-120-141-90.kha.volia.net) (*.net *.split) |
| 00:00:03 | × | dwt_ quits (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (*.net *.split) |
| 00:00:03 | × | caubert quits (~caubert@136.244.111.235) (*.net *.split) |
| 00:00:03 | × | heath quits (~heath@user/heath) (*.net *.split) |
| 00:00:03 | × | Patternmaster quits (~georg@li1192-118.members.linode.com) (*.net *.split) |
| 00:00:03 | × | jackhill quits (~jackhill@kalessin.dragonsnail.net) (*.net *.split) |
| 00:00:03 | × | Teacup_ quits (~teacup@user/teacup) (*.net *.split) |
| 00:00:03 | × | oats quits (~thomas@user/oats) (*.net *.split) |
| 00:00:03 | × | haskl quits (~haskl@user/haskl) (*.net *.split) |
| 00:00:03 | × | dolio quits (~dolio@130.44.130.54) (*.net *.split) |
| 00:00:03 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (*.net *.split) |
| 00:00:03 | × | Alex_test quits (~al_test@178.34.160.14) (*.net *.split) |
| 00:00:03 | × | AlexZenon quits (~alzenon@178.34.160.14) (*.net *.split) |
| 00:00:03 | × | ystael quits (~ystael@user/ystael) (*.net *.split) |
| 00:00:03 | × | filwisher quits (2e6936c793@2604:bf00:561:2000::170) (*.net *.split) |
| 00:00:03 | × | emf quits (~emf@2620:10d:c090:400::5:d28b) (*.net *.split) |
| 00:00:03 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (*.net *.split) |
| 00:00:03 | × | ehamberg_ quits (sid18208@id-18208.hampstead.irccloud.com) (*.net *.split) |
| 00:00:03 | × | yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (*.net *.split) |
| 00:00:03 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (*.net *.split) |
| 00:00:03 | × | natechan quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (*.net *.split) |
| 00:00:03 | × | iqubic quits (~user@2601:602:9502:c70:6765:a5f:e5b9:6c69) (*.net *.split) |
| 00:00:03 | × | terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (*.net *.split) |
| 00:00:03 | × | nickdaly quits (45ce440a48@2604:bf00:561:2000::e2) (*.net *.split) |
| 00:00:04 | × | FragByte quits (~christian@user/fragbyte) (*.net *.split) |
| 00:00:04 | × | ozzymcduff quits (~mathieu@81-234-151-21-no94.tbcn.telia.com) (*.net *.split) |
| 00:00:04 | × | Logio quits (em@kapsi.fi) (*.net *.split) |
| 00:00:04 | × | glider quits (~glider@user/glider) (*.net *.split) |
| 00:00:04 | × | lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (*.net *.split) |
| 00:00:04 | × | jkoshy quits (99b9359beb@2604:bf00:561:2000::10f) (*.net *.split) |
| 00:00:04 | × | sm2n quits (ae95cb1267@user/sm2n) (*.net *.split) |
| 00:00:04 | × | acidsys quits (~LSD@2.lsd.systems) (*.net *.split) |
| 00:00:04 | × | sander quits (~sander@user/sander) (*.net *.split) |
| 00:00:04 | × | vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split) |
| 00:00:04 | × | arahael quits (~arahael@27-32-144-20.tpgi.com.au) (*.net *.split) |
| 00:00:04 | × | evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (*.net *.split) |
| 00:00:04 | × | zmt00 quits (~zmt00@user/zmt00) (*.net *.split) |
| 00:00:04 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (*.net *.split) |
| 00:00:04 | × | Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split) |
| 00:00:04 | × | sweater quits (~sweater@206.81.18.26) (*.net *.split) |
| 00:00:04 | × | carbolymer quits (~carbolyme@dropacid.net) (*.net *.split) |
| 00:00:04 | × | shanemikel quits (~shanemike@desk.roadwar.net) (*.net *.split) |
| 00:00:04 | × | remexre quits (~remexre@user/remexre) (*.net *.split) |
| 00:00:04 | × | teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split) |
| 00:00:04 | × | dyniec quits (~dyniec@mail.dybiec.info) (*.net *.split) |
| 00:00:04 | × | rembo10 quits (~rembo10@remulis.com) (*.net *.split) |
| 00:00:04 | × | TimWolla quits (~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split) |
| 00:00:04 | × | cocreature quits (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split) |
| 00:00:04 | × | xacktm quits (xacktm@user/xacktm) (*.net *.split) |
| 00:00:11 | → | lukec joins (9dfd4d094e@2604:bf00:561:2000::10e) |
| 00:00:13 | → | TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667) |
| 00:00:16 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 00:00:19 | → | dyniec joins (~dyniec@mail.dybiec.info) |
| 00:00:20 | → | Alex_test joins (~al_test@178.34.160.14) |
| 00:00:20 | → | evanrelf joins (3addc196af@2604:bf00:561:2000::f0) |
| 00:00:21 | → | AlexZenon joins (~alzenon@178.34.160.14) |
| 00:00:22 | → | teddyc joins (theodorc@cassarossa.samfundet.no) |
| 00:00:23 | → | sm2n joins (ae95cb1267@user/sm2n) |
| 00:00:23 | → | jkoshy joins (99b9359beb@2604:bf00:561:2000::10f) |
| 00:00:26 | → | nickdaly joins (45ce440a48@2604:bf00:561:2000::e2) |
| 00:00:28 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 00:00:28 | → | Logio joins (em@kapsi.fi) |
| 00:00:28 | → | FragByte joins (~christian@p579d2134.dip0.t-ipconnect.de) |
| 00:00:31 | → | caubert joins (~caubert@136.244.111.235) |
| 00:00:35 | → | ehamberg_ joins (sid18208@id-18208.hampstead.irccloud.com) |
| 00:00:36 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 00:00:38 | × | FragByte quits (~christian@p579d2134.dip0.t-ipconnect.de) (Changing host) |
| 00:00:38 | → | FragByte joins (~christian@user/fragbyte) |
| 00:00:41 | → | Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
| 00:00:42 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 00:00:47 | → | Teacup joins (~teacup@user/teacup) |
| 00:01:01 | → | zopsi joins (~zopsi@irc.dir.ac) |
| 00:01:14 | → | natechan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 00:01:19 | → | rembo10 joins (~rembo10@remulis.com) |
| 00:01:57 | → | yaroot joins (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) |
| 00:02:06 | → | dwt_ joins (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) |
| 00:02:09 | → | filwisher joins (2e6936c793@2604:bf00:561:2000::170) |
| 00:02:11 | → | sander joins (~sander@user/sander) |
| 00:02:14 | → | shanemikel joins (~shanemike@desk.roadwar.net) |
| 00:02:15 | → | heath joins (~heath@user/heath) |
| 00:02:18 | → | jinsun joins (~quassel@user/jinsun) |
| 00:02:18 | → | dolio joins (~dolio@130.44.130.54) |
| 00:02:25 | → | carbolymer joins (~carbolyme@dropacid.net) |
| 00:02:27 | → | xacktm joins (xacktm@user/xacktm) |
| 00:02:29 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 00:02:34 | → | acidsys joins (~LSD@2.lsd.systems) |
| 00:02:35 | → | oats joins (~thomas@user/oats) |
| 00:02:35 | → | vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae) |
| 00:02:42 | → | haskl joins (~haskl@user/haskl) |
| 00:02:42 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 00:02:55 | → | curiousgay joins (~curiousga@77-120-141-90.kha.volia.net) |
| 00:03:05 | <davean> | EvanR: Also, like acid-state has NOT built in recovery |
| 00:03:05 | × | lbseale_ quits (~ep1ctetus@user/ep1ctetus) (Quit: Leaving) |
| 00:03:14 | <EvanR> | eh? |
| 00:03:16 | → | sweater joins (~sweater@206.81.18.26) |
| 00:03:16 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection) |
| 00:03:17 | → | remexre joins (~remexre@user/remexre) |
| 00:03:18 | <davean> | either it comes up because everything went well or you get all the peices |
| 00:03:27 | → | cocreature joins (~moritz@2a03:b0c0:3:d0::c8:f001) |
| 00:03:31 | <EvanR> | that part I did not know |
| 00:03:33 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 00:04:11 | × | jeetelongname quits (~jeet@eduroam-public-46.nat.port.ac.uk) (Ping timeout: 256 seconds) |
| 00:04:11 | × | noctux quits (~noctux@user/noctux) (Ping timeout: 256 seconds) |
| 00:04:12 | <EvanR> | even my shitty append-only log for my MUD server could recover |
| 00:04:15 | → | glider joins (~glider@user/glider) |
| 00:04:29 | → | noctux joins (~noctux@user/noctux) |
| 00:05:09 | <davean> | I mean acid state is an operational append log with rollup |
| 00:05:11 | → | jackhill joins (~jackhill@kalessin.dragonsnail.net) |
| 00:05:16 | → | Patternmaster joins (~georg@li1192-118.members.linode.com) |
| 00:05:22 | → | ozzymcduff joins (~mathieu@81-234-151-21-no94.tbcn.telia.com) |
| 00:05:24 | → | ystael joins (~ystael@user/ystael) |
| 00:06:08 | → | emf joins (~emf@2620:10d:c090:400::5:d28b) |
| 00:06:55 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 00:07:01 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 00:07:14 | → | jeetelongname joins (~jeet@148.197.248.46) |
| 00:07:57 | × | Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 3.3) |
| 00:08:11 | → | Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
| 00:08:32 | × | sheb quits (~sheb@31.223.228.71) (Ping timeout: 240 seconds) |
| 00:10:50 | <concrete-houses> | acid state!! happstack.com!! I am beginning to think that centralized databases are a huge mistake and bs of usury bankers |
| 00:11:13 | <maerwald> | right... you should enjoy blockchain |
| 00:11:23 | <maerwald> | it's pretty simple... look |
| 00:11:46 | <concrete-houses> | I am stunned how ahrd sql adn psotgresql are to use |
| 00:11:59 | <concrete-houses> | how poor the docs are |
| 00:12:09 | <concrete-houses> | endless manusl |
| 00:12:12 | <concrete-houses> | no howto to do x y |
| 00:12:20 | <concrete-houses> | almsot as if its a distraction to keep u poor |
| 00:12:23 | <EvanR> | 🤔 |
| 00:13:32 | <davean> | uh what? |
| 00:13:58 | <maerwald> | it's a blockchain scam... wait for it :D |
| 00:14:01 | <hpc> | sql adn psotgresql are ahrd :P |
| 00:15:00 | <EvanR> | > sort "sql adn psotgresql are ahrd" |
| 00:15:02 | <lambdabot> | " aaaddeeghllnopqqrrrssst" |
| 00:15:13 | <janus> | concrete-houses: i know your struggle. you like relational algebra but sql doesn't respect it |
| 00:15:15 | <EvanR> | fixed it |
| 00:15:18 | <janus> | i know the project that saves the day |
| 00:15:23 | <janus> | @package Project-M36 |
| 00:15:23 | <lambdabot> | https://hackage.haskell.org/package/Project-M36 |
| 00:15:26 | <hpc> | EvanR: sorted it all out, one might say |
| 00:15:32 | <janus> | oh ok here it is https://github.com/agentm/project-m36 |
| 00:16:02 | <janus> | relational algebra built totally in haskell with much type fanciness that lets you collaborate with the compiler in harmony |
| 00:16:29 | <EvanR> | but is it web scale |
| 00:16:52 | <janus> | yes, it doesn't require all data to be in memory. in theory. |
| 00:17:55 | × | Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
| 00:19:05 | <janus> | there is even an irc channel on this network, but you must be patient because Agent M doesn't use a bouncer, iirc: #project-m36 |
| 00:19:33 | <EvanR> | what's up with haskellDB, is that still a thing |
| 00:19:35 | <davean> | Bouncers are weird |
| 00:22:03 | <janus> | EvanR: haskellDB looks like it compiles to SQL, so not nearly as ambitious as Project M36 |
| 00:22:08 | × | jeetelongname quits (~jeet@148.197.248.46) (Remote host closed the connection) |
| 00:22:40 | <janus> | but no, haskellDB doesn't seem active, no commits since 2019 |
| 00:22:47 | <EvanR> | that's ancient |
| 00:22:54 | <EvanR> | jk |
| 00:22:59 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 00:23:19 | <EvanR> | give them time to recover from the pandemic |
| 00:23:35 | <janus> | the drivers havn't been touched for 9 years ;) |
| 00:23:58 | <EvanR> | good that means they work with databases |
| 00:24:07 | <EvanR> | that are that old |
| 00:24:27 | <EvanR> | vintage drivers |
| 00:25:03 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 00:26:51 | × | jgeerds quits (~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 256 seconds) |
| 00:27:20 | → | jeetelongname joins (~jeet@148.197.248.46) |
| 00:30:17 | <dsal> | What's wrong with postgres docs? I've found them quite good. |
| 00:31:07 | <monochrom> | Can I ban that person already? |
| 00:32:20 | <Axman6> | yeah postgres has some of the best docs of any project I use regularly |
| 00:32:36 | × | zava quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3) |
| 00:32:57 | <janus> | monochrom: yes you can :) |
| 00:32:58 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 265 seconds) |
| 00:33:09 | <monochrom> | Pretty sure they just mean the entitlement attitude "the doc does not teach me SQL for free". |
| 00:33:25 | <janus> | i still think it is an elaborate joke on the culture of the channel |
| 00:33:27 | ChanServ | sets mode +o monochrom |
| 00:33:30 | justache | is now known as totallynotjustac |
| 00:33:32 | × | seanparsons quits (~seanparso@cpc158525-gill21-2-0-cust151.20-1.cable.virginm.net) (Ping timeout: 240 seconds) |
| 00:33:34 | monochrom | sets mode +b *!*@209.6.150.53 |
| 00:33:34 | concrete-houses | is kicked by monochrom (concrete-houses) |
| 00:33:47 | → | pfurla joins (~pfurla@2804:14d:5c81:4104:b590:8966:cd38:8f41) |
| 00:33:59 | → | iqubic joins (~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59) |
| 00:34:10 | totallynotjustac | is now known as justache |
| 00:34:11 | <Axman6> | and nothing of value was lost |
| 00:34:31 | → | yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) |
| 00:34:35 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 00:35:40 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 00:39:12 | <jeetelongname> | dis postgress and get the hammer /s |
| 00:39:19 | × | yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 00:39:26 | <Axman6> | damn right |
| 00:39:47 | <Axman6> | We can't have PHP with the first P |
| 00:41:03 | → | seanparsons joins (~seanparso@cpc158525-gill21-2-0-cust151.20-1.cable.virginm.net) |
| 00:41:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:41:17 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 00:41:17 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:42:06 | → | Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
| 00:43:45 | <maerwald> | postgres keeps you poor... blockchain makes you rich |
| 00:43:47 | <maerwald> | checks out |
| 00:44:15 | × | burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
| 00:49:59 | → | mvk joins (~mvk@2607:fea8:5cc1:fa00::4702) |
| 00:50:15 | → | pfurla_ joins (~pfurla@205-185-222-149.ipvanish.com) |
| 00:51:37 | × | pfurla quits (~pfurla@2804:14d:5c81:4104:b590:8966:cd38:8f41) (Ping timeout: 250 seconds) |
| 00:54:47 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 00:57:10 | justache | is now known as zoite |
| 00:58:05 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
| 00:59:11 | zoite | is now known as z0ite |
| 00:59:23 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:04:01 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 01:08:19 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds) |
| 01:09:35 | → | zuserm joins (~mz@71.161.92.216) |
| 01:10:09 | → | lbseale_ joins (~ep1ctetus@user/ep1ctetus) |
| 01:10:19 | <zuserm> | can anyone help my with stack on nixos? |
| 01:10:49 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:15 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 01:13:53 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 01:15:17 | × | acidjnk_new quits (~acidjnk@p200300d0c7271e72351a12a888efd4cb.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 01:15:23 | → | pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) |
| 01:16:56 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:17:14 | → | gentauro joins (~gentauro@user/gentauro) |
| 01:17:30 | × | tinwood quits (~tinwood@canonical/tinwood) (Remote host closed the connection) |
| 01:17:54 | × | pfurla_ quits (~pfurla@205-185-222-149.ipvanish.com) (Ping timeout: 256 seconds) |
| 01:20:34 | → | tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io) |
| 01:20:34 | × | tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host) |
| 01:20:34 | → | tinwood joins (~tinwood@canonical/tinwood) |
| 01:21:45 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:23:15 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 01:25:06 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 01:25:06 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 01:25:09 | allbery_b | is now known as geekosaur |
| 01:26:43 | → | sus joins (zero@user/zeromomentum) |
| 01:28:20 | <dsal> | zuserm: possibly. |
| 01:28:38 | <dsal> | Native ghc no longer works on my new laptop. heh |
| 01:29:39 | <zuserm> | I'm trying to run "stack script test.hs" and I'm getting "Executable named nix-shell not found on path: ..." |
| 01:30:06 | <dsal> | Not having nix-shell in your path on a nixos machine seems a bit odd. |
| 01:30:40 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 01:30:48 | <dsal> | I don't do stack scripts, though. There's a bunch of indirection along the way. |
| 01:33:34 | <zuserm> | alternately if I run "stack script --no-nix test.hs" "I don't know how to install GHC on your system configuration, please install manually" but I already have the same version of ghc installed as the resolver I'm trying to use |
| 01:33:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 01:35:57 | <geekosaur> | you would also need --system-ghc |
| 01:36:10 | <geekosaur> | because stack really really wants to install and manage its own ghcs |
| 01:39:10 | zero | is now known as yin |
| 01:40:32 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3) |
| 01:40:55 | → | lbseale__ joins (~ep1ctetus@user/ep1ctetus) |
| 01:41:18 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection) |
| 01:42:57 | × | lbseale__ quits (~ep1ctetus@user/ep1ctetus) (Client Quit) |
| 01:43:26 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 01:44:29 | × | lbseale_ quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 01:49:39 | → | renzhi joins (~xp@2607:fa49:6500:b100::5cef) |
| 01:56:43 | <EvanR> | ghcup is awesome |
| 01:57:31 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
| 01:58:03 | <zuserm> | geekosaur: --system-ghc doesn't help :( |
| 01:58:44 | <geekosaur> | mrr, wonder if that works with stack script then |
| 01:59:22 | × | DNH quits (~DNH@2a02:8108:1100:16d8:f00d:18c8:3973:574b) (Quit: Textual IRC Client: www.textualapp.com) |
| 02:00:55 | <lechner> | Hi, can aeson's Generics parser handle sum types? Thanks! |
| 02:02:19 | <dsal> | lechner: you mean simple enums? sure. |
| 02:02:34 | → | bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd) |
| 02:03:42 | <lechner> | not just enum but something like Hint | PointedHint where PointedHint includes a Pointer |
| 02:04:42 | → | jmorris joins (uid433911@id-433911.hampstead.irccloud.com) |
| 02:08:05 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 02:08:06 | → | hiruji joins (~hiruji@user/hiruji) |
| 02:08:43 | <lechner> | i think that's it https://artyom.me/aeson#types-with-many-constructors |
| 02:11:53 | → | sheb joins (~sheb@31.223.228.71) |
| 02:14:04 | × | sheb quits (~sheb@31.223.228.71) (Remote host closed the connection) |
| 02:14:20 | → | sheb joins (~sheb@31.223.228.71) |
| 02:18:29 | → | bollu joins (uid233390@id-233390.helmsley.irccloud.com) |
| 02:19:37 | × | alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 02:22:50 | monochrom | sets mode -o monochrom |
| 02:25:12 | → | jkaye joins (~jkaye@2601:281:8300:7530:4aac:42f1:645e:c02f) |
| 02:25:17 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:29:43 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 02:32:20 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 02:33:26 | → | alzgh joins (alzgh@user/alzgh) |
| 02:34:29 | × | xff0x quits (~xff0x@2001:1a81:52c5:f300:8200:618:b8e3:ab90) (Ping timeout: 252 seconds) |
| 02:36:17 | → | xff0x joins (~xff0x@2001:1a81:530d:ee00:3ffa:7a4c:8a0a:d168) |
| 02:36:41 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 02:38:18 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:38:31 | × | mvk quits (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds) |
| 02:39:01 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:39:01 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 02:39:01 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:44:23 | × | mmhat quits (~mmh@55d4269f.access.ecotel.net) (Ping timeout: 252 seconds) |
| 02:49:20 | × | alzgh quits (alzgh@user/alzgh) (Remote host closed the connection) |
| 02:50:30 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 02:55:24 | → | alzgh joins (~alzgh@user/alzgh) |
| 02:56:25 | × | ubert quits (~Thunderbi@p200300ecdf0ba2aae6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 02:56:49 | → | ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) |
| 02:59:19 | × | ubert quits (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 02:59:37 | → | ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) |
| 02:59:39 | → | arahael joins (~arahael@27-32-144-20.tpgi.com.au) |
| 03:00:41 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 03:05:20 | <dsal> | I tried out ghcup and it seems to not work at all because clang something. |
| 03:11:03 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 03:12:27 | <sm> | someone should write an accurate "set up haskell on new m1 mac" guide |
| 03:12:33 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:12:33 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:12:33 | finn_elija | is now known as FinnElija |
| 03:13:55 | <lechner> | maerwald: ^ |
| 03:16:34 | <dsal> | I'd never tried ghcup, but my new m1 mac doesn't build stuff my old m1 mac would build via nix. And ghcup doesn't get very close. |
| 03:20:27 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 03:22:53 | × | td_ quits (~td@muedsl-82-207-238-126.citykom.de) (Ping timeout: 252 seconds) |
| 03:24:46 | → | td_ joins (~td@muedsl-82-207-238-025.citykom.de) |
| 03:25:49 | × | jkaye quits (~jkaye@2601:281:8300:7530:4aac:42f1:645e:c02f) (Ping timeout: 252 seconds) |
| 03:29:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:31:45 | → | mbuf joins (~Shakthi@27.58.139.230) |
| 03:35:32 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds) |
| 03:36:41 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 03:38:21 | × | LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds) |
| 03:38:59 | → | LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao) |
| 03:39:26 | → | stefan-_ joins (~cri@42dots.de) |
| 03:42:39 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 03:45:53 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:45:53 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 03:45:53 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:47:05 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds) |
| 03:47:23 | <sm> | dsal: there was a recent reddit discussion on m1 setup |
| 03:48:00 | <sm> | https://www.reddit.com/r/haskell/comments/qwvj0k/does_anyone_know_the_best_way_to_build_a_haskell/ |
| 03:50:17 | × | boxscape_ quits (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 03:52:32 | <dsal> | Oh yeah, I saw that. I had thing that worked on my old M1, but not my new M1. |
| 03:52:37 | <dsal> | I'm not 100% sure what the difference is |
| 03:53:00 | <dsal> | GHC for aarch64 from nix fails with EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid)) |
| 03:53:08 | × | renzhi quits (~xp@2607:fa49:6500:b100::5cef) (Ping timeout: 252 seconds) |
| 03:53:34 | <dsal> | From ghcup, just something about needing clang. |
| 03:54:50 | <Axman6> | do you have clang installed? |
| 03:56:40 | <dsal> | I don't. There's no binary release for this platform. I guess I can see if it'll build. |
| 04:00:01 | × | haasn quits (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
| 04:00:29 | × | bliminse quits (~bliminse@host86-188-36-178.range86-188.btcentralplus.com) (Ping timeout: 256 seconds) |
| 04:01:21 | → | haasn joins (~nand@haasn.dev) |
| 04:02:07 | → | bliminse joins (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) |
| 04:03:03 | <Axman6> | surely Apple provides one |
| 04:03:11 | <Axman6> | you've got Xcode installed right? |
| 04:03:53 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 04:04:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 04:06:21 | <dsal> | Yeah. I've not used it, though. I wonder if there's a thing I have to do to activate that. |
| 04:07:48 | <dsal> | I have clang, but not opt |
| 04:08:58 | × | jeetelongname quits (~jeet@148.197.248.46) (Remote host closed the connection) |
| 04:10:32 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 04:10:33 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 04:10:58 | <arahael> | That's odd. I'm on M1 and it works fine for me. Granted, I'm using an existing ghc, and not building that myself using nix. |
| 04:11:31 | <arahael> | What's the specific error message due to that "clang something"? |
| 04:12:16 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 04:12:40 | <arahael> | But yeah, that promise of nix just workign has been something that's let me down a lot. :( |
| 04:13:24 | → | fef joins (~thedawn@user/thedawn) |
| 04:13:39 | <arahael> | dsal: ghc 9.2.1 works fine with ghcup for me. Sadly not the earlier one. And I do need to set export C_INCLUDE_PATH="`xcrun --show-sdk-path`/usr/include/ffi" as a workaround for another bug with it. |
| 04:13:48 | → | sproso joins (~sproso@node-1w7jr9y8y96l370tw0h9cpsrf.ipv6.telus.net) |
| 04:15:57 | → | zaquest joins (~notzaques@5.130.79.72) |
| 04:17:59 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:17:59 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 04:17:59 | → | wroathe joins (~wroathe@user/wroathe) |
| 04:20:34 | <dsal> | My old M1 was fine. New M1 is less fine. |
| 04:20:46 | <dsal> | This is an "M1 Max" |
| 04:21:07 | <sm> | it's just too fast. |
| 04:23:03 | <dsal> | My old machine had 4 performance cores and 4 efficiency cores. This one has 8 performance cores and 2 efficiency cores, so maybe it's just not efficient enough. |
| 04:24:28 | × | maroloccio quits (~marolocci@151.53.155.184) (Quit: WeeChat 3.0) |
| 04:26:44 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving) |
| 04:26:45 | <arahael> | dsal: LLVM 13.0 broke a few things - which is what you would've gotten with the latest xcode. Which is what you would have on the new M1. |
| 04:27:37 | <dsal> | Hmm... The error I get is about code signature. |
| 04:28:08 | <arahael> | Notorisation requirements may well have been boosted in the new OS? |
| 04:28:12 | × | bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:28:20 | <sm> | arahael: I've always had to install some optional command line component of xcode |
| 04:29:09 | <arahael> | sm: That hasn't changed. |
| 04:29:18 | <arahael> | sm: (The versions of the tools in that would have, though) |
| 04:31:27 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 04:32:25 | <dsal> | I've got x86 working. I'll have to switch to that in the meantime. |
| 04:33:08 | <sm> | dsal, tried the stack route ? |
| 04:33:10 | <arahael> | A bit slower to start, but yeah, that does work nicely. However, aarch64 works fine too but you have to use 9.2.1 |
| 04:33:13 | <Square> | I have this function that works properly https://paste.tomsmeding.com/jE8lp78x . The case part is recurring in other places so i felt I needed some sort of reuse of it. Ie, something that that routes the "path" to a handler for each case. |
| 04:33:27 | <Square> | You dont happen to see what would be practical here? |
| 04:34:07 | <dsal> | sm: I'm using stack via nix. It gets ghc just like I did on my other machine, it just won't run it. |
| 04:34:56 | <sm> | ack. Is the stack executable x86 or arm ? just curious |
| 04:35:26 | <arahael> | dsal: Use the arch command to force a particular arch. |
| 04:35:55 | <arahael> | dsal: But yeah, I've moved away from nix for various reasons. And also stack - less moving parts. |
| 04:36:10 | × | sagax quits (~sagax_nb@user/sagax) (Quit: Konversation terminated!) |
| 04:36:11 | <dsal> | Well, I'm actually failing a little earlier than that. Just getting home-manager to switch to arm tries to run the GHC and crashes. |
| 04:36:14 | <arahael> | nix doesn't even sandbox adequately on macos. |
| 04:36:17 | <dsal> | I tried the stack that came with ghcup. |
| 04:36:25 | sm | seems to remember getting newer clang/llvm with homebrew |
| 04:36:49 | <arahael> | sm: In this case, you're goign to want _older_ clang/llvm, I think. |
| 04:36:51 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 04:37:05 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:37:05 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 04:37:05 | → | wroathe joins (~wroathe@user/wroathe) |
| 04:37:25 | <dsal> | I've not used homebrew in a while. nix has done a good job of getting my tools for the most part. New install has a couple issues, but I'm not going to solve them tonight. |
| 04:37:38 | sm | would try the stack binary from fpcomplete as well |
| 04:39:17 | <dsal> | yeah, stack from ghcup is the path that got me the complains about missing `opt` |
| 04:39:38 | <arahael> | dsal: What's the full error - what's the whole "opt" thing? |
| 04:39:56 | <arahael> | dsal: I might be able to recognise some of it. |
| 04:40:23 | <dsal> | Actually, different error. Earlier it was that it couldn't find `opt` from clang. Now it's just saying it can't find clang. Warning: Couldn't figure out LLVM version! Make sure you have installed LLVM between [9 and 13) |
| 04:40:26 | <dsal> | It says warning, but it fails. |
| 04:41:03 | <arahael> | dsal: Ah, yes. You need ghc 9.2.1, that's the same issue I have. Note [9 and 13], that's "version 9, through to but not including version 13". My guess is you have version 13. |
| 04:41:43 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 04:41:44 | <dsal> | Oh, I selected 9.2.1 |
| 04:41:50 | <dsal> | It's seeming to do something now. |
| 04:42:13 | <arahael> | dsal: That has a bug involving ffi on macos. You'll need that environment variable I showed above for the C_INCLUDE_PATH. |
| 04:42:22 | <dsal> | Er, maybe not. OK. I'll try that. heh |
| 04:43:03 | <sm> | arahael: wow, tricky error message there.. |
| 04:43:15 | <arahael> | dsal: Does stack support that yet, incidentially? I thought ghc 9.2.1 is too new for stack? |
| 04:44:02 | <dsal> | Hmm... No, it still fails to compile all my deps. |
| 04:44:32 | <dsal> | ghc: could not execute: opt |
| 04:44:47 | <arahael> | "could not execute: opt". That's _curious_. |
| 04:45:58 | <dsal> | yeah, I don't know where it's supposed to get opt. I have Apple clang version 13.0.0 (clang-1300.0.29.3) |
| 04:46:27 | <arahael> | Right, that's not within the supported [9 and 13) range (except for GHC 9.2.1) |
| 04:46:55 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 04:46:58 | <arahael> | dsal: Welcome to my troubles here from the past week or so. :) I recall you were there! ;) |
| 04:47:18 | <dsal> | ah. Everything worked well for me on my old machine due to luck. |
| 04:47:42 | <arahael> | dsal: Hmm. :) |
| 04:47:56 | <dsal> | Oooh, I didn't notice the ) on 13. |
| 04:48:24 | <arahael> | dsal: It's super subtle isnt' it? I only pointed it out like 3 times, and you _STILL_ missed it, it's that subtle, yes. (And not blaming you for that, either) |
| 04:48:32 | <sm> | that's what I meant by "tricky error message"! Pretty bad UX |
| 04:49:43 | <dsal> | Yeah. There's a fairly narrow band of tooling I care about. |
| 04:50:04 | <arahael> | dsal: One thing I did not try, was installing an older xcode. |
| 04:50:42 | <arahael> | dsal: But you need an apple developer account to get access to the older xcodes. |
| 04:50:48 | <dsal> | Ah, that sounds painful. |
| 04:50:53 | <dsal> | I think I've done that before. |
| 04:50:59 | <arahael> | (I have the account, but anyways) |
| 04:55:20 | <arahael> | dsal: Anyway, realise you're ultimately dealing with four layers here: nix, stack, haskell, and macos/xcode. That's a lot of moving parts. |
| 04:55:30 | <sm> | +1 |
| 04:55:46 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 04:55:55 | <Axman6> | and Apple don't give a shit about us |
| 04:56:53 | × | ubert quits (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 04:57:57 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:57:57 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 04:57:57 | → | wroathe joins (~wroathe@user/wroathe) |
| 04:58:35 | <EvanR> | advent of code... like 1 minute xd |
| 04:58:57 | <sm> | agh! |
| 04:58:59 | <arahael> | Oh, yeah! I'm torn between doing this in literate haskell, or rust. |
| 04:59:19 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 04:59:45 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 05:00:25 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 05:00:52 | → | ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) |
| 05:01:04 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 05:02:49 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 05:03:33 | z0ite | is now known as justache |
| 05:06:15 | × | kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
| 05:08:40 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 05:15:29 | → | Jing_ joins (~hedgehog@2604:a840:3::1061) |
| 05:16:10 | <dsal> | I also had emacs in the layers there. It froze up on part 2. *sigh* |
| 05:16:43 | × | pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…) |
| 05:18:04 | <arahael> | That's another moving part! |
| 05:18:32 | × | Jing quits (~hedgehog@125.105.11.101) (Ping timeout: 240 seconds) |
| 05:19:33 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 05:21:13 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 05:23:10 | → | lavaman joins (~lavaman@98.38.249.169) |
| 05:25:28 | → | pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) |
| 05:26:36 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:28:36 | → | ees joins (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
| 05:31:03 | → | img joins (~img@user/img) |
| 05:39:56 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 05:40:08 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 05:41:21 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 05:41:38 | × | sproso quits (~sproso@node-1w7jr9y8y96l370tw0h9cpsrf.ipv6.telus.net) (Quit: Client closed) |
| 05:45:31 | × | ees quits (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
| 05:47:37 | <arahael> | With literate haskell (Particularly markdown-unlit), how can I produce test cases from the same markdown file? I want to say: ... And that should produce the following outcome in the repl: ... |
| 05:50:33 | <aplainzetakind> | `ghcid "--command=cabal run the-project"` exits on error, and when no-error, does not update on save. What am I doing wrong? |
| 05:51:04 | <aplainzetakind> | I mean it's as if I simply issued the cabal command by itself. |
| 05:51:38 | <sm> | ghcid -c 'cabal run' |
| 05:52:07 | <sm> | but really I think you mean ghcid -c 'cabal repl' |
| 05:52:14 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 05:52:41 | × | atwm quits (~atwm@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 256 seconds) |
| 05:53:04 | × | obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 05:53:27 | → | obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl) |
| 05:54:44 | → | fr33domlover joins (~fr33@2.53.150.205) |
| 05:55:19 | <aplainzetakind> | sm: Still not updating, as if a single run (with ghcid -c 'cabal repl') |
| 05:58:45 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 06:00:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:05:46 | × | pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…) |
| 06:06:17 | × | fr33domlover quits (~fr33@2.53.150.205) (Ping timeout: 256 seconds) |
| 06:06:42 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:07:34 | → | pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) |
| 06:07:42 | → | moet joins (~moet@mobile-166-170-42-127.mycingular.net) |
| 06:07:48 | → | puke joins (~puke@user/puke) |
| 06:09:35 | × | moet quits (~moet@mobile-166-170-42-127.mycingular.net) (Client Quit) |
| 06:10:36 | × | echoreply quits (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8) |
| 06:17:51 | <EvanR> | how does the AoC guy know to come up with puzzles that are fun for haskell |
| 06:19:17 | <jle`> | it's a conspiracy |
| 06:19:28 | → | chomwitt joins (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) |
| 06:20:05 | <opqdonut> | typically there are ones in the second half that aren't much fun in haskell |
| 06:20:17 | <opqdonut> | "simulate this slightly ill-specified register machine" |
| 06:20:21 | × | xff0x quits (~xff0x@2001:1a81:530d:ee00:3ffa:7a4c:8a0a:d168) (Ping timeout: 245 seconds) |
| 06:20:31 | <EvanR> | yeah I remember that |
| 06:20:51 | <opqdonut> | but in general they're purely computational puzzles that don't need maximum performance, so of course haskell is a good fit! |
| 06:21:28 | → | xff0x joins (~xff0x@2001:1a81:530d:ee00:3669:3c5b:65c3:3f53) |
| 06:21:50 | <EvanR> | how fast it runs will be a crucial tie breaker if you and the C guy press `enter' at the same time |
| 06:24:25 | × | pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…) |
| 06:28:52 | <dsal> | I've rarely found any that weren't fun in Haskell. |
| 06:29:17 | <dsal> | Just the ones that feel like labor. |
| 06:33:24 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 06:33:40 | → | vysn joins (~vysn@user/vysn) |
| 06:33:43 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 06:34:03 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 06:34:19 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 06:34:39 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 06:35:11 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 06:35:22 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 06:39:09 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 06:43:05 | × | xff0x quits (~xff0x@2001:1a81:530d:ee00:3669:3c5b:65c3:3f53) (Ping timeout: 252 seconds) |
| 06:43:39 | → | xff0x joins (~xff0x@2001:1a81:530d:ee00:fdea:9bb5:abe4:a159) |
| 06:45:48 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 06:46:27 | × | connrs quits (~connrs@user/connrs) (Ping timeout: 260 seconds) |
| 06:48:06 | <dmj`> | An AOC CLI tool would be nice ... automatic puzzle fetching, submission, stats |
| 06:50:43 | → | rkrishnan joins (~user@122.171.76.46) |
| 06:52:50 | → | bollu joins (uid233390@id-233390.helmsley.irccloud.com) |
| 06:53:11 | <iqubic> | @hackage aoc |
| 06:53:11 | <lambdabot> | https://hackage.haskell.org/package/aoc |
| 06:53:34 | <iqubic> | @hackage advent-of-code-api |
| 06:53:34 | <lambdabot> | https://hackage.haskell.org/package/advent-of-code-api |
| 06:53:47 | <iqubic> | That's a library made by jle` and it's excellent. |
| 06:54:30 | <iqubic> | jle`: Does that also have an executable too, or is it just a haskell library? |
| 06:55:06 | <dmj`> | jle` does write good code |
| 06:56:32 | <dmj`> | this explains how he's so fast too |
| 06:57:08 | <iqubic> | Yeah. I also use that library. It's good. |
| 06:58:09 | <iqubic> | > (zip <*> tail) [1..10] |
| 06:58:10 | <lambdabot> | [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10)] |
| 06:58:16 | <iqubic> | Why does that work!?!? |
| 07:02:46 | × | ubert quits (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:03:20 | <jle`> | iqubic: that's just the library :) my advent-of-code-dev repo on github has an executable for auto fetching and stuff but it's probably more of an example than something that works out of the box |
| 07:03:26 | <jle`> | iqubic: (f <*> g) x = f x (g x) |
| 07:04:06 | <iqubic> | Isn't that just S from the SKI combinators? |
| 07:04:49 | <iqubic> | And let me guess... pure is K? |
| 07:04:56 | → | ubert joins (~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) |
| 07:05:02 | <jle`> | it's been a while, but that does sound familiar :) |
| 07:05:06 | <iqubic> | :t pure |
| 07:05:07 | <lambdabot> | Applicative f => a -> f a |
| 07:05:28 | <iqubic> | https://en.wikipedia.org/wiki/SKI_combinator_calculus |
| 07:05:40 | <arahael> | Really happy with how I've started advent of code: Start with a bang, end with a whimper? (It's a LOT of typing for literate haskell!) https://github.com/arafangion/super-eureka/blob/main/app/Day1.md |
| 07:06:20 | <arahael> | Disclaimer: That's the *solution*. |
| 07:07:15 | <iqubic> | jle`: Wikipedia gives this: I x = x, K x y = x, S x y z = x z (y z), which, after some variable renaming shows that <*> is the same as S. |
| 07:07:45 | × | monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER) |
| 07:08:47 | <jle`> | iqubic: looks convincing to me :) |
| 07:09:43 | → | cyclosa joins (~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com) |
| 07:10:35 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 07:10:43 | <iqubic> | What exactly is pure for the Function/Reader applicative? |
| 07:13:56 | <c_wraith> | const |
| 07:14:04 | <c_wraith> | > pure 5 () |
| 07:14:06 | <lambdabot> | 5 |
| 07:14:23 | <jle`> | iqubic: there is actually only one implementation that typechecks |
| 07:14:51 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
| 07:16:26 | × | caubert quits (~caubert@136.244.111.235) (Quit: WeeChat 3.3) |
| 07:16:59 | <iqubic> | "pure :: a -> (b -> a)" is the type signature for pure, when specialized to functions. And clearly the only thing you can do there is to ignore the b and just return the a you have. Which is exactly what const does. |
| 07:18:26 | → | caubert joins (~caubert@136.244.111.235) |
| 07:18:42 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 07:23:42 | <arahael> | Anyone else doing advent of code using literate haskell? |
| 07:24:11 | → | hololeap joins (~hololeap@user/hololeap) |
| 07:25:46 | → | fr33domlover joins (~fr33@2.53.150.205) |
| 07:26:16 | <dmj`> | that's advanced |
| 07:27:39 | <arahael> | dmj`: Not really, it was surprisingly easy - the literate haskell bit. Ensuring it's *intelligent* is a separate matter! |
| 07:28:02 | → | monochrom joins (trebla@216.138.220.146) |
| 07:28:13 | <dmj`> | arahael: hmm, intelligent in what way? |
| 07:28:17 | <arahael> | The main thing that's awkward is that cabal requires the file extension to be either .hs, or .lhs, so since I need .md for... Uh... Literate reasons, I had to use symlinks. |
| 07:28:29 | <arahael> | dmj`: Intelligent in that it makes sense to the reader. |
| 07:28:52 | <dmj`> | arahael: ah, yea I don't use cabal files, just raw ghc |
| 07:29:06 | <arahael> | dmj`: That's even easier! |
| 07:29:10 | <dmj`> | might try to do AOC w/ just boot packages only |
| 07:29:20 | <dmj`> | ReadP FTW |
| 07:29:28 | <arahael> | dmj`: Go for it. :) |
| 07:30:27 | <dmj`> | the only thing I don't like is that chunksOf and split aren't in Data.List, so I always end up rewriting them |
| 07:31:10 | <dmj`> | just all maps, sets, lists, etc. |
| 07:31:32 | <arahael> | Yeah. I was surprised to discover that there isn't a windowing function already in the prelude. |
| 07:31:38 | <arahael> | (Am I wrong?) |
| 07:31:54 | <arahael> | I had to write my own implementation in my example above. |
| 07:32:46 | dmj` | looks |
| 07:34:09 | <dmj`> | arahael: nothing built-in, but you can use tails |
| 07:34:39 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 07:34:46 | <dmj`> | @def sliding n xs = take n <$> tails xs |
| 07:34:47 | <lambdabot> | Defined. |
| 07:35:00 | <dmj`> | > sliding 3 [1..5] |
| 07:35:03 | <lambdabot> | [[1,2,3],[2,3,4],[3,4,5],[4,5],[5],[]] |
| 07:35:10 | → | chele joins (~chele@user/chele) |
| 07:35:35 | <c_wraith> | I just used zipWith3 |
| 07:36:02 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 07:36:43 | <arahael> | Nice. |
| 07:39:11 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 07:39:13 | <dmj`> | c_wraith: that was smart |
| 07:39:46 | <dmj`> | > zipWith3 (\x y z -> sum [x,y,z]) [1..5] (tail [1..5]) (tail (tail [1..5])) |
| 07:39:48 | <lambdabot> | [6,9,12] |
| 07:40:09 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
| 07:40:16 | <dmj`> | c_wraith: would have been up a creek if the window size was 4 :) |
| 07:40:36 | <hololeap> | what function in System.FilePath can resolve ("/var/uploads/" </> "../uploads/thing") to "/var/uploads/thing" ? |
| 07:40:37 | <arahael> | That's teh thing with advent of code: It's *all* throwaway code, and you don't know the change that will happen in part 2. |
| 07:41:04 | <c_wraith> | nah, I can nest zipWith :) |
| 07:41:26 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:2b1a:1927:b5c5:1912) |
| 07:41:29 | <dmj`> | arahael: true |
| 07:41:39 | <arahael> | I think I prefer the take n <$> tails xs |
| 07:42:06 | × | alx741 quits (~alx741@181.196.69.153) (Ping timeout: 256 seconds) |
| 07:43:01 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 07:47:30 | <dmj`> | c_wraith: tricky :) |
| 07:48:04 | <hololeap> | % canonicalizePath ("/dev/" </> "..") |
| 07:48:04 | <yahb> | hololeap: "/dev/.." |
| 07:48:12 | <hololeap> | shouldn't this return "/" ? |
| 07:50:55 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:51:39 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 07:52:48 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 07:53:08 | <c_wraith> | hololeap: I'm willing to bet yahb runs in a jail that doesn't have /dev |
| 07:53:47 | → | kennyd joins (~bc8165b6@83.167.180.121) |
| 07:53:58 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 07:54:15 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 07:54:25 | <hololeap> | no, I think this is the actual reason: https://neilmitchell.blogspot.com/2015/10/filepaths-are-subtle-symlinks-are-hard.html |
| 07:54:52 | <c_wraith> | on my system, it does result in "/" |
| 07:54:59 | <hololeap> | wait, really? |
| 07:55:01 | → | alx741 joins (~alx741@181.196.69.156) |
| 07:55:40 | <hololeap> | oh, I guess it does on mine too |
| 07:55:50 | <c_wraith> | I think it's just the env yahb runs in |
| 07:56:38 | <c_wraith> | If I ask ghci to canonicalize a "/dev2/.." I get no change, as I have no /dev2 directory |
| 07:57:19 | × | cyclosa quits (~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com) (Quit: computer broke) |
| 07:57:22 | <kennyd> | it works even on windows, canonicalizePath ("/dev/" </> "..") => "C:\\" |
| 07:57:43 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 07:58:18 | <hololeap> | https://github.com/Happstack/happstack-server/blob/master/src/Happstack/Server/FileServe/BuildingBlocks.hs#L375-L394 |
| 07:58:29 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
| 07:59:27 | <hololeap> | I'm trying to submit a PR that does away with the system-filepath package, but I don't see any equivalent in the filepath or directory packages |
| 08:00:00 | <hololeap> | >>> combineSafe "/var/uploads/" "../uploads/home/../etc/passwd" |
| 08:00:08 | <hololeap> | Just "/var/uploads/etc/passwd" |
| 08:00:11 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
| 08:04:03 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:04:43 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 08:08:29 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:08:49 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 08:09:51 | → | img joins (~img@user/img) |
| 08:09:54 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 08:10:00 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 08:10:00 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 08:10:18 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 08:14:22 | → | ub joins (~Thunderbi@p200300ecdf0ba2be089e3f14725e8432.dip0.t-ipconnect.de) |
| 08:19:20 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
| 08:20:30 | → | nschoe joins (~quassel@2a01:e0a:8e:a190:8ef1:d1b1:96b4:f9df) |
| 08:21:02 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 08:25:13 | × | iqubic quits (~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59) (Remote host closed the connection) |
| 08:25:24 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 08:25:29 | → | neurocyte0132889 joins (~neurocyte@45.128.183.11) |
| 08:25:29 | × | neurocyte0132889 quits (~neurocyte@45.128.183.11) (Changing host) |
| 08:25:29 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 08:27:24 | × | aarchi quits (sid486183@id-486183.uxbridge.irccloud.com) (Excess Flood) |
| 08:27:27 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:27:33 | → | aarchi joins (sid486183@id-486183.uxbridge.irccloud.com) |
| 08:29:32 | → | iqubic joins (~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59) |
| 08:31:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:34:58 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 08:35:15 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 08:39:37 | × | kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 250 seconds) |
| 08:41:17 | × | chomwitt quits (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) (Quit: Leaving) |
| 08:43:47 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 08:44:05 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 08:45:44 | → | alzgh joins (~alzgh@user/alzgh) |
| 08:46:28 | → | Codaraxis_ joins (~Codaraxis@user/codaraxis) |
| 08:46:50 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 08:48:55 | × | Codaraxis quits (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
| 08:49:29 | → | michalz joins (~michalz@185.246.204.43) |
| 08:52:51 | → | kuribas joins (~user@188.188.219.184) |
| 08:52:56 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 08:54:24 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 08:56:49 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 08:57:07 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:00:30 | <dminuoso> | Is there any documentation for `cabal build --ghc-options`? Because I cant find any.. |
| 09:03:03 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:03:21 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:03:33 | → | jstolarek joins (~jstolarek@137.220.120.162) |
| 09:05:13 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:05:30 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:05:57 | → | acidjnk_new joins (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) |
| 09:06:05 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds) |
| 09:07:19 | aforemny_ | is now known as aforemny |
| 09:07:29 | × | nrl^ quits (~nrl@68.101.58.90) (Remote host closed the connection) |
| 09:09:23 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:09:29 | <merijn> | dminuoso: What kinda documentation would you expect? |
| 09:09:36 | <dminuoso> | Any? |
| 09:09:40 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:09:42 | <dminuoso> | It's not even listed in the man page |
| 09:09:44 | <merijn> | It just passes options directly to GHC |
| 09:09:48 | <dminuoso> | Well only under configure |
| 09:09:49 | <dminuoso> | Sure |
| 09:09:56 | <dminuoso> | Is it too much to ask for a man page regardless? |
| 09:10:01 | <merijn> | Probably :p |
| 09:10:03 | <dminuoso> | A note of it I mean |
| 09:10:05 | <dminuoso> | :p |
| 09:10:15 | <dminuoso> | The thing is |
| 09:10:26 | <dminuoso> | It allows for no discoverability of this option |
| 09:10:41 | <dminuoso> | You know it exists because someone told you. But I couldn't even find its existence based on the man page |
| 09:10:44 | <merijn> | I don't even know where the manpage is in the cabal repo, so I'm not sure anyone else does either, let alone update it :p |
| 09:10:50 | <dminuoso> | Unless I happened to have read this: |
| 09:10:52 | <dminuoso> | https://cabal.readthedocs.io/en/3.4/cabal-commands.html |
| 09:10:57 | <dminuoso> | Under `cabal v2-configure` |
| 09:11:01 | <dminuoso> | `cabal v2-configure FLAGS; cabal v2-build is roughly equivalent to cabal v2-build FLAGS` |
| 09:11:02 | <merijn> | dminuoso: I was about to say, the cabal docs :p |
| 09:11:05 | <dminuoso> | The thing is |
| 09:11:32 | <dminuoso> | Its just highly annoying that you need to read another commands (v2-configure, it's even called v2 mind you!) documentation to know about build. |
| 09:11:50 | <dminuoso> | Sort of suggesting "read the entire docs from top to bottom before you ask" |
| 09:12:41 | × | kuribas quits (~user@188.188.219.184) (Ping timeout: 252 seconds) |
| 09:14:21 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:14:39 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:15:45 | <merijn> | dminuoso: Complain to Hecate and her docs improvement iniative? :p |
| 09:16:46 | <dminuoso> | I guess I should just fix it myself rather than complain |
| 09:16:53 | <merijn> | Hecate just became cabal core contributor too, so... :p |
| 09:16:54 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
| 09:16:55 | <Hecate> | 'sup |
| 09:17:04 | <merijn> | Hecate: Throwing you under the bus :p |
| 09:17:12 | <Hecate> | sure that's the point :) |
| 09:17:35 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 09:19:23 | → | dsrt^ joins (~dsrt@68.101.58.90) |
| 09:20:30 | <dminuoso> | But yeah, cabal-install documentation has some pretty bad parts. |
| 09:20:56 | <Hecate> | yes |
| 09:21:21 | <Hecate> | Gil Mizrahi is working on improving this |
| 09:21:47 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:22:36 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:24:07 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 09:27:25 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:27:43 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:29:23 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:29:41 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:31:23 | <arahael> | dminuoso: Imagine my difficulty finding out how to disable colour output in cabal build. |
| 09:33:39 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:33:58 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:34:47 | × | mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal) |
| 09:35:00 | <Hecate> | arahael: NO_COLOR doesn't work? |
| 09:36:13 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 09:36:28 | <arahael> | Hecate: 1) I didn't actually test that, and 2) Where's that documented? |
| 09:40:27 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 09:40:42 | <Hecate> | hmm, nowhere |
| 09:40:45 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 09:40:47 | <Hecate> | it doesn't work. |
| 09:40:53 | <Hecate> | but it will have to |
| 09:41:03 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 09:41:58 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 09:43:21 | <merijn> | Only 45 people on the Haskell leaderboard for AoC |
| 09:43:25 | <merijn> | come on, slackers :p |
| 09:44:50 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 09:45:53 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:46:52 | → | kmein joins (~weechat@user/kmein) |
| 09:47:08 | <mniip> | slackers indeed |
| 09:48:43 | <[exa]> | people don't use awk for this? |
| 09:48:57 | <merijn> | I mean, you can use whatever :p |
| 09:49:12 | <merijn> | I use over-engineered Haskell :p |
| 09:50:53 | <merijn> | My personal rule is to try and keep my code (mostly?) readable to Haskell beginners and (more importantly) no unhandled errors |
| 09:51:15 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
| 09:51:32 | <Hecate> | arahael: what did you use for no colours in cabal, btw? |
| 09:51:40 | <Hecate> | I'm gonna implement NO_COLOR |
| 09:52:16 | <arahael> | Hecate: I ended up using --ghc-options=-fdiagnostics-color=never but there are other bugs preventing that from working - and it didn't fix my ultimate issue where Shake, which calls cabal, has an "fd:7: hGetContents: invalid argument (invalid byte sequence)" as a result. |
| 09:52:45 | <arahael> | Hecate: Or rather, it works, but you have to recompile basically everything, and still has that result. |
| 09:53:23 | <arahael> | I should find out what byte sequence it's complaining about, but not today - rather drained from everything else. *sigh*. Video conferences.... |
| 09:53:28 | <Square> | if i have a polymorphic function with proper signature and all. Create local version of it (providing some, but not all, arguments) it sort loses its polymorphic status and get type infered to first application. Ie. myFknWSomeParams = myFkn x y. Can invoke "myFkn x y moreArgs" but not "myFknWSomeParams moreArgs" |
| 09:53:35 | <merijn> | arahael: tbh, invalid byte sequence is often "you f-ed up your locale" :p |
| 09:53:49 | <arahael> | merijn: Yep, it's f'ing UTF-8. :) |
| 09:53:51 | → | nek0 joins (~nek0@nek0.eu) |
| 09:53:57 | <merijn> | arahael: Which OS? |
| 09:54:02 | <arahael> | merijn: macOS. |
| 09:54:14 | <merijn> | What's the output of "locale" in your shell? |
| 09:54:39 | <arahael> | merijn: Except for LC_ALL, which is unset, it's all en_AU.UTF-8. |
| 09:55:33 | <merijn> | arahael: Mine is: https://paste.tomsmeding.com/deHyKqgk |
| 09:55:52 | <merijn> | arahael: And I recall having issues on macOS (years ago) before fixing my environment to set a proper locale |
| 09:56:34 | <arahael> | merijn: Hmm, let me try setting the LANG and LC_ALL explicitly to those, as well - that's the only thing that's different. |
| 09:57:00 | <arahael> | merijn: Doing a rebuild... |
| 09:57:41 | → | xkuru joins (~xkuru@user/xkuru) |
| 09:57:57 | <zincy> | I am doing state machine testing in hedgehog for a card game, should I use my existing player action validation function to help generate state machine actions or does this defeat the point? |
| 09:58:05 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 09:58:21 | <[exa]> | merijn: where's the haskell leaderboard tho? |
| 09:58:33 | <merijn> | [exa]: See topic |
| 09:58:47 | <[exa]> | aaaaaay |
| 09:58:49 | <[exa]> | thanks |
| 09:59:26 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds) |
| 10:00:11 | <arahael> | Oh, wow, quite a few peole on that leaderboard, has it been shared outside the IRC? |
| 10:00:26 | <merijn> | arahael: It's been the same for the past 2 years |
| 10:00:44 | <arahael> | I just put myself on it :D |
| 10:01:00 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:01:48 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 10:04:11 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:04:32 | <[exa]> | will I get banned if I did the first aoc in R? |
| 10:04:45 | <merijn> | :O |
| 10:04:47 | <merijn> | Heresy |
| 10:04:56 | → | hololeap joins (~hololeap@user/hololeap) |
| 10:05:24 | <nek0> | Hi folks, I'm having a problem using exceptions, with which I am not very familiar with. The issue I have is, that a call of "fromException" returns "Nothing" instead of "Just WhateverException". Reproducing this issue in GHCI has been unsuccessful so far... |
| 10:05:29 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 10:05:37 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 10:05:46 | <arahael> | [exa]: I did one of mine last year (or was it 2019?), in QuickBASIC. |
| 10:05:59 | <[exa]> | nek0: there are many types of exceptions so you might be catching the wrong one. Can we have a code sample? |
| 10:06:25 | <[exa]> | arahael: now that's a honorable adventure |
| 10:06:25 | <merijn> | Yeah, ENOTENOUGHINFO |
| 10:06:48 | <arahael> | merijn: E_NOTENOUGHINFO. |
| 10:07:02 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:07:04 | <[exa]> | pls negate your error returns |
| 10:07:07 | <merijn> | arahael: No underscores in E codes :p |
| 10:07:12 | <Unhammer> | Hi, http://sprunge.us/3rIlhp?haskell is there some smart way to check that roundtripping works in both directions for sumtypes that can't be enum/bounded? |
| 10:07:12 | <arahael> | Finally, my build completed. Now to do a re-build, with my set locale. |
| 10:07:17 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:07:20 | <arahael> | merijn: Oh? I thought they often did! |
| 10:07:31 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:07:52 | → | mvk joins (~mvk@2607:fea8:5cc1:fa00::4702) |
| 10:08:04 | <merijn> | Unhammer: 1 list of tuples and then build two maps (one in each direction) |
| 10:08:08 | <Unhammer> | for all ints, I know fromStatus(toStatus n)==n, can even quickcheck that, but I can't check the other way around toStatus(fromStatus s)==s without being able to generate all possible statuses |
| 10:08:29 | <arahael> | merijn: https://gist.github.com/arafangion/632f5072d56afed633e3f77d9ec44d11 |
| 10:08:38 | <Unhammer> | merijn, but how do I know my map is complete? |
| 10:08:42 | <arahael> | merijn: I don't think it's the locale. |
| 10:08:47 | <nek0> | [exa]: I tried to build a minimal working error, but it failed at failing... |
| 10:09:03 | <merijn> | Unhammer: Same idea, but special case the other constructor :p |
| 10:09:24 | <Unhammer> | I don't quite understand |
| 10:09:37 | <merijn> | use my approach for the bounded constructor part |
| 10:09:39 | <[exa]> | nek0: oh noes. |
| 10:09:51 | <merijn> | Then write a wrapper function around those dictionaries handling the unbounded Other part |
| 10:10:16 | <[exa]> | nek0: so at least snippets of the original code? |
| 10:12:33 | <arahael> | merijn: When I find time (and energy), I intend to make my buidl system call 'cabal build' in _binary_ mode, such that it uses ByteStrings instead, I'll then be able to look at what the particular sequence is that it's choking on. |
| 10:12:37 | <hololeap> | Unhammer: you could also move the Other constructor to it's own type so you can derive Enum/Bounded, then have your round trip between (Either OtherStatus Status <-> Int) |
| 10:14:08 | <Unhammer> | merijn, list of pairs just means I make it a runtime error, doesn't it? http://sprunge.us/tNc1gA?haskell |
| 10:14:23 | <Unhammer> | hololeap, yeah thought of that, except it complicates the use of the type :/ |
| 10:16:09 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 10:16:28 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 10:16:29 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:16:42 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:16:54 | <lortabac> | Unhammer: I think you should be able to enumerate the constructors with Data |
| 10:16:58 | <merijn> | Unhammer: Just wrap hololeap's approach with pattern synonyms |
| 10:17:08 | <merijn> | Then you can use your current syntax with his suggest type |
| 10:17:31 | × | juhp quits (~juhp@128.106.188.82) (Quit: juhp) |
| 10:17:47 | <lortabac> | otherwise you can make an Arbitrary instance with generic-random |
| 10:18:47 | <Franciman> | at last it happened, haskell interpreter overperformed |
| 10:18:57 | <Franciman> | ggwp to the haskell garbage collector |
| 10:19:00 | <Franciman> | it was hard to overperform it |
| 10:19:28 | <merijn> | What do you mean by that? |
| 10:19:30 | <Franciman> | precise memory management and high level programming. Choose two |
| 10:19:38 | <Unhammer> | ok. Was hoping there was some uncomplicated solution that I just can't see but I guess I hit a hard problem. |
| 10:20:58 | <lortabac> | Unhammer: to be honest nothing beats code reviews for these problems |
| 10:22:11 | <Unhammer> | that would be a nice world to live in |
| 10:22:11 | <lortabac> | Unhammer: we have several data-types like that at work, and have never had a bug due to missing some integers |
| 10:22:31 | <Franciman> | merijn: I was doing some tests against haskell's memory management system. I wrote a lambda calculus interpreter in haskell. And now an interpreter in zig where I can fully manage memory layout |
| 10:22:33 | <Franciman> | easily |
| 10:23:04 | <Franciman> | haskell manages to keep the amount of cache refs high, while keeping cache misses very low |
| 10:23:14 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 10:23:15 | → | fef joins (~thedawn@user/thedawn) |
| 10:24:05 | × | Jing_ quits (~hedgehog@2604:a840:3::1061) (Remote host closed the connection) |
| 10:24:42 | → | Jing joins (~hedgehog@115.207.46.97) |
| 10:25:49 | <Franciman> | in zig I get like 70% cache misses lol |
| 10:25:54 | <Franciman> | but it is still faster |
| 10:26:39 | <Franciman> | haskell also has an higher throughput |
| 10:26:47 | <Franciman> | it performs a lot more instructions, in less time |
| 10:26:50 | <Franciman> | but that's not enough |
| 10:26:59 | <Franciman> | it performs too much |
| 10:27:06 | <arahael> | Too much? |
| 10:27:42 | <Franciman> | yes it has to do too many operations, that's why in the end it is slower |
| 10:27:47 | <merijn> | Franciman: Ah, I know why that is |
| 10:27:49 | <Franciman> | I hyperoptimized the zig version |
| 10:28:00 | <Franciman> | oh curious to hear |
| 10:28:09 | <merijn> | Franciman: GHC is using a copy&collect GC, which means that if you have a small liveset it's very likely to all be in cache |
| 10:28:19 | <merijn> | Franciman: Because it all gets copied into a dense memory region |
| 10:28:25 | <Franciman> | nice |
| 10:28:52 | <Franciman> | the GHC does a really good job |
| 10:28:54 | <Franciman> | GC* |
| 10:29:06 | <merijn> | Franciman: Basically, the way GHC's GC works is: Create a new heap. Copy all alive data to new heap. Throw away old heap |
| 10:29:19 | <merijn> | Franciman: This has several advantages (and disadvantages) |
| 10:29:36 | <merijn> | Due to Haskell being lazy there are *a lot* of allocations and *a lot* of garbage |
| 10:29:45 | <Franciman> | yep, that's why it's impressive |
| 10:30:02 | <merijn> | Since our heap is always a dense blob, your allocator is just a pointer to the end of the heap and allocating is literally "increment a pointer and check overflow" |
| 10:30:09 | <merijn> | You can't build a faster allocator than that |
| 10:30:31 | <Franciman> | but my zig allocator is the same |
| 10:30:34 | <merijn> | And because we copy *live* data only, the GC time scales with the amount of *live* data, not garbage |
| 10:30:37 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
| 10:30:50 | <Franciman> | by live you mean reachable data? |
| 10:30:55 | <Franciman> | or something about generations too? |
| 10:30:58 | <merijn> | The downside is that if you have a large live set (see the pusher blog posts from a few years ago) you copy a lot |
| 10:31:18 | <merijn> | Franciman: I meant reachable yeah. There's also generational collection, but then things get messier to explain :p |
| 10:31:28 | <Franciman> | okok nvm the generational |
| 10:32:01 | <merijn> | Franciman: basically there's a nursery (where new allocations happen) and if they survive 1 GC, they go into the older generation (which is GCed less frequently), iirc |
| 10:32:28 | <merijn> | Franciman: But yeah, if you have 2GB reachable data, you end up copying 2 GB every GC, which can kill you (although compact regions can help reduce/eliminate that) |
| 10:32:49 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection) |
| 10:33:00 | <Franciman> | my test case is summing the first 10M numbers, with a recursive function |
| 10:33:02 | <Franciman> | :P |
| 10:33:10 | <Franciman> | so it allocates quite a bit, but they are all small values |
| 10:33:18 | <Franciman> | also in haskell recursion is basically cheap |
| 10:33:20 | <merijn> | yeah, that's gonna have a tiny live set (only a handful of numbers) |
| 10:33:39 | <merijn> | Franciman: You might wanna run your haskell code with "+RTS -sstderr" if you wanna see GC info |
| 10:34:06 | <Franciman> | thanks. merijn my problem is that I can't figure out in any way how to improve the timing |
| 10:34:11 | <Franciman> | of the haskell version |
| 10:34:28 | × | bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:34:51 | <Franciman> | if the GC is so effettive, it must be somewhere that I have to improve. I bet on the GC |
| 10:35:00 | <Franciman> | in fact my zig version does arena allocation |
| 10:35:07 | × | hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer) |
| 10:35:14 | <Franciman> | I request a page of memory from the OS, and allocate without ever deallocating anything |
| 10:35:23 | <Franciman> | so it does 0 memory management |
| 10:36:11 | → | _bo joins (~bo@217.18.216.247) |
| 10:36:16 | <arahael> | Franciman: Generally you can't achieve the best general case GC. |
| 10:36:23 | → | hololeap joins (~hololeap@user/hololeap) |
| 10:36:26 | <arahael> | Franciman: You have to optimise it for a very particular use case. |
| 10:36:46 | <Franciman> | hmm I see, so for writing a programming language it's not a particularly good idea |
| 10:37:02 | <merijn> | There is no best GC, no |
| 10:37:07 | <merijn> | GC design is 100% trade offs |
| 10:37:13 | <Franciman> | because I want the internal memory of the interpreter to be managed differently from the language GC |
| 10:37:19 | <arahael> | Franciman: There is a *ton* of papers about GC's, some quite good ones out tehre. |
| 10:37:31 | <merijn> | GHC's GC is optimised for lots of garbage and high throughput (small percentage of GC time compared to compute) |
| 10:37:37 | <Franciman> | yes I understand |
| 10:37:50 | <Franciman> | basically my problem was: let me see if memory management affects my interpreter, but it doesn't lol |
| 10:37:51 | <merijn> | It is not good for large live sets or for low latency (i.e. minimising the longest possible GC pause) |
| 10:38:12 | <Franciman> | so I can't get any more speed out of it |
| 10:38:15 | <Franciman> | yes I understand it |
| 10:38:51 | <Hecate> | arahael: can you tell me if setting LC_ALL has fixed your issues? |
| 10:39:04 | <arahael> | Hecate: It did not. |
| 10:39:08 | <Franciman> | well ty all |
| 10:39:28 | <Franciman> | back to humiliating my haskell interpreter to hope and find out something about its performances |
| 10:39:40 | <Hecate> | arahael: ok thanks :) |
| 10:40:04 | <arahael> | Hecate: No worries :) |
| 10:42:26 | <sm> | Franciman, have you tried profiling yet ? |
| 10:42:33 | <Franciman> | I did |
| 10:43:28 | <sm> | sounds like you're finding out lots |
| 10:44:47 | <Hecate> | arahael: what's your GH username? |
| 10:45:42 | <Franciman> | sm: I got some numbers out, but can't quite make sense of them |
| 10:45:51 | <arahael> | Hecate: arafangion |
| 10:46:03 | <Franciman> | I mean the most used functions are of course what make the most of the time spent |
| 10:46:03 | <arahael> | Hecate: most of my repos are private, though. |
| 10:46:11 | <Franciman> | but I can't optimize them more than I do now |
| 10:46:11 | × | theproffesor quits (~theproffe@user/theproffesor) (Ping timeout: 245 seconds) |
| 10:46:38 | <merijn> | Franciman: Have you tried playing with speedscope? |
| 10:46:42 | <merijn> | https://www.speedscope.app/ |
| 10:46:55 | <Franciman> | I didn't know about it, so many thanks |
| 10:46:57 | <merijn> | See also https://mpickering.github.io/posts/2019-11-07-hs-speedscope.html |
| 10:48:17 | → | theproffesor joins (~theproffe@user/theproffesor) |
| 10:49:57 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 10:50:14 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 10:50:18 | <Hecate> | arahael: yeah I just ping'd you on the ticket |
| 10:51:02 | → | cuz joins (~user@50.235.10.194) |
| 10:51:12 | <Franciman> | ty and nice font |
| 10:51:16 | × | curiousgay quits (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
| 10:51:26 | <arahael> | Hecate: Ah, very nice! I also want it on 'cabal build' as well, not just cabal install. |
| 10:51:49 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 10:52:16 | <arahael> | Hecate: I also use --ghc-options=-fdiagnostics-color=never which was suggested by someone else here, and it does disable colour for the most part, but still causes an invalid byte order for some reason. |
| 10:54:35 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 10:54:42 | <arahael> | Hecate: Other, possibly related links, which were also given to me in this channel are: https://gitlab.haskell.org/ghc/ghc/-/issues/13718 |
| 10:54:53 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 10:55:21 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 10:56:02 | → | juhp joins (~juhp@128.106.188.82) |
| 10:56:03 | <Hecate> | hmm, not *that* related in the end |
| 10:58:02 | × | ouro_boros quits (~ouroboros@2804:14c:65e4:93f6:a589:7295:b475:5b03) (Ping timeout: 268 seconds) |
| 10:58:59 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:00:05 | → | __monty__ joins (~toonn@user/toonn) |
| 11:00:36 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 11:02:11 | → | DNH joins (~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41) |
| 11:02:15 | × | DNH quits (~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41) (Client Quit) |
| 11:04:17 | → | Farzad joins (~FarzadBek@37.98.106.66) |
| 11:06:01 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 11:06:18 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 11:08:11 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 11:08:29 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 11:09:13 | × | kennyd quits (~bc8165b6@83.167.180.121) (Quit: CGI:IRC (Ping timeout)) |
| 11:09:19 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:09:42 | → | kennyd joins (~bc8165b6@cerf.good1.com) |
| 11:12:00 | <sm> | Franciman: I guess next level down would be inspecting the core, there have been some how-tos on that |
| 11:14:57 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 11:15:14 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 11:16:54 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 11:17:12 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 11:18:52 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 11:19:10 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 11:20:50 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 11:21:08 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 11:22:24 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:23:32 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 11:23:41 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 11:24:39 | → | terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de) |
| 11:24:51 | → | mmhat joins (~mmh@55d4c042.access.ecotel.net) |
| 11:27:07 | × | kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Error)) |
| 11:27:20 | → | Lycurgus joins (~juan@98.4.112.204) |
| 11:27:59 | → | kennyd joins (~bc8165b6@83.167.180.121) |
| 11:28:49 | × | kennyd quits (~bc8165b6@83.167.180.121) (Client Quit) |
| 11:29:38 | → | kennyd joins (~bc8165b6@cerf.good1.com) |
| 11:29:47 | → | Guest42 joins (~Guest42@50.39.205.155) |
| 11:32:42 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:33:15 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 11:33:43 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 11:34:26 | × | jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:36:08 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
| 11:37:32 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 11:38:59 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds) |
| 11:41:09 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 11:41:27 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 11:42:17 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 11:44:38 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 11:45:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:46:21 | × | cuz quits (~user@50.235.10.194) (Ping timeout: 256 seconds) |
| 11:51:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 11:51:23 | × | Guest42 quits (~Guest42@50.39.205.155) (Quit: Client closed) |
| 11:54:21 | <geekosaur> | arahael, have you tried LANG=C? ghc uses various Unicode characters in its errors even without color sequences |
| 11:56:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:57:50 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 11:59:48 | <yin> | @pl if x then a else b |
| 11:59:48 | <lambdabot> | if' x a b |
| 12:00:05 | <yin> | where is lambdabt getting this if' from? |
| 12:00:27 | <kennyd> | @hoogle if' |
| 12:00:28 | <lambdabot> | Data.Bool.HT if' :: Bool -> a -> a -> a |
| 12:00:28 | <lambdabot> | Control.Conditional if' :: ToBool bool => bool -> a -> a -> a |
| 12:00:28 | <lambdabot> | GHC.SourceGen.Expr if' :: HsExpr' -> HsExpr' -> HsExpr' -> HsExpr' |
| 12:01:16 | <yin> | eh. i did that and got nothing |
| 12:01:45 | <geekosaur> | it's just invented |
| 12:02:12 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 12:02:13 | <geekosaur> | since the @pl plugin was last updated we got bool, which is what it really should be using these days |
| 12:02:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:02:41 | <kennyd> | I kind of dislike the name, and reversed arguments |
| 12:02:45 | <kennyd> | (of bool) |
| 12:03:00 | <geekosaur> | the arguments match maybe and either |
| 12:03:25 | <yin> | what does HT stand for? |
| 12:03:57 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 12:04:15 | <arahael> | geekosaur: nope but i have gone to bed, will try to remember tomorrow! |
| 12:04:17 | <kennyd> | geekosaur. right. but if I'm using such a function I'm more likely to think in terms of if-then-else than maybe or either |
| 12:04:49 | <byorgey> | yin: I believe it stands for Henning Thielemann |
| 12:04:56 | <byorgey> | https://hackage.haskell.org/package/utility-ht-0.0.16 |
| 12:05:05 | <yin> | kennyd: haskell having if...then...else is the original sin |
| 12:05:25 | <kennyd> | though bool might be nicer when partially implying it in some cases. so maybe there's place for both if' and bool |
| 12:05:33 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 12:05:39 | <byorgey> | kennyd: I use partially applied bool on a regular basis |
| 12:05:40 | <kennyd> | partially applying :P |
| 12:07:43 | <yin> | byorgey: thanks |
| 12:09:49 | → | narendra joins (~user@2a02:8109:b63f:ff7c::56c2) |
| 12:11:41 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 12:12:51 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 12:13:12 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 12:15:22 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 12:18:58 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 12:21:56 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 12:22:04 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:22:13 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 12:25:13 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 12:28:09 | → | arjun joins (~user@user/arjun) |
| 12:28:46 | <arjun> | soo, just got around reading the 3 layered haskell cake post from here (https://www.parsonsmatt.org/2018/03/22/three_layer_haskell_cake.html) |
| 12:29:13 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 12:29:21 | <arjun> | what do people think of it ? |
| 12:32:12 | <dminuoso> | Every time you have someone offer you a silver bullet on program design, reject it. |
| 12:33:26 | <dminuoso> | I've seen this particular blog post many times, and I dislike every bit of it. I think what this is, is a representation on how the author - at that time in the past - used to structure their programs. |
| 12:33:56 | <[exa]> | arjun: reminds me some of the more traditional OOP guidelines |
| 12:34:31 | <arjun> | it does, doesn't it |
| 12:35:10 | <arjun> | dminuoso: sure, i've seen this post several times, finally got around to reading it |
| 12:35:19 | <[exa]> | would be nice if it was published as "how and why we have our internal guidelines as such", but trying to apply this universally is a monstrous mistake |
| 12:35:55 | <arjun> | every place/one has/have their own tbh |
| 12:36:07 | <[exa]> | or perhaps if there was a tools ecosystem that benefited from having the internals similar |
| 12:36:12 | <[exa]> | yeah |
| 12:36:38 | <arjun> | i was just wondering if this is a popular approach, since the blog post is popular and thus amplified |
| 12:36:53 | <dminuoso> | Not given what I see around |
| 12:36:59 | <dminuoso> | Some bits of it, yes. |
| 12:37:05 | <dminuoso> | But the overall structure, no. |
| 12:38:16 | <arjun> | i liked the readerT pattern post (linked atop this post) from fpcomplete much better |
| 12:38:25 | <dminuoso> | For instance, for many of my executables I usually maintain some `newtype AppM a = AppM { runAppM :: ReaderT Env (LoggingT IO) a }` |
| 12:38:41 | <dminuoso> | So I avoid transformers that are not isomorphic to ReaderT |
| 12:39:09 | <dminuoso> | This I do because I want to be able to unlift IO actions without worrying about interactions between state and exceptions |
| 12:39:41 | <[exa]> | arjun: you can kinda see that the post degenerates to something like database-ish transactions & data stream handling specifics later... For that usecase I'd probably think about similar structure |
| 12:39:52 | <arjun> | i didn't get the last part dminuoso |
| 12:40:08 | <maerwald> | I somehow always disliked 'App' transformers, but I don't know why |
| 12:40:37 | <arjun> | \o |
| 12:40:49 | <dminuoso> | arjun: Imagine you have a `StateT IO Int` and you want to have bracket for that |
| 12:40:53 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) |
| 12:41:03 | <dminuoso> | Or `catch` |
| 12:42:23 | <dminuoso> | Do you want state in an exception handler to be preserved? |
| 12:42:34 | <maerwald> | hm, I think I've never seen StateT or MonadState as part of the general application architecture... people either use IORefs/TVars/etc in their ReaderT env or use StateT only locally |
| 12:43:02 | <dminuoso> | maerwald: servant forces it onto you in handlers unless you hoist yourself out of it |
| 12:43:47 | <dminuoso> | So far Ive seen more global StateT than IORefs in a ReaderT environment, sadly |
| 12:44:03 | <arjun> | maerwald: i think state isn't cool with concurrent stuff either (race / non-determinism) |
| 12:44:25 | <dminuoso> | arjun: Its perfectly cool, we have STM to deal with that. |
| 12:44:45 | <dminuoso> | Of course this is yet another reason why StateT is lacking, since you cant do concurrency with it |
| 12:44:47 | → | pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) |
| 12:45:43 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds) |
| 12:46:33 | <arjun> | dminuoso: that's why we use IORefs/TVars instead of StateT ? |
| 12:47:01 | <dminuoso> | Like I said, I use it because I find it way simpler to reason about in the presence of exceptions |
| 12:47:36 | <arjun> | i see |
| 12:47:39 | <dminuoso> | It's a coping technique because I'm not a genius. |
| 12:47:54 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) |
| 12:48:38 | <maerwald> | IOHK since has shifted to freer-simple I think (in some parts of their stack)... which, amusingly, still has the same issues as any mocking: equivalence |
| 12:49:40 | <arjun> | that's an effect system, right maerwald? something like polysemy ? |
| 12:50:19 | <maerwald> | other parts use a configuration context (passed inte the reader env I hink) that defines functions |
| 12:50:31 | <maerwald> | so I'm not sure that three-layer cake is used anywhere there anymore |
| 12:50:54 | <maerwald> | arjun: yeah |
| 12:52:12 | <dminuoso> | arjun: And regarding tagless final. First this creates a hefty optimization barrier, if you employ this widely in your program, chances are you will miss a lot of inlining opportunities. |
| 12:52:32 | <dminuoso> | This is because writing typeclass polymorphic code ends up being represented as a function taking a dictionary |
| 12:52:55 | <maerwald> | I think using custom classes instead of explicit dictionaries is unpopular |
| 12:53:01 | <dminuoso> | So doing this out of a basic rudimentary design principle seems to be flawed in that you're tieng your compilers hands from the beginning. |
| 12:53:33 | → | Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) |
| 12:53:40 | <merijn> | dminuoso: I like tagless final for specific logic bits, but a specific stack for the majority of actual program code |
| 12:53:58 | <arjun> | hang on, let me google what this tagless final thingy is |
| 12:53:59 | <maerwald> | e.g. https://git.io/JMwdD |
| 12:54:04 | <arjun> | sounds like bad news : P |
| 12:54:20 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 252 seconds) |
| 12:54:41 | <merijn> | arjun: Basically "mtl style classes, but not the ones from mtl, because they're bad" |
| 12:55:03 | <maerwald> | isn't that just only one interpretation of tagless final? |
| 12:55:26 | <merijn> | What other interpretations exist? |
| 12:55:39 | <maerwald> | I don't remember... it was discussed here once, I probably won't find it |
| 12:55:59 | × | fr33domlover quits (~fr33@2.53.150.205) (Ping timeout: 252 seconds) |
| 12:56:13 | <dminuoso> | maerwald: I think you were missing a single word in that sentence somewhere. |
| 12:56:22 | <dminuoso> | Either a `dont` in the first half or a `not` in the second |
| 12:56:36 | <dminuoso> | Ops sorry. I meant merijn |
| 12:56:59 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection) |
| 12:57:07 | <merijn> | dminuoso: No? |
| 12:57:37 | <dminuoso> | You like tagless final for specific logic bits, *but* a specific stack for the majority of actual program code? |
| 12:57:44 | <dminuoso> | Im not sure how to understand that sentence then |
| 12:57:44 | <merijn> | yes |
| 12:58:09 | <merijn> | dminuoso: i.e. most of the program logic *isn't* typeclass polymorphic, avoiding the lack of inlining problem you mentioned |
| 12:58:32 | <dminuoso> | Ah. |
| 12:58:36 | <merijn> | dminuoso: But I tend to have 3-4 different stacks (command line UI, batch job, etc.) |
| 12:58:52 | → | Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) |
| 12:58:57 | <merijn> | dminuoso: And tagless final for *specific* tasks (logging, database accesses, etc.) means I can reuse those in all 3-4 stacks |
| 12:59:36 | <dminuoso> | Right |
| 13:00:02 | <dminuoso> | So if you do this out of code sharing, that's a very different mindset than what the three-layer cake envisions. |
| 13:00:07 | <dminuoso> | Which is mostly about mockability/testability |
| 13:00:16 | <merijn> | I don't believe in mockability, tbh |
| 13:00:20 | <dminuoso> | Yup, neither do I. |
| 13:00:32 | <tomsmeding> | maerwald: talking about this thing? https://www.foxhound.systems/blog/final-tagless/ |
| 13:00:41 | <dminuoso> | Because now you have to guarantee that your mock behaves the same way |
| 13:00:42 | <merijn> | Mocks are a copout because you're either bad at engineering, bad at testing, or both |
| 13:00:43 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 13:00:52 | <dminuoso> | There's certainly some types where you must mock for some reason or another. |
| 13:01:06 | <dminuoso> | We had to mock an external API that was out of our control without access to a test API once |
| 13:01:42 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 13:02:34 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 13:02:38 | → | xkuru joins (~xkuru@user/xkuru) |
| 13:03:36 | <maerwald> | merijn: I think mocking is fine to test the logic that has little to do with the mocked stuff... but many times people use it in other ways |
| 13:03:53 | <maerwald> | then you'll end up constantly trying to figure out why your tests pass, but the real application fails |
| 13:06:06 | <dminuoso> | Plus, if all you did was to test business logic, perhaps keeping it separate and running a unit test would be better? |
| 13:06:39 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 13:06:48 | <kuribas> | Square: yes, put it in a let. |
| 13:07:00 | <kuribas> | let poly2 = poly1 "someArg" |
| 13:07:30 | <maerwald> | tomsmeding: yeah, the more I read about tagless final, the less I understand what they want from me, so I largely just ignore it |
| 13:07:43 | <kuribas> | Square: unless you have MonoLocalBinds. |
| 13:07:52 | <kuribas> | Square: in that case, give an explicit type signature. |
| 13:09:32 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 13:09:50 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 13:10:52 | <kuribas> | Square: "where" should work also |
| 13:11:21 | <Square> | kuribas, hmm. I seem to have no luck with that. |
| 13:11:33 | <kuribas> | Square: paste some code? |
| 13:11:47 | <Square> | ok, give me minute |
| 13:12:01 | <kuribas> | If you are using rank-n or other extensions, you may need an explicit signature. |
| 13:12:07 | <arjun> | merijn: this really does look like mtl but not mtl (https://dev.to/piq9117/haskell-look-ma-no-concrete-implementation-32p8) |
| 13:12:20 | <kuribas> | I believe GADTs enables monoLocalBinds. |
| 13:12:57 | <merijn> | arjun: That's because mtl are tagless final, it's just that abstraction level of mtl is bad |
| 13:13:46 | <arjun> | dminuoso: so if i understood about the inlining stuff, it's to do with writing typeclass polymorphic functions/code and not getting faster optimized code? |
| 13:14:38 | <arjun> | also, what are the alternatives so that we CAN get the compiler love AND write general code ? |
| 13:15:07 | <arjun> | merijn: i see |
| 13:15:26 | <merijn> | arjun: I the compiler knows the *exact* type (i.e. not typeclass polymorphic) it can just inline the implementation of the relevant class, instead of keeping the typeclass indirection |
| 13:16:03 | <arjun> | merijn: you mean *if* ? |
| 13:16:09 | <merijn> | eh, yeah |
| 13:16:11 | <dminuoso> | arjun: Something like `f :: Num t => t; f = 5` is internally not implemented as an actual value, but a function that takes a dictionary of Num, and then returns a value., |
| 13:16:29 | <dminuoso> | arjun: Note how you have this sort of "function" indirection? |
| 13:16:50 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection) |
| 13:16:53 | <dminuoso> | Without knowing the dictionary choice/the type of t beforehand, we cannot inline its definition |
| 13:17:16 | <dminuoso> | its sort of how you cant inline the body of `\x -> x + 1` without having the argument to that function |
| 13:17:32 | <arjun> | dictionary of Num? |
| 13:17:35 | <Square> | kuribas, i feel theres too much context involved to produce a readable example in a short while when I *really* should focus on my job. Ill play with it and might ask again at later time. |
| 13:17:39 | <arjun> | what shape does that look like? |
| 13:17:45 | <dminuoso> | A record of values/functions |
| 13:17:53 | <arjun> | ah, i see |
| 13:18:10 | <arjun> | something like dynamic method dispatch in OO polymorphism |
| 13:18:14 | <dminuoso> | Yes, exactly |
| 13:18:34 | <arjun> | i always wondered how that worked |
| 13:18:49 | <maerwald> | arjun: see https://youtu.be/0jI-AlWEwYI |
| 13:19:05 | <merijn> | arjun: Note that that's an implementation detail of GHC, though :) |
| 13:19:14 | <maerwald> | there's some explanation of inlining wrt classes |
| 13:20:07 | <arjun> | maerwald: brownies,i've been dragging my feet on her content for so long, that video and the post "parse dont validate", i'll just carve out and afternoon for those |
| 13:21:21 | <arjun> | dminuoso: so, i get it for the values, does that works the same way for typeclass polymorphic functions too? |
| 13:21:51 | <merijn> | arjun: Yes |
| 13:21:51 | <arjun> | something like `f :: (MonadIO m, MonadFail m, etc..)` |
| 13:22:06 | <merijn> | arjun: Effectively they function as hidden arguments taking a dictionary of class functions |
| 13:22:34 | <merijn> | arjun: Except, that when GHC statically knows which *actualy* type you use, inlining those dictionaries straight into the code is trivial |
| 13:22:49 | <merijn> | So a lot of typeclass overhead/indirection can be trivially optimised away at compile time |
| 13:22:56 | <arjun> | so those values and functions are general, but that comes at an inlining cost? |
| 13:23:03 | <maerwald> | -fspecialize-aggressively to the rescue |
| 13:23:31 | <dminuoso> | It's not even enough |
| 13:23:35 | <arjun> | merijn: so if i write general code and not runtime call it, it's fine? |
| 13:23:40 | <dminuoso> | You usually need this in conjunction with -fexpose-all-unfoldings |
| 13:23:48 | <dminuoso> | and then watch compile time and memory usage skyrocket |
| 13:24:21 | × | kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Ping timeout)) |
| 13:24:25 | <merijn> | arjun: So, suppose you write "2 + 2" normally all those things are typeclass polymorphic |
| 13:24:38 | <arjun> | sure |
| 13:24:42 | <merijn> | arjun: But as soon as it's "2 + 2 :: Int" (via type inference for some function argument, whatever) |
| 13:25:09 | <merijn> | arjun: GHC can trivially see "oh, this only uses the Int dictionary" and just inline all the dictionaries function calls straight into that removing all indirection |
| 13:25:35 | <dminuoso> | arjun: Yes. In fact, there's some other subtleties involved as well. If you have something polymorphic, it cant be shared. That is, if you have `let x :: Num; x = expensiveExpr in (x * 10, x * 20)`, this will unexpectedly evaluate the expression of `x` twice |
| 13:25:37 | <arjun> | so, fix the type either manually or via inference, win ? |
| 13:25:53 | <merijn> | Which actually applies to a large number of typeclass calls, since probably >50% of all calls deal with statically known types |
| 13:25:56 | <merijn> | arjun: basically |
| 13:26:20 | <dminuoso> | arjun: And because the Haskell authors antipicated this, we have the monomorphism restriction, which will try to monomorphize (make them non-polymorphic) bindings without type signatures in most situations, to avoid performance problems creeping up |
| 13:26:31 | <merijn> | arjun: And due to inference this can happen through large chunks of code at once via just 1 type signature somewhere |
| 13:26:44 | <arjun> | maerwald: this is what we do with the ghcup code right? there's all sort of poly functions, but they get inferred with main invocations? |
| 13:26:49 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
| 13:26:59 | <maerwald> | uhm |
| 13:27:23 | <maerwald> | you mean `runReaderT` probably |
| 13:27:25 | <maerwald> | etc |
| 13:27:30 | <arjun> | merijn: wouldn't the compiler need to know the types anyway for typechecking ? |
| 13:28:20 | <merijn> | arjun: the runtime invocation of any specific function can't always be statically known |
| 13:28:23 | <arjun> | maerwald: yea, those in the main function which fix the logger and envs etc |
| 13:28:42 | <maerwald> | yes, runE, runReaderT and runLogger mostly |
| 13:28:48 | <arjun> | merijn: i see |
| 13:28:49 | <maerwald> | and then there's LabelOptics tricks |
| 13:28:55 | <merijn> | (don't ask me to conjure up an example, because I can't think of an easy one right now :p) |
| 13:29:12 | <arjun> | HasDirs and stuff right? |
| 13:29:38 | <maerwald> | yeah that allows to re-use the same api across different environments |
| 13:30:04 | <dminuoso> | arjun: Consider that you can simply write a module that exposes a polymorphic function. GHC must be able to compile this module on its own, irrespective of whether something else uses it or not. |
| 13:30:21 | <arjun> | merijn: that's alright, you've been quite a help already; ) |
| 13:30:21 | <dminuoso> | So you cant know the used type(s!) beforehand |
| 13:30:49 | <dminuoso> | And you cant know all possible typeclass instances either, because they might be defined somewhere else too |
| 13:31:33 | <maerwald> | whole program optimization to the rescue |
| 13:31:33 | <arjun> | dminuoso: THAT MAKES SO MUCH SENSE |
| 13:33:55 | <dminuoso> | Sigh |
| 13:33:57 | <dminuoso> | WARNING: /root/.cabal/: no matching files |
| 13:34:28 | <dminuoso> | Is there a way to have cabal tell me where the cabal store is? |
| 13:35:40 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 13:36:06 | → | sagax joins (~sagax_nb@user/sagax) |
| 13:36:13 | <maerwald> | https://hackage.haskell.org/package/cabal-install-parsers-0.4.3/docs/Cabal-Config.html |
| 13:36:28 | <dminuoso> | Mmm |
| 13:36:56 | <dminuoso> | Ah I think what happens is that gitlab ci cache can only operate on the current directory |
| 13:37:04 | <dminuoso> | That could explain it |
| 13:37:24 | <dminuoso> | Damn yes. |
| 13:37:42 | <arjun> | dminuoso: just to solidify if i understood, TC polymorphic functions and values are ALWAYS compiled to ditcs redirects, but if you fix a type a compile time, the compiliers walks the redirection for you and basically kisses you on the forehead and inlines that code ? |
| 13:38:08 | <maerwald> | whether something inlines or not depends on a lot more factors |
| 13:38:33 | <arjun> | : P |
| 13:38:39 | <dminuoso> | arjun: No. |
| 13:38:57 | <dminuoso> | arjun: Honestly this is a long story and GHC has mechanisms to still inline polymorphic things. |
| 13:40:02 | <arjun> | "long story" i bet, i sometimes forget haskell is older than the j word language |
| 13:40:14 | × | jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 256 seconds) |
| 13:40:16 | <dminuoso> | But put it this way: If you make it polymorphic, you dont have a good guarantee it will get inlined. If you make it polymorphic and specialize, you have a better chance of inlining. If you make it polymorphic, specialized and inlinable, you *guarantee* that GHC *can* inline it on the oother side |
| 13:40:43 | <maerwald> | it also depends how you call the function |
| 13:41:00 | <dminuoso> | (specialization here means, that alongside the definition, GHC will embed a secondary definition that assumes the polymorphic code to be fixed to some type known beforehand) |
| 13:41:18 | <dminuoso> | (and then GHC can, on the other side, use the specialized implementation if in that spot it knows it to be that type) |
| 13:41:26 | <maerwald> | you have to supply all "arguments" |
| 13:41:39 | <dminuoso> | But really, this whole discussion can only go on with "read the GHC source code" at some point |
| 13:41:51 | <maerwald> | yes, until the next GHC version |
| 13:41:57 | <dminuoso> | It's very complicated and requires a lot of finesse, expertise and trial-and-error to control optimization |
| 13:42:11 | <arjun> | got it (pun) |
| 13:45:20 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
| 13:45:56 | → | max22- joins (~maxime@2a01cb088335980011d3732a3bb127e3.ipv6.abo.wanadoo.fr) |
| 13:48:00 | <yin> | is there a usual way of getting chunks between delimiters, like `f START END [0,1,2,START,3,4,END,5,START,6,7,8,END,9] => [[3,4],[6,7,8]]` ? |
| 13:48:12 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 13:48:19 | <maerwald> | arjun: https://github.com/quchen/articles/blob/master/fbut.md#f-x---is-not-f--x--- |
| 13:49:42 | × | narendra quits (~user@2a02:8109:b63f:ff7c::56c2) (Remote host closed the connection) |
| 13:49:46 | <arjun> | maerwald: that was helpful |
| 13:51:17 | <arjun> | yin: some combination of, dropWhile Start, takeWhile (not End) perhaps ? |
| 13:51:36 | <yin> | yes that's what i have |
| 13:51:57 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
| 13:56:35 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 13:56:52 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 13:58:53 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 14:01:03 | × | Farzad quits (~FarzadBek@37.98.106.66) (Quit: Leaving) |
| 14:02:49 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 14:03:07 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 14:04:47 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 14:05:04 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 14:07:02 | × | max22- quits (~maxime@2a01cb088335980011d3732a3bb127e3.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 14:08:01 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 14:08:42 | → | cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
| 14:11:55 | × | acidjnk_new quits (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 14:12:15 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 14:15:51 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 14:16:03 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 14:16:08 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 14:22:05 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 14:22:24 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 14:23:56 | <merijn> | hmmm |
| 14:24:10 | <merijn> | why does incomplete-uni-patterns trigger on an explicitly lazy pattern? |
| 14:25:21 | <dminuoso> | Curious, because they're even properly called irrefutable patterns. |
| 14:25:47 | <dminuoso> | But I guess, add them to the long list of incomplete/incomplete-uni-patterns bugs? |
| 14:26:24 | <merijn> | Well, the warning says it applies to lazy bindings too |
| 14:26:29 | <merijn> | I dunno why it's on, though |
| 14:28:19 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 14:28:37 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 14:30:17 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 14:30:34 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 14:31:27 | <merijn> | dminuoso: As far as I can tell it shouldn't be enabled by default (according to the docs) and it isn't on 8.0 through 9.0 |
| 14:31:38 | <merijn> | So I'm confused why it is on in 9.2 |
| 14:32:29 | → | rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
| 14:33:39 | → | Farzad joins (~FarzadBek@37.98.106.66) |
| 14:36:49 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 14:37:06 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 14:38:28 | × | dsrt^ quits (~dsrt@68.101.58.90) (Remote host closed the connection) |
| 14:40:05 | <yin> | is there a flip (.) ? |
| 14:41:29 | <geekosaur> | @index (&) |
| 14:41:29 | <lambdabot> | Data.Function |
| 14:42:44 | <yin> | that's flip ($) |
| 14:43:48 | <yushyin> | (>>>) |
| 14:43:52 | <boxscape> | yin: Data.Category.>>> |
| 14:43:58 | <boxscape> | oh I'm too late |
| 14:44:23 | → | boxscape_ joins (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) |
| 14:44:42 | <yushyin> | boxscape: only by a few seconds! |
| 14:45:39 | <boxscape> | I'm always a bit unsure how long the matrix bridge will take to actually send a message |
| 14:45:46 | <boxscape> | (I think there's some jitter, too) |
| 14:46:04 | <yin> | that was it! thank you |
| 14:46:19 | <merijn> | The answer is *drumroll* someone put in a proposal to enable incomplete-uni-patterns by default and didn't bother to update *any* of the docs! Yay! |
| 14:47:09 | <yin> | boxscape: a couple of weeks ago i was hitting 2 hours |
| 14:47:25 | <boxscape> | oh boy |
| 14:48:25 | <yin> | i'm used to 20 secs when it's good, 2 mins when it' bad and 20 min when it's really bad |
| 14:48:45 | <yin> | but many get lost |
| 14:48:48 | <merijn> | Well, that kinda renders irrefutable patterns useless |
| 14:49:20 | × | bsima quits (~bsima@2604:a880:400:d0::19f1:7001) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:49:48 | → | max22- joins (~maxime@2a01cb08833598008751b1889105ced7.ipv6.abo.wanadoo.fr) |
| 14:49:55 | → | bsima joins (~bsima@2604:a880:400:d0::19f1:7001) |
| 14:50:35 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:50:43 | <boxscape> | merijn: you can always turn off the warning |
| 14:50:53 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:50:54 | <geekosaur> | for the whole file, yes |
| 14:51:04 | <merijn> | boxscape: Yes, but you can never do that for an individual irrefutable pattern |
| 14:51:06 | <geekosaur> | https://gitlab.haskell.org/ghc/ghc/-/issues/20643 |
| 14:51:19 | <geekosaur> | as merijn just pointed out in #ghc |
| 14:51:33 | <merijn> | Also, I'm just grumpy because once *again* nobody updated the GHC flag reference |
| 14:51:40 | <boxscape> | merijn: right, but it doesn't seem like adding it to -Wall made this part any worse |
| 14:51:56 | <merijn> | Literally *every* *single* *time* I interact with flags someone has fucked up and not updated shit |
| 14:52:20 | <merijn> | over 50% of my GHC issues are pointing out missing/undocumented flags >.> |
| 14:52:22 | <yin> | when do we replace irrefutable patterns for proofs to the compiler |
| 14:53:16 | <merijn> | boxscape: Well, I would've liked that problem to be solved before it got enabled unconditionally and I had to figure out how to selectively disable that flag for 1 compiler in my CI >.> |
| 14:53:47 | <boxscape> | that's fair |
| 14:54:02 | <merijn> | especially since I consider it a low value warning |
| 14:54:20 | → | shapr` joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 14:54:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:54:47 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 14:54:47 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:56:11 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 14:57:40 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 15:00:17 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 15:05:43 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 15:06:01 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 15:06:05 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 15:06:21 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 15:08:01 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 15:08:35 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 15:08:35 | × | justache quits (~justache@user/justache) (Ping timeout: 256 seconds) |
| 15:09:27 | → | TranquilEcho joins (~grom@user/tranquilecho) |
| 15:12:55 | × | bliminse quits (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving) |
| 15:16:14 | <merijn> | oh goodie |
| 15:16:25 | <merijn> | someone broke operator sections for $ too |
| 15:16:39 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 15:17:30 | <boxscape> | asking you if you want to enable template haskell? |
| 15:17:42 | [exa] | . o O ((`id` function)) |
| 15:18:06 | <merijn> | boxscape: That's a warning enabled by default now, so -Werror on CI breaks on that too |
| 15:18:17 | <merijn> | So far, not particularly happy with 9.2 |
| 15:19:09 | <merijn> | Way too many default enabled warnings that trigger on completely benign and correct haskell |
| 15:19:37 | <boxscape> | I think the warning didn't exist at all before https://github.com/ghc-proposals/ghc-proposals/pull/229 |
| 15:19:46 | → | justache joins (~justache@user/justache) |
| 15:19:48 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 15:19:49 | <merijn> | boxscape: It didn't no |
| 15:20:28 | × | pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…) |
| 15:21:15 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 15:22:08 | → | MaybeJustJames joins (~jacol@2001:981:4ea3:1:a8b4:6ac6:c93b:9bcf) |
| 15:23:01 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 15:24:30 | × | justache quits (~justache@user/justache) (Ping timeout: 256 seconds) |
| 15:24:39 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:24:39 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:24:39 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:25:01 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 15:25:23 | × | sheb quits (~sheb@31.223.228.71) (Quit: Leaving) |
| 15:25:43 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 15:28:02 | → | bliminse joins (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) |
| 15:29:08 | → | justache joins (~justache@user/justache) |
| 15:29:36 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 15:29:57 | → | Vajb joins (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) |
| 15:35:21 | × | dermato quits (~dermatobr@cpe-70-114-219-76.austin.res.rr.com) (Quit: WeeChat 3.1) |
| 15:39:35 | × | arjun quits (~user@user/arjun) (Remote host closed the connection) |
| 15:41:50 | × | justache quits (~justache@user/justache) (Read error: Connection reset by peer) |
| 15:42:01 | × | Farzad quits (~FarzadBek@37.98.106.66) (Ping timeout: 256 seconds) |
| 15:42:33 | × | hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Read error: Connection reset by peer) |
| 15:42:51 | → | justache joins (~justache@user/justache) |
| 15:43:06 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 15:44:09 | → | dschrempf joins (~dominik@mobiledyn-62-240-134-39.mrsn.at) |
| 15:50:43 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 15:53:09 | → | Guest|27 joins (~Guest|27@cpea456cc4b1ddd-cma456cc4b1ddb.cpe.net.cable.rogers.com) |
| 15:53:57 | → | zer0bitz joins (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) |
| 15:54:31 | shapr` | is now known as shapr |
| 16:02:34 | justache | is now known as justSleigh |
| 16:04:39 | <eyJhb> | I am not sure, if this is possible. But I am trying to play a little around with ghci, and I somewhat thought it was comman that if I wrote ie. `length`, that it would show me the definition of it, instead of an error ie. https://termbin.com/2f7i |
| 16:04:53 | → | nvmd joins (~nvmd@user/nvmd) |
| 16:05:25 | <merijn> | eyJhb: ghci runs expressions through "show" to print them |
| 16:05:35 | <merijn> | eyJhb: length is a function and there is no show isntance for functions |
| 16:05:56 | <merijn> | eyJhb: That error is complaining "[a] -> Int" (the function type of length) doesn't have a show instance |
| 16:05:59 | → | burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
| 16:06:43 | <geekosaur> | and at present there's no way for ghci to know the definition of a function. there is work on changing that via .hie files containing enough information to recover or find definitions, but it's not there yet nor does ghci know how to use it yet |
| 16:06:44 | × | dschrempf quits (~dominik@mobiledyn-62-240-134-39.mrsn.at) (Quit: WeeChat 3.3) |
| 16:06:55 | → | gaff joins (~gaff@49.207.195.117) |
| 16:08:10 | <gaff> | if a package is listed as package id in the package environment file (default), how can i remove that package? |
| 16:08:13 | → | Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) |
| 16:08:14 | <eyJhb> | Okay :) Guess I just thought it wold return "the function", and show that it still accepts args, 1, 2, 3. |
| 16:08:51 | <merijn> | eyJhb: Did you maybe want ":type"? |
| 16:08:54 | <merijn> | :t length |
| 16:08:55 | <lambdabot> | Foldable t => t a -> Int |
| 16:09:01 | <merijn> | :t length [] |
| 16:09:02 | <lambdabot> | Int |
| 16:09:18 | <geekosaur> | % :t length @[] |
| 16:09:18 | <yahb> | geekosaur: [a] -> Int |
| 16:09:22 | <eyJhb> | Hmm... Yeah, that's actually what I excected it to show! Thanks :) |
| 16:09:47 | <geekosaur> | > length |
| 16:09:49 | <lambdabot> | error: |
| 16:09:49 | <lambdabot> | • No instance for (Typeable a0) |
| 16:09:49 | <lambdabot> | arising from a use of ‘show_M78435480957096341498’ |
| 16:09:50 | <eyJhb> | Trying to do some basic advent of code using Haskell. And sorting in the Haskell learning material that I got |
| 16:10:05 | <merijn> | Nice :) |
| 16:10:08 | <geekosaur> | didn't think that would work, polymorphism's a bit much for ghci's show-functions hack |
| 16:10:12 | <merijn> | See also the leaderboard in the topic :) |
| 16:10:55 | <geekosaur> | er, lambdabot's. I don't think it's packaged in a way you could use it with ghci |
| 16:11:14 | <geekosaur> | at least I couldn't find the lambdabot module when I went looking for it the other day |
| 16:11:24 | <boxscape> | > ord |
| 16:11:25 | <lambdabot> | <Char -> Int> |
| 16:12:23 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 16:12:58 | <gaff> | the package id is listed in the file named "default" |
| 16:13:25 | <merijn> | gaff: You used "cabal install --lib", I guess? |
| 16:13:33 | <gaff> | yeah |
| 16:13:42 | <gaff> | i did |
| 16:13:50 | <merijn> | I think you can just nuke the line from the file, tbh |
| 16:14:50 | <tomsmeding> | geekosaur: isn't it something like 'instance {-# OVERLAPPABLE #-} (Typeable a, Typeable b) => Show (a -> b) where ...'? |
| 16:14:52 | <gaff> | merijn: i tried that, but GHCi still finds the package, although it complains that it is now hidden |
| 16:15:04 | <geekosaur> | probably, yes |
| 16:15:08 | <merijn> | gaff: Is there a .ghc.environment in your working dir? |
| 16:15:18 | <gaff> | i want to get rid off the package altogether |
| 16:15:34 | <gaff> | no |
| 16:15:44 | <geekosaur> | but I was hoping to find the actual module and verify. sadly I could find the import in L.hs but not the module itself |
| 16:15:49 | <gaff> | this "default" file is in the global location |
| 16:16:19 | <gaff> | .ghc/.../environments/default |
| 16:16:21 | <merijn> | gaff: tbh, there's no real convenient way to "uninstall" specific packages atm, but you also shouldn't really need to in general |
| 16:16:45 | <geekosaur> | just edit the file |
| 16:17:01 | <geekosaur> | or better yet, nuke it and let cabal or stack manage packages for you |
| 16:17:01 | <eyJhb> | merijn: I think I have been invited to 3x leaderboards so far :D Nix community, and some from University :D |
| 16:17:06 | <gaff> | ok ... i am kind of surprised |
| 16:17:10 | <merijn> | geekosaur: I already said that |
| 16:17:56 | <merijn> | gaff: There's some tools for "GCing" the global store, but it's surprisingly tricky to do properly |
| 16:18:05 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:2b1a:1927:b5c5:1912) (Quit: WeeChat 2.8) |
| 16:18:09 | <gaff> | merijn: where exactly would this package be? i tried a ghc-pkg find-module, but it didn't find it anywhere |
| 16:18:23 | <gaff> | but strangely, GHCi, finds it |
| 16:18:26 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 16:18:32 | <merijn> | tbh, I haven't used the global package db since 2016 so I kinda forgot |
| 16:18:41 | <gaff> | merijn: |
| 16:19:02 | <merijn> | The global store is under .cabal/store, but I don't think global installs (i.e. with --lib) use the store |
| 16:19:15 | <gaff> | i don't want to use the global db either, but i was just experimenting with something |
| 16:19:19 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection) |
| 16:19:26 | <geekosaur> | last I checked, they did and the environment file points into the store |
| 16:20:08 | <geekosaur> | last time I read through and nuked the env, which was while I was experimenting with updating cabal installation for xmonad |
| 16:20:15 | <gaff> | geekosaur: you mean the "default" file where the package ids are listed? |
| 16:20:20 | <geekosaur> | yes |
| 16:20:30 | <gaff> | nuke the "default" file? |
| 16:20:46 | → | zebrag joins (~chris@user/zebrag) |
| 16:21:31 | <geekosaur> | well. go through it and figure out what packages you'll need in the future. but cabal should already have them in its store, so yoou'll just have to update how you're using them to use the v2-* commands instead of v1-* |
| 16:21:41 | <geekosaur> | then nuke it because it just causes pain |
| 16:22:07 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
| 16:22:17 | <geekosaur> | also, you'll want a cabal file and cabal repl because things will stop working in plain ghci. if you really need plain ghci to work then edit the environment to remove the package(s) you don't want |
| 16:22:35 | <geekosaur> | but I'd really recommend moving away from that because environment files are such a pain |
| 16:23:01 | × | TranquilEcho quits (~grom@user/tranquilecho) (Ping timeout: 268 seconds) |
| 16:23:11 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 16:23:12 | <sclv> | to answer the specific question you can literally delete the line from the package env file to remove the package |
| 16:23:33 | <merijn> | sclv: But already said that, and that supposedly didn't work? |
| 16:23:34 | <gaff> | geekosaur: yeah, i don't want to fiddle around with global stuff, i was just experimenting with something |
| 16:23:39 | × | MaybeJustJames quits (~jacol@2001:981:4ea3:1:a8b4:6ac6:c93b:9bcf) (Remote host closed the connection) |
| 16:23:46 | → | TranquilEcho joins (~grom@user/tranquilecho) |
| 16:23:52 | <sclv> | oh i see |
| 16:24:03 | <sclv> | ok, i imagine that would be because there's something else that's a transitive dep on it? |
| 16:24:15 | <geekosaur> | or because they didn't restart ghci afterward |
| 16:24:25 | <geekosaur> | maybe |
| 16:24:44 | <gaff> | sclv: even if delete the line from the denv file, GHCi still finds the package, although now it complains that the package is hidden. |
| 16:24:56 | <sclv> | gaff: is there any other package that has that package as a dep? |
| 16:24:59 | × | mvk quits (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds) |
| 16:25:05 | <gaff> | no |
| 16:25:15 | <sclv> | well, then that shouldn't happen |
| 16:26:03 | <sclv> | if you want to pastebin the error that could be useufl |
| 16:26:19 | <geekosaur> | could it be in the old user package db, perhaps? |
| 16:26:22 | <gaff> | also, GHCi suggests `:set` command to make the package visible as well |
| 16:26:36 | <geekosaur> | @where paste |
| 16:26:36 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 16:27:11 | → | reumeth joins (~reumeth@user/reumeth) |
| 16:27:18 | <gaff> | Could not load module ‘QuickCheck1’, It is a member of the hidden package ‘qcheck-original-0.1.0.0’. You can run ‘:set -package qcheck-original’ to expose it. |
| 16:27:56 | <gaff> | that's the error message from GHCi |
| 16:28:12 | → | Farzad joins (~FarzadBek@5.234.246.252) |
| 16:28:35 | <gaff> | now in the code that GHCi runs, there is an "import QuickCheck1" statement |
| 16:28:37 | <sclv> | so you're trying to load a module from a package you don't have in your env file |
| 16:28:43 | <sclv> | and you get an error |
| 16:28:47 | <gaff> | yeah |
| 16:28:47 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 16:28:56 | <sclv> | that seems like expected behavior, except the wording in the error may confuse you? |
| 16:28:57 | × | siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:29:03 | × | alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 16:29:12 | <sclv> | like... if you try to load the module, but the package isn't in the env, you _should_ get some error |
| 16:29:31 | <EvanR> | I just noticed in the ghc manual it says "If you think an error message is especially terrible, report it as a bug" xD |
| 16:29:45 | → | kennyd joins (~bc8165b6@cerf.good1.com) |
| 16:30:46 | <gaff> | sclv: the problem here is that even though i deleted the package id from the env file, if i do the `:set` command suggested by GHCi, the package loads and things work fine. what i wanted was to delete the package completely. |
| 16:31:00 | <sclv> | why |
| 16:31:39 | <gaff> | because that package is installed globally by me (as an experiment) and i wanted to remove it |
| 16:31:48 | <sclv> | ok well in an important sense you can't |
| 16:31:56 | <sclv> | because you can't delete individual packages from the store |
| 16:31:56 | <gaff> | sclv: i see |
| 16:32:04 | <sclv> | you can just expose them or not in a package environment |
| 16:32:23 | <gaff> | sclv: is that by design? |
| 16:32:28 | <sclv> | yes, ish |
| 16:32:31 | <sclv> | the store is just a cache |
| 16:32:44 | <sclv> | ideally we'd have a garbage-collect for it |
| 16:32:52 | <sclv> | but it would need to have gc roots and chase transitive deps, etc |
| 16:32:52 | <gaff> | ok |
| 16:33:00 | <sclv> | and nobody's written that |
| 16:33:05 | <gaff> | i see |
| 16:33:14 | <sclv> | so the store just accumulates stuff, and eventually if people really want to they nuke it on occasion |
| 16:33:22 | <sclv> | but since its a cache, thats fine and it fills up again |
| 16:33:23 | <merijn> | You'd also somehow have to find all packages on someone's filesystem to determine what is needed or not |
| 16:33:40 | <merijn> | gaff: Personally I just nuke the global store once or twice a year (or if I upgrade GHC) |
| 16:33:53 | <gaff> | sclv: another weird thing is that if i do a serach using `find-module`, ghc-pkg is unable to find that package anywhere! |
| 16:33:54 | <sclv> | this is not qualitatively different from v1-build i will note |
| 16:34:17 | → | pfurla joins (~pfurla@201.17.118.230) |
| 16:34:23 | <sclv> | ghc's never had robust support for deleting a package from a db, just for hiding it |
| 16:34:36 | <merijn> | gaff: The "worst case" of nuking the global store is "every time you go to a new project after nuking the store, you will have to recompile your dependencies" |
| 16:34:49 | <merijn> | But that's a pretty minor issue if you only do it once or twice a year |
| 16:34:53 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 16:35:03 | <geekosaur> | gaff, ghc-pkg is unaware of environment files. I wonder if you have another one somewhere |
| 16:35:12 | <gaff> | merijn: yeah, i know ... i am not going there ... trust me. this was just an experiment |
| 16:35:26 | <merijn> | gaff: So, ghc-pkg interfaces with a static "package database", but that's kinda...limiting and let to lots of issues |
| 16:35:31 | <geekosaur> | (there's a ghc bug open about that iirc) |
| 16:35:57 | <merijn> | gaff: In the v2-world order, there is no longer a package database for ghc-pkg, instead cabal (dynamically) generates a unique package database for each project |
| 16:36:26 | <merijn> | gaff: So each project can only see the packages relevant to that specific project (allowing you to have conflicting versions, configurations, etc.) of packages installed at the same time |
| 16:36:51 | <gaff> | merijn: when you say global store, the ~.cabal/store? |
| 16:37:14 | <merijn> | yes |
| 16:37:17 | <gaff> | ok |
| 16:38:10 | <gaff> | merijn: yeah, currently i am working using cabal v2-builds on every project. not using global store at all |
| 16:39:45 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 16:39:56 | <merijn> | Eh, v2 uses the global store rather heavily. There was no global store pre-v2 :p The global store, however, is different from the global package db (which was used pre-v2 and now mostly obsolete) |
| 16:39:59 | <gaff> | merijn: one point ... using the nix style, it does cache the packages so that they can be shared between projects if needed. but you are right -- no conflicts whatsoever |
| 16:40:28 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:41:54 | <gaff> | merijn: so the experiment i tried where i have a package id listed in the global environment file -- that is a legacy from the old style of global package db? |
| 16:42:44 | → | alzgh joins (alzgh@user/alzgh) |
| 16:42:53 | <merijn> | gaff: That tries to mimic the global package db by having an environment that points to a few specific things in the store. Which is why nuking things in the environment file "gets rid off them" |
| 16:43:07 | <gaff> | ok |
| 16:43:26 | <merijn> | but because the global environment affects everything, it now messes with every individual project, iirc |
| 16:43:36 | <gaff> | yeah |
| 16:44:42 | <gaff> | so nuking the line in the file is enough? or do i need to nuke the entire file? or nuke the entire global store, ~/.cabal/store? |
| 16:44:54 | <merijn> | just nuking the line in the file is enough |
| 16:45:02 | <gaff> | merijn: cool |
| 16:45:09 | <gaff> | merijn: thanks much |
| 16:45:12 | <merijn> | You'll still have the package in the store, but besides a bit of disk space that shouldn't affect anything |
| 16:45:49 | <gaff> | yeah, i need to remember to work using cabal projects |
| 16:45:58 | × | nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.) |
| 16:46:50 | <monochrom> | I think that saying "store" is less confusing than saying "global store". |
| 16:48:26 | <monochrom> | This is a consideration based on Hamming distance and the human mind always trying to "auto-correct" words and phrases. |
| 16:49:08 | <c_wraith> | Also, "global" used to mean "for all users of the system" in some cases. |
| 16:49:09 | <monochrom> | "store" is very far from "global db", but "global store" is closer. |
| 16:50:08 | <monochrom> | When the human mind reckons "eh I haven't seen the word 'store' used like this", it goes "ah but I have seen 'db', so let me just pretend you said 'db'". |
| 16:51:29 | <davean> | monochrom: Some people's mind do that - I tend to dislike those people |
| 16:51:43 | <davean> | This seems to very much be a personality thing |
| 16:52:04 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 16:53:47 | <monochrom> | But it also has its value. There are a large class of typos that I can make and you can auto-correct on, and your auto-correction is correct. |
| 16:54:39 | <monochrom> | There are acronyms like "kthxbye" "weg" that you can guess correctly without being taught. |
| 16:55:11 | <gaff> | monochrom: also the human mind can be made to believe anything ... one thing now, another thing next ... which is why you see so many contradictory views. anyway, what i am saying is unrelated to haskell ... just something general. |
| 16:55:21 | <monochrom> | When comprehending a large code base, there are large chunks of code you don't carefully read but you correct guess what they're doing and you quickly move on. |
| 16:55:53 | <davean> | only one of thsoe was an acronym BTW |
| 16:56:24 | <EvanR> | the generalities have gone beyond haskell now |
| 16:56:49 | <EvanR> | did we figure out the #haskell AoC leaderboard yet? |
| 16:57:10 | <gaff> | thanks much for the help |
| 16:57:15 | × | gaff quits (~gaff@49.207.195.117) () |
| 16:57:27 | <geekosaur> | see the /topic |
| 16:58:05 | <geekosaur> | I saw the topic change but nothing else so I assume The Guy caught the earlier discussion and updated it |
| 16:58:46 | <EvanR> | oh nice, I'm already there! |
| 16:58:58 | <merijn> | It's the same as the last 2 years, yeah |
| 17:00:41 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 17:02:39 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection) |
| 17:02:42 | <EvanR> | to get a high score on the leaderboard, you not only have to be quick, but you have to be awake at midnight? xD |
| 17:03:16 | <monochrom> | Or move to a more advantageous time zone. |
| 17:03:21 | <EvanR> | oh yeah |
| 17:04:24 | <merijn> | They open at 6 AM here |
| 17:04:27 | <merijn> | and fuck that :p |
| 17:04:36 | <EvanR> | that's even worse |
| 17:04:53 | <monochrom> | "The best way to win is not to play" |
| 17:05:17 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 17:05:32 | × | td_ quits (~td@muedsl-82-207-238-025.citykom.de) (Remote host closed the connection) |
| 17:06:25 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 17:09:29 | → | jncraton joins (~jncraton@199.8.13.16) |
| 17:10:16 | → | aman joins (~aman@user/aman) |
| 17:11:16 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:12:43 | Techcable_ | is now known as Techcable |
| 17:13:02 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:13:19 | × | n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:13:59 | → | n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net) |
| 17:17:18 | → | |beowulf| joins (1000@sourcemage/mage/beowulf) |
| 17:17:26 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:17:36 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Quit: Leaving) |
| 17:19:37 | × | aman quits (~aman@user/aman) (Quit: aman) |
| 17:22:01 | × | srk quits (~sorki@user/srk) (Ping timeout: 245 seconds) |
| 17:22:11 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds) |
| 17:24:31 | → | Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
| 17:26:29 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 17:26:44 | → | kmein joins (~weechat@user/kmein) |
| 17:28:17 | <EvanR> | doing "quick one off" haskell "scripts" is the only time I encounter the no type signatures version of haskell, very cool |
| 17:28:38 | <EvanR> | and tricky, had to put (read :: String -> Int) in there |
| 17:29:59 | <EvanR> | I always put signatures on everything, so I don't know how to explain monomorphism restriction to someone who encountered it xD |
| 17:30:08 | <boxscape> | EvanR: shorter: read @Int |
| 17:31:02 | <EvanR> | ok... but you'd have to add a language pragma right, and anyone who sees that and doesn't know haskell will increase their weird syntax defcon level by 1 |
| 17:31:49 | <boxscape> | possibly |
| 17:32:02 | <boxscape> | I think it's enabled by default in the newest version of ghc |
| 17:32:05 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:32:43 | <EvanR> | I only understand how @Int works by smashing my head on Idris so much |
| 17:32:49 | <EvanR> | with implicit params |
| 17:33:14 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 17:33:58 | <yushyin> | boxscape: TypeApplications is in GHC2021, yes. |
| 17:34:21 | <tomsmeding> | TIL GHC2021 is actually the default language in HEAD at this point |
| 17:35:00 | <boxscape> | tomsmeding: to be fair you might not even notice if you use cabal or stack since I think the default in the .cabal file is still Haskell2010 |
| 17:35:44 | <tomsmeding> | yeah |
| 17:36:43 | → | FarzadBekran_ joins (~FarzadBek@94.74.153.122) |
| 17:37:54 | <pragma-> | I concur. |
| 17:38:29 | <merijn> | boxscape: Haskell98 unless you use a recent cabal-version |
| 17:38:32 | × | barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Quit: Rebooting for OS update...) |
| 17:38:46 | <boxscape> | hm okay |
| 17:39:11 | <geekosaur> | tomsmeding, it's also the default in 9.2.1 |
| 17:39:18 | × | mbuf quits (~Shakthi@27.58.139.230) (Quit: Leaving) |
| 17:39:18 | <merijn> | actually, the version doesn't mention any change, so looks like Haskell98 in all cabal versions |
| 17:39:37 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 17:39:53 | × | Farzad quits (~FarzadBek@5.234.246.252) (Ping timeout: 256 seconds) |
| 17:40:25 | <merijn> | ah, no, in 3.4 the default-language is optional and set to the compiler's default...so that's a terrible idea |
| 17:40:25 | <sclv> | right, i think that cabal init will tend to add Haskell2010 when you init, however |
| 17:40:30 | <sclv> | oh wait, ugh |
| 17:40:39 | <merijn> | Who thought that was a good idea |
| 17:40:40 | <tomsmeding> | "default in cabal files" for me is "whatever is in the last project that I happen to copy the .cabal file from" :p |
| 17:40:43 | <sclv> | well, both can be true :-) |
| 17:41:01 | <sclv> | (i.e. that cabal init gives it explicitly, and also the spec has this silly floating default) |
| 17:41:37 | <davean> | merijn: Not true? |
| 17:41:39 | <boxscape> | cabal init sets it to Haskell2010 in cabal 3.6 for me |
| 17:41:45 | <merijn> | davean: What is not true? |
| 17:41:46 | <boxscape> | oh sclv said as much |
| 17:41:51 | <davean> | merijn: Your claim about 3.4 |
| 17:42:07 | <merijn> | davean: https://cabal.readthedocs.io/en/latest/file-format-changelog.html#cabal-version-3-4 |
| 17:42:14 | <merijn> | davean: Well, the docs disagree with you there :p |
| 17:42:37 | <davean> | Its just ... false. Thats not how cabal init behaves, it puts in default-language: |
| 17:42:40 | <davean> | Haskell2010 |
| 17:42:44 | <merijn> | hold on |
| 17:42:51 | <boxscape> | I don't think the docs are talking about cabal init |
| 17:43:00 | <merijn> | cabal init and the version of your cabal executable are entirely unrelated to what I'm saying |
| 17:43:03 | <boxscape> | they're talking about what the value is if your cabal file doesn't have default-language |
| 17:43:03 | <davean> | They are not talking about cabal init |
| 17:43:12 | <merijn> | davean: Neither was I? |
| 17:43:12 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 17:43:20 | <davean> | ok |
| 17:43:22 | <merijn> | Also, cabal init default to 2.4, iirc |
| 17:43:30 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
| 17:43:35 | <merijn> | In which version the default language is not optional |
| 17:44:11 | → | barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk) |
| 17:44:30 | <davean> | merijn: sorry, I'd thought you were refering to the conversation around it, not making a seperate statement |
| 17:45:06 | <davean> | (Specificly you'd said 'cabal', not 'Cabal' right before it) |
| 17:47:21 | <pragma-> | So the cabal package manager can never be at the beginning of a sentence. |
| 17:47:48 | <davean> | pragma-: why is that? |
| 17:47:49 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 17:47:55 | <merijn> | davean: The capitalisation ;) |
| 17:48:09 | <davean> | merijn: you just don't capitalize it at the start of a sentance |
| 17:48:15 | <geekosaur> | well, you can stil refer to it as cabal-install |
| 17:48:16 | <sclv> | wow you're really capitalizing on this confusion here |
| 17:48:29 | <monochrom> | I violate the capitalization convention when in this kind of situations. |
| 17:48:47 | <EvanR> | does Haskell2010 enable new things by default like this new "standard" does? |
| 17:48:49 | <monochrom> | "t is a type variable" rather than "T is a type variable" |
| 17:49:10 | <monochrom> | Also not bothering with the trick of "The t there is a type variable". |
| 17:49:33 | <EvanR> | to be super proper should t be in quotes or another font xD |
| 17:49:41 | × | hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds) |
| 17:49:42 | <monochrom> | But I know that there are English grammatists who go out of their way to do rewording like that. |
| 17:49:52 | <davean> | The only language standard I know to get the start of a sentance wrong is APA, and I don't even think they'd agree with their own rules if they thought about them |
| 17:50:06 | <Hecate> | perl is also something like this |
| 17:50:16 | <Hecate> | perl -> the cli tool (so really perl(1)) |
| 17:50:19 | <Hecate> | Perl -> the language |
| 17:50:25 | <monochrom> | And sclv: haha |
| 17:50:29 | <boxscape> | EvanR: differences to Haskell98: FFI, Hierarchical module names, Pattern guards, no n+k patterns. Though I believe ghc lets you use pattern guards even with Haskell98 |
| 17:50:42 | <EvanR> | Haskell the language, haskell the cli tool, wait that would be cool |
| 17:50:56 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 17:51:26 | <EvanR> | what about FFI? |
| 17:51:30 | → | srk joins (~sorki@user/srk) |
| 17:51:53 | <EvanR> | how does that pertain to the language |
| 17:51:59 | <monochrom> | Well, "runhaskell" comes close. |
| 17:52:16 | <EvanR> | runHaskell xD |
| 17:52:21 | <monochrom> | haha |
| 17:52:30 | <monochrom> | I hate camel case too. |
| 17:52:35 | <Franciman> | run_haskell |
| 17:52:35 | <sclv> | FFI was an appendix to haskell98, but incorporated in 2010 |
| 17:52:37 | <Franciman> | ? |
| 17:52:47 | <EvanR> | caps lock everything was a simpler time |
| 17:52:48 | <boxscape> | EvanR: you can write things like "foreign import" in a Haskell source file |
| 17:52:54 | <sclv> | that said in GHC, h98 and h2010 both have the ffi enabled |
| 17:52:59 | <EvanR> | boxscape, oooh ok |
| 17:53:09 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:53:16 | → | td_ joins (~td@muedsl-82-207-238-021.citykom.de) |
| 17:53:55 | <EvanR> | there are too many conventions for writing multiple words as one. Obviously we can fix it all by inventing new tech that lets you just use spaces |
| 17:54:24 | <EvanR> | (or reviving old old tech that had this) |
| 17:54:30 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 17:54:30 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 17:54:33 | allbery_b | is now known as geekosaur |
| 17:54:33 | <boxscape> | that tech is called "not using ASCII files to represent ASTs" |
| 17:54:41 | <davean> | EvanR: Just out in non-breaking spaces |
| 17:54:45 | <EvanR> | lol |
| 17:54:58 | <monochrom> | "Space, the final frontier" |
| 17:55:00 | <EvanR> | not using text files is one way I guess but no |
| 17:55:11 | × | hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
| 17:55:45 | <monochrom> | Can Programming Be Liberated from The Plain Text File |
| 17:56:13 | <EvanR> | I didn't want to open that can |
| 17:57:14 | <pragma-> | monochrom: certainly! https://www.dangermouse.net/esoteric/piet/samples.html |
| 17:59:38 | <monochrom> | The Cödel Incompleteness Theorem |
| 18:03:03 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 18:04:51 | × | jncraton quits (~jncraton@199.8.13.16) (Quit: leaving) |
| 18:05:05 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds) |
| 18:06:50 | <EvanR> | is there a Piet on a Parasail (webframework) |
| 18:07:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds) |
| 18:08:27 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) |
| 18:09:21 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 18:13:04 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 18:13:43 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 18:13:53 | × | td_ quits (~td@muedsl-82-207-238-021.citykom.de) (Ping timeout: 256 seconds) |
| 18:13:57 | → | gabriel joins (~gabriel@188-167-229-200.dynamic.chello.sk) |
| 18:14:07 | gabriel | is now known as gabriel_sevecek |
| 18:15:30 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
| 18:15:43 | → | td_ joins (~td@94.134.91.22) |
| 18:15:48 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 18:23:07 | → | Guest1723 joins (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 18:27:36 | × | alx741 quits (~alx741@181.196.69.156) (Quit: alx741) |
| 18:30:02 | × | alzgh quits (alzgh@user/alzgh) (Remote host closed the connection) |
| 18:30:22 | → | alzgh joins (alzgh@user/alzgh) |
| 18:31:11 | → | curiousgay joins (~curiousga@77-120-141-90.kha.volia.net) |
| 18:31:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 18:33:07 | × | pfurla quits (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
| 18:36:34 | → | alx741 joins (~alx741@181.196.68.155) |
| 18:36:57 | × | cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection) |
| 18:37:21 | → | cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
| 18:39:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:41:46 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 18:43:26 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 18:43:44 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 18:44:33 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 18:44:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:45:14 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 18:45:47 | → | cheater joins (~Username@user/cheater) |
| 18:46:50 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection) |
| 18:48:43 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) |
| 18:50:11 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 18:50:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:52:05 | × | cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Read error: Connection reset by peer) |
| 18:52:36 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 18:53:51 | → | econo joins (uid147250@user/econo) |
| 18:55:15 | × | Guest1723 quits (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
| 18:55:53 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 18:56:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:57:34 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 18:57:49 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 18:57:52 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 18:59:32 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 18:59:49 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 19:01:29 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 19:01:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 19:01:46 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 19:01:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:03:39 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 19:03:56 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 19:04:10 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 19:04:36 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 19:04:49 | → | nvmd joins (~nvmd@user/nvmd) |
| 19:05:13 | × | rkrishnan quits (~user@122.171.76.46) (Ping timeout: 252 seconds) |
| 19:06:06 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 19:07:12 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 19:07:36 | × | alzgh quits (alzgh@user/alzgh) (Remote host closed the connection) |
| 19:07:51 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
| 19:07:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:07:57 | → | alzgh joins (alzgh@user/alzgh) |
| 19:08:09 | ← | zuserm parts (~mz@71.161.92.216) () |
| 19:08:21 | → | hololeap joins (~hololeap@user/hololeap) |
| 19:09:43 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 19:09:43 | × | Vajb quits (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 19:10:09 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 19:10:30 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 19:12:13 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 19:12:30 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 19:12:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 19:13:19 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 19:13:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:14:56 | × | hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds) |
| 19:15:59 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection) |
| 19:17:24 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 19:18:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 19:19:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:19:24 | → | jncraton joins (~jncraton@199.8.13.16) |
| 19:19:39 | → | WatermelonStory joins (~Watermelo@199.8.13.237) |
| 19:21:24 | ← | WatermelonStory parts (~Watermelo@199.8.13.237) () |
| 19:22:05 | × | hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds) |
| 19:24:39 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 19:24:43 | → | zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 19:24:52 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:27:31 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 19:27:49 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 19:28:21 | <maerwald> | is `arch` command available on macOS by default or only if you install coreutils via brew? |
| 19:28:27 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:29:09 | <dsal> | I don't use homebrew, but I have /usr/bin/arch |
| 19:29:38 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 19:30:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 19:30:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:34:25 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 19:34:44 | <maerwald> | it seems uname -m behaves very different from arch under rosetta |
| 19:36:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 19:36:23 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:38:17 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 19:38:35 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 19:41:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 19:41:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:42:35 | × | zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
| 19:43:36 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) |
| 19:47:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 19:47:35 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:48:02 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection) |
| 19:48:39 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 19:52:53 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 19:53:08 | → | fef joins (~thedawn@user/thedawn) |
| 19:53:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:53:15 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 19:55:19 | × | alzgh quits (alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 19:59:48 | → | alzgh joins (~alzgh@user/alzgh) |
| 19:59:54 | × | n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:00:53 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) |
| 20:02:30 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 20:03:09 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:03:16 | → | jstolarek joins (~jstolarek@137.220.120.162) |
| 20:03:31 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Ping timeout: 252 seconds) |
| 20:04:12 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection) |
| 20:04:32 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 20:04:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:05:09 | → | deadmarshal joins (~deadmarsh@95.38.115.243) |
| 20:05:21 | × | juhp quits (~juhp@128.106.188.82) (Ping timeout: 252 seconds) |
| 20:05:32 | × | jncraton quits (~jncraton@199.8.13.16) (Quit: leaving) |
| 20:05:40 | → | Feuermagier_ joins (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) |
| 20:07:20 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:07:37 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:07:38 | → | juhp joins (~juhp@128.106.188.82) |
| 20:08:27 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) |
| 20:08:33 | → | mvk joins (~mvk@2607:fea8:5cc1:fa00::4702) |
| 20:10:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:10:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:11:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection) |
| 20:11:36 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:13:48 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving) |
| 20:13:56 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 20:15:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:16:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:18:31 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:18:49 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:20:29 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:20:46 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:21:05 | → | bollu joins (uid233390@id-233390.helmsley.irccloud.com) |
| 20:21:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:21:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:22:02 | × | nschoe quits (~quassel@2a01:e0a:8e:a190:8ef1:d1b1:96b4:f9df) (Ping timeout: 252 seconds) |
| 20:23:26 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 20:26:16 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 20:26:31 | → | cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
| 20:26:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:27:15 | × | aweinstock quits (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (Ping timeout: 250 seconds) |
| 20:27:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:31:33 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:31:51 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:32:09 | × | hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
| 20:32:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:32:57 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:36:31 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:37:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:38:18 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:40:17 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3) |
| 20:43:06 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 20:44:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 20:44:07 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 20:47:17 | × | bliminse quits (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving) |
| 20:49:07 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:49:25 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:51:05 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:51:23 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:53:03 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:53:21 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:57:03 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 20:57:21 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 20:58:01 | → | pavonia joins (~user@user/siracusa) |
| 21:01:01 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 21:01:19 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 21:02:25 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) |
| 21:03:21 | → | narendraj9 joins (~user@2a02:8109:b63f:ff7c::57b2) |
| 21:05:01 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 21:05:18 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 21:06:41 | → | jgeerds joins (~jgeerds@55d45b75.access.ecotel.net) |
| 21:07:03 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving) |
| 21:08:20 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 21:09:26 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:11:19 | × | jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 256 seconds) |
| 21:12:18 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:13:56 | → | Codaraxis__ joins (~Codaraxis@user/codaraxis) |
| 21:15:19 | × | michalz quits (~michalz@185.246.204.43) (Remote host closed the connection) |
| 21:16:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 21:17:02 | × | jgeerds quits (~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 252 seconds) |
| 21:17:35 | × | Codaraxis_ quits (~Codaraxis@user/codaraxis) (Ping timeout: 252 seconds) |
| 21:19:47 | × | xff0x quits (~xff0x@2001:1a81:530d:ee00:fdea:9bb5:abe4:a159) (Ping timeout: 252 seconds) |
| 21:20:52 | × | Feuermagier_ quits (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) (Ping timeout: 268 seconds) |
| 21:21:20 | → | acidjnk_new joins (~acidjnk@p200300d0c7271e31dccc5136b6b31647.dip0.t-ipconnect.de) |
| 21:21:31 | → | xff0x joins (~xff0x@2001:1a81:5339:b000:22b1:7654:f125:7b04) |
| 21:22:13 | → | Feuermagier_ joins (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) |
| 21:22:27 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
| 21:24:48 | × | FarzadBekran_ quits (~FarzadBek@94.74.153.122) (Quit: Leaving) |
| 21:25:50 | × | reumeth quits (~reumeth@user/reumeth) (Ping timeout: 252 seconds) |
| 21:27:07 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds) |
| 21:27:22 | × | narendraj9 quits (~user@2a02:8109:b63f:ff7c::57b2) (Remote host closed the connection) |
| 21:28:40 | → | ph88 joins (~ph88@2a02:8109:9e00:71d0:54ac:14f0:5fcb:286d) |
| 21:31:07 | → | stefan-_ joins (~cri@42dots.de) |
| 21:31:07 | → | pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) |
| 21:33:53 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 21:34:11 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 21:36:07 | → | Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) |
| 21:40:02 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection) |
| 21:41:07 | → | zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 21:42:47 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 21:42:53 | × | Megant quits (~kaitsu@user/megant) (Ping timeout: 252 seconds) |
| 21:43:04 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 21:44:51 | → | Megant joins (megant@user/megant) |
| 21:45:56 | → | jstolarek joins (~jstolarek@137.220.120.162) |
| 21:46:11 | → | mestre joins (~mestre@191.177.175.57) |
| 21:46:27 | × | deadmarshal quits (~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds) |
| 21:49:06 | × | Guest|27 quits (~Guest|27@cpea456cc4b1ddd-cma456cc4b1ddb.cpe.net.cable.rogers.com) (Quit: Connection closed) |
| 21:50:22 | → | yauhsien joins (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) |
| 21:52:02 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 21:52:07 | <hololeap> | is there a good reference where I can see what version of e.g. filepath comes bundled with GHC-x.y.z |
| 21:52:20 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 21:53:30 | <geekosaur> | https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history ? |
| 21:53:31 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds) |
| 21:54:43 | <hololeap> | perfect, thank you |
| 21:54:53 | × | yauhsien quits (~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 21:55:36 | × | cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1)) |
| 21:56:51 | <monochrom> | If you just need one x.y.z, the GHC user's guide has it in release notes. |
| 21:57:23 | <monochrom> | If you have the GHC version installed, "ghc-pkg list" |
| 21:59:04 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:01:16 | → | n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net) |
| 22:01:33 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection) |
| 22:02:17 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
| 22:03:00 | → | Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) |
| 22:03:58 | × | Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
| 22:04:14 | × | gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.3) |
| 22:04:29 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 22:04:49 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection) |
| 22:05:41 | → | gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk) |
| 22:06:04 | × | gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Client Quit) |
| 22:06:21 | → | Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) |
| 22:06:47 | → | Guest1731 joins (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 22:09:45 | × | kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
| 22:11:31 | <dmj`> | anyone know what this is about https://hackage.haskell.org/package/hermes "legal reasons" |
| 22:12:14 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection) |
| 22:14:07 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 22:14:25 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 22:14:55 | <monochrom> | I don't really know, but I guess license issues. Also, take a look at https://hackage.haskell.org/packages/search?terms=hermes |
| 22:15:53 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 22:16:22 | → | Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) |
| 22:18:42 | <hpc> | ooh, it's even a 451 status |
| 22:20:05 | → | Alleria joins (~textual@user/alleria) |
| 22:20:23 | × | zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
| 22:24:37 | → | mikail joins (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) |
| 22:24:43 | → | mikail_ joins (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) |
| 22:24:50 | × | mikail_ quits (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Remote host closed the connection) |
| 22:24:50 | × | mikail quits (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Remote host closed the connection) |
| 22:25:06 | × | Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection) |
| 22:25:09 | → | mikail joins (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) |
| 22:27:09 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 22:27:27 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 22:27:52 | → | Lycurgus joins (~juan@98.4.112.204) |
| 22:28:06 | <hololeap> | does System.IO.withFile apply `hSetEncoding h localeEncoding` by default? |
| 22:28:36 | <hololeap> | on the handle it passes to the continuation |
| 22:30:13 | <boxscape> | > 1 `2` 3 |
| 22:30:13 | <boxscape> | I feel like this should work |
| 22:30:14 | <lambdabot> | <hint>:1:4: error: parse error on input ‘2’ |
| 22:30:20 | <hololeap> | I'm looking at how to reproduce the withTextFile function from the (deprecated) system-fileio package |
| 22:30:21 | <boxscape> | what if I want to use 2 as a binary operator |
| 22:30:23 | <hololeap> | https://hackage.haskell.org/package/system-fileio-0.3.16.4/docs/Filesystem.html#v:withTextFile |
| 22:30:33 | × | Alleria quits (~textual@user/alleria) (Quit: Textual IRC Client: www.textualapp.com) |
| 22:31:30 | <hololeap> | boxscape: that's the stinkiest code I've seen in a while |
| 22:31:34 | <monochrom> | I don't know, but I know that withFile sets the same modes as openFile, which is at least text mode. |
| 22:31:54 | <boxscape> | 😊 |
| 22:32:06 | <geekosaur> | `` wants an identifier, and 2 isn't one |
| 22:32:12 | <monochrom> | withFile is literally doing a bracket over openFile and hClose |
| 22:32:23 | <boxscape_> | yes, I understand *why* it doesn't work, I just think it should |
| 22:32:36 | <geekosaur> | moreover I suspect you'd be bitten by the implicit fromInteger if it did |
| 22:32:41 | <int-e> | dmj`: There's a Hermes package, maybe that's what you wanted? hermes had exactly one upload, https://paste.debian.net/1221574/ is the .cabal file (which is maintained in the append-only index); maybe an accidental 'cabal upload' with misconfigured upstream hackage server? |
| 22:33:19 | <boxscape_> | geekosaur I want fromInteger - let's say I have a Num instance for `String -> String -> String` and I write "hello" `2` "world" |
| 22:33:49 | <monochrom> | I do guess that locale encoding is the default. You have to say like openBinaryFile or withBInaryFile to get verbatim bytes. |
| 22:34:06 | <geekosaur> | and I find the whole notion of wanting a number to behave as an infix weird |
| 22:34:19 | <boxscape_> | (to be fair at that point the desugaring would be strange, I admit) |
| 22:34:43 | <dmj`> | int-e: hmm, since there is pending legal action is this package dead in the water? Is it possible the existing lowercase "hermes" package could be removed and allow for a different package to be uploaded? Or is any use of hermes on hackage not permitted whatsoever |
| 22:35:07 | <int-e> | dmj`: https://hackage.haskell.org/package/Hermes |
| 22:35:36 | <int-e> | hackage is case-sensitive (even though it tries not to be these days, but that happened as an afterthought) |
| 22:37:15 | <int-e> | dmj`: I don't really know anything about it, I'm just looking at links and history and hackage's index |
| 22:38:08 | <monochrom> | Well, Hermes is deprecated too, if you use it you will have tech debt. |
| 22:38:24 | <monochrom> | Not to say that I know what hermes is about in the first place. |
| 22:38:27 | <dmj`> | int-e: Okay, maybe I'll ask on #hackage, I'd like to remove the lowercase hermes if possible. |
| 22:38:30 | × | bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:38:44 | <int-e> | Oh sure, but that's a much more common situation than the suggestion of legal action |
| 22:39:08 | <monochrom> | Legal drama on Hackage... |
| 22:39:18 | <dmj`> | Didn't realize there was an uppercase Hermes :) the legal action notice on https://hackage.haskell.org/package/hermes is concerning. |
| 22:39:38 | <int-e> | (There doesn't need to be any legal action; if it was an accidental upload, surely hackage maintainers would just erase the upload and block the index page when asked nicely.) |
| 22:40:04 | <dmj`> | monochrom: billions in settlements happening I'm sure |
| 22:40:07 | <int-e> | it just says "legal reasons" |
| 22:40:55 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 22:41:04 | → | alzgh joins (~alzgh@user/alzgh) |
| 22:41:36 | <geekosaur> | and legal reasons might just be the OtherLicense |
| 22:41:37 | <dmj`> | int-e: since it hasn't been touched in almost 7 years I had hoped the lawsuit was settled by now :) |
| 22:41:59 | <maerwald> | still waiting for supreme court ruling |
| 22:42:14 | <monochrom> | Judge Kattis is my most favourite judge. kattis.com Plus it is a lovely cat. <3 |
| 22:42:21 | <int-e> | (I'm basing the idea that it was an accidental upload mainly on the fact that only a single version was ever uploaded.) |
| 22:43:33 | <monochrom> | On April 1st, all GHC error messages are amended to say "for legal reasons" >:) |
| 22:43:45 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 22:44:20 | <monochrom> | Could match Int with Bool for legal reasons. |
| 22:44:25 | <monochrom> | err, Couldn't! |
| 22:44:44 | <hpc> | on april 1st, errors on lines containing "::" should say T_PAAMAYIM_NEKUDOTAYIM |
| 22:44:51 | <monochrom> | heh |
| 22:44:51 | <Hecate> | monochrom: LOL |
| 22:44:55 | <Hecate> | hpc: hahahaahah |
| 22:45:06 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 22:45:06 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 22:45:16 | <boxscape> | Illegal type family synonym family application in instance for legal reasons |
| 22:45:29 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 22:45:36 | <int-e> | dmj`: It's a different package. |
| 22:46:35 | <int-e> | But whatever, I shouldn't care. |
| 22:48:20 | × | nvmd quits (~nvmd@user/nvmd) (Ping timeout: 252 seconds) |
| 22:49:06 | <dmj`> | int-e: I think you're right though, probably just uploaded AllRightsReserved accidentally. |
| 22:49:15 | <dmj`> | int-e: Different package, but different author too, so probably wasn't just a fat finger on the capitalization. |
| 22:50:03 | → | nvmd joins (~nvmd@user/nvmd) |
| 22:50:47 | <dmj`> | I'll ask in #hackage |
| 22:51:46 | <dmj`> | "typeclass action lawsuit pending" |
| 22:52:07 | <monochrom> | :) |
| 22:52:14 | <dsal> | This whole thing about `2` sent me down a strange rabbit hole where I was trying to make a type called `Family` where `2 Fast 2 Furious` is a valid expression. I got it working, but it's pretty stupid. |
| 22:52:32 | <monochrom> | Illegal instance Num [Char] for legal reasons >:) |
| 22:52:53 | × | Guest1731 quits (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
| 22:53:07 | <monochrom> | Err, would be more funny with Illegal instance Monad ZipList for legal reasons! |
| 22:54:37 | → | deadmarshal joins (~deadmarsh@95.38.119.167) |
| 22:54:48 | <monochrom> | dsal: Does it also cover "Fast & Furious 6", especially the & and the 6? |
| 22:55:33 | <dsal> | Not even type families have strong enough bonds. |
| 22:56:05 | <dsal> | This is one of those things I think I could do, but every character I enter seems more stupid than the last. |
| 22:56:12 | <hpc> | sysadmins prefer nfs://underground |
| 22:56:33 | <monochrom> | That's just because family movies are not Bond movies. >:) |
| 22:56:42 | <dsal> | ha |
| 22:56:57 | <int-e> | . o O ( NFT is the successor of NFS ) |
| 22:57:21 | <dsal> | oh no |
| 22:57:49 | <hpc> | i wonder what it would take to design a language around the principle of "you only die twice" |
| 22:57:54 | <sclv> | for the record: the status is the resolution to this |
| 22:57:56 | <int-e> | it's okay, they're both terrible :P |
| 22:57:59 | <sclv> | there's no reason to chage or remove it |
| 22:58:01 | <sclv> | its fine |
| 22:58:10 | <hpc> | some kind of weird linear type system maybe? |
| 22:58:24 | <dsal> | Could not impement "Die, Die, Die, my Darling" |
| 22:58:51 | <sclv> | in _theory_ we could do a full rewrite and reset of the immutable index to clean out that package and one other like it, and a few spam packages |
| 22:59:01 | <sclv> | in practice there's not enough reason to at this point, or really indefinitely |
| 22:59:09 | <monochrom> | I think CPU hardware exceptions are designed around "you only die twice". CPUs have this notion of "double fault" when that happens and basically gives up. |
| 22:59:09 | × | deadmarshal quits (~deadmarsh@95.38.119.167) (Ping timeout: 252 seconds) |
| 22:59:12 | <hpc> | /usr/bin/goldfinger |
| 23:00:00 | <int-e> | monochrom: oh but a triple fault gets you out of protected mode and back into real mode on 80286 :P |
| 23:00:25 | <monochrom> | That's very Inception-like... |
| 23:00:41 | <hpc> | i choose to believe the opposite of real mode is integer mode |
| 23:00:47 | <monochrom> | haha |
| 23:02:34 | <davean> | monochrom: a triple fault is how you reboot, right? |
| 23:03:14 | <int-e> | monochrom: To be clear, it is a CPU reset. But PC BIOSes allowed you to hook into the initialization procedure and take over, so you could recover from that without destroying data or resetting the rest of the hardware. |
| 23:03:17 | <hpc> | just fault one more time while the computer is off? |
| 23:04:13 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 23:04:18 | <monochrom> | The Fault In Wordstar |
| 23:05:04 | <hpc> | sometimes when i finally get all my tests to pass i think "finally everything words perfectly" |
| 23:05:18 | <monochrom> | hahaha |
| 23:05:35 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 23:05:53 | → | hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com) |
| 23:10:13 | × | hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
| 23:14:44 | × | mikail quits (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Ping timeout: 252 seconds) |
| 23:14:52 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:17:53 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:18:27 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 23:19:16 | × | nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.) |
| 23:22:54 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 265 seconds) |
| 23:24:30 | → | Codaraxis_ joins (~Codaraxis@user/codaraxis) |
| 23:25:35 | × | Flonk quits (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds)) |
| 23:25:40 | → | renzhi joins (~xp@2607:fa49:6500:b100::5cef) |
| 23:25:40 | → | kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
| 23:25:56 | → | Flonk joins (~Flonk@vps-zap441517-1.zap-srv.com) |
| 23:27:11 | × | pfurla quits (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…) |
| 23:27:56 | × | burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection) |
| 23:28:25 | × | _bo quits (~bo@217.18.216.247) (Quit: Leaving) |
| 23:28:27 | × | Codaraxis__ quits (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
| 23:29:32 | → | kritzefitz_ joins (~kritzefit@debian/kritzefitz) |
| 23:31:47 | × | jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 256 seconds) |
| 23:32:30 | × | ph88 quits (~ph88@2a02:8109:9e00:71d0:54ac:14f0:5fcb:286d) (Quit: Leaving) |
| 23:34:29 | <hololeap> | f [1,2,3,4] [1,2,6,7,8] === ([1,2], ([3,4],[6,7,8])) |
| 23:34:38 | <hololeap> | is there a name for this, or something similar? |
| 23:34:56 | <Axman6> | that looks very not total |
| 23:34:59 | <Axman6> | f [] [] = ? |
| 23:35:19 | kritzefitz_ | is now known as kritzefitz |
| 23:35:21 | <hololeap> | f [] [] == ([], ([], [])) ? |
| 23:35:30 | <Axman6> | hmm, yes |
| 23:35:37 | <geekosaur> | and do you expect it to nest more tuples in some cases? |
| 23:35:56 | <geekosaur> | oh, I see |
| 23:36:13 | × | mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal) |
| 23:36:30 | <hololeap> | no, I just want to find a common prefix and return it plus the different suffixes of the two lists |
| 23:37:17 | → | pfurla joins (~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) |
| 23:37:23 | <boxscape> | I suppose you're making a trie |
| 23:37:26 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 23:37:48 | <hololeap> | no, not a trie |
| 23:38:02 | <Axman6> | it's literally just collecting the headfs and tails right? |
| 23:38:22 | <hololeap> | let me see if I can hammer it out real quick |
| 23:38:33 | <hololeap> | I'm trying to recreate this: https://hackage.haskell.org/package/system-filepath-0.4.14/docs/Filesystem-Path.html#v:stripPrefix |
| 23:39:20 | <monochrom> | Data.List.stripPrefix |
| 23:39:34 | <monochrom> | Err I guess not exactly. |
| 23:39:44 | <jackdk> | what about https://hackage.haskell.org/package/monoid-subclasses-1.1.2/docs/Data-Monoid-GCD.html#v:stripCommonPrefix ? |
| 23:40:07 | <Axman6> | oh, it's the common prefix, right, I understand now |
| 23:40:15 | <jackdk> | and then some swizzling to turn the 3-tuple into the shape you actually want |
| 23:40:16 | <Axman6> | that does look useful (particularly for tries) |
| 23:40:45 | <jackdk> | yeah hololeap pretty sure you want stripCommonPrefix from monoid-subclasses |
| 23:42:41 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
| 23:42:48 | <monochrom> | Go through System.FilePath.splitPath then Data.List.stripPrefix then System.FilePath.joinPath |
| 23:42:58 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 23:45:17 | <hololeap> | monochrom: wait, why not just use Data.List.stripPrefix? |
| 23:46:02 | <monochrom> | > stripPrefix "/myd" "/mydir/m.mov" |
| 23:46:03 | <lambdabot> | Just "ir/m.mov" |
| 23:46:11 | <hololeap> | oh, good point |
| 23:46:18 | <awpr> | > stripPrefix "/tmp/" "/tmp//file.txt" |
| 23:46:19 | <lambdabot> | Just "/file.txt" |
| 23:46:31 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds) |
| 23:46:39 | <Axman6> | > stripPrefix "1234" "1256" |
| 23:46:40 | <lambdabot> | Nothing |
| 23:46:49 | <Axman6> | I would guess that's why |
| 23:47:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 23:47:14 | → | vysn joins (~vysn@user/vysn) |
| 23:48:47 | × | hippoid quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
| 23:49:30 | → | burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
| 23:51:10 | × | jeffz quits (~user@lambda.xen.prgmr.com) (Remote host closed the connection) |
| 23:51:17 | → | jeffz joins (~user@lambda.xen.prgmr.com) |
| 23:56:19 | × | zer0bitz quits (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 23:57:12 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 23:58:01 | <jackdk> | % import Data.Monoid.GCD |
| 23:58:02 | <yahb> | jackdk: ; <no location info>: error:; Could not find module `Data.Monoid.GCD'; Perhaps you meant Data.Monoid (from base-4.15.0.0) |
| 23:58:07 | <jackdk> | ah well |
| 23:59:29 | <jackdk> | Prelude Data.Monoid.GCD> stripCommonPrefix [1, 2, 3, 4] [1, 2, 6, 7, 8] -- => ([1,2],[3,4],[6,7,8]) |
| 23:59:52 | × | max22- quits (~maxime@2a01cb08833598008751b1889105ced7.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
All times are in UTC on 2021-12-01.