Logs on 2021-08-23 (liberachat/#haskell)
| 00:00:16 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 00:01:34 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
| 00:02:06 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 00:02:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:05:03 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
| 00:05:16 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 00:06:34 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
| 00:07:06 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 00:11:40 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
| 00:16:00 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 00:26:27 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
| 00:27:04 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 00:28:08 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:28:08 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 00:28:08 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:31:10 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
| 00:32:52 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
| 00:33:01 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
| 00:33:27 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 00:34:01 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
| 00:35:07 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:35:07 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 00:35:07 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:36:00 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 00:36:46 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 00:37:21 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 00:39:00 | → | thornAvery joins (~thorn@137.147.64.16) |
| 00:39:20 | <thornAvery> | whats the best way to get a version number for a --version flag+ |
| 00:41:03 | <Axma47030> | In the past I have used https://hackage.haskell.org/package/configuration-tools which provides a few really nice things by default - version of the app and all its libraries and their licences |
| 00:41:19 | <Axma47030> | licenses* |
| 00:41:27 | Axma47030 | is now known as Axman6 |
| 00:41:32 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds) |
| 00:42:50 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 00:43:08 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 00:48:33 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 248 seconds) |
| 00:56:36 | → | ikex1 joins (ash@user/ikex) |
| 00:57:07 | × | ikex quits (~ash@user/ikex) (Ping timeout: 245 seconds) |
| 00:57:22 | ikex1 | is now known as ikex |
| 00:58:08 | → | meinside_ joins (uid24933@id-24933.brockwell.irccloud.com) |
| 00:58:33 | <thornAvery> | Axman6: thanks ill have a look at it |
| 01:11:19 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:12:25 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:16:12 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 01:16:14 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 01:16:14 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 01:16:17 | allbery_b | is now known as geekosaur |
| 01:17:35 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
| 01:18:22 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 01:21:15 | × | abrantesasf quits (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) (Quit: Leaving) |
| 01:22:46 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 258 seconds) |
| 01:25:49 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 01:29:09 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 01:32:57 | × | Kaiepi quits (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
| 01:33:06 | → | Kaiepi joins (~Kaiepi@156.34.44.192) |
| 01:35:00 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) |
| 01:37:08 | → | kimjetwav joins (~user@2607:fea8:235f:9730:b47e:9266:a80c:4549) |
| 01:39:36 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 250 seconds) |
| 01:43:40 | × | xff0x quits (~xff0x@2001:1a81:52ba:f800:f347:6f1f:6209:b9ad) (Ping timeout: 240 seconds) |
| 01:45:41 | → | xff0x joins (~xff0x@2001:1a81:52f9:3300:ba09:60b5:ba3:60da) |
| 01:48:05 | × | Kaiepi quits (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
| 01:48:12 | → | Kaipi joins (~Kaiepi@156.34.44.192) |
| 01:49:24 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) |
| 01:51:51 | × | Kaipi quits (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
| 01:51:54 | → | Merfont joins (~Kaiepi@156.34.44.192) |
| 01:54:29 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 01:54:49 | × | cjb quits (~cjb@user/cjb) (Ping timeout: 256 seconds) |
| 01:56:56 | × | Merfont quits (~Kaiepi@156.34.44.192) (Ping timeout: 250 seconds) |
| 01:58:33 | → | Kaiepi joins (~Kaiepi@156.34.44.192) |
| 02:03:00 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds) |
| 02:08:41 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 02:12:15 | → | Kaipi joins (~Kaiepi@156.34.44.192) |
| 02:12:20 | × | Kaiepi quits (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
| 02:13:34 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 02:14:40 | <glguy> | thornAvery, This is what I do to get my version information: https://github.com/glguy/irc-core/blob/v2/src/Client/Options.hs#L135-L176 |
| 02:15:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:18:27 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:18:27 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (cadmium.libera.chat (Nickname regained by services))) |
| 02:18:27 | finn_elija | is now known as FinnElija |
| 02:19:46 | → | cjb joins (~cjb@user/cjb) |
| 02:25:40 | × | ikex quits (ash@user/ikex) (Ping timeout: 252 seconds) |
| 02:25:46 | → | ikex1 joins (~ash@user/ikex) |
| 02:26:26 | ikex1 | is now known as ikex |
| 02:33:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:38:19 | × | td_ quits (~td@muedsl-82-207-238-124.citykom.de) (Ping timeout: 252 seconds) |
| 02:40:05 | → | td_ joins (~td@94.134.91.226) |
| 02:43:32 | × | alx741 quits (~alx741@181.196.68.94) (Quit: alx741) |
| 02:45:15 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 02:46:34 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
| 02:47:33 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 02:48:13 | × | Kaipi quits (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
| 02:50:02 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:51:58 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds) |
| 02:52:24 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds) |
| 02:56:51 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 02:57:33 | × | neo quits (~neo3@cpe-292712.ip.primehome.com) (Quit: Leaving) |
| 03:00:15 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 03:01:04 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
| 03:02:03 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 03:06:10 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
| 03:07:28 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 03:14:19 | ← | travv0 parts (sid293381@user/travv0) () |
| 03:19:16 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 03:22:03 | × | ham quits (~ham4@user/ham) (Ping timeout: 276 seconds) |
| 03:22:44 | × | otto_s quits (~user@p4ff27b55.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 03:24:35 | → | otto_s joins (~user@p4ff270c5.dip0.t-ipconnect.de) |
| 03:34:07 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
| 03:36:11 | → | lavaman joins (~lavaman@98.38.249.169) |
| 03:39:38 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 250 seconds) |
| 03:41:40 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
| 04:01:58 | × | Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
| 04:07:21 | → | Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
| 04:17:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:19:44 | → | dschrempf joins (~dominik@2a01-036d-0118-46d4-79db-0a5e-b5da-2db0.pool6.digikabel.hu) |
| 04:21:53 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 04:25:54 | <sm> | glguy, is that using https://hackage.haskell.org/package/githash ? |
| 04:26:20 | <glguy> | glirc --full-version | grep git |
| 04:26:20 | <glguy> | gitrev-1.3.1 |
| 04:26:33 | <sm> | ah |
| 04:26:59 | <sm> | I think githash is just newer version of that |
| 04:27:09 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) |
| 04:27:42 | × | Topsi quits (~Tobias@dyndsl-095-033-019-235.ewe-ip-backbone.de) (Quit: Leaving.) |
| 04:27:52 | <glguy> | oh, maybe I need to update |
| 04:27:57 | ← | lotuseater parts (~user@p200300e7871bf00038fb8d6cf7d8260d.dip0.t-ipconnect.de) (ERC (IRC client for Emacs 27.2)) |
| 04:30:24 | → | safe joins (~safe@cpe-74-64-165-24.nj.res.rr.com) |
| 04:31:25 | <sm> | Axma47030: does that package let you print the version of all deps the program was built with ? |
| 04:35:10 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Ping timeout: 240 seconds) |
| 04:35:44 | → | vysn joins (~vysn@user/vysn) |
| 04:36:16 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 04:42:28 | × | dschrempf quits (~dominik@2a01-036d-0118-46d4-79db-0a5e-b5da-2db0.pool6.digikabel.hu) (Ping timeout: 250 seconds) |
| 04:44:37 | → | dschrempf joins (~dominik@92-249-199-97.pool.digikabel.hu) |
| 04:45:27 | → | LambdaDu1k joins (~anka@ksit.fixme.fi) |
| 04:45:28 | → | Hecate_ joins (~mariposa@163.172.211.189) |
| 04:45:29 | → | alinab_ joins (sid468903@id-468903.brockwell.irccloud.com) |
| 04:45:30 | → | peutri_ joins (~peutri@ns317027.ip-94-23-46.eu) |
| 04:45:37 | × | nshepperd quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split) |
| 04:45:37 | × | m4lvin_ quits (~m4lvin@w4eg.de) (*.net *.split) |
| 04:45:37 | × | codedmart quits (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split) |
| 04:45:37 | × | a1paca_ quits (~a1paca@user/a1paca) (*.net *.split) |
| 04:45:37 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (*.net *.split) |
| 04:45:37 | × | ouroboros quits (~ouroboros@user/ouroboros) (*.net *.split) |
| 04:45:37 | × | glider quits (~glider@user/glider) (*.net *.split) |
| 04:45:37 | × | tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split) |
| 04:45:37 | × | orzo quits (joe@lasker.childrenofmay.org) (*.net *.split) |
| 04:45:37 | × | damien3 quits (~damien@248.ip-149-56-13.net) (*.net *.split) |
| 04:45:37 | × | LambdaDuck quits (~anka@ksit.fixme.fi) (*.net *.split) |
| 04:45:37 | × | choucavalier quits (~choucaval@user/choucavalier) (*.net *.split) |
| 04:45:37 | × | wrunt quits (~ajc@vmx14030.hosting24.com.au) (*.net *.split) |
| 04:45:37 | × | yahb quits (xsbot@user/mniip/bot/yahb) (*.net *.split) |
| 04:45:37 | × | peutri quits (~peutri@ns317027.ip-94-23-46.eu) (*.net *.split) |
| 04:45:37 | × | Hecate quits (~mariposa@user/hecate) (*.net *.split) |
| 04:45:37 | × | alinab quits (sid468903@id-468903.brockwell.irccloud.com) (*.net *.split) |
| 04:45:37 | × | defanor quits (~defanor@tart.uberspace.net) (*.net *.split) |
| 04:45:37 | → | defanor_ joins (~defanor@tart.uberspace.net) |
| 04:45:38 | → | orzo_ joins (joe@lasker.childrenofmay.org) |
| 04:45:38 | → | codedmart_ joins (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
| 04:45:38 | alinab_ | is now known as alinab |
| 04:45:43 | → | m4lvin joins (~m4lvin@w4eg.de) |
| 04:45:44 | → | choucavalier_ joins (~choucaval@peanutbuttervibes.com) |
| 04:45:44 | → | damien3 joins (~damien@248.ip-149-56-13.net) |
| 04:45:45 | → | glider_ joins (~glider@user/glider) |
| 04:45:47 | → | wrunt joins (~ajc@vmx14030.hosting24.com.au) |
| 04:45:48 | → | nshepper1 joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
| 04:45:50 | → | uroboros joins (~ouroboros@user/ouroboros) |
| 04:46:14 | uroboros | is now known as ouroboros |
| 04:46:27 | → | aegon joins (~mike@174.127.249.180) |
| 04:46:37 | → | yahb joins (xsbot@user/mniip/bot/yahb) |
| 04:46:40 | → | a1paca joins (~a1paca@user/a1paca) |
| 04:47:04 | → | tolt joins (~weechat-h@li219-154.members.linode.com) |
| 04:47:43 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 04:48:50 | × | lechner quits (~lechner@debian/lechner) (*.net *.split) |
| 04:48:50 | × | awth13 quits (~awth13@user/awth13) (*.net *.split) |
| 04:48:50 | × | dminuoso quits (~dminuoso@user/dminuoso) (*.net *.split) |
| 04:48:50 | × | frobnicator quits (~frobnicat@185-227-75-147.dsl.cambrium.nl) (*.net *.split) |
| 04:48:50 | × | Eoco quits (~ian@x-160-94-179-157.acm.umn.edu) (*.net *.split) |
| 04:48:50 | × | Techcable_ quits (~Techcable@168.235.93.147) (*.net *.split) |
| 04:48:50 | × | polux quits (~polux@51.15.169.172) (*.net *.split) |
| 04:48:50 | × | mniip quits (mniip@libera/staff/mniip) (*.net *.split) |
| 04:48:50 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split) |
| 04:48:50 | × | ent quits (entgod@kapsi.fi) (*.net *.split) |
| 04:48:50 | × | megaTherion quits (~therion@unix.io) (*.net *.split) |
| 04:48:50 | × | Sqaure quits (~a@178.62.91.8) (*.net *.split) |
| 04:48:50 | × | arkeet quits (arkeet@moriya.ca) (*.net *.split) |
| 04:48:50 | × | laman quits (laman@2600:3c02::f03c:92ff:fe3e:c08d) (*.net *.split) |
| 04:48:50 | × | mrus quits (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) (*.net *.split) |
| 04:48:50 | × | bastelfreak quits (~bastelfre@basteles-bastelknecht.bastelfreak.org) (*.net *.split) |
| 04:48:50 | × | mstruebing quits (~maex@2001:41d0:8:93c7::1) (*.net *.split) |
| 04:48:50 | × | meridion quits (~meridion@punt.hetgrotebos.org) (*.net *.split) |
| 04:48:50 | × | drewolson quits (~drewolson@user/drewolson) (*.net *.split) |
| 04:48:50 | × | meejah quits (~meejah@rutas.meejah.ca) (*.net *.split) |
| 04:48:50 | × | enikar quits (~enikar@user/enikar) (*.net *.split) |
| 04:48:50 | × | Dykam quits (Dykam@dykam.nl) (*.net *.split) |
| 04:48:54 | → | panda_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 04:48:54 | → | meridion_ joins (~meridion@punt.hetgrotebos.org) |
| 04:48:55 | → | ent- joins (entgod@kapsi.fi) |
| 04:48:58 | → | arkeet` joins (arkeet@moriya.ca) |
| 04:49:00 | → | meejah_ joins (~meejah@rutas.meejah.ca) |
| 04:49:02 | → | mniip joins (mniip@libera/staff/mniip) |
| 04:49:03 | → | drewolson1 joins (~drewolson@user/drewolson) |
| 04:49:04 | → | mstruebing joins (~maex@2001:41d0:8:93c7::1) |
| 04:49:18 | → | Eoco joins (~ian@x-160-94-179-157.acm.umn.edu) |
| 04:49:18 | → | laman joins (laman@2600:3c02::f03c:92ff:fe3e:c08d) |
| 04:49:19 | → | bastelfreak joins (~bastelfre@basteles-bastelknecht.bastelfreak.org) |
| 04:49:22 | arkeet` | is now known as arkeet |
| 04:49:23 | → | frobnicator joins (~frobnicat@185-227-75-147.dsl.cambrium.nl) |
| 04:49:25 | → | polux joins (~polux@51.15.169.172) |
| 04:49:25 | → | lechner joins (~lechner@letbox-vps.us-core.com) |
| 04:49:36 | → | Dykam joins (Dykam@dykam.nl) |
| 04:49:36 | × | lechner quits (~lechner@letbox-vps.us-core.com) (Changing host) |
| 04:49:36 | → | lechner joins (~lechner@debian/lechner) |
| 04:49:43 | → | mrus joins (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) |
| 04:49:47 | → | Techcable joins (~Techcable@168.235.93.147) |
| 04:50:07 | → | awth13 joins (~awth13@user/awth13) |
| 04:50:17 | → | enikar joins (~enikar@user/enikar) |
| 04:50:47 | nshepper1 | is now known as nshepperd |
| 04:50:59 | <aegon> | when using things like --dump-simpl or profiling with haskell stack, where should i be looking for the core files? |
| 04:51:04 | → | dminuoso joins (~dminuoso@user/dminuoso) |
| 04:52:51 | → | Square joins (~a@178.62.91.8) |
| 05:06:53 | × | xsperry quits (~as@user/xsperry) () |
| 05:09:42 | → | fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
| 05:09:44 | <fresheyeball> | ok, so I have a quandry |
| 05:09:51 | <fresheyeball> | and it's going deeper than I would like |
| 05:09:59 | <fresheyeball> | but, what is the right way to code a login form? |
| 05:10:11 | <fresheyeball> | the server should set cookies I believe |
| 05:10:21 | <fresheyeball> | but that means a redirect on each form submission |
| 05:10:26 | <fresheyeball> | which is bad ux |
| 05:10:38 | <fresheyeball> | So far the best I can think of is to have 2 login endpoints |
| 05:10:53 | <fresheyeball> | one the checks creds and can give an error via AJAX |
| 05:11:08 | <fresheyeball> | and the other that actually sets cookies, via redirect after the first endpoint approves |
| 05:11:38 | → | mei joins (~mei@user/mei) |
| 05:11:55 | × | fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Client Quit) |
| 05:12:35 | → | keutoi joins (~keutoi@157.48.197.78) |
| 05:15:06 | × | cjb quits (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
| 05:22:26 | → | ham joins (~ham4@user/ham) |
| 05:25:22 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 250 seconds) |
| 05:30:10 | → | stefan-_ joins (~cri@42dots.de) |
| 05:37:40 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) |
| 05:42:40 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Ping timeout: 240 seconds) |
| 05:45:40 | × | xff0x quits (~xff0x@2001:1a81:52f9:3300:ba09:60b5:ba3:60da) (Ping timeout: 240 seconds) |
| 05:46:43 | → | xff0x joins (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) |
| 05:51:28 | defanor_ | is now known as defanor |
| 05:52:11 | <edwardk> | dumb q: as someone just now tuning into how icfp is running this year, uh, where are the chat rooms and the like that there have been in years past? did they do away with them entirely? |
| 05:57:06 | → | PinealGlandOptic joins (~PinealGla@37.115.210.35) |
| 06:00:21 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) |
| 06:00:52 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Client Quit) |
| 06:00:59 | → | reumeth joins (~reumeth@user/reumeth) |
| 06:01:58 | ← | PinealGlandOptic parts (~PinealGla@37.115.210.35) () |
| 06:05:28 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 06:05:38 | → | dsrt^ joins (~dsrt@12.16.129.111) |
| 06:06:43 | → | xsperry joins (~as@user/xsperry) |
| 06:09:44 | → | mnrmnaugh joins (~mnrmnaugh@68.162.206.56) |
| 06:11:54 | × | mnrmnaugh quits (~mnrmnaugh@68.162.206.56) (Client Quit) |
| 06:15:38 | × | Vajb quits (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer) |
| 06:15:57 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 06:16:40 | × | sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds) |
| 06:17:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:22:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 06:24:13 | × | sagax quits (~sagax@213.138.71.146) (Remote host closed the connection) |
| 06:25:24 | × | timCF quits (~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving) |
| 06:27:09 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 06:30:22 | × | dschrempf quits (~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 250 seconds) |
| 06:30:35 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 258 seconds) |
| 06:35:23 | <Axman6> | sm: I thhink so, but I don't remember - pretty sure it prints versions along with the license |
| 06:35:49 | → | fef joins (~thedawn@user/thedawn) |
| 06:45:44 | × | aegon quits (~mike@174.127.249.180) (Quit: leaving) |
| 06:50:44 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
| 06:51:10 | Hecate_ | is now known as Hecate |
| 06:51:12 | × | Hecate quits (~mariposa@163.172.211.189) (Changing host) |
| 06:51:12 | → | Hecate joins (~mariposa@user/hecate) |
| 06:54:45 | → | dschrempf joins (~dominik@92-249-199-97.pool.digikabel.hu) |
| 06:55:56 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 268 seconds) |
| 06:57:52 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 07:02:12 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 07:02:40 | × | zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds) |
| 07:04:57 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:05:17 | × | Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
| 07:08:35 | → | jtomas joins (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
| 07:08:36 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 07:08:56 | → | enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
| 07:09:03 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 07:10:23 | → | Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
| 07:11:53 | → | fendor joins (~fendor@91.141.64.241.wireless.dyn.drei.com) |
| 07:12:40 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 07:13:39 | × | bastelfreak quits (~bastelfre@basteles-bastelknecht.bastelfreak.org) (Quit: WeeChat 3.2) |
| 07:13:48 | → | bastelfreak joins (~bastelfre@basteles-bastelknecht.bastelfreak.org) |
| 07:16:19 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:24:39 | → | Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 07:25:28 | × | safe quits (~safe@cpe-74-64-165-24.nj.res.rr.com) (Quit: Leaving) |
| 07:28:13 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:31:13 | → | kuribas joins (~user@ptr-25vy0iajat4u154jc6g.18120a2.ip6.access.telenet.be) |
| 07:31:38 | → | acidjnk joins (~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) |
| 07:32:49 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 07:33:37 | → | fef joins (~thedawn@user/thedawn) |
| 07:34:34 | → | megaTherion joins (~therion@unix.io) |
| 07:39:59 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 07:40:05 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 07:43:36 | × | Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer) |
| 07:44:52 | → | Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 07:45:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:47:06 | × | jtomas quits (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 07:51:46 | → | sagax joins (~sagax@213.138.71.146) |
| 07:52:25 | → | ubert joins (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) |
| 07:54:01 | → | d0ku joins (~d0ku@178.43.19.40.ipv4.supernova.orange.pl) |
| 07:56:41 | → | jtomas joins (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
| 07:57:23 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 07:57:41 | <kuribas> | I removed more type families from my mysql library. Now only one type family left. |
| 07:58:03 | <kuribas> | Not much fancy haskell left now. Unless you count light usage of DataKinds as phantom types... |
| 07:58:24 | <kuribas> | And generics... |
| 07:59:28 | <Hecate> | kuribas: hurray for improved compilation times :D |
| 07:59:44 | <kuribas> | Hecate: oh, and template haskell :) |
| 07:59:48 | <kuribas> | but it's optional. |
| 08:01:11 | → | Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 08:02:14 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 08:03:40 | × | dschrempf quits (~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 240 seconds) |
| 08:03:48 | <Hecate> | kuribas: you should make a companion library with -th if you really have that many optional features implemented in TH :) |
| 08:03:57 | <Hecate> | helps with portability as well |
| 08:04:04 | <kuribas> | why? |
| 08:04:08 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
| 08:04:15 | <kuribas> | you don't need to use it... |
| 08:05:46 | → | jgeerds joins (~jgeerds@55d4b311.access.ecotel.net) |
| 08:05:46 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:07:32 | <kuribas> | If you are using the typed layer, the TH is very recommended... |
| 08:07:54 | <kuribas> | I could however split the package into hasqlator-mysql and hasqlator-typed-mysql... |
| 08:08:56 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
| 08:11:11 | → | __monty__ joins (~toonn@user/toonn) |
| 08:12:05 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:12:33 | → | oxide joins (~lambda@user/oxide) |
| 08:14:04 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 08:17:39 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 08:17:39 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 08:17:42 | allbery_b | is now known as geekosaur |
| 08:18:58 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 08:21:55 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 08:24:16 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 08:24:28 | → | dschrempf joins (~dominik@92-249-199-97.pool.digikabel.hu) |
| 08:33:26 | × | cpape`` quits (~user@2a01:4f9:c010:632d::1) (Quit: ERC (IRC client for Emacs 25.2.2)) |
| 08:33:48 | → | cpape joins (~user@2a01:4f9:c010:632d::1) |
| 08:34:27 | <merijn> | !!! |
| 08:34:37 | <merijn> | Breaking news that dramatically improves my life further! |
| 08:34:45 | <merijn> | SQLite now supports strong typing! |
| 08:34:48 | <merijn> | \o/ |
| 08:35:25 | <dminuoso> | merijn: Source? |
| 08:36:43 | <merijn> | dminuoso: https://www.sqlite.org/draft/stricttables.html |
| 08:37:19 | <dminuoso> | Neat. :) |
| 08:37:30 | <merijn> | Now I can shill SQLite *even harder* |
| 08:41:41 | → | notzmv joins (~zmv@user/notzmv) |
| 08:45:13 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Remote host closed the connection) |
| 08:46:05 | <Rembane_> | Sweet! |
| 08:46:17 | <Rembane_> | SQLite be like: *flex!* |
| 08:47:34 | × | lavaman quits (~lavaman@98.38.249.169) (Read error: Connection reset by peer) |
| 08:47:34 | → | awschnap joins (~lavaman@98.38.249.169) |
| 08:48:05 | × | gustik quits (~gustik@2a01:c844:2410:9020:63ab:4bb6:83d2:e11b) (Quit: Leaving) |
| 08:50:36 | <wz1000> | merijn: which version will this show up in? |
| 08:52:09 | <tdammers> | "As far as we know, SQLite is the only SQL database engine that supports this advanced capability." |
| 08:52:12 | <tdammers> | talk about flexing |
| 08:58:31 | → | Gurkenglas joins (~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de) |
| 08:59:18 | <merijn> | wz1000: Planned for 3.37 |
| 08:59:21 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:59:36 | meridion_ | is now known as meridion |
| 09:02:57 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
| 09:05:36 | × | amirouche quits (~amirouche@user/amirouche) (Quit: WeeChat 2.8) |
| 09:05:40 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) |
| 09:05:48 | → | amirouche joins (~amirouche@user/amirouche) |
| 09:10:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 240 seconds) |
| 09:12:03 | amirouche | is now known as babelbot |
| 09:13:37 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds) |
| 09:13:54 | → | azeem joins (~azeem@176.201.15.223) |
| 09:14:23 | → | drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
| 09:16:05 | babelbot | is now known as amirouche |
| 09:18:39 | <merijn> | On an entirely different topic, given a (simple, if that helps) numerical function of N inputs. Which algorithms/techniques do I want to find the inputs with maximum output? |
| 09:19:16 | × | amk quits (~amk@109.255.169.126) (Ping timeout: 252 seconds) |
| 09:21:26 | <kuribas> | merijn: multivariate optimization algorithm? |
| 09:22:50 | <kuribas> | oh neat, I can use recordWildCards with other assignments :) |
| 09:23:11 | <kuribas> | this works: Foo { foo = foo + 1, bar = bar <> "bar", ..} |
| 09:23:16 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
| 09:23:30 | <merijn> | kuribas: Yes, but machine learning feels overkill the equations I'm dealing with |
| 09:23:43 | <kuribas> | merijn: I wasn't talking about machine learning :) |
| 09:24:06 | <merijn> | kuribas: Most results for multivariate optimisation return a billion ML things :p |
| 09:24:17 | <Rembane_> | merijn: Is N big enough that a maximum [arg_1, ... arg_N] isn't feasible? |
| 09:24:24 | <kuribas> | https://hackage.haskell.org/package/hmatrix-0.15.2.0/docs/Numeric-GSL-Minimization.html |
| 09:24:32 | <kuribas> | merijn: because it's the same problem? |
| 09:25:11 | <merijn> | Rembane_: number of values isn't super big, but the values are continuous |
| 09:26:25 | → | amk joins (~amk@109.255.169.126) |
| 09:26:29 | <merijn> | kuribas: Incidentally, that doesn't appear to be in recent hmatrix releases anymore |
| 09:27:11 | <merijn> | But I guess I want hmatrix-gsl |
| 09:27:50 | <Rembane_> | merijn: Oh, okay. |
| 09:28:20 | <dminuoso> | tdammers: My software also has this advanced capability of putting out smileys if you ask it nicely enough. |
| 09:28:25 | <dminuoso> | It's the only known software that does this. |
| 09:28:36 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 09:29:47 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b41a:667a:d6f9:5ad8) |
| 09:30:36 | <merijn> | dminuoso: I've seen lots of software do that :p |
| 09:30:39 | → | daeng joins (~daeng@2401:3c00:18e:e603:bec7:e31f:ee15:3296) |
| 09:30:56 | <merijn> | Hell, entire Discord bots seem to function by smiley reactions to messages, so... :p |
| 09:31:01 | <dminuoso> | But one does it as well as mine does. |
| 09:31:05 | <dminuoso> | none, even. |
| 09:32:38 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 244 seconds) |
| 09:33:10 | → | jippiedoe joins (~david@2a02-a44c-e14e-1-bfe4-3f38-b8a5-8c39.fixed6.kpn.net) |
| 09:33:24 | <int-e> | @botsnack |
| 09:33:24 | <lambdabot> | :) |
| 09:33:25 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 09:34:06 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b41a:667a:d6f9:5ad8) (Ping timeout: 250 seconds) |
| 09:34:22 | <int-e> | merijn: see, it's just continuing a trend started on #haskell ;-) |
| 09:35:04 | × | awschnap quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 09:43:18 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 09:44:04 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
| 09:49:08 | → | azeem joins (~azeem@176.201.15.223) |
| 09:50:09 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 09:58:28 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:3051:894e:a7f0:13fc) |
| 09:59:55 | → | eggplant_ joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 10:00:07 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
| 10:02:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:3051:894e:a7f0:13fc) (Ping timeout: 240 seconds) |
| 10:03:42 | → | rosariopulella[m joins (~rosariopu@2001:470:69fc:105::a57) |
| 10:04:10 | × | eggplant_ quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 240 seconds) |
| 10:05:37 | → | lavaman joins (~lavaman@98.38.249.169) |
| 10:05:53 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
| 10:06:25 | → | azeem joins (~azeem@176.201.15.223) |
| 10:06:48 | → | keutoi_ joins (~keutoi@106.208.52.176) |
| 10:07:21 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 10:07:33 | × | keutoi quits (~keutoi@157.48.197.78) (Ping timeout: 258 seconds) |
| 10:07:57 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 10:08:10 | → | lavaman joins (~lavaman@98.38.249.169) |
| 10:08:17 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 10:13:10 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
| 10:13:26 | → | azeem joins (~azeem@176.201.15.223) |
| 10:16:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 10:16:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:21:46 | × | LambdaDu1k quits (~anka@ksit.fixme.fi) (Ping timeout: 250 seconds) |
| 10:22:05 | → | LambdaDuck joins (~anka@ksit.fixme.fi) |
| 10:22:12 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 10:22:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:22:50 | × | opqdonut quits (opqdonut@pseudo.fixme.fi) (Ping timeout: 256 seconds) |
| 10:22:57 | → | opqdonut joins (opqdonut@pseudo.fixme.fi) |
| 10:23:25 | → | aguapesada joins (~aguapesad@191.177.175.57) |
| 10:25:43 | <tdammers> | frankly, I would love a bot that actively eradicates all smileys and other emoji nonsense from the face of the earth |
| 10:27:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:28:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:33:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:34:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:35:27 | × | nvmd quits (~nvmd@user/nvmd) (Ping timeout: 268 seconds) |
| 10:35:37 | → | zaquest joins (~notzaques@5.128.210.178) |
| 10:39:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:40:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:41:05 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 248 seconds) |
| 10:42:49 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
| 10:44:28 | → | azeem joins (~azeem@176.201.15.223) |
| 10:45:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:46:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:55:54 | → | acidjnk_new joins (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) |
| 10:57:10 | × | acidjnk quits (~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 10:57:18 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
| 10:58:00 | → | azeem joins (~azeem@176.201.15.223) |
| 10:58:21 | ← | dminuoso[m] parts (~dminuosom@2001:470:69fc:105::33bb) () |
| 10:58:57 | → | timCF joins (~timCF@m91-129-108-244.cust.tele2.ee) |
| 10:59:34 | <timCF> | Hello! Does anybody know how to remove imports/definitions/aliases from ghci session? |
| 11:01:00 | → | alx741 joins (~alx741@181.196.68.94) |
| 11:01:51 | <timCF> | Just to clear current scope from defined things |
| 11:02:15 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:03:20 | <merijn> | Not even sure that's possible, tbh |
| 11:03:32 | <dminuoso> | You can remove imports |
| 11:03:44 | <merijn> | Sure, but not definitions inside ghci, I think? |
| 11:03:49 | <merijn> | Or does :reload reset thos? |
| 11:03:59 | <dminuoso> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#controlling-what-is-in-scope-with-the-module-command |
| 11:04:15 | <dminuoso> | timCF: ^- |
| 11:07:42 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 11:07:55 | <timCF> | merijn: dminuoso: thanks! |
| 11:08:43 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 252 seconds) |
| 11:10:37 | → | azeem joins (~azeem@176.201.15.223) |
| 11:12:17 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 11:12:31 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
| 11:12:59 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 11:17:31 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
| 11:19:37 | keutoi_ | is now known as keutoi |
| 11:27:10 | <timCF> | I do have some "noob" problems with `microlens`. I'm using this library as consequence of usage of `proto-lens` which is the best protobuf library for Haskell I guess. Problem with `microlens` in my team is that for not very experienced Haskell programmers they are very confusing. For example there are 2 different access operators `^.` and `^?` and intuitevly second should be used for `Maybe` values. But |
| 11:27:16 | <timCF> | it's not working as expected without `_Just` prism. For example `x ^? Msg.maybe'ok` will produce `Just Nothing` which will always return True with isJust (case where we just checking that response is ok or not). To make it work as expected, we should use `x ^? Msg.maybe'ok . _Just` or `x ^. Msg.maybe'ok`. And type system is not helping that much in case of this kind of errors. I thought maybe I can solve |
| 11:27:22 | <timCF> | the issue if `^?` is not imported, then developers are forced to use `^.` but seems like it's not working with nested fields, for example `x ^. Msg.maybe'ok . _Just . Msg.maybe'user` will fail to compile with some strange error about Monoid instances. I don' |
| 11:27:36 | <timCF> | I don't like solution like "triple check what you are actually writing" and prefer type system to help |
| 11:27:54 | <dminuoso> | timCF: Switch to `optics` then. |
| 11:27:58 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 252 seconds) |
| 11:27:58 | <timCF> | Are there any suggestions how to fix this kind of issue? |
| 11:28:04 | <dminuoso> | The underlying problem is roughly this: |
| 11:28:58 | <dminuoso> | % :t view |
| 11:28:59 | <yahb> | dminuoso: MonadReader s m => Getting a s a -> m a |
| 11:29:01 | <dminuoso> | % :i Getting |
| 11:29:02 | <yahb> | dminuoso: type Getting :: * -> * -> * -> *; type Getting r s a = (a -> Const r a) -> s -> Const r s; -- Defined in `Control.Lens.Getter' |
| 11:29:09 | → | azeem joins (~azeem@176.201.15.223) |
| 11:29:34 | <dminuoso> | % :t _Just . _1 |
| 11:29:34 | <yahb> | dminuoso: (Applicative f, Field1 a1 b1 a2 b2) => (a2 -> f b2) -> Maybe a1 -> f (Maybe b1) |
| 11:30:14 | <dminuoso> | timCF: Notice how we have this `Applicative` constraint? |
| 11:30:30 | <dminuoso> | Essentially what this all ends up doing is: |
| 11:30:47 | <dminuoso> | In `lens` we can `view` through a Fold, and it will just `mappend` all targets together |
| 11:30:52 | <dminuoso> | If no target exist, you get `mempty` back |
| 11:30:57 | <dminuoso> | e.g.: |
| 11:31:12 | <dminuoso> | % view folded [Product 1, Product 2, Product 3, Product 4] |
| 11:31:13 | <yahb> | dminuoso: Product {getProduct = 24} |
| 11:31:34 | <dminuoso> | This may not be what you intended, and its one of those things why I dont like `lens` either. |
| 11:31:47 | × | drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
| 11:32:23 | <dibblego> | timCF: a lens composed with a prism gives you a traversal |
| 11:33:08 | <timCF> | dminuoso: I see. Does `optics` "solves" it somehow? Not sure is it bug or feature) |
| 11:33:14 | <dminuoso> | Yes. |
| 11:33:29 | <dminuoso> | Let me quickly give you the output |
| 11:34:18 | × | vysn quits (~vysn@user/vysn) (Remote host closed the connection) |
| 11:34:25 | <dminuoso> | timCF: https://gist.github.com/dminuoso/58f816500a5cd9fa4affff440e301af6 |
| 11:34:49 | <dminuoso> | So if you wanted the behavior of `lens`, you'd have to explicitly use `foldOf` |
| 11:35:03 | <dminuoso> | Otherwise you get very well written customed type errors |
| 11:36:08 | <dminuoso> | Or perhaps, as a comparable example: |
| 11:36:23 | <dminuoso> | % view (_Just . _1) (Just ("foo", bar)) |
| 11:36:25 | <yahb> | dminuoso: ; <interactive>:13:33: error:; * Variable not in scope: bar; * Perhaps you meant `Sym.var' (imported from Data.Number.Symbolic) |
| 11:36:28 | <dminuoso> | % view (_Just . _1) (Just ("foo", 1)) |
| 11:36:29 | <yahb> | dminuoso: "foo" |
| 11:37:00 | <dminuoso> | https://gist.github.com/dminuoso/4195934615b775b3ef7514f97b63dcc7 |
| 11:37:07 | <dminuoso> | The output you'd get in optics |
| 11:37:40 | <dminuoso> | (The output here means, that the composition of `_Just % _1` is an AffineTraversal, but `view` demands a Getter |
| 11:37:40 | × | dschrempf quits (~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 240 seconds) |
| 11:37:50 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:38:57 | <timCF> | dminuoso: Thanks! I'll try this! I hope `optics` will be compatible with `proto-lens` |
| 11:39:25 | <dminuoso> | timCF: Mmm not directly. |
| 11:40:02 | <dminuoso> | I mean you can trivially convert between lens-style and optics-style optics, but its additional work |
| 11:40:18 | <Jack> | Anyone ever taken a look at C++'s "functional" library? |
| 11:42:22 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 11:44:17 | <[exa]> | Jack: yes |
| 11:46:37 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 11:47:23 | → | cheater1__ joins (~Username@user/cheater) |
| 11:47:36 | × | cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds) |
| 11:47:37 | cheater1__ | is now known as cheater |
| 11:49:55 | <Jack> | It's kind of adorable, isn't it |
| 11:51:49 | → | doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net) |
| 11:51:57 | <[exa]> | depends on the kind of adorable you're after |
| 11:52:07 | <[exa]> | std::bind is often a lifesaver |
| 11:52:47 | <Rembane_> | [exa]: Is std::bind like $ in Haskell? |
| 11:53:09 | <[exa]> | literally like ' ', yea |
| 11:53:18 | → | favonia joins (~favonia@user/favonia) |
| 11:53:52 | <[exa]> | afaik it implements a pretty good static representation of the closure |
| 11:54:32 | <Rembane_> | Do you get that sweet lisp scoping when you use std::bind? |
| 11:54:58 | <[exa]> | lisp scope is structural or lexical? |
| 11:55:03 | <[exa]> | (I can never remember) |
| 11:55:14 | <Rembane_> | Me neither, so I guess we're stuck now. :) |
| 11:55:25 | <[exa]> | anyway the scope is perfectly c++ish |
| 11:55:41 | <Rembane_> | If everything works as expected it's fine imo |
| 11:56:08 | <[exa]> | yeah it really works, if you want to do a partial application std::bind is the way |
| 11:57:03 | <[exa]> | or a std::thunk <-- fiction |
| 11:57:06 | × | haskl quits (~haskl@user/haskl) (Remote host closed the connection) |
| 11:59:05 | → | haskl joins (~haskl@98.37.78.63) |
| 11:59:09 | <Rembane_> | It's a good thunk. |
| 12:00:35 | × | azeem quits (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
| 12:00:54 | × | haskl quits (~haskl@98.37.78.63) (Changing host) |
| 12:00:54 | → | haskl joins (~haskl@user/haskl) |
| 12:01:12 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 12:01:54 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 12:03:51 | <timCF> | dminuoso: I also thought maybe I can avoid `^?` using monadic nature of maybe, so `x ^? maybe'foo . _Just . maybe'bar . _Just` can be rewritten as `x ^. maybe'foo >>= (^. maybe'bar)` but I'm afraid it's even more confusing. But maybe not :) |
| 12:04:29 | → | Ariakenom joins (~patrik@c83-255-154-140.bredband.tele2.se) |
| 12:05:46 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 250 seconds) |
| 12:07:27 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 12:11:49 | → | pbrisbin joins (~patrick@174-081-116-011.res.spectrum.com) |
| 12:13:54 | × | Ariakenom quits (~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1) |
| 12:14:08 | → | Ariakenom joins (~patrik@c83-255-154-140.bredband.tele2.se) |
| 12:20:32 | → | dschrempf joins (~dominik@92-249-199-97.pool.digikabel.hu) |
| 12:31:24 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds) |
| 12:35:43 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:36:04 | × | urdh quits (~urdh@user/urdh) (Quit: Boom!) |
| 12:36:50 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 12:37:04 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 12:38:16 | → | jacks2 joins (~bc8167eb@217.29.117.252) |
| 12:38:49 | <jacks2> | hi. given parsec's someParser :: Parser a, is it possible to get current line number in someParser? |
| 12:42:07 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 12:42:11 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
| 12:42:27 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 12:42:51 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
| 12:44:17 | × | keutoi quits (~keutoi@106.208.52.176) (Ping timeout: 248 seconds) |
| 12:44:57 | × | markpythonicbtc quits (~textual@2601:647:5a00:35:d936:f2de:ef6:f0f4) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:45:13 | → | urdh joins (~urdh@user/urdh) |
| 12:47:29 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 12:49:40 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 12:50:18 | → | hendursaga joins (~weechat@user/hendursaga) |
| 12:52:16 | <[exa]> | Jack: not sure about parsec but megaparsec has `getSourcePos` |
| 12:52:33 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 12:53:54 | <[exa]> | ha, parsec has equivalent `getPosition` |
| 12:55:56 | → | keutoi joins (~keutoi@157.48.226.59) |
| 12:59:12 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 13:00:37 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 13:01:53 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
| 13:07:46 | × | tremon_ quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Ping timeout: 240 seconds) |
| 13:09:17 | → | drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
| 13:10:58 | → | markpythonicbtc joins (~textual@50.228.44.6) |
| 13:11:10 | <ggVGc> | isn't it about time Haskell gets one officially standard parsing library |
| 13:12:14 | <tdammers> | "official" by whose authority? |
| 13:12:57 | <merijn> | We already have an official standard parsing library in base :p |
| 13:13:03 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 13:13:11 | <merijn> | Actually, two, I think |
| 13:13:15 | <merijn> | And they suck :p |
| 13:13:25 | <tdammers> | readP? |
| 13:13:34 | <merijn> | and readS |
| 13:13:40 | <tdammers> | ah yes |
| 13:15:10 | × | Ariakenom quits (~patrik@c83-255-154-140.bredband.tele2.se) (Ping timeout: 240 seconds) |
| 13:22:02 | × | acidjnk_new quits (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 13:22:35 | <[exa]> | ggVGc: y tho |
| 13:22:38 | → | Ariakenom joins (~patrik@c83-255-154-140.bredband.tele2.se) |
| 13:25:55 | → | sim590 joins (~simon@modemcable090.207-203-24.mc.videotron.ca) |
| 13:27:00 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 13:27:09 | <merijn> | If I've learned anything from my time in python, it's that "officially blessed and in the standard library" has a 100% fatality rate on libraries :p |
| 13:28:06 | × | Ariakenom quits (~patrik@c83-255-154-140.bredband.tele2.se) (Ping timeout: 250 seconds) |
| 13:28:07 | → | byorgey joins (~byorgey@155.138.238.211) |
| 13:31:23 | <ggVGc> | I just wish that wasn't the case |
| 13:31:45 | <ggVGc> | imagine if we could collectively stop writing and rewriting 20 versions of the same things all the time |
| 13:35:08 | <[exa]> | producing quality packages requires training on other ones |
| 13:35:49 | <maerwald> | yeah, I will support streamly based parsers in base |
| 13:35:52 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 13:35:59 | → | keutoi_ joins (~keutoi@223.238.95.231) |
| 13:36:29 | <merijn> | ggVGc: That seems an orthogonal issue |
| 13:36:33 | × | keutoi quits (~keutoi@157.48.226.59) (Killed (lithium.libera.chat (Nickname regained by services))) |
| 13:36:33 | keutoi_ | is now known as keutoi |
| 13:36:43 | <merijn> | ggVGc: If there is a good and adequate parser library, what's stopping you from using it |
| 13:37:11 | <merijn> | Like, how would an "officially blessed and in base" version of megaparsec be better than, just megaparsec? |
| 13:37:42 | <[exa]> | also I guess we can kinda agree that almost all SI-prefixed variants of parsec have their own place |
| 13:37:46 | <maerwald> | well... haskell is really bad at composition |
| 13:37:47 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 13:37:53 | <maerwald> | more stuff in base can improve that |
| 13:37:54 | <ggVGc> | I believe the possible positive outcomes are always more focused efforts, and better documentation |
| 13:37:55 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 13:38:02 | <merijn> | maerwald: So is pretty much every mainstream language :p |
| 13:38:06 | <maerwald> | merijn: no |
| 13:38:20 | <maerwald> | the weaker the types, the easier the composition, sometimes |
| 13:38:32 | <maerwald> | since haskells API is all very type heavy, you can't easily exchange implementations |
| 13:38:53 | <maerwald> | that's often less of an issue in, say, Go |
| 13:39:10 | <maerwald> | because the few types they use are everywhere |
| 13:39:13 | <[exa]> | can we count in the debugging time? :D |
| 13:39:26 | <merijn> | maerwald: Depends how you define "easier", sure you can combine more things, but I assumed we only cared about *bugfree* combinations :p |
| 13:40:05 | <maerwald> | merijn: you don't have bugfree anywhere |
| 13:40:19 | <merijn> | maerwald: I also disagree that's an inherent flaw in Haskell, it's just a flaw in Haskell *programmers* to make their API's types inconvenient |
| 13:40:45 | <maerwald> | sure, it's an ecosystem effect, but the language is more convenient for it |
| 13:40:48 | <maerwald> | so it's both sides |
| 13:40:49 | × | jgeerds quits (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 248 seconds) |
| 13:41:04 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 252 seconds) |
| 13:42:02 | <maerwald> | people thought backpack might solve this, but lol |
| 13:42:14 | → | azeem joins (~azeem@176.201.15.223) |
| 13:42:22 | <merijn> | I blame pytorch hijacking ezyang |
| 13:42:24 | <maerwald> | you still have to agree on an API, like... what's parsing, what's streaming etc |
| 13:44:06 | <maerwald> | and looking at conduit and streamly, the APIs are already incompatible |
| 13:44:07 | <maerwald> | inherently |
| 13:44:25 | <maerwald> | so backpack is not the solution |
| 13:45:22 | <maerwald> | if we had an actual functioning CLC that is working on base actively, I don't think it would be an issue to broaden the scope |
| 13:45:29 | → | acidjnk_new joins (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) |
| 13:45:50 | <[exa]> | ...write a grant? |
| 13:46:10 | × | drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
| 13:46:23 | <maerwald> | money solves it? |
| 13:46:27 | <[exa]> | honestly I think e.g. MS research would not think twice about this precise ecosystem improvement |
| 13:46:32 | <[exa]> | well, you need people to do that |
| 13:46:37 | <maerwald> | HF has money |
| 13:46:47 | <merijn> | I mean, base's problem is that it can't move fast without breaking *everything* |
| 13:46:58 | <merijn> | Not to mention, significant parts are in the report |
| 13:47:31 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 13:47:58 | <[exa]> | maerwald: still it somehow chooses to work on other stuff |
| 13:48:02 | <maerwald> | yes |
| 13:48:15 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 13:48:27 | <[exa]> | maerwald: anyway the issue might just be more problematic, driven by actual programming deficiency than just people being lazy |
| 13:48:35 | <maerwald> | they're more concerned with broadening Haskell adoption in industry I think... at least that's what I gather from their mission statement discussion |
| 13:49:11 | <[exa]> | writing super-compatible stuff that still has types and not just "FromResult a => IO a" takes insane amounts of abstraction |
| 13:49:18 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 13:49:27 | <maerwald> | broadening adoption is more about building a brand/an image, providing consulting services, etc etc |
| 13:49:31 | <maerwald> | less about improving ecosystem |
| 13:49:36 | <[exa]> | monkeypatching stuff together (python/ruby way yay) certainly works but that's one thing we wanted to prevent right? |
| 13:50:07 | <[exa]> | adoption broads itself with killer apps |
| 13:51:22 | <[exa]> | anyway I'd certainly vote for having the internals of the packages exposed a bit more, having some way of recombining them in a little different way/with different glue types in case it's needed |
| 13:51:51 | <[exa]> | the problem is that there's no such now, except for 1] having 100x more type variables 2] backpack, kinda |
| 13:52:07 | <[exa]> | *no such standardized way to do that |
| 13:52:36 | <[exa]> | not standardized -- not even available |
| 13:55:28 | <[exa]> | hm now that's a research topic, assurance of some api compatibility without standardization |
| 13:55:33 | <[exa]> | ...let's write a grant? |
| 13:56:49 | × | aguapesada quits (~aguapesad@191.177.175.57) (Ping timeout: 248 seconds) |
| 13:57:15 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 13:59:46 | × | enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
| 14:00:37 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 14:01:55 | <jacks2> | [exa], nice, thanks! |
| 14:02:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 14:02:42 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 14:02:47 | × | xff0x quits (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) (Ping timeout: 240 seconds) |
| 14:03:10 | → | drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
| 14:05:21 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 14:05:36 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 14:06:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 240 seconds) |
| 14:07:27 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
| 14:07:42 | → | azeem joins (~azeem@176.201.15.223) |
| 14:10:04 | → | xff0x joins (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) |
| 14:16:22 | → | neo joins (~neo3@cpe-292712.ip.primehome.com) |
| 14:17:04 | × | Guest8337 quits (~chris@81.96.113.213) (Ping timeout: 250 seconds) |
| 14:18:43 | codedmart_ | is now known as codedmart |
| 14:18:59 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:20:04 | → | chris joins (~chris@81.96.113.213) |
| 14:20:07 | chris | is now known as Guest5712 |
| 14:20:33 | × | azeem quits (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
| 14:20:46 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 14:21:54 | → | chris joins (~chris@81.96.113.213) |
| 14:21:54 | × | Guest5712 quits (~chris@81.96.113.213) (Read error: Connection reset by peer) |
| 14:21:58 | chris | is now known as Guest2290 |
| 14:22:10 | × | acidjnk_new quits (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 14:25:18 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 14:26:26 | × | zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
| 14:26:26 | → | zfnmxt joins (~zfnmxtzfn@user/zfnmxt) |
| 14:26:37 | × | zfnmxt quits (~zfnmxtzfn@user/zfnmxt) (Quit: Reconnecting) |
| 14:26:53 | → | zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32) |
| 14:27:42 | × | zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
| 14:27:42 | → | zfnmxt joins (~zfnmxtzfn@user/zfnmxt) |
| 14:28:09 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 14:28:10 | × | reumeth quits (~reumeth@user/reumeth) (Ping timeout: 240 seconds) |
| 14:28:39 | → | MoC joins (~moc@user/moc) |
| 14:28:50 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 14:29:46 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 14:30:33 | mal1 | is now known as lieven |
| 14:30:36 | × | timCF quits (~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving) |
| 14:33:10 | × | pgib quits (~textual@173.38.117.86) (Ping timeout: 240 seconds) |
| 14:36:23 | → | VoidNoir0 joins (~VoidNoir0@72.80.203.52) |
| 14:36:44 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 14:40:51 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 14:42:52 | × | markpythonicbtc quits (~textual@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:43:10 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 14:43:28 | → | markpythonicbtc joins (~textual@50.228.44.6) |
| 14:43:58 | × | markpythonicbtc quits (~textual@50.228.44.6) (Client Quit) |
| 14:43:59 | × | dschrempf quits (~dominik@92-249-199-97.pool.digikabel.hu) (Quit: WeeChat 3.2) |
| 14:44:07 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 14:44:42 | → | cheater joins (~Username@user/cheater) |
| 14:45:42 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 14:45:58 | × | Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 252 seconds) |
| 14:49:01 | → | Ariakenom joins (~patrik@c83-255-154-140.bredband.tele2.se) |
| 14:50:51 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 14:52:15 | → | zmt01 joins (~zmt00@user/zmt00) |
| 14:53:07 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 14:54:23 | → | jgeerds joins (~jgeerds@55d4b311.access.ecotel.net) |
| 14:55:25 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 15:02:28 | Square | is now known as Sqaure |
| 15:03:52 | → | jose03 joins (~a@p200300ef9702383b45b8de8f8152bf35.dip0.t-ipconnect.de) |
| 15:04:16 | × | Ariakenom quits (~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1) |
| 15:05:57 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 15:06:21 | <jose03> | ghcup has nice terminal user interface. Does anybody know which haskell library they used for the UI? Or is it a C program? |
| 15:07:10 | × | daeng quits (~daeng@2401:3c00:18e:e603:bec7:e31f:ee15:3296) (Quit: Leaving) |
| 15:08:29 | <[exa]> | jose03: apparently Options.Applicative and Brick |
| 15:08:36 | <[exa]> | see code https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/app/ghcup/Main.hs |
| 15:09:07 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 240 seconds) |
| 15:09:16 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 15:12:49 | → | azeem joins (~azeem@176.201.15.223) |
| 15:13:02 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 15:14:46 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 15:15:13 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 15:16:04 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
| 15:17:31 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 15:17:31 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:17:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:17:31 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:19:22 | <maerwald> | jose03: brick |
| 15:20:27 | <maerwald> | https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/app/ghcup/BrickMain.hs |
| 15:20:47 | <maerwald> | barely 500 LOC |
| 15:20:58 | × | rmo quits (~rmo@user/msr) (Read error: Connection reset by peer) |
| 15:20:59 | <maerwald> | only downside is it doesn't support windows |
| 15:21:46 | → | hexfive joins (~eric@50.35.83.177) |
| 15:22:30 | → | markpythonicbtc joins (~textual@2601:647:5a00:35:f45e:90a7:31f1:d8ef) |
| 15:23:27 | × | MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge) |
| 15:23:28 | × | azeem quits (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
| 15:23:48 | <merijn> | optparse-applicative for commandline arguments/flags |
| 15:23:55 | <merijn> | brick for anything TUI like |
| 15:23:59 | → | MidAutumnMoon joins (~MidAutumn@user/midautumnmoon) |
| 15:24:14 | × | hexfive quits (~eric@50.35.83.177) (Client Quit) |
| 15:25:10 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 15:26:56 | <jose03> | [exa]: maerwald: merijn: thank you |
| 15:29:22 | → | nvmd joins (~nvmd@user/nvmd) |
| 15:39:18 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 15:43:35 | × | jippiedoe quits (~david@2a02-a44c-e14e-1-bfe4-3f38-b8a5-8c39.fixed6.kpn.net) (Quit: Leaving) |
| 15:44:01 | × | dsrt^ quits (~dsrt@12.16.129.111) (Remote host closed the connection) |
| 15:45:18 | → | epolanski joins (uid312403@id-312403.brockwell.irccloud.com) |
| 15:45:47 | × | xff0x quits (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) (Ping timeout: 240 seconds) |
| 15:46:01 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 15:46:07 | → | chexum_ joins (~quassel@gateway/tor-sasl/chexum) |
| 15:46:46 | → | xff0x joins (~xff0x@2001:1a81:52f9:3300:b601:7649:8935:742b) |
| 15:50:19 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 15:51:26 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 15:55:09 | × | ubert quits (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 15:55:32 | → | ubert joins (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) |
| 15:56:52 | → | frtdlteo^ joins (~frtdlteo@12.16.129.111) |
| 15:56:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 16:02:53 | chexum_ | is now known as chexum |
| 16:03:35 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 16:08:07 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
| 16:08:51 | → | Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
| 16:09:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 16:09:40 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 16:12:41 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:17:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 16:19:33 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds) |
| 16:22:18 | × | betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 250 seconds) |
| 16:25:56 | × | hrnz quits (~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb) |
| 16:26:19 | → | hrnz joins (~ulli@irc.plumbing) |
| 16:26:26 | × | hrnz quits (~ulli@irc.plumbing) (Client Quit) |
| 16:26:51 | → | hrnz joins (~ulli@irc.plumbing) |
| 16:27:19 | × | hrnz quits (~ulli@irc.plumbing) (Client Quit) |
| 16:27:31 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2) |
| 16:27:45 | → | hrnz joins (~ulli@irc.plumbing) |
| 16:29:04 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 16:29:35 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 16:38:05 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 16:40:26 | <siers> | I'm trying to understand the difference between {,G}ADTs. They both inductively create more elements in the set from old elements, but with GADTs you can restrict which elements you may use to to construct the next one, if you wish? |
| 16:41:59 | <Lycurgus> | what does {,G} signify over what G does? |
| 16:42:01 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 16:42:35 | <siers> | ah, that is a stupid shellism |
| 16:42:43 | <siers> | echo {,G}ADTs |
| 16:42:45 | <siers> | ADTs GADTs |
| 16:42:49 | <Lycurgus> | i c |
| 16:43:27 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
| 16:43:56 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:44:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:45:29 | → | jess joins (~jess@libera/staff/jess) |
| 16:49:17 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 16:50:28 | × | jgeerds quits (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 250 seconds) |
| 16:51:47 | × | neo quits (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 240 seconds) |
| 16:52:02 | × | dajoer quits (~david@user/gvx) (Quit: leaving) |
| 16:53:18 | → | ubert1 joins (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) |
| 16:53:56 | <Drew[m]> | siers: This may be an oversimplification but my understanding is that GADTs let you define datatypes with type parameters, where what fills the parameter is decided by which constructor you constructed the datatype with. |
| 16:53:58 | <Drew[m]> | If the constructor you use fixes a type parameter in a type then the reverse is also true: fixing the type parameter also fixes what data constructor you can construct a value in that type with. |
| 16:54:44 | <Lycurgus> | like extra virgin olive oil, in this case extra abstact |
| 16:54:47 | × | ubert quits (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 16:54:47 | ubert1 | is now known as ubert |
| 16:56:26 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 16:58:26 | <monochrom> | The GHC User's Guide has an example in its GADT section. |
| 16:59:00 | <monochrom> | Generally 99% of the time the GHC User's Guide should be your first go-to source for this kind of consultations. |
| 16:59:23 | <monochrom> | Has examples. Pinpointing. Cuts to the mustard. |
| 17:02:15 | → | zebrag joins (~chris@user/zebrag) |
| 17:02:17 | → | obs\ joins (~obscur1ty@156.192.129.164) |
| 17:02:17 | × | obs\ quits (~obscur1ty@156.192.129.164) (Changing host) |
| 17:02:17 | → | obs\ joins (~obscur1ty@user/obs/x-5924898) |
| 17:02:57 | × | kuribas quits (~user@ptr-25vy0iajat4u154jc6g.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 17:07:13 | <Lycurgus> | *abstract |
| 17:08:24 | → | econo joins (uid147250@user/econo) |
| 17:12:01 | × | pbrisbin quits (~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 248 seconds) |
| 17:13:55 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 17:14:01 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
| 17:14:10 | → | pbrisbin joins (~patrick@199.66.179.206) |
| 17:18:59 | → | pavonia joins (~user@user/siracusa) |
| 17:19:07 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:19:52 | × | Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer) |
| 17:20:27 | → | Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 17:22:39 | × | ubert quits (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
| 17:23:08 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 17:29:51 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:30:26 | → | Kaiepi joins (~Kaiepi@156.34.44.192) |
| 17:33:50 | → | ubert joins (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) |
| 17:34:15 | → | lavaman joins (~lavaman@98.38.249.169) |
| 17:35:15 | <maerwald[m]> | GHC user guide is often better than haskell wiki |
| 17:37:27 | × | drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
| 17:38:27 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 17:38:37 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 17:39:02 | × | defanor quits (~defanor@tart.uberspace.net) (Quit: .) |
| 17:39:13 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds) |
| 17:41:33 | → | fendor_ joins (~fendor@77.119.197.208.wireless.dyn.drei.com) |
| 17:43:47 | × | fendor quits (~fendor@91.141.64.241.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 17:45:09 | → | drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
| 17:46:01 | → | azeem joins (~azeem@176.201.15.223) |
| 17:46:37 | → | fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
| 17:47:01 | <siers> | monochrom, I am trying to describe it with my own words differently after reading the user guide already. |
| 17:47:14 | <fresheyeball> | is there a way to use CPP to special case code for test suites? |
| 17:47:27 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 17:48:07 | <fresheyeball> | basically I want Arbitrary instances to be local to the type, not orphans, but not to have a dependency on QuickCheck in the exe |
| 17:50:13 | <monochrom> | I think no. |
| 17:50:41 | <tomsmeding> | fresheyeball: see also: https://www.michaelpj.com/blog/2020/10/29/your-orphans-are-fine.html |
| 17:51:00 | <tomsmeding> | for some nuance regarding orphans |
| 17:51:06 | × | jose03 quits (~a@p200300ef9702383b45b8de8f8152bf35.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 17:51:18 | <sm> | sure ? you can define a cpp var in the test component ? |
| 17:52:02 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 17:52:06 | <sm> | should you ? maybe not ? |
| 17:53:03 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
| 17:53:09 | <fresheyeball> | tomsmeding: I have more problems than just orphans to be fair |
| 17:53:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 17:54:50 | → | trcc joins (~trcc@130.225.0.251) |
| 17:55:03 | panda_man | is now known as koala_man |
| 17:55:30 | → | aegon joins (~mike@174.127.249.180) |
| 17:56:12 | <aegon> | I see how the ffi works with basic characters, is there a way to use it to marshell haskell types into structs or structs into haskell types or keep a reference to an opaque type exposed by a c lib / what does that look like? |
| 17:57:02 | × | pbrisbin quits (~patrick@199.66.179.206) (Read error: Connection reset by peer) |
| 17:58:16 | <fresheyeball> | I figured out a solution |
| 17:58:31 | <fresheyeball> | cpp-options: -DTEST |
| 17:58:36 | <fresheyeball> | in the suite is all that is needed |
| 17:58:41 | <fresheyeball> | but I wish it was built in |
| 18:00:20 | <aegon> | https://stackoverflow.com/questions/30026843/haskell-data-instance-for-opaque-data-type found this for opaque types but having trouble finding things on passing / parsing structs across the ffi |
| 18:02:29 | → | pbrisbin joins (~patrick@174-081-116-011.res.spectrum.com) |
| 18:02:30 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 18:03:28 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 18:04:06 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:04:07 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 18:04:07 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:05:16 | <pavonia> | aegon: Have you read the wiki page on the FFI? https://wiki.haskell.org/Foreign_Function_Interface#Marshalling_data |
| 18:05:52 | <aegon> | pavonia: nope, and that looks like it has everything i'm pondering spelled out |
| 18:06:23 | → | neo joins (~neo3@cpe-292712.ip.primehome.com) |
| 18:07:04 | fendor_ | is now known as fendor |
| 18:08:17 | × | Adran quits (adran@botters/adran) (Quit: Este é o fim.) |
| 18:08:28 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
| 18:10:38 | → | Adran joins (~adran@botters/adran) |
| 18:10:47 | → | defanor joins (~defanor@tart.uberspace.net) |
| 18:14:22 | × | keutoi quits (~keutoi@223.238.95.231) (Quit: leaving) |
| 18:15:27 | <maerwald> | do we have some fuzzy function/class to determine if a list is null-ish? like ["", ""] |
| 18:15:31 | × | drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds) |
| 18:15:57 | <maerwald> | I'm not striving for clear semantics, since the input isn't |
| 18:16:16 | <monochrom> | I think no one has thought of it before. |
| 18:16:51 | × | azeem quits (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
| 18:17:28 | <monochrom> | My understanding is that this is a job more suitable for humans, in particular some of my weaker students who conflate 0, the empty set, the empty list, and the non-empty list that contains the non-empty set that contains the empty list. |
| 18:18:15 | → | vysn joins (~vysn@user/vysn) |
| 18:18:52 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 18:19:07 | <monochrom> | s/weaker/very weak/ |
| 18:19:36 | <maerwald> | I can imagine this working with a class that just gets called recursively. As with `Default`, of course it's subject to heavy abuse |
| 18:20:27 | <monochrom> | If you ever codify something into code, then unless there is non-determinism, you will end up with one clear semantics. |
| 18:20:51 | <monochrom> | This is why for fuzzy things I would refer to weak humans. |
| 18:21:51 | <maerwald> | you mean plug in your students neural network into my binary? |
| 18:22:09 | <aegon> | maerwald: imo that type of problem points to bad data parsing / sanitizing, I'm trying to think of a place where this would be benificial to do in the middle of a computation as apposed to during injestion. If it's happening in the middle of a computation couldn't you use Maybe to signify possible failure or some other thing to be more explicit about the meaning of "nullish" |
| 18:22:33 | <maerwald> | aegon: yes, I don't control the data |
| 18:22:35 | <monochrom> | For example I wouldn't be against a simple recursive algorithm "is_nullish xs = every element of xs is_nullish". At the same time, I have zero confidence that this agrees with your user's expectation. |
| 18:23:16 | <aegon> | maerwald: can you sanity check it at the IO layer where your consuming it? in that case you could write the sanity check into the parser |
| 18:23:38 | <maerwald> | aegon: why would I sanity check? I want to accept as much junk as possible |
| 18:23:54 | <aegon> | why do you want junk? |
| 18:23:58 | <maerwald> | this is about supporting as many curl versions as possible and their funky output |
| 18:24:33 | → | betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 18:24:49 | <maerwald> | so I'm doing half-assed parsing, not proper parsing |
| 18:26:38 | <maerwald> | the real fix would have been to use `--suppress-connect-headers`, but of course, not all versions have it |
| 18:29:21 | <[exa]> | maerwald: what about `not . any isAlphaNum . show` ? (might save time) |
| 18:30:04 | <[exa]> | (counter-example: `map (flip replicate "" . ord) "oh hello there"`) |
| 18:30:22 | → | burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
| 18:30:54 | <maerwald> | yeah, for my use case T.stripEnd is enough with a later filter on `not . null` |
| 18:32:23 | × | juri_ quits (~juri@178.63.35.222) (Remote host closed the connection) |
| 18:33:12 | <maerwald> | until a new curl version does something new :p |
| 18:33:25 | <[exa]> | \o/ |
| 18:33:41 | <maerwald> | wget seems much more stable |
| 18:33:44 | <maerwald> | although a lot slower too |
| 18:34:05 | <[exa]> | wget's got some internal machinery to make stuff faster, you can pipe URLs to it |
| 18:34:39 | <maerwald> | wget performs REALLY bad with etags |
| 18:34:46 | <[exa]> | whats etags |
| 18:35:07 | <maerwald> | https://en.wikipedia.org/wiki/HTTP_ETag |
| 18:35:27 | × | burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
| 18:36:07 | <maerwald> | compare: wget -q -S --header 'If-None-Match: "612388b3-1bc72"' https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml |
| 18:36:17 | <maerwald> | curl -H 'If-None-Match: "612388b3-1bc72"' https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml |
| 18:36:25 | × | sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds) |
| 18:36:27 | <maerwald> | curl is twice as fast |
| 18:36:32 | <maerwald> | at least here |
| 18:37:56 | <[exa]> | hm interesting, right ~600ms curl vs ~800 for wget here |
| 18:38:08 | <maerwald> | curl is 480ms here |
| 18:38:24 | <[exa]> | +- a lot, σ~=100ms I'd say |
| 18:38:32 | <maerwald> | but noticable |
| 18:38:43 | <[exa]> | what does Dr. Strace say? |
| 18:39:23 | <maerwald> | he's too chatty :p |
| 18:41:29 | <[exa]> | well let's see actually, I'm interested |
| 18:41:50 | <[exa]> | chances are that wget is doing something for free for some vaguely userfriendly reason |
| 18:43:27 | × | Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds) |
| 18:44:28 | <maerwald> | wouldn't be surprised if it makes a full download and then decides to show 304 |
| 18:44:51 | <maerwald> | but that's quick to test |
| 18:45:57 | × | derelict quits (~derelict@user/derelict) (Quit: WeeChat 3.2) |
| 18:46:45 | <maerwald> | doesn't seem so... I'm also having vastly different timings to downloads.haskell.org compared to www.haskell.org |
| 18:46:56 | × | frtdlteo^ quits (~frtdlteo@12.16.129.111) (Remote host closed the connection) |
| 18:47:04 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:48:03 | <[exa]> | so, wget loads faster by like 20ms here |
| 18:49:40 | <maerwald> | comparsion: wget -q -S --header 'If-None-Match: "61140ad8-3cbea20"' https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2 |
| 18:49:43 | → | sim590 joins (~simon@modemcable090.207-203-24.mc.videotron.ca) |
| 18:49:45 | <maerwald> | this finishes in 200ms here |
| 18:49:59 | <maerwald> | seems like a configuration issue |
| 18:50:12 | <maerwald> | both should be cached |
| 18:54:29 | <[exa]> | strace says the difference is really just in waiting for the replies from the server, guess there's something ugly in the headers |
| 18:57:19 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 18:57:37 | × | hrdl quits (~hrdl@mail.hrdl.eu) (Ping timeout: 248 seconds) |
| 18:57:46 | × | maerwald quits (~maerwald@user/maerwald) (Quit: gone) |
| 18:57:51 | → | hrdl joins (~hrdl@mail.hrdl.eu) |
| 18:58:02 | → | Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 18:58:04 | → | maerwald joins (~maerwald@mail.hasufell.de) |
| 18:58:21 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 18:58:32 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 18:58:36 | × | lisq quits (~quassel@lis.moe) (Remote host closed the connection) |
| 18:58:54 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 244 seconds) |
| 18:59:18 | × | maerwald quits (~maerwald@mail.hasufell.de) (Changing host) |
| 18:59:18 | → | maerwald joins (~maerwald@user/maerwald) |
| 18:59:32 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:59:44 | <maerwald> | [exa]: odd |
| 18:59:45 | → | lisq joins (~quassel@lis.moe) |
| 19:00:38 | <[exa]> | maerwald: curl uses http/2 |
| 19:02:10 | × | jacks2 quits (~bc8167eb@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 19:03:38 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 19:04:12 | <[exa]> | hm got it, for me it's gnutls vs openssl |
| 19:04:21 | <[exa]> | gnutls's got a bit more aggressive crypto in place by default |
| 19:05:00 | → | teo joins (~teo@137.220.120.222) |
| 19:05:11 | <[exa]> | timing of `gnutls-cli` vs `openssl s_client` is consistent with what you see there |
| 19:05:41 | <[exa]> | roughly the 800 vs 600 ms |
| 19:06:11 | <maerwald> | hm, I should try curl linked against polarssl |
| 19:06:44 | <[exa]> | there's also gnutls curl somewhere |
| 19:06:47 | <[exa]> | at least debian has some |
| 19:08:46 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 19:11:22 | → | jtomas_ joins (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
| 19:12:32 | × | trcc quits (~trcc@130.225.0.251) () |
| 19:13:47 | × | jtomas quits (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
| 19:14:45 | peutri_ | is now known as peutri |
| 19:18:51 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:5b4:1bf2:3392:8995) |
| 19:19:41 | <carter> | i've been having fun figuruing out what monad transformer helpers are best for writing a snazzy interpreter / compiler lately |
| 19:23:34 | <[exa]> | "snazzy"? :D |
| 19:24:07 | → | juri_ joins (~juri@178.63.35.222) |
| 19:25:28 | <[exa]> | (I learned a new word) |
| 19:27:53 | <maerwald> | carter: MonadChronicle? |
| 19:28:08 | <carter> | maerwald: ooo, that sounds fun |
| 19:28:10 | <[exa]> | maerwald: I can't dig what's openssl using for KEX but not expecting problems there; changing gnutls ciphersuites didn't help much. I guess it's dark magicks |
| 19:28:20 | <carter> | maerwald: what would that do |
| 19:28:23 | <carter> | [exa]: glad i could help |
| 19:28:27 | <carter> | not a native speaker? |
| 19:28:27 | <maerwald> | carter: express warnings and failure |
| 19:28:44 | <maerwald> | it's like These |
| 19:28:55 | <maerwald> | would probably be fun if you make it an open sum type, heh |
| 19:29:10 | <carter> | oh that looks fun |
| 19:29:27 | <carter> | thats probably the right thing for type checking a sect of SCC's |
| 19:29:53 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:30:05 | × | teo quits (~teo@137.220.120.222) (Quit: Lost terminal) |
| 19:30:16 | <maerwald> | I think I'm a believer of cabal-docspec now |
| 19:30:53 | <carter> | oh |
| 19:31:53 | <maerwald> | no need to have a doctest target |
| 19:31:55 | <carter> | is that in cabal 3.6 yet? |
| 19:31:58 | <maerwald> | no |
| 19:32:05 | <maerwald> | one of phadejs hidden projects |
| 19:32:14 | <carter> | https://github.com/phadej/cabal-extras/tree/master/cabal-docspec this one? |
| 19:32:21 | <maerwald> | ya |
| 19:32:42 | <maerwald> | I can run it without a doctest target, without a Main, just over my codebase |
| 19:33:02 | → | derelict joins (~derelict@user/derelict) |
| 19:33:14 | <maerwald> | it just needs the project to be built before, probably needs plan.json etc |
| 19:33:42 | <maerwald> | but can change comments without recompiling and it will still pick them up |
| 19:34:58 | × | bgamari quits (~bgamari@2001:470:e438::1) (Quit: ZNC 1.8.1 - https://znc.in) |
| 19:35:18 | → | bgamari joins (~bgamari@2001:470:e438::1) |
| 19:35:25 | <carter> | oh thats nice |
| 19:35:35 | <carter> | how do you script it in? |
| 19:35:47 | × | neo quits (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 240 seconds) |
| 19:36:12 | <carter> | hrmm |
| 19:36:15 | <maerwald> | carter: https://github.com/hasufell/shortbytestring/blob/219b6f0f48bb29ec20015a36db5ad97eab072e64/.github/workflows/haskell.yml#L53 |
| 19:36:18 | <carter> | would be nice if it was cabal-ized |
| 19:36:41 | <carter> | oh nice |
| 19:37:16 | <maerwald> | carter: I whined about it here https://github.com/haskell/cabal/issues/2327 |
| 19:43:16 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 19:44:14 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
| 19:44:33 | Lord_of_Life_ | is now known as Lord_of_Life |
| 19:48:23 | × | venue quits (~venue@user/venue) (Quit: was tired) |
| 19:49:07 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 19:49:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:51:22 | × | mei quits (~mei@user/mei) (Ping timeout: 258 seconds) |
| 19:52:23 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 19:59:29 | <maerwald> | , |
| 19:59:36 | <tomsmeding> | ! |
| 20:03:08 | <maerwald> | `traverseFold f = foldl (\mb a -> (<>) <$> mb <*> f a) (pure mempty)` -- I don't remember why I wrote this function |
| 20:03:11 | <maerwald> | and it's confusing |
| 20:03:31 | <maerwald> | try `traverseFold (:[]) ["1","2","3","4","5"]` vs `traverseFold (:[","]) ["1","2","3","4","5"]` lol |
| 20:04:09 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:04:09 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 20:04:09 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:05:31 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 252 seconds) |
| 20:07:33 | → | juhp joins (~juhp@128.106.188.220) |
| 20:08:11 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:09:27 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
| 20:09:33 | ent- | is now known as ent |
| 20:11:21 | <maerwald> | don't use list monad :p |
| 20:11:41 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 20:15:41 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
| 20:16:46 | → | chisui joins (~chisui@200116b868b0580051414fea9b4eac83.dip.versatel-1u1.de) |
| 20:18:24 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 20:18:41 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 20:18:53 | <fresheyeball> | can I set cpp-options in hie.yaml? |
| 20:20:09 | → | jgeerds joins (~jgeerds@55d4b311.access.ecotel.net) |
| 20:21:27 | <maerwald> | fresheyeball: why? |
| 20:21:39 | <fresheyeball> | well I set it in the cabal file |
| 20:21:43 | <fresheyeball> | and everything compiles fine |
| 20:21:56 | <fresheyeball> | but hls is acting like those options are not set for the target |
| 20:22:10 | <maerwald> | cabal.project? |
| 20:22:21 | <fresheyeball> | I don't have one of those |
| 20:22:28 | <maerwald> | create one |
| 20:22:44 | → | tommd joins (~tommd@75-164-130-101.ptld.qwest.net) |
| 20:23:32 | <fresheyeball> | ok done |
| 20:23:39 | <fresheyeball> | I enumerate my three exes |
| 20:23:42 | <fresheyeball> | and set tests: True |
| 20:23:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 20:24:17 | <fresheyeball> | now hls just crashes |
| 20:24:27 | <tommd> | I've been wanting to get into haskell.nix for a while now (for build time improvements on large projects) but quickly run into issues such as `error: attribute 'cabal-to-nix' missing, at ...`. How should I learn up on Nix? |
| 20:24:48 | <tommd> | That is, nix + Haskell to be quite clear. Less learning nix and more applying to improve my Haskell experience. |
| 20:24:58 | × | chisui quits (~chisui@200116b868b0580051414fea9b4eac83.dip.versatel-1u1.de) (Quit: Client closed) |
| 20:25:27 | <fresheyeball> | maerwald: actually what would it even be in my case? I just have 1 cabal file |
| 20:25:45 | <maerwald> | fresheyeball: package foo\n\tghc-options: -optPFOO |
| 20:25:48 | <maerwald> | or sth? |
| 20:25:53 | <maerwald> | you also need `packages: ./` |
| 20:26:44 | → | chisui joins (~chisui@200116b868b05800c65627e740591fd3.dip.versatel-1u1.de) |
| 20:26:45 | <fresheyeball> | ok so now cabal is not building it |
| 20:26:53 | <fresheyeball> | now cabal is not seeing that I set this in the cabal file |
| 20:26:57 | <fresheyeball> | it was before cabal.project |
| 20:27:00 | <fresheyeball> | I am confused |
| 20:27:04 | <maerwald> | too vague, links |
| 20:29:14 | <geekosaur> | -optP-DFOO perhaps? although I thinkk ghc itself accepts -DFOO |
| 20:29:59 | <maerwald> | yeah |
| 20:30:16 | <maerwald> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/phases.html#ghc-flag--D%E2%9F%A8symbol%E2%9F%A9[=%E2%9F%A8value%E2%9F%A9] |
| 20:31:32 | <fresheyeball> | ok so sorta a red hering |
| 20:31:44 | <fresheyeball> | the cabal.project file actually has no effect on hls |
| 20:31:57 | <fresheyeball> | I figured out what was wrong with cabal, I just didn't import something |
| 20:32:16 | <fresheyeball> | but still hls is not picking up that I have cpp-options set in the cabal file |
| 20:32:43 | <fresheyeball> | http://ix.io/3wLR |
| 20:32:46 | <fresheyeball> | here is the cabal file |
| 20:33:39 | <fresheyeball> | here is the hie.yml http://ix.io/3wLT |
| 20:33:49 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 20:34:03 | <fresheyeball> | cabal.project http://ix.io/3wLS |
| 20:35:25 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:35:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 20:35:25 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:37:17 | → | abrantesasf joins (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) |
| 20:40:10 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 20:40:58 | × | immae quits (~immae@2a01:4f8:141:53e7::) (Ping timeout: 240 seconds) |
| 20:40:58 | × | JeHugawa quits (~jehugawa@2a01:4f9:c010:4649::1) (Ping timeout: 240 seconds) |
| 20:42:11 | → | JeHugawa joins (~jehugawa@2a01:4f9:c010:4649::1) |
| 20:42:23 | → | immae joins (~immae@2a01:4f8:141:53e7::) |
| 20:44:36 | <maerwald> | try to set it in cabal.project |
| 20:46:33 | <fresheyeball> | maerwald: how? |
| 20:46:40 | <fresheyeball> | https://cabal.readthedocs.io/en/latest/cabal-projectindex.html#cap-cabal.project%20fields |
| 20:46:45 | <fresheyeball> | I don't see it as an option |
| 20:47:04 | <maerwald> | fresheyeball: we described it earlier |
| 20:47:28 | <maerwald> | https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=ghc-options#package-configuration-options |
| 20:47:46 | → | hseg joins (~gesh@IGLD-84-228-238-79.inter.net.il) |
| 20:49:23 | <hseg> | hi. have a type (of multisets) that can be given a Num instance, except that (*) requirs some constraints on tyvars. which forces me to constrain the entire instance. which locks me out of using linear operations on the type at types failing the constraint. advice? |
| 20:49:57 | <hseg> | (in particular, need (*) :: Monoid a => MSet a -> MSet a -> MSet a, but would like (+) :: MSet a -> MSet a -> MSet a) |
| 20:50:20 | <glguy> | You can use a different class/operator for the unconstrained + operation |
| 20:50:46 | <fresheyeball> | yay! |
| 20:50:48 | <fresheyeball> | that worked |
| 20:51:17 | <hseg> | yeah, but that's ugly and duplicates names |
| 20:51:29 | <fresheyeball> | http://ix.io/3wLY |
| 20:51:31 | <fresheyeball> | this did the trick |
| 20:51:36 | <fresheyeball> | now hls is working for test suites |
| 20:51:43 | <fresheyeball> | maerwald:++ |
| 20:52:19 | <glguy> | hseg: perhaps, but you can't have different constraints for the different methods of Num, so you'll need a solution that isn't Num for that |
| 20:52:29 | <hseg> | shame |
| 20:52:56 | <hseg> | current solution is to just fmap (fromJust . getFirst) . ... . fmap (First . Just) |
| 20:53:41 | <hseg> | which is annoying, and since my underlying implementation uses Data.Map, cannot be turned into coercions |
| 20:54:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:56:16 | <hseg> | not to mention that this doesn't generalize well -- if I need to tag all the parameters to a function, lift a retagging, etc I need a new combinator |
| 20:56:24 | → | dsrt^ joins (~dsrt@12.16.129.111) |
| 20:56:38 | <hseg> | unlike coerce, which I can fit to the usecase with judicious tyapps |
| 20:58:47 | <dminuoso> | hseg: By the way, did you make any progress with your tyfam errors last night? |
| 20:59:56 | <hseg> | y, reported, mpickering suggested it might be due to ANN interacting with binding groups https://gitlab.haskell.org/ghc/ghc/-/issues/20265 |
| 21:02:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:02:17 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 21:02:17 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:03:10 | → | elf_fortrez joins (~elf_fortr@adsl-72-50-4-39.prtc.net) |
| 21:03:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 21:03:29 | <hseg> | hm. could live with the retagging if I could write sth like retag @(MSet :.: MSet) @MSet :: (forall f. Monoid (f l) => MSet (MSet (f k)) -> MSet (f l)) -> MSet (MSet k) -> MSet l |
| 21:05:05 | × | d0ku quits (~d0ku@178.43.19.40.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds) |
| 21:05:27 | <hseg> | ... iow, want retag @f1 @f2 @f3 ... :: (forall f. Monoid (f r) => f1 (f x1) -> f2 (f x2) -> ... -> fn (f r)) -> f1 x1 -> f2 x2 -> ... fn r |
| 21:05:41 | → | acidjnk_new joins (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) |
| 21:06:08 | <hseg> | ... which might be doable with a combination of the van laarhoven trick, the printf trick, and a fundep |
| 21:06:17 | <dminuoso> | Interesting |
| 21:06:29 | → | retroid_ joins (~retro@5ec19a54.skybroadband.com) |
| 21:09:11 | × | retro_ quits (~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds) |
| 21:09:54 | <hseg> | ... actually printf=van laarhoven here |
| 21:11:14 | × | Hobbyboy quits (Hobbyboy@hobbyboy.co.uk) (Quit: The BNC has broken!) |
| 21:11:26 | → | Hobbyboy joins (Hobbyboy@hobbyboy.co.uk) |
| 21:12:10 | × | megaTherion quits (~therion@unix.io) (Ping timeout: 240 seconds) |
| 21:12:34 | × | farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 240 seconds) |
| 21:12:34 | × | kawzeg quits (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (Ping timeout: 240 seconds) |
| 21:12:53 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
| 21:12:58 | × | jocke-l quits (jocke-l@a.x0.is) (Ping timeout: 240 seconds) |
| 21:13:45 | → | farn joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
| 21:13:49 | → | kawzeg joins (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) |
| 21:15:03 | → | jocke-l joins (jocke-l@a.x0.is) |
| 21:18:55 | → | batch12 joins (~user@192.152.118.97) |
| 21:20:17 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:23:26 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 21:23:42 | → | Guest86 joins (~Guest86@68.233.176.29) |
| 21:23:58 | <Guest86> | is this the correct place to get support for haskell vscode extension? |
| 21:25:04 | <batch12> | How do I put a constraint on a type-level list? |
| 21:25:04 | <batch12> | I have: class Thing a |
| 21:25:04 | <batch12> | and a GADT: data Carrier (is :: [i]) |
| 21:25:04 | <batch12> | I know I can say: data Carrier (is :: [Nat]) |
| 21:25:07 | <batch12> | But I want to say that any i that is allowed to be in that type-level list, must have a Thing instance. |
| 21:25:11 | <batch12> | Something like: data Carrier (is :: [forall i => Thing i]) |
| 21:25:14 | <batch12> | Any idea about how to do this? |
| 21:26:19 | <dminuoso> | batch12: newtype it |
| 21:26:34 | × | jtomas_ quits (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 21:26:36 | <dminuoso> | Or use a GADT |
| 21:27:06 | <dminuoso> | % data IsShow where Show a => a -> IsShow |
| 21:27:06 | <yahb> | dminuoso: ; <interactive>:15:24: error: parse error on input `a' |
| 21:27:13 | <dminuoso> | % data IsShow where MkShow :: Show a => a -> IsShow |
| 21:27:14 | <yahb> | dminuoso: |
| 21:27:47 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 240 seconds) |
| 21:28:53 | <batch12> | So I can do that, and that's what I would do at the value level. But why do I need to do that here? It's already a list of types holding any type of kind * (so a heterogeneous list) |
| 21:29:14 | → | megaTherion joins (~therion@coruscant.unix.io) |
| 21:29:44 | <batch12> | It feels like an existential type is solving an entirely different problem |
| 21:30:05 | × | ubert quits (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
| 21:31:28 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
| 21:32:39 | <dminuoso> | mmm |
| 21:33:02 | <dminuoso> | % type T = '[Show i => i] |
| 21:33:02 | <yahb> | dminuoso: ; <interactive>:17:17: error: Not in scope: type variable `i'; <interactive>:17:22: error: Not in scope: type variable `i' |
| 21:33:06 | <dminuoso> | % type T = '[forall i. Show i => i] |
| 21:33:07 | <yahb> | dminuoso: ; <interactive>:18:1: error:; * Illegal polymorphic type: forall i. Show i => i; GHC doesn't yet support impredicative polymorphism; * In the type synonym declaration for `T' |
| 21:33:16 | <dminuoso> | batch12: ^- here. impredicativity is the issue |
| 21:33:41 | <dminuoso> | being in a type list doesnt help, as under the hood its all TypeInType |
| 21:33:54 | <hseg> | btw, ghci has stopped listing loaded modules recently. anyone know what's up with that? |
| 21:34:43 | <dminuoso> | hseg: http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/9.0.1-notes.html#ghci |
| 21:34:56 | <sm> | a long awaited ux fix |
| 21:35:29 | <tomsmeding> | hseg: :set prompt "%s> " |
| 21:35:45 | <dminuoso> | batch12: With quick look (9.2?), you should be able to use that in the future. |
| 21:35:52 | <dminuoso> | batch12: and mind you, an existential is just an encoding of the same fact. |
| 21:35:54 | <hseg> | ok, fair, has annoyed me in the past |
| 21:36:11 | <hseg> | but is there a way to list all loaded modules, then? |
| 21:37:17 | <dminuoso> | % :show imports -- hseg |
| 21:37:18 | <yahb> | dminuoso: syntax: :show [args | prog | editor | stop | imports | modules | bindings | linker | breaks | context | packages | paths | language | targets] |
| 21:37:20 | <dminuoso> | % :show imports |
| 21:37:21 | <yahb> | dminuoso: import Control.Applicative; import Control.Arrow; import Control.Concurrent; import Control.Concurrent.Chan; import Control.Concurrent.MVar; import Control.Concurrent.STM; import Control.Concurrent.STM.TChan; import Control.Concurrent.STM.TVar; import Control.Comonad.Store; import Control.Exception; import Control.Exception.Lens; import Control.Monad; import Control.Monad.Cont; import Control.Monad.Except; impo |
| 21:37:32 | <hseg> | awesome, thanks |
| 21:37:44 | <dminuoso> | hseg: Try using the GHC manual more! It's superb :) |
| 21:37:57 | <dminuoso> | One of the few manuals that are really well maintained |
| 21:38:03 | <batch12> | @dminuoso Thanks. Yeah, the variant with the constraint there leads to impredicative types. But this problem doesn't have anything to do with impredicativity. Given that you can write '[Nat] there, which is a kind of constraint already, I don't see why having a type class constraint would be any different? |
| 21:38:03 | <lambdabot> | Unknown command, try @list |
| 21:38:12 | <hseg> | usually do! didn't find this one though |
| 21:38:28 | <dminuoso> | batch12: The problem has nothing to do with the constraint, it has to do with the quantification. |
| 21:38:37 | <dminuoso> | Consider: |
| 21:38:43 | <dminuoso> | [forall a. a] |
| 21:38:43 | <batch12> | dminuoso: but the quantification always exists even with [Nat] |
| 21:38:45 | × | elf_fortrez quits (~elf_fortr@adsl-72-50-4-39.prtc.net) (Quit: Client closed) |
| 21:38:53 | <dminuoso> | No, Nat is not quantified. |
| 21:39:18 | <batch12> | data Carrier (is :: [Nat]); is allowing for a type list that contains any type of kind Nat |
| 21:39:27 | × | pbrisbin quits (~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 240 seconds) |
| 21:39:37 | <dminuoso> | batch12: The key thing here is that given `type T = [forall a. a]`, with impredicativity you are allowed to instantiate `a` at T. |
| 21:39:59 | → | roboguy__ joins (~roboguy_@2605:a601:afe7:9f00:20c9:56f0:4ff9:be7b) |
| 21:40:08 | → | elf_fortrez joins (~elf_fortr@adsl-72-50-6-134.prtc.net) |
| 21:40:13 | <dminuoso> | batch12: but with `data All where All :: a -> All`, [All] no longer has that self referential property |
| 21:40:41 | <batch12> | That's at the type level, but this is a kind annotation instead |
| 21:40:55 | <dminuoso> | With TypeInType there's no difference |
| 21:41:03 | <dminuoso> | We no longer have kinds |
| 21:41:34 | <dminuoso> | 23:39:18 batch12 | data Carrier (is :: [Nat]); is allowing for a type list that contains any type of kind Nat |
| 21:41:41 | <dminuoso> | Yes, there is still no quantification on Nat. |
| 21:41:52 | × | roboguy__ quits (~roboguy_@2605:a601:afe7:9f00:20c9:56f0:4ff9:be7b) (Client Quit) |
| 21:42:56 | <dminuoso> | batch12: TypeInType is on the brink of deprecation I think, because under the hood its been TypeInType for a few years even! |
| 21:43:05 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:5b4:1bf2:3392:8995) (Ping timeout: 250 seconds) |
| 21:43:16 | <batch12> | Right, it's deprecated for PolyKinds already |
| 21:43:39 | <batch12> | But I don't see why quantification is needed here at all. There should be some other approach that avoids this issue |
| 21:43:45 | <dminuoso> | you want a constraint |
| 21:43:57 | <dminuoso> | Which type variable do you want a constraint on? |
| 21:44:13 | <dminuoso> | Or do you want a nullary constraint like |
| 21:44:17 | <elf_fortrez> | Turkey? |
| 21:45:04 | <batch12> | dminuoso: The answer is probably to write a type family that takes the list and provides a Constraint which enforces that they're all members of this type class |
| 21:45:15 | <dminuoso> | batch12: Ohh hold on I think I misunderstood what you're trying to do. |
| 21:45:38 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:45:56 | <dminuoso> | batch12: Wouldn't that be a lifted GADT? |
| 21:46:07 | <dminuoso> | Not sure whether that is even a thing |
| 21:46:26 | <dminuoso> | % :set -XDataKinds |
| 21:46:26 | <yahb> | dminuoso: |
| 21:46:29 | <dminuoso> | % :set -XGADTs |
| 21:46:29 | <yahb> | dminuoso: |
| 21:46:45 | <elf_fortrez> | kind is child in germa |
| 21:46:56 | <elf_fortrez> | German |
| 21:46:57 | <dminuoso> | % data F where MkF :: Num a => a -> F |
| 21:46:57 | <yahb> | dminuoso: |
| 21:47:07 | <elf_fortrez> | Therefore Kinder |
| 21:47:11 | <dminuoso> | % :k F |
| 21:47:11 | <yahb> | dminuoso: * |
| 21:47:17 | <dminuoso> | % :k MkF |
| 21:47:17 | <yahb> | dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkF' cannot be used here (it has an unpromotable context `Num a'); * In the type `MkF' |
| 21:49:22 | <monochrom> | I feel left out that all #haskell questions are now type-level programming questions. |
| 21:49:45 | <dminuoso> | % data G = forall a. Num a => MkG |
| 21:49:45 | <yahb> | dminuoso: ; <interactive>:14:10: error:; * Could not deduce (Num a0); from the context: Num a; bound by the type of the constructor `MkG':; forall a. Num a => G; at <interactive>:14:10-31; The type variable `a0' is ambiguous; * In the ambiguity check for `MkG'; To defer the ambiguity check to use sites, enable AllowAmbiguousTypes; In the definition of |
| 21:49:50 | <monochrom> | (To clarify, I haven't studied or practiced that.) |
| 21:49:56 | <dminuoso> | Uh what? |
| 21:50:01 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 21:50:03 | <dminuoso> | % :q |
| 21:50:03 | <yahb> | dminuoso: |
| 21:50:05 | <dminuoso> | % data G = forall a. Num a => MkG |
| 21:50:06 | <yahb> | dminuoso: ; <interactive>:1:10: error:; * Could not deduce (Num a0); from the context: Num a; bound by the type of the constructor `MkG':; forall a. Num a => G; at <interactive>:1:10-31; The type variable `a0' is ambiguous; * In the ambiguity check for `MkG'; To defer the ambiguity check to use sites, enable AllowAmbiguousTypes; In the definition of d |
| 21:50:34 | <dminuoso> | Oh |
| 21:50:36 | <dminuoso> | % data G = forall a. Num a => MkG a |
| 21:50:37 | <yahb> | dminuoso: |
| 21:50:40 | <dminuoso> | % :k MkG |
| 21:50:40 | <yahb> | dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkG' cannot be used here (it has an unpromotable context `Num a'); * In the type `MkG' |
| 21:50:54 | <dminuoso> | % class Foo (i :: k) |
| 21:50:54 | <yahb> | dminuoso: |
| 21:50:58 | <dminuoso> | % data G = forall a. Foo a => MkG a |
| 21:50:59 | <yahb> | dminuoso: |
| 21:51:01 | <dminuoso> | % :k MkG |
| 21:51:02 | <yahb> | dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkG' cannot be used here (it has an unpromotable context `Foo a'); * In the type `MkG' |
| 21:51:06 | <monochrom> | Or I should be happy that the reason there are no more value-level programming questions is because everyone is already an expert in Haskell value-level programming. :) |
| 21:51:20 | <dminuoso> | batch12: No idea. But you'd need this. |
| 21:51:37 | <dminuoso> | batch12: Or, you can just wait for quick look in GHC 9.2, flip on impredicativity and enjoy the rest. |
| 21:51:52 | <hseg> | monochrom: what kind of questions are you missing? |
| 21:52:06 | <monochrom> | Value-level programming questions. |
| 21:52:32 | <monochrom> | "How do I traverse a list at the value level only?" |
| 21:52:56 | <dminuoso> | https://aphyr.com/posts/342-typing-the-technical-interview |
| 21:53:04 | <dminuoso> | monochrom: You knew this was coming, didn't you? |
| 21:53:05 | <hseg> | oh that's a classic |
| 21:54:52 | <monochrom> | I enjoyed that one as a joke. Didn't think of it as prophecy though. Well, I guess I didn't have foresight. |
| 21:55:48 | <monochrom> | But yeah some of that could be improved by type families today. |
| 21:56:41 | <monochrom> | On second thought, I didn't study type-level programming, I don't actually know whether type families would help that one. |
| 21:58:23 | <monochrom> | And then you can also criticize me for turning down term-level questions when they actually come up, such as yesterday, with "I can't believe that your prof's course material didn't show examples". |
| 22:00:18 | <dminuoso> | Or "I can't believe that your prof's course material didn't start off with type families" |
| 22:00:26 | <dminuoso> | That's where your job is headed. |
| 22:00:46 | <dminuoso> | Soon we will abolish code generation in GHC. |
| 22:01:29 | <batch12> | dminuoso: This does the job: |
| 22:01:29 | <batch12> | type family IsShow (a :: [*]) :: Constraint where |
| 22:01:29 | <batch12> | IsShow '[] = () |
| 22:01:29 | <batch12> | IsShow (h:t) = (Show h, IsShow t) |
| 22:01:59 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
| 22:02:28 | <dminuoso> | % type family IsShow (a :: [*]) :: Constraint where IsShow '[] = (); IsShow (h:t) = (Show h, IsShow t) |
| 22:02:28 | <yahb> | dminuoso: |
| 22:03:01 | <dminuoso> | And how do you intend to use this? |
| 22:04:58 | <batch12> | I'm maintaining a stack of operations that are attached to some values |
| 22:05:43 | <batch12> | (the actual class is not show..) |
| 22:05:57 | <batch12> | Thanks for the help! |
| 22:08:18 | <fresheyeball> | ok I got another quandry |
| 22:08:25 | <fresheyeball> | postgresql simple |
| 22:08:35 | <fresheyeball> | Incompatible {errSQLType = "record", errSQLTableOid = Nothing, errSQLField = "row", errHaskellType = "Text", errMessage = "types incompatible"} |
| 22:08:44 | <fresheyeball> | The column has type text |
| 22:08:49 | <fresheyeball> | and the haskell type is Text |
| 22:08:53 | <fresheyeball> | I am at a loss |
| 22:09:25 | <dminuoso> | fresheyeball: can you show the code? |
| 22:09:55 | <hpc> | can the column be null? |
| 22:09:58 | <fresheyeball> | dminuoso: http://ix.io/3wMj |
| 22:10:05 | <fresheyeball> | no it cannot be null |
| 22:10:27 | <fresheyeball> | http://ix.io/3wMk |
| 22:10:31 | <fresheyeball> | this is the schema |
| 22:12:06 | <dminuoso> | fresheyeball: Is there valid utf8 in there? |
| 22:12:16 | → | benin036932 joins (~benin@183.82.178.142) |
| 22:12:41 | <dminuoso> | I expect not. |
| 22:13:34 | <fresheyeball> | dminuoso: I am not sure, it's being generated by an Arbitrary instance |
| 22:14:07 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:14:19 | <fresheyeball> | ok I hard coded it to "user" and "pass" and the error persists |
| 22:14:23 | <fresheyeball> | those are both utf8 |
| 22:15:27 | × | batch12 quits (~user@192.152.118.97) (Ping timeout: 240 seconds) |
| 22:17:21 | <dminuoso> | errSQLField = "row" |
| 22:17:37 | <fresheyeball> | ? |
| 22:18:12 | <dminuoso> | I find that curious |
| 22:18:19 | <dminuoso> | It should mention the column name |
| 22:18:58 | <fresheyeball> | It was the parens in the query |
| 22:19:19 | <dminuoso> | fresheyeball: Does this trigger on insert or select? |
| 22:19:28 | <fresheyeball> | select |
| 22:19:53 | <dminuoso> | 00:18:58 fresheyeball | It was the parens in the query |
| 22:19:55 | <dminuoso> | Yeah. |
| 22:19:59 | <dminuoso> | That explains it. |
| 22:20:30 | <dminuoso> | Also why there's no table oid, or SQLType "record" |
| 22:20:47 | <fresheyeball> | well onto the next error |
| 22:20:54 | → | d0ku joins (~d0ku@37.30.113.168.nat.umts.dynamic.t-mobile.pl) |
| 22:21:06 | <fresheyeball> | apparently my createUser query doesn't make a user that is fount by my lookupHashByUsername function |
| 22:22:26 | <dminuoso> | fresheyeball: the order of columns is swapped around in the insert. |
| 22:22:33 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 22:22:35 | <fresheyeball> | so |
| 22:22:39 | <dminuoso> | or not? |
| 22:22:52 | <fresheyeball> | I don't understand why it matters the order |
| 22:22:55 | <fresheyeball> | they are named |
| 22:23:20 | <dminuoso> | fresheyeball: what does the ToField instance for User look like? |
| 22:23:31 | <fresheyeball> | it's derived from a newtype of Text |
| 22:24:13 | <dminuoso> | Anyway. Enable debugging in your postgresql server |
| 22:24:20 | <dminuoso> | That way you can see what queries your database is actually getting |
| 22:24:25 | <dminuoso> | This can be a gods end with postgresql-simple |
| 22:26:27 | <fresheyeball> | well I looked in the db |
| 22:26:33 | <fresheyeball> | and there is in fact a user there |
| 22:26:35 | <fresheyeball> | oh shit |
| 22:26:37 | <fresheyeball> | I see |
| 22:26:51 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 250 seconds) |
| 22:27:23 | <aegon> | fresheyeball: does the flow your trying to emulate in haskell work in raw sql? |
| 22:27:31 | <fresheyeball> | user_name needs UNIQUE |
| 22:27:57 | → | Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
| 22:28:31 | <fresheyeball> | ok tests run now atleast |
| 22:28:53 | <dminuoso> | fresheyeball: Btw, you might want to use cryptonite rather if security is important to you. :) |
| 22:29:06 | <dminuoso> | Argh |
| 22:29:09 | <dminuoso> | I meant libsodium, |
| 22:29:11 | <fresheyeball> | what is wrong with Data.Password.Argon2 |
| 22:29:13 | <fresheyeball> | ? |
| 22:29:15 | <dminuoso> | Im really tired and need to go to bed. |
| 22:29:19 | <dminuoso> | No I meant libsodium |
| 22:29:35 | <dminuoso> | fresheyeball: libsodium is written by crypto experts with a keen focus on avoiding side channels |
| 22:29:35 | <fresheyeball> | well apparently Data.Password cannot handle all strings |
| 22:29:38 | <dminuoso> | all these haskell libraries are not. |
| 22:29:47 | × | d0ku quits (~d0ku@37.30.113.168.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
| 22:30:40 | <dminuoso> | There's not even published papers on side channels in haskell semantics, the code that GHC produces, the way its optimized works, how this affects cache lines, CPU instructions, and everything |
| 22:31:44 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
| 22:32:22 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:32:24 | <fresheyeball> | ok |
| 22:32:28 | <fresheyeball> | this is good enough for now |
| 22:32:31 | <fresheyeball> | I will look into it |
| 22:32:49 | <fresheyeball> | either way, it's actually the user check that is failing now |
| 22:32:58 | <fresheyeball> | "L\NUL'\"?Dk" |
| 22:32:59 | <fresheyeball> | expected: "L\NUL'\"?Dk" |
| 22:33:01 | <fresheyeball> | but got: "L" |
| 22:33:22 | <fresheyeball> | utf8 problem? |
| 22:34:19 | <dminuoso> | Postgresql does not permit NUL bytes in text |
| 22:34:41 | <dminuoso> | It's surprising this gets truncated silently |
| 22:35:54 | <fresheyeball> | ok well I seriously doubt that users are going manage to get a NUL byte into a webform |
| 22:37:05 | <dminuoso> | And this is how bugs and security issues are born |
| 22:37:34 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
| 22:37:43 | <dminuoso> | I seriously doubt someone is named "; DROP ALL TABLES" |
| 22:38:03 | <hseg> | (except for bobby tables) |
| 22:38:52 | <dminuoso> | fresheyeball: Ignoring these types of bugs can have surprising results |
| 22:39:00 | <dminuoso> | Consider the case where a user might call themselves |
| 22:39:04 | <dminuoso> | a\BELdmin |
| 22:39:31 | <dminuoso> | And suddenly this becomes `admin` after roundtripping say through the database, or some rendering engine |
| 22:40:07 | × | jgeerds quits (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 240 seconds) |
| 22:41:03 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:43:03 | <fresheyeball> | dminuoso: ouch |
| 22:43:12 | × | ham quits (~ham4@user/ham) (Quit: Leaving) |
| 22:43:29 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 22:50:07 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 22:52:15 | → | cjb joins (~cjb@user/cjb) |
| 22:53:42 | × | haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
| 22:53:56 | → | haykam joins (~haykam@static.100.2.21.65.clients.your-server.de) |
| 22:54:00 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:57:13 | × | elf_fortrez quits (~elf_fortr@adsl-72-50-6-134.prtc.net) (Quit: Client closed) |
| 22:59:31 | → | elf_fortrezz joins (~elf_fortr@adsl-72-50-6-134.prtc.net) |
| 23:00:02 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:01:31 | × | acidjnk_new quits (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 23:01:38 | × | forell quits (~forell@user/forell) (Ping timeout: 268 seconds) |
| 23:01:50 | × | elf_fortrezz quits (~elf_fortr@adsl-72-50-6-134.prtc.net) (Client Quit) |
| 23:02:12 | → | elf_fortrez joins (~elf_fortr@adsl-72-50-6-134.prtc.net) |
| 23:03:42 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 23:04:30 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:06:58 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:07:48 | × | dsrt^ quits (~dsrt@12.16.129.111) (Remote host closed the connection) |
| 23:08:30 | → | dsrt^ joins (~dsrt@12.16.129.111) |
| 23:11:07 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 23:11:43 | × | chisui quits (~chisui@200116b868b05800c65627e740591fd3.dip.versatel-1u1.de) (Ping timeout: 246 seconds) |
| 23:12:06 | × | elf_fortrez quits (~elf_fortr@adsl-72-50-6-134.prtc.net) (Quit: Client closed) |
| 23:16:04 | → | forell joins (~forell@user/forell) |
| 23:17:39 | → | teo joins (~teo@137.220.120.222) |
| 23:17:52 | × | hseg quits (~gesh@IGLD-84-228-238-79.inter.net.il) (Ping timeout: 250 seconds) |
| 23:18:20 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds)) |
| 23:19:37 | × | teo quits (~teo@137.220.120.222) (Remote host closed the connection) |
| 23:21:04 | → | dajoer joins (~david@user/gvx) |
| 23:23:14 | → | venue joins (~venue@user/venue) |
| 23:27:27 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds) |
| 23:34:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 23:34:40 | <Cajun> | yeah anything that has to do with user entry should be essentially babied from your code. sanitize it in every possible way |
| 23:35:10 | <Cajun> | as much as script injection/ACE is fun to mess with, its not fun when someone messes with it on your platform :P |
| 23:35:52 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 23:36:30 | × | Gurkenglas quits (~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
| 23:36:46 | × | ft quits (~ft@shell.chaostreff-dortmund.de) (Ping timeout: 268 seconds) |
| 23:41:24 | → | d0ku joins (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) |
| 23:45:26 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 23:45:44 | → | ft joins (~ft@shell.chaostreff-dortmund.de) |
| 23:54:50 | × | fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 23:55:44 | → | batch12 joins (~user@192.152.118.97) |
All times are in UTC on 2021-08-23.