2023-05-27 00:06:15 +0200 | <dmj`> | is there a QQ library for .proto files ? |
2023-05-27 00:11:02 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-05-27 00:13:32 +0200 | jil` | (~user@vps-15050500.vps.ovh.net) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2)) |
2023-05-27 00:13:46 +0200 | jil | (~user@vps-15050500.vps.ovh.net) |
2023-05-27 00:19:29 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-27 00:21:53 +0200 | son0p | (~ff@181.136.122.143) |
2023-05-27 00:22:07 +0200 | shapr | (~user@2600:1700:c640:3100:55f:2555:501d:44ae) |
2023-05-27 00:24:46 +0200 | zincy | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Read error: Connection reset by peer) |
2023-05-27 00:25:03 +0200 | zincy | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
2023-05-27 00:27:25 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
2023-05-27 00:28:56 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-05-27 00:37:29 +0200 | nick__ | (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 246 seconds) |
2023-05-27 00:38:00 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-05-27 00:42:01 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-05-27 00:43:34 +0200 | tom_ | (~tom@host81-151-255-71.range81-151.btcentralplus.com) |
2023-05-27 00:45:18 +0200 | machinedgod | (~machinedg@46.188.225.66) (Ping timeout: 265 seconds) |
2023-05-27 00:47:08 +0200 | acidjnk_new | (~acidjnk@p200300d6e7072f242dfdc2b5ef6845c3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-05-27 00:47:47 +0200 | acidjnk | (~acidjnk@p200300d6e7072f24316225cd2ab6c884.dip0.t-ipconnect.de) |
2023-05-27 00:48:47 +0200 | zincy | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Ping timeout: 264 seconds) |
2023-05-27 00:49:33 +0200 | emmanuelux_ | (~emmanuelu@user/emmanuelux) |
2023-05-27 00:50:45 +0200 | gmg | (~user@user/gehmehgeh) |
2023-05-27 00:52:16 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Ping timeout: 248 seconds) |
2023-05-27 00:57:07 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2023-05-27 01:02:48 +0200 | kluk | (~arrowhead@cpe-74-66-76-151.nyc.res.rr.com) |
2023-05-27 01:06:49 +0200 | Nosrep | (~Nosrep@user/nosrep) (Remote host closed the connection) |
2023-05-27 01:12:49 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-27 01:15:03 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) |
2023-05-27 01:16:47 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2023-05-27 01:17:03 +0200 | <ghostbuster> | ok back to where I was on tuesday |
2023-05-27 01:19:30 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 01:23:01 +0200 | mauke_ | (~mauke@user/mauke) |
2023-05-27 01:23:07 +0200 | ubert | (~Thunderbi@p200300ecdf000282dd9d478f6a8ca7b2.dip0.t-ipconnect.de) |
2023-05-27 01:23:58 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 265 seconds) |
2023-05-27 01:24:31 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 240 seconds) |
2023-05-27 01:24:31 +0200 | mauke_ | mauke |
2023-05-27 01:25:08 +0200 | acidjnk | (~acidjnk@p200300d6e7072f24316225cd2ab6c884.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-05-27 01:33:08 +0200 | ubert | (~Thunderbi@p200300ecdf000282dd9d478f6a8ca7b2.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-05-27 01:42:27 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2023-05-27 01:46:08 +0200 | dtman34 | (~dtman34@76.156.89.180) (Ping timeout: 240 seconds) |
2023-05-27 01:48:55 +0200 | elmklod | (~Elm@94.25.164.113) (Quit: Leaving) |
2023-05-27 01:50:10 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-27 01:52:54 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-27 01:53:51 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-05-27 01:54:28 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-27 01:57:28 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-05-27 02:00:35 +0200 | bratwurst | (~dfadsva@2604:3d09:207f:f650::9c24) |
2023-05-27 02:02:45 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 02:02:59 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-05-27 02:04:00 +0200 | <bratwurst> | so i'm looking at a function from v4l2 called withFrame. it takes a function '(Ptr a -> Int -> IO b)' |
2023-05-27 02:04:07 +0200 | califax | (~califax@user/califx) |
2023-05-27 02:04:16 +0200 | <bratwurst> | my question is what would i use for a? |
2023-05-27 02:04:32 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-05-27 02:04:55 +0200 | <bratwurst> | i don't know where to find examples of people using the v4l2 library so I'm confused as to how things work here |
2023-05-27 02:05:43 +0200 | <bratwurst> | it calls a function v4l2_read which has type 'CInt -> Ptr a -> CSize -> IO CInt' |
2023-05-27 02:06:07 +0200 | <bratwurst> | so i would use a c-like type? |
2023-05-27 02:06:45 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 02:13:35 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-05-27 02:19:20 +0200 | pavonia | (~user@user/siracusa) |
2023-05-27 02:19:36 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-27 02:19:36 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-27 02:19:36 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-27 02:23:08 +0200 | kriity | (~kriity@c-76-155-235-153.hsd1.co.comcast.net) |
2023-05-27 02:28:06 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!) |
2023-05-27 02:28:30 +0200 | <c_wraith> | bratwurst: that looks like it'd be a void* in C |
2023-05-27 02:29:35 +0200 | abrantesasf | (~abrantesa@177.137.232.92) (Ping timeout: 240 seconds) |
2023-05-27 02:30:00 +0200 | abrantesasf | (~abrantesa@177.137.232.90) |
2023-05-27 02:31:57 +0200 | <c_wraith> | bratwurst: looking at the source... I have no idea why that's unbounded. It looks like it expects you to know what the memory layout for that ImageFormat is, and use it correctly. That's a basically untyped interface. Not very haskell-like at all. |
2023-05-27 02:32:13 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 02:33:27 +0200 | dtman34 | (~dtman34@2601:447:d000:93c9:e022:89b6:5591:cbde) |
2023-05-27 02:34:09 +0200 | kriity | (~kriity@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Client closed) |
2023-05-27 02:36:08 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 02:37:01 +0200 | <c_wraith> | bratwurst: so the `Ptr a' value is a buffer containing the captured image data. The Int is the size of the buffer. You can treat the buffer as any type you like, but things like Word8 seem to be the most primitive interface |
2023-05-27 02:38:40 +0200 | Nosrep | (~Nosrep@user/nosrep) |
2023-05-27 02:39:35 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds) |
2023-05-27 02:40:34 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-27 02:46:46 +0200 | <bratwurst> | so i have to figure out what format the buffer will have and go from there. ok thank you that helps |
2023-05-27 02:53:21 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 02:57:49 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 256 seconds) |
2023-05-27 03:00:16 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 248 seconds) |
2023-05-27 03:10:21 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-05-27 03:14:05 +0200 | jero98772 | (~jero98772@190.158.28.80) |
2023-05-27 03:16:25 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 03:16:32 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-05-27 03:18:31 +0200 | abrantesasf | (~abrantesa@177.137.232.90) (Remote host closed the connection) |
2023-05-27 03:21:35 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 03:27:07 +0200 | use-value1 | (~Thunderbi@2a00:23c6:8a03:2f01:ddaa:9bff:1a38:a342) |
2023-05-27 03:27:42 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:2dc5:45f3:ebf7:b99a) (Ping timeout: 265 seconds) |
2023-05-27 03:27:42 +0200 | use-value1 | use-value |
2023-05-27 03:29:50 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 03:30:23 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-05-27 03:32:10 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-27 03:34:01 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 03:34:56 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2023-05-27 03:35:43 +0200 | koz_ | (~koz@121.99.240.58) |
2023-05-27 03:35:44 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2023-05-27 03:35:44 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
2023-05-27 03:36:07 +0200 | Cheery_ | (~cheery@server-239-7.tentacle.cloud) |
2023-05-27 03:36:09 +0200 | stilgart | (~Christoph@chezlefab.net) |
2023-05-27 03:36:16 +0200 | barrucad1 | (~barrucadu@carcosa.barrucadu.co.uk) |
2023-05-27 03:36:19 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-05-27 03:36:19 +0200 | leeb- | (~leeb@tk2-243-31079.vs.sakura.ne.jp) |
2023-05-27 03:36:30 +0200 | dfordvm | (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) |
2023-05-27 03:37:19 +0200 | int-e_ | (~noone@int-e.eu) |
2023-05-27 03:37:27 +0200 | bah_ | (~bah@l1.tel) |
2023-05-27 03:37:35 +0200 | int-e | (~noone@int-e.eu) (Killed (NickServ (GHOST command used by int-e_))) |
2023-05-27 03:37:45 +0200 | int-e_ | int-e |
2023-05-27 03:37:55 +0200 | Hecate_ | (~mariposa@user/hecate) |
2023-05-27 03:37:57 +0200 | alpm | (~alp@user/alp) |
2023-05-27 03:38:40 +0200 | mcglk | (~mcglk@131.191.19.145) (Ping timeout: 248 seconds) |
2023-05-27 03:39:27 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-05-27 03:40:53 +0200 | mcglk | (~mcglk@131.191.19.145) |
2023-05-27 03:42:58 +0200 | lav | (~pi@wikipedia/maddy-from-celeste) (*.net *.split) |
2023-05-27 03:42:58 +0200 | canta1 | (~canta@cvm0.d5k.one) (*.net *.split) |
2023-05-27 03:42:58 +0200 | dfordivam1 | (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (*.net *.split) |
2023-05-27 03:42:58 +0200 | ridcully_ | (~ridcully@p57b52f2c.dip0.t-ipconnect.de) (*.net *.split) |
2023-05-27 03:42:58 +0200 | barrucadu | (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split) |
2023-05-27 03:42:58 +0200 | meejah | (~meejah@rutas.meejah.ca) (*.net *.split) |
2023-05-27 03:42:58 +0200 | adium | (adium@user/adium) (*.net *.split) |
2023-05-27 03:42:58 +0200 | heath1 | (~heath@user/heath) (*.net *.split) |
2023-05-27 03:42:58 +0200 | noctux1 | (vBYKluURgE@karif.server-speed.net) (*.net *.split) |
2023-05-27 03:42:58 +0200 | Cheery | (~cheery@server-239-7.tentacle.cloud) (*.net *.split) |
2023-05-27 03:42:58 +0200 | stilgart_ | (~Christoph@chezlefab.net) (*.net *.split) |
2023-05-27 03:42:58 +0200 | lyxia | (~lyxia@poisson.chat) (*.net *.split) |
2023-05-27 03:42:58 +0200 | koz | (~koz@121.99.240.58) (*.net *.split) |
2023-05-27 03:42:58 +0200 | andjjj23 | (~irc@107.170.228.47) (*.net *.split) |
2023-05-27 03:42:58 +0200 | mjacob | (~mjacob@adrastea.uberspace.de) (*.net *.split) |
2023-05-27 03:42:58 +0200 | xerox | (~edi@user/edi) (*.net *.split) |
2023-05-27 03:42:58 +0200 | kosmikus | (~kosmikus@nullzig.kosmikus.org) (*.net *.split) |
2023-05-27 03:42:58 +0200 | user___ | (~user@162.255.84.96) (*.net *.split) |
2023-05-27 03:42:58 +0200 | bcoppens | (~bartcopp@vpn2.bartcoppens.be) (*.net *.split) |
2023-05-27 03:42:58 +0200 | alp | (~alp@user/alp) (*.net *.split) |
2023-05-27 03:42:58 +0200 | opqdonut | (opqdonut@pseudo.fixme.fi) (*.net *.split) |
2023-05-27 03:42:58 +0200 | bah | (~bah@l1.tel) (*.net *.split) |
2023-05-27 03:42:58 +0200 | leeb | (~leeb@tk2-243-31079.vs.sakura.ne.jp) (*.net *.split) |
2023-05-27 03:42:58 +0200 | bsima | (~bsima@143.198.118.179) (*.net *.split) |
2023-05-27 03:42:58 +0200 | Hecate | (~mariposa@user/hecate) (*.net *.split) |
2023-05-27 03:42:59 +0200 | leeb- | leeb |
2023-05-27 03:44:28 +0200 | bratwurst | (~dfadsva@2604:3d09:207f:f650::9c24) (Ping timeout: 240 seconds) |
2023-05-27 03:47:32 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-05-27 03:48:04 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-05-27 03:48:14 +0200 | lav | (~pi@wikipedia/maddy-from-celeste) |
2023-05-27 03:48:14 +0200 | canta1 | (~canta@cvm0.d5k.one) |
2023-05-27 03:48:14 +0200 | ridcully_ | (~ridcully@p57b52f2c.dip0.t-ipconnect.de) |
2023-05-27 03:48:14 +0200 | meejah | (~meejah@rutas.meejah.ca) |
2023-05-27 03:48:14 +0200 | adium | (adium@user/adium) |
2023-05-27 03:48:14 +0200 | heath1 | (~heath@user/heath) |
2023-05-27 03:48:14 +0200 | noctux1 | (vBYKluURgE@karif.server-speed.net) |
2023-05-27 03:48:14 +0200 | lyxia | (~lyxia@poisson.chat) |
2023-05-27 03:48:14 +0200 | mjacob | (~mjacob@adrastea.uberspace.de) |
2023-05-27 03:48:14 +0200 | xerox | (~edi@user/edi) |
2023-05-27 03:48:14 +0200 | kosmikus | (~kosmikus@nullzig.kosmikus.org) |
2023-05-27 03:48:14 +0200 | user___ | (~user@162.255.84.96) |
2023-05-27 03:48:14 +0200 | bcoppens | (~bartcopp@vpn2.bartcoppens.be) |
2023-05-27 03:48:14 +0200 | opqdonut | (opqdonut@pseudo.fixme.fi) |
2023-05-27 03:48:15 +0200 | bsima | (~bsima@143.198.118.179) |
2023-05-27 03:49:08 +0200 | andjjj23 | (~irc@107.170.228.47) |
2023-05-27 03:49:10 +0200 | rodental | (~rodental@38.146.5.222) |
2023-05-27 03:50:55 +0200 | vandita | (~vandit@78-131-74-81.pool.digikabel.hu) (Ping timeout: 268 seconds) |
2023-05-27 03:51:56 +0200 | jludwig | (~justin@li657-110.members.linode.com) (Quit: ZNC - https://znc.in) |
2023-05-27 03:52:23 +0200 | vandita | (~vandit@94-21-48-62.pool.digikabel.hu) |
2023-05-27 03:52:55 +0200 | jludwig | (~justin@li657-110.members.linode.com) |
2023-05-27 03:56:23 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 240 seconds) |
2023-05-27 03:58:33 +0200 | xff0x | (~xff0x@178.255.149.135) |
2023-05-27 04:05:08 +0200 | td_ | (~td@i53870934.versanet.de) (Ping timeout: 240 seconds) |
2023-05-27 04:06:03 +0200 | jero98772 | (~jero98772@190.158.28.80) (Read error: Connection reset by peer) |
2023-05-27 04:07:09 +0200 | td_ | (~td@i5387090C.versanet.de) |
2023-05-27 04:15:07 +0200 | Guest56 | (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716) |
2023-05-27 04:17:04 +0200 | xff0x | (~xff0x@178.255.149.135) (Ping timeout: 248 seconds) |
2023-05-27 04:18:59 +0200 | xff0x | (~xff0x@2405:6580:b080:900:7537:a7d1:a60d:3e58) |
2023-05-27 04:20:55 +0200 | jjb | (~jjb@user/jjb) (Remote host closed the connection) |
2023-05-27 04:23:44 +0200 | jero98772 | (~jero98772@190.158.28.80) |
2023-05-27 04:26:04 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 04:30:47 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 264 seconds) |
2023-05-27 04:41:50 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) |
2023-05-27 04:43:20 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 04:45:20 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2023-05-27 04:45:48 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-05-27 04:47:28 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 04:50:08 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
2023-05-27 04:52:05 +0200 | Guest56 | (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716) (Quit: Client closed) |
2023-05-27 04:52:30 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-05-27 04:54:51 +0200 | <probie> | If I export a foreign C call from a module, can I import that same foreign call from a different module? (not at a machine where I can test right now, but perhaps someone knows off the top of their head) |
2023-05-27 04:58:42 +0200 | <EvanR> | if you couldn't import something, what is the point of exporting it |
2023-05-27 05:03:24 +0200 | td_ | (~td@i5387090C.versanet.de) (Ping timeout: 265 seconds) |
2023-05-27 05:04:33 +0200 | phma | (phma@2001:5b0:2172:dd28:7cbf:d1f6:57c5:3699) (Read error: Connection reset by peer) |
2023-05-27 05:04:58 +0200 | phma | (~phma@host-67-44-208-181.hnremote.net) |
2023-05-27 05:05:13 +0200 | td_ | (~td@i53870921.versanet.de) |
2023-05-27 05:07:09 +0200 | <int-e> | phma: Yes, you can. |
2023-05-27 05:11:09 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-86.du.xdsl.is) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-05-27 05:16:17 +0200 | <int-e> | probie: Err, that was for you. Note that it'll be rather expensive... calling the exported/imported function will spawn a new (bound) Haskell thread. |
2023-05-27 05:19:48 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2023-05-27 05:20:05 +0200 | jero98772 | (~jero98772@190.158.28.80) (Ping timeout: 240 seconds) |
2023-05-27 05:20:46 +0200 | <int-e> | probie: In fact, `forkOS` is essentially implemented through this kind of exporting and importing the same Haskell function: https://hackage.haskell.org/package/base-4.18.0.0/docs/src/Control.Concurrent.html#line-308 ff. |
2023-05-27 05:23:34 +0200 | <int-e> | Err, no? It's `runInBoundThread` that does that, hmm. |
2023-05-27 05:25:00 +0200 | <int-e> | So it would be true if `forkOS` were implemented in terms of `forkIO` and `runInBoundThread` but I guess that isn't done because it leaves an extra idle Haskell thread around. |
2023-05-27 05:27:36 +0200 | <phma> | int-e: I can what? |
2023-05-27 05:28:28 +0200 | <int-e> | phma: tab completion failed me |
2023-05-27 05:29:00 +0200 | <probie> | I think it may be unneeded for what I want to do. I want to be able to "call" a pinned ByteArray#. |
2023-05-27 05:30:39 +0200 | <probie> | I can probably just use byteArrayContents# and then wrap it in a FunPtr, along with adding the relevant foreign import ccall "dynamic" boilerplate |
2023-05-27 05:31:35 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2023-05-27 05:32:05 +0200 | <int-e> | Yeah that should work; I don't see the export/import dance helping you with that. |
2023-05-27 05:32:27 +0200 | jero98772 | (~jero98772@190.158.28.80) |
2023-05-27 05:33:14 +0200 | <int-e> | But as the `runInBoundThread` thing shows, it is an interesting little gadget nonetheless. |
2023-05-27 05:35:26 +0200 | <int-e> | Related... hs-plugins needs similar trickery. |
2023-05-27 05:41:35 +0200 | xff0x | (~xff0x@2405:6580:b080:900:7537:a7d1:a60d:3e58) (Ping timeout: 264 seconds) |
2023-05-27 05:41:59 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) |
2023-05-27 05:42:14 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 05:46:25 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 05:50:39 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-27 05:54:25 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-27 05:54:38 +0200 | RedNifre | (~RedNifre@dslb-088-068-116-161.088.068.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
2023-05-27 05:54:48 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-27 05:56:50 +0200 | rf | (~rf@2605:59c8:179c:f610:c3f5:9614:a40d:c16e) (Remote host closed the connection) |
2023-05-27 05:59:09 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
2023-05-27 06:07:28 +0200 | RedNifre | (~RedNifre@dslb-002-206-121-134.002.206.pools.vodafone-ip.de) |
2023-05-27 06:14:48 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 250 seconds) |
2023-05-27 06:28:05 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) |
2023-05-27 06:29:59 +0200 | jero98772 | (~jero98772@190.158.28.80) (Ping timeout: 240 seconds) |
2023-05-27 06:30:48 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2023-05-27 06:37:20 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 248 seconds) |
2023-05-27 06:38:06 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) |
2023-05-27 06:40:20 +0200 | opqdonut | (opqdonut@pseudo.fixme.fi) (Ping timeout: 260 seconds) |
2023-05-27 06:40:44 +0200 | opqdonut | (opqdonut@pseudo.fixme.fi) |
2023-05-27 06:40:46 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-27 06:44:08 +0200 | jero98772 | (~jero98772@190.158.28.80) |
2023-05-27 06:47:17 +0200 | shriekingnoise_ | (~shrieking@186.137.175.87) (Ping timeout: 268 seconds) |
2023-05-27 06:47:58 +0200 | trev | (~trev@user/trev) |
2023-05-27 06:48:10 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 250 seconds) |
2023-05-27 06:52:58 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) |
2023-05-27 07:00:46 +0200 | jakzale_ | (uid499518@user/jakzale) (Quit: Connection closed for inactivity) |
2023-05-27 07:02:41 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2023-05-27 07:07:09 +0200 | vandita | (~vandit@94-21-48-62.pool.digikabel.hu) (Ping timeout: 256 seconds) |
2023-05-27 07:09:01 +0200 | vandita | (~vandit@176-241-45-188.pool.digikabel.hu) |
2023-05-27 07:13:01 +0200 | mei | (~mei@user/mei) (Quit: mei) |
2023-05-27 07:16:30 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 07:17:57 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-05-27 07:18:04 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-05-27 07:19:48 +0200 | shapr | (~user@2600:1700:c640:3100:55f:2555:501d:44ae) (Ping timeout: 240 seconds) |
2023-05-27 07:21:12 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 268 seconds) |
2023-05-27 07:25:01 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 240 seconds) |
2023-05-27 07:36:08 +0200 | <sm> | I see I used https://hackage.haskell.org/package/base-prelude once, trying to reduce import boilerplate. It tries to provide as much of base as possible with a single import (plus a line disabling Prelude). I have questions two: |
2023-05-27 07:36:08 +0200 | <sm> | 1. is there a compile or run time performance issue with having so many things imported to namespace ? |
2023-05-27 07:36:08 +0200 | <sm> | 2. relude seems more popular, but doesn't seem to provide the low-import-noise benefit, as it is divided into many modules - true ? |
2023-05-27 07:36:45 +0200 | <sm> | 3. any other prelude you'd recommend for reducing import noise ? |
2023-05-27 07:39:59 +0200 | jero98772 | (~jero98772@190.158.28.80) (Ping timeout: 240 seconds) |
2023-05-27 07:43:40 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 07:47:34 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Quit: leaving) |
2023-05-27 07:47:45 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 07:48:08 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2023-05-27 07:49:10 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-05-27 07:52:17 +0200 | alecs | (~alecs@151.82.2.124) |
2023-05-27 07:53:59 +0200 | jero98772 | (~jero98772@190.158.28.80) |
2023-05-27 08:03:19 +0200 | <probie> | At least in older versions of GHC, I used to get better code size when I explicitly imported only the prelude functions/types I needed. I also vaguely remember there being a way to make GHC split out each function into a separate object file which mitigates this (at the cost of higher compile time) |
2023-05-27 08:06:06 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2023-05-27 08:12:39 +0200 | jinsun__ | (~jinsun@user/jinsun) |
2023-05-27 08:12:39 +0200 | jinsun | Guest1374 |
2023-05-27 08:12:39 +0200 | Guest1374 | (~jinsun@user/jinsun) (Killed (molybdenum.libera.chat (Nickname regained by services))) |
2023-05-27 08:12:39 +0200 | jinsun__ | jinsun |
2023-05-27 08:12:49 +0200 | <geekosaur> | -fsplit-objs is deprecated, because -fsplit-sections is better and faster |
2023-05-27 08:13:02 +0200 | <geekosaur> | (on platforms which support it) |
2023-05-27 08:13:19 +0200 | <geekosaur> | sorry, no -f, just -split-{objs,sections} |
2023-05-27 08:19:29 +0200 | <sm> | I converted this script from base-prelude to relude. relude appears to provide more, since it has a dozen deps rather than just base, but in fact it seems to provide less of the basic stuff. |
2023-05-27 08:19:29 +0200 | <sm> | This: import "base-prelude" BasePrelude |
2023-05-27 08:19:36 +0200 | <sm> | became this:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/d1469b8128ecf6933b644d4494874cb871dd…>) |
2023-05-27 08:23:58 +0200 | <sm> | it encouraged me to replace locale-dependent readFile' with a more explicit decodeUtf8 <$> readFileBS.. which I guess is positive |
2023-05-27 08:24:44 +0200 | <sm> | also forced me to add a bunch of toString ... toText if I want to work with Strings |
2023-05-27 08:27:05 +0200 | <sm> | maybe you need base-prelude + relude if you want a really batteries-included setup |
2023-05-27 08:34:06 +0200 | falafel | (~falafel@2603-8000-d700-115c-375f-6e24-bf15-2487.res6.spectrum.com) |
2023-05-27 08:36:28 +0200 | alecs | (~alecs@151.82.2.124) (Ping timeout: 240 seconds) |
2023-05-27 08:38:36 +0200 | alecs | (~alecs@151.36.175.147) |
2023-05-27 08:40:56 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2023-05-27 08:41:54 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-05-27 08:42:21 +0200 | mei | (~mei@user/mei) |
2023-05-27 08:47:19 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2023-05-27 08:47:23 +0200 | acidjnk | (~acidjnk@p200300d6e7072f96316225cd2ab6c884.dip0.t-ipconnect.de) |
2023-05-27 08:50:01 +0200 | jero98772 | (~jero98772@190.158.28.80) (Ping timeout: 240 seconds) |
2023-05-27 08:51:34 +0200 | mcglk | (~mcglk@131.191.19.145) (Read error: Connection reset by peer) |
2023-05-27 08:52:51 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 08:53:43 +0200 | machinedgod | (~machinedg@46.188.225.66) |
2023-05-27 08:54:09 +0200 | mcglk | (~mcglk@131.191.19.145) |
2023-05-27 08:54:43 +0200 | kluk | (~arrowhead@cpe-74-66-76-151.nyc.res.rr.com) (Remote host closed the connection) |
2023-05-27 08:56:32 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2023-05-27 08:57:59 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 08:58:41 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-05-27 09:01:41 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 09:02:15 +0200 | jero98772 | (~jero98772@190.158.28.80) |
2023-05-27 09:03:51 +0200 | ubert | (~Thunderbi@p200300ecdf000282b84f8c5708931366.dip0.t-ipconnect.de) |
2023-05-27 09:06:22 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-05-27 09:07:23 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds) |
2023-05-27 09:10:41 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-05-27 09:11:11 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 09:12:29 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-05-27 09:12:39 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-05-27 09:27:28 +0200 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 248 seconds) |
2023-05-27 09:29:01 +0200 | elmklod | (~Elm@94.25.164.115) |
2023-05-27 09:29:24 +0200 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2023-05-27 09:31:28 +0200 | ubert | (~Thunderbi@p200300ecdf000282b84f8c5708931366.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-05-27 09:33:18 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) |
2023-05-27 09:43:10 +0200 | Hecate_ | Hecate |
2023-05-27 09:48:39 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2023-05-27 09:50:53 +0200 | oo_miguel | (~Thunderbi@77.252.47.84) |
2023-05-27 09:51:15 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-27 09:51:52 +0200 | ubert | (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de) |
2023-05-27 09:55:31 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-27 09:55:57 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-27 09:56:12 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-05-27 09:59:43 +0200 | oo_miguel | (~Thunderbi@77.252.47.84) (Quit: oo_miguel) |
2023-05-27 10:00:30 +0200 | oo_miguel | (~Thunderbi@77.252.47.84) |
2023-05-27 10:00:31 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-05-27 10:02:03 +0200 | CiaoSen | (~Jura@dynamic-046-114-221-062.46.114.pool.telefonica.de) |
2023-05-27 10:11:04 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) |
2023-05-27 10:13:59 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) |
2023-05-27 10:15:28 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) (Ping timeout: 248 seconds) |
2023-05-27 10:15:49 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-05-27 10:16:33 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-27 10:16:48 +0200 | machinedgod | (~machinedg@46.188.225.66) (Ping timeout: 240 seconds) |
2023-05-27 10:18:49 +0200 | kuribas | (~user@ptr-17d51emeqlp3mkf19tm.18120a2.ip6.access.telenet.be) |
2023-05-27 10:21:02 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-05-27 10:34:38 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2023-05-27 10:50:03 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-05-27 10:53:06 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-05-27 10:54:23 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2023-05-27 10:54:45 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
2023-05-27 10:54:47 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2023-05-27 10:57:13 +0200 | Lord_of_Life_ | Lord_of_Life |
2023-05-27 11:00:01 +0200 | luffy[m] | (~luffyinte@2001:470:69fc:105::3:4cd5) (Remote host closed the connection) |
2023-05-27 11:02:46 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2023-05-27 11:05:55 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-05-27 11:13:01 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) |
2023-05-27 11:15:16 +0200 | gmg | (~user@user/gehmehgeh) |
2023-05-27 11:22:28 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds) |
2023-05-27 11:25:36 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-05-27 11:31:13 +0200 | falafel | (~falafel@2603-8000-d700-115c-375f-6e24-bf15-2487.res6.spectrum.com) (Ping timeout: 256 seconds) |
2023-05-27 11:31:21 +0200 | alecs | (~alecs@151.36.175.147) (Read error: Connection reset by peer) |
2023-05-27 11:33:23 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
2023-05-27 11:33:25 +0200 | CiaoSen | (~Jura@dynamic-046-114-221-062.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
2023-05-27 11:36:57 +0200 | alecs | (~alecs@host-82-48-235-203.retail.telecomitalia.it) |
2023-05-27 11:43:40 +0200 | falafel | (~falafel@2603-8000-d700-115c-9f2e-bd7d-5866-de73.res6.spectrum.com) |
2023-05-27 11:44:04 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-05-27 11:46:31 +0200 | ub | (~Thunderbi@p548c91e0.dip0.t-ipconnect.de) |
2023-05-27 11:47:01 +0200 | ubert | (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-05-27 11:47:01 +0200 | ub | ubert |
2023-05-27 11:48:01 +0200 | falafel | (~falafel@2603-8000-d700-115c-9f2e-bd7d-5866-de73.res6.spectrum.com) (Ping timeout: 240 seconds) |
2023-05-27 11:58:31 +0200 | mechap | (~mechap@user/mechap) |
2023-05-27 12:16:38 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) |
2023-05-27 12:20:06 +0200 | zenstoic | (uid461840@id-461840.hampstead.irccloud.com) |
2023-05-27 12:22:16 +0200 | alecs | (~alecs@host-82-48-235-203.retail.telecomitalia.it) (Ping timeout: 250 seconds) |
2023-05-27 12:40:39 +0200 | machinedgod | (~machinedg@46.188.225.66) |
2023-05-27 12:46:35 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 256 seconds) |
2023-05-27 12:53:24 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 12:56:30 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-05-27 12:56:57 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-05-27 12:57:28 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 13:08:32 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-86.du.xdsl.is) |
2023-05-27 13:14:48 +0200 | machinedgod | (~machinedg@46.188.225.66) (Ping timeout: 240 seconds) |
2023-05-27 13:21:12 +0200 | barrucad1 | barrucadu |
2023-05-27 13:22:03 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 13:29:05 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 256 seconds) |
2023-05-27 13:32:36 +0200 | __monty__ | (~toonn@user/toonn) |
2023-05-27 13:38:27 +0200 | oblivious | (~oblivious@183.108.191.92.dynamic.jazztel.es) |
2023-05-27 13:40:04 +0200 | oblivious | (~oblivious@183.108.191.92.dynamic.jazztel.es) (Client Quit) |
2023-05-27 13:46:49 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 13:50:48 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 13:57:42 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-27 14:00:09 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-05-27 14:00:27 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-05-27 14:02:48 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
2023-05-27 14:10:55 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 14:13:59 +0200 | oo_miguel | (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds) |
2023-05-27 14:15:05 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 246 seconds) |
2023-05-27 14:18:59 +0200 | gruff | (uid459651@id-459651.lymington.irccloud.com) |
2023-05-27 14:26:49 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!) |
2023-05-27 14:31:13 +0200 | mechap | (~mechap@user/mechap) (Quit: WeeChat 3.8) |
2023-05-27 14:32:26 +0200 | <Profpatsch> | I have an Applicative validator/parser which is also Selective; I want to check if two of the inputs are the same; can I do that with just the Selective interface? |
2023-05-27 14:38:27 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-05-27 14:45:30 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) |
2023-05-27 14:46:11 +0200 | <ncf> | show some code |
2023-05-27 14:47:13 +0200 | <Profpatsch> | x = do { a <- get "a"; b <- get "b"; pure Foo{..} } |
2023-05-27 14:48:03 +0200 | <Profpatsch> | a and b should be the same; either of them may be returned, but the parser should fail with an error for "b" iff they are not the same |
2023-05-27 14:48:23 +0200 | <ncf> | guard (a == b) |
2023-05-27 14:48:37 +0200 | <Profpatsch> | It’s not Alternative |
2023-05-27 14:49:02 +0200 | <Profpatsch> | It’s Functor, Applicative and Selective |
2023-05-27 14:49:42 +0200 | <ncf> | how do you fail then? |
2023-05-27 14:49:55 +0200 | <Profpatsch> | In particular, every failing parser needs to have a reference to the field it is parsing, because the failure has to appear in the form field that caused the error |
2023-05-27 14:50:15 +0200 | <Profpatsch> | ncf: in Validation (Id, Error) a |
2023-05-27 14:50:30 +0200 | <Profpatsch> | via validation-selective |
2023-05-27 14:50:58 +0200 | <Profpatsch> | I feel like Selective should provide the ability, but I can also go this on foot I think |
2023-05-27 14:51:51 +0200 | mechap | (~mechap@user/mechap) |
2023-05-27 14:53:50 +0200 | mechap | (~mechap@user/mechap) (Client Quit) |
2023-05-27 14:54:27 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 14:56:02 +0200 | <[exa]> | Profpatsch: you might need to smuggle an Either there manually |
2023-05-27 14:56:45 +0200 | mechap | (~mechap@user/mechap) |
2023-05-27 14:57:36 +0200 | <ncf> | i still don't understand what this has to do with Selective. failureUnless (a == b) (yourFieldId, "boo") |
2023-05-27 14:58:25 +0200 | <Profpatsch> | a and b come from a Selective m |
2023-05-27 14:58:30 +0200 | <Profpatsch> | not monadic |
2023-05-27 14:59:32 +0200 | <Profpatsch> | [exa]: yeah, that’s my guess as well |
2023-05-27 15:00:42 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-4593-7814-42d6-7053.res6.spectrum.com) |
2023-05-27 15:01:44 +0200 | <Profpatsch> | Or I really need join anyway |
2023-05-27 15:01:45 +0200 | <[exa]> | Profpatsch: like, you can start with (==) <$> get "a" <*> get "b", then convert it to Either, and on that you can do the select |
2023-05-27 15:02:09 +0200 | <[Leary]> | `fromMaybeS (Failure err) do { a <- get "a"; b <- get "b"; pure $ guard (a == b) $> b }` perhaps? |
2023-05-27 15:02:10 +0200 | gurkenglas | (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 250 seconds) |
2023-05-27 15:02:38 +0200 | <Profpatsch> | But guard is Alternative, no? |
2023-05-27 15:02:44 +0200 | <[Leary]> | That's for Maybe. |
2023-05-27 15:02:49 +0200 | <Profpatsch> | Ah |
2023-05-27 15:03:11 +0200 | <[exa]> | Profpatsch: you generally don't need join unless you use the partial results to generate the shape of the computation that follows |
2023-05-27 15:03:37 +0200 | <Profpatsch> | [exa]: yeah, exactly that’s why I’m trying the Selective approach |
2023-05-27 15:05:00 +0200 | <[exa]> | maybe try to draft what result you want to get out, then smash _ in the middle and do the type tetris |
2023-05-27 15:06:20 +0200 | <Profpatsch> | [Leary]: I think that is getting real close; now I only have the remaining problem that I can’t expose a direct primitive to construct `Failure`, that should only fall out of trying to parse the field itself wtih `get` |
2023-05-27 15:08:25 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 15:13:31 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 240 seconds) |
2023-05-27 15:15:03 +0200 | vandita | (~vandit@176-241-45-188.pool.digikabel.hu) (Ping timeout: 256 seconds) |
2023-05-27 15:15:45 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) |
2023-05-27 15:16:29 +0200 | vandita | (~vandit@fibhost-66-106-96.fibernet.hu) |
2023-05-27 15:20:01 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) (Ping timeout: 240 seconds) |
2023-05-27 15:25:47 +0200 | <[exa]> | Profpatsch: btw, just that I understand the whole thing -- what is the effect that will be allowed to be skipped if the things are equal (or not equal)? |
2023-05-27 15:25:49 +0200 | acidjnk | (~acidjnk@p200300d6e7072f96316225cd2ab6c884.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2023-05-27 15:29:17 +0200 | <Profpatsch> | [exa]: Just (Failure (fieldId, errmsg)) |
2023-05-27 15:29:27 +0200 | <Profpatsch> | [exa]: Failure (fieldId, errmsg) |
2023-05-27 15:35:55 +0200 | SoF | (~skius@user/skius) (Quit: Ping timeout (120 seconds)) |
2023-05-27 15:36:45 +0200 | <Profpatsch> | Okay, I solved it “on foot” with your snippet [Leary], the code is not pretty but I think it kinda works |
2023-05-27 15:36:48 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds) |
2023-05-27 15:37:00 +0200 | <Profpatsch> | In particular the form is rendered correctly with the errors at the right places :) |
2023-05-27 15:37:13 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-05-27 15:37:24 +0200 | <ncf> | post? |
2023-05-27 15:37:37 +0200 | ncf | is still massively confused about the whole thing but is probably just being dense |
2023-05-27 15:39:09 +0200 | <[exa]> | oh that's for web forms? makes sense now |
2023-05-27 15:40:03 +0200 | <Profpatsch> | ncf: something like this: https://paste.tomsmeding.com/4RxpFDDj |
2023-05-27 15:40:48 +0200 | <Profpatsch> | [exa]: yeah, I’m trying to see how far I can go with this, digestive-functors is a bit much for my tastes |
2023-05-27 15:41:59 +0200 | <Profpatsch> | In particular, one should distinguish between programming errors (i.e. wrong field name) and user errors, hence the two different types composed together. |
2023-05-27 15:42:55 +0200 | CiaoSen | (~Jura@145.224.73.17) |
2023-05-27 15:48:12 +0200 | <[exa]> | Profpatsch: what would be wrong with: ((\a b -> if a == b then Right a else Left a) <$> get "a" <*> get "b") S.<*? Failure ["not same"] |
2023-05-27 15:48:20 +0200 | <[exa]> | (S is Control.Selective) |
2023-05-27 15:48:38 +0200 | <[exa]> | the failures from the gets propagate and prevent the comparison failure from triggering |
2023-05-27 15:48:40 +0200 | <Profpatsch> | [exa]: Is that the fromMaybeS just reformulated? |
2023-05-27 15:48:45 +0200 | <[exa]> | likely |
2023-05-27 15:49:18 +0200 | <[exa]> | ah yeah, good. :D |
2023-05-27 15:49:20 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-05-27 15:49:22 +0200 | <Profpatsch> | yeah pretty sure it is? I guess? |
2023-05-27 15:50:04 +0200 | <Profpatsch> | THe main issue I have is that I have to provide a function like failValidation :: f a |
2023-05-27 15:50:06 +0200 | <[exa]> | that explains the best shortcut for the abysmal-quality if there |
2023-05-27 15:50:57 +0200 | <[exa]> | Profpatsch: what's wrong with `failValidation x = Failure [x]` ? |
2023-05-27 15:51:35 +0200 | vandita | (~vandit@fibhost-66-106-96.fibernet.hu) (Ping timeout: 240 seconds) |
2023-05-27 15:51:44 +0200 | <Profpatsch> | [exa]: Ideally there’d be some way of saying “validate this field by looking at some other field, but put the error into this field”; I mean I guess that’s what I’m doing in `aEqB` |
2023-05-27 15:53:30 +0200 | vandita | (~vandit@92-249-141-141.pool.digikabel.hu) |
2023-05-27 15:53:39 +0200 | CiaoSen | (~Jura@145.224.73.17) (Ping timeout: 268 seconds) |
2023-05-27 15:54:12 +0200 | <Profpatsch> | It gets more complicated than that cause the multipart parser also supports files of course, in which case the form should re-populate the form value with the fielname I guess. |
2023-05-27 15:54:27 +0200 | <Profpatsch> | In other cases with the original `value` string |
2023-05-27 15:56:45 +0200 | <Profpatsch> | anyaway, next step is re-using these parsers for server-side validation after the fields lose focus |
2023-05-27 15:57:53 +0200 | <[exa]> | hm so that routing information on "where this error belongs" is now stored in the label there.. what about something like bifunctorish `first changeLabel` ? |
2023-05-27 15:59:49 +0200 | <Profpatsch> | [exa]: I don’t quite understand what you mean by that; the way I do it rn is that each form field html constuctor gets the whole list of errors and decides whether it should be displaying the error inputHtml :: Foldable f => FormField -> f (T2 "formFieldName" Text "error" Error) -> Html |
2023-05-27 16:00:05 +0200 | <ncf> | i feel like the easiest would be to pass a predicate (== compare) to field' |
2023-05-27 16:00:31 +0200 | <Profpatsch> | since FormField knows its own `name` |
2023-05-27 16:01:14 +0200 | <ncf> | hm but maybe you need Monad for that |
2023-05-27 16:02:25 +0200 | <[exa]> | Profpatsch: the interface would be like: displayTheErrorsAroundField @"asd" $ ...some validated stuff... |
2023-05-27 16:03:00 +0200 | <Profpatsch> | [exa]: yeah, I had something like this in mind I guess … |
2023-05-27 16:03:01 +0200 | <[exa]> | (for the validation, and later the html rendering may pick up the modified error locations) |
2023-05-27 16:04:51 +0200 | <[exa]> | Profpatsch: btw selective in this case will only allow you to sanely skip validations that are impossible e.g. because there isn't enough data... Maybe you might want to bake a custom combinator for this (something like `allS`) |
2023-05-27 16:06:09 +0200 | <[exa]> | as in: ifAllFieldsPresent ["a", "b", ...] $ \[a,b,...] -> if ... then Success ... else Failure ... |
2023-05-27 16:06:47 +0200 | <Profpatsch> | [exa]: ah you mean the fromMaybeS isn’t actually doing anything here? |
2023-05-27 16:07:18 +0200 | <[exa]> | it is only blocking the extra validation from firing (if others already failed) |
2023-05-27 16:07:25 +0200 | <Profpatsch> | hm, but it has to |
2023-05-27 16:07:44 +0200 | <Profpatsch> | As I said, I should probably go this on foot instead of via Selective :P |
2023-05-27 16:08:11 +0200 | <[exa]> | with normal validation the extra check would fail too, so you would have "passwords not same" as an error because it was transitively triggered by the "get" failure. |
2023-05-27 16:08:15 +0200 | <Profpatsch> | I haven’t yet found a case where using selective is nicer than adding custom combinator functions tbh. |
2023-05-27 16:09:04 +0200 | <[exa]> | like, this ain't bad, but requires some effort to make it look nice |
2023-05-27 16:11:54 +0200 | ryantrinkle | (~ryantrink@140.174.243.224) (Remote host closed the connection) |
2023-05-27 16:12:00 +0200 | <Profpatsch> | [exa]: it does seem to work though, if I say the second password field has to validate as an email, it will throw the email error, if I make it an email, it will throw the “have to be the same” error |
2023-05-27 16:12:16 +0200 | <Profpatsch> | I guess that’s not the right semantics though, ideally both errors would be collected at the same time hm |
2023-05-27 16:12:36 +0200 | <[exa]> | your may want an overall structure like: Result <$> get "field1" <* extraValidation1 <*> get "field2" <* extraValidation2; with extraValidationN things using the selective interface internally. The problem with applicatives/selectives is that you cannot send&re-use the values "around" easily as with full monads, which gets inconvenient esp. if you got used to monads |
2023-05-27 16:12:45 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-05-27 16:13:00 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-05-27 16:13:30 +0200 | <[exa]> | Profpatsch: for me it is collecting both errors if they both happen on the left side of the select (e.g., both fields are missing) |
2023-05-27 16:16:37 +0200 | <Profpatsch> | yeah, but it definitely can’t be a Monad, because otherwise there’s no way to recapture the original values entered into the form. |
2023-05-27 16:16:51 +0200 | <Profpatsch> | Hm, I guess it could be a best effort thing |
2023-05-27 16:17:40 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-27 16:19:05 +0200 | <Profpatsch> | oh lol, now that I think about it, that won’t work anyway, because it only collects the values of fields that were wrong, not the others. So maybe I need These anyway, which would give be back my Monad instance |
2023-05-27 16:21:46 +0200 | <[exa]> | Profpatsch: well Validation is about discarding the Success values (i.e., not having to produce them in the first place).... so maybe simply a different Selective would work |
2023-05-27 16:23:46 +0200 | <[exa]> | like, morphology of the thing you have here looks like WriterT Either, instead you might want an EitherT Writer |
2023-05-27 16:24:22 +0200 | hamzam3 | (~hamzam3@2a01:e0a:1ee:8c60:849e:cc8e:5242:786f) |
2023-05-27 16:24:23 +0200 | <[exa]> | spoiler: combining errors is hard. |
2023-05-27 16:25:22 +0200 | dsrt^ | (~dsrt@c-71-204-38-59.hsd1.ga.comcast.net) |
2023-05-27 16:26:56 +0200 | <Profpatsch> | A Map wrapper with a monoid insteance that is (<>) = Map.mergeWith (<>) should work |
2023-05-27 16:27:15 +0200 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-05-27 16:31:07 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 16:34:14 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-05-27 16:35:08 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 16:35:45 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-05-27 16:37:22 +0200 | gruff | (uid459651@id-459651.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-05-27 16:37:38 +0200 | ddellacosta | (~ddellacos@146.70.185.10) |
2023-05-27 16:40:20 +0200 | Guest56 | (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716) |
2023-05-27 16:51:15 +0200 | Guest56 | (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716) (Quit: Client closed) |
2023-05-27 17:01:39 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Remote host closed the connection) |
2023-05-27 17:07:58 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-05-27 17:08:53 +0200 | img | (~img@user/img) |
2023-05-27 17:13:25 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-27 17:14:48 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 17:15:52 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Remote host closed the connection) |
2023-05-27 17:16:56 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-27 17:19:59 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 268 seconds) |
2023-05-27 17:45:29 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Remote host closed the connection) |
2023-05-27 17:48:27 +0200 | gurkenglas | (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) |
2023-05-27 17:50:49 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) |
2023-05-27 17:54:21 +0200 | oo_miguel | (~Thunderbi@77.252.47.84) |
2023-05-27 17:56:20 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-4593-7814-42d6-7053.res6.spectrum.com) (Quit: ZZZzzz…) |
2023-05-27 17:57:30 +0200 | zenstoic | (uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-05-27 17:59:14 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-27 17:59:46 +0200 | alternateved | (~user@77-253-195-69.dynamic.inetia.pl) |
2023-05-27 18:02:52 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-05-27 18:03:48 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-05-27 18:05:07 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-27 18:05:41 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-05-27 18:13:17 +0200 | acidjnk | (~acidjnk@p200300d6e7072f9698fc7344e9503bb5.dip0.t-ipconnect.de) |
2023-05-27 18:16:41 +0200 | <jade[m]> | in regards to typeclass instances I wonder whether there could be a better way to handle the cases where there are multiple "correct" instances. |
2023-05-27 18:16:41 +0200 | <jade[m]> | mainly the `Sum` or `Product` monoid come to mind. |
2023-05-27 18:16:41 +0200 | <jade[m]> | We need a wrapper for each because we cannot just say |
2023-05-27 18:16:41 +0200 | <jade[m]> | ...(truncated) |
2023-05-27 18:17:29 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 18:21:35 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 18:22:57 +0200 | <monochrom> | See my https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html >:) |
2023-05-27 18:24:49 +0200 | <jade[m]> | that's amazing and nearly what I'm looking for :D |
2023-05-27 18:26:02 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-05-27 18:27:21 +0200 | alternat` | (~user@77-253-195-69.dynamic.inetia.pl) |
2023-05-27 18:34:19 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-05-27 18:34:50 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) (Remote host closed the connection) |
2023-05-27 18:38:03 +0200 | alternat` | (~user@77-253-195-69.dynamic.inetia.pl) (Remote host closed the connection) |
2023-05-27 18:38:03 +0200 | alternateved | (~user@77-253-195-69.dynamic.inetia.pl) (Remote host closed the connection) |
2023-05-27 18:39:18 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) (Remote host closed the connection) |
2023-05-27 18:40:20 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-05-27 18:40:57 +0200 | alternateved | (~user@77-253-195-69.dynamic.inetia.pl) |
2023-05-27 18:42:45 +0200 | InvalidArgument | (~fabrizio@2803:9800:98c4:76ad:983c:b21b:f36f:a8c9) |
2023-05-27 18:47:02 +0200 | alternateved | (~user@77-253-195-69.dynamic.inetia.pl) (Remote host closed the connection) |
2023-05-27 18:50:28 +0200 | econo | (uid147250@user/econo) |
2023-05-27 18:51:29 +0200 | Pickchea | (~private@user/pickchea) |
2023-05-27 18:52:45 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) |
2023-05-27 18:55:59 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 264 seconds) |
2023-05-27 18:57:22 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2023-05-27 18:57:45 +0200 | gurkenglas | (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
2023-05-27 19:00:30 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 19:06:55 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-27 19:07:04 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:ddaa:9bff:1a38:a342) (Remote host closed the connection) |
2023-05-27 19:07:23 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:ddaa:9bff:1a38:a342) |
2023-05-27 19:07:57 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 256 seconds) |
2023-05-27 19:08:06 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-05-27 19:08:32 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) |
2023-05-27 19:08:36 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-05-27 19:10:45 +0200 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 240 seconds) |
2023-05-27 19:11:53 +0200 | coot_ | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-27 19:14:35 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 264 seconds) |
2023-05-27 19:14:36 +0200 | coot_ | coot |
2023-05-27 19:16:18 +0200 | robobub | (uid248673@2a03:5180:f:5::3:cb61) |
2023-05-27 19:20:44 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-27 19:20:44 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-27 19:20:44 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-27 19:20:58 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) |
2023-05-27 19:23:54 +0200 | gurkenglas | (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) |
2023-05-27 19:27:35 +0200 | InvalidArgument | (~fabrizio@2803:9800:98c4:76ad:983c:b21b:f36f:a8c9) (Leaving) |
2023-05-27 19:33:27 +0200 | hippoid | (~hippoid@user/hippoid) |
2023-05-27 19:35:21 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-05-27 19:36:32 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 248 seconds) |
2023-05-27 19:39:53 +0200 | kuribas | (~user@ptr-17d51emeqlp3mkf19tm.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2023-05-27 19:42:40 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-05-27 19:52:31 +0200 | taupiqueur | (~taupiqueu@2a02-842a-8180-4601-1912-96d1-9f83-aa24.rev.sfr.net) |
2023-05-27 19:56:04 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-1912-96d1-9f83-aa24.rev.sfr.net) |
2023-05-27 19:59:57 +0200 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2023-05-27 20:00:47 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2023-05-27 20:01:01 +0200 | vandita | (~vandit@92-249-141-141.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2023-05-27 20:03:00 +0200 | vandita | (~vandit@178-164-188-2.pool.digikabel.hu) |
2023-05-27 20:03:19 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-27 20:03:19 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-27 20:03:19 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-27 20:08:36 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-05-27 20:08:41 +0200 | machinedgod | (~machinedg@31.217.42.201) |
2023-05-27 20:09:56 +0200 | hippoid | (~hippoid@user/hippoid) (Quit: WeeChat 3.8) |
2023-05-27 20:12:59 +0200 | __monty__ | (~toonn@user/toonn) |
2023-05-27 20:15:07 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-05-27 20:28:32 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2023-05-27 20:31:45 +0200 | zmt00 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
2023-05-27 20:31:48 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2023-05-27 20:34:35 +0200 | michalz | (~michalz@185.246.204.90) |
2023-05-27 20:35:51 +0200 | caryhartline | (~caryhartl@168.182.58.169) |
2023-05-27 20:39:35 +0200 | <hololeap> | I'm working on some code that uses `fmap` instead of <$> and I'm wondering if the latter didn't exist at some point or if these people just like to write odd code |
2023-05-27 20:39:47 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 20:39:56 +0200 | <hololeap> | literally `fmap` as an infix |
2023-05-27 20:40:16 +0200 | <hololeap> | they also use a lot of snake_case >:( |
2023-05-27 20:41:34 +0200 | <geekosaur> | <$> is fairly recent, yes |
2023-05-27 20:41:46 +0200 | <geekosaur> | came in with Applicative |
2023-05-27 20:42:05 +0200 | <hololeap> | ok, that makes more sense, then |
2023-05-27 20:42:19 +0200 | <mauke> | snake_case is morally correct |
2023-05-27 20:42:31 +0200 | <hololeap> | ikr |
2023-05-27 20:43:34 +0200 | <hololeap> | hlint doesn't like it |
2023-05-27 20:44:17 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 256 seconds) |
2023-05-27 20:44:25 +0200 | <mauke> | what does it know? "hlint" isn't even a word |
2023-05-27 20:44:50 +0200 | <monochrom> | It should have been h_lint, too. >:) |
2023-05-27 20:45:23 +0200 | <monochrom> | We should also revive Oleg case. Example: oleg'case |
2023-05-27 20:45:31 +0200 | <yushyin> | h-lint, kebab-case! |
2023-05-27 20:45:57 +0200 | <monochrom> | yeah I like kebab-case in Scheme. |
2023-05-27 20:46:22 +0200 | <mauke> | docker-compose |
2023-05-27 20:46:25 +0200 | <hololeap> | No instance for (Num lint) arising from a use of '-' |
2023-05-27 20:46:41 +0200 | <monochrom> | except when it's call-with-current-continuation. Then I prefer call/cc. |
2023-05-27 20:47:04 +0200 | <mauke> | call/without/current/continuation |
2023-05-27 20:47:10 +0200 | <mauke> | call-w/o-cc |
2023-05-27 20:47:19 +0200 | <monochrom> | haha |
2023-05-27 20:49:31 +0200 | Nosrep | (~Nosrep@user/nosrep) (Remote host closed the connection) |
2023-05-27 20:54:35 +0200 | machinedgod | (~machinedg@31.217.42.201) (Ping timeout: 268 seconds) |
2023-05-27 20:56:19 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-05-27 20:57:21 +0200 | <hololeap> | where is the function to look up the full path of an exe in PATH, sort of like the 'which' command? |
2023-05-27 20:57:41 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8) |
2023-05-27 20:57:49 +0200 | Pickchea | (~private@user/pickchea) |
2023-05-27 20:58:06 +0200 | zmt00 | (~zmt00@user/zmt00) |
2023-05-27 21:00:46 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2023-05-27 21:01:39 +0200 | rburkholder | (~blurb@96.45.2.121) |
2023-05-27 21:03:50 +0200 | offtherock | (~blurb@96.45.2.121) (Ping timeout: 268 seconds) |
2023-05-27 21:03:51 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 21:04:50 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-05-27 21:08:01 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 21:09:05 +0200 | offtherock | (~blurb@96.45.2.121) |
2023-05-27 21:11:31 +0200 | rburkholder | (~blurb@96.45.2.121) (Ping timeout: 240 seconds) |
2023-05-27 21:11:42 +0200 | <ncf> | simplest is probably to shell out and call command -v ? |
2023-05-27 21:14:53 +0200 | <sm> | maybe useful: |
2023-05-27 21:14:54 +0200 | <sm> | likelyExecutablesInPath = do |
2023-05-27 21:14:54 +0200 | <sm> | pathdirs <- splitOneOf "[:;]" `fmap` getEnvSafe "PATH" |
2023-05-27 21:14:54 +0200 | <sm> | pathfiles <- concat `fmap` mapM getDirectoryContentsSafe pathdirs |
2023-05-27 21:14:54 +0200 | <sm> | return $ nubSort pathfiles |
2023-05-27 21:16:48 +0200 | <hololeap> | I thought there was a simple one in base :/ |
2023-05-27 21:16:58 +0200 | <mauke> | why split on [ |
2023-05-27 21:17:27 +0200 | <yushyin> | hololeap: Shelly and Turtle both have a which function, but that's not base :/ |
2023-05-27 21:17:46 +0200 | <sm> | mauke that is.. a very good question |
2023-05-27 21:18:11 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds) |
2023-05-27 21:18:13 +0200 | <mauke> | have you been smoking too much sed? |
2023-05-27 21:18:14 +0200 | <monochrom> | System.Directory.findExecutable :) |
2023-05-27 21:18:25 +0200 | <monochrom> | and the plural version |
2023-05-27 21:18:38 +0200 | <geekosaur> | filepath has stuff to split PATH up properly |
2023-05-27 21:18:47 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-05-27 21:18:47 +0200 | <geekosaur> | (not base, but bootlib) |
2023-05-27 21:19:09 +0200 | <sm> | yes.. thanks! And yes, I bet there is newer stuff in directory package |
2023-05-27 21:19:50 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8) |
2023-05-27 21:20:57 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 21:22:25 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-27 21:22:27 +0200 | <monochrom> | (pun intended dad joke) In general, System.Directory should be on your default search path for this kind of things. >:D |
2023-05-27 21:23:03 +0200 | <ncf> | why split on ; also |
2023-05-27 21:23:10 +0200 | <geekosaur> | windowes |
2023-05-27 21:23:14 +0200 | <mauke> | quick and dirty windows compatibility |
2023-05-27 21:23:17 +0200 | <ncf> | oh god |
2023-05-27 21:23:27 +0200 | <mauke> | except it'll break on windows anyway |
2023-05-27 21:23:35 +0200 | <mauke> | because C:\lol\whatever will be split on : |
2023-05-27 21:24:15 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2023-05-27 21:24:18 +0200 | <sm> | I think I wrote this when System.Directory was less featureful |
2023-05-27 21:25:08 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 21:26:17 +0200 | <sm> | ack.. I may have to break down and rewrite/retest. Where is a windows machine when you need one |
2023-05-27 21:26:28 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-27 21:26:54 +0200 | <geekosaur> | waiting for you to plug in a credit card for the license |
2023-05-27 21:27:53 +0200 | <sm> | actually I think I do have a working windows 7 vm here at least |
2023-05-27 21:27:56 +0200 | <mauke> | the windows xp license code generator has been cracked |
2023-05-27 21:28:04 +0200 | <mauke> | so that's an option :-) |
2023-05-27 21:28:25 +0200 | <sm> | I think MS provides free vm images of (some version of) the older windows |
2023-05-27 21:28:55 +0200 | <mauke> | also, github actions |
2023-05-27 21:29:28 +0200 | <sm> | indeed, but you really need an interactive one sometimes |
2023-05-27 21:31:11 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-27 21:35:35 +0200 | manwithluck | (manwithluc@hoeven.dossingday.ml) (Remote host closed the connection) |
2023-05-27 21:36:01 +0200 | monoidal | (~monoidal@2001:861:3f42:1b60:b35a:bce5:8722:1910) |
2023-05-27 21:36:33 +0200 | <sm> | oh hmm.. "Your activation period has expired.". Maybe those images are time limited. |
2023-05-27 21:37:19 +0200 | <sm> | oh well, I think no windows user cares about this, maybe I shouldn't either |
2023-05-27 21:38:20 +0200 | manwithluck | (manwithluc@hoeven.dossingday.ml) |
2023-05-27 21:38:45 +0200 | <sm> | oh.. but then it lets me in anyway. |
2023-05-27 21:39:51 +0200 | <sm> | nice.. seems I have a working windows 11 VM too. |
2023-05-27 21:40:57 +0200 | <tomsmeding> | in my experience windows complaining about activation is just that -- complaining |
2023-05-27 21:41:17 +0200 | <tomsmeding> | it disables some customisation settings iirc, stuff like desktop background and other personalisation settings |
2023-05-27 21:41:19 +0200 | kluk | (~arrowhead@cpe-74-66-76-151.nyc.res.rr.com) |
2023-05-27 21:43:01 +0200 | <hololeap> | monochrom: thank you! |
2023-05-27 21:43:08 +0200 | <hololeap> | not base but close enough |
2023-05-27 21:43:48 +0200 | <sm> | wow.. I can run an intel windows binary in this arm version of windows. I guess it has some apple-rosetta-like translation |
2023-05-27 21:45:02 +0200 | <sm> | though a minute later the vm crashed. |
2023-05-27 21:46:11 +0200 | <monochrom> | Just like what happened when my students tried virtualboxing ubuntu on M1 :D |
2023-05-27 21:53:22 +0200 | <hololeap> | monochrom: I think the reason why I didn't find it when I first looked in there is that it's catagorized under "existence tests" |
2023-05-27 21:53:46 +0200 | <monochrom> | Ah |
2023-05-27 21:53:59 +0200 | <monochrom> | ctrl-f is better :) |
2023-05-27 21:54:14 +0200 | <hololeap> | I did that but I searched for "path" :( |
2023-05-27 21:54:18 +0200 | monoidal | (~monoidal@2001:861:3f42:1b60:b35a:bce5:8722:1910) (Quit: Client closed) |
2023-05-27 21:54:26 +0200 | <monochrom> | Ah |
2023-05-27 21:54:29 +0200 | <hololeap> | (I couldn't remember then name of it) |
2023-05-27 21:54:30 +0200 | <hololeap> | haha |
2023-05-27 21:54:46 +0200 | <monochrom> | This is why Searle's Chinese Room argument breaks. |
2023-05-27 21:55:04 +0200 | monoidal | (~monoidal@2001:861:3f42:1b60:93b1:31be:ae42:8ec9) |
2023-05-27 21:55:06 +0200 | <monochrom> | There is an smbc for that. :) |
2023-05-27 21:55:29 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-05-27 21:58:01 +0200 | <monochrom> | https://www.smbc-comics.com/comic/robot-john-searle |
2023-05-27 22:00:38 +0200 | <monochrom> | Complexity-wise if you can find the answer in time proportional to the question length, as opposed to the database size which is infinite anyway, then you can't be said to be "just dumb searching". |
2023-05-27 22:00:44 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-27 22:01:24 +0200 | <monochrom> | Equivalently, just because the database is right in front of you, doesn't mean you know how to search it usefully. :) |
2023-05-27 22:05:25 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-05-27 22:06:19 +0200 | <mauke> | https://blog.plover.com/prog/loaded-uzi.html |
2023-05-27 22:13:47 +0200 | cheater_ | (~Username@user/cheater) |
2023-05-27 22:14:23 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2023-05-27 22:14:31 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-05-27 22:15:59 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-05-27 22:16:03 +0200 | cheater_ | cheater |
2023-05-27 22:17:10 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2023-05-27 22:19:56 +0200 | <Profpatsch> | [exa]: Funnily enough I think the Applicative semantics I actually need for the form thingy is neither Valiadtion nor Either, but rather ((,) (These Error OriginalValue)) or something along those lines |
2023-05-27 22:19:57 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2023-05-27 22:20:04 +0200 | <Profpatsch> | A kingdom for Deriving Via … oh wait, it exists |
2023-05-27 22:20:26 +0200 | <Profpatsch> | the future is bright |
2023-05-27 22:20:36 +0200 | <Profpatsch> | the presence is bright :P |
2023-05-27 22:21:21 +0200 | <[exa]> | Profpatsch: yap (,) is Writer... :D |
2023-05-27 22:21:41 +0200 | ub | (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de) |
2023-05-27 22:21:51 +0200 | <geekosaur> | this is starting to look like Chronicle |
2023-05-27 22:21:52 +0200 | ubert | (~Thunderbi@p548c91e0.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2023-05-27 22:21:52 +0200 | ub | ubert |
2023-05-27 22:23:07 +0200 | <Profpatsch> | [exa]: I don’t think it is? Does the Applicative instance for (x,) have the same space leaks? |
2023-05-27 22:23:34 +0200 | mechap | (~mechap@user/mechap) (Quit: WeeChat 3.8) |
2023-05-27 22:25:39 +0200 | gentauro | (~gentauro@user/gentauro) |
2023-05-27 22:27:12 +0200 | <Profpatsch> | Wait, <*> left-associates and <> right-associates, isn’t that a very bad sign? |
2023-05-27 22:29:13 +0200 | <int-e> | :t (<*>) |
2023-05-27 22:29:14 +0200 | <lambdabot> | Applicative f => f (a -> b) -> f a -> f b |
2023-05-27 22:29:39 +0200 | <int-e> | (it's not associative, you don't have a choice) |
2023-05-27 22:30:10 +0200 | <Profpatsch> | no I mean |
2023-05-27 22:30:11 +0200 | <Profpatsch> | (([], …) <*> ([1], …)) <*> ([2,3], …) |
2023-05-27 22:30:14 +0200 | <Profpatsch> | (([] <> [1]), …) <*> [2,3], …) |
2023-05-27 22:30:19 +0200 | <Profpatsch> | (([] <> [1]) <> [2,3], …) |
2023-05-27 22:30:43 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-05-27 22:30:52 +0200 | <int-e> | yeah that's not ideal |
2023-05-27 22:31:35 +0200 | <Profpatsch> | I guess I can use a Seq |
2023-05-27 22:31:41 +0200 | <int-e> | But you can always fix that by using DList a ~ Endo [] a |
2023-05-27 22:32:03 +0200 | <int-e> | Or Seq, sure |
2023-05-27 22:32:11 +0200 | <Profpatsch> | I guess that’s the origin of the Writer space-leak |
2023-05-27 22:32:24 +0200 | <int-e> | It is, and the fix is the same |
2023-05-27 22:32:27 +0200 | <Profpatsch> | And the fix is Writer.CPS, which is exactly DList |
2023-05-27 22:32:31 +0200 | <int-e> | Seq isn't lazy though |
2023-05-27 22:32:31 +0200 | <Profpatsch> | yep yep |
2023-05-27 22:32:39 +0200 | <Profpatsch> | int-e: is that a problem? |
2023-05-27 22:32:46 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-05-27 22:33:25 +0200 | <Profpatsch> | The applicative is gonna be forced in any case |
2023-05-27 22:33:29 +0200 | <int-e> | Hmm, in the case of Writer (with DList, or the CPS version), having a lazy result actually works, you can consume it before the whole writing is done. |
2023-05-27 22:33:54 +0200 | <Profpatsch> | but yeah, if you build an infinite Applicative structure and only look at the first n elements of the fst Seq, that might be a problem |
2023-05-27 22:34:07 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-05-27 22:34:39 +0200 | <int-e> | > execWriter $ tell "abc" >> undefined |
2023-05-27 22:34:40 +0200 | <lambdabot> | "abc*Exception: Prelude.undefined |
2023-05-27 22:34:43 +0200 | <Profpatsch> | <> should right-associate, convince me otherwise :) |
2023-05-27 22:34:54 +0200 | <Profpatsch> | I think that might solve a bunch of problems |
2023-05-27 22:35:07 +0200 | <int-e> | infixr 6 <> |
2023-05-27 22:35:41 +0200 | <Profpatsch> | err, I didn’t think this trough; but <*> right-associating makes no sense |
2023-05-27 22:36:00 +0200 | <Profpatsch> | Hrm, I guess no real solution apart from using Dlists and maybe annotating the (,) applicative instance |
2023-05-27 22:36:28 +0200 | <Profpatsch> | In general I feel like base should have better instance docs |
2023-05-27 22:36:32 +0200 | freeside | (~mengwong@103.252.202.189) |
2023-05-27 22:36:33 +0200 | <Profpatsch> | with examples and dos and don’ts |
2023-05-27 22:36:43 +0200 | <monochrom> | > take 3 (execWriter $ tell "abc" >> undefined) |
2023-05-27 22:36:44 +0200 | <lambdabot> | "abc" |
2023-05-27 22:36:46 +0200 | <monochrom> | :) |
2023-05-27 22:36:52 +0200 | <Profpatsch> | There’s a bunch of trip mines like that |
2023-05-27 22:37:17 +0200 | <int-e> | monochrom: my example did print the "abc part :) |
2023-05-27 22:37:46 +0200 | <int-e> | (hmm, show of laziness?) |
2023-05-27 22:37:50 +0200 | <monochrom> | Yeah, but there are always doubters and haters who focus on the irrelevant presence of an error message. |
2023-05-27 22:38:00 +0200 | <int-e> | > fix error |
2023-05-27 22:38:01 +0200 | <lambdabot> | "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex... |
2023-05-27 22:38:16 +0200 | <Profpatsch> | But, like, I use (Validation (NonEmpty …)) throughout the code already and fixing that is a problem for future me |
2023-05-27 22:38:23 +0200 | <Profpatsch> | (it has the same problem) |
2023-05-27 22:40:26 +0200 | <Profpatsch> | Actually that’s a pretty bad thing, cause you have to rebuild n²/2 NonEmpty lists to get the final result |
2023-05-27 22:40:45 +0200 | freeside | (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
2023-05-27 22:41:10 +0200 | <Profpatsch> | So if you parse a CSV with 1000 lines and 750 of those have errors, that’s a pretty huge space leak |
2023-05-27 22:43:10 +0200 | <Profpatsch> | (or rather n NonEmpty lists with n²/2 elements |
2023-05-27 22:44:24 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2023-05-27 22:45:04 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-05-27 22:45:04 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-05-27 22:45:04 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-27 22:49:17 +0200 | biberu | (~biberu@user/biberu) |
2023-05-27 22:53:25 +0200 | <tomsmeding> | % import Data.List.NonEmpty |
2023-05-27 22:53:25 +0200 | <yahb2> | <no output> |
2023-05-27 22:53:34 +0200 | <tomsmeding> | % newtype NonEmptyEndo a = NonEmptyEndo ([a] -> NonEmpty a) |
2023-05-27 22:53:34 +0200 | <yahb2> | <no output> |
2023-05-27 22:54:17 +0200 | <tomsmeding> | % instance Semigroup (NonEmptyEndo a) where NonEmptyEndo f <> NonEmptyEndo g = NonEmptyEndo (g . toList . f) |
2023-05-27 22:54:17 +0200 | <yahb2> | <interactive>:183:96: error: ; Ambiguous occurrence ‘toList’ ; It could refer to ; either ‘Data.List.NonEmpty.toList’, ; imported from ‘Data.List.NonEmpty’ ; ... |
2023-05-27 22:54:28 +0200 | <tomsmeding> | % instance Semigroup (NonEmptyEndo a) where NonEmptyEndo f <> NonEmptyEndo g = NonEmptyEndo (g . Data.List.NonEmpty.toList . f) |
2023-05-27 22:54:28 +0200 | <yahb2> | <no output> |
2023-05-27 22:54:46 +0200 | <tomsmeding> | it's not a monoid, clearly |
2023-05-27 22:55:08 +0200 | <Profpatsch> | NonEmpty has not mempty, yeah :) |
2023-05-27 22:55:14 +0200 | <Profpatsch> | cause it’s non empty |
2023-05-27 22:55:15 +0200 | <tomsmeding> | % runNonEmptyEndo :: NonEmptyEndo a -> NonEmpty a ; runNonEmptyEndo (NonEmptyEndo f) = f [] |
2023-05-27 22:55:15 +0200 | <yahb2> | <no output> |
2023-05-27 22:55:25 +0200 | <tomsmeding> | Profpatsch: replace your NonEmpty with NonEmptyEndo? :p |
2023-05-27 22:55:28 +0200 | <Profpatsch> | tomsmeding: dlist has it now |
2023-05-27 22:55:37 +0200 | <Profpatsch> | Data.DList.DNonEmpty |
2023-05-27 22:55:41 +0200 | <Profpatsch> | includes patterns and everything |
2023-05-27 22:55:52 +0200 | <tomsmeding> | ah lol |
2023-05-27 22:55:58 +0200 | <Profpatsch> | Although no, no patterns yet |
2023-05-27 22:56:08 +0200 | <tomsmeding> | always good to find out that others had your idea before you did |
2023-05-27 22:56:14 +0200 | <tomsmeding> | shows it was a good idea |
2023-05-27 22:56:16 +0200 | <Profpatsch> | NeSeq has some cool patterns tho |
2023-05-27 22:56:29 +0200 | <Profpatsch> | tomsmeding: an idea whose time has come :P |
2023-05-27 22:56:37 +0200 | <Profpatsch> | https://hackage.haskell.org/package/nonempty-containers-0.3.4.4/docs/Data-Sequence-NonEmpty.html#v… |
2023-05-27 22:56:39 +0200 | <Profpatsch> | these are so cool |
2023-05-27 22:57:02 +0200 | <Profpatsch> | you can match IsEmpty and then IsNonEmpty and it works cause |
2023-05-27 22:57:04 +0200 | <Profpatsch> | {-# COMPLETE IsNonEmpty, IsEmpty #-} |
2023-05-27 22:57:21 +0200 | <Profpatsch> | The moment where patterns clicked in my head |
2023-05-27 22:57:29 +0200 | <Profpatsch> | in my *head* (ba dum ts) |
2023-05-27 22:57:37 +0200 | ub | (~Thunderbi@p548c91e0.dip0.t-ipconnect.de) |
2023-05-27 22:58:08 +0200 | ubert | (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-05-27 22:58:08 +0200 | ub | ubert |
2023-05-27 22:59:14 +0200 | <Profpatsch> | obligatory https://www.youtube.com/watch?v=6Ejga4kJUts |
2023-05-27 23:01:58 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2023-05-27 23:09:21 +0200 | hamzam3 | (~hamzam3@2a01:e0a:1ee:8c60:849e:cc8e:5242:786f) (Quit: Leaving) |
2023-05-27 23:16:49 +0200 | sm | emerges from epic rabbit hole.. well I believe you mauke about that old PATH splitting code being broken on windows.. but somehow it seems to get the job done anyway |
2023-05-27 23:19:31 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2023-05-27 23:19:32 +0200 | <int-e> | it works fine if *everything* is on C:? |
2023-05-27 23:20:44 +0200 | <int-e> | Which if you're testing in a VM is more likely than with "serious" Windows installations. |
2023-05-27 23:23:56 +0200 | caryhartline | (~caryhartl@168.182.58.169) (Remote host closed the connection) |
2023-05-27 23:37:24 +0200 | gurkenglas | (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) (Ping timeout: 250 seconds) |
2023-05-27 23:40:09 +0200 | <sm> | heheh finally I see what it's doing with my own eyes.. ["C","\\Windows\\system32","C","\\Windows","C","\\Windows\\System32\\Wbem",...] |
2023-05-27 23:40:09 +0200 | <sm> | yes indeed, broken, though I used it in a way that it didn't matter |
2023-05-27 23:41:47 +0200 | <sm> | though, as you say in real life someone might have installed hledger addons across multiple drives and they wouldn't work. That person is probably out there shaking their fist, if they exist. |
2023-05-27 23:44:40 +0200 | <sm> | off topic, but I think I quite like Windows' window management (easy snapping to full/half/quarter screen positions) |
2023-05-27 23:45:54 +0200 | <ncf> | wdym <*> right-associating? |
2023-05-27 23:46:01 +0200 | <ncf> | oh i was scrolled up |
2023-05-27 23:46:56 +0200 | reach | (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) |
2023-05-27 23:53:19 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-05-27 23:56:12 +0200 | elmklod | (~Elm@94.25.164.115) (Quit: Leaving) |
2023-05-27 23:57:35 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |