Logs on 2022-11-19 (liberachat/#haskell)
| 00:10:04 | → | mauke_ joins (~mauke@p5091177f.dip0.t-ipconnect.de) |
| 00:11:52 | × | mauke quits (~mauke@p57b6eb34.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 00:20:28 | × | elevenkb quits (~elevenkb@105.184.125.168) (Remote host closed the connection) |
| 00:21:21 | × | titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Remote host closed the connection) |
| 00:25:01 | → | king_gs joins (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) |
| 00:25:38 | × | king_gs quits (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Client Quit) |
| 00:29:20 | → | denh^ joins (~denl@76.145.185.103) |
| 00:39:10 | × | Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:39:51 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 00:41:09 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 00:43:50 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 00:44:34 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 00:44:34 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 00:44:34 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:44:40 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 00:48:21 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30:3193:f3f8:77d4:386c) (Quit: caryhartline) |
| 00:50:22 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::efb) |
| 01:01:42 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:03:13 | → | califax joins (~califax@user/califx) |
| 01:03:40 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.7.1) |
| 01:04:22 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 01:05:35 | → | Batzy joins (~quassel@user/batzy) |
| 01:05:45 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 01:06:15 | → | ub joins (~Thunderbi@178.115.40.94.wireless.dyn.drei.com) |
| 01:06:48 | → | caryhartline joins (~caryhartl@107.140.218.181) |
| 01:06:56 | × | ubert1 quits (~Thunderbi@178.165.197.162.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
| 01:07:30 | × | ubert quits (~Thunderbi@178.165.197.162.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
| 01:07:30 | ub | is now known as ubert |
| 01:08:17 | → | elevenkb joins (~elevenkb@105.184.125.168) |
| 01:10:20 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds) |
| 01:10:33 | → | nilradical joins (~nilradica@user/naso) |
| 01:15:13 | × | nilradical quits (~nilradica@user/naso) (Client Quit) |
| 01:16:10 | × | elevenkb quits (~elevenkb@105.184.125.168) (Ping timeout: 260 seconds) |
| 01:17:21 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:19:20 | → | califax joins (~califax@user/califx) |
| 01:36:19 | → | srz joins (~srz@179.36.119.226) |
| 01:36:44 | × | KaitoDaumoto quits (~asdf@user/kaitodaumoto) (Read error: Connection reset by peer) |
| 01:44:20 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 01:46:50 | × | ft quits (~ft@i59F54BF7.versanet.de) (Ping timeout: 240 seconds) |
| 01:48:49 | → | ft joins (~ft@87.122.4.81) |
| 02:07:24 | → | nate4 joins (~nate@98.45.169.16) |
| 02:10:35 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 02:10:53 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 02:12:24 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 02:16:09 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 02:20:38 | → | razetime joins (~quassel@117.193.6.219) |
| 02:22:08 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 02:27:34 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 02:28:19 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 02:32:49 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 02:37:08 | × | beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds) |
| 02:40:26 | × | razetime quits (~quassel@117.193.6.219) (Ping timeout: 256 seconds) |
| 02:45:10 | → | pfurla joins (~pfurla@2804:14d:5c5a:b298:9141:4b85:8142:1856) |
| 02:46:28 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 02:47:44 | × | pfurla quits (~pfurla@2804:14d:5c5a:b298:9141:4b85:8142:1856) (Client Quit) |
| 02:48:51 | → | accord joins (uid568320@id-568320.hampstead.irccloud.com) |
| 02:51:15 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 03:06:53 | × | td_ quits (~td@83.135.9.5) (Ping timeout: 256 seconds) |
| 03:08:05 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
| 03:08:46 | → | td_ joins (~td@83.135.9.60) |
| 03:12:02 | → | bilegeek joins (~bilegeek@2600:1008:b069:2ea1:a3d0:790d:f039:13b9) |
| 03:13:43 | → | marc__ joins (~marc@5.83.191.214) |
| 03:16:15 | × | goepsilongo quits (~goepsilon@2603-7000-ab00-00e5-392a-bca4-733f-bcd4.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:16:46 | → | goepsilongo joins (~goepsilon@2603-7000-ab00-00e5-392a-bca4-733f-bcd4.res6.spectrum.com) |
| 03:17:16 | × | marc___ quits (~marc@5.83.191.79) (Ping timeout: 256 seconds) |
| 03:17:59 | × | bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:40:07 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:40:30 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds) |
| 03:45:02 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 03:47:44 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds) |
| 03:48:06 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:48:18 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 03:48:42 | → | Batzy joins (~quassel@user/batzy) |
| 03:50:45 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 03:51:05 | → | jargon joins (~jargon@184.101.188.35) |
| 03:52:54 | × | caryhartline quits (~caryhartl@107.140.218.181) (Quit: caryhartline) |
| 03:55:17 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 04:01:21 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
| 04:02:20 | × | tdammers quits (~tdammers@77.109.72.118.res.static.edpnet.net) (Ping timeout: 246 seconds) |
| 04:02:56 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 04:03:29 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 04:13:20 | → | srz_ joins (~srz@179.36.74.229) |
| 04:15:38 | × | srz quits (~srz@179.36.119.226) (Ping timeout: 256 seconds) |
| 04:16:41 | → | tdammers joins (~tdammers@77.109.72.118.res.static.edpnet.net) |
| 04:17:43 | × | xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 256 seconds) |
| 04:21:03 | × | srz_ quits (~srz@179.36.74.229) (Remote host closed the connection) |
| 04:25:13 | → | xff0x joins (~xff0x@ai071162.d.east.v6connect.net) |
| 04:33:34 | × | mixfix41 quits (~sdeny9ee@user/mixfix41) (Ping timeout: 260 seconds) |
| 04:39:46 | → | dextaa9 joins (~DV@user/dextaa) |
| 04:41:58 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 268 seconds) |
| 04:41:59 | dextaa9 | is now known as dextaa |
| 04:59:02 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 05:00:24 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 05:01:22 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::efb) (Quit: Going elsewhere) |
| 05:05:24 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
| 05:08:16 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 05:08:40 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 05:21:36 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 05:26:04 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 05:28:25 | × | jmcantrell quits (~jmcantrel@user/jmcantrell) (Quit: Reconnecting) |
| 05:28:51 | → | jmcantrell joins (~jmcantrel@user/jmcantrell) |
| 05:32:24 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 05:33:05 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 05:33:43 | Lord_of_Life_ | is now known as Lord_of_Life |
| 05:36:31 | → | VY2 joins (~user@213.24.133.139) |
| 05:44:45 | → | razetime joins (~quassel@117.193.6.219) |
| 06:03:37 | mauke_ | is now known as mauke |
| 06:08:53 | → | nate4 joins (~nate@98.45.169.16) |
| 06:11:19 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 06:11:20 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 06:11:20 | → | wroathe joins (~wroathe@user/wroathe) |
| 06:11:48 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 06:14:04 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 06:33:20 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 06:36:04 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 06:41:21 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 06:48:54 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 06:50:12 | mauke | is now known as mauke_ |
| 06:50:17 | mauke_ | is now known as mauke |
| 07:13:33 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 07:23:41 | → | freeside_ joins (~mengwong@103.252.202.193) |
| 07:24:15 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 07:32:56 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:89a4:6d1:4909:326f) (Remote host closed the connection) |
| 07:39:02 | × | Dutchgriffon quits (~Laurens@70.36.53.134) (Read error: Connection reset by peer) |
| 07:41:43 | × | bilegeek quits (~bilegeek@2600:1008:b069:2ea1:a3d0:790d:f039:13b9) (Remote host closed the connection) |
| 07:42:03 | → | bilegeek joins (~bilegeek@2600:1008:b069:2ea1:a3d0:790d:f039:13b9) |
| 07:42:34 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 260 seconds) |
| 07:51:45 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:02:34 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 08:03:50 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 08:08:32 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 08:11:50 | × | VY2 quits (~user@213.24.133.139) (Remote host closed the connection) |
| 08:13:55 | → | Guest75 joins (~Guest75@178.141.130.118) |
| 08:15:35 | × | Techcable quits (~Techcable@user/Techcable) (Ping timeout: 260 seconds) |
| 08:16:42 | → | coot joins (~coot@213.134.171.3) |
| 08:19:48 | × | bilegeek quits (~bilegeek@2600:1008:b069:2ea1:a3d0:790d:f039:13b9) (Quit: Leaving) |
| 08:27:33 | → | `2jt joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) |
| 08:31:34 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 08:34:36 | × | Vajb quits (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) (Read error: Connection reset by peer) |
| 08:34:38 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
| 08:34:49 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 08:37:32 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 08:37:35 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 08:45:40 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 08:47:13 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 08:48:16 | → | acidjnk joins (~acidjnk@p200300d6e7137a305cc03b10fd7a2523.dip0.t-ipconnect.de) |
| 08:48:57 | × | phma quits (phma@2001:5b0:211f:71d8:b1fb:b9c3:f43b:db91) (Read error: Connection reset by peer) |
| 08:49:39 | × | foul_owl quits (~kerry@174-21-75-230.tukw.qwest.net) (Ping timeout: 260 seconds) |
| 08:49:48 | → | phma joins (~phma@host-67-44-208-214.hnremote.net) |
| 08:53:51 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 08:53:52 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Ping timeout: 256 seconds) |
| 08:55:22 | → | zaquest joins (~notzaques@5.130.79.72) |
| 09:00:03 | × | RowanG[m] quits (~rowang077@2001:470:69fc:105::1:ca9f) (Quit: You have been kicked for being idle) |
| 09:03:17 | → | foul_owl joins (~kerry@157.97.134.158) |
| 09:05:48 | → | titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de) |
| 09:07:46 | → | Neuromancer joins (~Neuromanc@user/neuromancer) |
| 09:09:12 | → | gmg joins (~user@user/gehmehgeh) |
| 09:12:23 | → | chromoblob joins (~user@37.113.164.122) |
| 09:14:30 | × | `2jt quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 260 seconds) |
| 09:21:48 | → | Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
| 09:26:03 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 09:28:40 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:31:50 | × | chromoblob quits (~user@37.113.164.122) (Ping timeout: 240 seconds) |
| 09:32:30 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:32:45 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 09:34:18 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 09:35:07 | × | wonko quits (~wjc@2a0e:1c80:2:0:45:15:19:130) (Quit: See You Space Cowboy..) |
| 09:39:27 | × | razetime quits (~quassel@117.193.6.219) (Ping timeout: 260 seconds) |
| 09:39:55 | → | razetime joins (~quassel@117.193.6.219) |
| 09:41:21 | → | elevenkb joins (~elevenkb@105.184.125.168) |
| 09:47:31 | × | jargon quits (~jargon@184.101.188.35) (Remote host closed the connection) |
| 09:55:55 | × | freeside_ quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 09:56:08 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 09:56:35 | → | img joins (~img@user/img) |
| 10:10:00 | → | zeenk joins (~zeenk@2a02:2f04:a208:3600::7fe) |
| 10:10:22 | → | nate4 joins (~nate@98.45.169.16) |
| 10:10:45 | × | Xeroine quits (~Xeroine@user/xeroine) (Ping timeout: 256 seconds) |
| 10:12:50 | → | Xeroine joins (~Xeroine@user/xeroine) |
| 10:14:24 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 10:15:10 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 10:20:31 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 268 seconds) |
| 10:22:29 | → | freeside joins (~mengwong@103.252.202.193) |
| 10:25:40 | × | titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Ping timeout: 256 seconds) |
| 10:26:51 | → | titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de) |
| 10:27:18 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds) |
| 10:28:40 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 10:29:00 | → | chomwitt joins (~chomwitt@2a02:587:7a0a:c00:1ac0:4dff:fedb:a3f1) |
| 10:35:07 | × | acidjnk quits (~acidjnk@p200300d6e7137a305cc03b10fd7a2523.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 10:38:31 | → | michalz joins (~michalz@185.246.207.197) |
| 10:43:35 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 10:44:22 | × | titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Ping timeout: 256 seconds) |
| 10:46:18 | × | zeenk quits (~zeenk@2a02:2f04:a208:3600::7fe) (Quit: Konversation terminated!) |
| 10:47:39 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
| 10:49:00 | × | biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 10:53:53 | → | biberu joins (~biberu@user/biberu) |
| 10:55:23 | → | freeside joins (~mengwong@103.252.202.193) |
| 10:56:49 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 10:58:10 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 10:59:51 | → | titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de) |
| 11:00:03 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds) |
| 11:00:15 | → | chromoblob joins (~user@37.113.164.122) |
| 11:00:56 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 11:02:31 | → | califax joins (~califax@user/califx) |
| 11:03:31 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:04:01 | → | Vajb joins (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) |
| 11:04:26 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 11:05:38 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 11:06:03 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 11:06:21 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) |
| 11:08:27 | money | is now known as Guest1295 |
| 11:09:34 | → | acidjnk joins (~acidjnk@p200300d6e7137a3011d75adc93e5c26c.dip0.t-ipconnect.de) |
| 11:11:10 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) (Ping timeout: 260 seconds) |
| 11:15:02 | × | califax quits (~califax@user/califx) (Ping timeout: 255 seconds) |
| 11:15:40 | → | califax joins (~califax@user/califx) |
| 11:16:55 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 11:17:26 | → | califax joins (~califax@user/califx) |
| 11:20:20 | × | titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Remote host closed the connection) |
| 11:29:12 | → | freeside joins (~mengwong@103.252.202.193) |
| 11:29:45 | → | sagex joins (~sagex@2600:1700:42d8:4530:2ef0:5dff:fede:e8) |
| 11:30:16 | → | InstX1 joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 11:30:56 | × | haskl quits (~haskl@user/haskl) (Read error: Connection reset by peer) |
| 11:33:03 | → | haskl joins (~haskl@user/haskl) |
| 11:33:55 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 11:34:44 | × | InstX1 quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 248 seconds) |
| 11:34:44 | × | AlexZenon quits (~alzenon@178.34.161.167) (Ping timeout: 260 seconds) |
| 11:37:05 | → | AlexZenon joins (~alzenon@178.34.161.167) |
| 11:46:34 | → | freeside joins (~mengwong@103.252.202.193) |
| 11:46:51 | × | elevenkb quits (~elevenkb@105.184.125.168) (Ping timeout: 260 seconds) |
| 11:48:45 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 11:52:48 | → | elevenkb joins (~elevenkb@105.184.125.168) |
| 11:54:16 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 11:55:55 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 11:58:49 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 12:04:00 | → | titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de) |
| 12:05:58 | × | elevenkb quits (~elevenkb@105.184.125.168) (Ping timeout: 268 seconds) |
| 12:12:04 | × | marc__ quits (~marc@5.83.191.214) (Ping timeout: 260 seconds) |
| 12:12:46 | × | acidjnk quits (~acidjnk@p200300d6e7137a3011d75adc93e5c26c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 12:16:36 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 12:16:58 | × | Guest75 quits (~Guest75@178.141.130.118) (Ping timeout: 260 seconds) |
| 12:18:34 | → | marc__ joins (~marc@5.83.191.214) |
| 12:21:05 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 12:24:16 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:25:58 | → | acidjnk joins (~acidjnk@p200300d6e7137a3011d75adc93e5c26c.dip0.t-ipconnect.de) |
| 12:31:08 | → | InstX1 joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 12:35:08 | → | `2jt joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) |
| 12:36:11 | × | InstX1 quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
| 12:42:27 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 12:42:38 | → | mmhat joins (~mmh@p200300f1c704687fee086bfffe095315.dip0.t-ipconnect.de) |
| 12:45:17 | × | kuribas quits (~user@ptr-17d51enw7vbqv4wetdn.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 12:47:38 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 12:53:30 | × | goepsilongo quits (~goepsilon@2603-7000-ab00-00e5-392a-bca4-733f-bcd4.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:53:54 | → | goepsilongo joins (~goepsilon@2603-7000-ab00-00e5-4167-a449-9ece-260f.res6.spectrum.com) |
| 12:54:44 | × | titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Quit: Leaving.) |
| 13:08:02 | → | fockerize joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 13:08:04 | → | Techcable joins (~Techcable@user/Techcable) |
| 13:08:15 | × | razetime quits (~quassel@117.193.6.219) (Ping timeout: 268 seconds) |
| 13:13:01 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:16:06 | → | img joins (~img@user/img) |
| 13:18:19 | × | acidjnk quits (~acidjnk@p200300d6e7137a3011d75adc93e5c26c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 13:21:08 | → | razetime joins (~quassel@117.193.3.223) |
| 13:29:14 | × | xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 268 seconds) |
| 13:36:10 | → | xff0x joins (~xff0x@ai071162.d.east.v6connect.net) |
| 13:42:40 | <WarzoneCommand> | is there an easy way to make GHC monomorphize a function and all of its dependant functions? More concretely, I have some function like "convexHull :: IsAPoint point => [point] -> Polygon point" , but the polymorphic version is about 50 times slower than when I manually monomorphize it to something like convexHull :: [Point Int] -> Polygon (Point Int). I kind of want the compiler to do that for |
| 13:42:46 | <WarzoneCommand> | me.... |
| 13:43:24 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 13:43:47 | <Axman6> | add specialise pragmas |
| 13:43:54 | <WarzoneCommand> | the only things that I can somehow think of are: 1) use backpack for all of this stuff (but that seems like a bit of a hassle in itself), or 2) put a specialize pragma in the module in which I've implemented convexHull (that only partially works though) |
| 13:44:34 | <WarzoneCommand> | moreover, I can't put the specialize pragma in the "clients" module, so I would have to guess all interesting definitions for 'point' |
| 13:44:36 | <Axman6> | or specialisable... I think that's a thing... |
| 13:44:44 | <tomsmeding> | SPECIALIZE |
| 13:44:54 | <Axman6> | but spelt correctly |
| 13:45:08 | <tomsmeding> | well, your spelling was more correct, but unfortunately ghc wants american spelling :p |
| 13:45:22 | <Axman6> | i believe it supports both? |
| 13:45:52 | <tomsmeding> | ooh |
| 13:45:52 | <mauke> | "(UK spelling also accepted.)" |
| 13:45:53 | <WarzoneCommand> | for specialize supposedly one can also use the british spelling :P |
| 13:46:00 | <tomsmeding> | seems to work |
| 13:46:17 | <mauke> | it doesn't have to be in the same module |
| 13:46:18 | <WarzoneCommand> | seems specializable is not a thing yet (https://gitlab.haskell.org/ghc/ghc/-/issues/12463 ?) |
| 13:46:37 | <mauke> | "Moreover, you can also SPECIALIZE an imported function provided it was given an INLINABLE pragma at its definition site" |
| 13:47:10 | × | fockerize quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 13:47:54 | <WarzoneCommand> | mauke: I think that I will have to add inlinable pragamas on pretty much everything; only adding it to the main "convexHull" function does not seem to help |
| 13:48:27 | <mauke> | yeah, probably |
| 13:48:42 | <WarzoneCommand> | that seems fairly annoying and/or error prone :( |
| 13:53:55 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 13:53:59 | <WarzoneCommand> | hmm this is really weird |
| 13:55:49 | <Lycurgus> | convex hull, and you doin linear program or branch and bound or sthn? |
| 13:55:50 | <WarzoneCommand> | if I put the SPECIALZE convexHull :: [Point Int] -> .." pragma in my module that implements convex hull, I get the speedup I expect. But even if I make everything in that module inlinable (but not in modules imported by my convex-hull implementation module) and put the specialize pragma instead at the client module, it does not work |
| 13:55:56 | <Lycurgus> | *are you |
| 13:56:10 | <Lycurgus> | *programming |
| 13:56:37 | <WarzoneCommand> | I'm maintaining a library doing all sorts of geometric algorithms |
| 13:56:42 | <Lycurgus> | ah |
| 13:57:03 | <Lycurgus> | that kind of convexity |
| 13:57:24 | <WarzoneCommand> | it's the same type of convexity you encounter when doing linear programming ;) |
| 13:58:01 | <Lycurgus> | yeah, conceotually |
| 13:58:10 | <Lycurgus> | *conceptually |
| 14:02:15 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:06:07 | → | acidjnk joins (~acidjnk@p200300d6e7137a4619037b2a1cfeb60c.dip0.t-ipconnect.de) |
| 14:11:53 | → | nate4 joins (~nate@98.45.169.16) |
| 14:14:09 | <WarzoneCommand> | Oh, awesome, apparently there is -fspecialise-aggressively -fexpose-all-unfoldings . Compiling my libraries/benchmarks with those options seems to achieve the running time performance that I want |
| 14:16:52 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 14:17:04 | <Hecate> | tomsmeding: ping! wanna see a magic trick? |
| 14:23:43 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 14:25:26 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 14:27:17 | × | coot quits (~coot@213.134.171.3) (Quit: coot) |
| 14:27:24 | Axman6 | wants to see a magic trick |
| 14:31:37 | Rembane | too |
| 14:33:52 | × | acidjnk quits (~acidjnk@p200300d6e7137a4619037b2a1cfeb60c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 14:36:10 | <codedmart> | If I have `newtype SomeThing (n1 :: Symbol) i1 (n2 :: Symbol) i2 a = Something { unSomeThing :: a }` can that be made variadic? Where I can have 2 or 3 iN arguments? |
| 14:40:19 | → | InstX1 joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 14:43:49 | <[Leary]> | codedmart: `newtype SomeThing (nis :: [(Symbol, k)]) a`? So long as the `i`s are homogeneous. I doubt there's a sane way if they aren't. |
| 14:44:54 | × | InstX1 quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds) |
| 14:45:08 | → | beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
| 14:46:57 | → | elevenkb joins (~elevenkb@105.184.125.168) |
| 14:47:33 | Guest1295 | is now known as money |
| 14:47:51 | × | mmhat quits (~mmh@p200300f1c704687fee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 14:57:21 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt https://tinyurl.com/4m8d4kd5) |
| 14:58:14 | → | coot joins (~coot@213.134.171.3) |
| 14:58:19 | <codedmart> | @[Leary] ok cool I guess a more concrete example that I am unsure how to do is something like this: https://gist.github.com/codedmart/21769ea29d914032492e4954d771528d |
| 14:58:19 | <lambdabot> | Unknown command, try @list |
| 14:59:02 | <codedmart> | I am not sure how you would handle the instance with `nis`'s |
| 14:59:36 | × | coot quits (~coot@213.134.171.3) (Client Quit) |
| 15:00:02 | <c_wraith> | what would it even mean for that to be variadic? |
| 15:00:07 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 15:00:39 | <[Leary]> | codedmart: Recurse. It's a list, so assume you have the instance for the tail at hand and use it. |
| 15:00:43 | ← | coot parts (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) () |
| 15:01:27 | → | mmhat joins (~mmh@p200300f1c72dc6c9ee086bfffe095315.dip0.t-ipconnect.de) |
| 15:02:25 | <[Leary]> | You might need some auxiliary type families or classes for the constraints too. |
| 15:02:33 | <money> | yeah |
| 15:02:34 | <money> | asap |
| 15:03:17 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 15:10:55 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 15:13:22 | → | califax joins (~califax@user/califx) |
| 15:14:03 | <codedmart> | c_wraith All I am really after is trying to be able to use `SomeThing` with either `(n1 :: Symbol) i1 (n2 :: Symbol) i2 a` or `(n1 :: Symbol) i1 (n2 :: Symbol) i2 (n3 :: Symbol) i3 a` |
| 15:14:18 | <c_wraith> | right. what does that even mean? |
| 15:14:22 | <codedmart> | Just trying to mess around with somethings and expand my understanding. |
| 15:14:41 | <c_wraith> | types exist only at compile time |
| 15:14:57 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 15:15:14 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 15:20:29 | → | fr33domlover joins (~fr33domlo@towards.vision) |
| 15:20:54 | × | razetime quits (~quassel@117.193.3.223) (Ping timeout: 256 seconds) |
| 15:24:45 | <codedmart> | c_wraith This isn't really anything useful. So what does it even mean? Good question. As I was messing around with `SomeThing` that took 2 symbols, 2 ids, and a type. I was wondering what it would look like to see if I could make that take either 2 or 3. So if I called `mkMyId` I would end up with either `(1, 2)` or `(1, 2, 3)`. |
| 15:25:19 | × | accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:25:44 | <codedmart> | @[Leary] I am not really sure I understand what you mean by "It's a list, so assume you have the instance for the tail at hand and use it." |
| 15:25:44 | <lambdabot> | Unknown command, try @list |
| 15:26:07 | → | yuribarros_ joins (~Srain@189.6.35.188) |
| 15:27:02 | <yuribarros_> | Hi everyone |
| 15:27:11 | <yuribarros_> | Is this a place for a beginner Cabal question? |
| 15:27:17 | <geekosaur> | yes |
| 15:28:36 | → | razetime joins (~quassel@117.193.6.219) |
| 15:29:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:35:01 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 15:35:20 | <[Leary]> | codedmart: It's the same as value-level recursion on a list, but in constraints. First write the base case: `instance (...) => MyId (Something '[] a) where {...}`, then recurse: `instance (MyId (Something nis a), ...) => MyId (Something ('(n,i):nis) a) where {...}`. |
| 15:36:05 | × | elevenkb quits (~elevenkb@105.184.125.168) (Remote host closed the connection) |
| 15:36:22 | → | Lumia joins (~Lumia@user/Lumia) |
| 15:37:10 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
| 15:38:21 | <yuribarros_> | I am trying to add a lib that implements the bindings of a C program called GDAL, and I am trying to add it to my cabal.project: |
| 15:38:37 | <yuribarros_> | ``` |
| 15:38:40 | <yuribarros_> | packages: . |
| 15:38:40 | <yuribarros_> | source-repository-package |
| 15:38:41 | <yuribarros_> | type: git |
| 15:38:41 | <yuribarros_> | location: https://github.com/albertov/bindings-gdal |
| 15:38:41 | <yuribarros_> | tag: 331a6e28d3b310d2cf595d8cf5112db1a7f45a88 |
| 15:38:41 | <yuribarros_> | subdir: bindings-gdal |
| 15:38:43 | <yuribarros_> | ``` |
| 15:39:04 | <yuribarros_> | This is the whole cabal.project |
| 15:39:19 | <yuribarros_> | But when I run cabal install, it gives: |
| 15:39:35 | <yuribarros_> | dist-newstyle/src/bindings-_-37db898ef890c9a9/bindings-gdal: getDirectoryContents:openDirStream: does not exist (No such file or directory) |
| 15:39:42 | <yuribarros_> | What could this be? |
| 15:40:10 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 15:40:17 | <sclv> | you should not set a subdir |
| 15:40:30 | <sclv> | the package is in the main dir of the tepot |
| 15:40:35 | <sclv> | er repo |
| 15:42:23 | <yuribarros_> | Thanks, I misunderstood the meaning of subdir. This worked. |
| 15:43:00 | → | bobbingbob joins (~bobbingbo@2604:3d09:207f:f650::b469) |
| 15:47:32 | × | Lumia quits (~Lumia@user/Lumia) (Ping timeout: 248 seconds) |
| 15:49:40 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 15:51:29 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 15:53:38 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 15:56:32 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 15:58:48 | → | califax joins (~califax@user/califx) |
| 15:59:50 | → | Lumia joins (~Lumia@user/Lumia) |
| 16:00:30 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 16:01:36 | <tomsmeding> | Hecate: yes! |
| 16:01:53 | <codedmart> | @[Leary] OK appreciate the help. A little bit further, but still not sure where to look for answers https://gist.github.com/codedmart/21769ea29d914032492e4954d771528d#file-main-hs-L44-L45 |
| 16:01:53 | <lambdabot> | Unknown command, try @list |
| 16:10:25 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) |
| 16:10:52 | → | chovelyoukai joins (~Lumia@user/Lumia) |
| 16:13:11 | <[Leary]> | codedmart: You can do the same as you did above for the `n` and the `i`, but now you want to combine them into the type and method you get from the tail instance. Tupling them together would be the simplest option. |
| 16:13:32 | <money> | Sounds good |
| 16:14:10 | × | Lumia quits (~Lumia@user/Lumia) (Ping timeout: 256 seconds) |
| 16:15:04 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) (Ping timeout: 252 seconds) |
| 16:15:12 | → | acidjnk joins (~acidjnk@p200300d6e7137a4619037b2a1cfeb60c.dip0.t-ipconnect.de) |
| 16:15:45 | → | kenran joins (~user@user/kenran) |
| 16:16:28 | <codedmart> | [Leary] the tail instance is `names` right? But names is not destructured. It is still `[(Symbol, i)]` |
| 16:17:07 | <Hecate> | tomsmeding: https://github.com/Kleidukos/get-tested/ |
| 16:18:18 | → | Digit joins (~user@user/digit) |
| 16:18:31 | <tomsmeding> | that looks useful for people using haskell in CI |
| 16:18:35 | <tomsmeding> | which is not me, currently :p |
| 16:19:49 | <tomsmeding> | Hecate: why the versionList? |
| 16:19:59 | <tomsmeding> | things that GH Actions has images for? |
| 16:21:39 | <Hecate> | tomsmeding: It's the list of GHC versions that the Haskell GH Action officially supports |
| 16:21:44 | × | chovelyoukai quits (~Lumia@user/Lumia) (Ping timeout: 260 seconds) |
| 16:21:53 | <Hecate> | but maybe I'm mis-understanding your question |
| 16:22:04 | <tomsmeding> | you didn't :) |
| 16:23:41 | <[Leary]> | codedmart: Hm? The only destructuring you need is the "pattern match" you're already doing in the instance heads. The instance on the tail makes `UniqueIdentity (SomethingV nis a)` and `mkMyId :: SomethingV nis a -> _` directly available, you just need to use them. |
| 16:25:28 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 16:28:43 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds) |
| 16:31:54 | → | chovelyoukai joins (~Lumia@user/Lumia) |
| 16:31:55 | <fgaz> | Hecate: re https://merveilles.town/@hecate/109371325444699866 I had sourcehut and/or nix in mind |
| 16:32:31 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 16:33:10 | <fgaz> | I actually tried to get sourcehut support in haskell-ci, but my pr didn't get much attention https://github.com/haskell-CI/haskell-ci/pull/563 |
| 16:33:52 | <Hecate> | fgaz: if Sourcehut's CI can get configuration dynamically at runtime, PR welcome on get-tested |
| 16:37:01 | <fgaz> | it can't. well, a job can technically submit other jobs through a token but I'd rather not do that. but sequential jobs would be fine by me, hence the shell array |
| 16:39:40 | × | euandreh quits (~Thunderbi@179.214.113.107) (Ping timeout: 256 seconds) |
| 16:41:20 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds) |
| 16:41:36 | → | ddellacosta joins (~ddellacos@89.45.224.202) |
| 16:46:32 | <WarzoneCommand> | hmm, does anyone know why I have to explicitly provide the Coercible (F a result d) (F b result' d) here? I would think/hope ghc could derrive that from the other ones: https://paste.tomsmeding.com/QbfDddDO |
| 16:47:02 | × | ddellacosta quits (~ddellacos@89.45.224.202) (Ping timeout: 256 seconds) |
| 16:47:16 | <tomsmeding> | Coercibility of the type parameters of a data type doesn't necessarily imply that the data type itself can be coerced |
| 16:47:22 | <tomsmeding> | this has to do with _roles_ |
| 16:47:32 | <c_wraith> | roles don't even apply here. That's a type family |
| 16:47:41 | <c_wraith> | type families can do anything |
| 16:47:55 | <tomsmeding> | yeah, point being that for normal ADTs, the roles are such that this can indeed be inferred |
| 16:48:17 | <tomsmeding> | but one can specify something different for a data type, and type families can yield anything, so ghc can't assume the roles are right |
| 16:48:19 | <WarzoneCommand> | sure, but I've provided the type family above; it is just a function here. I.e. can I get GHC to somehow expand the def of F before checking here? |
| 16:48:42 | <tomsmeding> | it's not a function if d is zero, right? |
| 16:48:57 | → | ddellacosta joins (~ddellacos@143.244.47.100) |
| 16:49:06 | <tomsmeding> | though I guess then the result->result' constraint would work |
| 16:49:17 | <c_wraith> | GHC doesn't make any real use of the fact that type families are closed |
| 16:49:38 | <tomsmeding> | also it would have to do induction in this case, even if it did unfold and try case analysis :p |
| 16:49:43 | → | causal joins (~user@50.35.83.177) |
| 16:49:52 | <c_wraith> | It still treats them as if they're open in every way except that it prevents adding new instances |
| 16:50:06 | <WarzoneCommand> | hmm, fair enough at the induction part I guess |
| 16:50:30 | <WarzoneCommand> | hmm, that is kind of a shame I guess |
| 16:50:49 | <tomsmeding> | even if it did consider closedness of the TyFam in these cases, it can't just go case-analysis on anything because that might explode combinatorially in exponentially many cases to check |
| 16:51:49 | <WarzoneCommand> | that statement is kind of vague. |
| 16:52:49 | <tomsmeding> | you can construct a sequence of n type families for which your situation holds (i.e. the roles end up being right for coercibility -- I forget which role that is exactly), but where proving that requires exploring 2^n possible instantiations of type variables |
| 16:53:07 | <tomsmeding> | though I guess one could say that ghc should just explore up to a certain depth or time limit |
| 16:53:10 | <WarzoneCommand> | also, I'm not sure I would buy that argument; i.e. I don't think the compiler should try to outsmart me on that; even if I wrote s.t. that requires expanding exponentially many cases I would like GHC to just do that rather than refuse because it may have been more expensive than it thinks I may have anticipated |
| 16:55:28 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 16:56:53 | <WarzoneCommand> | anyway; I guess I'll just use the explicit constraint, and hope it doesn't leak out too far into my API |
| 16:57:50 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds) |
| 17:00:51 | <maralorn> | How does ghc profiling interact with lazyness? Will the time spent while calculating a thunk be attributed to the function which forced the thunk or the function which defined that thunk? |
| 17:01:29 | <geekosaur> | the former |
| 17:02:22 | <maralorn> | Are you sure? |
| 17:03:07 | <geekosaur> | it's not uncommon that all your time spent ends up in the function which prints the result |
| 17:03:58 | <maralorn> | kk |
| 17:04:08 | → | yuribarros joins (~yuribarro@2804:14c:65e4:865c::1000) |
| 17:04:33 | <codedmart> | [Leary] does this look like I am getting closer? Still a bit unsure on the last ??? if I have the rest right. |
| 17:04:39 | ← | yuribarros parts (~yuribarro@2804:14c:65e4:865c::1000) () |
| 17:05:05 | <codedmart> | And maybe tuple is wrong here? Should I do a list? |
| 17:05:42 | <geekosaur> | I mean, it's not like the time is directly attributed to printing; it will be clear that your thunks are getting forced at that point, as the time will be attributed to your thunk but as part of the total time for the I/O |
| 17:11:46 | × | yuribarros_ quits (~Srain@189.6.35.188) (Quit: yuribarros_) |
| 17:12:01 | → | freeside joins (~mengwong@103.252.202.193) |
| 17:12:29 | → | yuribarros joins (~Srain@189.6.35.188) |
| 17:16:14 | × | mmhat quits (~mmh@p200300f1c72dc6c9ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1) |
| 17:16:46 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds) |
| 17:20:37 | <[Leary]> | codedmart: Yes, you are. For the last ???, you just need to give `mkMyId` a `SomethingV nis a`. Since `nis` is phantom, you can make one of those with the `a` you have on hand. |
| 17:20:51 | × | acidjnk quits (~acidjnk@p200300d6e7137a4619037b2a1cfeb60c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 17:22:08 | <codedmart> | [Leary] It isn't this is it: mkMyId (SomeThingV a) = (getField @n a, SomeThingV a)? |
| 17:22:47 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:26:59 | <[Leary]> | You need to apply the `mkMyId` from the tail, and be sure it's used at the right type. |
| 17:27:06 | × | denh^ quits (~denl@76.145.185.103) (Remote host closed the connection) |
| 17:27:56 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:28:16 | <[Leary]> | Re tuples, I would make the type a type-level list, and the function's return value an HList---that would provide better utility. But it isn't necessary for this example. |
| 17:30:00 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 17:30:02 | <codedmart> | I am still confused here "`mkMyId` from the tail, and be sure it's used at the right type." nis is the tail right? |
| 17:30:07 | <codedmart> | call mkMyId on nis? |
| 17:33:12 | → | freeside joins (~mengwong@103.252.202.193) |
| 17:33:49 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:34:50 | × | razetime quits (~quassel@117.193.6.219) (Remote host closed the connection) |
| 17:36:45 | × | sagex quits (~sagex@2600:1700:42d8:4530:2ef0:5dff:fede:e8) (Ping timeout: 260 seconds) |
| 17:37:42 | <codedmart> | [Leary] I tried `mkMyId (SomeThingV a) = (getField @n a, mkMyId names)` but that is an illegal term-level use. |
| 17:37:48 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 17:38:19 | <codedmart> | I am definitely missing some minor concepts here... |
| 17:39:50 | → | titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de) |
| 17:40:15 | <[Leary]> | I'm saying you need to recurse here, using the `mkMyId` from the "previous"/"smaller"/"tail" step/instance on the RHS. That means using it /at/ the `nis` type. Maybe reread what I wrote a bit earlier? I don't know how to make this clearer without just giving you the answer. |
| 17:40:31 | <[Leary]> | In any case, I'm done for the day, so you'll have to figure it out without me. |
| 17:40:57 | <codedmart> | [Leary] Thanks for your help! |
| 17:41:50 | → | srz joins (~srz@181.228.49.93) |
| 17:51:04 | × | cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds) |
| 17:52:46 | → | cheater joins (~Username@user/cheater) |
| 17:58:45 | → | acidjnk joins (~acidjnk@p200300d6e7137a4619037b2a1cfeb60c.dip0.t-ipconnect.de) |
| 18:04:42 | × | dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in) |
| 18:06:34 | → | freeside joins (~mengwong@103.252.202.193) |
| 18:08:12 | → | dolio joins (~dolio@130.44.134.54) |
| 18:09:13 | → | finsternis joins (~X@23.226.237.192) |
| 18:10:33 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 18:11:50 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds) |
| 18:13:22 | → | nate4 joins (~nate@98.45.169.16) |
| 18:13:52 | → | econo joins (uid147250@user/econo) |
| 18:14:59 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:17:43 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 18:17:56 | <maralorn> | geekosaur: I am looking at the eventlog visualisation with speedscope. |
| 18:17:57 | × | titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Quit: Leaving.) |
| 18:18:24 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 18:18:27 | <maralorn> | Related I am running: cabal build --ghc-option=-ddump-file-prefix=DUMP --ghc-option=-ddump-to-file --ghc-option=-ddump-simpl, but ghc is dumping the core to stdout and doesn‘t create the file. What am I doing wrong? |
| 18:21:30 | <geekosaur> | I thought cabal itself used/overrode some of the dump stuff, although I may be wrong or out of date on that |
| 18:23:46 | → | euandreh joins (~Thunderbi@179.214.113.107) |
| 18:24:03 | → | dsrt^ joins (~dsrt@76.145.185.103) |
| 18:25:22 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 18:25:41 | × | dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in) |
| 18:26:38 | → | AlexNoo_ joins (~AlexNoo@178.34.162.26) |
| 18:26:44 | → | dolio joins (~dolio@130.44.134.54) |
| 18:27:52 | <maralorn> | Well, I have to admit looking at the core doesn’t illuminate me either way. |
| 18:28:51 | × | Alex_test quits (~al_test@178.34.161.167) (Ping timeout: 256 seconds) |
| 18:29:32 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 18:29:36 | × | AlexZenon quits (~alzenon@178.34.161.167) (Ping timeout: 256 seconds) |
| 18:30:10 | × | AlexNoo quits (~AlexNoo@178.34.161.167) (Ping timeout: 256 seconds) |
| 18:30:33 | → | InstX1 joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 18:34:11 | → | Alex_test joins (~al_test@178.34.162.26) |
| 18:34:17 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 18:35:00 | × | InstX1 quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 248 seconds) |
| 18:35:02 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:35:48 | <maralorn> | I have done a supposedly benign small refactor and my program performance went down by a factor of 7. I have no clue what’s wrong. Profiling tells me I am loosing 80% of the time in a previously very fast function, which I didn’t touch in the refactor. |
| 18:36:12 | → | freeside joins (~mengwong@103.252.202.193) |
| 18:36:23 | <c_wraith> | high chance you're passing something unevaluated to those functions now, whereas previously you were passing them something evaluated. |
| 18:36:48 | <maralorn> | So all of this seems like a laziness problem, but I am using -XStrict and I have looked really hard at the code and everything should be evaluated … |
| 18:37:00 | <c_wraith> | Though there are other potential culprits, like adding a new module boundary and losing specialization because of it |
| 18:37:28 | <c_wraith> | -XStrict is a lie and shouldn't be used. :P |
| 18:37:37 | → | AlexZenon joins (~alzenon@178.34.162.26) |
| 18:38:02 | <maralorn> | I am very certain I know what -XStrict does, and I want my program to do what it does. |
| 18:38:17 | <c_wraith> | But it doesn't prevent building up nested thunks, which is most of my point |
| 18:38:25 | <maralorn> | But apparently it’s not strict enough.^^ |
| 18:38:37 | <c_wraith> | Ah, then you *don't* know what it does! |
| 18:40:52 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 18:45:20 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 18:45:52 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:47:12 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 255 seconds) |
| 18:49:09 | <monochrom> | Tautology pro tip: If the computer doesn't do what you think, then you don't know what it does. |
| 18:49:54 | <monochrom> | Or in general s/the computer/objective reality/ |
| 18:51:34 | <c_wraith> | -XStrict really is a lot less magical than people think. It's easier to just use space invariants correctly than it is to get correct behavior using -XStrict if you don't know how to reason with space invariants. |
| 18:56:00 | <davean> | -XStrict should generally hurt performance. |
| 18:56:08 | <davean> | If it doesn't your code is probably terrible |
| 18:56:24 | <monochrom> | :) |
| 18:56:41 | <EvanR> | so your code is either terrible or slow |
| 18:56:57 | <davean> | EvanR: hum? XStrict slows down code |
| 18:57:52 | <EvanR> | I guess that's why they didn't call it -XFast |
| 18:58:08 | <monochrom> | Therefore, by or-introduction, the code is terrible or slow, as said. :) |
| 18:59:37 | AlexNoo_ | is now known as AlexNoo |
| 19:00:22 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 19:06:15 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 19:09:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:11:57 | <tomsmeding> | maralorn: rnf the inputs to that function and check how much time you're losing to rnf? |
| 19:15:59 | → | freeside joins (~mengwong@103.252.202.193) |
| 19:20:24 | × | loonycyborg_ quits (loonycybor@chat.chantal.wesnoth.org) (Quit: ZNC - http://znc.sourceforge.net) |
| 19:20:48 | → | loonycyborg joins (loonycybor@wesnoth/developer/loonycyborg) |
| 19:21:45 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 19:25:17 | → | Guest7132 joins (~Guest71@ext-1-450.eduroam.chalmers.se) |
| 19:27:36 | → | zebrag joins (~chris@user/zebrag) |
| 19:29:21 | → | kenran joins (~user@user/kenran) |
| 19:29:26 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 19:30:09 | × | hnOsmium0001 quits (uid453710@user/hnOsmium0001) (Quit: Connection closed for inactivity) |
| 19:33:23 | → | LemanR joins (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) |
| 19:33:40 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 19:33:41 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 19:33:41 | → | wroathe joins (~wroathe@user/wroathe) |
| 19:34:16 | × | LemanR quits (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Client Quit) |
| 19:35:50 | × | chovelyoukai quits (~Lumia@user/Lumia) (Remote host closed the connection) |
| 19:36:15 | → | chovelyoukai joins (~Lumia@user/Lumia) |
| 19:37:48 | × | Guest7132 quits (~Guest71@ext-1-450.eduroam.chalmers.se) (Quit: Client closed) |
| 19:38:36 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 19:38:45 | → | freeside joins (~mengwong@103.252.202.193) |
| 19:40:42 | <Guillaum[m]> | Do you know which lens operator I can use to `over` but with a monadic context? I would like to apply a function on all the "targets" of a lens/traversal, but threading a monadic context (actually, an evaluation cache which can optimise the operation). |
| 19:41:59 | × | fr33domlover quits (~fr33domlo@towards.vision) (Quit: The Lounge - https://thelounge.chat) |
| 19:42:29 | <c_wraith> | Guillaum[m]: technically... id does the job. Lens provides it with several names, like %%~ |
| 19:42:51 | <c_wraith> | :t (%%~) |
| 19:42:52 | <lambdabot> | forall k (f :: k -> *) s (t :: k) a (b :: k). LensLike f s t a b -> (a -> f b) -> s -> f t |
| 19:43:04 | <c_wraith> | :t mapMOf |
| 19:43:05 | <lambdabot> | LensLike (WrappedMonad m) s t a b -> (a -> m b) -> s -> m t |
| 19:43:20 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 19:44:04 | → | fr33domlover joins (~fr33domlo@towards.vision) |
| 19:44:10 | × | chovelyoukai quits (~Lumia@user/Lumia) (Ping timeout: 268 seconds) |
| 19:44:13 | <Guillaum[m]> | That's exactly what I was looking for. Thank you. I tried to hoogle it, but based on a generalization of `over`, so I tried `ASetter s t a b -> (a -> m b) -> s -> m t`. I was not that far. |
| 19:44:20 | <Guillaum[m]> | Thank you! |
| 19:44:31 | <c_wraith> | you're welcome |
| 19:46:06 | → | bgamari_ joins (~bgamari@64.223.170.234) |
| 19:48:56 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
| 19:49:08 | × | bgamari quits (~bgamari@68.238.49.149) (Ping timeout: 248 seconds) |
| 19:54:59 | → | Topsi joins (~Topsi@dyndsl-091-096-207-214.ewe-ip-backbone.de) |
| 19:55:40 | → | freeside joins (~mengwong@103.252.202.193) |
| 19:57:42 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 20:03:44 | <alexfmpe[m]> | is there an Integer equivalent of GHC.TypeLits.Nat ? |
| 20:07:35 | <geekosaur> | I thought as of 9.2 that was promoted Natural? |
| 20:08:06 | <geekosaur> | I'm probably confused, as usual for type level stuff |
| 20:10:44 | <alexfmpe[m]> | well, sure but I meant is there a negative-value-allowing version of that |
| 20:11:33 | <geekosaur> | not afaik; type level doesn't handle negative numbers well last I checked (but as I said, not great at type level stuff) |
| 20:11:46 | <c_wraith> | it still doesn't. |
| 20:12:10 | × | srz quits (~srz@181.228.49.93) (Ping timeout: 256 seconds) |
| 20:12:44 | × | lechner quits (~lechner@debian/lechner) (Ping timeout: 256 seconds) |
| 20:13:40 | <alexfmpe[m]> | sad noises |
| 20:14:06 | → | lechner joins (~lechner@debian/lechner) |
| 20:15:53 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 20:28:14 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:33:39 | → | pyrex joins (~pyrex@user/pyrex) |
| 20:34:39 | × | `2jt quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 260 seconds) |
| 20:41:05 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 260 seconds) |
| 20:56:45 | → | pavonia joins (~user@user/siracusa) |
| 20:57:50 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds) |
| 20:59:29 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 21:04:02 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:10:26 | → | freeside joins (~mengwong@103.252.202.193) |
| 21:15:07 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 21:16:20 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 21:24:41 | <maralorn> | <c_wraith> "-XStrict really is a lot less..." <- What are Space invariants ? |
| 21:24:43 | → | InstX1 joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 21:25:25 | × | yuribarros quits (~Srain@189.6.35.188) (Ping timeout: 260 seconds) |
| 21:25:58 | <maralorn> | Strict shouldn't hurt performance if you put a lazy pattern before everything, that's not certain to be used, right? |
| 21:26:07 | <money> | no |
| 21:26:26 | <maralorn> | I mean it's just an inversion of defaults, right? |
| 21:27:12 | <davean> | maralorn: Those defaults are REALLY important, and that inversion changes what can be optimized, etc. It changes the MEANING of the code. |
| 21:27:14 | → | accord joins (uid568320@id-568320.hampstead.irccloud.com) |
| 21:27:18 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:28:06 | <davean> | You can't recover laziness ever |
| 21:28:23 | <davean> | You can sorta hack a few cases |
| 21:28:34 | <money> | Word |
| 21:29:07 | × | InstX1 quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 21:30:45 | × | Topsi quits (~Topsi@dyndsl-091-096-207-214.ewe-ip-backbone.de) (Ping timeout: 256 seconds) |
| 21:33:15 | → | caryhartline joins (~caryhartl@107-140-218-181.lightspeed.rcsntx.sbcglobal.net) |
| 21:37:40 | × | xilo quits (~yourname@84.32.165.17) (Quit: leaving) |
| 21:40:57 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds) |
| 21:43:17 | → | SrainUser joins (~Srain@189.6.35.188) |
| 21:47:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:48:00 | → | king_gs joins (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) |
| 21:49:18 | → | xilo joins (~yourname@84.32.165.17) |
| 21:51:03 | × | xilo quits (~yourname@84.32.165.17) (Quit: leaving) |
| 21:51:55 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:52:31 | → | wroathe joins (~wroathe@50.205.197.50) |
| 21:52:31 | × | wroathe quits (~wroathe@50.205.197.50) (Changing host) |
| 21:52:31 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:53:39 | × | chromoblob quits (~user@37.113.164.122) (Ping timeout: 268 seconds) |
| 21:54:21 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 21:54:55 | → | xilo joins (~yourname@84.32.165.17) |
| 21:55:16 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:55:28 | → | zeenk joins (~zeenk@2a02:2f04:a208:3600::7fe) |
| 21:58:58 | × | EvanR quits (~EvanR@user/evanr) (Remote host closed the connection) |
| 22:00:10 | <maralorn> | davean: Is there an explanation how laziness makes optimization easier somewhere? Every time I hear about optimization I hear, that ghc can profit from knowing if something is strict. |
| 22:00:19 | → | EvanR joins (~EvanR@user/evanr) |
| 22:00:59 | → | titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de) |
| 22:01:18 | <maralorn> | And I don‘t understand what you mean with "you can‘t recover laziness" you mean the compiler can always analyze that something should be more strict, but never that something should be more lazy? |
| 22:01:55 | <maralorn> | I simply enabled Strict when I noticed, that I was putting bang patterns in a lot of places. |
| 22:03:01 | <maralorn> | And since then everytime I bind something which I maybe won‘t need I put a ~ in front of it. |
| 22:05:06 | <maralorn> | Just searched "-XStrict considered harmful" sadly that article hasn‘t been written yet. |
| 22:05:40 | × | ddellacosta quits (~ddellacos@143.244.47.100) (Ping timeout: 260 seconds) |
| 22:05:50 | <darkling> | I think that once you've made an operation non-lazy, everything that subsequently uses its result has to wait for the whole result to be built, and can't process incrementally, as it could do if the operation were lazy. |
| 22:06:15 | <darkling> | (I'm making vague guesses here based on my very limited mental model of all this. I'm definitely not definitive.) |
| 22:06:18 | <Guillaum[m]> | Another question related to threading a monad, but not in a lens anymore, in a Stream (from streaming). I've implemented `mapStateStream :: Monad m => r -> (a -> State r b) -> S.Stream (S.Of a) m () -> S.Stream (S.Of b) m r` which basically apply a transformation to all item of the Stream (so it is a like a "map"), but with a monadic context, which is unfortunately not the same as the one of the stream (i.e. m is not State r b). |
| 22:06:27 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 22:07:22 | <Guillaum[m]> | maralorn: maybe a bit unrelated, but in our codebase, we tried to switch `-XStrictData` on. The result was most computation were using less memory, but some computation were never terminating. |
| 22:08:20 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 22:08:25 | <maralorn> | darkling: Well, you have to do the work at some point, right? And my understanding is: If that’s the case then the sooner you do, the better. If you won‘t need some data, then of course not calculating it is faster. |
| 22:08:57 | <EvanR> | unless you're putting bang basically everywhere, I hypothesize you're using too many bangs already |
| 22:09:07 | <maralorn> | Guillaum[m]: My Impression with Strict and StrictData is, that it is hard to change it after the fact. |
| 22:09:15 | <EvanR> | often it's unnecessary or wrong ime |
| 22:09:26 | <darkling> | maralorn: I think of it as a pipeline. If you can pass small items through the pipeline, processing them as you go, you're going to have lower latency than if you do the first operation for everything, then the second operation for everything, then... |
| 22:09:46 | <geekosaur> | no streaming optimizations, yeh |
| 22:10:13 | <maralorn> | You mean no fusion? |
| 22:10:30 | <geekosaur> | correct |
| 22:10:33 | <EvanR> | If you won't need some data, of course not calculating it is faster, until it's not because "not calculating it" can mean create a thunk, which takes up space |
| 22:10:56 | → | wroathe joins (~wroathe@50.205.197.50) |
| 22:10:56 | × | wroathe quits (~wroathe@50.205.197.50) (Changing host) |
| 22:10:56 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:11:10 | <maralorn> | That is true, but often fusion happens in one statement. |
| 22:11:42 | <janus> | davean: if 'you can never recover laziness', how does idris work? e.g. https://www.idris-lang.org/docs/idris2/current/base_docs/docs/Data.Stream.html |
| 22:11:52 | <maralorn> | EvanR: That is also true, my main reason for putting bang patterns everywhere is that I really need to avoid memory leaks. |
| 22:12:11 | <EvanR> | then you gotta put bangs or strict fields precisely where the leak would happen |
| 22:12:31 | <maralorn> | Honestly, the issue is that I can‘t. |
| 22:12:43 | <EvanR> | which isn't necessarily obvious sometimes, but bangs everywhere can be harmful |
| 22:13:29 | × | zeenk quits (~zeenk@2a02:2f04:a208:3600::7fe) (Remote host closed the connection) |
| 22:13:52 | → | zeenk joins (~zeenk@2a02:2f04:a208:3600::fba) |
| 22:13:52 | <maralorn> | My central program state is a huge record, and it contains lists and maybes and other potentially lazy stuff. |
| 22:14:43 | → | hnOsmium0001 joins (uid453710@user/hnOsmium0001) |
| 22:14:54 | → | nate4 joins (~nate@98.45.169.16) |
| 22:14:58 | <maralorn> | In my benchmark I have about 1.000.000 state transitions and if I don‘t force it after every transition thinks go wrong very quickly. |
| 22:15:06 | <maralorn> | *things go wrong |
| 22:15:09 | <Hecate> | yummy |
| 22:15:12 | <Hecate> | -XStrictData |
| 22:15:14 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 22:15:18 | <EvanR> | yeah records with fields that accumulate over the course of loops probably need some form of strictification, if not just careful construction / update |
| 22:15:37 | <EvanR> | in both cases you don't have to do any forcing after the fact |
| 22:16:02 | <maralorn> | carefull construction is kinda annoying. |
| 22:16:14 | <maralorn> | Because I can screw it up. |
| 22:16:45 | <EvanR> | yeah that's why there's the strict field + proper long term data structure |
| 22:16:53 | <maralorn> | I would immediately use StrictMaybe if that wouldn’t break support of all libraries. |
| 22:17:22 | <maralorn> | But Maybe, just Maybe I should use StrictMaybe anyway. |
| 22:17:36 | <EvanR> | I dunno if that's worth it |
| 22:17:39 | <maralorn> | Then I would have a typecheck for strictness in the right moment. |
| 22:17:59 | <EvanR> | just apply Just to an evaluated result when you are updating that field with a Just |
| 22:18:25 | <EvanR> | if the field is strict, Nothing doesn't take any special measures |
| 22:18:35 | → | freeside joins (~mengwong@103.252.202.193) |
| 22:19:35 | <maralorn> | Anyways you people have not brought me sufficient evidence to disable -XStrict.^^ It also wouldn‘t be the right move, right now seeing that my program is (probably) not strict enough with Strict. |
| 22:19:40 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 22:19:40 | <EvanR> | totally useless thoughts, better to keep long term huge state data in some sort of database instead and use views into it, views which won't be around long so doesn't matter if they are strict |
| 22:19:52 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 22:20:56 | <maralorn> | A typical program lifetime is a few seconds to a few minutes and state will never be needed for the next run. A database sounds definitely wrong for my use case. |
| 22:20:56 | × | king_gs quits (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Quit: king_gs) |
| 22:21:43 | <EvanR> | not necessarily a RDBMS, just something designed to hold a bunch of heterogeneous data fully evaluated and update efficiently |
| 22:21:55 | <EvanR> | i.e. not records of lists |
| 22:22:07 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) |
| 22:23:15 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds) |
| 22:25:22 | <EvanR> | definitely wrong, but not because the program only lasts a few seconds. More like we don't have a nice library to do what I said, that I know of |
| 22:25:26 | <maralorn> | Well, I don‘t have records of lists for perfomance critical data.^^ |
| 22:26:10 | <maralorn> | But I have a record containing strict maps of records containing maybes … |
| 22:26:18 | <EvanR> | records of maps of records with maps for indexing into sets, in other words a database xD |
| 22:26:38 | <maralorn> | Yeah, sure. |
| 22:26:42 | → | c209e6dc-4d76-47 joins (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) |
| 22:26:56 | <maralorn> | You are right. |
| 22:27:14 | <EvanR> | Maybe might even be a symptom of classic "gratuitous NULL" syndrome xD |
| 22:27:46 | <maralorn> | Maybe is a symptom of running your program in unreliable contexts … |
| 22:28:20 | <maralorn> | If the state of the world is messy my representation of the worlds get’s messy … |
| 22:31:42 | <EvanR> | another traditional application of databaseism |
| 22:31:59 | <EvanR> | messy world, messed up changing requirements |
| 22:34:37 | → | freeside joins (~mengwong@103.252.202.193) |
| 22:34:55 | <maralorn> | What the fuck … Changing Strict to StrictData reduced my benchmark duration from 24s to 4s … |
| 22:34:57 | <maralorn> | I am obviously convinced now. |
| 22:35:04 | <maralorn> | Sadly I haven‘t learned a lot. |
| 22:35:11 | <maralorn> | Still don‘t know what the problem is. |
| 22:35:33 | <maralorn> | At least it wasn’t a problem of too much lazyness … |
| 22:35:34 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 22:36:30 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 22:37:30 | × | mei quits (~mei@user/mei) (Ping timeout: 240 seconds) |
| 22:39:10 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 240 seconds) |
| 22:39:19 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds) |
| 22:39:26 | × | titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Remote host closed the connection) |
| 22:41:23 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 22:42:18 | → | srz joins (~srz@181.228.49.93) |
| 22:43:26 | × | srz quits (~srz@181.228.49.93) (Remote host closed the connection) |
| 22:46:56 | → | srz joins (~srz@181.228.49.93) |
| 22:49:00 | <davean> | janus: They do explicite codata, which is much less than laziness |
| 22:51:18 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) (Remote host closed the connection) |
| 22:51:57 | → | alternateved joins (~user@staticline-31-183-171-154.toya.net.pl) |
| 22:52:33 | × | alternateved quits (~user@staticline-31-183-171-154.toya.net.pl) (Remote host closed the connection) |
| 22:54:53 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:58:29 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) |
| 22:59:42 | → | bjourne joins (~bjorn@94.191.152.93) |
| 23:02:50 | × | bobbingbob quits (~bobbingbo@2604:3d09:207f:f650::b469) (Ping timeout: 260 seconds) |
| 23:06:34 | × | foul_owl quits (~kerry@157.97.134.158) (Ping timeout: 260 seconds) |
| 23:06:40 | → | freeside joins (~mengwong@103.252.202.193) |
| 23:09:36 | → | bobbingbob joins (~bobbingbo@2604:3d09:207f:f650::b469) |
| 23:10:49 | → | foul_owl joins (~kerry@157.97.134.158) |
| 23:12:42 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 23:12:59 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 23:23:55 | × | michalz quits (~michalz@185.246.207.197) (Remote host closed the connection) |
| 23:26:32 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 23:29:02 | → | freeside joins (~mengwong@103.252.202.193) |
| 23:30:16 | <c209e6dc-4d76-47> | I'm trying to debug `prelude.!!: index too large` |
| 23:31:10 | <c209e6dc-4d76-47> | using `+RTS -xc` I get something like this: https://paste.tomsmeding.com/abAI2yCn |
| 23:31:11 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 23:31:21 | <c209e6dc-4d76-47> | I am not sure which `!!` is it referring to |
| 23:34:13 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 23:36:25 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) (Remote host closed the connection) |
| 23:41:30 | → | jecxjo[m] joins (~jecxjomat@2001:470:69fc:105::2:bd7c) |
| 23:43:35 | <EvanR> | you could replace one !! with a custom operator does the same thing but has a different message on error... |
| 23:44:41 | <EvanR> | in any case, review all existing !! and the proof obligation that n < length |
| 23:44:50 | → | dimsuz joins (~dima@95.52.248.22) |
| 23:45:07 | <dimsuz> | I'm using aeson and writing a FromJSON instance which will output a [Foo], so I use "withArray $ \arr -> map parseJSON arr". Can I somehow skip some items while doing map? |
| 23:45:40 | <dsal> | :t mapMaybe |
| 23:45:40 | <EvanR> | map them to Maybe Foo then finally use catMaybes |
| 23:45:41 | <lambdabot> | (a -> Maybe b) -> [a] -> [b] |
| 23:45:50 | <EvanR> | doh, or that |
| 23:45:56 | <dimsuz> | I defined a FromJSON instance for Foo which returns mzero if some property of this object is present, but this only outputs an aeson error |
| 23:46:34 | <dimsuz> | i.e. mapMaybe (parseMaybe parseJSON) arr |
| 23:46:35 | <dimsuz> | ? |
| 23:51:18 | × | goepsilongo quits (~goepsilon@2603-7000-ab00-00e5-4167-a449-9ece-260f.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:51:50 | → | goepsilongo joins (~goepsilon@2603-7000-ab00-00e5-4167-a449-9ece-260f.res6.spectrum.com) |
| 23:55:22 | → | king_gs joins (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) |
| 23:56:04 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) |
| 23:59:37 | <maralorn> | Is there some tool which can draw me a graph of all top-level bindings in my program so I can discover if another Module structure might make sense? |
All times are in UTC on 2022-11-19.