2021-11-13 00:00:14 +0100 | dsrt^ | (~dsrt@h50.174.139.63.static.ip.windstream.net) |
2021-11-13 00:01:18 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) |
2021-11-13 00:05:59 +0100 | gabiruh_ | gabiruh |
2021-11-13 00:07:02 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-11-13 00:11:30 +0100 | <Franciman> | been trying to write a sexpr parser in Zig |
2021-11-13 00:11:36 +0100 | <Franciman> | it is insanely fast and small |
2021-11-13 00:11:50 +0100 | <Franciman> | what are the usual techniques to improve Haskell's parsing? |
2021-11-13 00:11:54 +0100 | <Franciman> | I am using attoparsec |
2021-11-13 00:11:58 +0100 | <Franciman> | for example |
2021-11-13 00:12:08 +0100 | <Franciman> | i give up on size, because ehe |
2021-11-13 00:12:11 +0100 | <Franciman> | it's not fair |
2021-11-13 00:12:13 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 268 seconds) |
2021-11-13 00:12:30 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving) |
2021-11-13 00:12:30 +0100 | <Franciman> | haskell is a dinosaur if compared with zig, talking about runtimes. so it's unfair |
2021-11-13 00:12:51 +0100 | <Franciman> | to improve haskell's parsing speed |
2021-11-13 00:14:47 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-11-13 00:19:20 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-11-13 00:20:08 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:c075:f6f7:f2c7:7314) |
2021-11-13 00:22:00 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-11-13 00:22:35 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-11-13 00:22:40 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-13 00:23:22 +0100 | stefan-_ | (~cri@42dots.de) (Ping timeout: 260 seconds) |
2021-11-13 00:25:31 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
2021-11-13 00:26:57 +0100 | stefan-_ | (~cri@42dots.de) |
2021-11-13 00:28:24 +0100 | zer0bitz | (~zer0bitz@2001:2003:f6e3:7400:d8e7:a6fa:245:fafa) (Read error: Connection reset by peer) |
2021-11-13 00:28:51 +0100 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-11-13 00:29:47 +0100 | jkaye | (~jkaye@2601:281:8300:7530:25cb:799d:2790:e606) (Ping timeout: 264 seconds) |
2021-11-13 00:32:43 +0100 | <maerwald[m]> | <Franciman> "what are the usual techniques to..." <- Streamly can be really fast, but needs a lot of library knowledge |
2021-11-13 00:33:07 +0100 | <maerwald[m]> | The fastest is an ad-hoc xeno approach, using only bytestring functions that use memchr under the hood like elemIndex |
2021-11-13 00:33:31 +0100 | <maerwald[m]> | attoparsec for example is really slow compared to that |
2021-11-13 00:33:55 +0100 | michalz | (~michalz@185.246.204.37) (Remote host closed the connection) |
2021-11-13 00:35:32 +0100 | <maerwald[m]> | Simple line parsing is slow even in attoparsec |
2021-11-13 00:35:32 +0100 | <maerwald[m]> | https://github.com/hasufell/parselines/blob/master/app/Main.hs |
2021-11-13 00:35:54 +0100 | <maerwald[m]> | Someone tweaked the streamly code to make it almost as fast as the bytestring variant afair, but I don't have the code |
2021-11-13 00:37:41 +0100 | <maerwald[m]> | streamly is lacking partial parsers where you can reset to some position in the chunked input array. That would allow to combine memchr based primitives I believe |
2021-11-13 00:38:24 +0100 | <maerwald[m]> | There are some non-idiomatic workarounds of course, but that's hairv |
2021-11-13 00:38:47 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 264 seconds) |
2021-11-13 00:38:55 +0100 | <dsal> | I find it strange that Aeson returns a `Result` type that looks just like `Either String` but doesn't offer any conversions. I wonder how many codebases convert that to `Either String` or `Maybe` |
2021-11-13 00:41:55 +0100 | <monochrom> | But I would use eitherDecode which gives an Either. |
2021-11-13 00:42:15 +0100 | <monochrom> | I don't think I ever needed to touch Result. |
2021-11-13 00:42:57 +0100 | <maerwald[m]> | Maybe it has interesting instances? |
2021-11-13 00:45:37 +0100 | <janus> | how do i find the minimum calculated using a custom function, but with the ability to recover the original item? |
2021-11-13 00:46:36 +0100 | <janus> | i was thinking to make a newtype and have one item be 'Min a' and the other be 'a' but feel like i am reinventing the wheel |
2021-11-13 00:47:03 +0100 | <monochrom> | Something about ArgMin or Arg. |
2021-11-13 00:47:43 +0100 | <monochrom> | in Data.Semigroup |
2021-11-13 00:48:45 +0100 | <janus> | oooh perfect! |
2021-11-13 00:48:49 +0100 | <monochrom> | :) |
2021-11-13 00:53:32 +0100 | son0p | (~ff@181.136.122.143) (Ping timeout: 268 seconds) |
2021-11-13 00:53:34 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2021-11-13 00:53:43 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 250 seconds) |
2021-11-13 00:53:49 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-13 00:54:03 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2021-11-13 00:55:57 +0100 | <dsal> | If you use fromJSON, you get a Result. It just seems odd to have a custom type for that. I don't know why it'd *need* to be less powerful. |
2021-11-13 00:57:13 +0100 | <dsal> | It might have something interesting. I'm looking at a piece of code that converts it to a `Maybe` and wonder how often that function is written. |
2021-11-13 00:57:37 +0100 | <monochrom> | But I don't use fromJSON. I use eitherDecode. |
2021-11-13 00:58:29 +0100 | <monochrom> | I bet the vibe is "Result is internal and/or if you bypass part of normal aeson workflow". |
2021-11-13 00:58:39 +0100 | <dsal> | Sure, those just do different things. This codebase I'm using has three different uses of fromJSON |
2021-11-13 00:59:00 +0100 | <dsal> | Making it slightly more annoying, I guess... |
2021-11-13 00:59:03 +0100 | <Franciman> | thanks maerwald[m] awesome |
2021-11-13 01:00:30 +0100 | emf | (~emf@2620:10d:c090:400::5:6b1) (Quit: emf) |
2021-11-13 01:01:14 +0100 | <dsal> | There's also ifromJSON that returns an IResult in case you want more letters in your code. |
2021-11-13 01:01:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 01:03:00 +0100 | jinsun__ | (~quassel@user/jinsun) |
2021-11-13 01:04:01 +0100 | jinsun___ | (~quassel@user/jinsun) |
2021-11-13 01:04:45 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-11-13 01:05:50 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-11-13 01:06:02 +0100 | jinsun | (~quassel@user/jinsun) (Ping timeout: 240 seconds) |
2021-11-13 01:08:20 +0100 | jinsun__ | (~quassel@user/jinsun) (Ping timeout: 268 seconds) |
2021-11-13 01:08:43 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-11-13 01:18:15 +0100 | servytor | (uid525486@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-13 01:19:21 +0100 | Guest42 | (~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
2021-11-13 01:25:14 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3) |
2021-11-13 01:26:22 +0100 | johnjay | (~pi@192.142.100.50) (Ping timeout: 260 seconds) |
2021-11-13 01:27:18 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2021-11-13 01:28:00 +0100 | johnjay | (~pi@192.142.100.50) |
2021-11-13 01:28:47 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-11-13 01:35:28 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds) |
2021-11-13 01:35:39 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) |
2021-11-13 01:37:05 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-11-13 01:38:17 +0100 | falafel__ | (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
2021-11-13 01:38:29 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
2021-11-13 01:39:06 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 01:44:06 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-13 01:44:07 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) |
2021-11-13 01:45:26 +0100 | jinsun___ | jinsun |
2021-11-13 01:48:09 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) (Client Quit) |
2021-11-13 01:48:33 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) |
2021-11-13 01:48:36 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) (Client Quit) |
2021-11-13 01:48:53 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) |
2021-11-13 01:49:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 01:49:38 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
2021-11-13 01:49:54 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-13 01:50:38 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Client Quit) |
2021-11-13 01:50:54 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-13 01:52:11 +0100 | jlamothe | (~jlamothe@198.251.61.229) (Ping timeout: 245 seconds) |
2021-11-13 01:53:56 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Client Quit) |
2021-11-13 01:54:12 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-13 01:55:56 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Client Quit) |
2021-11-13 01:56:12 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-13 01:56:43 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Client Quit) |
2021-11-13 01:56:59 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-13 02:00:59 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) |
2021-11-13 02:01:21 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds) |
2021-11-13 02:02:00 +0100 | jgeerds | (~jgeerds@55d41b94.access.ecotel.net) (Ping timeout: 268 seconds) |
2021-11-13 02:03:22 +0100 | falafel__ | (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Remote host closed the connection) |
2021-11-13 02:03:38 +0100 | falafel__ | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 02:03:52 +0100 | acidjnk_new | (~acidjnk@p200300d0c725147020cf3de033c5d4d3.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-11-13 02:03:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-13 02:03:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-13 02:03:59 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-13 02:05:00 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
2021-11-13 02:05:16 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-13 02:05:33 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-11-13 02:05:51 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Client Quit) |
2021-11-13 02:05:57 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Leaving) |
2021-11-13 02:06:07 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-13 02:07:35 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-13 02:08:01 +0100 | falafel__ | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 245 seconds) |
2021-11-13 02:17:18 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep) |
2021-11-13 02:19:03 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) |
2021-11-13 02:19:18 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
2021-11-13 02:20:17 +0100 | SeungheonOh | (~Thunderbi@2600:1700:5168:1400:efbd:f13b:39e3:ec30) |
2021-11-13 02:21:43 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
2021-11-13 02:22:53 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 02:23:10 +0100 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-11-13 02:23:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-13 02:28:30 +0100 | retroid_ | (~retro@2e41e9c8.skybroadband.com) (Ping timeout: 268 seconds) |
2021-11-13 02:28:51 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-13 02:28:55 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-11-13 02:32:08 +0100 | DNH | (~DNH@8.44.0.72) (Quit: Textual IRC Client: www.textualapp.com) |
2021-11-13 02:44:54 +0100 | jbox | (~atlas@2600:1700:2196:2060:2906:6b16:da43:7be2) |
2021-11-13 02:45:01 +0100 | jbox | (~atlas@2600:1700:2196:2060:2906:6b16:da43:7be2) (Changing host) |
2021-11-13 02:45:01 +0100 | jbox | (~atlas@user/jbox) |
2021-11-13 02:45:41 +0100 | jbox | (~atlas@user/jbox) (Client Quit) |
2021-11-13 02:45:59 +0100 | jbox | (~jbox@user/jbox) |
2021-11-13 02:48:27 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-11-13 02:49:52 +0100 | mmhat | (~mmh@55d4bb38.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-11-13 02:51:14 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 265 seconds) |
2021-11-13 02:51:34 +0100 | <amesgen[m]> | Franciman: Another very new lib for extremely high performance parsing is https://github.com/AndrasKovacs/flatparse |
2021-11-13 02:51:43 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-11-13 02:55:05 +0100 | emf | (~emf@63.64.162.234) |
2021-11-13 02:56:47 +0100 | notzmv | (~zmv@user/notzmv) |
2021-11-13 02:57:09 +0100 | jlamothe | (~jlamothe@198.251.61.229) |
2021-11-13 02:59:57 +0100 | emf | (~emf@63.64.162.234) (Ping timeout: 268 seconds) |
2021-11-13 03:01:07 +0100 | emf | (~emf@2620:10d:c090:400::5:3d2a) |
2021-11-13 03:02:41 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2021-11-13 03:09:05 +0100 | <sm> | > On microbenchmarks, flatparse is around 10 times faster than attoparsec or megaparsec. On larger examples with heavier use of source positions and spans and/or indentation parsing, the performance difference grows to 20-30 times. Compile times and exectuable sizes are also significantly better with flatparse than with megaparsec or attoparsec |
2021-11-13 03:09:07 +0100 | <lambdabot> | <hint>:1:19: error: parse error on input ‘,’ |
2021-11-13 03:11:18 +0100 | emf | (~emf@2620:10d:c090:400::5:3d2a) (Quit: emf) |
2021-11-13 03:11:43 +0100 | <SeungheonOh> | how do they accomplish a significantly better performance? |
2021-11-13 03:11:50 +0100 | <SeungheonOh> | do they use C ffi? |
2021-11-13 03:12:07 +0100 | <c_wraith> | you don't need to that. |
2021-11-13 03:12:16 +0100 | <c_wraith> | GHC gives you plenty of low-level tools |
2021-11-13 03:12:26 +0100 | <sm> | the readme tells |
2021-11-13 03:13:23 +0100 | <SeungheonOh> | ByteString? |
2021-11-13 03:13:44 +0100 | <SeungheonOh> | and GHC Primops |
2021-11-13 03:14:13 +0100 | <davean> | dsal: You don't even need to write it - its Foldable |
2021-11-13 03:14:59 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-11-13 03:16:06 +0100 | <jbox> | I wish the haskell ecosystem was more modern |
2021-11-13 03:16:19 +0100 | <jbox> | I absolutely adore Haskell as a language but that's the only good thing about it imo |
2021-11-13 03:16:39 +0100 | <SeungheonOh> | why do you think haskell tooling is not modern? |
2021-11-13 03:17:00 +0100 | <jbox> | it's just a mess in my experience. |
2021-11-13 03:17:19 +0100 | <jbox> | for example, why does cabal need its own language? can't we just use toml or something? |
2021-11-13 03:17:52 +0100 | <sclv> | toml is not expressive enough |
2021-11-13 03:17:52 +0100 | <davean> | cabal is a mess, but if you tried to encode what it does in toml it would be a mess - how do you plan to condititionals for example? |
2021-11-13 03:18:08 +0100 | <sclv> | also cabal format predates toml or json for that matter |
2021-11-13 03:18:15 +0100 | <SeungheonOh> | stack is more refined |
2021-11-13 03:18:20 +0100 | <sclv> | if it used “the standard” it would have been xml |
2021-11-13 03:18:22 +0100 | <davean> | people do cram things into generic formats but they just never actually work |
2021-11-13 03:18:31 +0100 | jbox | hisses at xml |
2021-11-13 03:18:43 +0100 | <sclv> | i just talked to cargo devs this weekend who lamented the problems with toml |
2021-11-13 03:18:51 +0100 | <jbox> | you make a good point davean, I don't know. |
2021-11-13 03:18:55 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-13 03:19:11 +0100 | <jbox> | sclv: can you link me the conversation? That sounds like something I'd be interested in |
2021-11-13 03:19:20 +0100 | <davean> | jbox: talk to kubnernets people about the security issues and random API errors from them using yaml :) |
2021-11-13 03:19:24 +0100 | <sclv> | i literally talked to them |
2021-11-13 03:19:31 +0100 | <SeungheonOh> | Golang uses their own unliterate formats. Cabal formats looks modern enough |
2021-11-13 03:19:44 +0100 | alx741 | (~alx741@181.196.68.187) (Quit: alx741) |
2021-11-13 03:19:47 +0100 | <davean> | sclv: yes, but there is a proper citation format for a discusssion |
2021-11-13 03:19:52 +0100 | <sclv> | like with spoken voices |
2021-11-13 03:20:25 +0100 | <davean> | sclv: yes, you can cite that though :) |
2021-11-13 03:20:29 +0100 | <jbox> | davean: I wholeheartedly believe yaml is the spawn of satan |
2021-11-13 03:21:14 +0100 | <davean> | sclv: you give the name, list it as "Personal Interview" and give the date |
2021-11-13 03:21:46 +0100 | <sclv> | a common package description format between multiple languages would be great. as is, the cabal format is better than lots of alternatives and even with others |
2021-11-13 03:22:13 +0100 | <jbox> | the solution is lisp, of course |
2021-11-13 03:22:27 +0100 | <sm> | for a refreshing change, I submit... https://treenotation.org & https://treebase.treenotation.org |
2021-11-13 03:22:29 +0100 | <sclv> | python and npm are disasters, which require executing arbitrary code to even discover what is in a package manifest |
2021-11-13 03:22:33 +0100 | <davean> | Hum, yah I'd support configuring out packages in lisp, at least it wouldn't be cabal! |
2021-11-13 03:22:53 +0100 | <davean> | sclv: neither of those made me deal with cabal's format though :-p |
2021-11-13 03:22:53 +0100 | <sm> | it's like s-exprs, with indentation instead of parentheses |
2021-11-13 03:23:09 +0100 | <monochrom> | Unpopular opinion: cabal is not a mess. |
2021-11-13 03:23:34 +0100 | <sclv> | from talking to those maintainers, arbitrary code has been a terrible choice they can’t dig themselves out of |
2021-11-13 03:23:34 +0100 | <monochrom> | Unpopular opinion: s/modern/hype, fad/ |
2021-11-13 03:24:14 +0100 | <sclv> | this was all at packaging-con btw, if you want a cite, but it was unrecorded “hallway track” |
2021-11-13 03:24:45 +0100 | <sclv> | Xml is like s exprs but with angle brackets instead of parens :-p |
2021-11-13 03:25:07 +0100 | <davean> | sclv: s-exprs are single-level, xml is trilevel |
2021-11-13 03:25:15 +0100 | <monochrom> | I don't know how to map xml attributes to s-expressions, honestly. |
2021-11-13 03:25:21 +0100 | <davean> | you can't |
2021-11-13 03:25:35 +0100 | <sclv> | Very Carefully!!! |
2021-11-13 03:25:37 +0100 | <davean> | not in general |
2021-11-13 03:25:41 +0100 | <jbox> | sm: this Tree Notation thing looks too ambitious and broad in scope |
2021-11-13 03:25:54 +0100 | <monochrom> | I like s-expressions, but please don't pretend every fad can be shoehorned into it. |
2021-11-13 03:26:00 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2021-11-13 03:26:01 +0100 | <jbox> | davean: what do you mean by single- and tri-level? |
2021-11-13 03:26:02 +0100 | <davean> | jbox: it also says things like "no syntax" and then discusses its syntax |
2021-11-13 03:26:15 +0100 | <sm> | I agree, but I think there's something good there |
2021-11-13 03:26:18 +0100 | <davean> | jbox: seperate denoted namespaces |
2021-11-13 03:26:35 +0100 | <davean> | jbox: xml has different meanings for node names, attributes, etc |
2021-11-13 03:27:10 +0100 | <jbox> | yeah, at first the claims with "no syntax" paired with the drawings made me think it was some kind of joke |
2021-11-13 03:28:42 +0100 | <davean> | I don't trust anything that starts with outright lies |
2021-11-13 03:29:19 +0100 | <sclv> | well if it starts with outright lies it has nowhere to go but up! |
2021-11-13 03:29:40 +0100 | <monochrom> | @quote monochrom kripke |
2021-11-13 03:29:40 +0100 | <lambdabot> | monochrom says: There are truths, damn truths, and Kripke structures. |
2021-11-13 03:29:46 +0100 | <monochrom> | :) |
2021-11-13 03:35:14 +0100 | <jbox> | while we're on the topic, what's the best information-rich document format? |
2021-11-13 03:35:32 +0100 | <jbox> | honestly I'd say xml, as much as I hate it |
2021-11-13 03:36:12 +0100 | <jbox> | I was just thinking of how nice it would be to have a repository of documentation for all sorts of things, in a standardized format, possibly as literate programming |
2021-11-13 03:39:39 +0100 | <monochrom> | I don't know what "best" should mean. But lately I have switched from xhtml to pandoc's markdown and become much happier. |
2021-11-13 03:39:51 +0100 | falafel__ | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 03:43:44 +0100 | mark___ | (~a@p200300ef973db1754086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-11-13 03:48:04 +0100 | <dsal> | This is disappointing: |
2021-11-13 03:48:08 +0100 | <dsal> | listToMaybe :: [a] -> Maybe a |
2021-11-13 03:48:08 +0100 | <dsal> | listToMaybe = foldr (const . Just) Nothing |
2021-11-13 03:50:56 +0100 | falafel__ | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 245 seconds) |
2021-11-13 03:51:53 +0100 | <monochrom> | That's a bit of an overkill, using foldr for just 2 cases :) |
2021-11-13 03:52:12 +0100 | <monochrom> | Someone was trying to be cute heh |
2021-11-13 03:54:23 +0100 | xff0x | (~xff0x@2001:1a81:5251:b200:1b67:fb84:b521:2e46) (Ping timeout: 264 seconds) |
2021-11-13 03:55:35 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 264 seconds) |
2021-11-13 03:56:09 +0100 | <jbox> | monochrom: I love pandoc markdown! |
2021-11-13 03:56:09 +0100 | xff0x | (~xff0x@2001:1a81:526d:df00:a345:8523:ad73:f70) |
2021-11-13 03:56:22 +0100 | <monochrom> | :) |
2021-11-13 03:56:56 +0100 | <jbox> | sorry, I meant to clarify and never did: by "best", I mean "stores as much data as possible and encompasses all forseeable use-cases" |
2021-11-13 03:57:31 +0100 | <jbox> | e.g. with my documentation database idea above, I'd want hyperlinks and all kind of metadata. Perhaps attributes, etc. Markdown wouldn't give me anything near what I would want |
2021-11-13 03:57:40 +0100 | <jbox> | I'm thinking LSP-like documentation interaction |
2021-11-13 03:58:43 +0100 | <dsal> | monochrom: It'd be super great if weren't limited to list. Or yeah, just do the two cases. |
2021-11-13 03:59:01 +0100 | <jbox> | also, can someone explain `listToMaybe = foldr (const . Just) Nothing` to me? I don't understand the `(const . Just)` part :) |
2021-11-13 03:59:26 +0100 | <jbox> | oh yeah and while I have everyone's attention can someone please for the love of god explain to me how a List is a monad? |
2021-11-13 03:59:44 +0100 | <jollygood2> | const . Just is the same as \_ x -> Just x |
2021-11-13 03:59:47 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 264 seconds) |
2021-11-13 03:59:54 +0100 | <dsal> | Other way around. |
2021-11-13 03:59:57 +0100 | <jollygood2> | yeah sorry |
2021-11-13 04:00:00 +0100 | <dsal> | @pl \x _ -> pure x |
2021-11-13 04:00:00 +0100 | <lambdabot> | const . pure |
2021-11-13 04:00:48 +0100 | <dsal> | Short story: If there's anything at all in the list, it returns the first element and ignores the rest. |
2021-11-13 04:01:00 +0100 | <jollygood2> | I'm having a lot of fun using this image processing library in haskell https://hackage.haskell.org/package/hip-1.5.6.0/docs/Graphics-Image.html |
2021-11-13 04:01:02 +0100 | <dsal> | (Because it ignores the accumulator, therefore laziness wins) |
2021-11-13 04:01:46 +0100 | <jollygood2> | mergeImages images = foldl1 leftToRight (intersperse border images) where makeImage (31, 10) (const 1) |
2021-11-13 04:02:01 +0100 | <jollygood2> | this merges a list of images and adds an all-white border between each one |
2021-11-13 04:07:08 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2021-11-13 04:09:59 +0100 | SeungheonOh | (~Thunderbi@2600:1700:5168:1400:efbd:f13b:39e3:ec30) (Quit: SeungheonOh) |
2021-11-13 04:12:26 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2021-11-13 04:15:47 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-13 04:20:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 04:23:19 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 04:24:14 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-11-13 04:24:27 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
2021-11-13 04:24:52 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-13 04:26:46 +0100 | brainfreeze | (~brainfree@2a03:1b20:4:f011::20d) |
2021-11-13 04:27:41 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-13 04:30:04 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 04:31:26 +0100 | <jollygood2> | am I finally going insane for thinking this isn't such a bad idea? :). https://paste.tomsmeding.com/xE6Ou9fh |
2021-11-13 04:33:27 +0100 | jmorris | (uid433911@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-13 04:33:35 +0100 | <monochrom> | Heh, it is worth the while if you use it like at 10 places in your code. |
2021-11-13 04:33:37 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) |
2021-11-13 04:38:37 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) (Ping timeout: 268 seconds) |
2021-11-13 04:42:20 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2021-11-13 04:47:45 +0100 | <jbox> | dsal: what does the pure mean there? |
2021-11-13 04:48:10 +0100 | <dsal> | jbox: It can only mean `Just` here. `pure` is just the first thing that came to mind. |
2021-11-13 04:48:28 +0100 | <jbox> | ohh, I see. Thanks :) |
2021-11-13 04:48:29 +0100 | <dsal> | > pure 1 :: Maybe Int |
2021-11-13 04:48:30 +0100 | <lambdabot> | Just 1 |
2021-11-13 04:48:31 +0100 | <jbox> | dsal++ |
2021-11-13 04:49:01 +0100 | <yin> | any reason why take is not :: Foldable f => f a -> [a] ? |
2021-11-13 04:49:07 +0100 | <jbox> | is there documentation for the bot somewhere? I don't want to flood the channel trying to get the usage info lol |
2021-11-13 04:49:09 +0100 | dajoer | (~david@user/gvx) |
2021-11-13 04:49:21 +0100 | yauhsien | (~yauhsien@49.216.238.61) |
2021-11-13 04:49:38 +0100 | <yin> | take = foldl1 const |
2021-11-13 04:50:01 +0100 | <dsal> | :t foldl1 const |
2021-11-13 04:50:02 +0100 | <lambdabot> | Foldable t => t b -> b |
2021-11-13 04:50:03 +0100 | <yin> | oops nevermind that |
2021-11-13 04:50:23 +0100 | <yin> | i meant head |
2021-11-13 04:50:26 +0100 | <dsal> | Deciding the result should be a list is kind of limiting. |
2021-11-13 04:50:52 +0100 | <dsal> | `head` is generally a bad idea if it does anything other than `foldr (const . Just) Nothing` |
2021-11-13 04:51:00 +0100 | jbox | reputation |
2021-11-13 04:51:19 +0100 | <yin> | that's why i was confusing it with take |
2021-11-13 04:51:24 +0100 | reputation | jbox |
2021-11-13 04:51:30 +0100 | <yin> | i use (take 1) instead |
2021-11-13 04:52:32 +0100 | <yin> | this was, as they call it, a brain fart |
2021-11-13 04:52:32 +0100 | yauhsien | (~yauhsien@49.216.238.61) (Read error: Connection reset by peer) |
2021-11-13 04:52:39 +0100 | <dsal> | take 1 is a different shape sort of, though it's the same cardinality as `Maybe a` |
2021-11-13 04:52:54 +0100 | <jbox> | found it: https://wiki.haskell.org/Lambdabot |
2021-11-13 04:52:56 +0100 | <dsal> | I mean, in that it gives you either 0 things or 1 thing. |
2021-11-13 04:53:07 +0100 | <yin> | dsal: yes |
2021-11-13 04:53:11 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-11-13 04:53:29 +0100 | <dsal> | > (listToMaybe [0..], listToMaybe []) |
2021-11-13 04:53:31 +0100 | <lambdabot> | (Just 0,Nothing) |
2021-11-13 04:54:11 +0100 | jbox | repbot |
2021-11-13 04:54:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-13 04:54:41 +0100 | repbot | jbox |
2021-11-13 04:55:22 +0100 | <jbox> | darcs is dead, right? |
2021-11-13 04:56:04 +0100 | Guest|1 | (~Guest|1@bp.ptr231.ptrcloud.net) |
2021-11-13 04:59:59 +0100 | td_ | (~td@94.134.91.243) (Ping timeout: 256 seconds) |
2021-11-13 05:00:46 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-13 05:01:29 +0100 | td_ | (~td@muedsl-82-207-238-039.citykom.de) |
2021-11-13 05:05:11 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-11-13 05:07:12 +0100 | jbox | (~jbox@user/jbox) (Quit: Leaving) |
2021-11-13 05:10:23 +0100 | jbox | (~jbox@user/jbox) |
2021-11-13 05:11:43 +0100 | jbox | (~jbox@user/jbox) (Client Quit) |
2021-11-13 05:11:55 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Read error: Connection reset by peer) |
2021-11-13 05:12:13 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-13 05:13:09 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 268 seconds) |
2021-11-13 05:16:52 +0100 | jbox | (~jbox@user/jbox) |
2021-11-13 05:17:13 +0100 | Guest|1 | (~Guest|1@bp.ptr231.ptrcloud.net) (Quit: Connection closed) |
2021-11-13 05:18:33 +0100 | atlas | (~jbox@user/jbox) |
2021-11-13 05:18:56 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Read error: Connection reset by peer) |
2021-11-13 05:19:13 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-13 05:22:02 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 260 seconds) |
2021-11-13 05:23:19 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-13 05:23:34 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 05:23:40 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-13 05:33:22 +0100 | jinsun__ | (~quassel@user/jinsun) |
2021-11-13 05:34:35 +0100 | jbox | (~jbox@user/jbox) (Quit: Leaving) |
2021-11-13 05:34:44 +0100 | atlas | (~jbox@user/jbox) (Quit: Leaving) |
2021-11-13 05:34:44 +0100 | jinsun | (~quassel@user/jinsun) (Ping timeout: 268 seconds) |
2021-11-13 05:34:48 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-13 05:34:51 +0100 | <dsal> | I think I still use it now and then. |
2021-11-13 05:34:57 +0100 | fvr | (uid503686@uxbridge.irccloud.com) |
2021-11-13 05:35:01 +0100 | jbox | (~jbox@user/jbox) |
2021-11-13 05:35:10 +0100 | jbox | (~jbox@user/jbox) (Remote host closed the connection) |
2021-11-13 05:35:11 +0100 | atlas | (~jbox@user/jbox) |
2021-11-13 05:38:20 +0100 | drdo | (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
2021-11-13 05:40:11 +0100 | img | (~img@user/img) |
2021-11-13 05:40:13 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-11-13 05:41:57 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 05:43:31 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 05:47:32 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 05:48:43 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 05:52:37 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 05:52:48 +0100 | wei2912 | (~wei2912@138.75.71.147) |
2021-11-13 05:53:54 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 05:56:17 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 05:56:39 +0100 | Guest|26 | (~Guest|26@c-73-153-68-22.hsd1.co.comcast.net) |
2021-11-13 05:57:36 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-11-13 05:58:00 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-11-13 05:58:06 +0100 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Quit: WeeChat 3.3) |
2021-11-13 05:58:12 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 05:59:05 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 05:59:15 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) (Quit: Going elsewhere) |
2021-11-13 06:00:15 +0100 | Guest|26 | (~Guest|26@c-73-153-68-22.hsd1.co.comcast.net) (Client Quit) |
2021-11-13 06:02:00 +0100 | somnolent | (~somnolent@c-73-153-68-22.hsd1.co.comcast.net) |
2021-11-13 06:02:36 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
2021-11-13 06:03:08 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:03:18 +0100 | <somnolent> | Hi, I'm trying to install ghcup and it fails with a cabal error |
2021-11-13 06:03:25 +0100 | <somnolent> | cabal: error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory |
2021-11-13 06:03:26 +0100 | <somnolent> | "cabal new-update" failed! |
2021-11-13 06:03:35 +0100 | <somnolent> | Any idea how I should start debugging this? |
2021-11-13 06:04:17 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:04:47 +0100 | <sclv> | what os |
2021-11-13 06:06:25 +0100 | <somnolent> | pop-os |
2021-11-13 06:06:33 +0100 | <somnolent> | very nearly ubuntu |
2021-11-13 06:08:52 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:09:28 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:10:03 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) |
2021-11-13 06:13:29 +0100 | <sclv> | i suspect you need to install libffi or libffi-dev? |
2021-11-13 06:13:50 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:14:02 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 06:14:14 +0100 | <sclv> | the cabal binary expects some system libs to be around. ghcup tries to install them for you but only on distros it has a clue about |
2021-11-13 06:14:39 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:15:33 +0100 | <somnolent> | okay, apt-cache search libffi shows libffi-dev, libffi7, and a few others |
2021-11-13 06:15:41 +0100 | <somnolent> | is there any way to know which I need? |
2021-11-13 06:15:44 +0100 | <somnolent> | libffi7? |
2021-11-13 06:15:52 +0100 | <sclv> | i suspect that |
2021-11-13 06:16:14 +0100 | <sclv> | ghcup source will list what it usually looks for if you skim it |
2021-11-13 06:18:12 +0100 | <somnolent> | that fixed it, thanks! |
2021-11-13 06:18:24 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:19:00 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) |
2021-11-13 06:19:50 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:23:18 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:25:02 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:25:58 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) |
2021-11-13 06:29:39 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:29:59 +0100 | ishutin_ | (~ishutin@92-249-179-61.pool.digikabel.hu) (Ping timeout: 250 seconds) |
2021-11-13 06:30:13 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:31:50 +0100 | ishutin | (~ishutin@84-236-40-131.pool.digikabel.hu) |
2021-11-13 06:33:59 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:35:24 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:38:21 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:40:00 +0100 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-11-13 06:40:36 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:44:30 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:45:47 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:49:02 +0100 | somnolent | (~somnolent@c-73-153-68-22.hsd1.co.comcast.net) (Quit: Connection closed) |
2021-11-13 06:49:54 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:50:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 06:50:58 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:53:58 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 06:56:10 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 06:59:27 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 07:01:02 +0100 | yahb | (xsbot@user/mniip/bot/yahb) (Ping timeout: 240 seconds) |
2021-11-13 07:01:13 +0100 | yahb | (xsbot@user/mniip/bot/yahb) |
2021-11-13 07:01:21 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 07:05:11 +0100 | bgamari | (~bgamari@64.223.227.106) (Ping timeout: 264 seconds) |
2021-11-13 07:05:12 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 07:06:19 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-13 07:06:32 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 07:07:06 +0100 | bgamari | (~bgamari@70.16.103.161) |
2021-11-13 07:07:15 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) |
2021-11-13 07:07:20 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-11-13 07:08:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-13 07:08:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-13 07:08:03 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-13 07:08:27 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2021-11-13 07:10:50 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 07:10:50 +0100 | drdo | (~drdo@roach0.drdo.eu) (Client Quit) |
2021-11-13 07:11:09 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-13 07:12:15 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-13 07:13:01 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
2021-11-13 07:14:16 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-11-13 07:15:37 +0100 | img | (~img@user/img) |
2021-11-13 07:15:45 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-11-13 07:16:16 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-11-13 07:19:20 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-13 07:21:59 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-11-13 07:22:46 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-11-13 07:22:49 +0100 | eruditass | (uid248673@uxbridge.irccloud.com) |
2021-11-13 07:24:04 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-11-13 07:25:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-13 07:29:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-13 07:29:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-13 07:29:28 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-13 07:32:54 +0100 | <energizer> | has anybody made statistics on the most common functions used in popular packages? |
2021-11-13 07:34:03 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 07:34:22 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) (Ping timeout: 268 seconds) |
2021-11-13 07:35:25 +0100 | shidima | (~shidima@84-104-108-90.cable.dynamic.v4.ziggo.nl) |
2021-11-13 07:38:35 +0100 | mei3 | (~mei@user/mei) |
2021-11-13 07:38:42 +0100 | mei3 | mei |
2021-11-13 07:41:51 +0100 | falafel_ | (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
2021-11-13 07:45:23 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-11-13 07:47:44 +0100 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-11-13 07:47:47 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) (Ping timeout: 264 seconds) |
2021-11-13 07:49:35 +0100 | atlas | jbox |
2021-11-13 07:56:58 +0100 | chomwitt | (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) |
2021-11-13 07:59:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-13 08:06:33 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 08:07:14 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-11-13 08:10:57 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-13 08:15:24 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2021-11-13 08:15:38 +0100 | falafel_ | (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 260 seconds) |
2021-11-13 08:15:54 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-13 08:15:54 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-13 08:15:54 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-13 08:16:33 +0100 | retroid_ | (~retro@176.255.22.26) |
2021-11-13 08:19:32 +0100 | falafel_ | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 08:20:18 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-11-13 08:24:23 +0100 | falafel_ | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-11-13 08:26:08 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 08:30:59 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-11-13 08:31:20 +0100 | mbuf | (~Shakthi@136.185.92.113) |
2021-11-13 08:35:09 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-13 08:35:58 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-13 08:41:20 +0100 | jmorris | (uid433911@hampstead.irccloud.com) |
2021-11-13 08:44:23 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-11-13 08:50:43 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 08:54:42 +0100 | <sm> | jbox: it's not dead. It's restin'! |
2021-11-13 08:55:35 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-13 08:55:35 +0100 | xff0x | (~xff0x@2001:1a81:526d:df00:a345:8523:ad73:f70) (Ping timeout: 264 seconds) |
2021-11-13 08:56:21 +0100 | xff0x | (~xff0x@2001:1a81:526d:df00:9ede:d6:8225:5301) |
2021-11-13 09:03:58 +0100 | <sm> | what's a good way to group [(a,b)] into [(a,[b])] ? |
2021-11-13 09:05:05 +0100 | <sm> | extra:groupSort |
2021-11-13 09:07:30 +0100 | <sm> | extra, that's the package I forgot |
2021-11-13 09:07:54 +0100 | <sm> | everything useful lives there |
2021-11-13 09:09:23 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) (Ping timeout: 264 seconds) |
2021-11-13 09:12:43 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) (Ping timeout: 256 seconds) |
2021-11-13 09:13:26 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) |
2021-11-13 09:15:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 09:22:01 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-13 09:22:24 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-13 09:22:52 +0100 | Everything | (~Everythin@37.115.210.35) |
2021-11-13 09:22:56 +0100 | brainfreeze | (~brainfree@2a03:1b20:4:f011::20d) (Remote host closed the connection) |
2021-11-13 09:28:43 +0100 | mei | (~mei@user/mei) (Read error: Connection reset by peer) |
2021-11-13 09:31:31 +0100 | jollygood2 | (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-11-13 09:35:42 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-13 09:36:58 +0100 | acidjnk_new | (~acidjnk@p200300d0c725147020cf3de033c5d4d3.dip0.t-ipconnect.de) |
2021-11-13 09:40:20 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:c075:f6f7:f2c7:7314) (Remote host closed the connection) |
2021-11-13 09:48:11 +0100 | xff0x | (~xff0x@2001:1a81:526d:df00:9ede:d6:8225:5301) (Ping timeout: 268 seconds) |
2021-11-13 09:48:33 +0100 | xff0x | (~xff0x@2001:1a81:526d:df00:e60d:1bd2:2f9f:7e19) |
2021-11-13 09:49:53 +0100 | jinsun__ | jinusun |
2021-11-13 09:49:57 +0100 | jinusun | jinsun |
2021-11-13 09:51:39 +0100 | tinwood | (~tinwood@canonical/tinwood) (Remote host closed the connection) |
2021-11-13 09:52:39 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) |
2021-11-13 09:53:23 +0100 | forell | (~forell@user/forell) (Quit: ZNC - https://znc.in) |
2021-11-13 09:54:11 +0100 | forell | (~forell@user/forell) |
2021-11-13 09:54:41 +0100 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) |
2021-11-13 09:54:41 +0100 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host) |
2021-11-13 09:54:41 +0100 | tinwood | (~tinwood@canonical/tinwood) |
2021-11-13 10:12:16 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-11-13 10:12:55 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-11-13 10:14:29 +0100 | ProofTechnique | (sid79547@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:14:29 +0100 | hamishmack | (sid389057@hampstead.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:14:47 +0100 | JSharp | (sid4580@lymington.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:15:03 +0100 | kristjansson_ | (sid126207@tinside.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:15:19 +0100 | jakesyl_ | (sid56879@hampstead.irccloud.com) (Ping timeout: 268 seconds) |
2021-11-13 10:15:51 +0100 | JSharp | (sid4580@lymington.irccloud.com) |
2021-11-13 10:16:11 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-13 10:16:11 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-13 10:16:11 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-13 10:16:35 +0100 | hendi | (sid489601@lymington.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:16:35 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-11-13 10:16:52 +0100 | jakesyl_ | (sid56879@hampstead.irccloud.com) |
2021-11-13 10:17:04 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 10:17:33 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-11-13 10:17:33 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-11-13 10:17:36 +0100 | allbery_b | geekosaur |
2021-11-13 10:17:42 +0100 | ProofTechnique | (sid79547@ilkley.irccloud.com) |
2021-11-13 10:18:07 +0100 | hamishmack | (sid389057@hampstead.irccloud.com) |
2021-11-13 10:18:53 +0100 | hendi | (sid489601@lymington.irccloud.com) |
2021-11-13 10:18:53 +0100 | kristjansson_ | (sid126207@tinside.irccloud.com) |
2021-11-13 10:18:59 +0100 | ephemient | (uid407513@lymington.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:18:59 +0100 | hongminhee | (sid295@tinside.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:19:01 +0100 | S11001001 | (sid42510@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:19:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-13 10:19:32 +0100 | jakesyl_ | (sid56879@hampstead.irccloud.com) (Max SendQ exceeded) |
2021-11-13 10:19:35 +0100 | carter | (sid14827@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:19:35 +0100 | elvishjerricco | (sid237756@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:19:35 +0100 | Pent | (sid313808@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:19:35 +0100 | obviyus | (sid415299@user/obviyus) (Ping timeout: 256 seconds) |
2021-11-13 10:19:35 +0100 | bjs | (sid190364@user/bjs) (Ping timeout: 256 seconds) |
2021-11-13 10:19:35 +0100 | SethTisue__ | (sid14912@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:19:35 +0100 | degraafk | (sid71464@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:19:46 +0100 | SethTisue__ | (sid14912@ilkley.irccloud.com) |
2021-11-13 10:19:50 +0100 | Pent | (sid313808@lymington.irccloud.com) |
2021-11-13 10:20:09 +0100 | NiKaN | (sid385034@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:20:11 +0100 | aarchi | (sid486183@uxbridge.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:20:13 +0100 | degraafk | (sid71464@lymington.irccloud.com) |
2021-11-13 10:20:25 +0100 | S11001001 | (sid42510@ilkley.irccloud.com) |
2021-11-13 10:20:27 +0100 | jakesyl_ | (sid56879@hampstead.irccloud.com) |
2021-11-13 10:20:42 +0100 | obviyus | (sid415299@user/obviyus) |
2021-11-13 10:21:10 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-11-13 10:21:20 +0100 | carter | (sid14827@helmsley.irccloud.com) |
2021-11-13 10:21:39 +0100 | ephemient | (uid407513@lymington.irccloud.com) |
2021-11-13 10:21:51 +0100 | amir | (sid22336@user/amir) (Ping timeout: 256 seconds) |
2021-11-13 10:22:03 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-13 10:23:29 +0100 | aarchi | (sid486183@uxbridge.irccloud.com) |
2021-11-13 10:23:47 +0100 | parseval | (sid239098@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:23:55 +0100 | elvishjerricco | (sid237756@helmsley.irccloud.com) |
2021-11-13 10:24:23 +0100 | fvr | (uid503686@uxbridge.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-13 10:24:44 +0100 | NiKaN | (sid385034@helmsley.irccloud.com) |
2021-11-13 10:25:29 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-13 10:25:36 +0100 | amir | (sid22336@user/amir) |
2021-11-13 10:26:23 +0100 | ehamberg | (sid18208@hampstead.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:26:23 +0100 | gaze___ | (sid387101@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:26:35 +0100 | hongminhee | (sid295@tinside.irccloud.com) |
2021-11-13 10:26:47 +0100 | bw | (sid2730@user/betawaffle) (Ping timeout: 264 seconds) |
2021-11-13 10:26:57 +0100 | obviyus | (sid415299@user/obviyus) (Ping timeout: 256 seconds) |
2021-11-13 10:26:57 +0100 | rtpg | (sid443069@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-13 10:27:07 +0100 | ehamberg | (sid18208@hampstead.irccloud.com) |
2021-11-13 10:27:08 +0100 | bjs | (sid190364@user/bjs) |
2021-11-13 10:27:24 +0100 | fvr | (uid503686@uxbridge.irccloud.com) |
2021-11-13 10:27:32 +0100 | parseval | (sid239098@helmsley.irccloud.com) |
2021-11-13 10:28:10 +0100 | obviyus | (sid415299@user/obviyus) |
2021-11-13 10:28:32 +0100 | <Franciman> | amesgen[m]: thanks |
2021-11-13 10:29:32 +0100 | rtpg | (sid443069@ilkley.irccloud.com) |
2021-11-13 10:29:36 +0100 | gaze___ | (sid387101@helmsley.irccloud.com) |
2021-11-13 10:29:38 +0100 | bw | (sid2730@user/betawaffle) |
2021-11-13 10:39:23 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) (Ping timeout: 264 seconds) |
2021-11-13 10:40:54 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d49b:b47c:7bbd:b323) |
2021-11-13 10:45:06 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d49b:b47c:7bbd:b323) (Ping timeout: 245 seconds) |
2021-11-13 10:51:21 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
2021-11-13 10:54:25 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-13 10:55:18 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-13 10:55:27 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-13 10:56:28 +0100 | aliosablack | (~chomwitt@ppp-94-67-200-81.home.otenet.gr) |
2021-11-13 10:56:40 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-11-13 10:58:26 +0100 | chomwitt | (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds) |
2021-11-13 11:02:15 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-11-13 11:02:50 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-11-13 11:03:28 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
2021-11-13 11:04:17 +0100 | mmhat | (~mmh@55d46755.access.ecotel.net) |
2021-11-13 11:04:32 +0100 | etrepum | (sid763@uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-13 11:05:36 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-11-13 11:06:18 +0100 | <sm> | what operation transforms Just n to Just (n+1) and Nothing to Just 1 ? |
2021-11-13 11:07:31 +0100 | <sm> | map (maybe 1 (+1)) |
2021-11-13 11:07:39 +0100 | <sm> | thank you rubber duck |
2021-11-13 11:08:03 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) |
2021-11-13 11:08:08 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) |
2021-11-13 11:08:24 +0100 | <Hecate> | yer welcome |
2021-11-13 11:08:30 +0100 | <Hecate> | how are you doing sm btw? |
2021-11-13 11:09:04 +0100 | <sm> | good thanks Hecate, other than coding a bit too late. And yourself ? |
2021-11-13 11:09:16 +0100 | <f-a> | wait |
2021-11-13 11:09:36 +0100 | <f-a> | maybe 1 (+1) value works too, withoutu the map, am I wrong? |
2021-11-13 11:10:11 +0100 | <f-a> | > maybe 1 (+1) Nothing |
2021-11-13 11:10:12 +0100 | <lambdabot> | 1 |
2021-11-13 11:10:15 +0100 | <f-a> | > maybe 1 (+1) (Just 8) |
2021-11-13 11:10:16 +0100 | <lambdabot> | 9 |
2021-11-13 11:10:38 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 11:11:44 +0100 | <int-e> | f-a: the map was just context leaking into the IRC channel I think, not part of the answer |
2021-11-13 11:12:08 +0100 | <f-a> | ah of course |
2021-11-13 11:12:29 +0100 | <Hecate> | sm: starting to wake up, got a little html encoding issue with lucid & servant |
2021-11-13 11:13:19 +0100 | <unit73e> | f-a, you're not wrong. that's exactly what sm wants |
2021-11-13 11:13:38 +0100 | <f-a> | my question: I am writing a small game library |
2021-11-13 11:14:00 +0100 | <f-a> | and I would like a «turn this flag on to display current fps» |
2021-11-13 11:14:22 +0100 | <f-a> | I know «flag» in cabal files |
2021-11-13 11:14:25 +0100 | <f-a> | but: |
2021-11-13 11:14:30 +0100 | fvr | (uid503686@uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-13 11:14:47 +0100 | <f-a> | • can I conditionally compile my library based on these flags?; and |
2021-11-13 11:14:54 +0100 | <unit73e> | hum... but that's for users correct? forcing users to use cabal... not a good practice |
2021-11-13 11:15:07 +0100 | <f-a> | • how will the end user of the library be able pass those flags? |
2021-11-13 11:15:13 +0100 | <unit73e> | he won't |
2021-11-13 11:15:17 +0100 | <f-a> | yeah it is for the user unit73e |
2021-11-13 11:15:18 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-11-13 11:15:26 +0100 | <unit73e> | that's engine logic |
2021-11-13 11:15:29 +0100 | <f-a> | I am of course open to suggestions |
2021-11-13 11:15:31 +0100 | sm | is only loosely in control of this problem. Here is more of what I needed: |
2021-11-13 11:15:31 +0100 | sm | ```haskell |
2021-11-13 11:15:31 +0100 | sm | -- Crash sites within a row, and how many times at each one. |
2021-11-13 11:15:31 +0100 | sm | type RowCrashes = M.Map CaveCol Int |
2021-11-13 11:15:31 +0100 | sm | -- Add a new crash site to a RowCrashes. |
2021-11-13 11:15:32 +0100 | sm | rowCrashesAdd col rowcrashes = M.alter (maybe (Just 1) (Just . (+1))) col rowcrashes |
2021-11-13 11:15:32 +0100 | sm | ``` |
2021-11-13 11:15:47 +0100 | <unit73e> | you should just use an actual flag, in code |
2021-11-13 11:16:05 +0100 | <unit73e> | in engines there's usually a key for that |
2021-11-13 11:16:12 +0100 | <sm> | I wouldn't use cabal flags f-a, they aren't worth the added complexity |
2021-11-13 11:16:31 +0100 | <sm> | and build time |
2021-11-13 11:17:00 +0100 | <f-a> | sm: you would go for Bool -> … like unit73e then? |
2021-11-13 11:17:16 +0100 | <unit73e> | users usually want to enable/disable fps while the game is running |
2021-11-13 11:17:16 +0100 | <sm> | a runtime flag, certainly |
2021-11-13 11:17:25 +0100 | <unit73e> | not at start |
2021-11-13 11:17:35 +0100 | <unit73e> | like F12 shows fps |
2021-11-13 11:17:37 +0100 | <unit73e> | something like that |
2021-11-13 11:17:49 +0100 | <unit73e> | or an option in the meny |
2021-11-13 11:17:51 +0100 | <unit73e> | or an option in the menu |
2021-11-13 11:18:00 +0100 | <sm> | I wouldn't mind specifying it at start of game, but changing on the fly while game is running is ideal of course |
2021-11-13 11:18:11 +0100 | <f-a> | mhhh I see, thanks for the feedback |
2021-11-13 11:18:26 +0100 | <sm> | but why ? Isn't it something you can always provide, and game can use it or not ? |
2021-11-13 11:18:58 +0100 | <f-a> | I could provide it in the `draw` function :: s -> FPS (Int) -> Plane |
2021-11-13 11:18:59 +0100 | stefan-_ | (~cri@42dots.de) (Ping timeout: 264 seconds) |
2021-11-13 11:19:16 +0100 | <unit73e> | enabling/disabling show fps in runtime is a convention. if you do that as an cmd option gamers will be confused why it's only available as an option. |
2021-11-13 11:19:26 +0100 | <unit73e> | conventions are important |
2021-11-13 11:19:48 +0100 | <unit73e> | yeah you should have some sort of state |
2021-11-13 11:21:30 +0100 | <f-a> | https://hackage.haskell.org/package/ansi-terminal-game-1.5.0.0/docs/Terminal-Game.html#t:Game these are the current logic/draw function sigs, unit73e , I guess adding it to gDrawFunction is a possibility and then if the user does not need it, they will ignore it |
2021-11-13 11:22:10 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-11-13 11:22:50 +0100 | stefan-_ | (~cri@42dots.de) |
2021-11-13 11:22:55 +0100 | <unit73e> | you can infer the fps with ticks per second |
2021-11-13 11:23:06 +0100 | <f-a> | you cannot as now |
2021-11-13 11:23:30 +0100 | <f-a> | Ticks are the same even if frames (drawing frames) are dropped |
2021-11-13 11:23:40 +0100 | <unit73e> | I see |
2021-11-13 11:23:46 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) |
2021-11-13 11:23:51 +0100 | <f-a> | (so the game runs at the same speed on every machine) |
2021-11-13 11:24:14 +0100 | <unit73e> | you might want other options so perhaps it would be included in a record or data for all runtime options |
2021-11-13 11:24:33 +0100 | <unit73e> | and your loop would cycle with those options |
2021-11-13 11:24:52 +0100 | <unit73e> | one being show fps |
2021-11-13 11:25:56 +0100 | <unit73e> | that would also allow you to have terminal options using the same runtime options structure |
2021-11-13 11:26:56 +0100 | <unit73e> | that would be your options state |
2021-11-13 11:27:23 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) (Ping timeout: 264 seconds) |
2021-11-13 11:28:14 +0100 | <unit73e> | I wouldn't do options with something generic with a Map but I bet someone would think that way :P |
2021-11-13 11:29:37 +0100 | <unit73e> | speaking of game engines, I added one more example here: https://gitlab.com/unit73e/sdl2-examples |
2021-11-13 11:29:47 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 11:30:07 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) |
2021-11-13 11:31:22 +0100 | <unit73e> | it's about texture clipping, for animations, it's not exactly how I would like yet but the idea is to pack all your sprites in N^2 textures, make a JSON with the packer, and load animations with it. I need to make a better data structure though. |
2021-11-13 11:31:36 +0100 | <f-a> | do they add material to lazyfoo’s ones? |
2021-11-13 11:31:47 +0100 | <f-a> | if so you could see if they get merged |
2021-11-13 11:31:47 +0100 | <unit73e> | I don't think so |
2021-11-13 11:31:58 +0100 | <unit73e> | lazyfoo examples are very basic |
2021-11-13 11:32:16 +0100 | <f-a> | they are |
2021-11-13 11:32:19 +0100 | <unit73e> | they're not fit for proper game development though the examples do help |
2021-11-13 11:32:39 +0100 | <f-a> | and it is tricky to understand why they are wrong |
2021-11-13 11:32:46 +0100 | <unit73e> | yeah |
2021-11-13 11:32:52 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 11:34:17 +0100 | <unit73e> | one example is textures should always be N^2 because VRAM is in N^2 blocks so it's more efficient to have images with that size. lazyfoo uses several images instead. but the part that really bugged me was movement. |
2021-11-13 11:34:34 +0100 | <unit73e> | it's not smooth at all. what lazyfoo did was press arrows and the player moves N pixels |
2021-11-13 11:34:39 +0100 | <unit73e> | once per keystroke |
2021-11-13 11:36:46 +0100 | <unit73e> | he does end up explaning scrolling but I was not impressed. also lazyfoo doesn't want ports in other languages and that was the deal breaker. |
2021-11-13 11:37:42 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-13 11:39:48 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-11-13 11:40:30 +0100 | MiguelNegrao | (~MiguelNeg@194.210.216.223) |
2021-11-13 11:41:48 +0100 | <MiguelNegrao> | Hi all. Is there a package providing a variable size tuple backed by a type list ? Something like (a,b,c) ~ Tuple '[a,b,c] |
2021-11-13 11:42:13 +0100 | <unit73e> | is that your real name? |
2021-11-13 11:42:23 +0100 | <MiguelNegrao> | yes |
2021-11-13 11:42:33 +0100 | <unit73e> | lol just curious |
2021-11-13 11:42:36 +0100 | <MiguelNegrao> | why ? |
2021-11-13 11:42:44 +0100 | <unit73e> | well it's somewhat funny |
2021-11-13 11:43:08 +0100 | <unit73e> | but don't worry mine is funny too because of tooth paste, couto is my last name |
2021-11-13 11:43:16 +0100 | <MiguelNegrao> | For Brazilians I guess it would be |
2021-11-13 11:43:25 +0100 | <MiguelNegrao> | In Portugal it is pretty normal |
2021-11-13 11:43:34 +0100 | <unit73e> | I'm portuguese |
2021-11-13 11:43:44 +0100 | <unit73e> | and yeah I guess |
2021-11-13 11:44:05 +0100 | <unit73e> | just to be clear |
2021-11-13 11:44:09 +0100 | <MiguelNegrao> | I think it comes from italian. https://en.wikipedia.org/wiki/Negroni_(surname) |
2021-11-13 11:44:16 +0100 | <unit73e> | you want to transform a list to a tuple? |
2021-11-13 11:44:23 +0100 | <unit73e> | of any size? |
2021-11-13 11:44:57 +0100 | <MiguelNegrao> | Not exactly, a list would have to have all elements of same type |
2021-11-13 11:45:07 +0100 | <MiguelNegrao> | kind of like an HList but using normal tuples |
2021-11-13 11:45:15 +0100 | aliosablack | (~chomwitt@ppp-94-67-200-81.home.otenet.gr) (Quit: Leaving) |
2021-11-13 11:45:24 +0100 | <unit73e> | why not just use an HList? |
2021-11-13 11:46:36 +0100 | sm | found this needful: |
2021-11-13 11:46:36 +0100 | sm | ```haskell |
2021-11-13 11:46:36 +0100 | sm | insertOrUpdate :: Ord k => v -> (v -> v) -> k -> M.Map k v -> M.Map k v |
2021-11-13 11:46:36 +0100 | sm | insertOrUpdate newval valupdatefn key = M.alter (maybe (Just newval) (Just . valupdatefn)) key |
2021-11-13 11:46:36 +0100 | sm | ``` |
2021-11-13 11:47:31 +0100 | <MiguelNegrao> | I guess I thought people are more familiar with tuples |
2021-11-13 11:47:48 +0100 | <MiguelNegrao> | Something similar is implemented here https://hackage.haskell.org/package/vivid-0.5.1.0/docs/Vivid-SynthDef-TypesafeArgs.html |
2021-11-13 11:47:54 +0100 | <MiguelNegrao> | the VarArg type |
2021-11-13 11:48:05 +0100 | <MiguelNegrao> | Sorry VarList |
2021-11-13 11:48:41 +0100 | <unit73e> | it's not that different. there's data.tuple.select but I would just use an HList |
2021-11-13 11:48:57 +0100 | <MiguelNegrao> | Ok, thanks. |
2021-11-13 11:49:07 +0100 | <MiguelNegrao> | Good to know there are other Haskelers in Portugal. :-) |
2021-11-13 11:49:32 +0100 | <unit73e> | yup it's already hard enough to convince functional programming is good |
2021-11-13 11:49:59 +0100 | <MiguelNegrao> | Do you use Haskell at work ? |
2021-11-13 11:50:11 +0100 | <unit73e> | unfortunately no |
2021-11-13 11:50:23 +0100 | <unit73e> | you probably know portugal is a java country |
2021-11-13 11:50:25 +0100 | mniip | (mniip@libera/staff/mniip) (Quit: This page is intentionally left blank.) |
2021-11-13 11:51:22 +0100 | <unit73e> | but I might take an haskell project if the opportunity arrives |
2021-11-13 11:52:02 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) |
2021-11-13 11:54:29 +0100 | MiguelNegrao | (~MiguelNeg@194.210.216.223) (Quit: Client closed) |
2021-11-13 11:57:45 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 11:57:48 +0100 | mniip | (mniip@libera/staff/mniip) |
2021-11-13 12:00:52 +0100 | alx741 | (~alx741@181.196.68.187) |
2021-11-13 12:08:06 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-11-13 12:13:08 +0100 | jgeerds | (~jgeerds@55d41b94.access.ecotel.net) |
2021-11-13 12:15:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 12:17:45 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 12:18:22 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 12:22:58 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-13 12:23:55 +0100 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2021-11-13 12:25:44 +0100 | FragByte | (~christian@user/fragbyte) |
2021-11-13 12:30:14 +0100 | DNH | (~DNH@8.43.122.53) |
2021-11-13 12:30:32 +0100 | DNH | (~DNH@8.43.122.53) (Client Quit) |
2021-11-13 12:37:54 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-13 12:38:43 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-13 12:40:07 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 256 seconds) |
2021-11-13 12:41:55 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2021-11-13 12:42:50 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d49b:b47c:7bbd:b323) |
2021-11-13 12:46:13 +0100 | acidjnk_new | (~acidjnk@p200300d0c725147020cf3de033c5d4d3.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-11-13 12:48:01 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d49b:b47c:7bbd:b323) (Ping timeout: 245 seconds) |
2021-11-13 12:48:41 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 12:50:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-13 12:52:28 +0100 | jollygood2 | (~bc8165b6@217.29.117.252) |
2021-11-13 12:53:47 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-13 12:56:03 +0100 | MiguelNegrao | (~MiguelNeg@194.210.216.113) |
2021-11-13 12:56:15 +0100 | MiguelNegrao | (~MiguelNeg@194.210.216.113) (Client Quit) |
2021-11-13 13:02:38 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 260 seconds) |
2021-11-13 13:06:08 +0100 | caubert | (~caubert@136.244.111.235) (Quit: WeeChat 3.2) |
2021-11-13 13:07:12 +0100 | caubert | (~caubert@136.244.111.235) |
2021-11-13 13:07:39 +0100 | wei2912 | (~wei2912@138.75.71.147) (Quit: Lost terminal) |
2021-11-13 13:14:20 +0100 | jassob1 | (~jassob@h-98-128-167-112.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
2021-11-13 13:22:52 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 13:27:50 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-13 13:28:00 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) |
2021-11-13 13:28:38 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-13 13:29:14 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-13 13:35:57 +0100 | __monty__ | (~toonn@user/toonn) |
2021-11-13 13:38:00 +0100 | Guest80 | (~Guest80@pd95ed7c0.dip0.t-ipconnect.de) |
2021-11-13 13:45:37 +0100 | jgeerds | (~jgeerds@55d41b94.access.ecotel.net) (Ping timeout: 268 seconds) |
2021-11-13 13:46:02 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 260 seconds) |
2021-11-13 13:46:15 +0100 | _ht | (~quassel@37.120.218.148) |
2021-11-13 13:52:36 +0100 | jbox | (~jbox@user/jbox) (Ping timeout: 245 seconds) |
2021-11-13 13:59:44 +0100 | mark___ | (~a@p200300ef973db1754086f0a6a24fc4dd.dip0.t-ipconnect.de) |
2021-11-13 14:02:37 +0100 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-11-13 14:03:13 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
2021-11-13 14:09:03 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
2021-11-13 14:09:06 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-13 14:22:00 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
2021-11-13 14:22:20 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-13 14:23:29 +0100 | xdej | (~xdej@quatramaran.salle-s.org) |
2021-11-13 14:23:41 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-11-13 14:25:41 +0100 | mark___ | (~a@p200300ef973db1754086f0a6a24fc4dd.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1) |
2021-11-13 14:26:38 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 14:27:22 +0100 | <Profpatsch> | tryError :: forall exc a. (Exception exc) => IO a -> IO (Either Error a) |
2021-11-13 14:27:25 +0100 | <Profpatsch> | tryError io = Exc.try @exc io <&> first exceptionToError |
2021-11-13 14:27:36 +0100 | <Profpatsch> | GHC complains at the type application “not in scope: type variable exc” |
2021-11-13 14:27:46 +0100 | <Profpatsch> | But I explicitely brought it into scope with the forall, no? |
2021-11-13 14:27:55 +0100 | <hpc> | ScopedTypeVariables maybe? |
2021-11-13 14:27:57 +0100 | <Profpatsch> | Does it need to be mentioned on the right side of => to be in scope? |
2021-11-13 14:28:19 +0100 | <Profpatsch> | hpc: It asks for AllowAmbiguousTypeVAriables now |
2021-11-13 14:28:30 +0100 | <Profpatsch> | Hm |
2021-11-13 14:29:03 +0100 | <Profpatsch> | Ah, apparently that was a problem before TypeApplications https://stackoverflow.com/questions/45128492/what-is-allowambiguoustypes-and-why-is-it-needed-in-t… |
2021-11-13 14:29:10 +0100 | <Profpatsch> | So it looks like I’m safe more or less |
2021-11-13 14:29:20 +0100 | <Profpatsch> | is gonna require TypeApplications from downstream hm |
2021-11-13 14:29:29 +0100 | skippy | (~slice@user/slice) |
2021-11-13 14:29:30 +0100 | <hpc> | yeah, you just have to call tryError @Whatever do {...} |
2021-11-13 14:31:18 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-13 14:32:28 +0100 | <Profpatsch> | that was the idea, yeah |
2021-11-13 14:33:00 +0100 | <Profpatsch> | But then the code won’t compile before 8.0.1 hmm |
2021-11-13 14:34:35 +0100 | _ht | (~quassel@37.120.218.148) (Ping timeout: 256 seconds) |
2021-11-13 14:35:02 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-11-13 14:45:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d49b:b47c:7bbd:b323) |
2021-11-13 14:46:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 14:48:27 +0100 | jkaye | (~jkaye@2601:281:8300:7530:2d7e:ffab:3b55:862f) |
2021-11-13 14:48:29 +0100 | Guest42 | (~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-11-13 14:48:48 +0100 | <Guest42> | what't the state of game developement in functional programming? |
2021-11-13 14:49:17 +0100 | <int-e> | <insert state-less joke here> |
2021-11-13 14:49:37 +0100 | <jkaye> | https://wiki.haskell.org/Game_Development |
2021-11-13 14:49:41 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d49b:b47c:7bbd:b323) (Ping timeout: 245 seconds) |
2021-11-13 14:51:42 +0100 | <f-a> | Guest42: that is a large topic, any specific requirements? |
2021-11-13 14:52:02 +0100 | <f-a> | gaming goes from roguelikes to VR stuff |
2021-11-13 14:53:48 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-13 14:55:42 +0100 | <f-a> | also: join #haskell-game , lots of useful discussion going there |
2021-11-13 14:57:02 +0100 | skippy | (~slice@user/slice) (Quit: cya) |
2021-11-13 14:57:03 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-11-13 14:57:25 +0100 | slice | (~slice@user/slice) |
2021-11-13 14:58:33 +0100 | slice | (~slice@user/slice) (Client Quit) |
2021-11-13 15:09:35 +0100 | <Guest42> | f-a: well let's say we're talking about a 2d roguelike like Dead Cells |
2021-11-13 15:11:09 +0100 | <Guest42> | how does one model the "game loop" in a pure functional way? will it perform badly compared to imperative languages? |
2021-11-13 15:12:17 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 15:12:23 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-11-13 15:12:47 +0100 | <f-a> | Guest42: I would advise to start with sdl2, if you do not fancy that, shop around. A «game loop» can be made pure in various ways (callbacks, etc.) |
2021-11-13 15:13:09 +0100 | <f-a> | for performance, use the appropriate tools (criterion, etc.) and you will be fine |
2021-11-13 15:15:44 +0100 | <f-a> | game making seldom is a clean job |
2021-11-13 15:16:09 +0100 | <Franciman> | it surely is not the most exciting thing around |
2021-11-13 15:16:13 +0100 | <Franciman> | https://www.patreon.com/posts/58563886 it being |
2021-11-13 15:16:55 +0100 | <Franciman> | as you can see this is not functional programming |
2021-11-13 15:17:05 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-11-13 15:17:20 +0100 | <Franciman> | yet it seems an impacting thing |
2021-11-13 15:17:49 +0100 | sydddddd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Quit: Lost terminal) |
2021-11-13 15:19:26 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 265 seconds) |
2021-11-13 15:19:43 +0100 | <Guest80> | The game loop can be a function that takes the previous game-state, an event (input or timer) and creates the new state. Performance depends on the complexity of your state and the computations you do on it. Of course this can vary very much depending on your game. But for many games this shouldn't be an issue. |
2021-11-13 15:19:58 +0100 | <maerwald> | Guest42: maybe check out LambdaHack |
2021-11-13 15:20:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-11-13 15:21:09 +0100 | <Guest42> | Guest80: my intuition tells me that the game state will have to be copied every frame so there is the overhead of recalculating it and GC-ing it, no? |
2021-11-13 15:21:35 +0100 | <Guest42> | maerwald: cool! |
2021-11-13 15:22:43 +0100 | <jkaye> | Guest42, not necessarily, immutability allows for all sorts of optimizations that would not otherwise be possible |
2021-11-13 15:23:16 +0100 | <jkaye> | E.g. if an immutable pure state is being replaced, the compiler can freely perform the update in place since it knows that the previous state would just be discarded anyway |
2021-11-13 15:23:22 +0100 | <Guest80> | Guest42: Depends on the datastructures you use. If most of the state is static (lets say the "world") and only some dynamic objects change then the new state will refer to the same static stuff in each iteration. So static objects won't be copied/reallocated. They will reuse the same values in each iteration. |
2021-11-13 15:23:33 +0100 | <jkaye> | So it's a little different than what you might expect from the imperative (C++ etc) world |
2021-11-13 15:25:07 +0100 | <Guest42> | jkaye: do I have ways to explicitly make the compiler (say GHC), to "change this data structure in place" ? |
2021-11-13 15:25:08 +0100 | <Guest80> | In Haskell you usually end up with a kind of "copy on write" model (if think in imperative terms). |
2021-11-13 15:26:08 +0100 | <Guest80> | Guest42: You shouldn't think that way if you want to write pure functional programs. |
2021-11-13 15:27:08 +0100 | <Guest80> | Of course you can... but why use Haskell when you want to mess around with mutable state? ;D |
2021-11-13 15:29:28 +0100 | <Guest42> | well I imagine you can build quite nice abstractions if you get the critical parts to perform right |
2021-11-13 15:29:49 +0100 | max22- | (~maxime@2a01cb08833598001b74a41a00edb48c.ipv6.abo.wanadoo.fr) |
2021-11-13 15:30:00 +0100 | <Guest42> | LambdaHack is quite a nice place to start for me, reading their code will be a pleasure |
2021-11-13 15:32:42 +0100 | jollygood2 | (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout)) |
2021-11-13 15:32:42 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Read error: Connection reset by peer) |
2021-11-13 15:35:18 +0100 | gawen | (~gawen@user/gawen) (Quit: cya) |
2021-11-13 15:35:31 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-13 15:35:39 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-11-13 15:36:39 +0100 | gawen | (~gawen@user/gawen) |
2021-11-13 15:37:06 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-11-13 15:37:20 +0100 | <fluxit> | Guest42: If you're open to more options, I'm having a good experience writing a game using the brick library. https://samtay.github.io/posts/introduction-to-brick got me started. |
2021-11-13 15:37:21 +0100 | <shapr> | good MORNING! |
2021-11-13 15:37:31 +0100 | jassob1 | (~jassob@h-98-128-167-112.NA.cust.bahnhof.se) |
2021-11-13 15:37:32 +0100 | Guest80 | (~Guest80@pd95ed7c0.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-11-13 15:39:40 +0100 | EvanR | (~evan@user/evanr) |
2021-11-13 15:46:00 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) |
2021-11-13 15:48:22 +0100 | jgeerds | (~jgeerds@55d41b94.access.ecotel.net) |
2021-11-13 15:50:06 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) (Ping timeout: 245 seconds) |
2021-11-13 15:51:35 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-13 15:52:04 +0100 | tafa | (~tafa@2a04:52c0:101:85c::1) (Quit: ZNC - https://znc.in) |
2021-11-13 15:53:05 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) |
2021-11-13 15:54:24 +0100 | tafa | (~tafa@2a04:52c0:101:85c::1) |
2021-11-13 15:54:39 +0100 | max22- | (~maxime@2a01cb08833598001b74a41a00edb48c.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-13 15:55:39 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
2021-11-13 15:57:59 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Ping timeout: 264 seconds) |
2021-11-13 15:58:58 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-11-13 16:05:37 +0100 | son0p | (~ff@181.136.122.143) |
2021-11-13 16:06:59 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection) |
2021-11-13 16:07:52 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
2021-11-13 16:08:28 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-13 16:09:23 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 264 seconds) |
2021-11-13 16:10:18 +0100 | Vajb | (~Vajb@2001:999:50:707f:90e9:e423:1236:7744) |
2021-11-13 16:11:41 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 16:12:00 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-11-13 16:12:01 +0100 | jmorris | (uid433911@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-13 16:14:47 +0100 | Everything | (~Everythin@37.115.210.35) (Quit: leaving) |
2021-11-13 16:19:09 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 16:25:03 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 16:27:59 +0100 | jkaye | (~jkaye@2601:281:8300:7530:2d7e:ffab:3b55:862f) (Ping timeout: 264 seconds) |
2021-11-13 16:34:19 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-13 16:38:12 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-11-13 16:40:07 +0100 | EvanR | (~evan@user/evanr) (Ping timeout: 268 seconds) |
2021-11-13 16:41:58 +0100 | Vajb | (~Vajb@2001:999:50:707f:90e9:e423:1236:7744) (Ping timeout: 268 seconds) |
2021-11-13 16:42:17 +0100 | sprout_ | (~quassel@2a02:a467:ccd6:1:9825:20f3:f69:55d5) (Ping timeout: 250 seconds) |
2021-11-13 16:46:20 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:34a5:6053:7bcf:2391) |
2021-11-13 16:47:54 +0100 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-11-13 16:52:51 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-11-13 16:55:56 +0100 | xff0x | (~xff0x@2001:1a81:526d:df00:e60d:1bd2:2f9f:7e19) (Ping timeout: 245 seconds) |
2021-11-13 16:56:45 +0100 | xff0x | (~xff0x@2001:1a81:526d:df00:b864:176f:3a64:2e83) |
2021-11-13 16:58:47 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 16:59:09 +0100 | Guest80 | (~Guest80@pd95ed7c0.dip0.t-ipconnect.de) |
2021-11-13 17:00:58 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-11-13 17:04:57 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) |
2021-11-13 17:06:19 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) |
2021-11-13 17:09:00 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 17:12:07 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-11-13 17:13:49 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-13 17:15:43 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-13 17:15:43 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-13 17:15:43 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-13 17:16:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 17:17:50 +0100 | jgeerds | (~jgeerds@55d41b94.access.ecotel.net) (Ping timeout: 260 seconds) |
2021-11-13 17:26:13 +0100 | dsrt^ | (~dsrt@h50.174.139.63.static.ip.windstream.net) (Remote host closed the connection) |
2021-11-13 17:28:33 +0100 | <zincy_> | Is there a nice way of dealing duplicate record field names and lens? |
2021-11-13 17:29:02 +0100 | <zincy_> | I have two record types that share some field names and am not sure what to do |
2021-11-13 17:29:21 +0100 | <zincy_> | Prefixing would work but a bit tedious |
2021-11-13 17:30:08 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 17:30:40 +0100 | <Taneb> | zincy_: lens has makeFieldsNoPrefix which may be useful for you |
2021-11-13 17:31:03 +0100 | <zincy_> | thanks! |
2021-11-13 17:31:11 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 17:31:45 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 17:33:05 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-11-13 17:36:29 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-13 17:37:35 +0100 | MoC | (~moc@user/moc) |
2021-11-13 17:37:53 +0100 | dolio | (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-13 17:43:10 +0100 | dolio | (~dolio@130.44.130.54) |
2021-11-13 17:47:48 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) |
2021-11-13 17:49:48 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-11-13 17:51:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-11-13 17:52:03 +0100 | burnsidesLlama | (~burnsides@dhcp168-014.wadham.ox.ac.uk) |
2021-11-13 17:52:11 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) (Ping timeout: 245 seconds) |
2021-11-13 17:53:01 +0100 | mbuf | (~Shakthi@136.185.92.113) (Quit: Leaving) |
2021-11-13 17:53:48 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 17:54:39 +0100 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-11-13 17:54:49 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-11-13 17:58:11 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-11-13 17:59:01 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-13 18:02:42 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-13 18:04:37 +0100 | jzsinatra | (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) (Ping timeout: 268 seconds) |
2021-11-13 18:06:12 +0100 | Digit | (~user@user/digit) |
2021-11-13 18:07:25 +0100 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-11-13 18:07:56 +0100 | MoC | (~moc@user/moc) |
2021-11-13 18:11:52 +0100 | timCF | (~timCF@m91-129-99-212.cust.tele2.ee) |
2021-11-13 18:14:27 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2021-11-13 18:20:19 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 18:24:23 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:34a5:6053:7bcf:2391) (Ping timeout: 264 seconds) |
2021-11-13 18:25:33 +0100 | jess | (~jess@libera/staff/jess) |
2021-11-13 18:26:01 +0100 | jzsinatra | (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) |
2021-11-13 18:30:42 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
2021-11-13 18:31:22 +0100 | <dsal> | zincy_: There's also classy lenses, thought that may end up more confusing depending on the collisions. If a bunch of the things have a "_name" field that's `Text` then classy lens will let you access any of them via a `name` lens. |
2021-11-13 18:36:46 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:34a5:6053:7bcf:2391) |
2021-11-13 18:41:37 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:34a5:6053:7bcf:2391) (Ping timeout: 268 seconds) |
2021-11-13 18:45:18 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 18:55:20 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 19:01:23 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 19:01:23 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:34a5:6053:7bcf:2391) |
2021-11-13 19:01:58 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 19:02:37 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-13 19:03:01 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 19:08:11 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-13 19:13:00 +0100 | nehsou^ | (~nehsou@h50.174.139.63.static.ip.windstream.net) |
2021-11-13 19:14:04 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 19:18:59 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-11-13 19:18:59 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-11-13 19:21:36 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-13 19:22:20 +0100 | Vajb | (~Vajb@2001:999:83:e6dd:c80d:a972:83d6:40ce) |
2021-11-13 19:22:52 +0100 | shapr | (~user@2607:fb90:18d1:24ad:cf6e:d458:40ab:e571) |
2021-11-13 19:23:25 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 19:27:13 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
2021-11-13 19:28:07 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-13 19:30:42 +0100 | <shapr> | Anyone know how to use cabal as a library to get all the dependencies from a given cabal file? |
2021-11-13 19:31:06 +0100 | <sclv> | Cabal-the-library can't get anything |
2021-11-13 19:31:26 +0100 | <shapr> | Fair enough, I'm happy to hand it the files as bytestring or whatever |
2021-11-13 19:31:34 +0100 | <sclv> | cabal the binary can unpack all deps, but idk if it can do it recursively |
2021-11-13 19:32:02 +0100 | <sclv> | oh i see, you mean just "determine"? |
2021-11-13 19:32:04 +0100 | <shapr> | I'm happy to hand all the files to cabal |
2021-11-13 19:32:10 +0100 | <sclv> | not like fetch |
2021-11-13 19:32:21 +0100 | <shapr> | yes, I'm back on "build a graph of dependencies" from a big pile of cabal files |
2021-11-13 19:32:36 +0100 | <shapr> | I could write my own parser, but would rather not. |
2021-11-13 19:32:39 +0100 | <sclv> | the best way is to "cabal configure" and then read the plan.json |
2021-11-13 19:32:40 +0100 | eldritch_ | (~eldritch@user/eldritch/x-9272577) (Quit: bye) |
2021-11-13 19:32:44 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-13 19:32:45 +0100 | <shapr> | oh that sounds easy |
2021-11-13 19:32:46 +0100 | <sclv> | if you want to calculate recursive deps |
2021-11-13 19:33:01 +0100 | <sclv> | if you want one level deps direct from the cabal file then you just use Cabal the library to parse the file |
2021-11-13 19:33:09 +0100 | <shapr> | I want a command line tool though, so using cabal as a library would be nicer. |
2021-11-13 19:33:11 +0100 | econo | (uid147250@user/econo) |
2021-11-13 19:33:13 +0100 | mrmaximuzz | (~mrmaximuz@178.71.193.198) |
2021-11-13 19:33:36 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 19:34:01 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 19:34:41 +0100 | <maerwald> | dependencies depend on architecture, flags etc... it isn't that straight forward with Cabal library |
2021-11-13 19:35:05 +0100 | <maerwald> | there are a couple of distro tools that do that, e.g. gentoos hackport |
2021-11-13 19:35:09 +0100 | <sclv> | for just parsing a cabal file its this: https://hackage.haskell.org/package/Cabal-3.6.2.0/docs/Distribution-PackageDescription-Parsec.html |
2021-11-13 19:35:40 +0100 | <maerwald> | https://github.com/gentoo-haskell/hackport/blob/master/Merge/Dependencies.hs |
2021-11-13 19:35:41 +0100 | <sclv> | you can find the entry point of cabal-install into `configure` and invoke it directly instead of via the command line as well -- sec |
2021-11-13 19:35:44 +0100 | mrmaximuzz | (~mrmaximuz@178.71.193.198) (Read error: Connection reset by peer) |
2021-11-13 19:36:00 +0100 | eldritch_ | (~eldritch@user/eldritch/x-9272577) |
2021-11-13 19:36:19 +0100 | <sclv> | actually, only unreleased cabal exposes cabal-install as a lib, so i wouldn't recommend that yet |
2021-11-13 19:37:06 +0100 | Vajb | (~Vajb@2001:999:83:e6dd:c80d:a972:83d6:40ce) (Ping timeout: 268 seconds) |
2021-11-13 19:38:20 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-13 19:39:01 +0100 | <sclv> | shapr: for your use case you're in a monorepo and want to calc for a set of packages, so my suggestion is make one package that depends on all the others, configure it once and forall, and read the graph right out of plan.json |
2021-11-13 19:39:03 +0100 | Vajb | (~Vajb@2001:999:83:e6dd:c80d:a972:83d6:40ce) |
2021-11-13 19:39:33 +0100 | <sclv> | (i _think_ that you'll get the full dep tree and not just a streamlined one) |
2021-11-13 19:39:45 +0100 | <shapr> | sclv: hm, that may not give me the info I want |
2021-11-13 19:39:46 +0100 | <shapr> | but it might |
2021-11-13 19:40:06 +0100 | <maerwald> | Also check https://hackage.haskell.org/package/cabal-plan |
2021-11-13 19:40:34 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-13 19:40:48 +0100 | <shapr> | that could help |
2021-11-13 19:43:49 +0100 | Vajb | (~Vajb@2001:999:83:e6dd:c80d:a972:83d6:40ce) (Ping timeout: 265 seconds) |
2021-11-13 19:47:21 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) |
2021-11-13 19:47:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 19:47:47 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-13 19:54:47 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-11-13 19:54:47 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-11-13 19:54:50 +0100 | allbery_b | geekosaur |
2021-11-13 19:55:31 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) |
2021-11-13 19:57:13 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-13 19:57:52 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection) |
2021-11-13 19:58:11 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-11-13 19:58:37 +0100 | <ddb> | int-e, geekosaur: I finally got it figured out. The last bit is that instead of @admin you do admin in the console. |
2021-11-13 20:00:10 +0100 | Guest15 | (~Guest15@nat-users-79-98-157-003.pnet.netair.net) |
2021-11-13 20:01:05 +0100 | <geekosaur> | I'd probably stick it in the config file, but whatever |
2021-11-13 20:01:34 +0100 | <geekosaur> | I don't think you use @ prefixes in the console since there isn't anything else to read commands the bot doesn't understand |
2021-11-13 20:01:47 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
2021-11-13 20:02:17 +0100 | <int-e> | right. it's a bit confusing because the `> ` prefix is still the same |
2021-11-13 20:02:45 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving) |
2021-11-13 20:03:06 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 20:03:11 +0100 | Guest15 | (~Guest15@nat-users-79-98-157-003.pnet.netair.net) (Client Quit) |
2021-11-13 20:03:48 +0100 | <ddb> | so I'm just running lambdabot, is there a param to pass in the config file? |
2021-11-13 20:05:35 +0100 | <geekosaur> | I don't understand the question. Param for what? |
2021-11-13 20:05:45 +0100 | <ddb> | which file to use as the config file |
2021-11-13 20:05:57 +0100 | <int-e> | ddb: there's a `-e` to run commands, and an `rc` command to source a file: -e 'rc online-min.rc' |
2021-11-13 20:06:17 +0100 | <ddb> | ah perfect |
2021-11-13 20:06:42 +0100 | <geekosaur> | oh, right, I'd forgotten that part |
2021-11-13 20:06:52 +0100 | <int-e> | https://github.com/lambdabot/lambdabot/tree/master/lambdabot/scripts should really have an example run script, tsk |
2021-11-13 20:06:59 +0100 | <geekosaur> | only remembered the usual config file was online.rc, not how you used it :) |
2021-11-13 20:07:11 +0100 | <geekosaur> | it's been a decade |
2021-11-13 20:07:43 +0100 | shapr | (~user@2607:fb90:18d1:24ad:cf6e:d458:40ab:e571) (Remote host closed the connection) |
2021-11-13 20:07:46 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-13 20:07:56 +0100 | shapr | (~user@2607:fb90:18d1:24ad:216e:e60a:4c82:5164) |
2021-11-13 20:07:58 +0100 | <ddb> | indeed, that's ok, I've got it working well now. I'll update it to use a config file on next boot. |
2021-11-13 20:08:17 +0100 | <geekosaur> | hope they fixed the bug in the version I was running where I had to hit enter every so often in the console so the IRC connect and join would actually happen in the background :) |
2021-11-13 20:08:40 +0100 | <geekosaur> | was always annoying when I had to restart the bot |
2021-11-13 20:08:45 +0100 | <ddb> | I did have another question though, now that it's working |
2021-11-13 20:08:50 +0100 | <ddb> | sometimes mueval seems to take a long time |
2021-11-13 20:08:55 +0100 | <ddb> | > product [1..5] |
2021-11-13 20:08:56 +0100 | <lambdabot> | 120 |
2021-11-13 20:08:59 +0100 | <ddb> | I got a timeout once by doing that |
2021-11-13 20:09:13 +0100 | <geekosaur> | occasionally this one times out as well |
2021-11-13 20:09:40 +0100 | <ddb> | cool, all the other modules seem to run quite quickly |
2021-11-13 20:09:48 +0100 | <int-e> | mueval is slow, especially when compiled statically... which it *forces* by default |
2021-11-13 20:10:17 +0100 | <hpc> | mueval is also just in general a whole new process |
2021-11-13 20:10:20 +0100 | <hpc> | it has to load /everything/ |
2021-11-13 20:10:23 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 20:10:23 +0100 | <hpc> | it's not just typing into ghci |
2021-11-13 20:10:38 +0100 | <ddb> | ooh that makes sense then |
2021-11-13 20:10:43 +0100 | <hpc> | even () can time out |
2021-11-13 20:10:45 +0100 | fendor | (~fendor@178.115.56.25.wireless.dyn.drei.com) |
2021-11-13 20:10:53 +0100 | <int-e> | (it does ghc-options: -Wall -static -threaded in its .cabal file which is quite terrible IMHO) |
2021-11-13 20:11:18 +0100 | <int-e> | It's quite a bit faster if you patch that out and build a dynamic version |
2021-11-13 20:12:23 +0100 | <johnjay> | is there a deeper reason that 5*-3 makes ghci complain about a varible out of scope *-? |
2021-11-13 20:12:39 +0100 | <johnjay> | i expect something more like invalid operator or something |
2021-11-13 20:12:45 +0100 | <geekosaur> | johnjay, you can make new operators on the fly |
2021-11-13 20:13:01 +0100 | <geekosaur> | hyow would it know when to stop doing so and treat the - as something else? |
2021-11-13 20:13:08 +0100 | <hpc> | > let x *- y = "surprise!" in 5*-3 |
2021-11-13 20:13:09 +0100 | <lambdabot> | "surprise!" |
2021-11-13 20:13:10 +0100 | <awpr> | the way the lexical syntax is defined is that adjacent runs of symbols are single operators |
2021-11-13 20:13:18 +0100 | <hpc> | > let x *- y = "surprise!" in 5 * -3 |
2021-11-13 20:13:19 +0100 | <lambdabot> | error: |
2021-11-13 20:13:19 +0100 | <lambdabot> | Precedence parsing error |
2021-11-13 20:13:19 +0100 | <lambdabot> | cannot mix ‘*’ [infixl 7] and prefix `-' [infixl 6] in the same infi... |
2021-11-13 20:13:23 +0100 | <int-e> | hpc: well, a standalong mueval command with hot cache and nothing else running in parallel takes a bit over a second on lambdabot's VPS. the timeout is 5s. it can overshoot by running several muevals in parallel and perhaps some other VM on the same server causing the shared libraries to be evicted from memory |
2021-11-13 20:13:24 +0100 | <hpc> | > let x *- y = "surprise!" in 5 * (-3) |
2021-11-13 20:13:25 +0100 | <lambdabot> | -15 |
2021-11-13 20:13:29 +0100 | <hpc> | johnjay: ^ |
2021-11-13 20:13:35 +0100 | <awpr> | same reason you can get messed up comments by writing e.g. `--|` |
2021-11-13 20:13:50 +0100 | <int-e> | Anyway, it works most of the time these days. |
2021-11-13 20:13:56 +0100 | <int-e> | (as far as I can see) |
2021-11-13 20:13:56 +0100 | HurdyGurdyBurdy | (~HurdyGurd@user/hurdygurdyburdy) |
2021-11-13 20:15:41 +0100 | <johnjay> | int-e: that latter one raises more questions lol |
2021-11-13 20:15:44 +0100 | <johnjay> | but ok |
2021-11-13 20:15:52 +0100 | <int-e> | the reason why the dynamic version of mueval is faster is that then it loads libraries as shared libraries with the system's dynamic linker; the static version uses ghc's own linker from the RTS which can load standard .o files... which I think has more relocations to do, and definitely has more files to load and is less optimized. |
2021-11-13 20:16:10 +0100 | <geekosaur> | johnjay, consider that --> is a perfectly valid operator name |
2021-11-13 20:16:42 +0100 | <geekosaur> | but | as the start of a comment is part of haddock markup. so some people initially leave off the space before the | and get an unpleasant surprise |
2021-11-13 20:18:17 +0100 | <hpc> | maybe base could define (--|) and (--^) with a custom error |
2021-11-13 20:18:38 +0100 | <geekosaur> | wonder how many packages that would break :) |
2021-11-13 20:19:20 +0100 | <hpc> | according to hoogle, it would break https://hackage.haskell.org/package/persistent-documentation-0.1.0.4/docs/Database-Persist-Documen… |
2021-11-13 20:19:26 +0100 | <hpc> | so hmm, maybe not then |
2021-11-13 20:19:34 +0100 | <geekosaur> | anyway xmonad is an example of using --> as an operator. (this breaks a remarkable number of syntax coloring engines, too :) |
2021-11-13 20:20:27 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
2021-11-13 20:20:57 +0100 | <geekosaur> | actually, hm, that mnakes me wonder if they did the same thing |
2021-11-13 20:21:13 +0100 | <maerwald> | if it's not that, then CPP or TH/QuasiQuotes will break your tools |
2021-11-13 20:21:28 +0100 | <geekosaur> | nope, just borrowed the idea I guess |
2021-11-13 20:21:45 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
2021-11-13 20:21:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-11-13 20:23:21 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 20:23:47 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-13 20:26:07 +0100 | shapr | (~user@2607:fb90:18d1:24ad:216e:e60a:4c82:5164) (Remote host closed the connection) |
2021-11-13 20:27:36 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
2021-11-13 20:27:58 +0100 | <geekosaur> | johnjay, the other half of the answer is that Haskell is functional, so an operator is just a variable whose value is *usually* a function |
2021-11-13 20:28:17 +0100 | <johnjay> | ah |
2021-11-13 20:29:28 +0100 | <johnjay> | just for my sanity haskell doesn't care about whitespace correct? |
2021-11-13 20:29:37 +0100 | <johnjay> | so let x=5 and let x = 5 and let x = 5 are the same? |
2021-11-13 20:29:46 +0100 | <geekosaur> | the lexer uses different rules to identify infix variables vs. prefix, but they're both variables as far as haskell is concerned |
2021-11-13 20:29:50 +0100 | <geekosaur> | they are the same |
2021-11-13 20:30:03 +0100 | <geekosaur> | although there are a few extensions which break this |
2021-11-13 20:30:34 +0100 | <geekosaur> | already BangPatterns made foo ! bar different from foo !bar a decade ago |
2021-11-13 20:30:56 +0100 | <geekosaur> | and several other such things have crept in over the years |
2021-11-13 20:32:19 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-131-104.cust.tzulo.com) |
2021-11-13 20:33:20 +0100 | <geekosaur> | most recently RecordDotSyntax completely confused how dots are parsed in various contexts including spacing, so they don't break . as an operator |
2021-11-13 20:34:06 +0100 | <yin> | data Nat = 1 | 2 | 3 | 4 ... ; data Int = Neg Nat | Zero | Pos Nat -- this is my fantasy |
2021-11-13 20:34:08 +0100 | geekosaur | seriously thinks we could have lived without that complication, dots are hard enough to parse as it is |
2021-11-13 20:34:50 +0100 | <geekosaur> | (in fact ghc does not parse them according to the Report, which shows in obscure ways related to qualified names) |
2021-11-13 20:34:53 +0100 | <johnjay> | why does it allow "let 2 = 7" in ghci? |
2021-11-13 20:35:07 +0100 | <geekosaur> | because it's a patttern that can never be referenced |
2021-11-13 20:35:23 +0100 | <geekosaur> | so it never finds out that the pattern fails |
2021-11-13 20:35:36 +0100 | <geekosaur> | > let 2 = 7 then 5 |
2021-11-13 20:35:37 +0100 | <lambdabot> | <hint>:1:11: error: parse error on input ‘then’ |
2021-11-13 20:35:43 +0100 | <geekosaur> | whoo[ps duh |
2021-11-13 20:35:48 +0100 | <geekosaur> | > let 2 = 7 in 5 |
2021-11-13 20:35:49 +0100 | <lambdabot> | 5 |
2021-11-13 20:36:07 +0100 | deadmarshal | (~deadmarsh@95.38.228.182) (Ping timeout: 256 seconds) |
2021-11-13 20:36:11 +0100 | <geekosaur> | one of the weird corner cases in how pattern matching works |
2021-11-13 20:36:52 +0100 | <johnjay> | TIL |
2021-11-13 20:37:03 +0100 | <johnjay> | i was trying to generate an error to get more familiar with the error messages |
2021-11-13 20:39:06 +0100 | <yin> | > let Nothing = pure () in 1 |
2021-11-13 20:39:07 +0100 | <lambdabot> | 1 |
2021-11-13 20:39:09 +0100 | <geekosaur> | > let 2 = !7 in 5 |
2021-11-13 20:39:10 +0100 | <lambdabot> | <hint>:1:9: error: parse error on input ‘!’ |
2021-11-13 20:39:25 +0100 | <geekosaur> | right, wrong side duh |
2021-11-13 20:39:34 +0100 | <geekosaur> | > let !2 = 7 in 5 |
2021-11-13 20:39:35 +0100 | <lambdabot> | *Exception: <interactive>:3:5-10: Non-exhaustive patterns in 2 |
2021-11-13 20:40:09 +0100 | <yin> | it should be simple enough to make patterns that bind no variables illegal, no? |
2021-11-13 20:40:21 +0100 | Vajb | (~Vajb@n1s4o3bcbx01a3mj1-2.v6.elisa-mobile.fi) |
2021-11-13 20:40:40 +0100 | <johnjay> | i have main = do let result = 5 print result in file.hs |
2021-11-13 20:40:42 +0100 | <hpc> | that Nothing pattern doesn't bind any variables |
2021-11-13 20:41:00 +0100 | <johnjay> | how do i actually see the result of main? ghci file.hs just says it loaded the module |
2021-11-13 20:41:10 +0100 | <hpc> | johnjay: you have to run main |
2021-11-13 20:41:11 +0100 | <geekosaur> | do :main |
2021-11-13 20:41:19 +0100 | <johnjay> | you mean in ghci? |
2021-11-13 20:41:21 +0100 | <yin> | hoc: any reason not to have the cmpiler disallow it? |
2021-11-13 20:41:21 +0100 | <geekosaur> | you can also pass "command line" arguments that way |
2021-11-13 20:41:21 +0100 | <hpc> | ghci is strictly a repl |
2021-11-13 20:41:30 +0100 | <geekosaur> | :main foo bar baz |
2021-11-13 20:41:31 +0100 | <johnjay> | ah ok |
2021-11-13 20:41:31 +0100 | <hpc> | it's not like running python foo.py |
2021-11-13 20:41:37 +0100 | <janus> | does haskell really require a dollar before 'do' while purescript doesn't? seems like i can get away with omitting it there |
2021-11-13 20:41:56 +0100 | <yin> | janus: there's an extension for that |
2021-11-13 20:42:08 +0100 | <janus> | yin: BlockArguments? |
2021-11-13 20:42:08 +0100 | <yin> | dont rememeber the name though |
2021-11-13 20:42:13 +0100 | <hpc> | janus: it's a parsing thing, unfortunately |
2021-11-13 20:42:20 +0100 | <yin> | janus: yes i think that's the one |
2021-11-13 20:42:30 +0100 | max22- | (~maxime@2a01cb0883359800a1957cb129df87ea.ipv6.abo.wanadoo.fr) |
2021-11-13 20:42:34 +0100 | <geekosaur> | yeh, BlockArguments |
2021-11-13 20:43:09 +0100 | <janus> | i have heard people don't like it in haskell... wonder if the purescript version has the same problems |
2021-11-13 20:43:17 +0100 | <johnjay> | oh i see i can do 'ghc asdf.hs' as long as I have llvm in path |
2021-11-13 20:43:25 +0100 | <johnjay> | also i have llvm13 and 12 for some reason in /opt |
2021-11-13 20:43:25 +0100 | <geekosaur> | there's also runghc |
2021-11-13 20:43:31 +0100 | Guest80 | (~Guest80@pd95ed7c0.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-11-13 20:44:15 +0100 | <yin> | so, is there any reason not to disallow patterns that don't bind variables? |
2021-11-13 20:44:17 +0100 | <geekosaur> | (there's also ghc -e "expression") |
2021-11-13 20:44:44 +0100 | <geekosaur> | technically a pattern using a wildcard doesn't bind a variable |
2021-11-13 20:44:47 +0100 | <awpr> | `case x of 0 -> "zero"; _ -> "nonzero"` |
2021-11-13 20:45:06 +0100 | <yin> | i mean in let expressions |
2021-11-13 20:45:11 +0100 | <awpr> | does `-Wincomplete-uni-patterns` complain about this? |
2021-11-13 20:46:38 +0100 | <geekosaur> | by the time the compiler can tell it has a pattern in a let vs. a case, can it still tell that there's no bindings because a wildcard was used? |
2021-11-13 20:46:40 +0100 | <yin> | > let _ = 0 in 1 |
2021-11-13 20:46:42 +0100 | <lambdabot> | 1 |
2021-11-13 20:46:54 +0100 | <yin> | :/ |
2021-11-13 20:46:56 +0100 | max22- | (~maxime@2a01cb0883359800a1957cb129df87ea.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-13 20:47:03 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
2021-11-13 20:47:23 +0100 | <awpr> | I don't see any problem with that one. it's unnecessary, sure, but so is `id $ id id $ id 5` |
2021-11-13 20:47:57 +0100 | <geekosaur> | or a lambda (including the implicit one in do's <-)? |
2021-11-13 20:48:33 +0100 | <geekosaur> | basically I think it comes down to having to carry too much state around internally that would be used only to prevent a weird corner case most people don't care about |
2021-11-13 20:48:50 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 20:49:30 +0100 | <yin> | λ let Nothing = pure 1 in () |
2021-11-13 20:49:30 +0100 | <yin> | <interactive>:1:5: warning: [-Wunused-pattern-binds] This pattern-binding binds no variables: Nothing = pure 1 |
2021-11-13 20:49:33 +0100 | <yin> | () |
2021-11-13 20:50:02 +0100 | Vajb | (~Vajb@n1s4o3bcbx01a3mj1-2.v6.elisa-mobile.fi) (Ping timeout: 265 seconds) |
2021-11-13 20:50:09 +0100 | <yin> | why not make this an error instead of the warning? isn't the check there anyways? |
2021-11-13 20:50:14 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-13 20:51:05 +0100 | <c_wraith> | the main reason I'd think of to not make it an error is to make generating code easier. |
2021-11-13 20:51:32 +0100 | <awpr> | the program is still well-defined and can still be compiled in that case, so it's not really an error. `-Werror` is meant for this kind of situation, where you want the compiler to reject weird / suspicious things that are technically okay |
2021-11-13 20:51:34 +0100 | <c_wraith> | I have written template-haskell that generates a non-binding let expression before, just as an additional layer of type-checking. |
2021-11-13 20:52:19 +0100 | eldritch_ | eldritch |
2021-11-13 20:52:51 +0100 | <yin> | weirdness |
2021-11-13 20:53:05 +0100 | <johnjay> | i'm amazed that Tru && False and rue && False both suggest I meant True. phenomenal! |
2021-11-13 20:53:06 +0100 | pbrisbin | (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net) (Quit: WeeChat 3.3) |
2021-11-13 20:53:32 +0100 | <johnjay> | but ru doesn't |
2021-11-13 20:53:54 +0100 | <yin> | johnjay: you should like copilot |
2021-11-13 20:56:27 +0100 | <johnjay> | yin: maybe i'm missing something. it says it helps you verify c programs |
2021-11-13 20:56:37 +0100 | <johnjay> | wouldn't you just verify c programs from the c programs |
2021-11-13 20:56:39 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection) |
2021-11-13 20:56:55 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
2021-11-13 20:56:56 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Read error: Connection reset by peer) |
2021-11-13 20:57:18 +0100 | <yin> | https://copilot.github.com/ |
2021-11-13 20:58:07 +0100 | <yin> | you look videos of people using it, it's insane |
2021-11-13 20:58:12 +0100 | <johnjay> | videos huh |
2021-11-13 20:58:23 +0100 | <geekosaur> | I wonder if verify means the same thing to you that it does to us |
2021-11-13 20:59:07 +0100 | <yin> | narrator: "it does not" |
2021-11-13 20:59:19 +0100 | <johnjay> | you probably mean something like formally verify |
2021-11-13 20:59:32 +0100 | <geekosaur> | yep |
2021-11-13 20:59:34 +0100 | <johnjay> | like using hoare logic to prove something always terminates |
2021-11-13 21:00:53 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 21:01:51 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-13 21:02:36 +0100 | <johnjay> | amusingly ( and ) give different errors. the former says mismatched parentheses but the later says parse error |
2021-11-13 21:03:27 +0100 | <geekosaur> | I sus[pect something about the brace insertion logic leads to that because it has to track opened/unclosed parens to get it right |
2021-11-13 21:03:44 +0100 | <geekosaur> | (brace insertion is relevant to do/let/case blocks) |
2021-11-13 21:04:00 +0100 | <johnjay> | well i should probably learn me more haskell before continuing |
2021-11-13 21:04:11 +0100 | <johnjay> | all punctuation was similar except : and $ |
2021-11-13 21:04:21 +0100 | <johnjay> | $ said i need to use TemplateHaskell and : just said loaded empty module |
2021-11-13 21:04:22 +0100 | <geekosaur> | and is something you'll rarely care about unless looking to cimplement a Haskell compiler |
2021-11-13 21:04:41 +0100 | <johnjay> | i always try to learn the error messages of any software i use |
2021-11-13 21:04:50 +0100 | <johnjay> | because they are bad and require lots of interpretation to use |
2021-11-13 21:04:53 +0100 | <geekosaur> | right, $ at the top level (or the prompt in ghci) expects to insert a TH splice |
2021-11-13 21:05:11 +0100 | juhp | (~juhp@128.106.188.220) (Ping timeout: 264 seconds) |
2021-11-13 21:05:16 +0100 | <geekosaur> | : in ghci not followed by a command repeats the previous command |
2021-11-13 21:05:20 +0100 | <yin> | : is the mandatory prefix to infix data constructors |
2021-11-13 21:05:25 +0100 | <johnjay> | suggestin I meant 'True' instead of 'Tru' frankly shocking to me |
2021-11-13 21:05:47 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-13 21:05:54 +0100 | <johnjay> | geekosaur: not that i can tell. it says OK, no modules loaded. |
2021-11-13 21:06:06 +0100 | <yin> | the '$' operator has *some magic* going on iirc but it's otherwise not special at all |
2021-11-13 21:06:25 +0100 | <yin> | mind that ghci commands start with : |
2021-11-13 21:06:38 +0100 | <geekosaur> | right, and : by itself repeats the previous command |
2021-11-13 21:07:02 +0100 | <yin> | ah right |
2021-11-13 21:07:04 +0100 | <geekosaur> | which will be a (possibly null) load at the start of a session, if you have not typed any :-commands yet |
2021-11-13 21:07:59 +0100 | <johnjay> | apparently it is the last thing |
2021-11-13 21:08:05 +0100 | juhp | (~juhp@128.106.188.220) |
2021-11-13 21:08:33 +0100 | <dolio> | ($) isn't special in 9.2 anymore, right? |
2021-11-13 21:08:35 +0100 | <johnjay> | if i type 5 though then print it says in stmt of form print it |
2021-11-13 21:08:44 +0100 | <johnjay> | where is "print it" coming from? |
2021-11-13 21:09:09 +0100 | <awpr> | dolio: right, IIRC the only special-ness left is that it has the ImpredicativeTypes behavior even when ImpredicativeTypes is not enabled |
2021-11-13 21:09:21 +0100 | <geekosaur> | dolio, pretty sure this is just typing "$" to ghci, which would try to expand a TH splice but TH was disabled |
2021-11-13 21:09:43 +0100 | <geekosaur> | awpr, not even that because with QuickLook it's impredicative anyway |
2021-11-13 21:10:11 +0100 | <geekosaur> | hm, maybe |
2021-11-13 21:10:30 +0100 | <awpr> | my recollection is that quick look is enabled by ImpredicativeTypes, with the exception that $ always has it |
2021-11-13 21:11:04 +0100 | <geekosaur> | johnjay, the way ghci works, it evaluates an expression, then binds the result to `it`, then executes `print it` or a replacement that can be specified by an option |
2021-11-13 21:11:27 +0100 | <geekosaur> | except that if the expression is in IO then it assumes the output was done by the IO action |
2021-11-13 21:12:00 +0100 | <geekosaur> | but see https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#using-a-custom-interactiv… |
2021-11-13 21:12:08 +0100 | <geekosaur> | which would then replace `print it` |
2021-11-13 21:12:40 +0100 | <johnjay> | hmm good i'll use the manual as well |
2021-11-13 21:12:59 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) (Remote host closed the connection) |
2021-11-13 21:13:10 +0100 | <yin> | interesting! it = print it |
2021-11-13 21:13:16 +0100 | <johnjay> | the first message it says was no instance for (Show (() -> IO ())) |
2021-11-13 21:13:43 +0100 | <johnjay> | i guess they are really one statement but separated by bullet points |
2021-11-13 21:13:45 +0100 | <yin> | @type print |
2021-11-13 21:13:46 +0100 | <lambdabot> | Show a => a -> IO () |
2021-11-13 21:15:56 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 21:17:20 +0100 | <yin> | you can't print a function because they are opaque. the nly way to know what a function does is to run it |
2021-11-13 21:17:36 +0100 | <yin> | > print id |
2021-11-13 21:17:37 +0100 | <lambdabot> | error: |
2021-11-13 21:17:37 +0100 | <lambdabot> | • No instance for (Typeable a0) arising from a use of ‘print’ |
2021-11-13 21:17:37 +0100 | <lambdabot> | • In the expression: print id |
2021-11-13 21:17:48 +0100 | <yin> | > print print |
2021-11-13 21:17:49 +0100 | <lambdabot> | <IO ()> |
2021-11-13 21:17:58 +0100 | <yin> | wait what? |
2021-11-13 21:18:19 +0100 | <awpr> | https://hackage.haskell.org/package/base-4.16.0.0/docs/Text-Show-Functions.html |
2021-11-13 21:18:36 +0100 | <awpr> | er, not exactly that, but apparently a similar orphan instance |
2021-11-13 21:19:28 +0100 | <yin> | > show id |
2021-11-13 21:19:29 +0100 | <lambdabot> | error: |
2021-11-13 21:19:29 +0100 | <lambdabot> | • No instance for (Typeable a0) arising from a use of ‘show’ |
2021-11-13 21:19:29 +0100 | <lambdabot> | • In the expression: show id |
2021-11-13 21:19:33 +0100 | <yin> | > show print |
2021-11-13 21:19:34 +0100 | <lambdabot> | "<() -> IO ()>" |
2021-11-13 21:19:44 +0100 | <awpr> | uh, Typeable? |
2021-11-13 21:19:46 +0100 | <yin> | when did this happen? |
2021-11-13 21:20:05 +0100 | <awpr> | I would guess this is a lambdabot-specific orphan instance that's OVERLAPPABLE |
2021-11-13 21:20:06 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 245 seconds) |
2021-11-13 21:21:02 +0100 | <awpr> | e.g. `instance {-# OVERLAPPABLE #-} Typeable a => Show a where showsPrec x = showChar '<' . showsPrec 0 (typeOf x) . showChar '>'` |
2021-11-13 21:22:46 +0100 | <geekosaur> | yes |
2021-11-13 21:23:26 +0100 | <geekosaur> | @version |
2021-11-13 21:23:26 +0100 | <lambdabot> | lambdabot 5.3.0.1 |
2021-11-13 21:23:27 +0100 | <lambdabot> | git clone https://github.com/lambdabot/lambdabot |
2021-11-13 21:24:20 +0100 | <geekosaur> | hm, not there |
2021-11-13 21:24:23 +0100 | <geekosaur> | @where L.hs |
2021-11-13 21:24:24 +0100 | <lambdabot> | what lambdabot has in scope is at https://silicon.int-e.eu/lambdabot/State/Pristine.hs |
2021-11-13 21:27:13 +0100 | <geekosaur> | hm, can't find the ShowFun module |
2021-11-13 21:27:24 +0100 | <geekosaur> | @hoogle ShowFun |
2021-11-13 21:27:25 +0100 | <lambdabot> | TextShow.Generic data ShowFunsB arity a |
2021-11-13 21:27:25 +0100 | <lambdabot> | TextShow.Generic data ShowFunsT arity a |
2021-11-13 21:27:25 +0100 | <lambdabot> | TextShow.Generic data ShowFunsTL arity a |
2021-11-13 21:28:35 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-11-13 21:33:40 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) |
2021-11-13 21:36:26 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Read error: Connection reset by peer) |
2021-11-13 21:37:01 +0100 | acidjnk_new | (~acidjnk@p200300d0c725147020cf3de033c5d4d3.dip0.t-ipconnect.de) |
2021-11-13 21:37:10 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-131-104.cust.tzulo.com) (Quit: Leaving) |
2021-11-13 21:38:11 +0100 | falafel | (~falafel@2603-8000-d800-688c-34f9-26f3-71b0-5b78.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-11-13 21:38:17 +0100 | acidjnk_new3 | (~acidjnk@p200300d0c736cb18d4b31450c12316ac.dip0.t-ipconnect.de) |
2021-11-13 21:41:43 +0100 | fresheyeball | (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) |
2021-11-13 21:42:14 +0100 | acidjnk_new | (~acidjnk@p200300d0c725147020cf3de033c5d4d3.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-11-13 21:46:50 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) |
2021-11-13 21:50:14 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2021-11-13 21:52:27 +0100 | fresheyeball | (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-11-13 21:55:47 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
2021-11-13 21:58:50 +0100 | jkaye | (~jkaye@2601:281:8300:7530:663a:b6d3:3081:a6b4) |
2021-11-13 21:58:51 +0100 | Vajb | (~Vajb@npscn2i6yp8h48ih-3.v6.elisa-mobile.fi) |
2021-11-13 22:01:47 +0100 | eggplant_ | (~Eggplanta@2600:1700:bef1:5e10:d32:7961:c8e7:76c1) |
2021-11-13 22:03:04 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-11-13 22:04:29 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-11-13 22:04:51 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) |
2021-11-13 22:05:11 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7032:7aef:17c2:c830) (Ping timeout: 264 seconds) |
2021-11-13 22:08:48 +0100 | Vajb | (~Vajb@npscn2i6yp8h48ih-3.v6.elisa-mobile.fi) (Ping timeout: 268 seconds) |
2021-11-13 22:15:10 +0100 | Vajb | (~Vajb@2001:999:54:373a:391d:ee55:f345:f09a) |
2021-11-13 22:18:07 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2021-11-13 22:18:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-13 22:19:34 +0100 | etrepum | (uid763@uxbridge.irccloud.com) |
2021-11-13 22:19:56 +0100 | Vajb | (~Vajb@2001:999:54:373a:391d:ee55:f345:f09a) (Ping timeout: 265 seconds) |
2021-11-13 22:21:03 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
2021-11-13 22:21:20 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2021-11-13 22:21:48 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 22:23:21 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Client Quit) |
2021-11-13 22:25:27 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-11-13 22:26:56 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-13 22:28:10 +0100 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 260 seconds) |
2021-11-13 22:30:03 +0100 | Vajb | (~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99) |
2021-11-13 22:31:31 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Quit: leaving) |
2021-11-13 22:32:26 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-11-13 22:33:18 +0100 | m5zs7k | (aquares@web10.mydevil.net) |
2021-11-13 22:34:26 +0100 | Vajb | (~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99) (Ping timeout: 265 seconds) |
2021-11-13 22:37:34 +0100 | shidima | (~shidima@84-104-108-90.cable.dynamic.v4.ziggo.nl) (Ping timeout: 260 seconds) |
2021-11-13 22:39:27 +0100 | Vajb | (~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99) |
2021-11-13 22:46:25 +0100 | Vajb | (~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99) (Ping timeout: 268 seconds) |
2021-11-13 22:52:11 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-11-13 22:58:04 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-13 22:59:28 +0100 | Pickchea | (~private@user/pickchea) (Remote host closed the connection) |
2021-11-13 23:00:28 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) |
2021-11-13 23:01:45 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
2021-11-13 23:01:47 +0100 | aegon | (~mike@174.127.249.180) |
2021-11-13 23:02:51 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2021-11-13 23:06:06 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-11-13 23:12:19 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Quit: Leaving) |
2021-11-13 23:12:50 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-13 23:17:40 +0100 | fendor | (~fendor@178.115.56.25.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-11-13 23:24:10 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
2021-11-13 23:26:50 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-11-13 23:28:17 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-13 23:28:57 +0100 | yauhsien | (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-13 23:31:03 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-11-13 23:34:00 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-11-13 23:34:00 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-11-13 23:34:02 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2021-11-13 23:34:03 +0100 | allbery_b | geekosaur |
2021-11-13 23:34:25 +0100 | jgeerds | (~jgeerds@55d41b94.access.ecotel.net) |
2021-11-13 23:37:11 +0100 | <energizer> | Hello. I'm interested in functional programming and performance. If I understand right, there are *some* algorithms whose fastest imperative implementation is significantly faster than the fastest functional version. Is there a good place to read about which algorithms are "solved" from this perspective and which are still slower than imperative? |
2021-11-13 23:38:39 +0100 | tfeb | (~tfb@88.98.95.237) |
2021-11-13 23:39:39 +0100 | tfeb | tfb |
2021-11-13 23:39:48 +0100 | <maerwald> | what qualifies a functional algorithm? Recursive? No mutable updates? |
2021-11-13 23:39:53 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-11-13 23:40:10 +0100 | slice | (~slice@user/slice) |
2021-11-13 23:40:22 +0100 | <geekosaur> | https://en.wikipedia.org/wiki/Purely_functional_data_structure |
2021-11-13 23:40:39 +0100 | <geekosaur> | which among other things links to Okasaki's thesis work on it |
2021-11-13 23:40:50 +0100 | <energizer> | yes, no mutable updates |
2021-11-13 23:40:55 +0100 | <geekosaur> | (also to his book but that's not free) |
2021-11-13 23:40:59 +0100 | <maerwald> | geekosaur: that link doesn't seem to talk about algorithms |
2021-11-13 23:42:08 +0100 | <geekosaur> | usually the algorithm falls out from the data structure, like how lists in Haskell are loops encoded as data |
2021-11-13 23:42:34 +0100 | f-a | (f2a@f2a.jujube.ircnow.org) () |
2021-11-13 23:42:37 +0100 | <maerwald> | can't relate |
2021-11-13 23:43:36 +0100 | <maerwald> | I only remember the blog about quicksort in haskell and the argument that quicksort IS an imperative algorithm |
2021-11-13 23:43:56 +0100 | <maerwald> | because it uses mutable updates |
2021-11-13 23:44:14 +0100 | <maerwald> | (which was then implemented via ST) |
2021-11-13 23:44:45 +0100 | <maerwald> | but here you say *implementation* |
2021-11-13 23:45:05 +0100 | <maerwald> | where I feel it's more like: there are two algorithms to solve the same issue, which one is faster? |
2021-11-13 23:45:31 +0100 | <maerwald> | and I doubt there is an answer |
2021-11-13 23:45:35 +0100 | tfb | (~tfb@88.98.95.237) (Quit: died) |
2021-11-13 23:45:56 +0100 | <energizer> | i didnt know the word for what you're calling an "issue" so i used algorithm but yeah "algorithm" isn't the right word |
2021-11-13 23:46:46 +0100 | kadir | (~kadir@78.178.105.36) |
2021-11-13 23:47:42 +0100 | <maerwald> | I just feel the definitions aren't really precise enough to give useful answers |
2021-11-13 23:49:10 +0100 | <maerwald> | is graham scan imperative or functional? |
2021-11-13 23:49:22 +0100 | <c_wraith> | graham scan works fine either way |
2021-11-13 23:49:28 +0100 | <maerwald> | yes |
2021-11-13 23:49:39 +0100 | <energizer> | in other words - for each task, how much of a slowdown do you suffer if you disallow mutation |
2021-11-13 23:49:46 +0100 | <c_wraith> | look at something like Tarjan's Union-Find for really wanting mutable data |
2021-11-13 23:49:52 +0100 | <energizer> | some tasks the difference is small, for some big |
2021-11-13 23:50:03 +0100 | <energizer> | i want to see a list |
2021-11-13 23:50:21 +0100 | <c_wraith> | I doubt anyone's ever made such a list |
2021-11-13 23:50:23 +0100 | jmorris | (uid433911@hampstead.irccloud.com) |
2021-11-13 23:50:43 +0100 | <maerwald> | and even if you did... it's hard to attribute the performance difference to the paradigm |
2021-11-13 23:50:49 +0100 | pwug | (~pwug@user/pwug) (Quit: Leaving) |
2021-11-13 23:50:53 +0100 | <energizer> | is it? |
2021-11-13 23:50:57 +0100 | <c_wraith> | it's the sort of thing you look at a description of the algorithm and go "how much does this depend on mutation of shared values?" |
2021-11-13 23:51:09 +0100 | <maerwald> | energizer: well, which language/compiler etc are you using? |
2021-11-13 23:51:53 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-13 23:51:59 +0100 | <maerwald> | and... what's really "functional" then? You're not producing code for functional architectures |
2021-11-13 23:52:12 +0100 | <c_wraith> | maerwald: I really feel like you're working hard to ignore the core question |
2021-11-13 23:52:43 +0100 | <c_wraith> | maerwald: "how much does the performance of these algorithms depend on mutation" is a perfectly fine question |
2021-11-13 23:52:46 +0100 | <maerwald> | c_wraith: no, I reverse engineered some imperative algorithms to haskell that were "imperative" and I was never able to tell a difference |
2021-11-13 23:52:55 +0100 | <Franciman> | maerwald: functional is theoretically sound |
2021-11-13 23:53:15 +0100 | deadmarshal | (~deadmarsh@95.38.117.102) |
2021-11-13 23:53:28 +0100 | <geekosaur> | doesn't help that a compiler like ghc will happily optimize functional code to code that does mutations behind your back |
2021-11-13 23:53:34 +0100 | <energizer> | i can tell the difference https://koerbitz.me/posts/Efficient-Quicksort-in-Haskell.html |
2021-11-13 23:53:35 +0100 | <maerwald> | e.g. the half-edge algorithm |
2021-11-13 23:53:45 +0100 | <maerwald> | (or data structure) |
2021-11-13 23:53:49 +0100 | <geekosaur> | and purity gives it considerable leeway to do so, because it knows when it's safe |
2021-11-13 23:53:53 +0100 | <c_wraith> | energizer: that's not really a fair question, as the Haskell version is *not* quicksort |
2021-11-13 23:54:04 +0100 | <maerwald> | geekosaur: exactly |
2021-11-13 23:54:07 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-13 23:54:20 +0100 | <maerwald> | so even if you did compare implementations, what are you really comparing? |
2021-11-13 23:54:30 +0100 | <maerwald> | probably compilers? |
2021-11-13 23:54:56 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2021-11-13 23:55:01 +0100 | <energizer> | some compilers exist and some don't |
2021-11-13 23:55:05 +0100 | pwug | (~pwug@user/pwug) |
2021-11-13 23:55:12 +0100 | <c_wraith> | why not do something obvious then? Kruskall's algorithm on a complete graph, comparing a mutation-based union-find with one that uses no observable mutation? |
2021-11-13 23:56:44 +0100 | <c_wraith> | (nevermind that you'd use Djikstra's algorithm in basically any real-world case) |
2021-11-13 23:56:46 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
2021-11-13 23:57:14 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-13 23:57:36 +0100 | deadmarshal | (~deadmarsh@95.38.117.102) (Ping timeout: 245 seconds) |