Logs on 2021-09-27 (liberachat/#haskell)
| 00:00:29 | × | zer0bitz quits (~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 00:03:41 | × | nabaiste^ quits (~nabaiste@68.101.50.106) (Ping timeout: 252 seconds) |
| 00:04:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:04:27 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 00:04:27 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:04:58 | → | nabaiste^ joins (~nabaiste@68.101.50.106) |
| 00:09:11 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 00:11:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 00:17:05 | → | segfaultfizzbuzz joins (~segfaultf@135-180-0-138.static.sonic.net) |
| 00:17:25 | <segfaultfizzbuzz> | my eyes are crossing as i try to learn more about programming languages |
| 00:17:52 | → | cjb87253 joins (~cjb@user/cjb) |
| 00:18:00 | × | cjb quits (~cjb@user/cjb) (Ping timeout: 260 seconds) |
| 00:18:16 | cjb87253 | is now known as cjb |
| 00:23:12 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 00:23:14 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 00:23:49 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 00:25:40 | <segfaultfizzbuzz> | i feel bombarded by an endless collection of abstractions and constraints which, if i want my code to work or be effective, it must take into account |
| 00:27:53 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 00:31:43 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 00:32:11 | <Cale> | In cases like that, get something working first, then work out which abstractions to apply. |
| 00:38:24 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 00:44:54 | × | falafel_ quits (~falafel@2603-8000-d800-688c-7903-5fe9-5138-968d.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 01:01:31 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:01:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 01:01:31 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:02:11 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 01:10:52 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 01:12:09 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:13:16 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:17:42 | <sm> | absolutely. Add abstractions and constraints when your code requires you to |
| 01:23:26 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 01:29:05 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:29:06 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 01:29:06 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:30:00 | → | lavaman joins (~lavaman@98.38.249.169) |
| 01:35:25 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 265 seconds) |
| 01:38:10 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 01:38:18 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 01:39:25 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds) |
| 01:39:46 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 01:44:07 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 01:44:27 | × | xff0x quits (~xff0x@2001:1a81:52da:9800:f593:2afb:aa0a:4d64) (Ping timeout: 240 seconds) |
| 01:45:13 | → | mikoto-chan joins (~mikoto-ch@83.137.2.244) |
| 01:46:42 | → | xff0x joins (~xff0x@2001:1a81:5315:a700:e786:c90b:4d0b:4699) |
| 01:47:33 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 01:48:17 | × | jespada quits (~jespada@host196.190-3-30.dynamic.telmex.net.ar) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:52:06 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 01:54:59 | → | neurocyte01324 joins (~neurocyte@user/neurocyte) |
| 01:56:52 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 01:56:52 | neurocyte01324 | is now known as neurocyte0132 |
| 01:58:36 | → | zebrag joins (~chris@user/zebrag) |
| 02:04:45 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:07:59 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 02:08:10 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:09:06 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 02:10:11 | × | td_ quits (~td@94.134.91.109) (Ping timeout: 252 seconds) |
| 02:11:45 | → | td_ joins (~td@muedsl-82-207-238-023.citykom.de) |
| 02:15:49 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:15:55 | × | sneedsfeed quits (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Ping timeout: 256 seconds) |
| 02:15:58 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 02:24:55 | × | yinghua quits (~yinghua@2800:2121:1400:1db:dd9a:21db:bfa:2483) (Quit: Leaving) |
| 02:25:30 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
| 02:28:09 | × | alx741 quits (~alx741@186.178.109.140) (Quit: alx741) |
| 02:34:09 | × | mestre quits (~mestre@191.177.175.57) (Quit: leaving) |
| 02:40:19 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
| 02:41:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 02:41:55 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:43:40 | → | falafel_ joins (~falafel@2603-8000-d800-688c-d1df-4118-0ede-09f0.res6.spectrum.com) |
| 02:44:47 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 03:00:03 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:01:00 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 03:02:59 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
| 03:19:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:19:50 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 03:19:50 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:21:50 | × | hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection) |
| 03:24:25 | → | hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
| 03:25:37 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 03:30:23 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 03:30:35 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 03:42:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:42:30 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 03:42:30 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:42:49 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:44:50 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 03:46:59 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 03:51:56 | → | Guest1654 joins (~Guest16@219.sub-174-250-145.myvzw.com) |
| 03:52:58 | <Guest1654> | Whats good any one on here |
| 03:57:01 | → | Guest90 joins (~Guest90@219.sub-174-250-145.myvzw.com) |
| 03:57:11 | → | falafel__ joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 04:00:26 | × | falafel_ quits (~falafel@2603-8000-d800-688c-d1df-4118-0ede-09f0.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 04:01:50 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 04:01:58 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 04:02:03 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 04:02:23 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 04:05:51 | × | Guest1654 quits (~Guest16@219.sub-174-250-145.myvzw.com) (Ping timeout: 256 seconds) |
| 04:06:14 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 04:09:15 | × | Guest90 quits (~Guest90@219.sub-174-250-145.myvzw.com) (Ping timeout: 256 seconds) |
| 04:16:18 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 04:20:26 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:20:26 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 04:20:26 | → | wroathe joins (~wroathe@user/wroathe) |
| 04:22:32 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 04:29:25 | → | lavaman joins (~lavaman@98.38.249.169) |
| 04:30:34 | Axman6 | Sadly, there was, in fact, no one on here |
| 04:31:24 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 04:33:44 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 04:34:38 | → | zmt00 joins (~zmt00@user/zmt00) |
| 04:35:23 | × | segfaultfizzbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 252 seconds) |
| 04:36:06 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 04:38:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:49:05 | → | chomwitt joins (~chomwitt@2a02:587:dc0a:5800:12c3:7bff:fe6d:d374) |
| 04:53:21 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 04:57:40 | → | emf joins (~emf@2601:600:104:1fb:1448:b25b:b518:8649) |
| 04:58:16 | × | emf quits (~emf@2601:600:104:1fb:1448:b25b:b518:8649) (Client Quit) |
| 04:58:59 | → | emf joins (~emf@2601:600:104:1fb:1448:b25b:b518:8649) |
| 04:59:38 | → | emf_ joins (~emf@2601:602:9401:b660:47d:d5f4:4143:7c05) |
| 05:03:26 | × | emf quits (~emf@2601:600:104:1fb:1448:b25b:b518:8649) (Ping timeout: 260 seconds) |
| 05:03:29 | → | emf__ joins (~emf@2620:10d:c090:400::5:5f6f) |
| 05:04:22 | × | emf_ quits (~emf@2601:602:9401:b660:47d:d5f4:4143:7c05) (Ping timeout: 260 seconds) |
| 05:05:09 | × | cjb quits (~cjb@user/cjb) () |
| 05:11:57 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 05:19:23 | → | zangi joins (~zangi@103.154.230.133) |
| 05:21:59 | <zangi> | does cabal test normally takes an argument? I've seen a package from hackage that its test takes an argument, i.e. `main = do [control_port, test_port] <- getArgs` which will fail if I run `cabal test` |
| 05:23:28 | → | emf joins (~emf@2620:10d:c090:400::5:5f6f) |
| 05:25:22 | × | emf__ quits (~emf@2620:10d:c090:400::5:5f6f) (Ping timeout: 260 seconds) |
| 05:26:10 | <Axman6> | I can't remember ever seeing that |
| 05:27:00 | <Axman6> | though many test frameworks do provide a function you can assign main to and they will often support some kind of configuration - perhaps try cabal test --help and see if there's something about test arguments |
| 05:27:15 | <Axman6> | I know stack has a way, and I would be extremely surprised of cabal doesn't |
| 05:27:29 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 05:28:57 | <zangi> | https://hackage.haskell.org/package/serialport-0.5.2/src/tests/Tests.hs |
| 05:30:49 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 05:35:08 | <sclv> | zangi: see `cabal test help` and it'll show you the flags (which includes --test-options) |
| 05:35:36 | → | emf_ joins (~emf@2620:10d:c090:400::5:5f6f) |
| 05:35:49 | × | emf quits (~emf@2620:10d:c090:400::5:5f6f) (Ping timeout: 252 seconds) |
| 05:37:30 | × | mikoto-chan quits (~mikoto-ch@83.137.2.244) (Ping timeout: 260 seconds) |
| 05:38:35 | → | emf joins (~emf@2620:10d:c090:400::5:5f6f) |
| 05:39:01 | <zangi> | isn't `cabal build` run the test by default? |
| 05:39:31 | → | mikoto-chan joins (~mikoto-ch@83.137.2.246) |
| 05:41:17 | <sclv> | nope! you have to ask it to |
| 05:42:10 | × | emf_ quits (~emf@2620:10d:c090:400::5:5f6f) (Ping timeout: 260 seconds) |
| 05:42:25 | <Axman6> | the other way around is true, cabal test will build too |
| 05:42:25 | <zangi> | oh shoot, I was confusing it with Nix package manager which enables the test by default |
| 05:47:42 | → | wroathe joins (~wroathe@user/wroathe) |
| 05:48:33 | × | ircbrowse_tom quits (~ircbrowse@2a01:4f8:1c1c:9319::1) (ZNC 1.7.5+deb4 - https://znc.in) |
| 05:48:57 | → | ircbrowse_tom joins (~ircbrowse@2a01:4f8:1c1c:9319::1) |
| 05:48:57 | Server | sets mode +Cnt |
| 05:49:09 | → | drewolson joins (~drewolson@user/drewolson) |
| 05:49:16 | → | shanemikel joins (~shanemike@desk.roadwar.net) |
| 05:49:24 | → | mcfrdy joins (~mcfrdy@user/mcfrdy) |
| 05:49:24 | → | erisco joins (~erisco@d24-57-249-233.home.cgocable.net) |
| 05:51:53 | → | max22- joins (~maxime@2a01cb0883359800e72b80574f347e03.ipv6.abo.wanadoo.fr) |
| 05:52:16 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 05:54:41 | × | sm2n quits (~sm2n@user/sm2n) (*.net *.split) |
| 05:54:41 | × | Vq quits (~vq@90-227-195-41-no77.tbcn.telia.com) (*.net *.split) |
| 05:54:41 | × | fiddlerwoaroof quits (~fiddlerwo@user/fiddlerwoaroof) (*.net *.split) |
| 05:54:41 | × | aji quits (~alex@prickle.ajitek.net) (*.net *.split) |
| 05:54:41 | × | tito quits (tito@tilde.team) (*.net *.split) |
| 05:54:41 | × | astra` quits (sid289983@user/amish) (*.net *.split) |
| 05:54:41 | × | srk quits (~sorki@user/srk) (*.net *.split) |
| 05:54:41 | × | adium quits (adium@user/adium) (*.net *.split) |
| 05:54:41 | × | eldritch_ quits (~eldritch@user/eldritch/x-9272577) (*.net *.split) |
| 05:54:41 | × | flukiluke quits (~m-7humut@plum.alephc.xyz) (*.net *.split) |
| 05:54:41 | × | mrus quits (~mrus@149.28.224.172) (*.net *.split) |
| 05:54:41 | × | carter quits (sid14827@id-14827.helmsley.irccloud.com) (*.net *.split) |
| 05:54:41 | × | gmc quits (sid58314@id-58314.ilkley.irccloud.com) (*.net *.split) |
| 05:54:41 | × | connrs quits (~connrs@user/connrs) (*.net *.split) |
| 05:54:41 | × | tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split) |
| 05:54:41 | × | stampirl quits (~stampirl@195-154-112-77.rev.poneytelecom.eu) (*.net *.split) |
| 05:54:41 | × | sus quits (zero@user/zeromomentum) (*.net *.split) |
| 05:54:41 | × | micro quits (~micro@user/micro) (*.net *.split) |
| 05:54:41 | × | kosmikus quits (~kosmikus@nullzig.kosmikus.org) (*.net *.split) |
| 05:54:41 | × | angerman quits (sid209936@id-209936.ilkley.irccloud.com) (*.net *.split) |
| 05:54:41 | × | hook54321 quits (sid149355@user/hook54321) (*.net *.split) |
| 05:54:41 | × | ProofTechnique quits (sid79547@id-79547.ilkley.irccloud.com) (*.net *.split) |
| 05:54:41 | × | whez quits (sid470288@id-470288.lymington.irccloud.com) (*.net *.split) |
| 05:54:41 | × | lisq quits (~quassel@lis.moe) (*.net *.split) |
| 05:54:41 | × | SoF quits (~skius@user/skius) (*.net *.split) |
| 05:54:41 | × | rbocquet quits (~weechat@2001:bc8:47a8:44e::1) (*.net *.split) |
| 05:54:42 | × | energizer quits (~energizer@user/energizer) (*.net *.split) |
| 05:54:42 | × | drewr quits (~drew@user/drewr) (*.net *.split) |
| 05:54:42 | × | Unode quits (~Unode@194.94.44.220) (*.net *.split) |
| 05:54:42 | × | polux quits (~polux@51.15.169.172) (*.net *.split) |
| 05:54:42 | × | Dykam quits (Dykam@dykam.nl) (*.net *.split) |
| 05:54:42 | × | wanko quits (~wanko@51.15.4.226) (*.net *.split) |
| 05:54:42 | × | Clint quits (~Clint@user/clint) (*.net *.split) |
| 05:54:42 | × | Trattue quits (~Trattue@152.70.182.158) (*.net *.split) |
| 05:54:42 | × | dme2 quits (~dme2@67.205.140.199) (*.net *.split) |
| 05:54:42 | × | drdo quits (~drdo@overlord0.drdo.eu) (*.net *.split) |
| 05:54:42 | × | agander_m quits (sid407952@id-407952.tinside.irccloud.com) (*.net *.split) |
| 05:54:42 | × | _0x47 quits (sid508683@id-508683.tinside.irccloud.com) (*.net *.split) |
| 05:54:42 | × | kristjansson_ quits (sid126207@id-126207.tinside.irccloud.com) (*.net *.split) |
| 05:54:42 | × | jle` quits (~justin@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split) |
| 05:54:42 | × | mrckndt quits (~mrckndt@user/mrckndt) (*.net *.split) |
| 05:54:42 | × | earthy quits (~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0) (*.net *.split) |
| 05:54:42 | × | frobnicator quits (~frobnicat@185-227-75-147.dsl.cambrium.nl) (*.net *.split) |
| 05:54:42 | × | jiribenes quits (~jiribenes@rosa.jiribenes.com) (*.net *.split) |
| 05:54:42 | × | PHO`__ quits (~pho@akari.cielonegro.org) (*.net *.split) |
| 05:54:42 | × | immae quits (~immae@2a01:4f8:141:53e7::) (*.net *.split) |
| 05:54:42 | × | remedan quits (~remedan@balak.me) (*.net *.split) |
| 05:54:42 | × | alinab quits (sid468903@id-468903.helmsley.irccloud.com) (*.net *.split) |
| 05:54:42 | × | megaTherion quits (~therion@coruscant.unix.io) (*.net *.split) |
| 05:54:42 | × | amirouche quits (~amirouche@user/amirouche) (*.net *.split) |
| 05:54:42 | × | mstruebing quits (~maex@2001:41d0:8:93c7::1) (*.net *.split) |
| 05:54:42 | × | arkeet quits (arkeet@moriya.ca) (*.net *.split) |
| 05:54:42 | × | codedmart quits (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split) |
| 05:54:42 | × | ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split) |
| 05:54:42 | × | Kabouik quits (~Kabouik@user/kabouik) (*.net *.split) |
| 05:54:42 | × | Guest6642 quits (~mike@user/feetwind) (*.net *.split) |
| 05:54:42 | × | Ferdirand quits (~somebody@2001:4c78:2012:5000::2) (*.net *.split) |
| 05:54:42 | × | bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (*.net *.split) |
| 05:54:42 | × | greenbourne277 quits (~greenbour@2001:4b98:dc2:45:216:3eff:fe8a:bbf0) (*.net *.split) |
| 05:54:42 | × | lieven quits (~mal@ns2.wyrd.be) (*.net *.split) |
| 05:54:49 | → | micro joins (~micro@user/micro) |
| 05:54:50 | → | Clint joins (~Clint@user/clint) |
| 05:54:50 | → | wanko joins (~wanko@51.15.4.226) |
| 05:54:50 | → | bwe joins (~bwe@2a01:4f8:1c1c:4878::2) |
| 05:54:52 | → | lisq joins (~quassel@lis.moe) |
| 05:54:52 | → | Ferdirand joins (~somebody@2001:4c78:2012:5000::2) |
| 05:54:52 | → | alinab joins (sid468903@id-468903.helmsley.irccloud.com) |
| 05:54:56 | → | Dykam joins (Dykam@dykam.nl) |
| 05:54:56 | → | kosmikus joins (~kosmikus@nullzig.kosmikus.org) |
| 05:54:57 | → | rbocquet joins (~weechat@2001:bc8:47a8:44e::1) |
| 05:54:57 | → | tito joins (tito@tilde.team) |
| 05:54:57 | → | codedmart joins (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
| 05:54:59 | → | arkeet joins (arkeet@moriya.ca) |
| 05:54:59 | → | mstruebing joins (~maex@2001:41d0:8:93c7::1) |
| 05:55:03 | → | ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com) |
| 05:55:03 | → | ggVGc joins (~ggVGc@a.lowtech.earth) |
| 05:55:07 | → | whez joins (sid470288@id-470288.lymington.irccloud.com) |
| 05:55:08 | → | kristjansson_ joins (sid126207@id-126207.tinside.irccloud.com) |
| 05:55:12 | → | greenbourne277 joins (~greenbour@2001:4b98:dc2:45:216:3eff:fe8a:bbf0) |
| 05:55:13 | → | lieven joins (~mal@ns2.wyrd.be) |
| 05:55:14 | → | Guest6642 joins (~mike@2406:d500:6:1:216:3cff:fe36:651) |
| 05:55:15 | → | earthy joins (~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0) |
| 05:55:18 | → | jle` joins (~justin@cpe-23-240-75-236.socal.res.rr.com) |
| 05:55:18 | → | Kabouik joins (~Kabouik@2a03:4000:4d:fbd:4fe:b1ff:fee3:35d) |
| 05:55:18 | → | frobnicator joins (~frobnicat@185-227-75-147.dsl.cambrium.nl) |
| 05:55:18 | → | tomboy64 joins (~tomboy64@2a02:2454:416:db00:ba27:ebff:fe58:73c2) |
| 05:55:21 | → | amirouche joins (~amirouche@2a01:4f8:c0c:d9c2::1) |
| 05:55:22 | → | gmc_ joins (sid58314@id-58314.ilkley.irccloud.com) |
| 05:55:28 | → | angerman joins (sid209936@id-209936.ilkley.irccloud.com) |
| 05:55:29 | → | sus joins (zero@user/zeromomentum) |
| 05:55:33 | → | mrckndt joins (~mrckndt@user/mrckndt) |
| 05:55:34 | → | immae joins (~immae@2a01:4f8:141:53e7::) |
| 05:55:35 | → | polux joins (~polux@51.15.169.172) |
| 05:55:37 | → | carter joins (sid14827@id-14827.helmsley.irccloud.com) |
| 05:55:38 | → | astra` joins (sid289983@id-289983.hampstead.irccloud.com) |
| 05:55:41 | × | tomboy64 quits (~tomboy64@2a02:2454:416:db00:ba27:ebff:fe58:73c2) (Changing host) |
| 05:55:41 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 05:55:45 | → | _0x47 joins (sid508683@id-508683.tinside.irccloud.com) |
| 05:55:46 | × | Kabouik quits (~Kabouik@2a03:4000:4d:fbd:4fe:b1ff:fee3:35d) (Changing host) |
| 05:55:46 | → | Kabouik joins (~Kabouik@user/kabouik) |
| 05:55:49 | → | agander_m joins (sid407952@id-407952.tinside.irccloud.com) |
| 05:55:52 | × | astra` quits (sid289983@id-289983.hampstead.irccloud.com) (Changing host) |
| 05:55:52 | → | astra` joins (sid289983@user/amish) |
| 05:55:56 | → | Trattue joins (~Trattue@152.70.182.158) |
| 05:56:07 | → | jiribenes joins (~jiribenes@rosa.jiribenes.com) |
| 05:56:08 | → | mrus joins (~mrus@149.28.224.172) |
| 05:56:10 | → | sm2n joins (~sm2n@user/sm2n) |
| 05:56:17 | → | srk joins (~sorki@user/srk) |
| 05:56:23 | → | dme2 joins (~dme2@67.205.140.199) |
| 05:56:24 | → | drdo joins (~drdo@overlord0.drdo.eu) |
| 05:56:25 | → | hook54321 joins (sid149355@user/hook54321) |
| 05:56:32 | → | connrs joins (~connrs@user/connrs) |
| 05:56:34 | → | remedan joins (~remedan@balak.me) |
| 05:56:36 | → | aji joins (~alex@prickle.ajitek.net) |
| 05:56:36 | → | eldritch_ joins (~eldritch@user/eldritch/x-9272577) |
| 05:57:54 | → | Unode joins (~Unode@194.94.44.220) |
| 05:58:53 | → | energizer joins (~energizer@user/energizer) |
| 05:59:38 | → | fiddlerwoaroof joins (~fiddlerwo@user/fiddlerwoaroof) |
| 06:00:00 | → | Vq joins (~vq@90-227-195-41-no77.tbcn.telia.com) |
| 06:02:52 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:03:17 | → | adium joins (adium@user/adium) |
| 06:04:20 | × | amirouche quits (~amirouche@2a01:4f8:c0c:d9c2::1) (Quit: WeeChat 2.8) |
| 06:04:32 | → | amirouche joins (~amirouche@user/amirouche) |
| 06:04:45 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 06:04:53 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 06:05:00 | → | megaTherion joins (~therion@coruscant.unix.io) |
| 06:05:23 | × | mikoto-chan quits (~mikoto-ch@83.137.2.246) (Quit: mikoto-chan) |
| 06:09:16 | × | hololeap quits (~hololeap@user/hololeap) (Quit: Bye) |
| 06:11:38 | × | falafel__ quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 252 seconds) |
| 06:21:52 | → | falafel__ joins (~falafel@2603-8000-d800-688c-d1df-4118-0ede-09f0.res6.spectrum.com) |
| 06:25:37 | → | michalz joins (~michalz@185.246.204.55) |
| 06:27:30 | → | Ariakenom joins (~patrik@h-81-170-208-30.A163.corp.bahnhof.se) |
| 06:32:38 | → | kuribas joins (~user@188.189.62.173) |
| 06:33:01 | × | emf quits (~emf@2620:10d:c090:400::5:5f6f) (Ping timeout: 252 seconds) |
| 06:41:37 | × | brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Remote host closed the connection) |
| 06:44:12 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 06:44:20 | × | zangi quits (~zangi@103.154.230.133) (Quit: zangi) |
| 06:47:02 | → | kenran joins (~kenran@b2b-37-24-119-190.unitymedia.biz) |
| 06:49:52 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 06:51:09 | → | ubert joins (~Thunderbi@178.115.58.211.wireless.dyn.drei.com) |
| 06:52:39 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:54:57 | → | chele joins (~chele@user/chele) |
| 06:55:27 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 06:56:40 | → | rtjure joins (~rtjure@bras-79-132-17-74.comnet.bg) |
| 06:57:26 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:64e7:f1a7:9c7e:5b3b) |
| 06:58:59 | × | kuribas quits (~user@188.189.62.173) (Remote host closed the connection) |
| 07:04:48 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:08:55 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:10:47 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 07:13:26 | × | falafel__ quits (~falafel@2603-8000-d800-688c-d1df-4118-0ede-09f0.res6.spectrum.com) (Ping timeout: 245 seconds) |
| 07:18:04 | → | lavaman joins (~lavaman@98.38.249.169) |
| 07:18:47 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb8375874f69261f85b4.dip0.t-ipconnect.de) |
| 07:22:11 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 07:27:51 | → | acidjnk_new3 joins (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
| 07:30:53 | → | acidjnk joins (~acidjnk@p200300d0c703cb839546693cf9acbce8.dip0.t-ipconnect.de) |
| 07:31:18 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb8375874f69261f85b4.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 07:32:36 | × | acidjnk_new3 quits (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 07:33:58 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:34:22 | × | immae quits (~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 2.9) |
| 07:34:42 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:34:49 | → | immae joins (~immae@2a01:4f8:141:53e7::) |
| 07:43:30 | × | lieven quits (~mal@ns2.wyrd.be) (Ping timeout: 260 seconds) |
| 07:44:56 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 08:00:45 | × | xff0x quits (~xff0x@2001:1a81:5315:a700:e786:c90b:4d0b:4699) (Ping timeout: 250 seconds) |
| 08:01:52 | → | xff0x joins (~xff0x@2001:1a81:5315:a700:680b:605d:85e2:404c) |
| 08:03:33 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 08:06:46 | → | lieven joins (~mal@ns2.wyrd.be) |
| 08:10:40 | → | nfd joins (~nfd@user/nfd) |
| 08:18:27 | → | benin036932301 joins (~benin@183.82.207.251) |
| 08:19:58 | × | terrorjack quits (~terrorjac@ec2-13-37-149-154.eu-west-3.compute.amazonaws.com) (Ping timeout: 265 seconds) |
| 08:20:23 | → | SoF joins (~skius@user/skius) |
| 08:20:34 | → | __monty__ joins (~toonn@user/toonn) |
| 08:22:35 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 08:26:46 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 08:26:56 | × | nabaiste^ quits (~nabaiste@68.101.50.106) (Ping timeout: 252 seconds) |
| 08:29:18 | → | nabaiste^ joins (~nabaiste@68.101.50.106) |
| 08:29:38 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 08:33:02 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 08:33:57 | → | ubert1 joins (~Thunderbi@178.115.58.211.wireless.dyn.drei.com) |
| 08:53:00 | → | teddyc joins (theodorc@cassarossa.samfundet.no) |
| 08:55:50 | × | Guest6489 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 08:57:12 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:58:43 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Remote host closed the connection) |
| 09:00:43 | → | chris joins (~chris@81.96.113.213) |
| 09:00:47 | chris | is now known as Guest8621 |
| 09:05:26 | × | Guest8621 quits (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
| 09:05:47 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:1568:8cd5:25bd:6e4e) (Ping timeout: 240 seconds) |
| 09:07:54 | × | azeem quits (~azeem@2a00:801:2d6:ba33:1dbc:2215:71a9:ffcb) (Read error: Connection reset by peer) |
| 09:09:01 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 09:11:32 | → | azeem joins (~azeem@emp-180-222.eduroam.uu.se) |
| 09:13:59 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:19:37 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:1568:8cd5:25bd:6e4e) |
| 09:20:23 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
| 09:24:24 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:1568:8cd5:25bd:6e4e) (Ping timeout: 265 seconds) |
| 09:25:49 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:25:49 | × | azeem quits (~azeem@emp-180-222.eduroam.uu.se) (Read error: Connection reset by peer) |
| 09:28:27 | → | azeem joins (~azeem@emp-180-222.eduroam.uu.se) |
| 09:38:11 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 09:39:45 | <dminuoso> | Does warp not come with something to parse HostPreference? |
| 09:40:10 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 09:41:09 | <dminuoso> | https://hackage.haskell.org/package/streaming-commons-0.2.2.1/docs/src/Data.Streaming.Network.Internal.html#line-66 |
| 09:41:11 | <dminuoso> | Zzzz |
| 09:41:32 | <dminuoso> | So essentially there's no tools that can validate a host preference, I just have to stuff it into `run` and watch it blow up |
| 09:51:09 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:1568:8cd5:25bd:6e4e) |
| 09:52:58 | → | terrorjack joins (~terrorjac@2a05:d012:f4:f400:3981:7d7e:56ee:2dd9) |
| 09:55:31 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:1568:8cd5:25bd:6e4e) (Ping timeout: 245 seconds) |
| 09:55:37 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 09:56:07 | → | troydm1 joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 09:57:08 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds) |
| 09:59:07 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 10:03:26 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Ping timeout: 245 seconds) |
| 10:08:51 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 245 seconds) |
| 10:09:50 | × | kenran quits (~kenran@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 265 seconds) |
| 10:10:27 | × | azeem quits (~azeem@emp-180-222.eduroam.uu.se) (Read error: Connection reset by peer) |
| 10:10:46 | → | azeem joins (~azeem@2a00:801:2d6:ba33:1dbc:2215:71a9:ffcb) |
| 10:19:01 | → | ub joins (~Thunderbi@77.119.200.198.wireless.dyn.drei.com) |
| 10:20:47 | × | ubert1 quits (~Thunderbi@178.115.58.211.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 10:20:55 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:1568:8cd5:25bd:6e4e) |
| 10:20:57 | × | ubert quits (~Thunderbi@178.115.58.211.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
| 10:20:57 | ub | is now known as ubert |
| 10:21:53 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:22:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:24:12 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 10:25:04 | × | azeem quits (~azeem@2a00:801:2d6:ba33:1dbc:2215:71a9:ffcb) (Read error: Connection reset by peer) |
| 10:27:15 | → | azeem joins (~azeem@emp-180-222.eduroam.uu.se) |
| 10:28:12 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 10:28:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:28:29 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 10:30:11 | → | __monty__ joins (~toonn@user/toonn) |
| 10:33:26 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 10:34:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:38:34 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 10:39:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:40:07 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:45:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 10:45:58 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:51:24 | × | azeem quits (~azeem@emp-180-222.eduroam.uu.se) (Ping timeout: 265 seconds) |
| 10:51:55 | → | azeem joins (~azeem@2a00:801:2d6:ba33:1dbc:2215:71a9:ffcb) |
| 10:54:51 | × | azeem quits (~azeem@2a00:801:2d6:ba33:1dbc:2215:71a9:ffcb) (Read error: Connection reset by peer) |
| 10:55:04 | → | azeem joins (~azeem@emp-180-222.eduroam.uu.se) |
| 10:56:14 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 10:56:14 | × | azeem quits (~azeem@emp-180-222.eduroam.uu.se) (Read error: Connection reset by peer) |
| 10:56:40 | → | CiaoSen joins (~Jura@p2e5c6ba6.dip0.t-ipconnect.de) |
| 10:56:53 | → | azeem joins (~azeem@emp-180-222.eduroam.uu.se) |
| 10:57:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:58:59 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 10:59:24 | → | WhiteKarura joins (~WhiteKaru@user/whitekarura) |
| 10:59:29 | ← | WhiteKarura parts (~WhiteKaru@user/whitekarura) () |
| 11:00:04 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 11:00:51 | → | alx741 joins (~alx741@186.178.109.140) |
| 11:03:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 11:03:50 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:04:16 | × | xff0x quits (~xff0x@2001:1a81:5315:a700:680b:605d:85e2:404c) (Ping timeout: 245 seconds) |
| 11:09:17 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 11:10:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:14:56 | → | xff0x joins (~xff0x@2001:1a81:5315:a700:680b:605d:85e2:404c) |
| 11:15:09 | → | asgas joins (~asgas@c-24-30-27-91.hsd1.ga.comcast.net) |
| 11:15:29 | <asgas> | What should I be using for haskell package installing? Stack? Cabal? This is all new and confusing to me. |
| 11:15:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 11:16:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:17:21 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 265 seconds) |
| 11:19:47 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:20:21 | <maerwald> | cabal |
| 11:21:42 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 11:22:17 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:22:35 | <asgas> | Why cabal? I've read cabal hell is a thing. |
| 11:22:50 | <arahael> | cabal's improved over the years, it used to be far clunkier. |
| 11:24:35 | <merijn> | "cabal hell" as a real thing stopped existing over a decade ago |
| 11:24:36 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
| 11:24:41 | <arahael> | As for the package version things, the only thing stack helps there is they curate their package sets; but if you end up neeidng to go outside that set you're back where you started anyway. |
| 11:24:53 | <maerwald> | asgas: cabal is the standard |
| 11:25:12 | <asgas> | Alrighty then. I'll use cabal. What's the difference between a v1-install and v2-install? |
| 11:25:14 | <maerwald> | and currently has more active development |
| 11:25:15 | <merijn> | 95% of the people using the term "cabal hell" these days don't even know what "cabal hell" referred to and really just mean "I'm using outdated and bitrotted dependencies and now stuff don't work" |
| 11:25:35 | <merijn> | asgas: Just use "install" (i.e. v2-install in all versions you should consider using) |
| 11:25:42 | <arahael> | merijn: Also, "I'm using libraries that honestly shouldn't have ever been released". |
| 11:25:43 | <dibblego> | haha, 95% is generous |
| 11:25:47 | <maerwald> | merijn: I have projects that are 6-7 years old and I can still make them build with cabal |
| 11:26:01 | <merijn> | asgas: v1- vs v2- is backwards compat stuff |
| 11:26:35 | <merijn> | asgas: in cabal-install 3.0 install started working differently, but we're at 3.6 by now and you really shouldn't be using anything older than 3.0, so pretend v1- doesn't exist |
| 11:27:02 | <merijn> | dibblego: I know, probably closer to 99.9% of complainants don't know what actual cabal hell is >.> |
| 11:27:12 | <merijn> | dibblego: I like to hedge on the conservative side |
| 11:27:21 | <merijn> | maerwald: I'm not saying you can't build old stuff |
| 11:27:43 | <merijn> | maerwald: Just saying it's weird people use libraries that had 1 release a decade ago, then blame "cabal hell" when their code refuses to build |
| 11:27:58 | <asgas> | Is finding haskell developers difficult? Because haskell looks very cool compared to C or C++. |
| 11:28:14 | <maerwald> | asgas: good haskell developers or any? |
| 11:28:16 | <arahael> | asgas: You've found a few here easily enough? ;) |
| 11:29:06 | <dminuoso> | asgas: cabal hell is a thing from the "v1" past. "v2" is what addressed it, and it has become the default in recent cabal versions. So if you type `cabal build`, it will automatically use the v2-build command behind the scenes. |
| 11:29:35 | <Cajun> | cabal hell is just a specialized use of dependency hell right? |
| 11:29:39 | <dminuoso> | Relatedly, `cabal install` is no longer a thing for libraries, it's only useful for binaries. |
| 11:29:40 | <merijn> | dminuoso: Not even v1-hell |
| 11:29:42 | <merijn> | Cajun: No |
| 11:29:48 | <merijn> | Cajun: That's just the silly modern usage |
| 11:30:05 | <jneira[m]> | well to be honest still there are some cabal bugs which could corrupt the global store, but they are marginal imo |
| 11:30:09 | <maerwald> | stack has dependency hell too btw |
| 11:30:13 | <dminuoso> | asgas: so the regular flow for dependencies is to just declare them in your cabal file, and everything else happens automatically via `cabal run` and `cabal build`. :) |
| 11:30:25 | <jneira[m]> | but it is not the cabal hell from 2000 |
| 11:30:30 | <merijn> | Cajun: *Actual* cabal hell, from back in the day is when cabal would (silently) upgrade an installed package when installing something new. Which silently broke every installed package depending on the old version in an old recoverable way |
| 11:30:49 | <Cajun> | that sounds.. infuriating :P |
| 11:30:57 | <maerwald> | sandboxes fixed that |
| 11:31:00 | <merijn> | Cajun: The only way out of a sea of broken packages and obscure errors was nuking everything |
| 11:31:09 | <merijn> | Cajun: But that's not been an issue for close to a decade |
| 11:31:20 | <merijn> | Cajun: It was, hence the term "hell" |
| 11:31:26 | <jneira[m]> | (and cabal install -lib could cause cabal hell via ghc env files) |
| 11:31:50 | <merijn> | "my dependencies aren't compatible" is often labelled "cabal hell" these days, but that's weird, 'cos wtf is cabal supposed to do about that? |
| 11:32:04 | <merijn> | "don't use incompatible dependencies, then" |
| 11:32:05 | <maerwald> | merijn: throw away its solver |
| 11:32:07 | <maerwald> | lol |
| 11:32:41 | <maerwald> | a "curated package set" is really just a statement "I'm too lazy to think about what versions to use" |
| 11:32:42 | <merijn> | maerwald: Fuck it, let's throw away dependencies on just have everything depend on master and do versioning explicitly in the module names, like go >.> |
| 11:32:59 | <maerwald> | I've been there |
| 11:33:15 | <maerwald> | and I think the only ecosystem that does it right is ... C |
| 11:33:32 | <maerwald> | if you mess up your API, create a new package or get lost :p |
| 11:34:11 | <arahael> | merijn: Hang on, that sounds like Nix! |
| 11:34:15 | <jneira[m]> | dont try to be smart to make users be smart or die :-D |
| 11:34:19 | <maerwald> | PVP and semver is too much maintenance overhead for most people and it encourages not caring about API breakage |
| 11:36:22 | <maerwald> | also... the ability to change behavior of a function without even changing its types... is horrible. And that's one of the major selling points of PVP |
| 11:36:44 | <merijn> | maerwald: There's only one thing that gets people caring about API breakage |
| 11:36:50 | <maerwald> | it assumes people read changelogs and have good test coverage |
| 11:36:55 | <maerwald> | 2 assumptions that are mostly wrong |
| 11:36:58 | <merijn> | getting paid |
| 11:37:29 | <maerwald> | merijn: oh, like cardano? |
| 11:37:52 | <maerwald> | they get paid and their API is a constantly moving monstrosity :) |
| 11:37:53 | <merijn> | maerwald: Getting paid is a necessary, not sufficient condition for caring about breakage :p |
| 11:38:01 | <merijn> | maerwald: Don't know, don't care, tbh |
| 11:38:08 | <merijn> | I know cardano exists and that's all I know |
| 11:38:22 | → | alzgh joins (~alzgh@user/alzgh) |
| 11:38:29 | <maerwald> | well, getting paid is clearly not enough, yeah |
| 11:38:41 | <maerwald> | caring about API takes effort |
| 11:39:08 | <maerwald> | you're basically making using your library less expensive for others |
| 11:39:16 | <merijn> | People wanna rely on stable open source APIs, but most people build thing for themselves so they don't give a fuck about you |
| 11:39:36 | <merijn> | maerwald: You make that sound like a feature :p |
| 11:39:45 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:39:50 | <maerwald> | but if others want to use your api real bad, you don't need to care |
| 11:40:03 | <maerwald> | like base breaking every other year |
| 11:40:12 | <maerwald> | you can hardly opt out |
| 11:41:35 | <arahael> | What's PVP again? :( |
| 11:41:51 | <maerwald> | it's like PVE, except you're fighting version bounds, LOL |
| 11:42:06 | <arahael> | :facepalm:. |
| 11:42:29 | → | dextaa joins (~DV@user/dextaa) |
| 11:42:35 | × | juhp quits (~juhp@118.200.109.69) (Quit: juhp) |
| 11:42:49 | → | juhp joins (~juhp@118.200.109.69) |
| 11:42:57 | <merijn> | arahael: Package Versioning Policy |
| 11:42:59 | <merijn> | @where pvp |
| 11:42:59 | <lambdabot> | https://pvp.haskell.org/ |
| 11:43:10 | <arahael> | merijn: Thanks. :) |
| 11:44:04 | <maerwald> | add to your bashrc: alias cabal_build='cabal build --allow-newer' |
| 11:44:06 | <maerwald> | :p |
| 11:44:11 | <jneira[m]> | https://cabal.fandom.com/wiki/Player_versus_player |
| 11:45:31 | <Franciman> | Can I ask about the happy parser generator here? Or is it considered offtopic? |
| 11:45:39 | <dminuoso> | Ask. |
| 11:45:46 | <Franciman> | basically I wanted to know if there is a way to get happy to tell me what the conflicts it found are |
| 11:45:51 | <Franciman> | it just says there are 60 conflicts |
| 11:46:05 | <Franciman> | so I want to ask it: can you please tell me where? ^^ |
| 11:47:55 | × | juhp quits (~juhp@118.200.109.69) (Quit: juhp) |
| 11:48:08 | → | juhp joins (~juhp@118.200.109.69) |
| 11:48:22 | × | juhp quits (~juhp@118.200.109.69) (Remote host closed the connection) |
| 11:48:32 | → | juhp joins (~juhp@118.200.109.69) |
| 11:48:41 | gmc_ | is now known as gmc |
| 11:48:48 | <Franciman> | oh! Found out, I can ask that by telling it to put grammar info in a file |
| 11:48:57 | × | ubert quits (~Thunderbi@77.119.200.198.wireless.dyn.drei.com) (Quit: ubert) |
| 11:49:00 | <Franciman> | I couldn't believe I would say this but, damn, bison is so advanced |
| 11:49:13 | <Franciman> | it shows the grammar problems WITH COLORS |
| 11:49:15 | <Franciman> | lol |
| 11:49:24 | × | alx741 quits (~alx741@186.178.109.140) (Ping timeout: 265 seconds) |
| 11:50:17 | <Franciman> | I can also ask it to produce counterexamples, displaying what the conflicts are |
| 11:51:14 | <asgas> | Would you say haskell is a difficult language to learn? |
| 11:51:19 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 11:51:33 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:51:50 | <earthy> | asgas: yes, I would. but that has a bit to do with functional programming in general being not easy to learn for everyone. |
| 11:52:08 | <merijn> | asgas: Yes, but disagree with earthy's claim :p |
| 11:52:09 | <earthy> | (to some people it comes more easily than to others) |
| 11:52:12 | <arahael> | Also note: most devs seem to forget the difficulty they had with learning their first langauge. |
| 11:52:45 | <arahael> | I used qbasic for like, a year, not learning about functions. But when it comes to learning languages these days, I try to learn every single advanced feature the language has. |
| 11:52:57 | <merijn> | asgas: Programming is hard to learn. Learning Haskell is a lot like learning to program again from scratch (a feeling many experienced programmers have forgotten and/or surpressed) |
| 11:53:00 | <arahael> | (So I set a higher barrier) |
| 11:53:29 | <asgas> | I didn't know that purescript was made in haskell. I'm surprised. Same thing with shellcheck (A bash and other shell static analyzer for those who don't know what shellcheck is) |
| 11:53:29 | <merijn> | asgas: I know several people who learned Haskell as their first language and they didn't really struggle more than the people I saw learning python/JS as a first language |
| 11:53:36 | <arahael> | Haskell is also a gateway drug to trying to apply new and crazy stuff. |
| 11:54:11 | <merijn> | asgas: Learning Haskell as someone who already knows one (or more) mainstream languages will feel much harder than learning any other mainstream language, though |
| 11:54:13 | kuribas | is using idris for that now. |
| 11:55:07 | <kuribas> | maybe idris is a better learning language than haskell. |
| 11:55:22 | <arahael> | I think I made haskell harder for myself because when I was teaching myself haskell, I tried to learn how to do lens from scratch and all those excercises. |
| 11:55:25 | <kuribas> | type level programming is more elegant in idris. |
| 11:55:40 | <kuribas> | but haskell is more suitable for practical programs. |
| 11:55:56 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 11:56:55 | <dminuoso> | Personally I believe that learning Haskell has a good chance at making you a better programmer even in your old imperative/mainstream language. |
| 11:57:22 | <dminuoso> | For me it changed how I thought about programming in a lot of ways, which itself is enough reason. |
| 11:57:50 | <kuribas> | dminuoso: and it will spoil that language, because you no longer can tolerate badly written programs. |
| 11:58:04 | <asgas> | You think I should install xmonad, the wm for X11, to learn haskell better? |
| 11:58:12 | <arahael> | asgas: No. |
| 11:58:15 | × | juhp quits (~juhp@118.200.109.69) (Quit: juhp) |
| 11:58:17 | <kuribas> | asgas: no |
| 11:58:30 | → | juhp joins (~juhp@118.200.109.69) |
| 11:58:36 | <arahael> | asgas: If xmonad is exposing haskell like that, then it's badly written. :) |
| 11:58:51 | <asgas> | xmonad is written in haskell and the config file is a haskell file. |
| 11:59:08 | <dminuoso> | Xmonad doesnt really teach haskell well enough |
| 11:59:21 | <dminuoso> | In part because large parts are just copy/paste, there's little actual programming/problem solving |
| 11:59:37 | <dminuoso> | And parts of it are not very idiomatic, due to the way xmonad is designed. |
| 11:59:42 | <kuribas> | asgas: I'd recommend "write yourself a scheme" |
| 12:00:26 | <asgas> | Would learning scheme/lisp make haskell easier to read? |
| 12:00:46 | <dminuoso> | Probably not. |
| 12:00:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 12:01:03 | <arahael> | scheme and lisp approach functional programming from very different directions, imho. |
| 12:01:07 | <dminuoso> | The closest thing that, I guess, could help is perhaps ML type of languages. |
| 12:01:10 | <dminuoso> | Say SML |
| 12:01:35 | <kuribas> | asgas: https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours |
| 12:02:04 | <kuribas> | asgas: no, but IMO SICP is one of the best texts about computing. |
| 12:02:09 | <kuribas> | and it uses scheme. |
| 12:02:15 | → | alx741 joins (~alx741@186.178.109.237) |
| 12:04:43 | <asgas> | So other than WIASI48, what other books do you recommend to learn haskell better? |
| 12:05:06 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Ping timeout: 245 seconds) |
| 12:06:46 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:07:06 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 12:07:09 | <arahael> | I liked "Real World Haskell", but that's a very dated book now. I could not learn from "Teach yourself a haskell" with their stupid deliberately broken english, though. |
| 12:07:29 | <arahael> | "Learn you a haskell for great good!", I mean. <-- Awful english. |
| 12:07:56 | <merijn> | arahael: That was on purpose |
| 12:08:16 | <arahael> | merijn: I know, and that makes it worse. |
| 12:08:18 | <merijn> | arahael: It was styled after "Why's poignant guide to ruby" |
| 12:08:29 | <arahael> | merijn: Except Why_ actually did it well. |
| 12:10:01 | <arahael> | merijn: And not once did LYAH refer to chunky bacon. |
| 12:10:15 | <dminuoso> | asgas: CIS194 is a great resource. |
| 12:10:32 | <dminuoso> | (Both versions, the one from Brent and the one from Breitner) |
| 12:10:48 | <kuribas> | CIS194 is great because it starts from the beginning, but doesn't feel like dumbing things down. |
| 12:10:49 | <dminuoso> | *Brent Yorgey and Joachim Breitner |
| 12:10:56 | <kuribas> | Or coming up with weird analogies. |
| 12:11:03 | <arahael> | merijn: Granted, I'm probably not a typical reader, since I didn't learn it from hearing it. :) |
| 12:11:21 | <arahael> | kuribas: Like Buritos? :) |
| 12:11:26 | <opqdonut> | asgas: not a book, but consider https://haskell.mooc.fi/, it has pretty good exercises (beating my own drum here :) |
| 12:11:29 | <kuribas> | arahael: yeah, or the box analogy. |
| 12:11:31 | × | asgas quits (~asgas@c-24-30-27-91.hsd1.ga.comcast.net) (Quit: Leaving) |
| 12:11:38 | <kuribas> | A functor is a box, a monad is a box, etc... |
| 12:11:46 | × | CiaoSen quits (~Jura@p2e5c6ba6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 12:11:50 | <kuribas> | That doesn't actually say anything. |
| 12:11:51 | <arahael> | kuribas: Luckily, we have unboxed types in haskell! |
| 12:12:07 | <kuribas> | yeah |
| 12:12:11 | <dminuoso> | opqdonut: Are you a professor in Helsinki? |
| 12:12:32 | <dminuoso> | Or where does this come from? |
| 12:12:37 | <kuribas> | "everything is a box" is only good if you're a cat. |
| 12:12:48 | <opqdonut> | dminuoso: yeah, helsinki. I'm not a professor but I'm affiliated with the university |
| 12:13:01 | <dminuoso> | I see. Guest lecturer? |
| 12:13:20 | <dminuoso> | Just trying to figure out how this excercise and you fit into all of this. |
| 12:13:43 | <opqdonut> | yeah, I've lectured on various FP things a bit, and I took some time recently to package things up into a nice self-study course |
| 12:13:58 | <opqdonut> | kind of a pro bono thing |
| 12:14:03 | <opqdonut> | I work as a consultant mostly |
| 12:14:24 | <arahael> | opqdonut: The english there is good and proper, I like it, and it's easy to read. :) |
| 12:14:38 | <opqdonut> | thanks, that's nice to hear |
| 12:15:49 | <maerwald> | is there a way with `cabal install` to ignore the cache for *local* packages? |
| 12:18:20 | → | kenran joins (~kenran@200116b82b02c800235a46755b6439a0.dip.versatel-1u1.de) |
| 12:18:46 | <merijn> | maerwald: To force a recompile even if no changes? |
| 12:19:01 | <merijn> | Or what? |
| 12:20:39 | <maerwald> | to force a recompile if there are changes |
| 12:20:51 | <maerwald> | install will not recompile if PVP version matches but there are changes |
| 12:20:58 | <maerwald> | which is the case for local packages |
| 12:22:02 | <maerwald> | and breaks the use case of cloning a repo and running `cabal install` |
| 12:22:13 | <maerwald> | unless they bump pvp for every commit |
| 12:23:15 | <jneira[m]> | there should be a cabal issue for this.. |
| 12:23:54 | <merijn> | There is a generic "bikesheding "recompilation avoidance"-avoidance" |
| 12:24:51 | <maerwald> | wonder what --one-shot does |
| 12:25:06 | <maerwald> | probably legacy of v1 |
| 12:25:08 | → | jespada joins (~jespada@2803:9800:9842:7a62:8558:368:788c:6dc6) |
| 12:25:15 | <maerwald> | --help in cabal is useless |
| 12:26:18 | → | unmanbearpig joins (~unmanbear@user/unmanbearpig) |
| 12:27:34 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Read error: No route to host) |
| 12:27:57 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 12:37:54 | → | enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
| 12:38:19 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 12:38:49 | <maerwald> | is there a way to find the locations of built libraries in a cabal project? |
| 12:39:34 | <merijn> | maerwald: cabal-plan? |
| 12:39:50 | <maerwald> | how |
| 12:40:44 | <merijn> | hmm, maybe that only does executables |
| 12:46:33 | → | xiongxin joins (~quassel@113.116.33.5) |
| 12:46:34 | × | max22- quits (~maxime@2a01cb0883359800e72b80574f347e03.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
| 12:46:52 | <Franciman> | ok, I don't understand what is happening. I get an internal happy error |
| 12:46:58 | × | benin036932301 quits (~benin@183.82.207.251) (Ping timeout: 252 seconds) |
| 12:47:01 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 12:47:16 | <Franciman> | https://bpa.st/OHFQ this is the grammar |
| 12:47:58 | <Franciman> | basically, at startup, it calls the function notHappyAtAll |
| 12:48:01 | <Franciman> | but what the legit heck?^ |
| 12:48:50 | <Franciman> | I can pass the generated parser any argument |
| 12:48:54 | <Franciman> | it always calls notHappyAtAll |
| 12:48:57 | <Franciman> | but what the heck? |
| 12:49:20 | <Franciman> | I suppose I did something wrong |
| 12:49:22 | <Franciman> | let's see |
| 12:50:06 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 12:58:31 | × | azeem quits (~azeem@emp-180-222.eduroam.uu.se) (Read error: Connection reset by peer) |
| 12:59:33 | → | azeem joins (~azeem@emp-180-222.eduroam.uu.se) |
| 13:05:07 | → | tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
| 13:05:27 | → | nschoe joins (~quassel@178.251.84.79) |
| 13:06:46 | → | max22- joins (~maxime@lfbn-ren-1-539-224.w81-53.abo.wanadoo.fr) |
| 13:09:10 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 13:14:35 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 252 seconds) |
| 13:15:07 | → | nschoe joins (~quassel@178.251.84.79) |
| 13:16:42 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 13:18:20 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 13:18:26 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds) |
| 13:19:09 | × | ulvarrefr quits (~user@185.24.53.152) (Ping timeout: 265 seconds) |
| 13:19:24 | → | ulvarrefr joins (~user@185.24.53.152) |
| 13:20:59 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 13:21:40 | × | max22- quits (~maxime@lfbn-ren-1-539-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
| 13:29:58 | → | TDANG joins (~TDANG@inet-177-7.ets.org) |
| 13:34:16 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:40:38 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 13:41:35 | × | nschoe quits (~quassel@178.251.84.79) (Remote host closed the connection) |
| 13:42:47 | → | nschoe joins (~quassel@178.251.84.79) |
| 13:50:48 | → | pbrisbin joins (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) |
| 13:51:20 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:51:20 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 13:51:20 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:53:07 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 13:55:02 | × | nabaiste^ quits (~nabaiste@68.101.50.106) (Remote host closed the connection) |
| 13:57:11 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 245 seconds) |
| 13:57:57 | → | nschoe joins (~quassel@178.251.84.79) |
| 13:57:58 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
| 13:58:33 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 14:00:08 | × | xsperry quits (~xs@user/xsperry) (Remote host closed the connection) |
| 14:00:30 | → | xsperry joins (~xs@cpe-188-129-101-182.dynamic.amis.hr) |
| 14:01:08 | × | rembo10 quits (~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:02:19 | × | xff0x quits (~xff0x@2001:1a81:5315:a700:680b:605d:85e2:404c) (Ping timeout: 265 seconds) |
| 14:02:33 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 14:03:07 | → | xff0x joins (~xff0x@2001:1a81:5315:a700:a625:8ed2:e82f:87f0) |
| 14:06:10 | → | rembo10 joins (~rembo10@wally.codeshy.com) |
| 14:06:46 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Ping timeout: 245 seconds) |
| 14:07:35 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 14:11:01 | × | acidjnk quits (~acidjnk@p200300d0c703cb839546693cf9acbce8.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 14:13:26 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 265 seconds) |
| 14:15:24 | → | nschoe joins (~quassel@178.251.84.79) |
| 14:16:07 | → | blueonyx joins (~blueonyx@user/blueonyx) |
| 14:17:04 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:18:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 14:20:11 | × | blueonyx quits (~blueonyx@user/blueonyx) (Client Quit) |
| 14:25:44 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 14:32:17 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 265 seconds) |
| 14:32:41 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 14:34:11 | ec | is now known as tjl |
| 14:34:51 | tjl | is now known as tlj |
| 14:35:50 | × | Ariakenom quits (~patrik@h-81-170-208-30.A163.corp.bahnhof.se) (Quit: WeeChat 3.1) |
| 14:37:17 | → | Ariakenom joins (~Ariakenom@h-81-170-208-30.A163.corp.bahnhof.se) |
| 14:39:35 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 14:41:03 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 14:44:15 | tlj | is now known as tjl |
| 14:46:35 | → | jangid joins (~user@2405:201:5c06:70a7:16c8:89ac:79ce:93ab) |
| 14:48:14 | × | lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 265 seconds) |
| 14:48:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 14:48:38 | × | td_ quits (~td@muedsl-82-207-238-023.citykom.de) (Ping timeout: 252 seconds) |
| 14:50:17 | × | tjl quits (~ec@gateway/tor-sasl/ec) (Quit: tjl) |
| 14:50:35 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 14:52:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 14:52:52 | ← | jangid parts (~user@2405:201:5c06:70a7:16c8:89ac:79ce:93ab) (ERC (IRC client for Emacs 28.0.50)) |
| 14:56:40 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 14:57:15 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 14:57:23 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 14:57:54 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
| 14:58:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 14:59:00 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 15:02:06 | → | NotIndonesian joins (znc@Indonesians.are.sick.bnc.HUNTERS.thats.bad.mn) |
| 15:03:42 | × | Ariakenom quits (~Ariakenom@h-81-170-208-30.A163.corp.bahnhof.se) (Ping timeout: 265 seconds) |
| 15:05:41 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 15:06:29 | → | timCF joins (~timCF@m91-129-108-244.cust.tele2.ee) |
| 15:09:51 | <timCF> | Hello! Is there any way do extract somehow phantom kind parameter as a Text in runtime to use it in Show instance? For example, let say `data Foo = Bar | Buz` and `data Hello (a :: Foo) = Hello` and then I want to implement `instance Show (Hello a)` such that result of `show` function would be "Bar" or "Buz". |
| 15:11:03 | <byorgey> | timCF: if it is truly a phantom type parameter, then there is no way to recover it at runtime. However you can do it if you add a Typeable constraint. |
| 15:11:21 | <geekosaur> | that sounds like abuse of Show instances. and if it's phantom then it doesn't exist at runtime |
| 15:11:29 | <ldlework> | byorgey: neat project, swarm |
| 15:11:30 | × | TDANG quits (~TDANG@inet-177-7.ets.org) (Quit: Konversation terminated!) |
| 15:11:41 | <byorgey> | ldlework: thanks! |
| 15:12:08 | <timCF> | geekosaur: Show it's just an example, I need pahntom parameer name in runtime for logging purposes |
| 15:12:41 | <geekosaur> | then you need something like Typeable as byorgey saidm so there's something that persists past the typechecker |
| 15:13:09 | <timCF> | byorgey: geekosaur: I'll take a look what Typeable class is doing) Thanks! |
| 15:13:16 | <geekosaur> | because phantoms vanis after the typechecker is done with them |
| 15:14:55 | <Franciman> | I thought haskell's ecosystem could not get worse than cabal |
| 15:14:57 | <Franciman> | it gets worse |
| 15:15:00 | <Franciman> | with happy |
| 15:15:02 | <Franciman> | :D |
| 15:15:16 | <geekosaur> | all it's doing is attaching a typeclass dictionary that persists to runtime |
| 15:15:40 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 15:15:51 | <geekosaur> | which contains enough information to reconstruct the type, including the phantoms that would otherwise go away |
| 15:16:30 | <timCF> | geekosaur: probably I do need to add some kind of `forall` equivalent for `instance Show (forall a. (Hello a)) where` to refer into phantom parameter inside of the function instance? Not sure about correct syntax |
| 15:16:34 | <geekosaur> | of course that means you have to carry that dictionary around everywhere or you'll lose the information you want |
| 15:18:00 | <geekosaur> | instance (Typeable a, Show a) => Hello a where ... {- you can use both Show and Typeable methods here -} |
| 15:18:28 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 15:18:31 | <timCF> | geekosaur: cool, thanks! |
| 15:18:52 | <geekosaur> | you can't declare a Typeable instance, the compiler makes that automatically, but you still have to cite it wherever it's needed |
| 15:18:53 | <ldlework> | byorgey: I hope to play it some day once I better figure out how to use haskell stuff on Nix :P |
| 15:19:09 | → | MQ-17J joins (~MQ-17J@8.6.144.233) |
| 15:20:13 | <timCF> | geekosaur: never used Typeable before, but from what you are saying it feels like it's handled similar to Coerciable - you don't derive it, but it's just there |
| 15:20:19 | <geekosaur> | right |
| 15:20:41 | <geekosaur> | it's both generated and used by the typechecker, but is also available at runtime |
| 15:21:39 | → | lavaman joins (~lavaman@98.38.249.169) |
| 15:21:49 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 15:22:33 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:64e7:f1a7:9c7e:5b3b) (Quit: WeeChat 2.8) |
| 15:22:43 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:22:43 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:22:43 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:24:18 | → | emf joins (~emf@2620:10d:c090:400::5:a68f) |
| 15:25:50 | → | bontaq` joins (~user@ool-45779fe5.dyn.optonline.net) |
| 15:25:56 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 15:26:25 | × | timCF quits (~timCF@m91-129-108-244.cust.tele2.ee) (Ping timeout: 265 seconds) |
| 15:26:40 | bontaq` | is now known as bontaq |
| 15:27:08 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 15:30:46 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Remote host closed the connection) |
| 15:34:50 | × | emf quits (~emf@2620:10d:c090:400::5:a68f) (Ping timeout: 260 seconds) |
| 15:38:02 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:39:57 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:39:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:39:58 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:40:02 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2.1) |
| 15:40:57 | → | Ariakenom joins (~Ariakenom@h-81-170-208-30.A163.corp.bahnhof.se) |
| 15:42:41 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 15:44:15 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 15:47:02 | → | chris joins (~chris@81.96.113.213) |
| 15:47:06 | chris | is now known as Guest4705 |
| 15:49:19 | × | kenran quits (~kenran@200116b82b02c800235a46755b6439a0.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 15:49:42 | × | xiongxin quits (~quassel@113.116.33.5) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 15:50:13 | → | Null_A joins (~null_a@2601:645:8700:2290:91f2:4a69:be9c:a77e) |
| 15:54:06 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 15:54:31 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 15:54:48 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 15:55:27 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:57:52 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds) |
| 15:58:30 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Client Quit) |
| 15:58:51 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 16:01:33 | × | Ariakenom quits (~Ariakenom@h-81-170-208-30.A163.corp.bahnhof.se) (Remote host closed the connection) |
| 16:01:47 | → | Ariakenom joins (~Ariakenom@h-81-170-208-30.a163.corp.bahnhof.se) |
| 16:04:21 | → | fef joins (~thedawn@user/thedawn) |
| 16:06:55 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Remote host closed the connection) |
| 16:07:48 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 16:09:26 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 16:10:03 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 16:14:38 | × | Ariakenom quits (~Ariakenom@h-81-170-208-30.a163.corp.bahnhof.se) (Read error: Connection reset by peer) |
| 16:15:07 | → | qbt joins (~edun@user/edun) |
| 16:15:29 | × | enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
| 16:16:11 | → | sneedsfeed joins (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) |
| 16:16:39 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 16:16:50 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:17:01 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 265 seconds) |
| 16:18:59 | → | lavaman joins (~lavaman@98.38.249.169) |
| 16:20:42 | → | emf joins (~emf@2620:10d:c090:400::5:4ff3) |
| 16:23:16 | <sneedsfeed> | how does the community feel about leaving unmatched patterns? I have code here that I'm really happy with. Its only 28 lines long and it should solve any maze you throw at it very efficiently. But it has a LOT of unmatched patterns that in theory should never matter and I'm stuck wondering if I should fill all these in, just leave them unmatched, |
| 16:23:17 | <sneedsfeed> | or take this as a sign that my code isnt as good as I thought it was and to start thinking about different approaches |
| 16:24:11 | → | nschoe joins (~quassel@178.251.84.79) |
| 16:24:25 | × | emf quits (~emf@2620:10d:c090:400::5:4ff3) (Client Quit) |
| 16:24:26 | <hpc> | like non-exhaustive patterns, or unreachable code? |
| 16:24:28 | <hpc> | > head [] |
| 16:24:30 | <lambdabot> | *Exception: Prelude.head: empty list |
| 16:24:36 | <sneedsfeed> | here it is by the way https://paste.tomsmeding.com/ywqQSxfk |
| 16:24:44 | → | emf joins (~emf@2620:10d:c090:400::5:4ff3) |
| 16:25:14 | <sneedsfeed> | non exhaustive |
| 16:25:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 16:25:59 | <hpc> | ah, addUnsearched is non-exhaustive here |
| 16:26:18 | <sneedsfeed> | yea |
| 16:27:07 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 16:27:46 | <hpc> | you might try renaming it to addUnsearched' |
| 16:27:54 | <hpc> | and then defining a new addUnsearched which doesn't take that parameter |
| 16:28:17 | <hpc> | except then hmm, you do call it in two different ways |
| 16:28:57 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 16:29:41 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Ping timeout: 245 seconds) |
| 16:29:42 | <hpc> | another idea some modules use is your non-exhaustive function would be something internal |
| 16:29:52 | <hpc> | and then if your code was a module, maybe it would only expose isSolvable |
| 16:30:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 16:30:08 | <hpc> | that way users of the code can't shoot themselves in the foot |
| 16:30:42 | × | azeem quits (~azeem@emp-180-222.eduroam.uu.se) (Ping timeout: 265 seconds) |
| 16:30:55 | <sneedsfeed> | ah yea that makes sense, If I was going to package this up for others to use I dont think I would expose addUnsearched |
| 16:30:56 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 245 seconds) |
| 16:30:58 | <hpc> | or just leave it there and document the flaw, if all of those end up being impossible in some way |
| 16:31:24 | <sneedsfeed> | or yea if I have to expose it to the outside I could fill in all the cases |
| 16:31:46 | <hpc> | the containers package has some functions that only work if you give them a sorted list as input, but it's too useful to not have those available |
| 16:31:55 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:32:25 | → | segfaultfizzbuzz joins (~segfaultf@135-180-0-138.static.sonic.net) |
| 16:32:29 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 16:33:08 | <sneedsfeed> | filling in all the cases wouldnt really help because its not clear how this function would apply to all of them... |
| 16:33:15 | <sneedsfeed> | an error would just be better |
| 16:33:54 | <sneedsfeed> | okay thanks for all that info. i feel better just leaving it this way now. |
| 16:34:44 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 16:35:04 | → | alzgh joins (~alzgh@user/alzgh) |
| 16:37:57 | × | Guest4705 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 16:42:09 | → | azeem joins (~azeem@2a00:801:2d0:9de5:7998:f5fe:f405:f6a8) |
| 16:45:45 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:48:48 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:49:37 | <dminuoso> | sneedsfeed: By the way, your usage of list with random access is very unidiomatic. |
| 16:50:12 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 16:53:26 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 16:56:29 | <sneedsfeed> | dminuoso sorry I don't know what you mean. |
| 16:57:02 | <sneedsfeed> | i used list like a stack here |
| 16:57:15 | <sneedsfeed> | dont think I ever randomly accessed part of it |
| 16:57:26 | <dminuoso> | sneedsfeed: You're doing random access on your [String] |
| 16:57:27 | <Franciman> | does haskell have a guide for idiomatic writing? |
| 16:57:33 | <Franciman> | that's new |
| 16:58:01 | <sneedsfeed> | line 14? |
| 16:58:21 | <dminuoso> | sneedsfeed: and on line 21. |
| 16:58:38 | <dminuoso> | Also `length m` is an O(n) operation. |
| 16:58:49 | <dminuoso> | Haskell lists are singly linked lists without any meta data. |
| 16:58:55 | <sneedsfeed> | its a challenge problem for codewars, they give me the maze as a string |
| 16:59:05 | <dminuoso> | Ah I see. |
| 16:59:17 | <dminuoso> | Does codewars let you use `vector`? |
| 16:59:24 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 16:59:44 | <sneedsfeed> | I could probably convert the string maze into a vector then work on that |
| 16:59:48 | <monochrom> | I disagree with unconditionally picking on "xs !! i" without first asking "how big is i?" |
| 17:00:21 | → | ubert joins (~Thunderbi@91.141.58.84.wireless.dyn.drei.com) |
| 17:00:27 | <monochrom> | But I also disagree with "the problem spec gives me a sequence so I will only use sequence structures ever" |
| 17:01:20 | <monochrom> | I once gave a data structure assignment in which the input is a Java list of edges for a graph. |
| 17:01:48 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
| 17:02:07 | <monochrom> | Part of the student's job was to recognize "OK first thing I do should be converting that to adjacency lists format because the rest is BFS" |
| 17:02:18 | <Franciman> | lol |
| 17:02:21 | <Franciman> | java assignments |
| 17:02:23 | <Franciman> | be like |
| 17:02:26 | <Franciman> | I need to learn OOP first |
| 17:02:56 | <monochrom> | Clearly some students reasoned "the prof gave me a list of edges so I'll stick to a list of edges" and caused BFS to take quadratic time. |
| 17:03:07 | <dminuoso> | monochrom: You require your students to think for themselves? |
| 17:03:34 | <dminuoso> | Or let me rephrase. Do other professors actually not demand this? |
| 17:03:51 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Ping timeout: 245 seconds) |
| 17:03:58 | <monochrom> | No. In lecture, I already said that BFS runs fastest when the graph is in adjacency list format. (So, not even matrix format.) |
| 17:04:09 | <monochrom> | I require my students to listen. |
| 17:04:35 | <Franciman> | lol |
| 17:04:39 | <Franciman> | honestly |
| 17:04:45 | <Franciman> | that's not an easy thing |
| 17:04:53 | <Franciman> | I mean teching requires more than requiring listening |
| 17:05:09 | <Franciman> | I struggle a lot with this concept |
| 17:05:14 | <Franciman> | because you must also be listened to |
| 17:05:29 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 17:05:34 | → | econo joins (uid147250@user/econo) |
| 17:05:36 | <Franciman> | attention request is something that has become the dictator of our day |
| 17:05:46 | <Franciman> | who are you to be one of the attention seekers of XXI century? |
| 17:05:53 | <Franciman> | are you instagram? |
| 17:05:56 | <Franciman> | are you Lil Nas X ? |
| 17:05:58 | <monochrom> | Let me turn that around. |
| 17:06:23 | <monochrom> | Learning requires more than listening too. |
| 17:06:33 | <monochrom> | But if one fails at even listening, nevermind learning. |
| 17:07:03 | <monochrom> | Teaching does not require listening. |
| 17:07:25 | <monochrom> | Not my job to decide whether my students want to listen. |
| 17:07:31 | <Franciman> | I think this is not hitting the point completely, I don't know at what level you are teaching |
| 17:07:33 | <nshepperd> | i predict that some teachers dock points for converting the input to a different datastructure and writing the algorithm on that |
| 17:07:48 | <Franciman> | but we must also get a way to talk to students |
| 17:07:56 | <monochrom> | My job is to provide the best things to listen to, the best things to do exercises on, etc. |
| 17:07:58 | <Franciman> | you can't dispotically require listening from people |
| 17:08:01 | → | timCF joins (~timCF@m91-129-108-244.cust.tele2.ee) |
| 17:08:11 | <Franciman> | probably for university this is different |
| 17:08:12 | <monochrom> | My job is not to control students. |
| 17:08:22 | <Franciman> | most probably |
| 17:08:31 | <Franciman> | but for school it is totaly a different subject |
| 17:08:34 | <monochrom> | But my job can be, if you don't listen, you're going to get 0 marks. |
| 17:08:34 | <Franciman> | and if they don't listen to you |
| 17:08:50 | <Franciman> | it's because lower grades of school didn't allow them to understand |
| 17:08:58 | <Franciman> | requiring them dispotically to listen to their teacher |
| 17:09:27 | <Franciman> | there are many ways of teaching, really |
| 17:09:34 | <Franciman> | lectures are probably the most boring |
| 17:09:48 | <monochrom> | nshepperd: In my case, the students already know my marking scheme: I will run test cases, I will also time them. |
| 17:09:51 | <Franciman> | but esier for the lecturer |
| 17:10:04 | × | segfaultfizzbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Quit: Leaving) |
| 17:10:44 | <Franciman> | In my experience I've had many teachers who looked like Babbage's famous: I don't care if you listen to my music |
| 17:10:59 | <Franciman> | well I don't care about you either! |
| 17:11:09 | <awpr> | then don't enroll in the course |
| 17:12:08 | <monochrom> | I care to the extent of "if you take the time to listen to me, I tell you useful information, I try not to waste your time". |
| 17:12:28 | <monochrom> | But that's it. If you don't want to listen, I'm not going to care. |
| 17:12:29 | <Franciman> | monochrom: please note that I wasn't saying you are a bad teacher! |
| 17:12:49 | <monochrom> | The same way I view promoting Haskell. |
| 17:12:53 | <Franciman> | so it was not a personal attack |
| 17:13:06 | <monochrom> | Not going to preach Haskell if you aren't interested. |
| 17:13:39 | <monochrom> | "How do I explain Haskell to my coworkers who aren't interested in Haskell?" My answer: Don't. |
| 17:13:44 | <Franciman> | I was just saying that requiring listening because otherwise you don't pass the exam, is not a good way to teach people |
| 17:13:48 | <awpr> | I sense a bit of irony in that we're talking about "despotically" forcing people to listen, but the despotism is really in forcing people to learn regardless of whether they want to participate in learning. "don't listen -> you won't learn" is the opposite of despotic |
| 17:14:13 | <Franciman> | awpr: actually in western culture we despotically put people in schools |
| 17:14:18 | <Franciman> | at least to make them learn to read |
| 17:14:21 | <Franciman> | but that's "for good reason" |
| 17:14:24 | <awpr> | sure, that's exactly what I'm referring to |
| 17:14:26 | <Franciman> | but if you do it too dispotically |
| 17:14:31 | <Franciman> | they won't learn |
| 17:14:45 | <Franciman> | also as I said I wasn't saying monochrom is not a good teacher lol |
| 17:14:47 | <awpr> | at university level, that's no longer the case; students are there because they ostensibly want to be |
| 17:14:58 | <Franciman> | I think that's no longer the case, tbh |
| 17:15:10 | <Franciman> | university is becoming more for the mass |
| 17:15:33 | <monochrom> | In my case, if you don't listen to me, but you think for yourself or listen to some other good sources, you can also come to the same conclusion: convert to adjacency list format first before doing BFS. |
| 17:16:07 | <awpr> | was it this channel that recently visited the concept that "teaching" is putting the action backwards, and "learning" should be the central thing, with professors being there to aid the process? |
| 17:16:13 | <Franciman> | my geometry professor's case: if you don't listen to me, it's because you are stupid |
| 17:16:19 | <Franciman> | -> I can't even understand what he is saying |
| 17:16:32 | <Franciman> | then you go to exam |
| 17:16:35 | <Franciman> | give a different proof |
| 17:16:38 | <Franciman> | and they say: it's wrong |
| 17:16:42 | <Franciman> | because it's not their proof |
| 17:16:50 | <Franciman> | but it is not wrong, emmy noether wrote it |
| 17:16:54 | <Franciman> | and it was accepted 100 years ago |
| 17:17:15 | <Franciman> | so if you don't listen to me, maybe there is something going on |
| 17:17:27 | <Franciman> | and teaching requires engaging with the student |
| 17:17:29 | <Franciman> | not just lecturing |
| 17:18:03 | <Franciman> | frontal lectures are more like dorsal lectures |
| 17:18:12 | <Franciman> | wit hthe teacher spending 99% of their time writing on the blackboard |
| 17:18:15 | → | chris joins (~chris@81.96.113.213) |
| 17:18:17 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:18:19 | chris | is now known as Guest7900 |
| 17:18:25 | <Franciman> | is a possible model that is more effective possible? |
| 17:18:31 | <Franciman> | many teacher don't care at all |
| 17:18:40 | <Franciman> | they just want to go their 2 hours trhough, with no trouble |
| 17:18:45 | <Franciman> | that makes me extremely nervous |
| 17:18:54 | <Franciman> | because I pay them |
| 17:19:10 | <awpr> | are you presupposing that everyone involved in education must have the job description "teacher"? |
| 17:19:12 | <Franciman> | and they say: if you don't pay attention, it's not my fault |
| 17:19:33 | <Franciman> | awpr: i think that's the issue |
| 17:19:41 | <awpr> | why shouldn't "lecturer" be a valid role? it's different from a teacher, sure. but should it be banned? |
| 17:19:47 | <Franciman> | especially at university, there are people who are great at their research |
| 17:19:50 | <Franciman> | and terrible at teaching |
| 17:20:06 | <awpr> | should all professors be required to be individual tutors for every student of all their courses? |
| 17:20:09 | <Franciman> | for teaching you must be teaching |
| 17:20:19 | <Franciman> | not reading the damn book |
| 17:20:31 | <Franciman> | and if I don't listen it's my fault |
| 17:21:03 | <Franciman> | I reckon that lecturing means literally, reading the book out loud to the class |
| 17:21:08 | <int-e> | Well, it is your fault. Lectures, by design, do not accomodate individual engagements. |
| 17:21:08 | <Franciman> | but I mean |
| 17:21:17 | <Franciman> | eheh int-e indeed |
| 17:21:19 | <Franciman> | it's my fault |
| 17:21:34 | <Franciman> | it's my fault indeed |
| 17:21:48 | → | Robin_Jadoul joins (~Robin_Jad@152.67.64.160) |
| 17:22:03 | <Franciman> | If I ever become a teacher, I will be a people teacher, not a servant of the ivory tower |
| 17:22:11 | → | doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net) |
| 17:22:13 | <geekosaur> | keep in mind that a good lecturer does what has been discussed recently on one of the mailing lists: presenting things in different ways to help people understand them. not just reading from the book |
| 17:22:14 | <Franciman> | who gets pride in getting as many students away |
| 17:22:25 | <Franciman> | as they can |
| 17:22:38 | × | Guest7900 quits (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
| 17:24:17 | <Franciman> | you think that it is a single person's issue |
| 17:24:22 | <Franciman> | enjoy your view |
| 17:24:30 | <Franciman> | enjoy not wanting to also put yourself in the students shoes |
| 17:24:36 | <Franciman> | enjoy it, because the system is on your side |
| 17:24:55 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 17:24:56 | <Franciman> | enjoy taking nearly 0 effort in preparing your lectures, by just reading what's written in the book |
| 17:25:09 | <Franciman> | the system is with you |
| 17:25:13 | <Franciman> | the ivory tower is safe |
| 17:25:14 | <monochrom> | Ugh did any one of us do that? |
| 17:25:32 | <geekosaur> | there's some lazy TAs who may do that |
| 17:25:50 | <Franciman> | I am full of professors that do like that |
| 17:25:58 | <Franciman> | At least 4 that I've disgracefully met |
| 17:26:06 | <geekosaur> | the fix is to replace the TA, and there are generally course assessments that let you do that |
| 17:26:27 | <Franciman> | so just saying: lecturing do not accomodate individual engagements is cringe |
| 17:26:39 | <Franciman> | that's now what we are talking about |
| 17:27:19 | <awpr> | where is this tirade against universities coming from, as if you're forced to be involved with it and it's some evil concept of despotic learning? if you want to learn, put in the effort. if your university is doing a poor job of helping you, fire it and find a different one or be self-guided |
| 17:27:41 | <geekosaur> | ^ |
| 17:27:54 | <juri_> | universities are good for getting access to professors. classes? feh. |
| 17:28:14 | <Franciman> | awpr: that's not against universities |
| 17:28:19 | <Franciman> | but against a common conception of teaching |
| 17:28:25 | <sneedsfeed> | awpr If only it could be only about the skills and not about the pieces of paper |
| 17:28:27 | <juri_> | if you expect the universe to train you for you, you'll be waiting a while. |
| 17:28:33 | <monochrom> | I respect that switching universities is easier said than done. |
| 17:29:00 | <Franciman> | also that |
| 17:29:14 | <hpc> | juri_: it will, the problem is it's a genetic algorithm :D |
| 17:29:45 | → | __monty__ joins (~toonn@user/toonn) |
| 17:29:46 | <Franciman> | Hegel is famous for writing with the aim of not being understood |
| 17:29:53 | <int-e> | Franciman: There are good lecturers and bad lecturers. but if your expectation of a lecture is individual stimulation you're thoroughly misguided. You may need an individual tutor for that. |
| 17:30:01 | <Franciman> | because he had to be accessible to just fews |
| 17:30:19 | <Franciman> | there is also a french tradition of involuted writings dating back to ... at least derrida |
| 17:30:25 | <Franciman> | that makes their writing HIGHLY inaccessible |
| 17:31:12 | <Franciman> | int-e: I totally understand that, I just say that I've met many teacher who I was not _THE ONLY ONE_ to have problems with |
| 17:31:13 | <monochrom> | Are you describing med school? |
| 17:31:17 | <Franciman> | and they were well respected |
| 17:31:40 | <monochrom> | I understand that prescriptions are supposed to be unreadable. >:) |
| 17:31:41 | <Franciman> | and even in charge of things, so assessments didn't change anything |
| 17:32:01 | × | __monty__ quits (~toonn@user/toonn) (Client Quit) |
| 17:35:03 | <sclv> | offtopic, but hegel absolutely wanted to be understood |
| 17:36:03 | <sclv> | and for a span of time, lots of people did understand him! its distance from certain traditions of argument and the particulars of debates in that time that now makes it seem so inpenetrable |
| 17:37:53 | <Franciman> | sclv: he wanted to be understood by people nearby him |
| 17:37:59 | <Franciman> | his writing is highly convoluted |
| 17:38:22 | <Franciman> | and on purpose, because it was a common conception that only the skilled ones had to access the writings |
| 17:38:29 | <Franciman> | otherwise they had little importance |
| 17:38:58 | <sclv> | i think its pretty straightforward, if you take your time with it |
| 17:39:09 | <sclv> | and to the extent it isn't, it was absolutely _not_ because he desired to be esoteric |
| 17:39:15 | <Franciman> | proof? |
| 17:39:18 | <sclv> | there are scholars who you could say sought to be abtruce |
| 17:39:19 | <sclv> | abtruse |
| 17:39:20 | <Franciman> | I had read it in a book |
| 17:39:26 | <shiraeeshi[m]> | imagine if people decided to just have fun while learning something, no need for marks, grades, etc. Who needs grades anyway? |
| 17:39:34 | <sclv> | i read the opposite in two books. |
| 17:39:37 | <monochrom> | Like this? https://www.smbc-comics.com/comic/language >:) |
| 17:39:39 | × | emf quits (~emf@2620:10d:c090:400::5:4ff3) (Quit: emf) |
| 17:39:45 | <Franciman> | sclv: name of the books? |
| 17:39:51 | <shiraeeshi[m]> | grades are what makes the process too beurocratized, mechanical |
| 17:39:53 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:39:56 | → | emf joins (~emf@2620:10d:c090:400::5:4ff3) |
| 17:39:58 | <Franciman> | ah you are making fun of me |
| 17:39:59 | <Franciman> | I see :< |
| 17:40:02 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 17:40:17 | <Franciman> | that's a bit unfair but I understand |
| 17:40:32 | <Franciman> | my book is my high school philosophy book |
| 17:40:57 | <Franciman> | it's called `Ricerca del pensiero` by Abbagnano and Fornero |
| 17:40:59 | <sclv> | i mean i've read a number of books about philosophy of the period, as well as a number of philosophers of the period directly, and i've never seen this claim made by anyone familiar with that body of work |
| 17:41:41 | <sclv> | i've only seen it by people relatively unfamiliar with it and seeking to dismiss it, and i've seen it made about _almost every single writer_ that anyone has ever disliked |
| 17:41:48 | <monochrom> | shiraeeshi[m]: When I was a student, I decided to just have fun and ignore marks. |
| 17:41:59 | <Franciman> | sclv: have you ever read Derrida? |
| 17:42:03 | <sclv> | i've also seen it made about programming languages, about plt, about physics, about everything |
| 17:42:08 | <sclv> | yes, i've read derrida |
| 17:42:14 | <Franciman> | do you find it easy prose? |
| 17:42:24 | <Franciman> | I read derrida first hand |
| 17:42:24 | <sclv> | not always, no. hegel is much easier. |
| 17:42:29 | <monochrom> | During exam study periods, I studied everything outside the scope of the exam, or played games. |
| 17:42:32 | <Franciman> | I understood 0 words |
| 17:42:35 | <Franciman> | I am not saying it does not make sense |
| 17:42:39 | <Franciman> | but it is very convoluted |
| 17:42:53 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:43:03 | <monochrom> | or rather, I got it backwards. Everything I studed was outside the scope of the exam. |
| 17:43:04 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Remote host closed the connection) |
| 17:43:13 | <Franciman> | now why did he write like that? |
| 17:43:22 | <sclv> | certain people like lacan, adorno, iirc you can actually find in print or interviews saying "yes i'm trying to not say things directly, because i'm prompting the reader to engage sidewise with things that i can't articulate directly" |
| 17:43:26 | <sclv> | also, joyce |
| 17:43:34 | <sclv> | you will _not_ find this said by hegel |
| 17:43:45 | <Franciman> | I had read it was a common attitude |
| 17:43:49 | <Franciman> | wait I think |
| 17:43:54 | <Franciman> | I see the problem |
| 17:43:56 | <sclv> | and you will find none of these people ever said "i'm writing like this because i don't want certain people to understand me" |
| 17:44:14 | <Franciman> | He is writing (actually was) in a AULIC way |
| 17:44:21 | <Franciman> | to give prestige to the writing |
| 17:44:32 | <Franciman> | so not to directly block learner |
| 17:44:34 | <Franciman> | I see |
| 17:44:34 | <shiraeeshi[m]> | monochrom: that's what I'm talking about. Our civilization has one bug: it tries to make an instrument out of everything. So it tries to make a university an instrument of achieving some goal: filtering people, creating professionals who are going to work and become instruments themselves. But if you go too far into making instruments out of everything, you are going to spoil everything. |
| 17:44:39 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 17:44:54 | <sclv> | again i just don't think this is true of hegel. its far offtopic so i won't keep going. but something like the "shorter logic" is not at all as you describe |
| 17:45:10 | <Franciman> | I see |
| 17:45:20 | <Franciman> | well I never read hegel first hand |
| 17:45:26 | <Franciman> | so your two books are more than my single book |
| 17:45:48 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 17:46:16 | <Franciman> | shiraeeshi[m]: unfortunately I think you are right |
| 17:46:56 | <Franciman> | another highly controversial writer is nietzhsce |
| 17:46:58 | <Franciman> | nietzsche |
| 17:47:08 | <Franciman> | he purposefully writes in an obscure manner |
| 17:47:31 | <Franciman> | I think |
| 17:47:34 | <Franciman> | I never read this |
| 17:47:45 | <Franciman> | but oh if he is good at writing |
| 17:48:11 | <sclv> | i'm sorry i engaged on this, we're way offtopic for this channel |
| 17:48:30 | <Franciman> | do you prefer talking about the awful status of cabal's documentation? |
| 17:48:33 | <Franciman> | or happy? |
| 17:48:40 | <sclv> | PRs welcome. |
| 17:48:44 | <Franciman> | yeah I know |
| 17:48:47 | <sclv> | (there are a number on cabal underway) |
| 17:48:54 | <Franciman> | if only I could understand what the heck happens insdie that monster |
| 17:49:01 | <sclv> | i've never made significant use of happy so i can't help you there |
| 17:49:03 | <Franciman> | I would happly write a PR |
| 17:49:04 | <monochrom> | Well I suppose if you turn this into critiquing Haskell for being intentionally inaccessible it's all good. >:) |
| 17:49:12 | <Franciman> | lol |
| 17:49:12 | <sclv> | aaaaack |
| 17:49:16 | <Franciman> | I did |
| 17:49:26 | <Franciman> | I was not serious |
| 17:49:29 | <Franciman> | just turned tables around :D |
| 17:49:31 | <dminuoso> | Honestly, cabal is not that badly documented. |
| 17:49:33 | <Franciman> | btw I am realy sorry for cabal |
| 17:49:40 | <Franciman> | I can never find things |
| 17:49:51 | <Franciman> | I keep on hitting the Issues on github, it's a better documentation than the actual documentation |
| 17:49:53 | <Franciman> | tbh |
| 17:49:53 | <dminuoso> | Your experience differs from mine, then. |
| 17:49:55 | <Franciman> | for me |
| 17:50:00 | <monochrom> | You can start with my analysis at http://www.vex.net/~trebla/haskell/prerequisite.xhtml and argue that this is proof that Haskell is inaccessible. |
| 17:50:23 | <Franciman> | I think haskell is becoming too corporate |
| 17:50:25 | <Franciman> | not inaccessible |
| 17:50:27 | <Franciman> | btw |
| 17:50:38 | <monochrom> | PHP does not make you do equational reasoning. Haskell does. Haskell is more inaccessible than PHP. |
| 17:51:21 | <monochrom> | And this: http://www.vex.net/~trebla/haskell/IO.xhtml |
| 17:51:22 | <sclv> | php does not let you do any reasoning |
| 17:51:29 | <Franciman> | I think it is hearsaying |
| 17:51:31 | <dminuoso> | monochrom: Is that really so? Usually imperative language has just as much equational reasoning, except it's a bit harder to see that it's required of you. |
| 17:51:32 | <Franciman> | it's php5 |
| 17:51:35 | <Franciman> | php8 got much better |
| 17:52:28 | <monochrom> | PHP does not force you to distinguish "a program that reads a number from stdin, and today the number happens to be 4" from "a program that always gives you 4". Haskell does. Haskell is making it more difficult. |
| 17:52:30 | <Franciman> | haskell's ecosystem is terrible mostly because corps don't put money in those |
| 17:52:44 | <Franciman> | and the majority of people doing the ecosystem just work for corps |
| 17:52:47 | <Franciman> | so there are a few tools |
| 17:52:50 | <Franciman> | doing great job |
| 17:52:54 | <Franciman> | the rest largely undocumentend |
| 17:52:58 | <Franciman> | and or unmantained |
| 17:54:36 | → | brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d) |
| 17:55:43 | <monochrom> | dminuoso: If both your point and my point are edited a bit, we can come to an agreement, and it is the truth. |
| 17:56:12 | <Franciman> | do you have any resource on learning and understanding how haskell programs actually get executed? |
| 17:56:17 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 17:56:20 | <Franciman> | in order to get a better understanding of how to optimize things |
| 17:56:21 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
| 17:56:33 | <monochrom> | One can do either equational reasoning or operational reasoning ("use a debugger to step through execution") to both kinds of languages. |
| 17:57:07 | <monochrom> | But equational reasoning is easier for Haskell, operational reasoning is easier for imperative languages. |
| 17:57:14 | <Franciman> | euqational reasoning is a nice abstraction, but how does it work when you try to squeeze out the proformances of your program? |
| 17:57:34 | <tomsmeding> | Franciman: the other day I stumbled upon this https://github.com/quchen/stgi#readme |
| 17:57:46 | <monochrom> | So suppose someone chooses to stick to operational reasoning, unconditionally, because they flunked algebra and are proud of it. |
| 17:57:58 | <Franciman> | thanks a lot tomsmeding |
| 17:57:58 | <monochrom> | Haskell is going to be visibly harder. |
| 17:58:36 | <tomsmeding> | Franciman: (see also the last section of the readme) |
| 17:58:54 | <Franciman> | oh I read that eval/apply is faster yeah |
| 17:58:57 | <Franciman> | damn |
| 17:59:03 | <monochrom> | Franciman, I view equational reasoning as very helpful, almost necessary, for squeezing out performance correctly. |
| 17:59:10 | <Franciman> | how so? |
| 17:59:16 | <Franciman> | ty tomsmeding |
| 17:59:21 | <monochrom> | Yes, you need operational reasoning to show that the faster version is faster. |
| 17:59:29 | × | Robin_Jadoul quits (~Robin_Jad@152.67.64.160) (Ping timeout: 252 seconds) |
| 17:59:30 | <Franciman> | no you don't |
| 17:59:33 | <Franciman> | you just run the program |
| 17:59:35 | <Franciman> | to test things |
| 17:59:43 | <monochrom> | But you need equational reasoning to show that the faster version is giving the same answer as the slower version. |
| 17:59:44 | × | Cajun quits (~Cajun@user/cajun) (Quit: Client closed) |
| 18:00:00 | <Franciman> | how do you recognize what is happening with equational reasoning alone? |
| 18:00:07 | <Franciman> | how do you understand where you need to optimize |
| 18:00:09 | <Franciman> | and how |
| 18:00:11 | <Franciman> | and why |
| 18:00:19 | <Franciman> | I just see denontation in the equational reasoning |
| 18:00:20 | <monochrom> | I thought I already addressed that. |
| 18:00:29 | <monochrom> | <monochrom> Yes, you need operational reasoning to show that the faster version is faster. |
| 18:00:39 | <Franciman> | I am not talking about showing things |
| 18:00:45 | <Franciman> | I talk about understand what is happening |
| 18:00:55 | <Franciman> | which comes before proving things |
| 18:00:56 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
| 18:00:57 | <monochrom> | To me, proof = understanding. |
| 18:00:59 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Read error: Connection reset by peer) |
| 18:01:05 | <Franciman> | proof is the result of the understanding |
| 18:01:09 | <tomsmeding> | a mathematical proof is making someone understand the truth of the statement being proven |
| 18:01:15 | <tomsmeding> | this holds across mathematics |
| 18:01:24 | <Franciman> | the process of understanding is harder than the written proof, imho |
| 18:01:32 | <tomsmeding> | for a proof in a proof assistant, that someone is the verification kernel |
| 18:01:35 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 18:01:38 | <tomsmeding> | for general math proofs, that is the reviewer of the paper |
| 18:01:46 | <monochrom> | No, seriously, there are a lot of things that people say "here is the intuition:" and it's all BS to me, and then "here is the proof:" and then I understand. |
| 18:02:00 | <tomsmeding> | for understanding that your program does the same thing after modifying it, that someone is yourself |
| 18:02:15 | <Franciman> | I mean you get your proofs all together? |
| 18:02:18 | <Franciman> | without tweaking around? |
| 18:02:25 | <Franciman> | that's notable |
| 18:02:41 | <tomsmeding> | and also notable about this idea: proof for person A != a proof for person B |
| 18:02:57 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 18:03:19 | <tomsmeding> | which is why an intuitive argument might suffice for you but not for some picky person that reads your paper :p |
| 18:03:26 | <monochrom> | Yeah if I see more different proofs I understand more. |
| 18:03:37 | <monochrom> | If I see one proof I only understand one angle. |
| 18:03:46 | <Franciman> | but the act you are describing is not syntethic, it is analytical |
| 18:03:50 | <Franciman> | you read proofs to understand |
| 18:03:54 | <Franciman> | but how do you produce your proof? |
| 18:04:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:04:04 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 18:04:04 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:04:08 | <sclv> | there's actually a lot of work on equational reasomning for program efficiency. i suggest in particular hutton's stuff on "improvement theory" a lot of which is joint work with hackett: http://www.cs.nott.ac.uk/~pszgmh/bib.html#metrics |
| 18:04:11 | <monochrom> | I'm OK with relaxing to "proof sketch" if you want a more warm-fuzzy meaning of "understanding". |
| 18:04:41 | × | sneedsfeed quits (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Quit: Ping timeout (120 seconds)) |
| 18:04:46 | <shapr> | ooh that's neat, haven't heard of improvement theory |
| 18:05:04 | <monochrom> | I produce my proof by a mix of experience and blind guessing? |
| 18:05:12 | <sclv> | i think the worker/wrapper paper was particularly accessible iirc |
| 18:05:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:05:22 | <Franciman> | read it |
| 18:05:26 | <Franciman> | it was for me |
| 18:05:37 | <monochrom> | Meaning that if eventually my attempt at a proof doesn't work out, it means my "understanding" is wrong? |
| 18:05:43 | <monochrom> | Which sounds about right? |
| 18:05:52 | <monochrom> | How do you know that you understand? |
| 18:05:59 | <Franciman> | you feel it |
| 18:06:02 | <Franciman> | if you don't feel it |
| 18:06:11 | <Franciman> | you didn't understand the feeling |
| 18:06:13 | <Franciman> | maybe |
| 18:06:30 | × | emf quits (~emf@2620:10d:c090:400::5:4ff3) (Ping timeout: 260 seconds) |
| 18:06:32 | <tomsmeding> | plenty students feel that they understand the material when the teacher presents it to them, but then they get stuck trying to apply it :p |
| 18:06:38 | <monochrom> | My experience with myself and my student is Dunning-Kruger. |
| 18:06:39 | <tomsmeding> | that feeling is not always right |
| 18:06:47 | <monochrom> | If you feel that you understand, you're wrong. |
| 18:06:53 | <monochrom> | Always wrong. |
| 18:07:14 | <dminuoso> | I understand what you're saying. |
| 18:07:22 | <dminuoso> | /s |
| 18:07:27 | <tomsmeding> | monochrom: meaning that you can only understand something if you don't feel like you understand it? |
| 18:07:32 | <tomsmeding> | that sounds fishy |
| 18:07:35 | <Franciman> | lol that's yeah |
| 18:07:37 | <Franciman> | to say the least |
| 18:07:42 | <Franciman> | that works for great bodies of work, though |
| 18:07:55 | <Franciman> | like Feinmann's "you don't understand quantum mechanics if you say you do" |
| 18:07:58 | <Franciman> | Feynmann |
| 18:08:01 | <dminuoso> | tomsmeding: Perhaps there is a missing emphasis on *feel* |
| 18:08:25 | <tomsmeding> | dminuoso: in my message or monochrom's? |
| 18:08:31 | <Franciman> | having the hubris of saying you understand everything that's been told on a subject just because you had a course at university is Dunning-Kruger |
| 18:08:40 | <Franciman> | saying you understand the proof that 1+1=2 |
| 18:08:45 | <Franciman> | maybe is ok? |
| 18:09:01 | <dminuoso> | tomsmeding: his |
| 18:09:12 | <monochrom> | To be fair if you mean the Russell-Whitehall proof, I don't understand that one. |
| 18:09:20 | <Franciman> | no |
| 18:09:36 | tomsmeding | guesses peano arithmetic, or perhaps the axioms of \R |
| 18:09:47 | <Franciman> | I mean the definition of + encoded in the lambda calculus |
| 18:09:51 | <Franciman> | through ecclesiastic encoding |
| 18:10:44 | <monochrom> | Then I say that I understand one proof, one angle. |
| 18:11:05 | → | emf joins (~emf@2620:10d:c090:400::5:4ff3) |
| 18:11:16 | <monochrom> | Or rather, I have seen one proof, so I understand one angle. |
| 18:12:02 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 18:13:20 | <Hecate> | meow |
| 18:13:21 | <monochrom> | And back to "how do I even know how to modify my code to increase speed". |
| 18:13:28 | → | zaquest joins (~notzaques@5.128.210.178) |
| 18:13:47 | <monochrom> | We know a lot of equations for that. |
| 18:14:01 | <monochrom> | That is one way equational reasoning helps. |
| 18:15:24 | <tomsmeding> | though there are also some potential optimisations of Haskell code that aren't easily captured in equations, perhaps because they depend on assumptions / domain knowledge about what the rest of the program is doing |
| 18:15:58 | <tomsmeding> | for example, adding a ! somewhere that technically modifies semantics of the function in question, so ghc can't just do it, but you know that the program at large isn't affected |
| 18:16:08 | <monochrom> | In that case I understand that we generalize to "conditional equational reasoning".. |
| 18:16:08 | <tomsmeding> | but it may (or may not) increase performance |
| 18:16:36 | <tomsmeding> | or switching to a different algorithm entirely :) |
| 18:16:50 | <tomsmeding> | instead of implementing bubble sort, you're probably better off using Data.List.sort |
| 18:17:10 | <sclv> | one way to pose this is "if you can't show that this code is the same as that code, you certainly can't say 'this code is the same, but faster'" |
| 18:17:28 | <tomsmeding> | or stuff like array-of-structs to struct-of-arrays (is that even a transformation that does much useful in haskell? perhaps if you're using vectors) |
| 18:17:38 | <tomsmeding> | sclv++ |
| 18:18:30 | <monochrom> | array-of-structs to struct-of-arrays is a fairly simple equational reasoning. |
| 18:18:47 | <tomsmeding> | with potentially far-reaching implications in many functions! |
| 18:19:03 | <tomsmeding> | I wouldn't call that "simple equational reasoning" tbh; but perhaps that depends on how you're representing the program |
| 18:19:32 | <tomsmeding> | (also "simple" is subjective anyway, so I can't speak for you) |
| 18:22:24 | <monochrom> | It is as simple as this: Suppose you have a program that accesses a matrix by "M[foo][bar]". One day you decide to store the transpose of that matrix instead. Then you program just needs "M[foo][bar]" systematically replaced by "M[bar][foo]". |
| 18:23:00 | <tomsmeding> | and what if the program contained "thing = M[foo] :: StructType" ? |
| 18:23:05 | <shiraeeshi[m]> | monochrom: "When I was a student, I decided to just have fun and ignore marks." |
| 18:23:05 | <shiraeeshi[m]> | monochrom: "or rather, I got it backwards. Everything I studed was outside the scope of the exam." |
| 18:23:08 | <tomsmeding> | (in a let-binding or whatever) |
| 18:23:11 | <shiraeeshi[m]> | what marks did you get? |
| 18:23:32 | <monochrom> | OK yes, that one is way harder. Sometimes you even consider it doable. |
| 18:23:43 | <monochrom> | A+ |
| 18:24:01 | <monochrom> | err, Sometimes you don't even consider it doable. |
| 18:24:10 | <tomsmeding> | monochrom: no-one said that it was impossible :) I'm just not sure I'd call it "simple equational reasoning" in general. |
| 18:24:11 | <tomsmeding> | right |
| 18:24:57 | <monochrom> | OK I mean that it's simple if you only have "M[foo][bar]" to worry about, no "M[foo]" or "M[bar]". |
| 18:25:38 | <tomsmeding> | true |
| 18:25:56 | <hpc> | or in C, foo[M] |
| 18:25:57 | <hpc> | :D |
| 18:26:08 | <monochrom> | ugh hahaha |
| 18:26:18 | <tomsmeding> | *(foo + M) |
| 18:26:34 | <tomsmeding> | *(offsetof(M, foo) + M) or what was that syntax |
| 18:26:56 | <Rembane> | C, or how to turn multidimensional arrays into brain melting arithmetic. |
| 18:27:26 | <tomsmeding> | multidimensional arrays in C are quite fine, until you have to allocate them on the heap |
| 18:27:56 | <tomsmeding> | I know that there is some incantation involving some obscure cast and malloc() that happens to work, but I remember only that it was weird enough that I just flatten my arrays in practice |
| 18:31:49 | → | chris joins (~chris@81.96.113.213) |
| 18:31:53 | chris | is now known as Guest5736 |
| 18:34:02 | × | renzhi quits (~xp@2607:fa49:6500:b100::1d9d) (Ping timeout: 260 seconds) |
| 18:39:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 18:45:43 | → | renzhi joins (~xp@2607:fa49:6500:b100::5845) |
| 18:47:32 | × | timCF quits (~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving) |
| 18:49:43 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 18:50:12 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:55:35 | × | MQ-17J quits (~MQ-17J@8.6.144.233) (Ping timeout: 252 seconds) |
| 18:56:00 | → | MQ-17J joins (~MQ-17J@35.50.22.115) |
| 19:01:10 | <juri_> | o/~ that's me in the corner.. thats me writing haskell, breaking my type system.. trying make it total too.. but i don't know if i should do it.. oh no i've changed too much.. o/~ |
| 19:02:12 | × | jinsun quits (~quassel@user/jinsun) (Read error: Connection reset by peer) |
| 19:02:31 | <monochrom> | Ah, sunk cost policy :) |
| 19:04:19 | × | Null_A quits (~null_a@2601:645:8700:2290:91f2:4a69:be9c:a77e) (Read error: Connection reset by peer) |
| 19:07:06 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:07:40 | <tzh> | okay, so i'm working on some forms/ui code, and i have a situation where each kind of form element has different internal state (a list of checkboxes stores the index of each checked item, a text field stores the text typed, etc). i'd like to be able to extract that type variable in some way so i can have various functions that operate more-or-less identically on each form type, save for they have a different internal state value. what |
| 19:07:40 | <tzh> | would be a good way to handle this? |
| 19:09:23 | <tomsmeding> | tzh: what kind of operation would you want to do on all such form elements, for example? |
| 19:10:13 | <tomsmeding> | assuming your situation is that you have lots of 'FormElement a' values for different values of 'a' |
| 19:12:08 | × | nfd quits (~nfd@user/nfd) (Ping timeout: 265 seconds) |
| 19:12:09 | → | Null_A joins (~null_a@2601:645:8700:2290:91f2:4a69:be9c:a77e) |
| 19:12:19 | <tzh> | tomsmeding: render them, for one. they're all hooked into a whole event cycle thing, and currently i'm doing a GADT hack where i have a constructor `App :: Form (x -> a) -> Form x -> Form a` that gets combined during the rendering & event processing steps, but there's not really a way to remove the state types in the same way if i want to have them available when i actually need to alter their values |
| 19:13:48 | <tomsmeding> | tzh: you can hide a type variable using an existential type, like 'data Some f where MkSome :: f a -> Some f', but then you can't get 'a' out anymore -- except if you can re-discover 'a' by pattern matching on the 'f a' |
| 19:14:46 | <tomsmeding> | but if you can't do that re-discovery, you'll have to have a source of truth that has the fully typed values somewhere, and hide the type variables somehow when you pass it to a function that needs to treat stuff uniformly |
| 19:15:17 | <tomsmeding> | random thought that probably doesn't help but maybe: data HList f list where HCons :: f a -> HList f list -> HList f (a ': list) ; HNil :: HList f '[] |
| 19:15:19 | <tzh> | right. in that case i can later on extract the 'x -> a' function and apply the 'x' to it coherently to get a valid 'a' value, it's just that definitely doesn't work for the state values (which don't even exist in the types at that point; they're only in the values) |
| 19:16:24 | <tomsmeding> | I think this kind of depends on how you appliation is setup :p |
| 19:16:32 | <tomsmeding> | *application |
| 19:16:33 | <tzh> | yeah |
| 19:16:56 | <tzh> | i was thinking something to do with type families but i've never used them before and i don't actually know if that would help in any way |
| 19:17:14 | <monochrom> | Yeah you have to completely list all functions you want to be identical over your types (or values, it is not yet clear which is better). |
| 19:17:16 | <tomsmeding> | type families are just functions on the type level |
| 19:17:25 | → | tommd joins (~tommd@75-164-130-101.ptld.qwest.net) |
| 19:17:47 | × | ubert quits (~Thunderbi@91.141.58.84.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
| 19:17:53 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:17:59 | <monochrom> | The reason is that every act of generalization also comes with sacrifices. Or less dramatically, omissions. You consciously forget differences. |
| 19:18:11 | <tomsmeding> | like you can define that 'f 42 = True', you can define that 'F (Maybe Bool) = [Int]' |
| 19:18:31 | <monochrom> | A complete list of functions is a way to say "I ignore all other functions". |
| 19:19:59 | <monochrom> | Suppose I have the Integer type and the Polymonial type. I go "doesn't it stand to reason that the same GCD algorithm works for both?" |
| 19:20:10 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 19:20:53 | <monochrom> | Yes, but it means I recognize that the commonality is they both have some kind of +, -, *, div, mod. |
| 19:21:10 | → | hiruji joins (~hiruji@user/hiruji) |
| 19:21:35 | <monochrom> | That's my way of saying that "I ignore any other difference between Integer and Polynomial". |
| 19:22:17 | <tomsmeding> | and, importantly: you'll have to implement +, -, *, div, mod separately for those two data types |
| 19:22:51 | → | ubert joins (~Thunderbi@91.141.58.84.wireless.dyn.drei.com) |
| 19:25:00 | → | betelgeuse8 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 19:25:15 | × | betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 19:25:15 | betelgeuse8 | is now known as betelgeuse |
| 19:27:45 | × | Guest5736 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 19:28:42 | → | ubert1 joins (~Thunderbi@91.141.58.84.wireless.dyn.drei.com) |
| 19:30:06 | × | qbt quits (~edun@user/edun) (Ping timeout: 245 seconds) |
| 19:31:49 | × | ubert quits (~Thunderbi@91.141.58.84.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 19:31:49 | ubert1 | is now known as ubert |
| 19:32:57 | → | chris joins (~chris@81.96.113.213) |
| 19:33:01 | chris | is now known as Guest6698 |
| 19:34:27 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb837cfb9841cc066d33.dip0.t-ipconnect.de) |
| 19:35:11 | × | ubert quits (~Thunderbi@91.141.58.84.wireless.dyn.drei.com) (Remote host closed the connection) |
| 19:37:06 | → | pavonia joins (~user@user/siracusa) |
| 19:37:11 | × | Guest6698 quits (~chris@81.96.113.213) (Ping timeout: 245 seconds) |
| 19:37:27 | → | lavaman joins (~lavaman@98.38.249.169) |
| 19:39:49 | → | chris joins (~chris@81.96.113.213) |
| 19:39:53 | chris | is now known as Guest1344 |
| 19:45:01 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 19:46:50 | <janus> | when did stack switch from getting build plans from fpco/lts-haskell to commericalhaskell/stackage-snapshots? |
| 19:47:09 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
| 19:47:30 | × | choucavalier quits (~choucaval@user/choucavalier) (Read error: Connection reset by peer) |
| 19:48:01 | <Franciman> | man1 |
| 19:48:07 | <Franciman> | ops sorry |
| 19:49:09 | × | betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
| 19:49:39 | × | Null_A quits (~null_a@2601:645:8700:2290:91f2:4a69:be9c:a77e) (Remote host closed the connection) |
| 19:50:01 | × | ulvarrefr quits (~user@185.24.53.152) (Remote host closed the connection) |
| 19:51:55 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
| 19:52:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 19:54:55 | <alzgh> | hello, I was wondering if there is a way to format GHCi output? Like for the `:info` and `:doc` commands, possibly also `:type` maybe? |
| 19:55:38 | <alzgh> | For instance, using the already available formatting character that are used on the web. |
| 19:55:50 | <alzgh> | @characters |
| 19:55:50 | <lambdabot> | Unknown command, try @list |
| 19:56:04 | <alzgh> | *characters, sorry |
| 19:56:40 | → | Null_A joins (~null_a@2601:645:8700:2290:91f2:4a69:be9c:a77e) |
| 19:57:43 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 20:00:52 | <monochrom> | I think no. |
| 20:02:24 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
| 20:03:09 | <janus> | how can i work around stack not having a solver? cabal builds and i want to take that plan and shove it into package.yaml and build with the nightly snapshot |
| 20:03:53 | <sclv> | cabal gen-bounds will spit out the calculated cabal bounds for the build |
| 20:04:06 | × | emf quits (~emf@2620:10d:c090:400::5:4ff3) (Ping timeout: 260 seconds) |
| 20:04:28 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:05:39 | <alzgh> | monochrom: If I wanted to add a feature like that, what are my options? |
| 20:06:44 | → | max22- joins (~maxime@2a01cb0883359800761b1c69d9198b7f.ipv6.abo.wanadoo.fr) |
| 20:11:32 | <geekosaur> | ghci is a thinn wrapper around the ghc api, it's relatively easy to hack on |
| 20:13:06 | <geekosaur> | sadly you have to build all of ghc to do it currently, unless someone has been keeping ghci-ng up to date (but it looks like the last change was in 2015) |
| 20:18:08 | → | jinsun joins (~quassel@user/jinsun) |
| 20:18:49 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:21:13 | <janus> | it doesn't seem like 'cabal gen-bounds' discovers my private dependencies from cabal.project. how can i made it do that? |
| 20:21:39 | <dminuoso> | what is a "private dependency"? |
| 20:21:59 | <sclv> | it won’t. those aren’t going to have bounds since they can’t be solved for, they’re fixed “inplace” |
| 20:22:01 | <janus> | dminuoso: a dependency that is not on hackage, not on stackage, simply a git repo on my filesystem |
| 20:22:42 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds) |
| 20:22:56 | <geekosaur> | right, it can't compute bounds for those because all it knows is the git repo |
| 20:23:17 | <janus> | well i don't need the bounds for that one, but what about all the others? it bails because of that private one |
| 20:23:18 | <geekosaur> | at its current revision |
| 20:24:06 | <geekosaur> | bounds are kinda tied to hackage so you'd need it to be on hackage for the bounds to be meaningful for anyone else |
| 20:24:23 | → | waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
| 20:25:04 | <janus> | well the bounds wouldn't be related to the private repo! but i'd like to get the bounds for all the public packages. right now i can't do that because i have a private dep |
| 20:25:55 | → | nfd joins (~nfd@user/nfd) |
| 20:25:59 | <janus> | i guess i can just remove it, then the bounds can be calculated. it doesn't matter that it wouldn't compile, the solver runs before compilation anyway |
| 20:28:25 | <janus> | though it might mean that the private dependencies' dependencies could conflict as they wouldn't be taken into account... |
| 20:29:18 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:29:47 | <janus> | maybe i should run my own hackage o_O for my secrit deps |
| 20:30:44 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 20:30:46 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Remote host closed the connection) |
| 20:31:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 20:31:48 | <sclv> | janus: do you mean that cabal like literally dies before generating any bounds because you have git packages in your cabal.project? |
| 20:31:54 | <shiraeeshi[m]> | move to golang |
| 20:32:04 | <sclv> | oh wait, yeah, we have that ticket https://github.com/haskell/cabal/issues/7504 |
| 20:32:36 | <shapr> | shiraeeshi[m]: I tried that |
| 20:32:40 | <shiraeeshi[m]> | golang allows to declare local dependencies without having to post them to the repo |
| 20:32:51 | <janus> | sclv: yes that is what i meant. thanks for the link! :D very helpful! |
| 20:32:58 | <sclv> | so does haskell. this is just about a bug in cabal that keeps gen-bounds from working in such a situation |
| 20:33:33 | <Franciman> | why exactly is it useful to have multiprojects, when we have cabal.project file? |
| 20:34:04 | <shapr> | what's a multi-project? |
| 20:34:07 | <sclv> | two reasons: first, there are often universes of coupled libs and exes it makes sense to build together as a single project |
| 20:34:24 | shapr | reads the link *embarassed* |
| 20:34:29 | <Franciman> | there's cabal.project for thet, in't there? |
| 20:34:38 | <sclv> | that's literally what a "multiproject" means |
| 20:34:55 | <mrianbloom> | Is there an accelerate function that allows you to filter on the outer dimension of an array? |
| 20:34:57 | <Franciman> | oh I thought multilple executable /library |
| 20:35:00 | <Franciman> | in the same cabal file |
| 20:35:02 | <shapr> | yeah, we have half a million lines of Haskell at work like that (excluding blank lines) |
| 20:35:30 | <sclv> | multiple exes in the same cabal file make sense sometimes too, if they're all pretty coupled and share a lot of code. *shrug* |
| 20:35:31 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Ping timeout: 245 seconds) |
| 20:35:41 | <Franciman> | again, there is cabal.project for that |
| 20:36:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:36:15 | <shapr> | would be interesting to see a compare and contrast post |
| 20:36:45 | <janus> | hmm so multi-project is something else than deps from cabal.project? so this bug does not precisely describe my issue? |
| 20:36:50 | <mrianbloom> | Basically I have a vector of vectors and I want to exclude vectors that don't meet a predicate. |
| 20:37:03 | <sclv> | janus: no its exactly that, and the discussion got confused here |
| 20:37:08 | <Franciman> | sorry |
| 20:38:17 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 20:38:53 | <geekosaur> | possibly dating from a time when cabal.project was new and people were more used to single-target projects |
| 20:38:55 | × | MQ-17J quits (~MQ-17J@35.50.22.115) (Read error: Connection reset by peer) |
| 20:39:13 | <Franciman> | that's what causes the cabal's complexity |
| 20:41:36 | → | MQ-17J joins (~MQ-17J@ip-99-203-15-239.pools.cgn.spcsdns.net) |
| 20:42:07 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 20:43:18 | → | nctcf^ joins (~nctcf@68.101.50.106) |
| 20:43:57 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 20:44:01 | <monochrom> | You know, I can't reproduce that bug. My "cd package-a ; cabal gen-bounds" ended with "Congratulations, all your dependencies have upper bounds!" |
| 20:44:47 | <monochrom> | To be fair, I did a "cabal update" first. |
| 20:45:35 | <monochrom> | <useless informaiton>In my case it was s/15/57/ so I definitely needed a "cabal update", no?</useless information> |
| 20:48:28 | <monochrom> | Interesting. If I undo my "cabal update", then "cabal build all" already fails, "Could not resolve dependencies:". (I don't think you want to know the details, but let me know if you do.) |
| 20:48:36 | <monochrom> | So, problem vanished? |
| 20:49:22 | <monochrom> | err wait sorry, I take that back, I had another moving part, I switched GHC version at the same time. Sorry! I'll retest and report back. |
| 20:49:44 | <janus> | 'cabal build all' already fails for me because of base bound ^>=4.14.2, but i thought that wasn't part of the test and i should just fix that |
| 20:51:34 | <janus> | but if i fix that base bound, indeed it does build without issue on cabal-install 3.6.0.0 |
| 20:51:45 | <sclv> | nice |
| 20:52:04 | <monochrom> | OK how do I undo undo-cabal-update? :) |
| 20:53:15 | <monochrom> | More precisely, how to undo "cabal update <an august timestamp here>" so that I go back to today's index? Do I say "cabal update HEAD"? |
| 20:53:43 | <janus> | dunno if it is 'nice' because if it isn't broken, it means i havn't understood why my use case is broken :P |
| 20:56:06 | <monochrom> | Anyway, <no longer useful report>"cabal build all" already fails with GHC 8.10.4, today's hackage index</no longer useful report> |
| 20:56:22 | → | segfaultfizzbuzz joins (~segfaultf@135-180-0-138.static.sonic.net) |
| 20:56:47 | <segfaultfizzbuzz> | is there a thoughtful article discussing somewhere what i can't build if i don't have a turing complete programming language |
| 20:57:04 | <geekosaur> | GEB? |
| 20:57:43 | <sclv> | segfaultfizzbuzz: there's a whole hierarchy of strengths less than turning complete |
| 20:57:58 | <segfaultfizzbuzz> | okay, great, is there a nice accounting of this somewhere? |
| 20:57:59 | <dolio> | There probably are. But are any actually correct? |
| 20:58:00 | <monochrom> | Who the hell coined "multiproject" anyway? This scenerio is one single project that contains multiple packages, not multiple project. |
| 20:58:04 | <sclv> | so... its not "what can i build if less than X" its "what can i build with at least Y1, Y2, Y3" |
| 20:58:05 | <awpr> | pacman-complete is the most useful one |
| 20:58:29 | <monochrom> | And I have had such a project with great success, no issue at all, cabal-install does everything as advertised. |
| 20:58:37 | <segfaultfizzbuzz> | what are the Y1 Y2 and Y3 ? is there a nice list of those things somewhere? |
| 20:59:01 | <sclv> | the general field is called "recursion theory". i'm looking for a good reference on the sub-turing side |
| 21:00:22 | <sclv> | the most common sort of sub-turing language will still allow primitive recursion, so that brings us here: https://en.wikipedia.org/wiki/Primitive_recursive_function |
| 21:01:03 | → | Cajun joins (~Cajun@user/cajun) |
| 21:02:20 | <monochrom> | segfaultfizzbuzz: An old paper «on the size of machines» by Manuel Blum shows a slowdown for things too, when the language has restricted recursion. |
| 21:02:38 | <monochrom> | Today this is known as "Blum size theorem" or something. |
| 21:02:44 | <segfaultfizzbuzz> | slowdown? like, you can't make certain optimizations you're saying? |
| 21:03:02 | <monochrom> | I still haven't read the paper, years after someone mentioned it to me. :) |
| 21:03:05 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 264 seconds) |
| 21:03:33 | <segfaultfizzbuzz> | "Blum's speedup theorem shows that for any complexity measure there are computable functions that are not optimal with respect to that measure" -- this kind of mathematical thinking i find to be incredibly boring |
| 21:03:43 | <sclv> | there's a weaker class than primitive recursive called "elementary recursive" and then you can get weaker still by e.g. not allowing recursion at all :-) |
| 21:03:44 | × | CannabisIndica quits (~herb@user/mesaboogie) (Ping timeout: 252 seconds) |
| 21:03:52 | <segfaultfizzbuzz> | any time you set up a system of rules there is some kind of exception |
| 21:04:07 | <segfaultfizzbuzz> | what is important is whether the exception is non-pathological, frequently encountered, absolutely necessary to account for, etc |
| 21:04:07 | <sclv> | also you can sort of bound these classes so you can say like "elementary recursive, but only up to 5" and etc. |
| 21:04:48 | <dolio> | Yeah, that's exactly the problem with citing that theorem. |
| 21:05:00 | <dolio> | Does anyone care about the algorithms that can't be expressed? |
| 21:05:09 | <monochrom> | Well yeah I haven't read Blum's paper or any related paper so I wouldn't assume either it's relevant or it's irrelevant. |
| 21:05:23 | × | pbrisbin quits (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
| 21:05:26 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 21:05:58 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:06:29 | <monochrom> | However, here is what I have figured out so far from a little trying and "I failed, so it looks like can't be done. Sure, I can't be sure, but meh." |
| 21:06:50 | <sclv> | all my favorite algorithms can't be expressed. that way i can say "oh i'd tell you my favorite algorithm, but you've never heard of it" |
| 21:07:43 | <monochrom> | So suppose you use System F and you use church encoding for natural numbers. "subtract 1" is going to suck. |
| 21:08:25 | <segfaultfizzbuzz> | monochrom: i'm so confused why do you need all of this machinery... do you need to handle "arbitrarily" large numbers? |
| 21:08:26 | <dolio> | Right, but that's what Mendler encodings are for, and people have made type theories that nicely incorporate those. |
| 21:08:45 | <dolio> | Like Cedille. |
| 21:08:46 | <segfaultfizzbuzz> | monochrom: can't i just have a few logic gates perform an addition operation? |
| 21:09:06 | <segfaultfizzbuzz> | you can do a lot with 64 bit integers, and 128 is pretty good too if you need to go that far,... |
| 21:09:08 | <monochrom> | At this point you would be right to critique "but church encoding of numbers is irrelevant". I agree. But I think this one is just the tip of an iceburg, this phenomenon generalizes to all ADTs that matter. |
| 21:09:44 | <segfaultfizzbuzz> | i am not aware of circumstances outside of cryptography and specialized mathematics research applications where you need something beyond a 64 or 128 bit integer |
| 21:10:06 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 21:10:12 | → | emf joins (~emf@2620:10d:c090:400::5:92d0) |
| 21:10:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 21:10:31 | × | xff0x quits (~xff0x@2001:1a81:5315:a700:a625:8ed2:e82f:87f0) (Ping timeout: 245 seconds) |
| 21:11:28 | → | xff0x joins (~xff0x@2001:1a81:5315:a700:248e:1ff5:c263:f618) |
| 21:12:38 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:12:50 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 21:13:41 | <geekosaur> | I have a program that uses them. Granted it's something of an unusual application |
| 21:14:04 | <geekosaur> | for a private (currently) project |
| 21:14:36 | <dolio> | Also it's important to ask why/in what way you're not Turing complete. Like, if your language is a total type theory, but one of the types is a sort of Turing-equivalent embedded language, and `main` runs something in that embedded language, like Haskell runs an `IO` value, is "the language" Turing-complete, or not? And if not, does it matter? |
| 21:14:56 | <geekosaur> | let's just say it generates timelines over a 43-(our-)year period for a bunch of different probably-nonexistent planets |
| 21:14:59 | <monochrom> | I am agnostic to "128 bits ought to be enough" vs "people should worry more about overflow and underflow". |
| 21:15:08 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 21:15:35 | <geekosaur> | including timezones and the like |
| 21:15:48 | <dolio> | At that point it's like saying, "ZFC isn't Turing-complete," while all your reasoning about Turing machines is, according to mathematicians, taking place inside ZFC. |
| 21:15:56 | <monochrom> | But next time "people should worry more about overflow and underflow" appears on haskell-cafe, is it OK to ping you to go and tell them "I haven't seen a need for more than 128 bits"? >:) |
| 21:15:59 | <geekosaur> | mostly it uses CReal but there are a few places it has to "downcast" to Integer |
| 21:16:57 | <alzgh> | where's the repository of ghci? |
| 21:17:09 | <geekosaur> | ghci is part of ghc |
| 21:17:14 | → | Robin_Jadoul joins (~Robin_Jad@152.67.64.160) |
| 21:17:19 | <alzgh> | Oh, OK |
| 21:17:25 | <geekosaur> | so it's on gitlab.haskell.org/ghc |
| 21:17:43 | <geekosaur> | there used to be a standalone sandbox for ghci but it's way out of date :( |
| 21:18:54 | <geekosaur> | (it was also a proof of concept for splitting ghci from ghc but they decided against because it needs to change every time ghc-api does and keeping separate repos in sync that way sucks) |
| 21:19:15 | <monochrom> | dolio: Is that analogous to: there are countable models of ZFC, and yet we use ZFC to prove that uncountability exists? |
| 21:19:26 | <alzgh> | I guess compiling ghc is a monster |
| 21:19:26 | <dolio> | Hmmm... |
| 21:20:31 | <monochrom> | To be fair, cardinality forgets a lot of interesting structures. It may not be a useful measure in the first place. |
| 21:20:48 | <dolio> | I think those are kind of different. |
| 21:22:15 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:22:51 | <shiraeeshi[m]> | alzgh: here is a link to info about building ghc: https://gitlab.haskell.org/ghc/ghc/-/wikis/building |
| 21:23:12 | <alzgh> | shiraeeshi[m]: thanks fren |
| 21:23:26 | × | MQ-17J quits (~MQ-17J@ip-99-203-15-239.pools.cgn.spcsdns.net) (Ping timeout: 245 seconds) |
| 21:25:10 | <geekosaur> | it's not lightweight |
| 21:25:17 | <dolio> | I guess the similarity is this. As long as you can describe a Turing machine to be executed in the total language, and your runtime executes that Turing machine, you are not seriously limited by the theory not recognizing that the Turing machine calculates a total function. And as long as it can describe a set you want, it doesn't matter that it thinks it's uncountable, when in the model you're thinking about, everything is countable. |
| 21:25:19 | <geekosaur> | I can't even build it on my laptop |
| 21:26:48 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:27:03 | <dolio> | In the latter case, it just means that 'uncountable' has a more interesting meaning than mathematicians usually think it does. |
| 21:27:54 | <alzgh> | https://gitlab.haskell.org/ghc/ghc/-/wikis/team-ghc list of contributors at the end should be updated. It's up to 2018 only |
| 21:28:20 | <geekosaur> | that might go to #ghc |
| 21:28:51 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 21:29:36 | <geekosaur> | oh, you might also want to select a specific branch; I think the general instructions assume you're building HEAD which would get you some ghc 9.3 prerelease |
| 21:29:52 | <geekosaur> | whereas you may want to experiment with 9.1 or 8.10.7 |
| 21:31:41 | <alzgh> | ghc master is 8.10.7, iirc |
| 21:31:46 | <alzgh> | or was at least last week |
| 21:31:55 | <geekosaur> | in particular I think HEAD has a build issue currently |
| 21:32:56 | <alzgh> | I made 2 very small patches to the docs and it took forever for the ci/cd to build and never succeeded |
| 21:33:12 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 21:37:06 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:37:55 | <monochrom> | This line of thought inspires me to turn the "I haven't seen a need for more than 64 bits" argument around. |
| 21:38:23 | <monochrom> | I haven't seen anyone willing to wait for termination if the terminate means waiting for more than 2^64 seconds. |
| 21:38:50 | <monochrom> | Does it really help to know that a language is total? |
| 21:39:50 | <monochrom> | As opposed to: Just knowing that your algorithm takes at most 2^64 steps for all input sizes below 2^64 bits? Or even just 64 bits? |
| 21:40:35 | <monochrom> | Because by this point you shouldn't even care about really arbitrarily large input sizes. |
| 21:41:52 | <monochrom> | Hell, in fact, s/willing/able/ |
| 21:42:14 | <[exa]> | this always reminds me that the computers have limited memory so luckily everything there can be decided to be total or not in finite time. :] |
| 21:42:31 | <monochrom> | save for Dorian Gray, vampires, and Guinan. :) |
| 21:42:50 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:43:10 | <[exa]> | 2^64 CPU cycles can be done in practice now though, you better bump your integers. :] |
| 21:44:09 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:45:41 | <monochrom> | OK, to be fair, people care about totality for safety, not efficiency. They want to avoid "head []". |
| 21:46:01 | <Franciman> | is nowaways Text.ParserCombinators.ReadP from the base package still used? |
| 21:46:05 | <Franciman> | or is it legacy? |
| 21:46:22 | <sshine> | Franciman, probably mostly for teaching. |
| 21:46:27 | <monochrom> | This means that, instead, you should have/make a theory that doesn't lump "instant crash" and "runs forever" into the same thing. |
| 21:46:37 | <Franciman> | oh I see |
| 21:48:45 | <monochrom> | I don't even think that ReadP was much used or much taught in the past. |
| 21:49:15 | → | son0p joins (~ff@181.136.122.143) |
| 21:49:16 | <monochrom> | But it looks like many standard Read instances use it internally. |
| 21:50:56 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 21:51:37 | <sshine> | we used it at my local university |
| 21:51:52 | <sshine> | along with Parse |
| 21:51:53 | <sshine> | c |
| 21:51:58 | <dolio> | monochrom: There are situations you're not thinking about. |
| 21:52:14 | <sshine> | as far as I recall, ReadP was used as a practical example of list monads. |
| 21:52:59 | <segfaultfizzbuzz> | i mean,... from my persepctive maybe it's worth explicitly labeling functions an non-total and using them sparingly,... but maybe i don't know what i am talking about |
| 21:53:20 | <dolio> | You can have an algorithm that is only 'safe' if some proposition is proved. And you could write a proof that takes 2^64 seconds to normalize fully. But you might not need to normalize it to know that it constitutes a witness that the dependent algorithm is safe. |
| 21:54:28 | <monochrom> | Hey I'm a fan of that! I keep reminding people "you don't actually run every proof as a program, do you?" |
| 21:54:28 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 21:54:42 | <sshine> | segfaultfizzbuzz, I have at least one internal fixpoint function that I'm not totally sure is total if fed the wrong things. and then I wrap it so that that doesn't happen. I'm happy I don't have to prove anything. :-D |
| 21:55:14 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 21:55:45 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:57:42 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:57:42 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 21:57:42 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:57:59 | <dolio> | It's also true that essentially no type theory is a practical bottleneck for what people do with computers, though, because you can just do induction on some extremely large natural number as part of your can-only-be-done-by-Turing-machines algorithm, and the computer will break before the algorithm stops because it reached 0. |
| 21:58:18 | <dolio> | Because Turing machines aren't real. |
| 21:58:39 | <sshine> | 🤯 |
| 21:58:51 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 22:02:35 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 22:03:45 | <janus> | alzgh: what do you mean when you say 'ghc master is 8.10.7'? i thought the master would be the most unstable of all, so that should be something after 9.2.0-alpha1? |
| 22:03:52 | × | Robin_Jadoul quits (~Robin_Jad@152.67.64.160) (Remote host closed the connection) |
| 22:04:06 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 22:04:14 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 22:04:30 | <geekosaur> | just because 8.10.7 was most recently released does not nmake it master; in fact they hope they're done with the 8.10 branch |
| 22:04:34 | → | Robin_Jadoul joins (~Robin_Jad@152.67.64.160) |
| 22:04:37 | × | noctux quits (~noctux@user/noctux) (Read error: Connection reset by peer) |
| 22:04:45 | → | noctux joins (~noctux@user/noctux) |
| 22:04:56 | <alzgh> | janus: I may be wrong, I'm very new. Just had a very small experience with it. |
| 22:05:06 | × | bsima quits (~bsima@simatime.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:05:06 | × | Xnuk quits (~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in) |
| 22:05:07 | × | drdo quits (~drdo@overlord0.drdo.eu) (Remote host closed the connection) |
| 22:05:08 | × | remedan quits (~remedan@balak.me) (Quit: Bye!) |
| 22:05:10 | <geekosaur> | precisely because it's so far behind and they want to work on cutting 9.2.1 |
| 22:05:23 | → | Xnuk joins (~xnuk@45.76.202.58) |
| 22:05:27 | → | bsima joins (~bsima@simatime.com) |
| 22:05:35 | → | remedan joins (~remedan@balak.me) |
| 22:05:38 | × | edr quits (~edr@user/edr) (Ping timeout: 250 seconds) |
| 22:05:47 | × | s-h-i-n-o-b-i quits (~quassel@104.244.75.124) (Remote host closed the connection) |
| 22:05:57 | → | drdo joins (~drdo@overlord0.drdo.eu) |
| 22:06:41 | × | remexre quits (~nathan@user/remexre) (Ping timeout: 246 seconds) |
| 22:06:41 | × | finsternis quits (~X@23.226.237.192) (Ping timeout: 246 seconds) |
| 22:06:50 | → | edr joins (~edr@enlo.co) |
| 22:06:50 | × | edr quits (~edr@enlo.co) (Changing host) |
| 22:06:50 | → | edr joins (~edr@user/edr) |
| 22:07:10 | → | aegon joins (~mike@174.127.249.180) |
| 22:07:32 | → | remexre joins (~nathan@user/remexre) |
| 22:07:34 | → | finsternis joins (~X@23.226.237.192) |
| 22:10:26 | × | michalz quits (~michalz@185.246.204.55) (Remote host closed the connection) |
| 22:15:16 | × | max22- quits (~maxime@2a01cb0883359800761b1c69d9198b7f.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
| 22:19:15 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:28:09 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 22:30:40 | → | free_functor joins (~asdf@ip-64-72-99-234.lasvegas.net) |
| 22:30:49 | → | mestre joins (~mestre@191.177.175.57) |
| 22:31:21 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 22:33:17 | <free_functor> | hello all |
| 22:33:31 | <free_functor> | I want to refactor this code a bit: https://github.com/maxsu/vitrea/tree/master/source |
| 22:34:31 | <free_functor> | each file has the same 24 lines of LANGUAGE directives, and most files import all of the same standard modules |
| 22:35:51 | <geekosaur> | you can put common LANGUAGE pragmas in the cabal file, and make a single file that imports and re-exports the "standard" modules |
| 22:36:17 | <geekosaur> | module MyPrelude (module A, module B, ...) where import A; import B; ... |
| 22:36:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) (Remote host closed the connection) |
| 22:36:39 | <free_functor> | the cabal refactoring is very nice! |
| 22:36:45 | <monochrom> | I might keep the "redundant" language directives. |
| 22:37:37 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 22:37:54 | <monochrom> | "refactoring" should not mean "dropping contexts" |
| 22:38:02 | <free_functor> | could I cram the language directives into MyPrelude as well? |
| 22:38:47 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75e5:da2f:c054:6c5d) |
| 22:38:50 | <geekosaur> | no, they can't be re-exported |
| 22:39:02 | × | nctcf^ quits (~nctcf@68.101.50.106) (Remote host closed the connection) |
| 22:39:55 | <monochrom> | Moreover, there is no rule that says each extension must take up its own "{-# language X #-}" line. |
| 22:39:58 | <geekosaur> | one warning with making a module like MyPrelude is you can't use qualification any more, because everything would be qualified as MyPrelude.whatever in importing modules |
| 22:40:27 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
| 22:40:46 | <monochrom> | "{-# language GADTs, FlexibleContexts, TypeInType #-}" is a thing. |
| 22:41:06 | <monochrom> | That readily reduces 24 lines into 8 lines. |
| 22:41:35 | <monochrom> | can go further down to 6, even 4, depending on your comfortable screen width. |
| 22:41:58 | <monochrom> | I trust that you didn't rotate your monitor to a portrait mode. |
| 22:42:36 | × | xff0x quits (~xff0x@2001:1a81:5315:a700:248e:1ff5:c263:f618) (Ping timeout: 245 seconds) |
| 22:43:27 | → | cjb joins (~cjb@user/cjb) |
| 22:45:05 | → | xff0x joins (~xff0x@83.236.22.151) |
| 22:45:29 | × | eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 252 seconds) |
| 22:45:56 | <free_functor> | @geekosaur, here it is! https://cabal.readthedocs.io/en/3.4/cabal-package.html#pkg-field-default-extensions |
| 22:45:56 | <lambdabot> | Unknown command, try @list |
| 22:46:50 | <free_functor> | if I want to, as monocrome intimates, put all that context into the last place someone will look the first read through of the code, I would shuttle all those lines into the cabal file |
| 22:47:02 | → | eL_Bart0 joins (eL_Bart0@dietunichtguten.org) |
| 22:47:16 | <free_functor> | and I might do just that. Because I am fundamentally an /evil/ functor. |
| 22:48:38 | <monochrom> | Sure, ideally, extensions may be better off sitting near the end of a file, not near the beginning. |
| 22:49:16 | × | chomwitt quits (~chomwitt@2a02:587:dc0a:5800:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds) |
| 22:50:41 | <monochrom> | I guess I can soften my position because in practice you just look at a line of code and you can guess which extensions it is using, you don't need reminders. |
| 22:51:10 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 22:51:12 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb83d5f3bf11d040064f.dip0.t-ipconnect.de) |
| 22:51:24 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 22:52:35 | <monochrom> | There used to be one single line {-# OPTION -fglasgow-exts #-}. |
| 22:52:55 | <free_functor> | Here the sheer consistency and reuse of extensions is somewhat suspicious and seems intentional, such that changing one extension line in one file without changing the corresponding lines in the other files would likely be a bug or at least go against the author's intent |
| 22:53:16 | <free_functor> | so ideally I would like to take that shared context and document it in one place... and ideally I would make a passing reference to this at the beggining of each file, so that readers won't forget that we're operating in a special context |
| 22:53:39 | <monochrom> | I agree with that. |
| 22:54:57 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb837cfb9841cc066d33.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 22:57:30 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:59:10 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:59:44 | → | yauhsien joins (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) |
| 23:01:17 | × | Null_A quits (~null_a@2601:645:8700:2290:91f2:4a69:be9c:a77e) (Remote host closed the connection) |
| 23:04:37 | × | yauhsien quits (~yauhsien@118-167-48-21.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 23:05:18 | → | yinghua joins (~yinghua@2800:2121:1400:1db:1c60:aa3c:8d:9122) |
| 23:07:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:08:49 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 265 seconds) |
| 23:09:17 | → | dextaa joins (~DV@user/dextaa) |
| 23:10:10 | × | hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection) |
| 23:11:20 | × | xff0x quits (~xff0x@83.236.22.151) (Ping timeout: 252 seconds) |
| 23:11:51 | → | hgolden joins (~hgolden2@172.114.81.123) |
| 23:11:51 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 23:13:17 | → | xff0x joins (~xff0x@2001:1a81:533c:2c00:5093:30e6:359f:919) |
| 23:13:34 | <free_functor> | the common extensions were listed in the cabal file under the 'other-extensions' field. After I renamed this to the 'default-extensions' field, I was able to remove all extension declarations from the code |
| 23:14:26 | <geekosaur> | yeh, other-extensions is just documentation when you want to keep a record in one place |
| 23:14:38 | <geekosaur> | I think it may also be used by hackage for some things |
| 23:16:53 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 23:17:07 | <free_functor> | I like this solution from the perspective of a maintainer. It documents that the author really does want to use the same extensions for each file, and it controls the extensions from one place. |
| 23:18:54 | <free_functor> | but this sucks from a discoverability perspective - to read the code, a new maintainer must first closely read the cabal file. |
| 23:20:58 | <geekosaur> | my perspective is you need to read the cabal file to know what the code is anyway (what is what library, executable, etc.) so this is just one more thingt you get first |
| 23:21:23 | <free_functor> | I could compromise: In main.hs I can leave a comment that says "for extensions see the default-extensions field of the cabal file." That is a clue for the new reader, without being too anoying to someone that has to see the code. |
| 23:22:52 | <free_functor> | geekosaur, I think that might be the more mature perspective, and if we take that perspective then the "clue" comment is extraneous |
| 23:24:40 | <free_functor> | https://github.com/maxsu/vitrea/blob/master/source/Categories.hs so much cleaner :3 |
| 23:25:49 | × | xsarnik quits (xsarnik@lounge.fi.muni.cz) (Quit: Ping timeout (120 seconds)) |
| 23:26:30 | → | xsarnik joins (xsarnik@lounge.fi.muni.cz) |
| 23:26:45 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
| 23:28:51 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 23:30:57 | × | mrkajetanp quits (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (Ping timeout: 268 seconds) |
| 23:31:20 | → | mrkajetanp joins (~mrkajetan@88.98.245.28) |
| 23:31:23 | × | monadfritz[m] quits (~ahdytmatr@2001:470:69fc:105::e1f1) (Ping timeout: 246 seconds) |
| 23:31:23 | × | stoicswe[m] quits (~deadlette@2001:470:69fc:105::d277) (Ping timeout: 246 seconds) |
| 23:31:23 | × | jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (Ping timeout: 246 seconds) |
| 23:31:23 | × | kevin[m]1 quits (~pnotequal@2001:470:69fc:105::a54) (Ping timeout: 246 seconds) |
| 23:31:23 | × | Christoph[m] quits (~hpotsirhc@2001:470:69fc:105::2ff8) (Ping timeout: 246 seconds) |
| 23:31:23 | × | lwe[m] quits (~dendrumat@2001:470:69fc:105::2f9b) (Ping timeout: 246 seconds) |
| 23:31:27 | × | sam[m]1 quits (~sammtopoi@2001:470:69fc:105::e887) (Ping timeout: 250 seconds) |
| 23:31:27 | × | ormaaj quits (~ormaaj@user/ormaaj) (Ping timeout: 250 seconds) |
| 23:31:34 | × | afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (Ping timeout: 268 seconds) |
| 23:31:34 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 268 seconds) |
| 23:31:44 | × | fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 246 seconds) |
| 23:31:44 | × | smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 246 seconds) |
| 23:31:44 | × | ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (Ping timeout: 246 seconds) |
| 23:31:53 | × | craige[m] quits (~craigemcw@2001:470:69fc:105::35f1) (Ping timeout: 250 seconds) |
| 23:31:53 | × | alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 250 seconds) |
| 23:31:53 | × | hsek[m] quits (~hsekmatri@2001:470:69fc:105::d18f) (Ping timeout: 250 seconds) |
| 23:31:53 | × | Deide quits (~deide@user/deide) (Ping timeout: 250 seconds) |
| 23:31:53 | × | ixlun quits (~ixlun@2001:470:69fc:105::41b3) (Ping timeout: 250 seconds) |
| 23:31:53 | × | dexmad[m] quits (~dexmadmat@2001:470:69fc:105::e056) (Ping timeout: 264 seconds) |
| 23:31:53 | × | fakehacker[m] quits (~fakehacke@2001:470:69fc:105::b5f0) (Ping timeout: 264 seconds) |
| 23:31:53 | × | justosophy[m] quits (~justosoph@2001:470:69fc:105::572f) (Ping timeout: 264 seconds) |
| 23:31:54 | × | jakefromstatefar quits (~jakefroms@2001:470:69fc:105::15ef) (Ping timeout: 264 seconds) |
| 23:31:54 | × | the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Ping timeout: 264 seconds) |
| 23:31:54 | × | rednaZ[m] quits (~r3dnazmat@2001:470:69fc:105::ba70) (Ping timeout: 264 seconds) |
| 23:32:05 | × | Orbstheorem quits (~orbstheor@2001:470:69fc:105::a56) (Ping timeout: 246 seconds) |
| 23:32:05 | × | Drew[m] quits (~drewefenw@2001:470:69fc:105::c8c4) (Ping timeout: 246 seconds) |
| 23:32:05 | × | Tisoxin quits (~ikosit@user/ikosit) (Ping timeout: 246 seconds) |
| 23:32:05 | × | cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 246 seconds) |
| 23:32:11 | × | IgnatInsarov[m] quits (~kindaroma@2001:470:69fc:105::f5d9) (Ping timeout: 268 seconds) |
| 23:32:11 | × | asdofindia-m quits (~akshaymat@2001:470:69fc:105::831) (Ping timeout: 268 seconds) |
| 23:32:11 | × | hughjfchen[m] quits (~hughjfche@2001:470:69fc:105::c29d) (Ping timeout: 268 seconds) |
| 23:32:11 | × | jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (Ping timeout: 268 seconds) |
| 23:32:12 | × | unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Ping timeout: 268 seconds) |
| 23:32:12 | × | ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Ping timeout: 268 seconds) |
| 23:32:18 | × | rosariopulella[m quits (~rosariopu@2001:470:69fc:105::a57) (Ping timeout: 250 seconds) |
| 23:32:18 | × | infinisil quits (~infinisil@2001:470:69fc:105::ff8) (Ping timeout: 250 seconds) |
| 23:32:29 | × | reddishblue[m] quits (~reddishbl@2001:470:69fc:105::21eb) (Ping timeout: 264 seconds) |
| 23:32:46 | <alzgh> | I'm trying to compile ghc. I have setup a Fedora34 container and installed all the required packages as requested. I get this error when I run `.configure`. https://paste.tomsmeding.com/mbxAJtXX |
| 23:32:59 | <alzgh> | Can provide further information if needed. |
| 23:33:34 | <monochrom> | Perhaps you need the Fedora package that has diff. |
| 23:34:12 | <monochrom> | Most container images sacrifice completeness for smaller download size. |
| 23:35:40 | → | monadfritz[m] joins (~ahdytmatr@2001:470:69fc:105::e1f1) |
| 23:35:48 | → | jesser[m] joins (~jessermat@2001:470:69fc:105::d5ae) |
| 23:36:05 | <alzgh> | Ok, thanks monochrom will check that |
| 23:36:11 | → | stoicswe[m] joins (~deadlette@2001:470:69fc:105::d277) |
| 23:38:04 | → | pbrisbin joins (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) |
| 23:40:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 23:42:15 | × | Guest1344 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 23:42:37 | → | fakehacker[m] joins (~fakehacke@2001:470:69fc:105::b5f0) |
| 23:42:48 | → | smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32) |
| 23:48:28 | → | craige[m] joins (~craigemcw@2001:470:69fc:105::35f1) |
| 23:49:43 | → | chris joins (~chris@81.96.113.213) |
| 23:49:47 | chris | is now known as Guest9694 |
| 23:49:57 | → | ixlun joins (~ixlun@2001:470:69fc:105::41b3) |
| 23:49:57 | → | alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba) |
| 23:50:56 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb83d5f3bf11d040064f.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 23:51:15 | → | Orbstheorem joins (~orbstheor@2001:470:69fc:105::a56) |
| 23:52:02 | → | kevin[m]1 joins (~pnotequal@2001:470:69fc:105::a54) |
| 23:53:25 | × | Guest9694 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 23:53:34 | → | afotgkmnzj7asv3r joins (~afotgkmnz@2001:470:69fc:105::c24b) |
| 23:54:28 | → | chris joins (~chris@81.96.113.213) |
| 23:54:32 | chris | is now known as Guest8820 |
| 23:55:23 | → | hexfive joins (~eric@50.35.83.177) |
| 23:55:24 | → | ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a) |
| 23:57:13 | → | jakefromstatefar joins (~jakefroms@2001:470:69fc:105::15ef) |
| 23:57:48 | → | reddishblue[m] joins (~reddishbl@2001:470:69fc:105::21eb) |
| 23:58:12 | × | hexfive quits (~eric@50.35.83.177) (Client Quit) |
| 23:58:36 | → | justosophy[m] joins (~justosoph@2001:470:69fc:105::572f) |
| 23:58:47 | → | Christoph[m] joins (~hpotsirhc@2001:470:69fc:105::2ff8) |
| 23:58:54 | → | sm joins (~sm@plaintextaccounting/sm) |
All times are in UTC on 2021-09-27.