2021-08-03 00:00:19 +0200 | michalz | (~michalz@185.246.204.40) (Remote host closed the connection) |
2021-08-03 00:00:59 +0200 | <arkho> | How do I check which version of scientific I have? |
2021-08-03 00:01:19 +0200 | mastarija | (~mastarija@31.217.8.174) (Ping timeout: 265 seconds) |
2021-08-03 00:01:22 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-08-03 00:03:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 00:03:37 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-08-03 00:05:04 +0200 | Zemyla_ | (~ec2-user@ec2-54-196-11-2.compute-1.amazonaws.com) (Ping timeout: 258 seconds) |
2021-08-03 00:05:07 +0200 | <geekosaur> | cabal should have output it while building the package's dependencies |
2021-08-03 00:06:13 +0200 | son0p | (~ff@181.136.122.143) |
2021-08-03 00:06:19 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-08-03 00:06:29 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) |
2021-08-03 00:06:29 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) |
2021-08-03 00:14:03 +0200 | zebrag | (~chris@user/zebrag) |
2021-08-03 00:20:16 +0200 | drd | (~drd@151.37.160.53) (Ping timeout: 272 seconds) |
2021-08-03 00:21:58 +0200 | drd | (~drd@151.57.228.213) |
2021-08-03 00:23:11 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-08-03 00:26:32 +0200 | bgamari | (~bgamari@2001:470:e438::1) |
2021-08-03 00:36:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-03 00:41:01 +0200 | dajoer | (~david@user/gvx) |
2021-08-03 00:41:09 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-08-03 00:41:39 +0200 | cjb | (~cjb@user/cjb) |
2021-08-03 00:42:38 +0200 | drd | (~drd@151.57.228.213) (Ping timeout: 258 seconds) |
2021-08-03 00:43:42 +0200 | agua_pesada | (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) (Ping timeout: 272 seconds) |
2021-08-03 00:45:42 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 258 seconds) |
2021-08-03 00:46:17 +0200 | drd | (~drd@151.57.228.213) |
2021-08-03 00:48:04 +0200 | mastarija_ | (~mastarija@31.217.8.174) (Quit: Leaving) |
2021-08-03 00:50:02 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 272 seconds) |
2021-08-03 00:51:06 +0200 | acidjnk_new3 | (~acidjnk@p5487d90a.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-08-03 00:51:23 +0200 | agua_pesada | (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) |
2021-08-03 00:54:09 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-08-03 00:54:39 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-08-03 01:00:47 +0200 | sheepduck | (~sheepduck@user/sheepduck) (Remote host closed the connection) |
2021-08-03 01:01:14 +0200 | agua | (~agua@2804:18:7f:1e53:1:0:7e70:81d) |
2021-08-03 01:02:02 +0200 | CannabisIndica | (~mesa@user/mesaboogie) (Quit: ZNC - https://znc.in) |
2021-08-03 01:03:51 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-08-03 01:05:18 +0200 | mesa | (~mesa@user/mesaboogie) |
2021-08-03 01:05:51 +0200 | mesa | CannabisIndica |
2021-08-03 01:05:52 +0200 | Core3678 | (~agua@2804:14c:8793:8e2f:64f8:45c2:2056:5625) (Ping timeout: 272 seconds) |
2021-08-03 01:10:23 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-08-03 01:10:26 +0200 | drd | (~drd@151.57.228.213) (Ping timeout: 265 seconds) |
2021-08-03 01:12:11 +0200 | meinside_ | (uid24933@id-24933.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-03 01:15:37 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) (Quit: WeeChat 3.2) |
2021-08-03 01:22:37 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 01:34:44 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-08-03 01:35:05 +0200 | <delYsid> | @hoogle [Maybe a] -> [a] |
2021-08-03 01:35:06 +0200 | <lambdabot> | Data.Maybe catMaybes :: [Maybe a] -> [a] |
2021-08-03 01:35:07 +0200 | <lambdabot> | System.Directory.Internal.Prelude catMaybes :: () => [Maybe a] -> [a] |
2021-08-03 01:35:07 +0200 | <lambdabot> | Distribution.Compat.Prelude.Internal catMaybes :: [Maybe a] -> [a] |
2021-08-03 01:36:16 +0200 | shailangsa | (~shailangs@host86-186-196-233.range86-186.btcentralplus.com) (Ping timeout: 272 seconds) |
2021-08-03 01:39:58 +0200 | <lechner> | Hi, it seems that getArgs attempts to translate UTF-8 byte strings to Unicode code points. Was getArgsBytes mentioned here ever implemented? Thanks! https://gitlab.haskell.org/ghc/ghc/-/issues/3309 |
2021-08-03 01:44:18 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-08-03 01:44:46 +0200 | <geekosaur> | you want https://downloads.haskell.org/ghc/latest/docs/html/libraries/unix-2.7.2.2/System-Posix-Env-ByteStr… |
2021-08-03 01:51:09 +0200 | Codaraxis_ | (~Codaraxis@user/codaraxis) |
2021-08-03 01:55:23 +0200 | Codaraxis | (~Codaraxis@user/codaraxis) (Ping timeout: 265 seconds) |
2021-08-03 01:56:23 +0200 | ironsoba | (~z@193.36.225.59) |
2021-08-03 02:00:11 +0200 | pesada | (~agua@2804:14c:8793:8e2f:64f8:45c2:2056:5625) |
2021-08-03 02:03:45 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-03 02:04:42 +0200 | agua | (~agua@2804:18:7f:1e53:1:0:7e70:81d) (Ping timeout: 272 seconds) |
2021-08-03 02:04:54 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 276 seconds) |
2021-08-03 02:06:03 +0200 | Shailangsa_ | (~shailangs@host86-185-98-7.range86-185.btcentralplus.com) |
2021-08-03 02:06:18 +0200 | juhp | (~juhp@bb116-14-48-29.singnet.com.sg) (Ping timeout: 240 seconds) |
2021-08-03 02:06:45 +0200 | Erutuon | (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
2021-08-03 02:07:01 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-03 02:14:34 +0200 | benjaminhodgson | (~benjaminh@cpe-74-71-15-134.nyc.res.rr.com) |
2021-08-03 02:16:00 +0200 | <benjaminhodgson> | hello haskell friends! i was wondering if anyone here could help me dredge through the memory banks. I seem to remember reading a blog post in which the author showed that McBride-style indexed monads were equivalent in power to Atkey-style ones. Does anyone here remember such a post? |
2021-08-03 02:16:22 +0200 | <benjaminhodgson> | i asked on reddit but no one seemed to recognise it, so i'm trying here :) |
2021-08-03 02:17:10 +0200 | <benjaminhodgson> | The post would've been at least a couple of years ago |
2021-08-03 02:19:28 +0200 | <benjaminhodgson> | When I say "equivalent in power", I mean they managed to figure out a way to turn an Atkey monad into a McBride one, which is obviously quite interesting because the McBride ones seem more powerful |
2021-08-03 02:20:24 +0200 | oso | (~oso@2601:58c:c080:a950:f275:2530:b398:680b) |
2021-08-03 02:20:46 +0200 | <geekosaur> | hm? wouldn't the other way around indicate that better, then? |
2021-08-03 02:21:40 +0200 | <benjaminhodgson> | It's easy to turn a McBride monad into an Atkey one; this post was interesting since they managed to do it the other way as well |
2021-08-03 02:21:57 +0200 | <benjaminhodgson> | just trying to find the post so i can reread it :) |
2021-08-03 02:22:28 +0200 | <benjaminhodgson> | im just trying to find the post so i can reread it :) |
2021-08-03 02:23:46 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-08-03 02:24:07 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) |
2021-08-03 02:24:08 +0200 | <benjaminhodgson> | or perhaps i'm going mad and i've imagined the whole thing. |
2021-08-03 02:26:25 +0200 | <Axman6> | Maybe you were predicting the future and you need to write it |
2021-08-03 02:26:33 +0200 | benjaminhodgson | (~benjaminh@cpe-74-71-15-134.nyc.res.rr.com) (Quit: Client closed) |
2021-08-03 02:27:28 +0200 | benjaminhodgson | (~benjaminh@cpe-74-71-15-134.nyc.res.rr.com) |
2021-08-03 02:27:39 +0200 | <benjaminhodgson> | lol, a future in which i am much cleverer than i am |
2021-08-03 02:27:58 +0200 | <Axman6> | this is just tying the knot |
2021-08-03 02:28:27 +0200 | <Axman6> | the result will become more defined as it becomes more defined |
2021-08-03 02:28:51 +0200 | <c_wraith> | unless it diverges and attempting to examine it will unravel the universe |
2021-08-03 02:29:18 +0200 | chris__ | (~chris@81.96.113.213) |
2021-08-03 02:29:38 +0200 | <Axman6> | from a type perspective, that is fine though |
2021-08-03 02:30:21 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6c0c:93c2:73f6:e346) |
2021-08-03 02:32:06 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-03 02:32:17 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Write error: Connection reset by peer) |
2021-08-03 02:32:17 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) (Read error: Connection reset by peer) |
2021-08-03 02:32:17 +0200 | deuslambda[m] | (~deuslambd@2001:470:69fc:105::c749) (Read error: Connection reset by peer) |
2021-08-03 02:32:17 +0200 | fakehacker[m] | (~fakehacke@2001:470:69fc:105::b5f0) (Read error: Connection reset by peer) |
2021-08-03 02:32:18 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Read error: Connection reset by peer) |
2021-08-03 02:32:18 +0200 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) (Read error: Connection reset by peer) |
2021-08-03 02:32:18 +0200 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) (Read error: Connection reset by peer) |
2021-08-03 02:32:18 +0200 | psydroid | (~psydroid@user/psydroid) (Write error: Connection reset by peer) |
2021-08-03 02:32:19 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer) |
2021-08-03 02:32:19 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) (Write error: Connection reset by peer) |
2021-08-03 02:32:19 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) (Read error: Connection reset by peer) |
2021-08-03 02:32:19 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Write error: Connection reset by peer) |
2021-08-03 02:32:19 +0200 | siraben | (~siraben@user/siraben) (Write error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | Drew[m] | (~drewefenw@2001:470:69fc:105::c8c4) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | SimonWeiss[m] | (~weiss-dma@2001:470:69fc:105::bebd) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | OndejSkup[m] | (~mimivxmat@2001:470:69fc:105::c300) (Read error: Connection reset by peer) |
2021-08-03 02:32:21 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | Guest2540 | (~sylveonma@2001:470:69fc:105::2d95) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | octeep[m] | (~octeepmoc@2001:470:69fc:105::695e) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | ormaaj | (~ormaaj@user/ormaaj) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | CyrusT[m] | (~cyrustcru@2001:470:69fc:105::306e) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | infinisil | (~infinisil@2001:470:69fc:105::ff8) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | sm | (~sm@plaintextaccounting/sm) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | Deide | (~deide@user/deide) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | Tisoxin | (~ikosit@user/ikosit) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | boxscape | (~boxscape@user/boxscape) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Write error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | polykernel | (~polykerne@user/polykernel) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | andreabedini[m] | (~andreabed@2001:470:69fc:105::c821) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) (Read error: Connection reset by peer) |
2021-08-03 02:32:22 +0200 | kadoban | (~kadoban@user/kadoban) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | PotatoHatsue | (~berberman@2001:470:69fc:105::b488) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | jophish | (~jophish@2001:470:69fc:105::670) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | kar1[m] | (~kar1matri@2001:470:69fc:105::c308) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Write error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) (Write error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | soft | (~soft-matr@2001:470:69fc:105::c75) (Write error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Write error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | hughjfchen[m] | (~hughjfche@2001:470:69fc:105::c29d) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer) |
2021-08-03 02:32:23 +0200 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) (Read error: Connection reset by peer) |
2021-08-03 02:33:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 02:34:02 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-08-03 02:35:39 +0200 | Hydrazer | (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) |
2021-08-03 02:36:17 +0200 | <Hydrazer> | e |
2021-08-03 02:36:29 +0200 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) |
2021-08-03 02:36:29 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) |
2021-08-03 02:36:29 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) |
2021-08-03 02:36:29 +0200 | sm | (~sm@plaintextaccounting/sm) |
2021-08-03 02:36:41 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) |
2021-08-03 02:36:43 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-08-03 02:36:55 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) |
2021-08-03 02:36:55 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) |
2021-08-03 02:36:56 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2021-08-03 02:36:56 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-08-03 02:36:56 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2021-08-03 02:36:56 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) |
2021-08-03 02:36:56 +0200 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) |
2021-08-03 02:37:08 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) |
2021-08-03 02:37:08 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) |
2021-08-03 02:37:22 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2021-08-03 02:37:34 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) |
2021-08-03 02:37:47 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) |
2021-08-03 02:37:48 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) |
2021-08-03 02:37:48 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-08-03 02:37:49 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) |
2021-08-03 02:37:49 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-08-03 02:38:01 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) |
2021-08-03 02:38:13 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) |
2021-08-03 02:38:13 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-08-03 02:38:19 +0200 | <Hydrazer> | D: |
2021-08-03 02:38:25 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-08-03 02:38:25 +0200 | soft | (~soft-matr@2001:470:69fc:105::c75) |
2021-08-03 02:38:40 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
2021-08-03 02:38:41 +0200 | kadoban | (~kadoban@user/kadoban) |
2021-08-03 02:38:41 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-08-03 02:38:41 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) |
2021-08-03 02:38:41 +0200 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-08-03 02:38:41 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-08-03 02:38:53 +0200 | <Axman6> | Can we help Hydrazer? |
2021-08-03 02:38:54 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2021-08-03 02:38:55 +0200 | PotatoHatsue | (~berberman@2001:470:69fc:105::b488) |
2021-08-03 02:38:57 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) |
2021-08-03 02:38:57 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2021-08-03 02:38:57 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) |
2021-08-03 02:38:58 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) |
2021-08-03 02:38:58 +0200 | siraben | (~siraben@user/siraben) |
2021-08-03 02:39:10 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) |
2021-08-03 02:39:11 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) |
2021-08-03 02:39:24 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) |
2021-08-03 02:39:25 +0200 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) |
2021-08-03 02:39:39 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2021-08-03 02:40:03 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) |
2021-08-03 02:40:09 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-08-03 02:40:27 +0200 | SimonWeiss[m] | (~weiss-dma@2001:470:69fc:105::bebd) |
2021-08-03 02:40:27 +0200 | Sylveon | Guest4241 |
2021-08-03 02:40:44 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) |
2021-08-03 02:40:58 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) |
2021-08-03 02:40:59 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) |
2021-08-03 02:40:59 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2021-08-03 02:41:11 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2021-08-03 02:41:23 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) |
2021-08-03 02:41:23 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-08-03 02:41:35 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) |
2021-08-03 02:41:35 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) |
2021-08-03 02:41:35 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-08-03 02:41:49 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) |
2021-08-03 02:41:49 +0200 | infinisil | (~infinisil@2001:470:69fc:105::ff8) |
2021-08-03 02:42:02 +0200 | octeep[m] | (~octeepmoc@2001:470:69fc:105::695e) |
2021-08-03 02:42:17 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
2021-08-03 02:42:29 +0200 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) |
2021-08-03 02:42:30 +0200 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) |
2021-08-03 02:42:30 +0200 | Tisoxin | (~ikosit@user/ikosit) |
2021-08-03 02:42:42 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) |
2021-08-03 02:42:54 +0200 | CyrusT[m] | (~cyrustcru@2001:470:69fc:105::306e) |
2021-08-03 02:43:00 +0200 | <Hydrazer> | ``` |
2021-08-03 02:43:06 +0200 | deuslambda[m] | (~deuslambd@2001:470:69fc:105::c749) |
2021-08-03 02:43:07 +0200 | Deide | (~deide@user/deide) |
2021-08-03 02:43:07 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-08-03 02:43:20 +0200 | fakehacker[m] | (~fakehacke@2001:470:69fc:105::b5f0) |
2021-08-03 02:43:21 +0200 | polykernel | (~polykerne@user/polykernel) |
2021-08-03 02:43:21 +0200 | hughjfchen[m] | (~hughjfche@2001:470:69fc:105::c29d) |
2021-08-03 02:43:22 +0200 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) |
2021-08-03 02:43:22 +0200 | psydroid | (~psydroid@user/psydroid) |
2021-08-03 02:43:22 +0200 | OndejSkup[m] | (~mimivxmat@2001:470:69fc:105::c300) |
2021-08-03 02:43:22 +0200 | kar1[m] | (~kar1matri@2001:470:69fc:105::c308) |
2021-08-03 02:43:22 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2021-08-03 02:43:22 +0200 | ormaaj | (~ormaaj@user/ormaaj) |
2021-08-03 02:43:23 +0200 | andreabedini[m] | (~andreabed@2001:470:69fc:105::c821) |
2021-08-03 02:43:33 +0200 | <Axman6> | Please don't post code in here, see the topic for a paste website you can use |
2021-08-03 02:43:35 +0200 | Drew[m]1 | (~drewefenw@2001:470:69fc:105::c8c4) |
2021-08-03 02:44:16 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-08-03 02:44:41 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 265 seconds) |
2021-08-03 02:45:17 +0200 | benjaminhodgson | (~benjaminh@cpe-74-71-15-134.nyc.res.rr.com) (Quit: Client closed) |
2021-08-03 02:46:40 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-08-03 02:51:06 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-08-03 02:53:57 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-03 02:54:23 +0200 | meinside_ | (uid24933@id-24933.brockwell.irccloud.com) |
2021-08-03 02:55:00 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-08-03 02:56:22 +0200 | Hydrazer | (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Ping timeout: 246 seconds) |
2021-08-03 02:56:48 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 258 seconds) |
2021-08-03 02:57:23 +0200 | Hydrazer | (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) |
2021-08-03 03:01:46 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-08-03 03:02:39 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 03:03:30 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-08-03 03:03:44 +0200 | agua | (~agua@2804:18:7f:1e53:1:0:7e70:81d) |
2021-08-03 03:05:29 +0200 | zeenk | (~zeenk@2a02:2f04:a211:a800:553b:3cb0:5ea1:7e83) (Quit: Konversation terminated!) |
2021-08-03 03:05:40 +0200 | bgamari | (~bgamari@2001:470:e438::1) (Remote host closed the connection) |
2021-08-03 03:06:06 +0200 | pesada | (~agua@2804:14c:8793:8e2f:64f8:45c2:2056:5625) (Ping timeout: 256 seconds) |
2021-08-03 03:06:58 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-03 03:08:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-08-03 03:08:06 +0200 | xff0x | (~xff0x@2001:1a81:53e4:9a00:3689:c5ce:3234:2238) (Ping timeout: 272 seconds) |
2021-08-03 03:08:16 +0200 | Hydrazer | (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Ping timeout: 246 seconds) |
2021-08-03 03:09:17 +0200 | xff0x | (~xff0x@2001:1a81:521f:1e00:cb93:2bda:b1c:f227) |
2021-08-03 03:14:04 +0200 | chris__ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-03 03:24:11 +0200 | jay-invariant | (~jay@c-24-4-6-169.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
2021-08-03 03:30:39 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-03 03:33:18 +0200 | alx741 | (~alx741@181.196.69.121) (Quit: alx741) |
2021-08-03 03:42:51 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 03:43:20 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 03:43:26 +0200 | bgamari | (~bgamari@72.65.101.147) |
2021-08-03 03:45:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-03 03:46:08 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 03:53:52 +0200 | euouae | (~euouae@user/euouae) |
2021-08-03 03:55:00 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 03:55:02 +0200 | gambpang | (~ian@207.181.230.156) |
2021-08-03 04:05:15 +0200 | <lechner> | geekosaur: thanks! much better name spacing solution. haskell is so logical |
2021-08-03 04:05:37 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) (ERC (IRC client for Emacs 27.1.50)) |
2021-08-03 04:06:20 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-08-03 04:15:32 +0200 | Xnuk | (~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in) |
2021-08-03 04:15:49 +0200 | Xnuk | (~xnuk@vultr.xnu.kr) |
2021-08-03 04:19:44 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-08-03 04:19:44 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (mercury.libera.chat (Nickname regained by services))) |
2021-08-03 04:19:44 +0200 | finn_elija | FinnElija |
2021-08-03 04:20:28 +0200 | <lechner> | Hi, is it possible to assign an array so the first element is separate, and the rest are kept together? I'm looking for something like [separate:rest] <- getArgs but that would require explicit types. Thanks!. |
2021-08-03 04:20:56 +0200 | <dsal> | (x:xs) <- getArgs |
2021-08-03 04:21:03 +0200 | <dsal> | It's a list, not an array, though. |
2021-08-03 04:21:22 +0200 | <dsal> | Arrays in haskell are pretty neat, but you're probably not using them. :) |
2021-08-03 04:22:42 +0200 | <geekosaur> | [x:xs] is valid but doesn't do what you think it does (it's a 1-element list composed of a sublist which you're separating the first element from) |
2021-08-03 04:23:07 +0200 | <dsal> | Do note that requires at least one list element. You might be better off with one of the fancy option parsers. |
2021-08-03 04:24:14 +0200 | favonia | (~favonia@user/favonia) |
2021-08-03 04:27:09 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) (Remote host closed the connection) |
2021-08-03 04:27:42 +0200 | td_ | (~td@muedsl-82-207-238-030.citykom.de) (Ping timeout: 256 seconds) |
2021-08-03 04:29:17 +0200 | td_ | (~td@muedsl-82-207-238-142.citykom.de) |
2021-08-03 04:29:54 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-03 04:30:07 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 245 seconds) |
2021-08-03 04:30:18 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-08-03 04:38:39 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) |
2021-08-03 04:40:30 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) (Client Quit) |
2021-08-03 04:40:47 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) |
2021-08-03 04:41:58 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) (Client Quit) |
2021-08-03 04:42:14 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) |
2021-08-03 04:52:00 +0200 | <sm> | args <- getArgs |
2021-08-03 04:52:00 +0200 | <sm> | let mfirstarg = headMay args |
2021-08-03 04:52:00 +0200 | <sm> | otherargs = drop 1 args |
2021-08-03 04:52:00 +0200 | <sm> | ? |
2021-08-03 04:52:26 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 04:54:19 +0200 | <dsal> | I like optparse-applicative for most things, but I used optparse-generic for a thing and it was kind of neat. |
2021-08-03 04:54:51 +0200 | <sm> | but that's a ton of of complexity and study, be sure it's justified |
2021-08-03 04:55:39 +0200 | <dsal> | Sure. `(x:xs) <- getArgs` is probably not too bad other than the really awful error message. |
2021-08-03 04:55:43 +0200 | <sm> | I wish there was an easier slope from trivial arg parsing to industrial strength arg parsing |
2021-08-03 04:56:05 +0200 | <sm> | dsal, well that's partial - I tried to give one step above that |
2021-08-03 04:56:16 +0200 | <dsal> | Sure, that makes sense. |
2021-08-03 04:56:33 +0200 | <dsal> | optparse-generic isn't that bad, but you have to enable a bunch of extensions. |
2021-08-03 04:58:34 +0200 | <sm> | lechner, did you get a moinmoin reader working btw ? |
2021-08-03 04:59:11 +0200 | <sm> | what's the debian wiki moving to ? sounds like a big job |
2021-08-03 05:00:56 +0200 | hexfive | (~eric@50.35.83.177) |
2021-08-03 05:03:05 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-08-03 05:03:39 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-08-03 05:04:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 05:06:34 +0200 | Codaraxis__ | (~Codaraxis@user/codaraxis) |
2021-08-03 05:09:04 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
2021-08-03 05:10:58 +0200 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Ping timeout: 272 seconds) |
2021-08-03 05:14:57 +0200 | gambpang | (~ian@207.181.230.156) (Remote host closed the connection) |
2021-08-03 05:16:47 +0200 | hexfive | (~eric@50.35.83.177) (Quit: WeeChat 3.0) |
2021-08-03 05:25:37 +0200 | anandprabhu | (~anandprab@94.202.243.198) |
2021-08-03 05:27:02 +0200 | jay-invariant | (~jay@c-24-4-6-169.hsd1.ca.comcast.net) |
2021-08-03 05:27:07 +0200 | <lechner> | sm: sadly, we only have a hundred pages. (on that point, i'd like to merge with archlinux.) i'm experimenting with org-mode but many people will have an opinion. which one is your favorite? |
2021-08-03 05:27:37 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
2021-08-03 05:28:09 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-08-03 05:28:17 +0200 | <sm> | lechner, this would be a large body of docs you want many people to contribute to, right ? |
2021-08-03 05:28:30 +0200 | <sm> | mine is probably mdbook at the moment |
2021-08-03 05:28:52 +0200 | <sm> | org is really only good for personal use I feel |
2021-08-03 05:29:20 +0200 | <lechner> | sm: yes, but we are quirk bunch! you think org-mode is too exotic? |
2021-08-03 05:29:48 +0200 | <sm> | yes, unless you are ok limiting contributions to emacs users |
2021-08-03 05:29:50 +0200 | <dsal> | I've used org-mode to drive projects before. It's pretty great when one person edits and you need to publish stuff. |
2021-08-03 05:30:20 +0200 | glguy | (x@libera/staff/glguy) (Quit: Quit) |
2021-08-03 05:30:31 +0200 | glguy | (x@libera/staff/glguy) |
2021-08-03 05:31:02 +0200 | justsomeguy | likes Sphinx and ReStructuredText for his personal notes, since it has a ton of mindshare, integrates with readthedocs.io, and renders to html/pdf/epub/latex... |
2021-08-03 05:31:26 +0200 | <justsomeguy> | and manpages, which was kind of a big use case for me at one point. |
2021-08-03 05:32:18 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2021-08-03 05:32:19 +0200 | <justsomeguy> | Unfortuantely it doesn't have good syntax highlighting for haskell code snippets out of the box, though. |
2021-08-03 05:32:26 +0200 | theproffesor | (~theproffe@user/theproffesor) (Read error: Connection reset by peer) |
2021-08-03 05:32:36 +0200 | <lechner> | mdbook sure looks great. i use markdown for lintian's tag descriptions (though somewhat unhappily) and ReST for the manual. |
2021-08-03 05:32:54 +0200 | theproffesor | (~theproffe@2601:282:847f:8010::3a29) |
2021-08-03 05:33:51 +0200 | <sm> | mdbook is like simpler, moderner sphinx |
2021-08-03 05:33:54 +0200 | <sm> | a |
2021-08-03 05:34:01 +0200 | theproffesor | (~theproffe@2601:282:847f:8010::3a29) (Changing host) |
2021-08-03 05:34:01 +0200 | theproffesor | (~theproffe@user/theproffesor) |
2021-08-03 05:34:07 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-08-03 05:34:08 +0200 | <lechner> | it's funny no one mentioned the big elephant |
2021-08-03 05:34:28 +0200 | <sm> | (and much faster at rendering, which is significant) |
2021-08-03 05:34:50 +0200 | <lechner> | as for exotic, at least i didn't suggest haddock! |
2021-08-03 05:36:15 +0200 | <lechner> | maybe mdbook is a good choice. |
2021-08-03 05:38:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-03 05:38:59 +0200 | <lechner> | all textbooks say Haskell is strong at domain-specific languages. no one is reinventing wikis here? |
2021-08-03 05:44:11 +0200 | <c_wraith> | haskell is strong at *embeded* domain-specific languages |
2021-08-03 05:44:51 +0200 | <justsomeguy> | The racket guys have scribble, which is a DSL for writing docs https://docs.racket-lang.org/scribble/index.html |
2021-08-03 05:45:48 +0200 | <justsomeguy> | It would be cool to see something similar in Haskell. |
2021-08-03 05:46:47 +0200 | <justsomeguy> | (I really shouldn't be chatting about Haskell and recommending things when I don't even know how to use program in it, yet.) |
2021-08-03 05:47:42 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 272 seconds) |
2021-08-03 05:48:36 +0200 | <euouae> | justsomeguy: Is scribble better than haddock? |
2021-08-03 05:50:03 +0200 | <Axman6> | we a;sp jabe pandoc... so we've got everything |
2021-08-03 05:50:10 +0200 | <Axman6> | also* |
2021-08-03 05:50:15 +0200 | <justsomeguy> | I've mostly used Sphinx, and scribble only a little. I've never used haddock. So I can't say. |
2021-08-03 05:51:12 +0200 | <euouae> | Take a look at haddock then. It might be what you're looking for |
2021-08-03 05:51:43 +0200 | <justsomeguy> | I'll do that :^) |
2021-08-03 05:51:45 +0200 | <euouae> | justsomeguy: It generates pages like this, https://hackage.haskell.org/package/base |
2021-08-03 05:52:17 +0200 | <dsal> | haddock is fine if you're writing haskell API documentation. I'm not sure I'd use it for anything else. |
2021-08-03 05:52:42 +0200 | <euouae> | Oh, scribble is general purpose? |
2021-08-03 05:52:58 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 05:53:32 +0200 | <sm> | lechner: srid is working on one of those modern-wiki "zettel" things.. neuron ? |
2021-08-03 05:54:14 +0200 | <sm> | I will just say if you're porting and managing a docs site, you already have a ton of work and it's really helpful to not have to build/configure the software as well |
2021-08-03 05:55:25 +0200 | <lechner> | sm: it's a desparate move. i need something unconventional and hip |
2021-08-03 05:55:45 +0200 | juhp | (~juhp@128.106.188.220) (Quit: juhp) |
2021-08-03 05:55:59 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-03 05:56:29 +0200 | <sm> | do you want to maintain it yourself, or have the community maintain it ? |
2021-08-03 05:57:26 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-08-03 05:58:42 +0200 | <Axman6> | what's that static site generator? ... I use it for my website |
2021-08-03 05:59:05 +0200 | anandprabhu | (~anandprab@94.202.243.198) (Quit: Leaving) |
2021-08-03 05:59:05 +0200 | <geekosaur> | hakyll? |
2021-08-03 05:59:10 +0200 | <Axman6> | that's the one |
2021-08-03 06:01:27 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
2021-08-03 06:03:01 +0200 | <lechner> | sm: everything at debian is team based, but many jump starts and discontinuous advances are implemented by determined individuals. what do you recommend? |
2021-08-03 06:03:23 +0200 | <sm> | mdbook |
2021-08-03 06:03:42 +0200 | <lechner> | why did you ask? |
2021-08-03 06:03:53 +0200 | <dsal> | It's worth being aware of pandoc (which Axman6 mentioned earlier) |
2021-08-03 06:04:00 +0200 | <sm> | if you're maintaining it yourself, then you have more choices |
2021-08-03 06:04:13 +0200 | <sm> | like org mode |
2021-08-03 06:04:43 +0200 | <Axman6> | pandoc is one of those tools that is pretty well known outside the Hashekk world, because it's so bloody useful |
2021-08-03 06:05:27 +0200 | <sm> | pandoc is awesome, but doesn't provide as much structure for a site, which you'll have to add and maintain yourself |
2021-08-03 06:05:45 +0200 | <sm> | like a site TOC sidebar |
2021-08-03 06:05:46 +0200 | <Axman6> | and Hakyll is built on top of it |
2021-08-03 06:06:02 +0200 | <Axman6> | right, that's why you use hakyll |
2021-08-03 06:06:06 +0200 | <sm> | also, I hate to say it but having to build pandoc or hakyll is a liability |
2021-08-03 06:06:50 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
2021-08-03 06:07:20 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) (Ping timeout: 252 seconds) |
2021-08-03 06:07:24 +0200 | <lechner> | both are in debian already |
2021-08-03 06:07:42 +0200 | <sm> | you'll want features from newer versions |
2021-08-03 06:10:29 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 06:12:11 +0200 | <sm> | (I've used a number of these (org, pandoc, hakyll, sphinx, mdbook) for extended periods, so I have Opinions - I'm interested to hear what works for you) |
2021-08-03 06:13:14 +0200 | <lechner> | i need a splash of cool |
2021-08-03 06:14:18 +0200 | <euouae> | There's also Yesod |
2021-08-03 06:14:33 +0200 | <lechner> | sm: what do you use it for, and how many pages? |
2021-08-03 06:14:36 +0200 | <Axman6> | yesod doesn't do static sites |
2021-08-03 06:14:50 +0200 | <euouae> | Axman6: Can it not? |
2021-08-03 06:15:07 +0200 | <Axman6> | I would be very surprised if it made sense to use it for that |
2021-08-03 06:15:07 +0200 | <lechner> | euouae: i use that for full-fledged, performant web apps |
2021-08-03 06:15:11 +0200 | <sm> | lechner: FOSS sites like hledger.org and plaintextaccounting.org mostly, other doc sites in the past |
2021-08-03 06:15:35 +0200 | <euouae> | lechner: Oh... okay :) Good for you. I loved yesod and wanted to try it out one day for some idea that I had |
2021-08-03 06:16:31 +0200 | <Axman6> | I did not love yesod but I haven't used it for years. Give me Servant any day though |
2021-08-03 06:16:37 +0200 | <Axman6> | IHP looks cool too |
2021-08-03 06:17:25 +0200 | <sm> | (hledger.org is ~100 pages) |
2021-08-03 06:18:14 +0200 | <euouae> | Axman6: I've heard of servant. I know it has a steep learning curve though and I'm not an expert so |
2021-08-03 06:18:27 +0200 | <sm> | lechner, interestingly I believe wiki.debian.org before moinmoin used my wiki engine, Zwiki |
2021-08-03 06:18:34 +0200 | <Axman6> | it's not too hard imo, but the type errors can get a bit hard to read |
2021-08-03 06:18:40 +0200 | fjmorazan | (~quassel@user/fjmorazan) (Quit: fjmorazan) |
2021-08-03 06:19:17 +0200 | fjmorazan | (~quassel@user/fjmorazan) |
2021-08-03 06:21:40 +0200 | <Axman6> | and all Servant cares about is web stuff, it doesn't care about databases or anything |
2021-08-03 06:23:50 +0200 | <lechner> | Axman6 euouae: for web front end work, you may find this older post interesting https://chrisdone.com/posts/clientside-programming-haskell/ |
2021-08-03 06:26:05 +0200 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-08-03 06:28:35 +0200 | <euouae> | so purescript is the DSL to write javascript in and halogen is for the frontend? |
2021-08-03 06:28:46 +0200 | <euouae> | It seems to conclude with purescript + halogen as a good idea |
2021-08-03 06:29:04 +0200 | <lechner> | euouae: it's three years old |
2021-08-03 06:29:05 +0200 | <Axman6> | I think calling purescript a DSL is pretty unfair to it |
2021-08-03 06:29:32 +0200 | <euouae> | You're right, it's not, it's a compiled language |
2021-08-03 06:30:41 +0200 | <lechner> | sm: they sure did! |
2021-08-03 06:30:53 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 265 seconds) |
2021-08-03 06:31:27 +0200 | <lechner> | sm: https://wiki.debian.org/ZWiki |
2021-08-03 06:32:49 +0200 | <sm> | lechner: nice! that was my main project before falling into the Haskellverse. Sad that the site died just weeks before this :) |
2021-08-03 06:33:31 +0200 | <lechner> | sm: zwiki.org? |
2021-08-03 06:33:36 +0200 | <sm> | yup |
2021-08-03 06:34:16 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 06:34:33 +0200 | <sm> | speaking of wikis, and steering this back to haskell, we didn't mention gitit. darcs.net uses it |
2021-08-03 06:35:03 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-03 06:35:58 +0200 | <sm> | recommended for you ? no, it'll be just another niche wiki that has to be restarted randomly and will be a huge burden to build |
2021-08-03 06:35:59 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-03 06:37:07 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-08-03 06:37:52 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 06:38:02 +0200 | <lechner> | sm: how does offering so many formats work out for wikis in the long run? |
2021-08-03 06:38:16 +0200 | <sm> | not well I think |
2021-08-03 06:38:33 +0200 | <sm> | keep it simple. It's pretty much markdown today |
2021-08-03 06:38:59 +0200 | <euouae> | wikipedia has the magic formula |
2021-08-03 06:39:34 +0200 | <sm> | you could use mediawiki, it's certainly powerful. But a ton of work |
2021-08-03 06:39:54 +0200 | <sm> | still off topic here, sorry |
2021-08-03 06:40:44 +0200 | <sm> | how did this come up in #haskell anyway ? oh yes, you pinged me about that pandoc moinmoin reader |
2021-08-03 06:40:59 +0200 | <sm> | I assume you'll use that for the first pass at converting content to whatever |
2021-08-03 06:43:58 +0200 | euouae | (~euouae@user/euouae) () |
2021-08-03 06:44:51 +0200 | <lechner> | yeah, sorry to everyone. i also got sidetracked. it's so easy to feel at home here. what a great channel! |
2021-08-03 06:45:44 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6c0c:93c2:73f6:e346) (Remote host closed the connection) |
2021-08-03 06:46:16 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6c0c:93c2:73f6:e346) |
2021-08-03 06:49:24 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 06:51:17 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6c0c:93c2:73f6:e346) (Remote host closed the connection) |
2021-08-03 06:51:29 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6c0c:93c2:73f6:e346) |
2021-08-03 06:51:33 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
2021-08-03 06:59:15 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6c0c:93c2:73f6:e346) () |
2021-08-03 06:59:46 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 07:05:51 +0200 | Axman6 | (~Axman6@user/axman6) (*.net *.split) |
2021-08-03 07:06:05 +0200 | juhp | (~juhp@128.106.188.220) (Quit: juhp) |
2021-08-03 07:06:20 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-03 07:06:27 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (*.net *.split) |
2021-08-03 07:06:27 +0200 | Jon | (jon@dow.land) (*.net *.split) |
2021-08-03 07:06:28 +0200 | forell | (~forell@user/forell) (*.net *.split) |
2021-08-03 07:06:28 +0200 | barrucadu | (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split) |
2021-08-03 07:06:28 +0200 | pie_ | (~pie_bnc@user/pie/x-2818909) (*.net *.split) |
2021-08-03 07:06:28 +0200 | sudden | (~cat@h-98-128-128-173.A351.priv.bahnhof.se) (*.net *.split) |
2021-08-03 07:06:28 +0200 | tristanC | (~tristanC@user/tristanc) (*.net *.split) |
2021-08-03 07:06:28 +0200 | kosmikus | (~kosmikus@nullzig.kosmikus.org) (*.net *.split) |
2021-08-03 07:06:28 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) (*.net *.split) |
2021-08-03 07:06:28 +0200 | ouroboros | (~ouroboros@user/ouroboros) (*.net *.split) |
2021-08-03 07:06:28 +0200 | V | (~v@anomalous.eu) (*.net *.split) |
2021-08-03 07:06:28 +0200 | swistak | (~swistak@185.21.216.141) (*.net *.split) |
2021-08-03 07:06:28 +0200 | Unhammer | (~Unhammer@user/unhammer) (*.net *.split) |
2021-08-03 07:06:28 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split) |
2021-08-03 07:06:28 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | beaky | (~beaky@2a03:b0c0:0:1010::1e:a001) (*.net *.split) |
2021-08-03 07:06:28 +0200 | jmct_ | (sid160793@id-160793.tinside.irccloud.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | jle` | (~justin@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | catern | (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (*.net *.split) |
2021-08-03 07:06:28 +0200 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) (*.net *.split) |
2021-08-03 07:06:28 +0200 | ziman | (~ziman@user/ziman) (*.net *.split) |
2021-08-03 07:06:28 +0200 | vemek | (~vemek@2a03:b0c0:2:d0::d98:1) (*.net *.split) |
2021-08-03 07:06:28 +0200 | flukiluke | (~flukiluke@2603:c023:c000:6c7e:8945:ad24:9113:a962) (*.net *.split) |
2021-08-03 07:06:28 +0200 | ajb | (~ajb@cupid.whatbox.ca) (*.net *.split) |
2021-08-03 07:06:28 +0200 | Philonous | (~Philonous@user/philonous) (*.net *.split) |
2021-08-03 07:06:28 +0200 | tritlo | (sid58727@user/tritlo) (*.net *.split) |
2021-08-03 07:06:28 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (*.net *.split) |
2021-08-03 07:06:28 +0200 | amirouche | (~amirouche@user/amirouche) (*.net *.split) |
2021-08-03 07:06:28 +0200 | biberu | (~biberu@user/biberu) (*.net *.split) |
2021-08-03 07:06:28 +0200 | gonz_ | (sid304396@2001:67c:2f08:4::4:a50c) (*.net *.split) |
2021-08-03 07:06:28 +0200 | rubin55 | (sid175221@2001:67c:2f08:8::2:ac75) (*.net *.split) |
2021-08-03 07:06:28 +0200 | bradparker | (sid262931@2001:67c:2f08:1::4:313) (*.net *.split) |
2021-08-03 07:06:28 +0200 | oxytocat | (~alloca@user/suppi) (*.net *.split) |
2021-08-03 07:06:28 +0200 | dexterfoo | (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (*.net *.split) |
2021-08-03 07:06:28 +0200 | Arsen | (~arsen@managarm/dev/Arsen) (*.net *.split) |
2021-08-03 07:06:28 +0200 | obviyus | (sid415299@user/obviyus) (*.net *.split) |
2021-08-03 07:06:28 +0200 | feepo | (sid28508@id-28508.brockwell.irccloud.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | SethTisue__ | (sid14912@id-14912.charlton.irccloud.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | Ferdiran1 | (~somebody@2001:4c78:2012:5000::2) (*.net *.split) |
2021-08-03 07:06:28 +0200 | DigitalKiwi | (~kiwi@2604:a880:400:d0::12fc:5001) (*.net *.split) |
2021-08-03 07:06:28 +0200 | yorick | (~yorick@user/yorick) (*.net *.split) |
2021-08-03 07:06:28 +0200 | agander_m_ | (sid407952@id-407952.tinside.irccloud.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | integral | (sid296274@user/integral) (*.net *.split) |
2021-08-03 07:06:28 +0200 | hook54321 | (sid149355@user/hook54321) (*.net *.split) |
2021-08-03 07:06:28 +0200 | gaze___ | (sid387101@id-387101.brockwell.irccloud.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | dyniec | (~dyniec@mail.dybiec.info) (*.net *.split) |
2021-08-03 07:06:28 +0200 | tnks | (sid412124@id-412124.brockwell.irccloud.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | pierrot_ | (~pi@user/pierrot) (*.net *.split) |
2021-08-03 07:06:28 +0200 | kristjansson_ | (sid126207@id-126207.tinside.irccloud.com) (*.net *.split) |
2021-08-03 07:06:28 +0200 | bwe | (~bwe@2a01:4f8:1c1c:4878::2) (*.net *.split) |
2021-08-03 07:06:29 +0200 | kaizen | (sid501599@id-501599.brockwell.irccloud.com) (*.net *.split) |
2021-08-03 07:06:29 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split) |
2021-08-03 07:06:29 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split) |
2021-08-03 07:06:29 +0200 | sm[i] | (~user@plaintextaccounting/sm) (*.net *.split) |
2021-08-03 07:06:30 +0200 | CannabisIndica | (~mesa@user/mesaboogie) (Ping timeout: 276 seconds) |
2021-08-03 07:06:31 +0200 | Axman6 | (~Axman6@user/axman6) |
2021-08-03 07:06:32 +0200 | Jonno_FT1 | (~come@api.carswap.me) |
2021-08-03 07:06:35 +0200 | bwe_ | (~bwe@2a01:4f8:1c1c:4878::2) |
2021-08-03 07:06:35 +0200 | Ferdirand | (~somebody@2001:4c78:2012:5000::2) |
2021-08-03 07:06:35 +0200 | bradparker_ | (sid262931@id-262931.highgate.irccloud.com) |
2021-08-03 07:06:36 +0200 | swistak | (~swistak@185.21.216.141) |
2021-08-03 07:06:36 +0200 | sudden | (~cat@h-98-128-128-173.A351.priv.bahnhof.se) |
2021-08-03 07:06:36 +0200 | tristanC | (~tristanC@163.172.94.116) |
2021-08-03 07:06:36 +0200 | kosmikus | (~kosmikus@nullzig.kosmikus.org) |
2021-08-03 07:06:37 +0200 | ajb_ | (~ajb@cupid.whatbox.ca) |
2021-08-03 07:06:40 +0200 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2021-08-03 07:06:40 +0200 | dexterfoo | (dexter@2a01:7e00::f03c:91ff:fe86:59ec) |
2021-08-03 07:06:40 +0200 | dyniec | (~dyniec@mail.dybiec.info) |
2021-08-03 07:06:40 +0200 | forell | (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) |
2021-08-03 07:06:42 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
2021-08-03 07:06:43 +0200 | gaze___ | (sid387101@id-387101.brockwell.irccloud.com) |
2021-08-03 07:06:45 +0200 | Arsen | (~arsen@managarm/dev/Arsen) |
2021-08-03 07:06:45 +0200 | V__ | (~v@anomalous.eu) |
2021-08-03 07:06:46 +0200 | ziman | (~ziman@c25-5.condornet.sk) |
2021-08-03 07:06:47 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
2021-08-03 07:06:47 +0200 | feepo | (sid28508@id-28508.brockwell.irccloud.com) |
2021-08-03 07:06:50 +0200 | rubin55_ | (sid175221@id-175221.stonehaven.irccloud.com) |
2021-08-03 07:06:50 +0200 | jmct_ | (sid160793@id-160793.tinside.irccloud.com) |
2021-08-03 07:06:50 +0200 | forell | (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host) |
2021-08-03 07:06:50 +0200 | forell | (~forell@user/forell) |
2021-08-03 07:06:51 +0200 | SethTisue__ | (sid14912@id-14912.charlton.irccloud.com) |
2021-08-03 07:06:51 +0200 | gonz__ | (sid304396@id-304396.tooting.irccloud.com) |
2021-08-03 07:06:53 +0200 | integral_ | (sid296274@user/integral) |
2021-08-03 07:06:54 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-08-03 07:06:55 +0200 | oxytocat | (~alloca@2a03:4000:f:7ca:7407:d1ff:fe34:8cd0) |
2021-08-03 07:06:56 +0200 | tristanC | (~tristanC@163.172.94.116) (Changing host) |
2021-08-03 07:06:56 +0200 | tristanC | (~tristanC@user/tristanc) |
2021-08-03 07:06:58 +0200 | Unhammer | (~Unhammer@2a01:799:42:6a00::40c) |
2021-08-03 07:06:59 +0200 | jmtd | (jon@dow.land) |
2021-08-03 07:06:59 +0200 | jmtd | Jon |
2021-08-03 07:07:01 +0200 | jle` | (~justin@cpe-23-240-75-236.socal.res.rr.com) |
2021-08-03 07:07:01 +0200 | yorick | (~yorick@pennyworth.yori.cc) |
2021-08-03 07:07:08 +0200 | amirouche | (~amirouche@2a01:4f8:c0c:d9c2::1) |
2021-08-03 07:07:10 +0200 | obviyus | (sid415299@id-415299.highgate.irccloud.com) |
2021-08-03 07:07:11 +0200 | tritlo | (sid58727@id-58727.stonehaven.irccloud.com) |
2021-08-03 07:07:11 +0200 | kristjansson_ | (sid126207@id-126207.tinside.irccloud.com) |
2021-08-03 07:07:12 +0200 | tnks | (sid412124@id-412124.brockwell.irccloud.com) |
2021-08-03 07:07:15 +0200 | kaizen | (sid501599@id-501599.brockwell.irccloud.com) |
2021-08-03 07:07:15 +0200 | agander_m_ | (sid407952@id-407952.tinside.irccloud.com) |
2021-08-03 07:07:18 +0200 | catern- | (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) |
2021-08-03 07:07:23 +0200 | Unhammer | (~Unhammer@2a01:799:42:6a00::40c) (Changing host) |
2021-08-03 07:07:23 +0200 | Unhammer | (~Unhammer@user/unhammer) |
2021-08-03 07:07:24 +0200 | <Axman6> | what did you do glguy D: |
2021-08-03 07:07:29 +0200 | obviyus | (sid415299@id-415299.highgate.irccloud.com) (Changing host) |
2021-08-03 07:07:29 +0200 | obviyus | (sid415299@user/obviyus) |
2021-08-03 07:07:37 +0200 | tritlo | (sid58727@id-58727.stonehaven.irccloud.com) (Changing host) |
2021-08-03 07:07:37 +0200 | tritlo | (sid58727@user/tritlo) |
2021-08-03 07:07:55 +0200 | yorick | Guest4278 |
2021-08-03 07:08:06 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-08-03 07:08:10 +0200 | sm[i] | (~user@plaintextaccounting/sm) |
2021-08-03 07:08:16 +0200 | Philonous | (~Philonous@user/philonous) |
2021-08-03 07:08:17 +0200 | DigitalKiwi | (~kiwi@2604:a880:400:d0::12fc:5001) |
2021-08-03 07:08:19 +0200 | pierrot | (~pi@user/pierrot) |
2021-08-03 07:08:22 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) |
2021-08-03 07:08:22 +0200 | beaky | (~beaky@2a03:b0c0:0:1010::1e:a001) |
2021-08-03 07:08:25 +0200 | pie_ | (~pie_bnc@user/pie/x-2818909) |
2021-08-03 07:08:27 +0200 | ouroboros | (~ouroboros@user/ouroboros) |
2021-08-03 07:08:30 +0200 | biberu | (~biberu@user/biberu) |
2021-08-03 07:08:31 +0200 | vemek | (~vemek@2a03:b0c0:2:d0::d98:1) |
2021-08-03 07:08:31 +0200 | hook54321 | (sid149355@user/hook54321) |
2021-08-03 07:09:48 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-08-03 07:11:04 +0200 | <glguy> | Axman6, I need to restart stuff periodically for it to get kernel and IRCd updates |
2021-08-03 07:11:41 +0200 | barrucadu | (~barrucadu@carcosa.barrucadu.co.uk) |
2021-08-03 07:12:13 +0200 | <Axman6> | needs more unikernels |
2021-08-03 07:12:21 +0200 | <glguy> | Axman6, if you're interested in stuff like that, set usermode +w to get the broadcasts |
2021-08-03 07:12:51 +0200 | amirouche | (~amirouche@2a01:4f8:c0c:d9c2::1) (Changing host) |
2021-08-03 07:12:51 +0200 | amirouche | (~amirouche@user/amirouche) |
2021-08-03 07:12:57 +0200 | <Axman6> | how do I make that the default in glirc? |
2021-08-03 07:13:07 +0200 | <glguy> | add it to your connect-cmds |
2021-08-03 07:13:19 +0200 | <Axman6> | :thumbsup: |
2021-08-03 07:13:28 +0200 | <glguy> | "umode +w" |
2021-08-03 07:14:23 +0200 | Axman6 | (~Axman6@user/axman6) (Remote host closed the connection) |
2021-08-03 07:14:38 +0200 | Axman6 | (~Axman6@user/axman6) |
2021-08-03 07:15:32 +0200 | <Axman6> | noice |
2021-08-03 07:16:56 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-08-03 07:25:37 +0200 | steven1 | (~steven@172.92.136.203) |
2021-08-03 07:26:17 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-03 07:27:20 +0200 | <steven1> | hello, does anyone have a reference/explanation on the relationship between universally quantified types and existantial types? I've seen in a couple cases we can implement existential types in haskell using rank 2 types but I didn't understand how it works |
2021-08-03 07:27:52 +0200 | <steven1> | this paper makes a passing reference to 'the usual interchange laws between existentiaial and universal quantifiers' but I don't know what they are https://arxiv.org/pdf/1309.5135.pdf |
2021-08-03 07:28:28 +0200 | <shachaf> | Hmm, I think it's simplest to think of it in terms of dependent types, if you're familiar with that. |
2021-08-03 07:28:40 +0200 | <steven1> | I know there's de morgan's law to convert the negation of one into the other but I don't think that's what we're doing in haskell usually |
2021-08-03 07:28:46 +0200 | <steven1> | shachaf: hmm not really |
2021-08-03 07:28:49 +0200 | <steven1> | only a little bit |
2021-08-03 07:28:54 +0200 | <shachaf> | Well, you only need a little bit. |
2021-08-03 07:29:47 +0200 | <shachaf> | So in something like Agda, universal quantifiers are represented as dependent functions from a type, and existential quantifiers are represented as a dependent pair -- have you seen that? |
2021-08-03 07:30:04 +0200 | <shachaf> | E.g. id : (a : Type) -> a -> a |
2021-08-03 07:30:05 +0200 | <steven1> | right, I watched richard eisenberg's series on implementing a length-indexed vector and I know in that he created something like an existential type for `filter` |
2021-08-03 07:30:32 +0200 | <steven1> | not sure about dependent pairs |
2021-08-03 07:30:38 +0200 | <shachaf> | Existentials might be represented like this: (a : Type, (a, a -> Int)) |
2021-08-03 07:31:00 +0200 | <shachaf> | A tuple where the first element is a type and the second element is a value that uses that type. |
2021-08-03 07:31:10 +0200 | <shachaf> | In Haskell you'd write (exists a. (a, a -> Int)) |
2021-08-03 07:31:22 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
2021-08-03 07:31:24 +0200 | <shachaf> | (Well, in fake Haskell.) |
2021-08-03 07:31:32 +0200 | <steven1> | ok, this construction looks similar to what I saw in the paper |
2021-08-03 07:31:53 +0200 | <shachaf> | Does this make sense? |
2021-08-03 07:32:13 +0200 | <steven1> | how would I express it using forall? |
2021-08-03 07:32:22 +0200 | <shachaf> | That's the next bit. |
2021-08-03 07:32:44 +0200 | <shachaf> | So if you have any type T in Haskell, it's isomorphic to (forall r. (T -> r) -> r), right? |
2021-08-03 07:33:14 +0200 | <steven1> | hm that's not clear to me |
2021-08-03 07:33:41 +0200 | <shachaf> | OK, I think that comes first. |
2021-08-03 07:33:58 +0200 | <shachaf> | Imagine you have to implement f :: forall r. (Int -> r) -> r |
2021-08-03 07:34:16 +0200 | <shachaf> | Can you write an implementation? |
2021-08-03 07:34:29 +0200 | <steven1> | f g = g 0 ? |
2021-08-03 07:34:38 +0200 | <shachaf> | Right. |
2021-08-03 07:34:48 +0200 | <shachaf> | Or in general f g = g n, for some n : Int. |
2021-08-03 07:34:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 07:35:07 +0200 | <shachaf> | But there has to be a specific Int, since you know nothing else about r. You just have to pass g an Int to get an r. |
2021-08-03 07:35:15 +0200 | <steven1> | yep |
2021-08-03 07:35:52 +0200 | <shachaf> | So you can write functions :: Int -> forall r. (Int -> r) -> r and :: (forall r. (Int -> r) -> r) -> Int and show they're inverses, I guess with parametricity. |
2021-08-03 07:36:09 +0200 | <steven1> | so maybe it can be something like f :: forall r proxy. (proxy a -> r) -> r |
2021-08-03 07:36:21 +0200 | <steven1> | that way we don't need a value with that type |
2021-08-03 07:36:31 +0200 | <shachaf> | Well, the whole point is that you *do* need a value with that type. |
2021-08-03 07:36:56 +0200 | <shachaf> | A (forall r. (T -> r) -> r) is a slightly weird (continuation-passing style) representation of a T. |
2021-08-03 07:37:08 +0200 | <steven1> | got it |
2021-08-03 07:37:44 +0200 | <shachaf> | So now if we have (exists a. Foo a) |
2021-08-03 07:38:06 +0200 | <shachaf> | We can think of it as a tuple, ((a : Type), Foo a) |
2021-08-03 07:38:21 +0200 | <steven1> | yep |
2021-08-03 07:38:36 +0200 | <steven1> | and you point is that we have a way to represent the type now |
2021-08-03 07:38:41 +0200 | <shachaf> | And do this CPS thing to get forall r. (((a : Type), Foo a) -> r) -> r |
2021-08-03 07:39:04 +0200 | <shachaf> | And that's still a representation of the same value |
2021-08-03 07:39:30 +0200 | <shachaf> | Now we have a function that takes a tuple as an argument, so we can just curry it. |
2021-08-03 07:39:32 +0200 | thyriaen | (~thyriaen@dynamic-078-055-141-033.78.55.pool.telefonica.de) |
2021-08-03 07:39:51 +0200 | <shachaf> | Can you write the curried version? |
2021-08-03 07:39:57 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-08-03 07:40:48 +0200 | <steven1> | forall r. (forall a. Foo a -> r) -> r since the Type argument becomes a type lambda? |
2021-08-03 07:41:17 +0200 | <shachaf> | Right, the exists turns into a forall when you curry it. |
2021-08-03 07:41:27 +0200 | <shachaf> | And that's the standard rank-2 representation for existentials. |
2021-08-03 07:42:34 +0200 | <steven1> | wow that's interesting. thanks for this |
2021-08-03 07:42:53 +0200 | <shachaf> | Maybe this is a little contrived as a path to get to this. |
2021-08-03 07:43:48 +0200 | jjhoo | (~jahakala@dsl-trebng21-58c18f-56.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-08-03 07:43:55 +0200 | <steven1> | btw where did you pick up this stuff? I tried searching around but couldn't find answers before |
2021-08-03 07:44:37 +0200 | <shachaf> | From the aether. |
2021-08-03 07:45:00 +0200 | bradparker_ | bradparker |
2021-08-03 07:45:21 +0200 | <shachaf> | (I have no idea!) |
2021-08-03 07:45:41 +0200 | <steven1> | haha understandable. I think a lot of this stuff just gets absorbed from exposure |
2021-08-03 07:50:40 +0200 | jneira | (~jneira@212.8.115.226) |
2021-08-03 07:51:54 +0200 | V__ | V |
2021-08-03 07:54:22 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-08-03 07:58:33 +0200 | <Axman6> | I feel like that's one of the reasons I struggle with pointing people to good resources to learn haskell, beucase I learnt so much in here |
2021-08-03 07:59:07 +0200 | <steven1> | followup question: since the construction that we did is purely mechanical, what's stopping GHC from supporting an `exists` syntax? I guess the call site might have to change too? |
2021-08-03 08:00:21 +0200 | <steven1> | Axman6: right, it's hard to find resources sometimes. Actually I was considering writing up a post about this since others may have the question too (I will credit you for the help shachaf if I do) |
2021-08-03 08:00:58 +0200 | <steven1> | seems that this is a trivial thing for some people but I don't think it's something I would have been able to come up with on my own |
2021-08-03 08:01:06 +0200 | <shachaf> | Well, "implicit" existential types are trickier than explicit. |
2021-08-03 08:01:23 +0200 | <shachaf> | I think YHC or UHC or something supported exists syntax, but I'm not sure what it did exactly. |
2021-08-03 08:01:40 +0200 | <shachaf> | If you can figure out all the behaviors you can propose it, I guess! |
2021-08-03 08:01:55 +0200 | <shachaf> | GHC does support explicit existential types, though. |
2021-08-03 08:02:11 +0200 | <shachaf> | You can write "data Thing = forall a. Thing a (a -> Int)" and so on. |
2021-08-03 08:02:32 +0200 | <Axman6> | what would foo :: exists a. a -> String even mean... you jhve to find the right a? |
2021-08-03 08:02:42 +0200 | <steven1> | right, but I'm thinking of a syntax for `exists a. Thing a` |
2021-08-03 08:02:48 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-08-03 08:02:55 +0200 | <shachaf> | Or "data Thing where { Thing :: forall a. a -> (a -> Int) -> Thing }" |
2021-08-03 08:03:09 +0200 | <shachaf> | The similarity between that and the construction above isn't a coincidence! |
2021-08-03 08:03:28 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-08-03 08:03:46 +0200 | <shachaf> | If you know how you Church-encode (or whatever-encode) types, where the name of the type becomes an r, this is very similar. |
2021-08-03 08:04:13 +0200 | <shachaf> | Axman6: Well, it would be pretty useless to a caller. |
2021-08-03 08:04:31 +0200 | <shachaf> | Actually, I should've probably just started with that. |
2021-08-03 08:04:57 +0200 | <shachaf> | The way you encode (A,B) as (forall r. (A -> B -> r) -> r), and (Either A B) as (forall r. (A -> r) -> (B -> r) -> r) |
2021-08-03 08:05:03 +0200 | <kosmikus> | shachaf: UHC definitely supports / supported first-class existentials, although I'm not completely confident that it was free of any unexpected corner cases. |
2021-08-03 08:05:09 +0200 | <shachaf> | This is much more obvious in that context. |
2021-08-03 08:05:15 +0200 | <steven1> | Axman6: the example I found in the earlier paper is something like a state machine with a hidden state e.g. exists s. (s, s -> (s, something)) . |
2021-08-03 08:05:40 +0200 | <Axman6> | which we get with forall and not exposing s right? |
2021-08-03 08:05:45 +0200 | <shachaf> | kosmikus: I seem to remember that it didn't support class constraints, though (exists a. Show a *> a), which people complained about or something? |
2021-08-03 08:06:17 +0200 | <shachaf> | Axman6: A classic example is (exists s. (s, s -> Maybe s)) |
2021-08-03 08:06:22 +0200 | <Axman6> | data Foo a where Foo :: forall s. s -> (s -> (a,s) -> Foo a |
2021-08-03 08:06:25 +0200 | <shachaf> | Which represents conatural numbers. |
2021-08-03 08:06:27 +0200 | <steven1> | Axman6: yes, that's where my question came from, which was how we translated the exists into forall |
2021-08-03 08:06:48 +0200 | <kosmikus> | shachaf: I don't know. I could look it up. to be honest, I never used it, despite Atze and mostly Doaitse telling me I should :) |
2021-08-03 08:06:48 +0200 | <shachaf> | Axman6: Yes, that forall is the way you express existential types in GHC. |
2021-08-03 08:07:20 +0200 | <shachaf> | I never used it either. Not important. |
2021-08-03 08:07:21 +0200 | <steven1> | I figured there'd be some use in an exists syntax that internally does the translation to forall for you. Maybe it obscures too much though |
2021-08-03 08:07:48 +0200 | <shachaf> | I think people like to ask for super-convenient existentials, but actually figuring out what they should behave like is pretty tricky, especially if you want type inference. |
2021-08-03 08:07:59 +0200 | <shachaf> | And it's plausibly better for it to be explicit. |
2021-08-03 08:08:14 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-08-03 08:08:49 +0200 | <shachaf> | Maybe I'm the only person who doesn't think "data Thing = forall a. MkThing a" is a confusing syntax for existentials. |
2021-08-03 08:08:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-03 08:09:22 +0200 | <kosmikus> | shachaf: I don't know how this conversation started. but I'm assuming you know about https://richarde.dev/papers/2021/exists/exists.pdf ?[5~[5~[5~ |
2021-08-03 08:09:25 +0200 | <shachaf> | It's pretty simple: If you have "data A = MkA Int", that means: If x :: Int, then MkA x :: A |
2021-08-03 08:09:47 +0200 | <shachaf> | And if you have "data A = forall t. MkA t", that means: For all t, if x :: t, then MkA x :: A |
2021-08-03 08:09:59 +0200 | <kosmikus> | shachaf: fwiw, I always thought that syntax is plausible, except that of course there's the obvious problem of people expecting to see an "exists" if the concept is called "existential types". |
2021-08-03 08:10:14 +0200 | <shachaf> | kosmikus: Oh, nope. I've been out of the loop for a long time. |
2021-08-03 08:11:52 +0200 | <kosmikus> | I haven't read the paper. so I don't how close to being implemented this is. |
2021-08-03 08:12:24 +0200 | <shachaf> | Note that you can write "data Exists f = forall a. Exists (f a)" in existing GHC Haskell. |
2021-08-03 08:12:40 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-03 08:12:46 +0200 | <shachaf> | And also "data k *> a = k => Foo a" for co-constraints. |
2021-08-03 08:13:09 +0200 | <shachaf> | I guess the paper calls that ∧? I'm a little skeptical, since it's not symmetric. |
2021-08-03 08:13:34 +0200 | <shachaf> | Oh, they say that right on the next page. |
2021-08-03 08:15:50 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-08-03 08:16:46 +0200 | <shachaf> | So I guess their approach is semi-explicit but still has first-class existentials. Seems like a nice compromise! |
2021-08-03 08:17:41 +0200 | <shachaf> | Oh, this is from... This month? |
2021-08-03 08:18:38 +0200 | <shachaf> | Oh, that was just an example. |
2021-08-03 08:18:56 +0200 | <shachaf> | kosmikus: I guess I'll read this more carefully later. Thanks for the link! |
2021-08-03 08:21:38 +0200 | ziman | (~ziman@c25-5.condornet.sk) (Changing host) |
2021-08-03 08:21:38 +0200 | ziman | (~ziman@user/ziman) |
2021-08-03 08:22:44 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-08-03 08:24:00 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 256 seconds) |
2021-08-03 08:25:19 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
2021-08-03 08:25:19 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-08-03 08:25:23 +0200 | steven1 | (~steven@172.92.136.203) (Quit: WeeChat 3.2) |
2021-08-03 08:25:54 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-08-03 08:26:22 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 245 seconds) |
2021-08-03 08:27:14 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-08-03 08:29:59 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-08-03 08:32:12 +0200 | hexeme_ | (~hexeme@user/hexeme) (Quit: co'o ro do) |
2021-08-03 08:33:03 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-03 08:33:11 +0200 | hexeme | (~hexeme@user/hexeme) |
2021-08-03 08:33:26 +0200 | jespada | (~jespada@90.254.247.46) |
2021-08-03 08:35:51 +0200 | jjhoo | (~jahakala@dsl-trebng21-58c18f-56.dhcp.inet.fi) |
2021-08-03 08:36:09 +0200 | jjhoo | (~jahakala@dsl-trebng21-58c18f-56.dhcp.inet.fi) (Client Quit) |
2021-08-03 08:37:46 +0200 | jjhoo | (~jahakala@dsl-trebng21-58c18f-56.dhcp.inet.fi) |
2021-08-03 08:38:02 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-08-03 08:45:42 +0200 | hexeme | (~hexeme@user/hexeme) (Quit: co'o ro do) |
2021-08-03 08:48:48 +0200 | hexeme | (~hexeme@user/hexeme) |
2021-08-03 08:48:57 +0200 | vysn | (~vysn@user/vysn) |
2021-08-03 08:55:30 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bab8:2602:a3cf:c129) |
2021-08-03 08:58:00 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 256 seconds) |
2021-08-03 08:59:11 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-08-03 09:00:21 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-08-03 09:00:29 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 09:00:34 +0200 | chris | Guest217 |
2021-08-03 09:01:22 +0200 | xff0x | (~xff0x@2001:1a81:521f:1e00:cb93:2bda:b1c:f227) (Ping timeout: 240 seconds) |
2021-08-03 09:01:48 +0200 | michalz | (~michalz@185.246.204.40) |
2021-08-03 09:02:27 +0200 | xff0x | (~xff0x@2001:1a81:521f:1e00:df79:95ae:114:be51) |
2021-08-03 09:04:39 +0200 | chele | (~chele@user/chele) |
2021-08-03 09:05:47 +0200 | fendor | (~fendor@178.115.48.162.wireless.dyn.drei.com) |
2021-08-03 09:12:54 +0200 | ironsoba | (~z@193.36.225.59) (Ping timeout: 272 seconds) |
2021-08-03 09:14:00 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b9591c199f99eb1b080aa.dip0.t-ipconnect.de) |
2021-08-03 09:18:39 +0200 | reumeth2 | (~reumeth@user/reumeth) |
2021-08-03 09:18:45 +0200 | thyriaen | (~thyriaen@dynamic-078-055-141-033.78.55.pool.telefonica.de) (Quit: Leaving) |
2021-08-03 09:20:02 +0200 | reumeth | (~reumeth@user/reumeth) (Remote host closed the connection) |
2021-08-03 09:21:54 +0200 | <Hecate> | maralorn: hi! I don't quite understand how I can benefit from this PR https://github.com/nixos/nixpkgs/pull/125936 |
2021-08-03 09:22:06 +0200 | <Hecate> | because the nixpkgs search engine only shows to me 8104 |
2021-08-03 09:22:36 +0200 | ytg | (~ytg@109-186-140-208.bb.netvision.net.il) |
2021-08-03 09:22:58 +0200 | ytg | (~ytg@109-186-140-208.bb.netvision.net.il) (Client Quit) |
2021-08-03 09:24:10 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-08-03 09:28:08 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) |
2021-08-03 09:29:34 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 09:32:34 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-08-03 09:35:45 +0200 | m811 | (~user@93-181-35-213.dyn.estpak.ee) (Quit: "If you put a million monkeys at a million keyboards, one of them will eventually write a Java program. The rest of them will write Perl programs.") |
2021-08-03 09:36:41 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-08-03 09:37:15 +0200 | zeenk | (~zeenk@2a02:2f04:a211:a800:553b:3cb0:5ea1:7e83) |
2021-08-03 09:40:39 +0200 | Guest4278 | (~yorick@pennyworth.yori.cc) (Changing host) |
2021-08-03 09:40:39 +0200 | Guest4278 | (~yorick@user/yorick) |
2021-08-03 09:40:41 +0200 | Guest4278 | yorick |
2021-08-03 09:43:58 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-03 09:44:54 +0200 | kuribas | (~user@ptr-25vy0i9yst6l4ryh82e.18120a2.ip6.access.telenet.be) |
2021-08-03 09:50:54 +0200 | dagit | (~dagit@2601:1c2:1b7f:9fa0:5146:76a:259b:45c5) (Ping timeout: 272 seconds) |
2021-08-03 10:03:12 +0200 | CnnibisIndica | (~herb@user/mesaboogie) |
2021-08-03 10:03:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 10:04:55 +0200 | CnnibisIndica | CannabisIndica |
2021-08-03 10:05:54 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-08-03 10:08:20 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-08-03 10:08:54 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-08-03 10:09:40 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-08-03 10:09:56 +0200 | xsperry | (~as@user/xsperry) |
2021-08-03 10:14:03 +0200 | <merijn> | Anyone know if cabal.project supports conditionals? |
2021-08-03 10:14:33 +0200 | <sclv> | i suspect not |
2021-08-03 10:14:55 +0200 | <merijn> | Rats |
2021-08-03 10:15:07 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 245 seconds) |
2021-08-03 10:17:23 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-08-03 10:17:33 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-03 10:17:48 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-03 10:19:07 +0200 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) |
2021-08-03 10:20:47 +0200 | <timCF> | Hello! I have a question, why `ExceptT e m a` is not a bifunctor? I can use its Functor instance to map over `a`, and `withExceptT` to map over `e`, but can not use `bimap` to do both at the same time. |
2021-08-03 10:21:08 +0200 | <merijn> | timCF: Because the types don't line up |
2021-08-03 10:21:19 +0200 | <merijn> | Bifunctor applies to the last two type arguments |
2021-08-03 10:21:32 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-03 10:21:34 +0200 | <timCF> | Because of `m`? |
2021-08-03 10:21:38 +0200 | <merijn> | "ExceptT e" can't be a bifunctor, because the kind of 'm' doesn't match |
2021-08-03 10:22:38 +0200 | <timCF> | Yes, I see. I think I'll just continue to use `fmap` + `withExceptT` then. Thanks! |
2021-08-03 10:23:51 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 265 seconds) |
2021-08-03 10:26:08 +0200 | azeem | (~azeem@176.200.220.247) |
2021-08-03 10:28:34 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 240 seconds) |
2021-08-03 10:29:41 +0200 | azeem | (~azeem@176.200.220.247) (Read error: Connection reset by peer) |
2021-08-03 10:30:43 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-08-03 10:31:20 +0200 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving) |
2021-08-03 10:36:48 +0200 | MasseR | (~MasseR@51.15.143.128) (Ping timeout: 258 seconds) |
2021-08-03 10:40:42 +0200 | reumeth2 | (~reumeth@user/reumeth) (Ping timeout: 258 seconds) |
2021-08-03 10:42:37 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 258 seconds) |
2021-08-03 10:46:21 +0200 | spirit_ | (~spirit@122.174.131.167) |
2021-08-03 10:46:41 +0200 | spirit_ | (~spirit@122.174.131.167) (Client Quit) |
2021-08-03 10:46:49 +0200 | spirit_ | (~spirit@122.174.131.167) |
2021-08-03 10:51:30 +0200 | <delYsid> | :t fromMaybe <*> Just |
2021-08-03 10:51:30 +0200 | <lambdabot> | b -> b |
2021-08-03 10:52:07 +0200 | <delYsid> | I know it works, I even remember the trick since a few months and can write it out when I need it. But why? Working the types out makes me dizzy somehow |
2021-08-03 10:52:16 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 10:52:20 +0200 | <merijn> | Applicative instance of ((->) r) |
2021-08-03 10:52:48 +0200 | <delYsid> | oh, it works in the function applicative? Thats why it can copy the arg! |
2021-08-03 10:53:59 +0200 | MasseR | (~MasseR@51.15.143.128) |
2021-08-03 10:56:20 +0200 | kritzefitz | (~kritzefit@picard.host.weltraumschlangen.de) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-08-03 10:56:22 +0200 | Guest217 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-03 10:56:42 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-03 10:56:46 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-03 10:56:55 +0200 | kritzefitz | (~kritzefit@picard.host.weltraumschlangen.de) |
2021-08-03 11:04:20 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 11:04:29 +0200 | reumeth2 | (~reumeth@user/reumeth) |
2021-08-03 11:05:52 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 250 seconds) |
2021-08-03 11:06:00 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 11:10:22 +0200 | haskell-lurk | (~haskell-l@78.155.54.115) (Quit: Client closed) |
2021-08-03 11:12:12 +0200 | pmk | (~user@2a02:587:9416:822f:cf:6d30:99e9:ac07) (Ping timeout: 276 seconds) |
2021-08-03 11:12:22 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-03 11:12:59 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-08-03 11:15:35 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-08-03 11:16:43 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-03 11:19:02 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bab8:2602:a3cf:c129) (Ping timeout: 258 seconds) |
2021-08-03 11:25:22 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-03 11:29:45 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-08-03 11:31:04 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-08-03 11:32:56 +0200 | oxide | (~lambda@user/oxide) |
2021-08-03 11:34:43 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9a95:d5cc:dad7:5bc2) |
2021-08-03 11:38:52 +0200 | jespada | (~jespada@90.254.247.46) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-08-03 11:39:20 +0200 | phma | (phma@2001:5b0:210d:4948:1e1a:34b5:d23e:1981) (Read error: Connection reset by peer) |
2021-08-03 11:39:40 +0200 | jespada | (~jespada@90.254.247.46) |
2021-08-03 11:39:44 +0200 | spirit_ | (~spirit@122.174.131.167) (Quit: Konversation terminated!) |
2021-08-03 11:40:32 +0200 | pmk | (~user@195.114.237.86) |
2021-08-03 11:41:29 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-03 11:41:36 +0200 | jespada | (~jespada@90.254.247.46) (Client Quit) |
2021-08-03 11:42:00 +0200 | jespada | (~jespada@90.254.247.46) |
2021-08-03 11:42:20 +0200 | yoctocell | (~user@h87-96-130-155.cust.a3fiber.se) |
2021-08-03 11:48:22 +0200 | phma | (~phma@2600:1004:b127:459d:fed5:fe1c:2170:ecd1) |
2021-08-03 11:48:45 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-03 11:49:19 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 11:52:01 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-03 11:53:30 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-03 11:59:48 +0200 | jippiedoe | (~david@77-171-152-62.fixed.kpn.net) |
2021-08-03 12:01:02 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9a95:d5cc:dad7:5bc2) (Ping timeout: 256 seconds) |
2021-08-03 12:04:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-08-03 12:04:51 +0200 | agua | (~agua@2804:18:7f:1e53:1:0:7e70:81d) (Ping timeout: 276 seconds) |
2021-08-03 12:05:09 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 12:05:14 +0200 | mei | (~mei@user/mei) (Quit: mei) |
2021-08-03 12:06:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:09:17 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-08-03 12:09:54 +0200 | teddyc | (theodorc@cassarossa.samfundet.no) (Ping timeout: 240 seconds) |
2021-08-03 12:11:23 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-08-03 12:12:03 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-08-03 12:12:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:13:35 +0200 | qbt | (~edun@user/edun) (Read error: Connection reset by peer) |
2021-08-03 12:16:01 +0200 | qbt | (~edun@user/edun) |
2021-08-03 12:16:55 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-08-03 12:17:19 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-03 12:17:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-03 12:18:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:22:10 +0200 | xsperry | (~as@user/xsperry) (Remote host closed the connection) |
2021-08-03 12:23:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-03 12:24:19 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:26:47 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 12:27:40 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-08-03 12:28:10 +0200 | __monty__ | (~toonn@user/toonn) |
2021-08-03 12:29:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-08-03 12:30:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:31:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-08-03 12:35:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-08-03 12:36:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:36:40 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 244 seconds) |
2021-08-03 12:36:46 +0200 | mastarija | (~mastarija@31.217.8.174) |
2021-08-03 12:38:09 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:c3b9:c489:f445:c424) |
2021-08-03 12:38:14 +0200 | <mastarija> | I don't quite get this ConstrainedMonad trick using EDSL, or rather, I get the idea, but I don't understand how they produced a Monad instance without doing the Functor and Applicative. |
2021-08-03 12:38:29 +0200 | <mastarija> | Was this before Monad was dependent on Applicative and Functor? |
2021-08-03 12:38:49 +0200 | <mastarija> | https://ku-fpg.github.io/files/Sculthorpe-13-ConstrainedMonad.pdf |
2021-08-03 12:38:54 +0200 | ubert | (~Thunderbi@91.141.40.237.wireless.dyn.drei.com) |
2021-08-03 12:39:12 +0200 | Atum_ | (IRC@user/atum/x-2392232) |
2021-08-03 12:41:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-08-03 12:42:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:42:58 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds) |
2021-08-03 12:43:51 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-03 12:46:04 +0200 | integral_ | integral |
2021-08-03 12:46:48 +0200 | <Arahael> | I'm trying to figure out how to apply Middleware to a Yesod application - any tips/pointers? |
2021-08-03 12:47:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-03 12:47:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:47:46 +0200 | berberman_ | (~berberman@user/berberman) (Ping timeout: 240 seconds) |
2021-08-03 12:48:33 +0200 | berberman | (~berberman@user/berberman) |
2021-08-03 12:49:27 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-08-03 12:50:02 +0200 | anandprabhu | (~anandprab@94.202.243.198) |
2021-08-03 12:52:46 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) |
2021-08-03 12:52:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-03 12:53:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 12:54:06 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 258 seconds) |
2021-08-03 12:55:19 +0200 | <Arahael> | I'd be asking a more specific question if I knew what on earth it is you do. I want to add an etag to the headers of all responses. |
2021-08-03 12:56:33 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-08-03 12:58:19 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-08-03 12:59:02 +0200 | <Arahael> | Aha, so rather than using Wai middleware, I have to override the implemetnation in my Yesod instance. That works. |
2021-08-03 12:59:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-03 12:59:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 13:01:49 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-08-03 13:03:17 +0200 | <jippiedoe> | mastarija: From what I can see (just a quick glance at the paper), they probably simply ignore the functor/applicative superclass because it's orthoganal to what they're talking about |
2021-08-03 13:03:18 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 258 seconds) |
2021-08-03 13:03:57 +0200 | <jippiedoe> | At some point in the paper they even say "applicative functors lie between functors and monads" :) |
2021-08-03 13:03:59 +0200 | <mastarija> | jippiedoe, I guess, but instance becomes much more complex and hard to derive once you add those in |
2021-08-03 13:04:26 +0200 | <dminuoso> | mastarija: Not really. |
2021-08-03 13:04:47 +0200 | <dminuoso> | mastarija: functor and applicative can be written in terms of monad, statically |
2021-08-03 13:05:00 +0200 | <dminuoso> | instance Applicative where pure = return; (<*>) = ap |
2021-08-03 13:05:08 +0200 | <mastarija> | dminuoso, oh... yes |
2021-08-03 13:05:24 +0200 | <dminuoso> | instance Functor where fmap = liftM |
2021-08-03 13:05:37 +0200 | <jippiedoe> | which is why they're a superclass of Monad to begin with :) |
2021-08-03 13:05:41 +0200 | <dminuoso> | Oh, I was missing the type constructor there in each declaration, but you get it. |
2021-08-03 13:05:43 +0200 | ubert | (~Thunderbi@91.141.40.237.wireless.dyn.drei.com) (Quit: ubert) |
2021-08-03 13:05:52 +0200 | <mastarija> | Yes |
2021-08-03 13:05:53 +0200 | <mastarija> | thx |
2021-08-03 13:05:57 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 245 seconds) |
2021-08-03 13:08:07 +0200 | AlexNoo_ | (~AlexNoo@94.233.240.129) |
2021-08-03 13:09:37 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 13:10:08 +0200 | AlexZenon | (~alzenon@178.34.150.193) (Ping timeout: 258 seconds) |
2021-08-03 13:10:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-08-03 13:10:58 +0200 | Alex_test | (~al_test@178.34.150.193) (Ping timeout: 240 seconds) |
2021-08-03 13:11:40 +0200 | AlexNoo | (~AlexNoo@178.34.150.193) (Ping timeout: 272 seconds) |
2021-08-03 13:11:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 13:12:23 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-08-03 13:13:50 +0200 | mousey | (~skymouse@gateway/tor-sasl/mousey) |
2021-08-03 13:14:20 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-08-03 13:14:28 +0200 | oxide | (~lambda@user/oxide) (Read error: Connection reset by peer) |
2021-08-03 13:14:32 +0200 | AlexZenon | (~alzenon@94.233.240.129) |
2021-08-03 13:15:45 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-08-03 13:17:13 +0200 | Alex_test | (~al_test@94.233.240.129) |
2021-08-03 13:17:45 +0200 | mastarija_ | (~mastarija@31.217.8.174) |
2021-08-03 13:17:57 +0200 | <Arahael> | Ok, I'm lost. Is there _any_ documentation that shows how one can add an etag to a yesod response in a Yesod Middleware? I've got a `HandlerFor App res`, but I have no idea what to do with it. |
2021-08-03 13:18:56 +0200 | <Arahael> | Ah, I need to look at Yesod.Core.Handler |
2021-08-03 13:19:35 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-03 13:20:08 +0200 | Atum_ | (IRC@user/atum/x-2392232) |
2021-08-03 13:20:56 +0200 | mastarija | (~mastarija@31.217.8.174) (Ping timeout: 258 seconds) |
2021-08-03 13:21:40 +0200 | <Arahael> | No, I'm still lost. :( |
2021-08-03 13:22:24 +0200 | <merijn> | Arahael: That's natual with Yesod :p |
2021-08-03 13:22:31 +0200 | <Arahael> | merijn: Ha. :( |
2021-08-03 13:22:43 +0200 | <Arahael> | merijn: Sometimes I regret choosing it! |
2021-08-03 13:22:51 +0200 | <merijn> | Only sometimes? :p |
2021-08-03 13:22:57 +0200 | phma_ | (phma@2001:5b0:211c:72c8:b364:62c6:6db3:cb87) |
2021-08-03 13:22:59 +0200 | <Arahael> | :) |
2021-08-03 13:23:14 +0200 | phma | (~phma@2600:1004:b127:459d:fed5:fe1c:2170:ecd1) (Ping timeout: 250 seconds) |
2021-08-03 13:23:56 +0200 | <Arahael> | There is lots of good stuff, but whilst the regular boring stuff seems... Good... Stuff as simple as middleware is fiendlishly complex. |
2021-08-03 13:25:43 +0200 | <Arahael> | I probably should just use warp directly if I were doing this again, and use Wai directly. |
2021-08-03 13:26:42 +0200 | <Arahael> | Ok, there's nothing in Yesod.Core.Handler that seems to be helpful. |
2021-08-03 13:27:01 +0200 | <Arahael> | Nothing that lets me get access to the response. |
2021-08-03 13:28:17 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-08-03 13:32:13 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-08-03 13:32:56 +0200 | <Arahael> | Ok, it seems I can't realistically set etags as part of middleware. Yesod just doesn't allow it, I think. |
2021-08-03 13:34:02 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 252 seconds) |
2021-08-03 13:34:35 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 13:35:06 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 13:35:10 +0200 | chris | Guest7390 |
2021-08-03 13:35:30 +0200 | <merijn> | I guess that the best/only way to return a set of exceptions is to simpl return something like [SomeException]? |
2021-08-03 13:36:29 +0200 | oxide | (~lambda@user/oxide) |
2021-08-03 13:36:36 +0200 | <dminuoso> | merijn: hard to say, what's the exact semantics you're looking for? |
2021-08-03 13:37:03 +0200 | <merijn> | dminuoso: I have N workers threads and if one hits an exception, I want to report it |
2021-08-03 13:37:19 +0200 | AlexNoo_ | AlexNoo |
2021-08-03 13:37:21 +0200 | <merijn> | dminuoso: Except, there's a conceptual race where 2 or more threads happen to hit an exception at the same time |
2021-08-03 13:37:46 +0200 | <dminuoso> | Where does the set come in? Seems like each one would just report a singular exception |
2021-08-03 13:38:04 +0200 | <merijn> | dminuoso: I have a parent thread responsible for the N children |
2021-08-03 13:38:19 +0200 | <merijn> | dminuoso: If one of the children dies, I kill them all and report it in the parent thread |
2021-08-03 13:38:29 +0200 | <merijn> | dminuoso: So in case of a race I have to report multiple exceptions |
2021-08-03 13:38:34 +0200 | <dminuoso> | Intuitively I'd rather create a separate MultiException of some kind |
2021-08-03 13:38:51 +0200 | <dminuoso> | But the details depend on how the parent deals with that exceptoin |
2021-08-03 13:39:03 +0200 | <merijn> | dminuoso: Well, yes, hence my question how to best aggregate the multiple exception into one datatype :p |
2021-08-03 13:39:34 +0200 | <merijn> | dminuoso: You can configure different behaviour for the parent, but by default it cleans up and rethrows |
2021-08-03 13:40:06 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 258 seconds) |
2021-08-03 13:40:49 +0200 | mastarija__ | (~mastarija@31.217.16.231) |
2021-08-03 13:43:56 +0200 | mastarija_ | (~mastarija@31.217.8.174) (Ping timeout: 252 seconds) |
2021-08-03 13:44:15 +0200 | mastarija | (~mastarija@78-3-212-215.adsl.net.t-com.hr) |
2021-08-03 13:44:37 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-08-03 13:46:26 +0200 | mastarija__ | (~mastarija@31.217.16.231) (Ping timeout: 256 seconds) |
2021-08-03 13:46:59 +0200 | <merijn> | Somewhat relatedly |
2021-08-03 13:47:17 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2) |
2021-08-03 13:47:33 +0200 | <merijn> | Is there a way to allow people to pattern match on a constructor, without letting them create their own values? I guess some pattern synonym hackery would allow that |
2021-08-03 13:49:38 +0200 | <hpc> | probably yeah |
2021-08-03 13:50:06 +0200 | <hpc> | or pattern guards or view patterns would be better |
2021-08-03 13:50:42 +0200 | <merijn> | Not really in this case |
2021-08-03 13:50:58 +0200 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) |
2021-08-03 13:52:25 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-08-03 13:52:35 +0200 | <merijn> | Basically, I'm trying to put our dynamically typed exceptions everyone forgets into practice, but I wanna prevent people from people (accidentally or intentionally) inserting their exception into my part of the hierarchy :p |
2021-08-03 13:53:26 +0200 | <dminuoso> | merijn: You could also present it via some form of scott encoding (i.e. via its case-of expression) |
2021-08-03 13:54:00 +0200 | <merijn> | dminuoso: hmm? |
2021-08-03 13:55:27 +0200 | <timCF> | Hello! I have a huge Haskell source code file generated by `proto-lens-protoc` protobuf plugin from very big Google Protobuf document. The size of resulting Haskell file is something around 3MB. And I did found out that GHC 8.6.5 fails to compile this file on relatively weak laptops (8GB RAM) with default settings. But it compiles quite ok on machines with bigger RAM capacity. What can you suggest to |
2021-08-03 13:55:31 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-08-03 13:55:33 +0200 | <timCF> | workaround this issue? Maybe there are some magical GHC flags to reduce RAM consumption? Or I should just invest into GHC upgrade in my project? |
2021-08-03 13:55:59 +0200 | <dminuoso> | Invest into more RAM? :-p |
2021-08-03 13:56:05 +0200 | <merijn> | That, yes :p |
2021-08-03 13:56:10 +0200 | <timCF> | Haha :) |
2021-08-03 13:56:30 +0200 | <merijn> | Or patch proto-lens-protoc to produce more GHC friendly output |
2021-08-03 13:56:59 +0200 | <merijn> | There's work on optimising GHCs memory usage/compile times, but that's hard work and will take a while to actually improve things (and only in newer GHCs) |
2021-08-03 13:57:30 +0200 | <merijn> | So "buy more RAM" and "change the generated code" are the only really short-term options you have |
2021-08-03 13:57:54 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 272 seconds) |
2021-08-03 13:58:12 +0200 | <timCF> | Do you remember significant improvements on RAM consumption with GHC 9 upgrade? I just didn't tried latest versions of compiler. Is it better? |
2021-08-03 13:58:26 +0200 | <merijn> | I can't remember, because I'm still using 8.10 :p |
2021-08-03 13:58:53 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Ping timeout: 258 seconds) |
2021-08-03 13:59:06 +0200 | <timCF> | Well, things like compilers usually are getting better over time :) |
2021-08-03 13:59:09 +0200 | <hpc> | i like the technical correctness of saying "i can't remember" about something that hasn't happened yet |
2021-08-03 13:59:15 +0200 | <dminuoso> | GHC hasn't really received any updates recently that majorly change how many resources it consumes. |
2021-08-03 13:59:20 +0200 | <dminuoso> | Aside from bug fixes of course |
2021-08-03 13:59:53 +0200 | <merijn> | hpc: Technically correct is the best kind of correct :p |
2021-08-03 14:01:59 +0200 | <merijn> | ugh |
2021-08-03 14:02:10 +0200 | <merijn> | Is there any hope Hackage will support multiple public libraries soon? >.< |
2021-08-03 14:02:43 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 258 seconds) |
2021-08-03 14:04:23 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
2021-08-03 14:05:46 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 14:06:17 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-03 14:06:51 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 14:11:36 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
2021-08-03 14:12:27 +0200 | <merijn> | What's the cheapest concurrent append operation? I guess IORef with atomicModifyIORef? |
2021-08-03 14:14:42 +0200 | burnside_ | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 14:14:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-08-03 14:17:37 +0200 | nicklaf | (~nick@c-73-231-202-254.hsd1.ca.comcast.net) |
2021-08-03 14:17:41 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-03 14:17:59 +0200 | nicklaf | (~nick@c-73-231-202-254.hsd1.ca.comcast.net) () |
2021-08-03 14:24:11 +0200 | solirc | (~solirc@119.42.116.126) |
2021-08-03 14:24:24 +0200 | anandprabhu | (~anandprab@94.202.243.198) (Quit: Leaving) |
2021-08-03 14:25:41 +0200 | xsperry | (~as@user/xsperry) |
2021-08-03 14:29:42 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-08-03 14:35:35 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-03 14:36:01 +0200 | aman | (~aman@user/aman) |
2021-08-03 14:36:45 +0200 | sub0 | (~bc8150b8@217.29.117.252) |
2021-08-03 14:37:26 +0200 | futty | (~futty@c83-252-75-55.bredband.tele2.se) |
2021-08-03 14:40:16 +0200 | <futty> | In the book Learn You A Haskell at chapter 4, there are two consecutive examples of recursion. The two type signatures are length' :: (Num b) => [a] -> b AND sum' :: (Num a) => [a] -> a. a and b are polymorphic type variables but how do I know where to use a and where to use b? |
2021-08-03 14:40:44 +0200 | <merijn> | futty: What do you mean? |
2021-08-03 14:41:59 +0200 | <futty> | I mean the two polymorphic variables are different. In the first one, b is used. In the second a is used all the way. Can I for example write length' :: (Num a) => [a] -> a in the first one? I dont really grasp that concept. |
2021-08-03 14:42:38 +0200 | <merijn> | futty: The actual letters don't matter, except that within a single type all occurences of that letter are the same type |
2021-08-03 14:42:57 +0200 | <merijn> | futty: So your new length example can only count lengths of list that have the same elements as the result |
2021-08-03 14:44:12 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-08-03 14:44:17 +0200 | <merijn> | "length' :: Num a => [a] -> a" effectively says "I can compute the length of a list of 'a's and produce a resulting 'a', as long as 'a' is an instance of Num", this means you *can't* compute the length of, say, [Char], because Char is not an instance of Num |
2021-08-03 14:44:25 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-03 14:44:30 +0200 | jippiedoe | (~david@77-171-152-62.fixed.kpn.net) (Ping timeout: 258 seconds) |
2021-08-03 14:44:58 +0200 | fendor_ | (~fendor@77.119.205.218.wireless.dyn.drei.com) |
2021-08-03 14:45:02 +0200 | <merijn> | futty: In the original version we're computing the length of a list of 'b's (whatever 'b' may be) and produce a result that can be any 'a' that is a Num instance |
2021-08-03 14:45:05 +0200 | <futty> | ah, so in length' :: (Num b) => [a] -> b, a can be of type String and the output is an Int. In the sum' :: (Num a) => [a] -> a., a MUST be of type Int because there is no other way? |
2021-08-03 14:45:19 +0200 | <dminuoso> | futty: A type variable is something the *consumer/caller/user* can/must chose a type for. |
2021-08-03 14:45:20 +0200 | <merijn> | futty: Well, it could be Double too :p |
2021-08-03 14:45:24 +0200 | <merijn> | futty: But yes |
2021-08-03 14:45:36 +0200 | <futty> | Yes. I understand now. Thank you, grateful. |
2021-08-03 14:46:16 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) |
2021-08-03 14:46:46 +0200 | <merijn> | futty: Distinct type variables (may!) have different types, but identical type variables (within a signature) all refer to the exact same type |
2021-08-03 14:46:47 +0200 | mastarija | (~mastarija@78-3-212-215.adsl.net.t-com.hr) (Ping timeout: 245 seconds) |
2021-08-03 14:47:04 +0200 | <futty> | Got it. |
2021-08-03 14:47:29 +0200 | <merijn> | futty: So in case of '[b] -> a' we can pick 'b = Char' and 'a = int', but note that 'b = Int' and 'a = Int' is also valid, so they don't *have* to be different |
2021-08-03 14:47:35 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-08-03 14:47:38 +0200 | fendor | (~fendor@178.115.48.162.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
2021-08-03 14:48:45 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-08-03 14:49:01 +0200 | <futty> | I was so confused, thank you |
2021-08-03 14:49:56 +0200 | <merijn> | Note that LYAH is a nice "here's some cool examples" book, but generally not considered all that good at teaching you how to actually write Haskell |
2021-08-03 14:52:07 +0200 | <merijn> | Graham Hutton's "Programming in Haskell", Richard Bird's "Thinking Functionally with Haskell", and Julie Moronuki & Chris Allen's "Haskell from First Principles" are generally considered better introduction to teach actually programming in Haskell |
2021-08-03 14:52:17 +0200 | <merijn> | @where cis194 |
2021-08-03 14:52:17 +0200 | <lambdabot> | https://www.seas.upenn.edu/~cis194/spring13/lectures.html |
2021-08-03 14:52:21 +0200 | <merijn> | @where exercises |
2021-08-03 14:52:21 +0200 | <lambdabot> | http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems https://github.com/bitemyapp/learnhaskell http://www.reddit.com/r/dailyprogrammer/ http://www.reddit.com/r/programmingchallenges/ |
2021-08-03 14:52:30 +0200 | <merijn> | Are also some good pointers |
2021-08-03 14:54:00 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-08-03 14:55:11 +0200 | <futty> | I actually tried to begin with Haskell from First Principles long ago but my computer science course at university uses LYAH. I got a re-exam and try to remember first by course resources. Then I'll read Haskell from First Principles. |
2021-08-03 15:00:23 +0200 | Melantha | (~pyon@user/pyon) (Ping timeout: 252 seconds) |
2021-08-03 15:01:07 +0200 | alx741 | (~alx741@181.196.69.121) |
2021-08-03 15:02:11 +0200 | Melantha | (~pyon@user/pyon) |
2021-08-03 15:06:42 +0200 | favonia | (~favonia@user/favonia) |
2021-08-03 15:12:49 +0200 | pbrisbin | (~patrick@pool-108-52-124-197.phlapa.fios.verizon.net) |
2021-08-03 15:12:56 +0200 | qbt | (~edun@user/edun) (Quit: Leaving) |
2021-08-03 15:14:34 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 240 seconds) |
2021-08-03 15:17:43 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-08-03 15:19:33 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2) |
2021-08-03 15:20:38 +0200 | mastarija | (~mastarija@78-3-212-215.adsl.net.t-com.hr) |
2021-08-03 15:20:57 +0200 | haskell-lurkmore | (~haskell-l@78.155.54.115) |
2021-08-03 15:23:11 +0200 | markpythonicbitc | (~textual@2601:647:5a00:35:e0da:ada7:2ca5:10dd) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-08-03 15:25:06 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-dfb3-4ecf-f29f-159d.fixed6.kpn.net) |
2021-08-03 15:25:40 +0200 | <merijn> | hmm |
2021-08-03 15:25:51 +0200 | <merijn> | What happens if the cleanup part of a bracket throws an exception? |
2021-08-03 15:29:36 +0200 | agua_pesada | (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) (Ping timeout: 276 seconds) |
2021-08-03 15:30:05 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-08-03 15:30:11 +0200 | <Taneb> | merijn: I think the whole thing throws an exception |
2021-08-03 15:30:21 +0200 | <merijn> | Yes, but which one |
2021-08-03 15:30:55 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-08-03 15:33:45 +0200 | <Taneb> | The one the cleanup action throws |
2021-08-03 15:34:08 +0200 | <merijn> | You say this very confidently, but I have serious question marks whether it does :p |
2021-08-03 15:34:27 +0200 | <Taneb> | I'm looking at the source |
2021-08-03 15:34:28 +0200 | mr-red | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-03 15:34:30 +0200 | <Taneb> | https://hackage.haskell.org/package/base-4.15.0.0/docs/src/Control-Exception-Base.html#bracket |
2021-08-03 15:34:31 +0200 | <dminuoso> | Im also confident Taneb is right |
2021-08-03 15:34:35 +0200 | <dminuoso> | The implementation of bracket is dead simple |
2021-08-03 15:34:40 +0200 | <Taneb> | Although I will admit I have done no experimentation |
2021-08-03 15:34:57 +0200 | <merijn> | dminuoso: Hard disagree on it being simple :p |
2021-08-03 15:35:23 +0200 | <merijn> | dminuoso: The runtime semantics of bracket are anything but simple, imo |
2021-08-03 15:35:33 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-08-03 15:35:52 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 258 seconds) |
2021-08-03 15:36:01 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-03 15:36:13 +0200 | burnside_ | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-03 15:36:52 +0200 | <dminuoso> | merijn: Well if you follow this rabbit hole, it ends up being a discussion about "what happens if you throw an exception in the catch clause", no? |
2021-08-03 15:37:11 +0200 | <merijn> | dminuoso: Well yes, that's exactly the rabbit hole I'm currently heading down |
2021-08-03 15:37:40 +0200 | <dminuoso> | Sorry I meant "in the catching part of `catch`" |
2021-08-03 15:38:58 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-08-03 15:39:46 +0200 | <Taneb> | Oh, hmm, experimentation suggests that I was wrong |
2021-08-03 15:39:59 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) |
2021-08-03 15:40:01 +0200 | <Taneb> | No, I'm just using bracket wrong |
2021-08-03 15:40:09 +0200 | <merijn> | Taneb: I'm not even sure it's deterministic, tbh |
2021-08-03 15:40:19 +0200 | <Taneb> | The release is the second argument, not the third |
2021-08-03 15:40:39 +0200 | <Taneb> | merijn: I think it is. Have you seen anything that suggests it isn't? |
2021-08-03 15:41:01 +0200 | <merijn> | Taneb: I'm just wildly paranoid about literally every part of async exceptions >.> |
2021-08-03 15:41:24 +0200 | <Taneb> | merijn: do you agree that "throwIO a >> throwIO b" always throws a? |
2021-08-03 15:41:39 +0200 | <dminuoso> | fsvo of "always" |
2021-08-03 15:41:41 +0200 | <merijn> | Only probably >.> |
2021-08-03 15:41:45 +0200 | <dminuoso> | in the presence of async exceptions it might not. |
2021-08-03 15:41:54 +0200 | <Taneb> | Assuming there's no other threads messing with it |
2021-08-03 15:41:55 +0200 | <merijn> | Because per GHC semantics it can throw either non-deterministically |
2021-08-03 15:41:55 +0200 | <srid[m]> | lechner: sm if you haven't checked out already https://note.ema.srid.ca/ |
2021-08-03 15:42:03 +0200 | <merijn> | Taneb: Doesn't require other threads |
2021-08-03 15:42:17 +0200 | <Taneb> | merijn: how can it throw b? |
2021-08-03 15:42:41 +0200 | <merijn> | Taneb: GHC optimisation is allowed to make it throw b, iirc |
2021-08-03 15:42:53 +0200 | <Taneb> | That's... very surprising |
2021-08-03 15:43:02 +0200 | <merijn> | Lemme dig up the obscure example |
2021-08-03 15:43:35 +0200 | <Taneb> | If that's true then bracket can also throw either exception, because it's basically doing that |
2021-08-03 15:43:45 +0200 | <merijn> | Taneb: Throwing expressions are allowed to throw *any* of the exceptions that can hypothetically be thrown by that expression |
2021-08-03 15:44:22 +0200 | <merijn> | Someone had a neat (and by neat I mean "maddening") example of code throwing the "wrong" exception |
2021-08-03 15:44:41 +0200 | <Taneb> | throwIO is guaranteed to be sequential, right? That's like the whole point of it over plain throw |
2021-08-03 15:45:11 +0200 | <Taneb> | "The throwIO variant should be used in preference to throw to raise an exception within the IO monad because it guarantees ordering with respect to other IO operations, whereas throw does not." |
2021-08-03 15:46:00 +0200 | pmk | (~user@195.114.237.86) (Ping timeout: 256 seconds) |
2021-08-03 15:46:16 +0200 | <merijn> | Taneb: I'm not sure to what extend the IO guarantees affect imprecise exception semantics, hence why I said "probably 'a'" :) |
2021-08-03 15:46:28 +0200 | mr-red | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-08-03 15:46:38 +0200 | <Taneb> | (from haddocks here: https://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-IO.html#v:throwIO ) |
2021-08-03 15:46:57 +0200 | <merijn> | hmm, looks like throwIO is probably fine |
2021-08-03 15:47:34 +0200 | <Taneb> | If it's not fine, I'm going to be very upset |
2021-08-03 15:48:32 +0200 | pmk | (~user@62.103.231.196) |
2021-08-03 15:49:01 +0200 | agua_pesada | (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) |
2021-08-03 15:49:02 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-03 15:49:49 +0200 | <merijn> | ugh |
2021-08-03 15:50:04 +0200 | <merijn> | Looks like I'm going to have to fundamentally redesign this code |
2021-08-03 15:50:55 +0200 | <Taneb> | merijn: so, with somewhat more confidence now, I will say that, assuming no other threads or external signals, if an exception is thrown in the cleanup of a bracket, _that_ exception and not the inner one will be thrown |
2021-08-03 15:51:40 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-08-03 15:52:21 +0200 | mr-red | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-03 15:53:44 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 252 seconds) |
2021-08-03 15:54:01 +0200 | mr-red | (~drd@93-39-151-19.ip76.fastwebnet.it) (Client Quit) |
2021-08-03 15:54:46 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-03 15:56:09 +0200 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving) |
2021-08-03 15:56:34 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-08-03 16:00:33 +0200 | jess | (~jess@libera/staff/jess) |
2021-08-03 16:04:15 +0200 | phma_ | phma |
2021-08-03 16:05:15 +0200 | <merijn> | hmm |
2021-08-03 16:05:31 +0200 | <merijn> | Maybe I should just say fuck it and depend on exceptions, that'd probably make my life infinitely easier |
2021-08-03 16:06:24 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-08-03 16:06:44 +0200 | <Taneb> | I feel like if you're worried about the low level semantics like that, exceptions might make your life harder |
2021-08-03 16:08:27 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 16:08:34 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 240 seconds) |
2021-08-03 16:08:45 +0200 | <dminuoso> | 15:44:23 merijn | Someone had a neat (and by neat I mean "maddening") example of code throwing the "wrong" exception |
2021-08-03 16:08:52 +0200 | <dminuoso> | merijn: Are you sure you are not conflating it with pure exceptions? |
2021-08-03 16:08:56 +0200 | markpythonicbitc | (~textual@50.228.44.6) |
2021-08-03 16:09:21 +0200 | <merijn> | Taneb: The problem is that, right now I have a weird sort of "inversion of control" passing in different brackets (pipes-safe/conduit/etc.) into my own code and working with that, which is...god awful, would not recommend >.> |
2021-08-03 16:09:40 +0200 | <Taneb> | Sounds Fun(tm) |
2021-08-03 16:09:44 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b95287d3c8ae91691b72a.dip0.t-ipconnect.de) |
2021-08-03 16:09:50 +0200 | <merijn> | If I just require exceptions, I can just write it once with that bracket and then everything else is someone else's problem |
2021-08-03 16:10:10 +0200 | <merijn> | Additionally, both pipes-safe, conduit, and resourcet all support exceptions, so then my life should be much simpler :p |
2021-08-03 16:10:18 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-08-03 16:10:27 +0200 | <Taneb> | :) |
2021-08-03 16:10:40 +0200 | Guest7390 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-03 16:10:52 +0200 | solirc | (~solirc@119.42.116.126) (Ping timeout: 246 seconds) |
2021-08-03 16:11:05 +0200 | deejaytee | (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) |
2021-08-03 16:12:39 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-08-03 16:13:12 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-08-03 16:13:26 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b9591c199f99eb1b080aa.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-08-03 16:14:24 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
2021-08-03 16:14:52 +0200 | <lechner> | srid[m]: Hi, thanks for the link! Is that different from using Hugo with Jamstack (aside from your Haskell DSL)? |
2021-08-03 16:15:34 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 16:15:37 +0200 | chris | Guest9336 |
2021-08-03 16:16:49 +0200 | <merijn> | The only downside is that I lose my elegantly minimal dependencies :p |
2021-08-03 16:17:12 +0200 | <srid[m]> | There is not Haskell DSL. It just converts a folder of Markdown notes to a website, which can be themed fully using Heist HTML templates, and optionally configured using .yml files lechner |
2021-08-03 16:17:45 +0200 | <srid[m]> | A few sites already use it, including my personal website: https://note.ema.srid.ca/examples |
2021-08-03 16:17:50 +0200 | mr-red | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-03 16:18:13 +0200 | <srid[m]> | Mostly ready ... I just need implement the final Zettelkasten features (graph related) and polish things up for final release. |
2021-08-03 16:19:02 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 252 seconds) |
2021-08-03 16:19:46 +0200 | Guest9336 | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2021-08-03 16:20:26 +0200 | <lechner> | srid[m]: okay, i think i got confused with ema https://ema.srid.ca/guide/model |
2021-08-03 16:21:25 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-03 16:22:00 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 16:22:04 +0200 | chris | Guest5930 |
2021-08-03 16:22:40 +0200 | gawen_ | (~gawen@user/gawen) (Quit: cya) |
2021-08-03 16:22:53 +0200 | <srid[m]> | Ema is the static site generator (like Hakyll). |
2021-08-03 16:22:59 +0200 | <srid[m]> | Emanote uses Ema internally. |
2021-08-03 16:23:18 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-03 16:23:42 +0200 | <lechner> | srid[m]: "Emanote is a Haskell program that transforms a bunch of “source files” (Markdown, static files, etc.) into a “target website”" |
2021-08-03 16:23:51 +0200 | <srid[m]> | Ema requires that you write Haskell code (like Hakyll). With Emanote, you just run `emanote` on your folder of Markdown notes and get the website running |
2021-08-03 16:24:15 +0200 | <lechner> | i see |
2021-08-03 16:25:31 +0200 | <maralorn> | Hecate: So we reverted the GHC 8.10.5 update because there were to many bugs in it which broke a bunch of packages. Also people were like let’s do 8.10.6 within a week so we decided to wait for that. |
2021-08-03 16:25:36 +0200 | <maralorn> | Hecate: Still waiting. |
2021-08-03 16:26:46 +0200 | gawen | (~gawen@user/gawen) |
2021-08-03 16:30:47 +0200 | <merijn> | Ah, shit |
2021-08-03 16:30:53 +0200 | <merijn> | I remember why I didn't use exceptions |
2021-08-03 16:31:02 +0200 | <merijn> | ResourceT implements it, but conduit does not :\ |
2021-08-03 16:32:53 +0200 | <Taneb> | Looks like it implements only MonadThrow but not MonadCatch or MonadMask? |
2021-08-03 16:33:54 +0200 | <merijn> | Yeah, you need to use MonadResource for resource management |
2021-08-03 16:35:41 +0200 | <merijn> | The entire API for it is just kind of a mess |
2021-08-03 16:36:19 +0200 | <merijn> | It was designed with one design for conduit, then they rewrote conduit, fundamentally altering several assumptions and half the documentation still refers to the old stuff |
2021-08-03 16:36:35 +0200 | <Taneb> | Yeah, that matches my impression of conduit |
2021-08-03 16:37:36 +0200 | Guest5930 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-03 16:37:58 +0200 | <merijn> | Like, there's a bunch of stuff refering to finalizers, but finalizers were removed from conduit ages ago |
2021-08-03 16:38:09 +0200 | <merijn> | Similar issue with persistent |
2021-08-03 16:38:39 +0200 | <merijn> | Half the persistent API was designed around conduit's finalizers, meaning that half the use-cases of the persistent API are now prone to leak resources >.> |
2021-08-03 16:39:59 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:c3b9:c489:f445:c424) (Quit: WeeChat 2.8) |
2021-08-03 16:41:04 +0200 | <DigitalKiwi> | why do people use them |
2021-08-03 16:41:37 +0200 | <merijn> | DigitalKiwi: Use what? |
2021-08-03 16:42:47 +0200 | <DigitalKiwi> | conduit, persistent |
2021-08-03 16:43:04 +0200 | <merijn> | conduit has the most ecosystem support, partially due to persistent |
2021-08-03 16:43:29 +0200 | <merijn> | And that's what FP-Complete pushes for use with Yesod |
2021-08-03 16:43:42 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 276 seconds) |
2021-08-03 16:44:22 +0200 | <DigitalKiwi> | how much do they charge for up to date docs lol |
2021-08-03 16:44:52 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 258 seconds) |
2021-08-03 16:47:32 +0200 | <sshine> | DigitalKiwi, I think people use persistent because it's mature. |
2021-08-03 16:47:47 +0200 | <sshine> | DigitalKiwi, also, you don't need to know what an arrow is. |
2021-08-03 16:48:46 +0200 | <Taneb> | Are there any database libraries that do require you to know what an arrow is? |
2021-08-03 16:49:15 +0200 | <sshine> | Taneb, OpalEye? |
2021-08-03 16:50:16 +0200 | <sshine> | maybe they went away from that. |
2021-08-03 16:51:10 +0200 | <merijn> | Friends tell friends to just use postgres-simple and sqlite-simple |
2021-08-03 16:51:41 +0200 | <sshine> | I tell myself to use those, too. |
2021-08-03 16:51:42 +0200 | <DigitalKiwi> | my friends hate me ;( |
2021-08-03 16:52:31 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-08-03 16:53:27 +0200 | <merijn> | bleh |
2021-08-03 16:53:46 +0200 | <sshine> | merijn, I'd trade some flexibility for the ability to automate database migrations. |
2021-08-03 16:53:55 +0200 | <merijn> | I hate it when I can turn a race condition only into a "less likely race condition" instead of fixing it |
2021-08-03 16:54:07 +0200 | <merijn> | sshine: Well, you don't get that with persistent either, so :p |
2021-08-03 16:54:24 +0200 | <sshine> | merijn, good to know :p |
2021-08-03 16:54:25 +0200 | <merijn> | sshine: I mean, you "get" it, but it's so broken I handrolled my own system on top |
2021-08-03 16:54:25 +0200 | <yushyin> | i don't have friends who write haskell :( |
2021-08-03 16:54:27 +0200 | reumeth2 | (~reumeth@user/reumeth) (Ping timeout: 258 seconds) |
2021-08-03 16:54:56 +0200 | <sshine> | yushyin, it's never too late! |
2021-08-03 16:56:24 +0200 | <DigitalKiwi> | teach them haskell and your friends will hate you too ;D |
2021-08-03 16:56:53 +0200 | <spruit11> | it's a bit much to program Haskell and expect friends, yes |
2021-08-03 16:57:07 +0200 | <DigitalKiwi> | *chortle* |
2021-08-03 16:59:50 +0200 | <sshine> | if C++ can have "friendship classes", surely Haskell can have a concept of friendship. |
2021-08-03 17:01:45 +0200 | <DigitalKiwi> | TypePolycules |
2021-08-03 17:02:34 +0200 | hololeap_ | (~hololeap@user/hololeap) |
2021-08-03 17:02:44 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-08-03 17:03:04 +0200 | pschorf | (~user@c-73-77-28-188.hsd1.tx.comcast.net) (Remote host closed the connection) |
2021-08-03 17:04:28 +0200 | <geekosaur> | type families are a sort of family-by-choice |
2021-08-03 17:04:52 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-08-03 17:04:56 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-03 17:05:11 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b95287d3c8ae91691b72a.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-08-03 17:06:43 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 258 seconds) |
2021-08-03 17:07:07 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-08-03 17:09:05 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) |
2021-08-03 17:09:33 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-03 17:10:13 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 17:10:17 +0200 | chris | Guest2657 |
2021-08-03 17:10:31 +0200 | Guest2657 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-03 17:10:52 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 17:11:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-03 17:13:55 +0200 | pschorf | (~user@c-73-77-28-188.hsd1.tx.comcast.net) |
2021-08-03 17:13:57 +0200 | zebrag | (~chris@user/zebrag) |
2021-08-03 17:14:45 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-03 17:15:04 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-03 17:15:17 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-08-03 17:15:42 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 17:15:46 +0200 | chris | Guest6275 |
2021-08-03 17:18:17 +0200 | kayvank | (~kayvank@52-119-115-185.PUBLIC.monkeybrains.net) |
2021-08-03 17:19:24 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 250 seconds) |
2021-08-03 17:20:04 +0200 | Guest6275 | (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
2021-08-03 17:21:10 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Quit: mikoto-chan) |
2021-08-03 17:22:12 +0200 | zeenk | (~zeenk@2a02:2f04:a211:a800:553b:3cb0:5ea1:7e83) (Ping timeout: 245 seconds) |
2021-08-03 17:23:46 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-08-03 17:24:49 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-08-03 17:28:52 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-08-03 17:35:20 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-03 17:36:50 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 17:38:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 17:39:15 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 17:39:19 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Client Quit) |
2021-08-03 17:39:53 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 17:41:30 +0200 | retro_ | (~retro@5ec19a54.skybroadband.com) (Ping timeout: 240 seconds) |
2021-08-03 17:43:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-08-03 17:44:09 +0200 | drlkf | (~drlkf@2a02-842a-0191-c401-e6a7-a0ff-fecc-04a7.rev.sfr.net) |
2021-08-03 17:44:13 +0200 | drlkf | (~drlkf@2a02-842a-0191-c401-e6a7-a0ff-fecc-04a7.rev.sfr.net) () |
2021-08-03 17:45:59 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-03 17:47:47 +0200 | <monochrom> | I am my friend --- endoamicalism. |
2021-08-03 17:48:20 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-03 17:48:32 +0200 | sweater | (~sweater@206.81.18.26) (Quit: WeeChat 2.8) |
2021-08-03 17:48:46 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 17:49:27 +0200 | Core9863 | (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) |
2021-08-03 17:49:44 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (WeeChat 2.3) |
2021-08-03 17:50:04 +0200 | mr-red | (~drd@93-39-151-19.ip76.fastwebnet.it) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-08-03 17:50:48 +0200 | agua_pesada | (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) (Ping timeout: 258 seconds) |
2021-08-03 17:53:06 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-03 17:53:47 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 17:57:38 +0200 | <DigitalKiwi> | is that a real word |
2021-08-03 17:57:46 +0200 | <monochrom> | No :) |
2021-08-03 17:58:45 +0200 | peterhil | (~peterhil@mobile-access-b04851-37.dhcp.inet.fi) |
2021-08-03 18:01:32 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Ping timeout: 258 seconds) |
2021-08-03 18:03:00 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds) |
2021-08-03 18:05:36 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 18:07:04 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-08-03 18:07:28 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Client Quit) |
2021-08-03 18:07:36 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 18:09:08 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Client Quit) |
2021-08-03 18:09:21 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 18:09:24 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Client Quit) |
2021-08-03 18:10:37 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 18:11:26 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 18:13:36 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Client Quit) |
2021-08-03 18:13:50 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 18:13:59 +0200 | catern- | catern |
2021-08-03 18:14:42 +0200 | peterhil | (~peterhil@mobile-access-b04851-37.dhcp.inet.fi) (Ping timeout: 240 seconds) |
2021-08-03 18:15:57 +0200 | MoC | (~moc@user/moc) |
2021-08-03 18:20:00 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-03 18:21:29 +0200 | weechat1 | drlkf |
2021-08-03 18:22:07 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 18:24:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
2021-08-03 18:26:29 +0200 | phma | (phma@2001:5b0:211c:72c8:b364:62c6:6db3:cb87) (Read error: Connection reset by peer) |
2021-08-03 18:26:59 +0200 | qbt | (~edun@user/edun) |
2021-08-03 18:27:04 +0200 | edun | (~edun@user/edun) |
2021-08-03 18:27:14 +0200 | edun | (~edun@user/edun) (Remote host closed the connection) |
2021-08-03 18:27:34 +0200 | phma | (phma@2001:5b0:210b:e008:a947:cb40:b68c:f4a9) |
2021-08-03 18:31:50 +0200 | EvanR | (~evan@user/evanr) |
2021-08-03 18:32:18 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 18:32:42 +0200 | futty | (~futty@c83-252-75-55.bredband.tele2.se) (Ping timeout: 240 seconds) |
2021-08-03 18:33:01 +0200 | deejaytee | Guest2142 |
2021-08-03 18:33:01 +0200 | Guest2142 | (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) (Killed (calcium.libera.chat (Nickname regained by services))) |
2021-08-03 18:33:06 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-08-03 18:35:19 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 18:36:54 +0200 | <joel135> | I make shit up -- anaskamorphism. |
2021-08-03 18:36:55 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-08-03 18:37:22 +0200 | <deejaytee> | tbf it's a perfectly cromulent word |
2021-08-03 18:37:39 +0200 | <monochrom> | :) |
2021-08-03 18:38:16 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-08-03 18:39:44 +0200 | Guest170 | (~Guest1@102-250-243-213.terrecablate.net) |
2021-08-03 18:41:07 +0200 | <DigitalKiwi> | cromulent isn't a real word |
2021-08-03 18:42:31 +0200 | Guest170 | (~Guest1@102-250-243-213.terrecablate.net) (Client Quit) |
2021-08-03 18:42:31 +0200 | <dminuoso> | https://en.wikipedia.org/wiki/Embiggen#Embiggen_and_cromulent |
2021-08-03 18:42:48 +0200 | <deejaytee> | ^ |
2021-08-03 18:44:31 +0200 | pavonia | (~user@user/siracusa) |
2021-08-03 18:49:05 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-08-03 18:49:22 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-08-03 18:51:23 +0200 | <DigitalKiwi> | *doubt* |
2021-08-03 18:52:09 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 18:54:19 +0200 | drlkf | (~weechat@2001:41d0:a:62bb::1) (Quit: WeeChat 2.3) |
2021-08-03 18:54:36 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 18:55:33 +0200 | aman | (~aman@user/aman) (Quit: aman) |
2021-08-03 18:56:06 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Client Quit) |
2021-08-03 18:56:18 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 18:56:29 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Client Quit) |
2021-08-03 19:02:08 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 19:04:47 +0200 | mastarija | (~mastarija@78-3-212-215.adsl.net.t-com.hr) (Ping timeout: 258 seconds) |
2021-08-03 19:06:58 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-03 19:07:14 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Remote host closed the connection) |
2021-08-03 19:07:45 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) (Quit: WeeChat 2.3) |
2021-08-03 19:07:59 +0200 | weechat1 | (~weechat@2001:41d0:a:62bb::1) |
2021-08-03 19:08:23 +0200 | weechat1 | drlkf |
2021-08-03 19:10:12 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-08-03 19:11:19 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-08-03 19:11:39 +0200 | kuribas | (~user@ptr-25vy0i9yst6l4ryh82e.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-08-03 19:12:19 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 19:12:33 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds) |
2021-08-03 19:12:53 +0200 | drlkf | (~weechat@2001:41d0:a:62bb::1) (Quit: q=) |
2021-08-03 19:12:56 +0200 | mattil | (~mattilinn@62-113-176-119.bb.dnainternet.fi) |
2021-08-03 19:13:54 +0200 | drlkf | (~drlkf@2001:41d0:a:62bb::1) |
2021-08-03 19:15:08 +0200 | slack1256 | (~slack1256@191.125.170.167) |
2021-08-03 19:16:00 +0200 | slack1256 | (~slack1256@191.125.170.167) (Remote host closed the connection) |
2021-08-03 19:16:42 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-03 19:16:42 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 240 seconds) |
2021-08-03 19:18:53 +0200 | slack1256 | (~slack1256@191.125.170.167) |
2021-08-03 19:28:03 +0200 | Shailangsa_ | (~shailangs@host86-185-98-7.range86-185.btcentralplus.com) () |
2021-08-03 19:34:25 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-03 19:34:38 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 19:35:46 +0200 | drlkf | (~drlkf@2001:41d0:a:62bb::1) (Quit: q=) |
2021-08-03 19:35:53 +0200 | drlkf | (~drlkf@2001:41d0:a:62bb::1) |
2021-08-03 19:35:54 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-08-03 19:36:51 +0200 | sub0 | (~bc8150b8@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-08-03 19:38:11 +0200 | <Lycurgus> | by choice rather than genetic or semantic i take it |
2021-08-03 19:38:46 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 19:38:58 +0200 | <Lycurgus> | which is same as by derivation or logical relation |
2021-08-03 19:39:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 19:42:52 +0200 | econo | (uid147250@user/econo) |
2021-08-03 19:43:33 +0200 | f-a | (~f-a@151.34.27.3) |
2021-08-03 19:44:14 +0200 | <f-a> | I am looking for a package that converts 17 to «seventeen», but I am having trouble finding it on Hackage. |
2021-08-03 19:45:47 +0200 | <deejaytee> | just for that specific case, or do you want pronunciations for other numbers, too? |
2021-08-03 19:45:57 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 245 seconds) |
2021-08-03 19:46:02 +0200 | <DigitalKiwi> | https://hackage.haskell.org/package/ordinal |
2021-08-03 19:46:34 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-dfb3-4ecf-f29f-159d.fixed6.kpn.net) (Ping timeout: 258 seconds) |
2021-08-03 19:47:04 +0200 | Lycurgus | conjectured a ffi |
2021-08-03 19:48:19 +0200 | <f-a> | any from ℕ, deejaytee |
2021-08-03 19:48:35 +0200 | azeem | (~azeem@176.200.220.247) |
2021-08-03 19:48:42 +0200 | arkho | ccc |
2021-08-03 19:48:47 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 19:48:49 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-03 19:48:55 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 19:49:14 +0200 | <deejaytee> | hmm ordinal looks good, shameless plug for my conway-wechsler pronouncer here https://github.com/dylan-thinnes/conway-wechsler |
2021-08-03 19:49:17 +0200 | ccc | arkho |
2021-08-03 19:49:27 +0200 | <deejaytee> | if you actually need N, that is |
2021-08-03 19:49:57 +0200 | <deejaytee> | I'd hazard that ordinal is actually what you're looking for, though :P |
2021-08-03 19:50:59 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 19:52:48 +0200 | <DigitalKiwi> | П> import Text.Numerals |
2021-08-03 19:52:50 +0200 | <DigitalKiwi> | П> Data.Text.IO.putStrLn (toCardinal english 17) |
2021-08-03 19:52:52 +0200 | <DigitalKiwi> | seventeen |
2021-08-03 19:52:58 +0200 | <DigitalKiwi> | TESTS PASS SHIP IT |
2021-08-03 19:53:08 +0200 | <deejaytee> | hahaha |
2021-08-03 19:53:11 +0200 | <davean> | Oh THATS where that bullshit comes from! |
2021-08-03 19:53:32 +0200 | <davean> | I've seen programs switch into that completely incoherent numbering system occasionally with large numbers and never knew why! |
2021-08-03 19:53:55 +0200 | <f-a> | why ordinals, deejaytee ? |
2021-08-03 19:54:06 +0200 | <davean> | f-a: because it does the thing you asked for |
2021-08-03 19:54:35 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-03 19:54:43 +0200 | azeem | (~azeem@176.200.220.247) (Read error: Connection reset by peer) |
2021-08-03 19:54:46 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-08-03 19:54:51 +0200 | <deejaytee> | ^ also, DigitalWiki mentioned it, not me |
2021-08-03 19:54:54 +0200 | <DigitalKiwi> | nix-shell -p cabal-install "haskellPackages.ghcWithPackages (x: with x; [ ordinal ])" |
2021-08-03 19:55:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 19:55:52 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-08-03 19:56:11 +0200 | dme2 | (~dme2@67.205.140.199) |
2021-08-03 19:56:41 +0200 | drlkf | (~drlkf@2001:41d0:a:62bb::1) (Quit: q=) |
2021-08-03 19:56:41 +0200 | <f-a> | davean: ordinal numbers are "first", "second", "third"; cardinal "one", "two", "three"? |
2021-08-03 19:56:49 +0200 | drlkf | (~drlkf@2001:41d0:a:62bb::1) |
2021-08-03 19:56:55 +0200 | <deejaytee> | davean: you can try it out on https://dylant.org/conway-wechsler/ and see it spit out some crazy stuff |
2021-08-03 19:57:06 +0200 | <deejaytee> | I like it, but just as curiosity |
2021-08-03 19:57:12 +0200 | <davean> | deejaytee: I mean I saw it |
2021-08-03 19:57:26 +0200 | <davean> | Thats how I know it matches the incoherent bullshit I've seen before :-p |
2021-08-03 19:57:29 +0200 | <deejaytee> | ah sorry |
2021-08-03 19:58:07 +0200 | <DigitalKiwi> | note that i just found that on hackage today and that is the extent to which i have used it lol |
2021-08-03 19:58:09 +0200 | <deejaytee> | yeah the choice of ones, then tens, then hundreds is a bit wack |
2021-08-03 19:58:34 +0200 | shailangsa | (~shailangs@host86-185-98-7.range86-185.btcentralplus.com) |
2021-08-03 19:58:39 +0200 | <deejaytee> | and some of the inflection is just unnecessary |
2021-08-03 19:59:06 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-03 19:59:20 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-03 19:59:24 +0200 | <DigitalKiwi> | there are probably a few others too that's just the one i found/tested fastest lol |
2021-08-03 19:59:25 +0200 | <deejaytee> | (yeah, there I said it, I ain't afraid of Conway's ghost) |
2021-08-03 20:01:35 +0200 | <deejaytee> | davean: where else have you seen this implemented? I'd love to compare, but there are only a few impls on github |
2021-08-03 20:02:20 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds) |
2021-08-03 20:03:13 +0200 | mrianbloom | (sid350277@id-350277.charlton.irccloud.com) |
2021-08-03 20:03:55 +0200 | <davean> | I've seen it in programs randomly, and then I avoided the programs, uh, so not entirely sure? |
2021-08-03 20:05:13 +0200 | <mrianbloom> | Is there a random library for accelerate that produces random numbers on the GPU? |
2021-08-03 20:06:21 +0200 | <DigitalKiwi> | https://hackage.haskell.org/package/mwc-random-accelerate |
2021-08-03 20:06:54 +0200 | justsurfin243590 | (~justsurfi@cpe-98-146-133-53.natnow.res.rr.com) |
2021-08-03 20:07:42 +0200 | forell | (~forell@user/forell) (Ping timeout: 272 seconds) |
2021-08-03 20:07:49 +0200 | <mrianbloom> | My impression was that that one actually produces the randoms on the CPU and then moves them into an accelerate array. Perhaps I got that wrong. |
2021-08-03 20:09:19 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-03 20:09:25 +0200 | <DigitalKiwi> | oh, hmm |
2021-08-03 20:10:17 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-08-03 20:10:31 +0200 | Atum_ | (IRC@user/atum/x-2392232) |
2021-08-03 20:11:06 +0200 | markpythonicbitc | (~textual@50.228.44.6) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-08-03 20:13:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-08-03 20:13:31 +0200 | <mrianbloom> | I have lots of other Accelerate questions if you are interested :) |
2021-08-03 20:14:16 +0200 | tomsmeding | can possibly answer some accelerate questions, depending on what kind |
2021-08-03 20:16:16 +0200 | <mrianbloom> | The two I have are 1. Is it easy to integrate a CUDA kernel into a program which is otherwise written in Acc? 2. How do you access the elements of a SIMD vector inside an accelerate program? |
2021-08-03 20:18:13 +0200 | <tomsmeding> | mrianbloom: the base API to add foreign elements to an accelerate programming running on the gpu is https://hackage.haskell.org/package/accelerate-llvm-ptx-1.3.0.0/docs/Data-Array-Accelerate-LLVM-PT… ; I don't know if there is a higher-level wrapper though (this API is very low-level) |
2021-08-03 20:19:13 +0200 | <mrianbloom> | I see. That's really helpful. I'll check that out. |
2021-08-03 20:19:54 +0200 | <tomsmeding> | (there was a paper on that foreign function interface; can send that too if you wish) |
2021-08-03 20:20:39 +0200 | <mrianbloom> | I appreciate it. |
2021-08-03 20:21:10 +0200 | <tomsmeding> | mrianbloom: this is the official page: https://link.springer.com/chapter/10.1007%2F978-3-319-04132-2_10 |
2021-08-03 20:21:22 +0200 | <tomsmeding> | I can send a PDF too if you don't have access :) |
2021-08-03 20:22:00 +0200 | sweater | (~sweater@206.81.18.26) |
2021-08-03 20:24:11 +0200 | <mrianbloom> | I need that actually (not popping up on google...) |
2021-08-03 20:24:35 +0200 | <DigitalKiwi> | it's on libgen.is lol |
2021-08-03 20:28:29 +0200 | <tomsmeding> | mrianbloom: regarding SIMD vectors: it seems you should use V2/V3/V4/V8/V16 like the T* and I* pattern synonyms |
2021-08-03 20:28:37 +0200 | <tomsmeding> | though I've never used this personally yet |
2021-08-03 20:29:00 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-03 20:29:14 +0200 | <mrianbloom> | I see, is that part of the standard accelerate library? |
2021-08-03 20:29:27 +0200 | <tomsmeding> | (The Vec* pattern synonyms are not what you should use I believe) |
2021-08-03 20:29:33 +0200 | <tomsmeding> | mrianbloom: https://hackage.haskell.org/package/accelerate-1.3.0.0/docs/Data-Array-Accelerate.html#v:V2 |
2021-08-03 20:29:36 +0200 | <tomsmeding> | just undocumented lol |
2021-08-03 20:29:48 +0200 | <tomsmeding> | they are generated using templatehaskell |
2021-08-03 20:29:49 +0200 | <aveltras[m]> | I'd like to create a basic program which takes as input a directory of pictures and outputs an image with all pictures put on top of each other and each picture having an empty frame of the same size on the side of it. Any recommended image manipulation library for achieving this ? |
2021-08-03 20:30:18 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 20:30:23 +0200 | chris | Guest4121 |
2021-08-03 20:30:47 +0200 | <mrianbloom> | tomsmedling: great, those are all good leads, I appreciate it. |
2021-08-03 20:31:36 +0200 | forell | (~forell@user/forell) |
2021-08-03 20:32:45 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 20:33:43 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 258 seconds) |
2021-08-03 20:34:52 +0200 | Guest4121 | (~chris@81.96.113.213) (Ping timeout: 258 seconds) |
2021-08-03 20:35:02 +0200 | <DigitalKiwi> | tom's medling |
2021-08-03 20:35:20 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-08-03 20:35:25 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 20:35:27 +0200 | tomsmeding | meddles in stuff |
2021-08-03 20:35:29 +0200 | chris | Guest3788 |
2021-08-03 20:36:16 +0200 | <DigitalKiwi> | tom smeding is medling |
2021-08-03 20:36:40 +0200 | Guest38 | (~Guest38@2a02:3035:807:4e8c:ec4d:e1f6:4f08:1e6e) |
2021-08-03 20:37:05 +0200 | <tomsmeding> | or middling? |
2021-08-03 20:37:29 +0200 | <DigitalKiwi> | now you're definitely medling |
2021-08-03 20:38:12 +0200 | Guest38 | (~Guest38@2a02:3035:807:4e8c:ec4d:e1f6:4f08:1e6e) (Client Quit) |
2021-08-03 20:38:13 +0200 | forell | (~forell@user/forell) (Quit: ZNC - https://znc.in) |
2021-08-03 20:38:16 +0200 | goepsilongo | (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) |
2021-08-03 20:38:23 +0200 | <DigitalKiwi> | https://www.thefreedictionary.com/meddling |
2021-08-03 20:38:30 +0200 | <DigitalKiwi> | :( |
2021-08-03 20:39:11 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-08-03 20:39:12 +0200 | mastarija | (~mastarija@78-3-212-215.adsl.net.t-com.hr) |
2021-08-03 20:39:33 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-03 20:39:44 +0200 | Guest3788 | (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
2021-08-03 20:40:01 +0200 | <tomsmeding> | mixing thoroughly? That I surely do |
2021-08-03 20:40:29 +0200 | <DigitalKiwi> | this is like the time i misspelled emigrate with 3 m's |
2021-08-03 20:40:51 +0200 | <DigitalKiwi> | because i thought it had 2 but typoed an extra one lol |
2021-08-03 20:43:28 +0200 | <DigitalKiwi> | tomsmeding is a mojito |
2021-08-03 20:44:20 +0200 | <tomsmeding> | a small magic charm, that's a nice thing to be :) |
2021-08-03 20:45:16 +0200 | <DigitalKiwi> | A mojito is a Cuban rum-based cocktail. |
2021-08-03 20:45:55 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-08-03 20:45:59 +0200 | <DigitalKiwi> | you medle the mint |
2021-08-03 20:46:16 +0200 | <DigitalKiwi> | with a muddler |
2021-08-03 20:46:18 +0200 | <DigitalKiwi> | lol |
2021-08-03 20:46:59 +0200 | <tomsmeding> | "Origin: 1930s Cuban Spanish, from mojo + diminutive suffix -ito." -- mojo: "A magic charm, talisman, or spell." |
2021-08-03 20:47:06 +0200 | <DigitalKiwi> | and then your bartender beats you over the head with it; or maybe that's just me ;( |
2021-08-03 20:47:07 +0200 | <tomsmeding> | ok I'll stop |
2021-08-03 20:47:29 +0200 | <DigitalKiwi> | one of my favorite bars to order mojitos at was called mojo smokehouse and ales |
2021-08-03 20:49:41 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-03 20:52:19 +0200 | <DigitalKiwi> | anyone want to talk about haskell |
2021-08-03 20:53:05 +0200 | <davean> | DigitalKiwi: Does it come with mojitos? |
2021-08-03 20:54:13 +0200 | <DigitalKiwi> | fresh out of rum all i have is tea ;( |
2021-08-03 20:54:36 +0200 | <DigitalKiwi> | err out of tea now too |
2021-08-03 20:55:06 +0200 | thyriaen | (~thyriaen@dynamic-078-055-141-033.78.55.pool.telefonica.de) |
2021-08-03 20:56:01 +0200 | <DigitalKiwi> | davean: are you in a meeting today lol drakonis and you and i were talking about guix... |
2021-08-03 20:56:12 +0200 | <drakonis> | i am clearly not in a meeting |
2021-08-03 20:56:53 +0200 | <davean> | I like tea, how about we talk about tea |
2021-08-03 20:57:05 +0200 | <davean> | DigitalKiwi: Haha, I should be but I'm not! |
2021-08-03 20:57:14 +0200 | <davean> | Whats the Haskell story on guix? |
2021-08-03 20:57:34 +0200 | <drakonis> | hmm |
2021-08-03 20:57:56 +0200 | <delYsid> | hmm, plain old [] vs Unboxed Vector and ST. I know the answer is probably "you have to try", but maybe you guys have some tipps before I start. I want to get the memory usage (GC) and runtime down of my chess legal move generator. Currently, it generates a [Ply] where newtype Ply = Ply Word16. I am suspecting the list is adding quite a lot to the memory usage, so I was hoping Unboxed Vector could be better? My plan: "new" a vector |
2021-08-03 20:57:57 +0200 | <drakonis> | the haskell story seems to be pretty fine right now? |
2021-08-03 20:57:57 +0200 | <delYsid> | with sufficient size, generate all moves "write"ing the entries to the vector and inc'ing an STRef, and slice the used part of the MVector off at the end. Can this be faster/better then plain "genMove : ms" way of just adding to head? |
2021-08-03 20:58:01 +0200 | <drakonis> | they recently upgraded ghc |
2021-08-03 20:58:02 +0200 | <DigitalKiwi> | can i do a guix command ot pull in a ghci with an hackage packges |
2021-08-03 20:58:06 +0200 | <drakonis> | yes |
2021-08-03 20:58:12 +0200 | <drakonis> | ish |
2021-08-03 20:58:21 +0200 | <davean> | drakonis: Of course you don't have to try, this can be directly computed |
2021-08-03 20:58:41 +0200 | <drakonis> | there isnt a single file containing all of hackage |
2021-08-03 20:58:51 +0200 | <davean> | drakonis: and yes, a vector would be far smaller for any significant sized list |
2021-08-03 20:58:57 +0200 | <drakonis> | wrong ping btw |
2021-08-03 20:59:13 +0200 | <davean> | bah yah |
2021-08-03 20:59:17 +0200 | <DigitalKiwi> | if i learn racket will that help with guix heh |
2021-08-03 20:59:21 +0200 | <drakonis> | probably? |
2021-08-03 20:59:32 +0200 | <drakonis> | at least with getting acclimated to a lispy lang |
2021-08-03 20:59:45 +0200 | <davean> | drakonis: so whats this "ish"ness? |
2021-08-03 20:59:51 +0200 | <DigitalKiwi> | https://www.coursera.org/learn/programming-languages has three parts and racket is one of them lol |
2021-08-03 20:59:57 +0200 | <delYsid> | davean: I guess you were talking to me? |
2021-08-03 21:00:02 +0200 | <davean> | delYsid: I was |
2021-08-03 21:00:09 +0200 | Testtesttesz | (~Testtestt@p5b05e91c.dip0.t-ipconnect.de) |
2021-08-03 21:00:18 +0200 | <drakonis> | the ishness is that there isnt a kitchen sink containing every hackage package |
2021-08-03 21:00:28 +0200 | <sm> | srid: that looks nice! |
2021-08-03 21:00:43 +0200 | <drakonis> | you'll definitely have a sizeable amount of packages but not everything |
2021-08-03 21:00:47 +0200 | <monochrom> | If list laziness is important to your algorithm, vector will kill it. |
2021-08-03 21:00:57 +0200 | <drakonis> | you can invoke a hackage importer if there's anything you dont have available |
2021-08-03 21:01:02 +0200 | <drakonis> | you want that isnt packaged yet |
2021-08-03 21:01:26 +0200 | <davean> | drakonis: I use to program scheme, back around when the Brown group was renaming stuff, its a nice, small language, but I moved on because I thought it ended up too messy with too much local semantics - how varies are the semantics in guix's implimentation and how much do they have 1000 options with a horrible combinatorial number of interactions for functions? |
2021-08-03 21:01:51 +0200 | <drakonis> | clean, really. |
2021-08-03 21:01:58 +0200 | <delYsid> | monochrom: Thats another argument against [], I definitely have a finite result, and it typically only has aroun 20 elements. |
2021-08-03 21:02:10 +0200 | <drakonis> | guix runs on top of guile |
2021-08-03 21:02:23 +0200 | <davean> | drakonis: well I'm less worried about containing, and more about solving |
2021-08-03 21:02:33 +0200 | <drakonis> | hmm |
2021-08-03 21:02:35 +0200 | <drakonis> | i see |
2021-08-03 21:02:43 +0200 | <delYsid> | So my thinking was, 20*2 = 40 bytes for an Unboxed Vector of Ply is probably *a lot* less then [Ply] with 20 elements memorywise? |
2021-08-03 21:02:58 +0200 | <drakonis> | 1000 options with a horrible combinatorial explosion? |
2021-08-03 21:03:01 +0200 | <DigitalKiwi> | (in that course the SML exercises were easy to covnert to haskell too i did them in both lol) |
2021-08-03 21:03:08 +0200 | <drakonis> | i'm not aware of that |
2021-08-03 21:03:12 +0200 | <davean> | I'm happy to add the packages I care about in some local overlay - if they have a good story for that - but I need it to get consistent sets, and I'm interested in how it manages said sets |
2021-08-03 21:03:29 +0200 | <drakonis> | oh they have a really good story for that |
2021-08-03 21:03:31 +0200 | <drakonis> | btw |
2021-08-03 21:03:34 +0200 | <drakonis> | the best one |
2021-08-03 21:03:53 +0200 | <drakonis> | by far and wide the best one right now |
2021-08-03 21:03:59 +0200 | <davean> | drakonis: the 1000 options thing was an exageration, just that instead of composing functions, functions tended to take options to change their behavior, due to the nature of how scheme composes |
2021-08-03 21:04:06 +0200 | <davean> | drakonis: so what is the story? |
2021-08-03 21:04:21 +0200 | <drakonis> | i'll refer to the docs to this |
2021-08-03 21:04:22 +0200 | <monochrom> | Or rather, how scheme doesn't compose. |
2021-08-03 21:04:32 +0200 | <drakonis> | but it has channels |
2021-08-03 21:04:48 +0200 | <monochrom> | Scheme has paid only lips service to function composition and currying. |
2021-08-03 21:04:49 +0200 | <drakonis> | so, you want to roll out your own repo? you just add it to the channels list and pull |
2021-08-03 21:05:11 +0200 | <drakonis> | oh, has it? |
2021-08-03 21:05:13 +0200 | jippiedoe | (~david@77-171-152-62.fixed.kpn.net) |
2021-08-03 21:05:21 +0200 | jippiedoe | (~david@77-171-152-62.fixed.kpn.net) (Client Quit) |
2021-08-03 21:05:26 +0200 | <drakonis> | function composition is a weird call out |
2021-08-03 21:05:32 +0200 | <drakonis> | because scheme does that really well |
2021-08-03 21:05:58 +0200 | <monochrom> | No, function composition is unusable without currying. |
2021-08-03 21:06:00 +0200 | <drakonis> | https://guix.gnu.org/manual/en/html_node/Channels.html davean |
2021-08-03 21:06:34 +0200 | <monochrom> | Look at how we in Haskell write "takeWhile (\x -> x<5) . filter p . map f" all the time. |
2021-08-03 21:06:40 +0200 | <monochrom> | Try it in Scheme. |
2021-08-03 21:06:56 +0200 | <drakonis> | idgi |
2021-08-03 21:07:53 +0200 | <monochrom> | Scheme's strength is "(+ 1 3 4 5 6)", "(+)", and "(apply + mylist)". |
2021-08-03 21:07:56 +0200 | <drakonis> | davean: basically, you declare the channel pointing to the repository, be it local or online and it'll let you pull from it |
2021-08-03 21:08:01 +0200 | <drakonis> | you realize you can chain them together, right? |
2021-08-03 21:08:12 +0200 | <drakonis> | they don't need to be separate operations |
2021-08-03 21:08:24 +0200 | <drakonis> | again, that's a weird thing to get hung up on |
2021-08-03 21:08:28 +0200 | <monochrom> | But varargness is exactly why Scheme makes currying difficult. |
2021-08-03 21:08:43 +0200 | <drakonis> | i don't see how that is a issue with the lisp family? |
2021-08-03 21:09:08 +0200 | <drakonis> | http://people.cs.aau.dk/~normark/prog3-03/html/notes/higher-order-fu-note-curry-scheme.html |
2021-08-03 21:09:09 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-03 21:09:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 21:10:09 +0200 | <DigitalKiwi> | monochrom: drakonis isn't here to defend scheme against haskell lol guix vs nix wrt to managing haskell ;p |
2021-08-03 21:10:31 +0200 | <drakonis> | i'm here for explaining that guix is better at wrangling haskell than nix |
2021-08-03 21:10:33 +0200 | <monochrom> | OK, s/Scheme/guix/ |
2021-08-03 21:11:04 +0200 | <drakonis> | guix is guile scheme but still not here to wrestle you over the merits of scheme vs haskell |
2021-08-03 21:11:13 +0200 | Testtesttesz | (~Testtestt@p5b05e91c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-08-03 21:11:37 +0200 | <davean> | drakonis: Ok, so far this channel story seems identicalto nixos - but the problem I've encountered is inter-package references |
2021-08-03 21:11:46 +0200 | <drakonis> | hmm |
2021-08-03 21:11:50 +0200 | <drakonis> | do explain? |
2021-08-03 21:12:26 +0200 | <drakonis> | inter-package references? |
2021-08-03 21:12:41 +0200 | <drakonis> | you mean like importing dependencies? |
2021-08-03 21:12:47 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 21:12:55 +0200 | <DigitalKiwi> | sounded like some jailbreak usage in haskell4nix pulled in a version it shouldn't have |
2021-08-03 21:12:57 +0200 | <davean> | if I have channel A, with package A.a which depends on b, it gets b from A.b but if I have channel B with package B.b, which provides that b that I need dealing with A.a referencing the wrong b ends up ... complicated. |
2021-08-03 21:13:02 +0200 | mattf_ | (~matt@2600:1700:38c5:2100::37) |
2021-08-03 21:13:03 +0200 | <drakonis> | oh |
2021-08-03 21:13:17 +0200 | <drakonis> | that's because each channel normally has a specific module namespace |
2021-08-03 21:13:22 +0200 | <davean> | So I end up not able to use A.a and have to duplicate A.a and quickly I have to run my own entire system |
2021-08-03 21:13:32 +0200 | <davean> | so I end up not using channels and instead a clone of the origional channel |
2021-08-03 21:13:33 +0200 | <drakonis> | define-module (gnu packages haskell-apps) |
2021-08-03 21:13:36 +0200 | <davean> | because thats the only sane option |
2021-08-03 21:14:00 +0200 | <drakonis> | basically, you can import (gnu packages haskell-apps) and gain access to any packages there |
2021-08-03 21:14:10 +0200 | <DigitalKiwi> | does guix have ghcjs heh https://github.com/NixOS/nixpkgs/issues/130584 |
2021-08-03 21:14:52 +0200 | <drakonis> | it seems to have some things with dependencies here |
2021-08-03 21:15:15 +0200 | <drakonis> | davean: that's not a problem really |
2021-08-03 21:15:38 +0200 | <drakonis> | guile has a module system, so you have to explicitly bring them into scope |
2021-08-03 21:15:55 +0200 | mousey | (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds) |
2021-08-03 21:15:55 +0200 | forell | (~forell@user/forell) |
2021-08-03 21:15:57 +0200 | futty | (~futty@c83-252-75-55.bredband.tele2.se) |
2021-08-03 21:16:02 +0200 | <davean> | drakonis: right thats where the problem COMES from |
2021-08-03 21:16:10 +0200 | <drakonis> | so A.a cannot reference the wrong package |
2021-08-03 21:16:12 +0200 | <davean> | my overlays doen't end up compatible with the base systems stuff |
2021-08-03 21:16:18 +0200 | <davean> | because I need newer stuff down in the stack |
2021-08-03 21:16:22 +0200 | <drakonis> | okay |
2021-08-03 21:16:24 +0200 | <davean> | drakonis: Right! Thats the problem! |
2021-08-03 21:16:24 +0200 | <drakonis> | that's easy |
2021-08-03 21:16:41 +0200 | <drakonis> | here's a fun bit you can do |
2021-08-03 21:16:58 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-03 21:16:59 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) (Remote host closed the connection) |
2021-08-03 21:17:12 +0200 | <drakonis> | you can redirect a package definition to point to a specific definition |
2021-08-03 21:17:16 +0200 | <drakonis> | and have everything else inherit off it |
2021-08-03 21:17:34 +0200 | mousey | (~skymouse@gateway/tor-sasl/mousey) |
2021-08-03 21:17:34 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) |
2021-08-03 21:17:38 +0200 | <davean> | and the inheriting works automaticly? I don't end up having to patch every package in the packet set? |
2021-08-03 21:17:51 +0200 | <drakonis> | yes? |
2021-08-03 21:18:00 +0200 | <davean> | That would be nice |
2021-08-03 21:18:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-08-03 21:18:09 +0200 | <drakonis> | (define-public ghc ghc-8) |
2021-08-03 21:18:12 +0200 | mattf_ | (~matt@2600:1700:38c5:2100::37) (Quit: Leaving) |
2021-08-03 21:18:17 +0200 | <drakonis> | this makes ghc point towards ghc-8 |
2021-08-03 21:18:39 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) (Remote host closed the connection) |
2021-08-03 21:18:50 +0200 | <drakonis> | then there's the ability to directly inherit all of the definition and modify where necessary using (inherit <package name>) |
2021-08-03 21:18:53 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) |
2021-08-03 21:21:00 +0200 | <drakonis> | https://github.com/jsoo1/guix-channel someone's haskell heavy channel i found just now |
2021-08-03 21:21:14 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-08-03 21:21:33 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-08-03 21:21:49 +0200 | <davean> | drakonis: So this looks like it needs to specificly have exactly one version of a package? How does multiple versions happen? |
2021-08-03 21:24:28 +0200 | <drakonis> | by making the build system use a different ghc version i suppose? |
2021-08-03 21:24:45 +0200 | <drakonis> | it otherwise targets whatever's the current highest ghc version |
2021-08-03 21:24:56 +0200 | <drakonis> | whatever ghc points to |
2021-08-03 21:24:58 +0200 | <davean> | I mean also cabal packages |
2021-08-03 21:25:07 +0200 | <drakonis> | ah |
2021-08-03 21:25:14 +0200 | <davean> | of course need different GHCs, and I need different dependencies |
2021-08-03 21:26:18 +0200 | <drakonis> | the docs state that you can do this |
2021-08-03 21:26:21 +0200 | <drakonis> | "Which Haskell compiler is used can be specified with the ‘#:haskell’ parameter which defaults to ‘ghc’." |
2021-08-03 21:27:01 +0200 | <davean> | sure, thats the GHC, but the second half |
2021-08-03 21:27:06 +0200 | <drakonis> | it builds using cabal |
2021-08-03 21:27:08 +0200 | <davean> | how does it make those decisions and how are they handled? |
2021-08-03 21:27:10 +0200 | <drakonis> | right |
2021-08-03 21:27:13 +0200 | <davean> | Hum, it does? |
2021-08-03 21:27:15 +0200 | <drakonis> | its cabal based |
2021-08-03 21:27:19 +0200 | forell_ | (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) |
2021-08-03 21:27:20 +0200 | <drakonis> | also in the docs |
2021-08-03 21:27:23 +0200 | <davean> | it looks like it specifies the Haskell pakcages its self |
2021-08-03 21:27:23 +0200 | forell | (~forell@user/forell) (Ping timeout: 258 seconds) |
2021-08-03 21:27:32 +0200 | <davean> | and only one version each |
2021-08-03 21:27:36 +0200 | <drakonis> | let me get you the docs |
2021-08-03 21:28:18 +0200 | <drakonis> | a quick caveat |
2021-08-03 21:28:26 +0200 | <drakonis> | people don't typically use guix for its haskell wrangling features |
2021-08-03 21:28:33 +0200 | forell_ | (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host) |
2021-08-03 21:28:33 +0200 | forell_ | (~forell@user/forell) |
2021-08-03 21:28:45 +0200 | <drakonis> | so its not like it will cover every use case |
2021-08-03 21:29:16 +0200 | <drakonis> | http://guix.gnu.org/en/manual/devel/en/guix.html#index-haskell_002dbuild_002dsystem |
2021-08-03 21:29:20 +0200 | <davean> | sure I'm just talking about the basics of getting a consistent package set |
2021-08-03 21:29:27 +0200 | <drakonis> | This variable is exported by (guix build-system haskell). It implements the Cabal build procedure used by Haskell packages |
2021-08-03 21:29:34 +0200 | forell_ | forell |
2021-08-03 21:29:42 +0200 | thyriaen | (~thyriaen@dynamic-078-055-141-033.78.55.pool.telefonica.de) (Remote host closed the connection) |
2021-08-03 21:29:51 +0200 | <drakonis> | let me point you to a haskell package definition real quick |
2021-08-03 21:29:56 +0200 | <davean> | Thats HOW it builds them, not how it chooses WHAT to build |
2021-08-03 21:30:00 +0200 | <drakonis> | okay |
2021-08-03 21:30:15 +0200 | <drakonis> | https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/haskell-xyz.scm#n751 |
2021-08-03 21:31:07 +0200 | <davean> | right so there seems to only be a single version there |
2021-08-03 21:31:16 +0200 | <davean> | when thats not consistent with what I need, what do I do? |
2021-08-03 21:31:22 +0200 | futty | (~futty@c83-252-75-55.bredband.tele2.se) (Ping timeout: 245 seconds) |
2021-08-03 21:31:55 +0200 | <drakonis> | you have the ability to create a copy of it with inherit and then redefine the metadata where needed |
2021-08-03 21:32:14 +0200 | <drakonis> | ie: which ghc version you want to use for the build or the package version alongside the hash |
2021-08-03 21:32:22 +0200 | <davean> | oh, but I have to write the entire build plan by hand? |
2021-08-03 21:32:26 +0200 | <drakonis> | god no |
2021-08-03 21:32:31 +0200 | <drakonis> | there's importers for that |
2021-08-03 21:32:40 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 21:33:07 +0200 | <drakonis> | you can also point to a specific version you want to generate a definition for |
2021-08-03 21:33:19 +0200 | <davean> | ... everything in my build plan? |
2021-08-03 21:33:27 +0200 | <davean> | Whatever that is |
2021-08-03 21:33:36 +0200 | <davean> | which there isn't just one of - it'll at the very least vary by GHC |
2021-08-03 21:34:36 +0200 | <drakonis> | the output of guix import hackage patience https://paste.debian.net/1206476/ |
2021-08-03 21:34:36 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-08-03 21:34:56 +0200 | f-a | (~f-a@151.34.27.3) (Quit: leaving) |
2021-08-03 21:35:05 +0200 | <drakonis> | also relevant |
2021-08-03 21:35:08 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-08-03 21:35:20 +0200 | <drakonis> | you can invoke some silly metaprogramming to do package generation |
2021-08-03 21:35:44 +0200 | <drakonis> | like generating definitions for packages that use different ghc releases |
2021-08-03 21:35:47 +0200 | <davean> | Hum, this doesn't say what it depends on though, which is part of my question |
2021-08-03 21:36:27 +0200 | <drakonis> | that's because it doesnt have any dependencies i guess |
2021-08-03 21:36:31 +0200 | <drakonis> | its a leaf package |
2021-08-03 21:36:44 +0200 | <drakonis> | it is however a dependency for other things |
2021-08-03 21:36:46 +0200 | <davean> | but it does |
2021-08-03 21:36:54 +0200 | <davean> | base and containers |
2021-08-03 21:37:53 +0200 | <drakonis> | isnt those two already included with ghc? |
2021-08-03 21:38:07 +0200 | <davean> | I mean sure, but not the ones I want usually |
2021-08-03 21:38:10 +0200 | <davean> | Base sure |
2021-08-03 21:38:12 +0200 | <davean> | but not containers |
2021-08-03 21:38:33 +0200 | <davean> | These are the critical parts of getting a consistent build |
2021-08-03 21:38:48 +0200 | <drakonis> | you can declare dependencies mind you |
2021-08-03 21:38:51 +0200 | <davean> | and some GHCs have different base requirements |
2021-08-03 21:38:59 +0200 | <davean> | so this doesn't tell me if that package will work |
2021-08-03 21:39:14 +0200 | <drakonis> | https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/haskell-xyz.scm#n15663 |
2021-08-03 21:39:16 +0200 | <drakonis> | here |
2021-08-03 21:39:24 +0200 | <davean> | So base is fixed, and may or may not work - this can't decide which "patience" to use, and containers is nto at all fixed |
2021-08-03 21:39:36 +0200 | <davean> | do it fails for both base *and* containers |
2021-08-03 21:39:43 +0200 | <davean> | in different ways |
2021-08-03 21:39:59 +0200 | futty | (~futty@c83-252-75-55.bredband.tele2.se) |
2021-08-03 21:40:53 +0200 | jackhill | KM4MBG |
2021-08-03 21:41:56 +0200 | <davean> | drakonis: that lists which ones it has, not which versions? |
2021-08-03 21:42:02 +0200 | <davean> | So how can it get it right? |
2021-08-03 21:42:17 +0200 | <drakonis> | okay i think you're missing a fundamental part of how both nix and guix work |
2021-08-03 21:42:51 +0200 | <drakonis> | if you look at the definitions, you'll see the version it is pinned to |
2021-08-03 21:43:09 +0200 | <davean> | I see the version that specific instance is pinned to |
2021-08-03 21:43:11 +0200 | hexeme | (~hexeme@user/hexeme) (Quit: co'o ro do) |
2021-08-03 21:43:24 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
2021-08-03 21:43:29 +0200 | <davean> | which is great and all |
2021-08-03 21:43:39 +0200 | <drakonis> | https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/haskell-xyz.scm#n15619 |
2021-08-03 21:44:07 +0200 | <drakonis> | ghc-zlib is pinned to 0.6.2.1 |
2021-08-03 21:44:21 +0200 | hexeme | (~hexeme@user/hexeme) |
2021-08-03 21:44:36 +0200 | <davean> | Sure, but sometimes I need another ghc-zlib, I know how to have two ghc-zlibs and pick between them in nix, how do you do it in guix? |
2021-08-03 21:45:14 +0200 | <davean> | and when I pull in something that depends on ghc-zlib in a further up package, how do I get all the right decisions? |
2021-08-03 21:45:25 +0200 | <davean> | do I need a combinatorical number of packages that specify all possible versions? |
2021-08-03 21:46:13 +0200 | <drakonis> | okay so you just do something like (define-public ghc90-zlib (inherit ghc-zlib) (build-system haskell-build-system #:haskell ghc90)) |
2021-08-03 21:46:15 +0200 | <drakonis> | cool |
2021-08-03 21:46:29 +0200 | <mastarija> | Need some advice for a library. |
2021-08-03 21:46:32 +0200 | <davean> | but it has nothing to do with ghc90 |
2021-08-03 21:46:38 +0200 | <drakonis> | its a example code snipper |
2021-08-03 21:46:40 +0200 | <drakonis> | snippet |
2021-08-03 21:46:45 +0200 | <mastarija> | Say that I have a type for which I already have Semigroup, Monoid, Functor, Applicative and Monad. It could benefit from the "Alternative", but I can't make the "empty" value (without complications). |
2021-08-03 21:46:48 +0200 | <drakonis> | alternatively |
2021-08-03 21:46:51 +0200 | <drakonis> | right |
2021-08-03 21:46:55 +0200 | <drakonis> | you want two different versions of it |
2021-08-03 21:46:58 +0200 | <drakonis> | one sec |
2021-08-03 21:46:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 21:47:05 +0200 | <mastarija> | I could use the "Alt" from "semigrupoids" which doesn't need the "empty", but that's a lot of extra dependencies (there's only "base" so far). |
2021-08-03 21:47:09 +0200 | <mastarija> | On the other hand, if the inner type is a "Monoid", I could also make an "Alt" like combinator, but I'm not sure what typeclass would that be, other than "Monoid" which would require using the "newtype" and given the nature of my library, that could be a pain in the ass. |
2021-08-03 21:47:16 +0200 | <mastarija> | So, do I: |
2021-08-03 21:47:18 +0200 | <mastarija> | 1. Create new combinators + their operator aliases, e.g. <?> for "Alt" like operation and <+> or <#> for "Alt" + "Monoid" operation |
2021-08-03 21:47:21 +0200 | <mastarija> | 2. Add a flag to my package which allows the user to choose if he wants the "semigrupoids" package and "Alt" (but then <#> is left hanging) |
2021-08-03 21:47:24 +0200 | <mastarija> | 3. Combination of both, and make <?> an alias of <!> from "semigrupoids" when the flag is active (and <#> is still left hanging alone without a typeclass) |
2021-08-03 21:47:33 +0200 | <drakonis> | as far as i'm concerned, a package can have multiple versions |
2021-08-03 21:47:50 +0200 | <drakonis> | a single definition can be made available with multiple versions |
2021-08-03 21:47:54 +0200 | <drakonis> | let me see if i can find any |
2021-08-03 21:48:57 +0200 | <sclv> | mastarija: you can declare a constraint that says Monoid a => Alternative (YourType a) no? |
2021-08-03 21:49:07 +0200 | <drakonis> | found it |
2021-08-03 21:49:12 +0200 | Atum_ | (IRC@user/atum/x-2392232) |
2021-08-03 21:49:17 +0200 | <mastarija> | sclv, No |
2021-08-03 21:49:24 +0200 | <sclv> | why |
2021-08-03 21:49:30 +0200 | <mastarija> | Alternative takes * -> * |
2021-08-03 21:49:34 +0200 | <mastarija> | You have * |
2021-08-03 21:49:36 +0200 | <mastarija> | No? |
2021-08-03 21:49:52 +0200 | <sclv> | oh right, braindead |
2021-08-03 21:50:06 +0200 | <mastarija> | But my point is, both monoidal and non monoidal Alt would be useful |
2021-08-03 21:50:17 +0200 | <mastarija> | They could have different semantics, which are both useful |
2021-08-03 21:50:34 +0200 | <drakonis> | davean: anyways, you can just have the definition inherit the existing one and just change the hash and version to another |
2021-08-03 21:50:42 +0200 | <sclv> | erm you can do Monoid a => Monoid (YourType a) which gets you something close to what you want |
2021-08-03 21:50:56 +0200 | <davean> | drakonis: right, but you'd have to do that for every combinatorical combination |
2021-08-03 21:50:57 +0200 | <mastarija> | Yes, but that is already taken :D |
2021-08-03 21:51:03 +0200 | <drakonis> | you can use functions for that lol |
2021-08-03 21:51:14 +0200 | <mastarija> | sclv, there's also a very logical Monoid instance |
2021-08-03 21:51:15 +0200 | <davean> | drakonis: right, so functions don't reify? |
2021-08-03 21:51:21 +0200 | <davean> | drakonis: thats part of the question |
2021-08-03 21:51:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 21:51:38 +0200 | chris | (~chris@81.96.113.213) |
2021-08-03 21:51:42 +0200 | chris | Guest802 |
2021-08-03 21:51:44 +0200 | <sclv> | ok in that case i'd just add new combinators and not even bother with operator aliases tbh |
2021-08-03 21:51:50 +0200 | <sclv> | and leave that to consumers of my lib |
2021-08-03 21:51:57 +0200 | <drakonis> | right, scheme does not behave the way that haskell does |
2021-08-03 21:52:30 +0200 | <drakonis> | reifying functions though? |
2021-08-03 21:52:32 +0200 | <mastarija> | sclv, yes, I wouldn't want to pollute the space with new operators, |
2021-08-03 21:52:49 +0200 | <mastarija> | but then again... }) |
2021-08-03 21:52:55 +0200 | <davean> | drakonis: what does this have to do with how haskell behaves? |
2021-08-03 21:53:05 +0200 | <davean> | And I know hwo scheme works |
2021-08-03 21:53:05 +0200 | <sclv> | its not like there's a lot of functions that people widely use that abstract well over Alternative or Alt, or certainly not enough that having those instances is really a killer feature for end users |
2021-08-03 21:53:12 +0200 | <davean> | I'm asking how *guix* works |
2021-08-03 21:53:19 +0200 | <drakonis> | it works like scheme does |
2021-08-03 21:53:29 +0200 | <sclv> | lambdas |
2021-08-03 21:53:42 +0200 | <drakonis> | hmm |
2021-08-03 21:53:44 +0200 | <davean> | drakonis: so the actional operations done on this structure ... |
2021-08-03 21:53:46 +0200 | <drakonis> | god damn it i'm losing myself |
2021-08-03 21:53:53 +0200 | <drakonis> | losing it |
2021-08-03 21:53:54 +0200 | <davean> | drakonis: like if it actually walks the structure, and its combinatorically large ... |
2021-08-03 21:54:07 +0200 | <drakonis> | it can do that, yes. |
2021-08-03 21:54:15 +0200 | <davean> | Right so then its a problem |
2021-08-03 21:54:19 +0200 | <mastarija> | is guix that nix alternative? |
2021-08-03 21:54:21 +0200 | <drakonis> | its not used often enough |
2021-08-03 21:54:23 +0200 | <drakonis> | rather |
2021-08-03 21:54:29 +0200 | <DigitalKiwi> | mastarija: yeah |
2021-08-03 21:54:29 +0200 | <drakonis> | its never used in guix definitions |
2021-08-03 21:54:32 +0200 | <drakonis> | but the option exists |
2021-08-03 21:54:45 +0200 | <drakonis> | because if you stop and think about it |
2021-08-03 21:54:50 +0200 | <mastarija> | Does it have static types? |
2021-08-03 21:54:56 +0200 | <drakonis> | it does not |
2021-08-03 21:55:09 +0200 | <mastarija> | Well then what's it's advantage over nix :D |
2021-08-03 21:55:13 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-08-03 21:55:20 +0200 | <drakonis> | davean: its not used in the main repos |
2021-08-03 21:55:23 +0200 | <davean> | mastarija: its language isn't a train wreck? :-p |
2021-08-03 21:55:51 +0200 | <drakonis> | so you're not going to find six thousand computer generated packages for each available ghc version |
2021-08-03 21:55:52 +0200 | Guest802 | (~chris@81.96.113.213) (Ping timeout: 250 seconds) |
2021-08-03 21:56:03 +0200 | <DigitalKiwi> | and nixpkgs lol |
2021-08-03 21:56:18 +0200 | <drakonis> | i think i'm mixing things up |
2021-08-03 21:56:19 +0200 | <davean> | DigitalKiwi: god nixpkgs |
2021-08-03 21:56:25 +0200 | <davean> | drakonis: I think you are too |
2021-08-03 21:56:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-03 21:56:45 +0200 | <drakonis> | i definitely am mixing things up |
2021-08-03 21:56:45 +0200 | <mastarija> | davean, I'm not sure if not having six thousand packages for each GHC version is good or bad :) |
2021-08-03 21:57:03 +0200 | <mastarija> | drakonis, you I mean :D |
2021-08-03 21:57:16 +0200 | <drakonis> | there are no runtime generated packages on guix, everything there is handrolled i suppose |
2021-08-03 21:57:17 +0200 | qbt | (~edun@user/edun) (Ping timeout: 258 seconds) |
2021-08-03 21:57:27 +0200 | <drakonis> | but it does not prevent anyone from doing something like that for their own consumption |
2021-08-03 21:57:48 +0200 | <drakonis> | mastarija: it is for making sure things work |
2021-08-03 21:58:17 +0200 | <mastarija> | drakonis, it is... what? |
2021-08-03 21:58:19 +0200 | <drakonis> | so, the perfect example for what you seem to want to do here is this |
2021-08-03 21:59:16 +0200 | <mastarija> | drakonis, does that mean Nix is failing it it's own task? |
2021-08-03 21:59:22 +0200 | <mastarija> | Making sure things work |
2021-08-03 21:59:29 +0200 | <drakonis> | mastarija: for example, elixir and erlang have broken packages because they have attribute sets that simply swap out the interpreter/runtime version for every package definition in the set |
2021-08-03 21:59:31 +0200 | <DigitalKiwi> | nixpkgs uses this https://haskell4nix.readthedocs.io/ which uses stackage and i think that has created a lot of the problems >.> |
2021-08-03 21:59:42 +0200 | <drakonis> | it breaks things and nobody actually finds out until someone goes and checks it |
2021-08-03 22:00:05 +0200 | <drakonis> | davean: https://guix.gnu.org/de/blog/2019/creating-and-using-a-custom-linux-kernel-on-guix-system/ |
2021-08-03 22:00:12 +0200 | <drakonis> | maybe this might help? |
2021-08-03 22:00:24 +0200 | <DigitalKiwi> | https://input-output-hk.github.io/haskell.nix/motivation/ solves some of them |
2021-08-03 22:00:25 +0200 | <drakonis> | it explains how to inherit a package to generate a new definition with modifications |
2021-08-03 22:01:08 +0200 | <drakonis> | want to spin up a new package that points to a different release or requires a different compiler version? use inherit and modify it on the definition |
2021-08-03 22:01:16 +0200 | <drakonis> | i swear to god though |
2021-08-03 22:01:33 +0200 | <drakonis> | i'm lost |
2021-08-03 22:01:38 +0200 | <DigitalKiwi> | the documentation for fixing something in nixpkgs was "go watch this youtube video" |
2021-08-03 22:01:47 +0200 | <mastarija> | Somehow I feel this whole "area" of engineering is over engineered. |
2021-08-03 22:01:50 +0200 | <drakonis> | i really want to help you out |
2021-08-03 22:01:58 +0200 | <davean> | drakonis: its ok, i'll read stuff and see |
2021-08-03 22:02:13 +0200 | <drakonis> | nixpkgs is dangerously overengineered because the language is disgustingly limited |
2021-08-03 22:02:19 +0200 | <DigitalKiwi> | drakonis: thank you for taking the time :D |
2021-08-03 22:02:56 +0200 | <drakonis> | ah right i remember now how to have a package with multiple versions now |
2021-08-03 22:03:47 +0200 | <drakonis> | it needs to have the same name for the package metadata, but not the same function name |
2021-08-03 22:03:57 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-08-03 22:04:06 +0200 | <drakonis> | you can install it with <name>@<version> |
2021-08-03 22:04:26 +0200 | <davean> | AH, ok |
2021-08-03 22:04:36 +0200 | <davean> | So that covers some of it |
2021-08-03 22:04:58 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 250 seconds) |
2021-08-03 22:06:41 +0200 | <drakonis> | now, as for the other question |
2021-08-03 22:06:46 +0200 | <drakonis> | no combinatorial explosions here |
2021-08-03 22:06:53 +0200 | <drakonis> | you have to explicitly opt into different versions for things |
2021-08-03 22:07:05 +0200 | <drakonis> | its a easy task on guix, which is why it hasnt been abused like in nixpkgs |
2021-08-03 22:07:10 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-03 22:07:39 +0200 | <drakonis> | i feel that a significant number of nixpkgs design decisions have to do with how many hurdles there are to do things in it |
2021-08-03 22:07:53 +0200 | <drakonis> | https://guix.gnu.org/en/cookbook/en/guix-cookbook.html#Packaging |
2021-08-03 22:08:07 +0200 | <drakonis> | https://guix.gnu.org/en/cookbook/en/guix-cookbook.html#Programmable-and-automated-package-definition |
2021-08-03 22:08:20 +0200 | <mastarija> | Can we expect Guix to start competing with Nix in a few years time? Nix seems way too adopted to introduce some serious changes. |
2021-08-03 22:08:26 +0200 | <drakonis> | it already competes with it |
2021-08-03 22:08:41 +0200 | <davean> | drakonis: I mean one needs it in any system |
2021-08-03 22:09:08 +0200 | <sm> | to update the Change log shown on hackage, you have to upload a new package version, am I right ? |
2021-08-03 22:09:34 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-08-03 22:09:40 +0200 | <davean> | sm: its part of the packge, yes. |
2021-08-03 22:09:41 +0200 | <drakonis> | well, someone has to do the heavy lifting with regards to porting it to other systems though |
2021-08-03 22:10:27 +0200 | <davean> | drakonis: hum? |
2021-08-03 22:10:34 +0200 | <drakonis> | ie: mac and windows support i guess |
2021-08-03 22:10:37 +0200 | <drakonis> | oh |
2021-08-03 22:10:40 +0200 | <DigitalKiwi> | a lot of issues i saw with the bad nixpkgs decisions seemed to be because nix the language lol |
2021-08-03 22:10:48 +0200 | <drakonis> | making it needed on any system |
2021-08-03 22:10:50 +0200 | <drakonis> | right |
2021-08-03 22:10:57 +0200 | <drakonis> | nix the language is not a good language |
2021-08-03 22:11:05 +0200 | <drakonis> | something being fp does not automatically make it well designed |
2021-08-03 22:11:20 +0200 | <drakonis> | davean: misunderstood it |
2021-08-03 22:11:25 +0200 | <DigitalKiwi> | like nobody ever designed haskell4nix how it is because they wanted to heh |
2021-08-03 22:11:39 +0200 | MQ-17J | (~MQ-17J@8.6.144.192) |
2021-08-03 22:11:42 +0200 | <drakonis> | nixpkgs has a mounting tech debt problem |
2021-08-03 22:13:13 +0200 | <drakonis> | also worth mentioning that guix is getting its very own home manager equivalent built into it |
2021-08-03 22:13:20 +0200 | <drakonis> | can be used without requiring the distribution |
2021-08-03 22:14:33 +0200 | mattil | (~mattilinn@62-113-176-119.bb.dnainternet.fi) (Quit: Leaving) |
2021-08-03 22:17:38 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) (Remote host closed the connection) |
2021-08-03 22:17:47 +0200 | <drakonis> | davean: do you have any other questions you'd like to get an answer for? |
2021-08-03 22:17:52 +0200 | <drakonis> | im here all day :V |
2021-08-03 22:18:14 +0200 | <davean> | lol, I'm pretty tangled up on this question now! |
2021-08-03 22:18:18 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-08-03 22:18:36 +0200 | <drakonis> | things i should say i appreciate about guix |
2021-08-03 22:18:44 +0200 | <drakonis> | changing inner machinery is a hoot with them |
2021-08-03 22:18:50 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-03 22:19:35 +0200 | <drakonis> | they modified a bunch of things a week back and it was smooth sailing |
2021-08-03 22:19:48 +0200 | <drakonis> | there's #guix btw |
2021-08-03 22:19:59 +0200 | <drakonis> | just so i don't take over the channel with this discussion |
2021-08-03 22:20:30 +0200 | <drakonis> | as well as #nonguix if you need some of that sweet sweet software that doesnt obey their policies moolah |
2021-08-03 22:20:41 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) |
2021-08-03 22:20:45 +0200 | <davean> | policies? |
2021-08-03 22:21:02 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-08-03 22:21:10 +0200 | <DigitalKiwi> | non-free |
2021-08-03 22:21:19 +0200 | <drakonis> | basically, they have really strong policies on things like reproducibility, bootstrapping and nonfreeness |
2021-08-03 22:21:34 +0200 | <drakonis> | ie: they have standards |
2021-08-03 22:21:39 +0200 | <drakonis> | actual goddamn standrds |
2021-08-03 22:21:41 +0200 | <drakonis> | standards. |
2021-08-03 22:21:42 +0200 | <davean> | drakonis: what does "bootstrapping" mean? |
2021-08-03 22:21:53 +0200 | <davean> | I don't think anyone has bootstrapped a system fully in decades ... |
2021-08-03 22:21:54 +0200 | <drakonis> | it means building software from scratch |
2021-08-03 22:21:58 +0200 | <davean> | like ... more then 4 |
2021-08-03 22:22:02 +0200 | <drakonis> | they have been doing that for compilers |
2021-08-03 22:22:21 +0200 | <drakonis> | they have a haskell bootstrap |
2021-08-03 22:22:21 +0200 | <davean> | I mean you have to get machine code from somewhere |
2021-08-03 22:22:28 +0200 | <drakonis> | well, they've done that too |
2021-08-03 22:22:35 +0200 | <drakonis> | see gnu mes |
2021-08-03 22:22:45 +0200 | <drakonis> | https://www.gnu.org/software/mes/ |
2021-08-03 22:22:58 +0200 | Huw | (~Huw@pa49-179-73-201.pa.nsw.optusnet.com.au) |
2021-08-03 22:23:04 +0200 | <drakonis> | honestly, it is very impressive. |
2021-08-03 22:23:13 +0200 | <DigitalKiwi> | https://www.bootstrappable.org/ is this part of guix project? |
2021-08-03 22:23:16 +0200 | <davean> | I mean, that sure looks like code you have to compile - so it has to get compiled somehow |
2021-08-03 22:23:22 +0200 | <davean> | we don't exactly have toggle switches anymore |
2021-08-03 22:23:25 +0200 | <drakonis> | it is run by guix people |
2021-08-03 22:23:32 +0200 | <davean> | you can't just toggle code into the computer |
2021-08-03 22:23:38 +0200 | fendor_ | (~fendor@77.119.205.218.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-08-03 22:23:49 +0200 | <drakonis> | rather, it is predominantly guix adjacent people |
2021-08-03 22:24:06 +0200 | <davean> | Ok, they say "reduced binary seed" |
2021-08-03 22:24:11 +0200 | <davean> | so they're still not actually bootstrapping it fully |
2021-08-03 22:24:17 +0200 | <davean> | they're just reducing the hold over |
2021-08-03 22:24:23 +0200 | <drakonis> | they've been cutting it down |
2021-08-03 22:24:44 +0200 | <drakonis> | https://savannah.nongnu.org/projects/stage0 they have this now |
2021-08-03 22:24:59 +0200 | <drakonis> | https://www.bootstrappable.org/projects/mes.html |
2021-08-03 22:25:00 +0200 | <drakonis> | Stage0 starts with just a 280 byte Hex monitor and builds up the infrastructure required to start some serious software development. |
2021-08-03 22:25:40 +0200 | <davean> | so you put those 200 bytes on disk, and boot into it? |
2021-08-03 22:25:57 +0200 | <drakonis> | https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstrap-seed-to-25/ |
2021-08-03 22:26:03 +0200 | <drakonis> | they've been using it to compile things |
2021-08-03 22:26:09 +0200 | <drakonis> | not boot into it i guess? |
2021-08-03 22:26:13 +0200 | Huw | (~Huw@pa49-179-73-201.pa.nsw.optusnet.com.au) (Read error: Connection reset by peer) |
2021-08-03 22:26:50 +0200 | <davean> | ok, so you still have an entire kernel then, but ok |
2021-08-03 22:27:10 +0200 | <davean> | anyway, got Haskell they do GHC with the via-c backend and compiler that result to compile future GHCs? |
2021-08-03 22:28:21 +0200 | <drakonis> | haskell doesnt go that far back yet |
2021-08-03 22:28:42 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b95287d3c8ae91691b72a.dip0.t-ipconnect.de) |
2021-08-03 22:29:17 +0200 | <drakonis> | but they do that |
2021-08-03 22:29:24 +0200 | <drakonis> | they use the previous one to compile the next |
2021-08-03 22:30:27 +0200 | <davean> | Oh thats how it always works though |
2021-08-03 22:30:57 +0200 | <drakonis> | indeed |
2021-08-03 22:31:57 +0200 | Atum_ | (IRC@user/atum/x-2392232) |
2021-08-03 22:31:59 +0200 | <drakonis> | there's an interesting thing that comes out of this |
2021-08-03 22:32:16 +0200 | <drakonis> | it means they can offer a very wide variety of compiler versions |
2021-08-03 22:32:16 +0200 | <davean> | ? |
2021-08-03 22:32:32 +0200 | <drakonis> | since they aim to bootstrap as early as possible |
2021-08-03 22:32:34 +0200 | <davean> | I don't see how that comes out of this - most platforms do |
2021-08-03 22:32:55 +0200 | <drakonis> | they don't nuke the definitions for the older compilers in the chain |
2021-08-03 22:33:10 +0200 | <drakonis> | they're just hidden from public consumption |
2021-08-03 22:33:50 +0200 | <drakonis> | its an indirect result of it |
2021-08-03 22:34:09 +0200 | <drakonis> | but as far as i'm concerned, the other linux distributions dont really care a whole lot about bootstrapping things so deeply |
2021-08-03 22:34:33 +0200 | <davean> | but offering versions has nothing to do with bootstrapping, and most distros offer a whole pile of versions |
2021-08-03 22:35:03 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-03 22:35:16 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Client Quit) |
2021-08-03 22:35:36 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-03 22:36:18 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-08-03 22:37:45 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) (Remote host closed the connection) |
2021-08-03 22:38:33 +0200 | <davean> | drakonis: so one of the things "mes" says its inspired by seems to actually fully bootstrap? |
2021-08-03 22:39:16 +0200 | <drakonis> | it's part of the chain |
2021-08-03 22:39:41 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) |
2021-08-03 22:40:11 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-08-03 22:40:44 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) |
2021-08-03 22:41:14 +0200 | <ixlun> | Does anyone know how I can use `mapM_` with a bytestring? I don't think it's an instance of `Traversable` |
2021-08-03 22:41:16 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-08-03 22:41:38 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-08-03 22:41:40 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-08-03 22:42:04 +0200 | <davean> | ixlun: you can unpack it |
2021-08-03 22:42:51 +0200 | tommd | (~tommd@cpe-76-179-204-251.maine.res.rr.com) |
2021-08-03 22:42:59 +0200 | <davean> | ixlun: and mapM_ is off foldable, not traversable |
2021-08-03 22:43:56 +0200 | <ixlun> | Ah, yes, I didn't think about unpacking it! |
2021-08-03 22:44:49 +0200 | <ixlun> | What's the difference between `Traversable` and `Foldable`, they seem very similar? |
2021-08-03 22:46:19 +0200 | <davean> | ixlun: traversable is significantly more powerful, and thus restrictive |
2021-08-03 22:46:37 +0200 | <davean> | ByteString could almost be a foldable, it could never imagine being a traversable |
2021-08-03 22:47:20 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b95281da3f9599f9b27a2.dip0.t-ipconnect.de) |
2021-08-03 22:47:30 +0200 | <davean> | I tihnk you could make a wrapper type that could hold a bytestring and be a foldable actually ... |
2021-08-03 22:47:52 +0200 | sheepduck | (~sheepduck@user/sheepduck) |
2021-08-03 22:48:52 +0200 | <davean> | ixlun: Taversable has to be able to hold arbitrary things |
2021-08-03 22:49:22 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 240 seconds) |
2021-08-03 22:49:24 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-03 22:50:30 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) (Remote host closed the connection) |
2021-08-03 22:50:40 +0200 | <geekosaur> | there is a mono-traversable package out there, intended specifically to resolve this issue for ByteString and Text |
2021-08-03 22:50:40 +0200 | <ixlun> | Hmmm. so it's more that `Traversable` isn't about being able to 'iterate' over the structure, it's more that you can change the underlying data to any arbitrary type? |
2021-08-03 22:50:57 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b95287d3c8ae91691b72a.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-08-03 22:51:19 +0200 | <davean> | ixlun: iterating over it is what foldable does |
2021-08-03 22:54:01 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b95281da3f9599f9b27a2.dip0.t-ipconnect.de) |
2021-08-03 22:54:20 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2021-08-03 22:54:25 +0200 | <Boarders> | with megaparsec what is an easy way to parse: ``` [some text here] ```? |
2021-08-03 22:54:36 +0200 | <Boarders> | sorry I meant to include the \`\`\` |
2021-08-03 22:55:10 +0200 | MQ-17J | (~MQ-17J@8.6.144.192) (Ping timeout: 258 seconds) |
2021-08-03 22:55:31 +0200 | obs\ | (~obscur1ty@102.44.48.121) |
2021-08-03 22:55:31 +0200 | obs\ | (~obscur1ty@102.44.48.121) (Changing host) |
2021-08-03 22:55:31 +0200 | obs\ | (~obscur1ty@user/obs/x-5924898) |
2021-08-03 22:55:42 +0200 | obs\ | (~obscur1ty@user/obs/x-5924898) (Remote host closed the connection) |
2021-08-03 22:55:57 +0200 | obs\ | (~obscur1ty@102.44.48.121) |
2021-08-03 22:55:57 +0200 | obs\ | (~obscur1ty@102.44.48.121) (Changing host) |
2021-08-03 22:55:57 +0200 | obs\ | (~obscur1ty@user/obs/x-5924898) |
2021-08-03 22:56:06 +0200 | <ixlun> | davean: right, so `Traversable` is really the combination of two other classes, `Foldable` to iterate over the data strrcutre and `Functor` to allow a mapping for each element over the structure? |
2021-08-03 22:56:58 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b95281da3f9599f9b27a2.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-03 22:58:05 +0200 | Null_A | (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) |
2021-08-03 22:58:15 +0200 | <davean> | ixlun: I mean ... no? It requires both of those, but it gives more than those alone |
2021-08-03 22:58:27 +0200 | <davean> | Its on top of those two |
2021-08-03 22:58:28 +0200 | <Boarders> | different version of my question: in megaparsec how do I take all text before a given keyword? |
2021-08-03 22:58:58 +0200 | <geekosaur> | manyTill? |
2021-08-03 22:59:15 +0200 | infinity0 | (~infinity0@occupy.ecodis.net) |
2021-08-03 23:01:19 +0200 | <ixlun> | Hmm, okay - looks like I need to do some more reading. Thanks davean |
2021-08-03 23:03:00 +0200 | <davean> | ixlun: sequenceA :: Applicative f => t (f a) -> f (t a) |
2021-08-03 23:03:07 +0200 | <davean> | thats more powerful than Foldable and Functor together |
2021-08-03 23:03:08 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-08-03 23:03:17 +0200 | <davean> | neither allows you to rotate the types |
2021-08-03 23:05:50 +0200 | <ixlun> | Right, I think I get it now! I use this pattern a lot: `sequence $ map print [1,2,3]`. Actually I could use traverse instead? |
2021-08-03 23:06:11 +0200 | <ixlun> | and if `[]` isn't `Traversable`, I couldn't use `sequence`. |
2021-08-03 23:09:40 +0200 | mastarija | (~mastarija@78-3-212-215.adsl.net.t-com.hr) (Read error: Connection reset by peer) |
2021-08-03 23:10:47 +0200 | <tomsmeding> | Boarders: string "```" >> manyTill anyChar (string "```") |
2021-08-03 23:11:06 +0200 | <tomsmeding> | with parsec you'd need try () around those `string` calls |
2021-08-03 23:11:28 +0200 | <tomsmeding> | (as geekosaur said) |
2021-08-03 23:12:04 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 272 seconds) |
2021-08-03 23:12:40 +0200 | ahri | (~ahri@109.70.150.160) |
2021-08-03 23:13:20 +0200 | Core9863 | (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) (Ping timeout: 272 seconds) |
2021-08-03 23:14:30 +0200 | <ahri> | I'm trying to pass my program "+RTS -K1K" to be able to control the stack size, but it doesn't seem like it honours that setting - I can control (and exhaust) the heap size via -M and -A, but "-K_" doesn't even error, and I don't get stack overflows for valid configs |
2021-08-03 23:14:43 +0200 | <ahri> | am I doing it wrong? |
2021-08-03 23:15:06 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 258 seconds) |
2021-08-03 23:15:32 +0200 | <sm> | ahri: that's more of a suggestion than a command - it's not a hard limit - also 1K sounds unreasonably small |
2021-08-03 23:16:11 +0200 | <ahri> | I'm trying to make it unreasonably small, per https://neilmitchell.blogspot.com/2015/09/detecting-space-leaks.html |
2021-08-03 23:16:13 +0200 | <sm> | oh sorry, maybe not for -K. I was thinking of -M |
2021-08-03 23:17:01 +0200 | <ahri> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html makes it sound like a command, it says it will emit StackOverflows |
2021-08-03 23:17:02 +0200 | <geekosaur> | try using the GHCRTS environment variable instead, especially if you're runniing via stack or cabal which may be eating the parameter |
2021-08-03 23:17:27 +0200 | <sm> | right, I was just going to link that. Strange |
2021-08-03 23:17:55 +0200 | <ahri> | when I used the env var it seems like stack was being influenced by it, but I'll have another go |
2021-08-03 23:18:16 +0200 | agua_pesada | (~agua_pesa@191.177.175.57) |
2021-08-03 23:18:43 +0200 | Kaipi | (~Kaiepi@156.34.44.192) |
2021-08-03 23:18:45 +0200 | <geekosaur> | yes, every haskell program would be influenced by the envar |
2021-08-03 23:19:00 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
2021-08-03 23:19:41 +0200 | <geekosaur> | but you need to use --RTS early on to force stack to pass on the +RTS to the child process |
2021-08-03 23:19:53 +0200 | <geekosaur> | stack --RTS exec ... +RTS ... |
2021-08-03 23:20:08 +0200 | <ahri> | ahhh, yes, that makes sense |
2021-08-03 23:21:35 +0200 | <sm> | --RTS, interesting. I always do "stack exec -- ...", maybe that would also have solved it ? |
2021-08-03 23:22:04 +0200 | <geekosaur> | II don't think -- applies to the RTS params, but maybe |
2021-08-03 23:22:28 +0200 | <geekosaur> | they're read too soon by the RTS |
2021-08-03 23:22:52 +0200 | <tomsmeding> | in my experience, using -- works fine |
2021-08-03 23:23:03 +0200 | <tomsmeding> | perhaps stack has a C wrapper that eats some parameters? |
2021-08-03 23:25:58 +0200 | <sm> | yeah -- always worked for me |
2021-08-03 23:28:01 +0200 | <ahri> | I just tried this to take stack out of the equation: `stack exec --profile which server` +RTS -K_ -RTS |
2021-08-03 23:28:54 +0200 | <ahri> | it still doesn't care that the -K_ is invalid, and giving it a probably valid param like -K1B doesn't error with a StackOverflow |
2021-08-03 23:31:42 +0200 | <ahri> | the binary was compiled with "-Wall -Werror -O2 -static -optc-static -optl-static -optl-pthread -rtsopts" |
2021-08-03 23:32:06 +0200 | <ahri> | would this preclude the use of -K? |
2021-08-03 23:33:06 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-08-03 23:40:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-03 23:42:45 +0200 | agua_pesada | (~agua_pesa@191.177.175.57) (Read error: Connection reset by peer) |
2021-08-03 23:43:26 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 252 seconds) |
2021-08-03 23:43:32 +0200 | dunj3 | (~dunj3@2001:981:9d95:1:886d:656c:9636:23f4) |
2021-08-03 23:44:26 +0200 | <sm> | ahri: what ghc version ? I wonder if you need -rtsopts=all now, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/phases.html#ghc-flag--rtsopts[=⟨none|some|all|ignore|ignoreAll⟩] |
2021-08-03 23:44:28 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-08-03 23:45:03 +0200 | <sm> | (that doc confuses me) |
2021-08-03 23:45:22 +0200 | <sm> | probably not |
2021-08-03 23:45:55 +0200 | <ahri> | I'm on 8.4.4 |
2021-08-03 23:46:22 +0200 | <sm> | run your executable with +RTS --help and see if -K is listed ? |
2021-08-03 23:46:37 +0200 | ubert | (~Thunderbi@91.141.44.204.wireless.dyn.drei.com) |
2021-08-03 23:46:40 +0200 | <ahri> | I'll have a go with -rtsopts=all, and --help |
2021-08-03 23:47:09 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) (Remote host closed the connection) |
2021-08-03 23:47:36 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) |
2021-08-03 23:47:44 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) (Remote host closed the connection) |
2021-08-03 23:48:09 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-08-03 23:49:35 +0200 | <ahri> | --help does like -K, and even having recompiled with -rtsopts=all it doesn't care what I pass to -K :( -Kplsdie is as acceptable as -K1k |
2021-08-03 23:49:59 +0200 | <ahri> | *does list -K |
2021-08-03 23:50:49 +0200 | <sm> | confirmed here, -K ignores a junk argument |
2021-08-03 23:51:04 +0200 | <sm> | perhaps #ghc or their issue tracker knows more |
2021-08-03 23:52:37 +0200 | <ahri> | hehe, ok, I'll pursue this more tomorrow, gonna call it a night for now :) thank you for your help |
2021-08-03 23:52:44 +0200 | <sm> | good luck! |
2021-08-03 23:54:05 +0200 | ahri | (~ahri@109.70.150.160) (Quit: zzz) |
2021-08-03 23:54:15 +0200 | <sm> | (FWIW, this does give a stack overflow: stack path +RTS -K1k) |
2021-08-03 23:54:23 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) |
2021-08-03 23:54:47 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-03 23:58:05 +0200 | ubert | (~Thunderbi@91.141.44.204.wireless.dyn.drei.com) (Quit: ubert) |