2022-09-30 00:00:09 +0200 | Guest2990 | (~Guest29@2601:281:d47e:a4c0:a09a:346e:21e1:c743) (Quit: Client closed) |
2022-09-30 00:00:14 +0200 | <darkling> | TECO's somewhat before my time, sadly|fortunately |
2022-09-30 00:00:58 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds) |
2022-09-30 00:02:40 +0200 | <geekosaur> | TV and a command prompt when I was blowing off time in the computer center my senior year of HS, when I was spending half-days at CWRU taking accelerated calculus |
2022-09-30 00:02:49 +0200 | <geekosaur> | (TV being DEC's visual TECO) |
2022-09-30 00:03:31 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-09-30 00:03:32 +0200 | <darkling> | I started my computing career on a ZX80. |
2022-09-30 00:03:43 +0200 | <geekosaur> | the dialup machine I was using from home was too small for emacs, although IIRC I did manage to get Jove running at some point |
2022-09-30 00:04:50 +0200 | <darkling> | I first met microEmacs squeezed into a DOS system alongside DBase IV in.. 1992? Kind of got stuck on the UI :) |
2022-09-30 00:09:01 +0200 | <sm> | darkling: high five! my first home computer |
2022-09-30 00:09:47 +0200 | <geekosaur> | Ohio Scientific SuperBoard II |
2022-09-30 00:10:15 +0200 | <geekosaur> | (C1P as a build-it-yourself kit, but dad had someone at work assemble it) |
2022-09-30 00:10:38 +0200 | <sm> | that sounds fun, and early |
2022-09-30 00:11:04 +0200 | <geekosaur> | late 70s |
2022-09-30 00:11:05 +0200 | <sm> | before apple I guess ? |
2022-09-30 00:11:26 +0200 | <geekosaur> | I think Apple was around but already overpriced 🙂 |
2022-09-30 00:11:42 +0200 | <darkling> | Looks about the same time. WP has a Superboard II in a wooden case to match the Apple II. |
2022-09-30 00:11:48 +0200 | <geekosaur> | so the not-cool-kids got to play with C1Ps, KIM-1s, etc. |
2022-09-30 00:12:24 +0200 | tdfpsws^ | (~tdfpsws@173-160-76-137-atlanta.hfc.comcastbusiness.net) |
2022-09-30 00:12:30 +0200 | <monochrom> | Yeah Apple II was probably overpriced. We guys in Hong Kong etc made and sold/bought clones for one tenth the price. |
2022-09-30 00:12:52 +0200 | <darkling> | The 8-bit home micro era was weird, spectacular, and regrettably short-lived. |
2022-09-30 00:13:16 +0200 | <geekosaur> | I remember the KayPro 1 coming out |
2022-09-30 00:13:31 +0200 | <geekosaur> | huge luggable for several thousand dollars |
2022-09-30 00:14:08 +0200 | <monochrom> | Then again we went on to do the same to IBM PCs and XTs and ATs too so I guess everything was overpriced. |
2022-09-30 00:14:08 +0200 | <geekosaur> | who'd have imagined we'd have more computing power on our smartphones when we grew up? |
2022-09-30 00:14:48 +0200 | <darkling> | More computing power than a *Cray*... |
2022-09-30 00:15:07 +0200 | Guest89 | (~Guest89@2a10:8012:11:bcba:9076:128d:d21b:9a21) |
2022-09-30 00:15:17 +0200 | Guest89 | (~Guest89@2a10:8012:11:bcba:9076:128d:d21b:9a21) (Client Quit) |
2022-09-30 00:15:27 +0200 | <EvanR> | this programming textbook from 1980 has a remark to that effect, about the increasing complexity, density, speed of computers |
2022-09-30 00:15:43 +0200 | <EvanR> | let me see what the exact wording is |
2022-09-30 00:15:45 +0200 | <darkling> | I did a lecture on the history of supercomputing a couple of times. I started with Seymour Cray's first machine, the CDC6600. |
2022-09-30 00:16:14 +0200 | <geekosaur> | flip side, crays were never about the computing power as such. similarly IBM mainframes were fairly weak, slow CPUs; it was the I/O channels that made them serious mainframes |
2022-09-30 00:16:40 +0200 | <darkling> | I then passed round a board with the best match of spec to that (4x the clock rate, 2x the RAM). €8 each in quantities of 1000... |
2022-09-30 00:16:45 +0200 | <EvanR> | "At present, integrated-circuit technology is rapidly developing, and one can only guess where the future will lead." |
2022-09-30 00:16:53 +0200 | <geekosaur> | and very low memory, but memory was used for scratchpad: all the real data was on tape |
2022-09-30 00:16:55 +0200 | <EvanR> | (Assembly Language for the PDP-11) |
2022-09-30 00:16:57 +0200 | <monochrom> | I am most happy that the days of "so which 5 CDs should I bring with me today?" are over because the flash memory on my phone stores the entirety of my music library. |
2022-09-30 00:17:08 +0200 | <darkling> | :) |
2022-09-30 00:17:44 +0200 | <geekosaur> | and then we moved on from music libraries and use Pandora/Spotify instead 🙂 |
2022-09-30 00:17:53 +0200 | michalz | (~michalz@185.246.207.197) (Remote host closed the connection) |
2022-09-30 00:18:11 +0200 | <monochrom> | I think PCIe 4.0 or 5.0 or 6.0 or whatever beats Cray or mainframe I/O speeds too. |
2022-09-30 00:18:14 +0200 | <darkling> | I've got a script that runs once every three months, to build images for the 6 DVDs that I can fit in my car's audio system... |
2022-09-30 00:18:14 +0200 | <EvanR> | moved on from music library to the sane 2 genres on youtube + gratuitous ads |
2022-09-30 00:18:25 +0200 | <EvanR> | same* |
2022-09-30 00:18:51 +0200 | <geekosaur> | monochrom, simultaneously? |
2022-09-30 00:19:07 +0200 | <EvanR> | I miss pirating terabytes of music and not listening to any of it |
2022-09-30 00:19:15 +0200 | <geekosaur> | if you have a separate bus for every peripheral, *now* you're talking mainframe |
2022-09-30 00:19:16 +0200 | <darkling> | monochrom: I think the Cray^H^H^H^HIntel node interconnects are still pretty impressive. |
2022-09-30 00:20:20 +0200 | <geekosaur> | oh, and each its own CPU so you can just blast data at it and let the IOCP deal |
2022-09-30 00:20:24 +0200 | <DigitalKiwi> | EvanR: i have over 20GB of trance music lol |
2022-09-30 00:20:26 +0200 | <darkling> | I did some work on them about a decade ago. Very interesting stuff. |
2022-09-30 00:21:05 +0200 | <darkling> | The butterfly/dragonfly architectures were pretty spectacular. |
2022-09-30 00:21:40 +0200 | titibandit | (~titibandi@xdsl-212-8-150-57.nc.de) (Remote host closed the connection) |
2022-09-30 00:22:06 +0200 | <darkling> | A major step up from the hypertoruses everyone was using before then. |
2022-09-30 00:23:55 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 00:24:09 +0200 | <DigitalKiwi> | https://chromium.googlesource.com/chromiumos/third_party/u-boot/+/firmware-butterfly-2788.B |
2022-09-30 00:24:22 +0200 | <DigitalKiwi> | that one? |
2022-09-30 00:24:31 +0200 | <DigitalKiwi> | https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/hp-pavilion-14-ch… |
2022-09-30 00:25:13 +0200 | <darkling> | Neither of those. :) |
2022-09-30 00:25:47 +0200 | tdfpsws^ | (~tdfpsws@173-160-76-137-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection) |
2022-09-30 00:26:00 +0200 | <darkling> | This sort of thing: https://www.cs.umd.edu/class/fall2019/cmsc714/slides/10-cmsc714-fattree-dragonfly.pdf |
2022-09-30 00:26:11 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) |
2022-09-30 00:26:56 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 00:27:34 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
2022-09-30 00:27:41 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 00:28:07 +0200 | <DigitalKiwi> | this is the cpu it has lol https://ark.intel.com/content/www/us/en/ark/products/56056/intel-celeron-processor-847-2m-cache-1-… i upgraded it to 16GB of ram and a 500GB SSD |
2022-09-30 00:29:09 +0200 | <darkling> | Although the actual implementation looked a bit different. Basically you could guarantee 9 hops to any node in the network, with about 1.5 million CPUs available on the largest configuration. |
2022-09-30 00:29:13 +0200 | lyle | (~lyle@104.246.145.85) (Ping timeout: 268 seconds) |
2022-09-30 00:29:22 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 00:30:13 +0200 | <sm> | yow |
2022-09-30 00:30:14 +0200 | <darkling> | On a 3-torus of that size, you'd be looking at 170 hops. |
2022-09-30 00:30:41 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 260 seconds) |
2022-09-30 00:32:21 +0200 | <EvanR> | now that's cray |
2022-09-30 00:32:26 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds) |
2022-09-30 00:37:28 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds) |
2022-09-30 00:39:08 +0200 | <DigitalKiwi> | if i were designing silicon i would simply arrange it in a hypercube |
2022-09-30 00:39:41 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-09-30 00:40:12 +0200 | <darkling> | Pushes up the cost of your routers quote a lot. |
2022-09-30 00:40:19 +0200 | <darkling> | log(N) in the CPUs. |
2022-09-30 00:40:34 +0200 | <DigitalKiwi> | https://mostlyabsurd.com/files/2022-09-29-174013_914x858_scrot.png |
2022-09-30 00:40:44 +0200 | <DigitalKiwi> | https://en.wikipedia.org/wiki/10-cube#/media/File:10-cube.svg |
2022-09-30 00:40:53 +0200 | <DigitalKiwi> | they came so close |
2022-09-30 00:41:35 +0200 | <darkling> | The CM-1 and CM-2 got up to 2^16 nodes, but that's small change these days. |
2022-09-30 00:42:02 +0200 | <darkling> | Big deal in 1987, though. |
2022-09-30 00:42:50 +0200 | <DigitalKiwi> | i'm sick of them giving us silicon chips/wafers! i want silicon lasagna/baklava |
2022-09-30 00:43:01 +0200 | <DigitalKiwi> | https://en.wikipedia.org/wiki/Baklava#/media/File:Baklava_-_Turkish_special,_80-ply.JPEG |
2022-09-30 00:43:02 +0200 | <darkling> | Hehe. |
2022-09-30 00:43:35 +0200 | <darkling> | So if you keep folding the baklava, does it eventually get really really sharp? |
2022-09-30 00:44:19 +0200 | <DigitalKiwi> | it's impossible to have more than 9 layers of baklava due to the laws of physics |
2022-09-30 00:44:40 +0200 | <darkling> | Did you mean 2^9 layers? |
2022-09-30 00:44:59 +0200 | <hpc> | i keep my 9-layer baklava next to my spherical souffles |
2022-09-30 00:45:00 +0200 | <DigitalKiwi> | i think i mean it's impossible to fold it more than 9 times heh |
2022-09-30 00:45:13 +0200 | <EvanR> | nuclear baklava is one region of neutron star interior |
2022-09-30 00:45:21 +0200 | darkling | turns on his baklava lamp. |
2022-09-30 00:45:26 +0200 | <DigitalKiwi> | s/9/7/ |
2022-09-30 00:46:05 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
2022-09-30 00:46:24 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2022-09-30 00:46:26 +0200 | <DigitalKiwi> | https://www.sciencefocus.com/science/whats-the-maximum-number-of-times-that-you-can-fold-a-piece-o… |
2022-09-30 00:46:58 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-09-30 00:47:45 +0200 | <jackdk> | The real reason that baklava admits a finite number of foldings is that they keep getting eaten. |
2022-09-30 00:48:56 +0200 | <monochrom> | :) |
2022-09-30 00:52:23 +0200 | <DigitalKiwi> | if it doesn't come from the nuclear baklava region of the neutron star it's just sparkling biscuit |
2022-09-30 00:54:02 +0200 | mikoto-chan | (~mikoto-ch@193.184.30.141) |
2022-09-30 00:55:01 +0200 | <DigitalKiwi> | tired: silicon chips, wired: silicon pringles chips |
2022-09-30 00:55:45 +0200 | acidjnk_new | (~acidjnk@p200300d6e7137a84f9679ba27a252492.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2022-09-30 01:03:30 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-09-30 01:06:39 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 01:06:52 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-09-30 01:07:13 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-09-30 01:08:09 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 265 seconds) |
2022-09-30 01:08:33 +0200 | thyriaen | (~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce) |
2022-09-30 01:08:34 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 01:09:11 +0200 | mikoto-chan | (~mikoto-ch@193.184.30.141) (Ping timeout: 250 seconds) |
2022-09-30 01:09:29 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 01:10:17 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-09-30 01:10:55 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds) |
2022-09-30 01:11:14 +0200 | mikoto-chan | (~mikoto-ch@2001:999:500:5a8f:6292:d4f9:57fd:9538) |
2022-09-30 01:13:08 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 01:13:47 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds) |
2022-09-30 01:15:05 +0200 | <hpc> | heh, print circuits on ruffled silicon for air flow |
2022-09-30 01:17:49 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 01:19:26 +0200 | jargon | (~jargon@184.101.88.60) |
2022-09-30 01:20:30 +0200 | mikoto-chan | (~mikoto-ch@2001:999:500:5a8f:6292:d4f9:57fd:9538) (Ping timeout: 244 seconds) |
2022-09-30 01:27:11 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-09-30 01:28:54 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
2022-09-30 01:29:47 +0200 | fjMSX | (~hypni2p@2.92.213.55) |
2022-09-30 01:41:06 +0200 | kenaryn | (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) |
2022-09-30 01:41:22 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-09-30 01:42:22 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 01:44:21 +0200 | <kenaryn> | Hello! Please which one is the superclass of the other between `Ord` and `Eq`? |
2022-09-30 01:45:07 +0200 | thyriaen | (~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce) (Quit: Leaving) |
2022-09-30 01:45:10 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-09-30 01:46:21 +0200 | <Axman6> | Eq is a superclass of Ord - you must be able to test for equality to be able to compare ordering |
2022-09-30 01:46:25 +0200 | <Axman6> | @src Ord |
2022-09-30 01:46:25 +0200 | <lambdabot> | class (Eq a) => Ord a where |
2022-09-30 01:46:25 +0200 | <lambdabot> | compare :: a -> a -> Ordering |
2022-09-30 01:46:25 +0200 | <lambdabot> | (<), (<=), (>), (>=) :: a -> a -> Bool |
2022-09-30 01:46:25 +0200 | <lambdabot> | max, min :: a -> a -> a |
2022-09-30 01:46:47 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds) |
2022-09-30 01:46:59 +0200 | phma | (phma@2001:5b0:210b:aca8:55c3:ae:c6b9:e9a1) (Read error: No route to host) |
2022-09-30 01:47:26 +0200 | phma | (phma@2001:5b0:210b:aca8:ecff:405c:745f:81a2) |
2022-09-30 01:48:40 +0200 | shreyasminocha | (51fdc93eda@user/shreyasminocha) (Read error: Connection reset by peer) |
2022-09-30 01:48:48 +0200 | shreyasminocha | (51fdc93eda@user/shreyasminocha) |
2022-09-30 01:49:41 +0200 | Arsen | (arsen@managarm/dev/Arsen) (Remote host closed the connection) |
2022-09-30 01:50:51 +0200 | Arsen | (arsen@managarm/dev/Arsen) |
2022-09-30 01:55:26 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-09-30 01:55:43 +0200 | berberman | (~berberman@user/berberman) |
2022-09-30 01:57:02 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::778c) |
2022-09-30 02:00:53 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 02:02:20 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds) |
2022-09-30 02:02:52 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
2022-09-30 02:03:36 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
2022-09-30 02:03:38 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-09-30 02:03:48 +0200 | califax | (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-09-30 02:04:01 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
2022-09-30 02:04:30 +0200 | califax | (~califax@user/califx) |
2022-09-30 02:05:16 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-09-30 02:05:25 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-09-30 02:05:33 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 258 seconds) |
2022-09-30 02:05:49 +0200 | <jackdk> | The `:info` command in GHCi is also useful for answering questions like this: |
2022-09-30 02:05:49 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-09-30 02:05:51 +0200 | <jackdk> | % :info Ord |
2022-09-30 02:05:52 +0200 | <yahb2> | type Ord :: * -> Constraint ; class Eq a => Ord a where ; compare :: a -> a -> Ordering ; (<) :: a -> a -> Bool ; (<=) :: a -> a -> Bool ; (>) :: a -> a -> Bool ; (>=) :: a -> a -> Bool ;... |
2022-09-30 02:05:52 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-09-30 02:06:18 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-09-30 02:06:38 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 02:06:58 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-09-30 02:06:58 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-09-30 02:06:58 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-09-30 02:12:09 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 02:13:03 +0200 | <EvanR> | because Ord is supposed to be a "total order" |
2022-09-30 02:13:21 +0200 | <EvanR> | other kind of orderings are cool, some don't entail equality issues |
2022-09-30 02:15:20 +0200 | levitating | (~irc@user/levitating) (Ping timeout: 265 seconds) |
2022-09-30 02:16:54 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 02:17:12 +0200 | chomwitt | (~chomwitt@2a02:587:dc14:f500:9e6a:c6cb:5be3:53b3) (Ping timeout: 264 seconds) |
2022-09-30 02:21:31 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds) |
2022-09-30 02:23:21 +0200 | <ski> | equality issues ? |
2022-09-30 02:23:51 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds) |
2022-09-30 02:24:34 +0200 | sagax | (~sagax_nb@user/sagax) (Ping timeout: 244 seconds) |
2022-09-30 02:26:25 +0200 | <EvanR> | you might not need to or want to define equality |
2022-09-30 02:27:01 +0200 | <EvanR> | or in the case of real numbers, can't xD (have decidable equality) |
2022-09-30 02:42:12 +0200 | levitating | (~irc@user/levitating) |
2022-09-30 02:42:38 +0200 | <L29Ah> | https://hackage.haskell.org/package/array-0.5.4.0/docs/src/Data.Array.Base.html#local-698958662167… omg this looks very complex, is it even fast? is there a simpler unboxed array impl? |
2022-09-30 02:43:35 +0200 | <geekosaur> | there are unboxed Vectors |
2022-09-30 02:44:33 +0200 | <L29Ah> | https://hackage.haskell.org/package/vector-0.13.0.0/docs/src/Data.Vector.Generic.html#unsafeIndex this looks even more complex |
2022-09-30 02:46:51 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-09-30 02:47:02 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
2022-09-30 02:50:57 +0200 | <EvanR> | looks like when you access an array of unboxed Char you get an actual Char and not an unboxed thing |
2022-09-30 02:51:17 +0200 | <EvanR> | so it's not like C in this case... |
2022-09-30 02:52:55 +0200 | <EvanR> | I guess you can pattern match on C# to use the unboxed char in your unboxed algorithm? |
2022-09-30 02:54:45 +0200 | <dolio> | Why would you? |
2022-09-30 02:55:13 +0200 | <EvanR> | in a desperate attempt to avoid allocating boxes? |
2022-09-30 02:55:35 +0200 | <Axman6> | L29Ah: what's "complex" about that code? |
2022-09-30 02:55:53 +0200 | <dolio> | Right, ignorance. |
2022-09-30 02:55:54 +0200 | <L29Ah> | Axman6: very many functions |
2022-09-30 02:56:26 +0200 | <Axman6> | they just encode the various uptions that arrays need to be able to do |
2022-09-30 02:56:49 +0200 | <Axman6> | and you'll see all the definitions are simple, and straight forward |
2022-09-30 02:56:54 +0200 | <geekosaur> | and I saw an INLINE_FUSED in there so I assume it goes away |
2022-09-30 02:57:39 +0200 | kiri1606[m] | (~kiri1606m@2001:470:69fc:105::2:8ec9) |
2022-09-30 02:58:03 +0200 | <EvanR> | automagic unboxing? cool |
2022-09-30 02:58:15 +0200 | <geekosaur> | (although INLINE_FUSED isn't a ghc thing so I assume there's some CPP going on) |
2022-09-30 02:58:21 +0200 | <L29Ah> | ok i gotta read generated assembly first it seems |
2022-09-30 02:58:24 +0200 | mikoto-chan | (~mikoto-ch@2001:999:688:67e8:7b13:7bf9:475:595a) |
2022-09-30 02:58:35 +0200 | <L29Ah> | still i see a sus `xor` call at that first link! |
2022-09-30 02:59:10 +0200 | <L29Ah> | a bit of context: i'm trying to rice up https://github.com/l29ah/hyborg/blob/master/Chunker/BuzHash.hs#L52 |
2022-09-30 02:59:44 +0200 | <L29Ah> | now kinda sad that i didn't write it in C |
2022-09-30 02:59:48 +0200 | levitating | (~irc@user/levitating) (Ping timeout: 265 seconds) |
2022-09-30 03:00:04 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 03:00:37 +0200 | sagax | (~sagax_nb@user/sagax) |
2022-09-30 03:03:43 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-09-30 03:03:56 +0200 | <kenaryn> | Thank you Axman6 jackdk yahb2 EvanR :) |
2022-09-30 03:04:21 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 244 seconds) |
2022-09-30 03:05:45 +0200 | xff0x | (~xff0x@2405:6580:b080:900:2f8c:7144:6283:fa6) (Ping timeout: 250 seconds) |
2022-09-30 03:06:26 +0200 | levitating | (~irc@user/levitating) |
2022-09-30 03:06:35 +0200 | <jackdk> | Polite of you to thank the bot too ^^ |
2022-09-30 03:06:56 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 03:07:21 +0200 | <kenaryn> | yeah AI will have sooner or later feelings too |
2022-09-30 03:07:45 +0200 | <EvanR> | %botsnack |
2022-09-30 03:08:43 +0200 | <Axman6> | @botsnack |
2022-09-30 03:08:43 +0200 | <lambdabot> | :) |
2022-09-30 03:10:46 +0200 | Colere | (~colere@about/linux/staff/sauvin) |
2022-09-30 03:10:56 +0200 | LoupGris | (~colere@about/linux/staff/sauvin) (Ping timeout: 265 seconds) |
2022-09-30 03:11:02 +0200 | <Axman6> | L29Ah: the xor is in there because IArray for Bool is a packed representation, so the Bools are stored as individual bits, you'd expect to see code like that in any language that has a packed array of bits |
2022-09-30 03:11:41 +0200 | archsinner | (~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com) |
2022-09-30 03:12:25 +0200 | archsinner | (~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com) () |
2022-09-30 03:13:09 +0200 | Furor | (~colere@about/linux/staff/sauvin) |
2022-09-30 03:13:13 +0200 | archsinner | (~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com) |
2022-09-30 03:13:55 +0200 | kenaryn | (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving) |
2022-09-30 03:13:57 +0200 | <ski> | EvanR : yea, but not having decidable equality is not the same as not having equality |
2022-09-30 03:14:19 +0200 | <dolio> | The reals in fact aren't a total order, though. |
2022-09-30 03:14:29 +0200 | <dolio> | Only a linear order. |
2022-09-30 03:14:33 +0200 | <ski> | they're a linear order, though |
2022-09-30 03:14:36 +0200 | <ski> | yea |
2022-09-30 03:15:53 +0200 | Colere | (~colere@about/linux/staff/sauvin) (Ping timeout: 252 seconds) |
2022-09-30 03:15:53 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 03:16:07 +0200 | archsinner | (~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com) (Quit: archsinner) |
2022-09-30 03:17:05 +0200 | <EvanR> | what's the difference, wikipedia can't explain it |
2022-09-30 03:17:14 +0200 | frost | (~frost@user/frost) |
2022-09-30 03:17:26 +0200 | <dolio> | Linear applies to (<) |
2022-09-30 03:17:36 +0200 | <EvanR> | ok |
2022-09-30 03:17:58 +0200 | <ski> | linear has comparision/cotransitivity. if `a < c' then `a < b' or `b < c' |
2022-09-30 03:18:10 +0200 | <dolio> | Yeah. |
2022-09-30 03:18:33 +0200 | <ski> | but there's no dichotomy (either `a =< b' or `b =< c') nor trichotomy (either `a < b' or `a = b' or `a > b') |
2022-09-30 03:20:33 +0200 | <dolio> | (<) on the reals is constructively stronger, because it tells you how to separate its arguments. (≤) is defined by negation of (<), I think. |
2022-09-30 03:20:50 +0200 | <dolio> | Or, if not defined, equivalent. |
2022-09-30 03:21:27 +0200 | <ski> | yes |
2022-09-30 03:22:35 +0200 | ski | . o O ( <https://ncatlab.org/nlab/show/linear+order> ) |
2022-09-30 03:24:08 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
2022-09-30 03:26:28 +0200 | <geekosaur> | did you mean (≥)? |
2022-09-30 03:26:29 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 03:26:48 +0200 | <ski> | hm, right |
2022-09-30 03:26:52 +0200 | <ski> | (or flipping? |
2022-09-30 03:26:56 +0200 | <ski> | ) |
2022-09-30 03:27:05 +0200 | <dolio> | Yeah, you have to flip the arguments to define ≤. |
2022-09-30 03:27:41 +0200 | <ski> | and you can define apartness as being either less or greater than |
2022-09-30 03:28:33 +0200 | ski | . o O ( <https://ncatlab.org/nlab/show/apartness+relation> ) |
2022-09-30 03:28:47 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) |
2022-09-30 03:33:12 +0200 | <ski> | hm, iirc Pascal has finite subsets of ranges and enumerations, typically implemented as bitvectors |
2022-09-30 03:33:17 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 244 seconds) |
2022-09-30 03:35:04 +0200 | <ski> | > complement 0 :: Integer |
2022-09-30 03:35:06 +0200 | <lambdabot> | -1 |
2022-09-30 03:35:34 +0200 | <EvanR> | that's... correct |
2022-09-30 03:35:58 +0200 | <ski> | > popCount (-1) |
2022-09-30 03:36:00 +0200 | <lambdabot> | -1 |
2022-09-30 03:36:07 +0200 | <EvanR> | that's not |
2022-09-30 03:36:19 +0200 | <EvanR> | population -1 |
2022-09-30 03:36:37 +0200 | <ski> | i think when there's infinitely many `1's, they're counting the number of `0's, and subtracting that from `-1' ? |
2022-09-30 03:36:52 +0200 | <ski> | > map popCount [-1,-2 ..] |
2022-09-30 03:36:54 +0200 | <lambdabot> | [-1,-1,-2,-1,-2,-2,-3,-1,-2,-2,-3,-2,-3,-3,-4,-1,-2,-2,-3,-2,-3,-3,-4,-2,-3,... |
2022-09-30 03:37:30 +0200 | <ski> | > map popCount [0 ..] |
2022-09-30 03:37:32 +0200 | <lambdabot> | [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3... |
2022-09-30 03:37:32 +0200 | <EvanR> | haha for any finite integer (??) there's an infinite string of zeros or ones off the end |
2022-09-30 03:38:08 +0200 | <EvanR> | that's imperfect and ad hoc, it should be generalized immediately to arbitrary zeros and ones |
2022-09-30 03:38:26 +0200 | <Clinton[m]> | What am I doing wrong here with pattern synonyms, or do I need an extension?... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/fd17ec5ff0ce981d1427274d4b9fc9690f9c…>) |
2022-09-30 03:38:27 +0200 | <ski> | hmm .. seems `popCount (-n)' rather does `- popCount n' ? .. weird |
2022-09-30 03:38:50 +0200 | <Clinton[m]> | * What am I doing wrong here with pattern synonyms, or do I need an extension (other than `PatternSynonyms` of course)?... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/5e93f79760c908ac49715b3a77c8e3c829b5…>) |
2022-09-30 03:38:59 +0200 | <EvanR> | > popCount (-5 :: Int) |
2022-09-30 03:39:01 +0200 | <lambdabot> | 63 |
2022-09-30 03:39:01 +0200 | <Clinton[m]> | * What am I doing wrong here with pattern synonyms, or do I need an extension (other than `PatternSynonyms` of course)?... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/371822ac5679469a90a590e34b67fac4a58f…>) |
2022-09-30 03:39:17 +0200 | <ski> | EvanR : well, you can't construct those `2'-adic numbers, with ring operations |
2022-09-30 03:40:01 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-09-30 03:41:29 +0200 | <ski> | note that ⌜⋯010101₂ = −½⌝ |
2022-09-30 03:41:33 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 03:42:01 +0200 | <EvanR> | 🤔 |
2022-09-30 03:42:10 +0200 | tomku | (~tomku@user/tomku) (Quit: Lost terminal) |
2022-09-30 03:42:20 +0200 | <EvanR> | are those your new quotes or what |
2022-09-30 03:43:17 +0200 | <dolio> | That's the Gödel code quotation. |
2022-09-30 03:43:47 +0200 | <ski> | well .. Quine quotes |
2022-09-30 03:43:56 +0200 | <ski> | (that i use for unicode) |
2022-09-30 03:44:11 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 03:44:21 +0200 | <EvanR> | in what sense is that equality true |
2022-09-30 03:45:15 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 03:45:22 +0200 | tomku | (~tomku@user/tomku) |
2022-09-30 03:45:27 +0200 | <ski> | er, sorry, that should be ⌜⋯010101₂ = −⅓⌝ |
2022-09-30 03:46:11 +0200 | <ski> | try adding three copies of that binary numeral together, and you'll get ⌜⋯111111₂⌝, which is negative one |
2022-09-30 03:46:12 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 03:48:23 +0200 | ProbablyReturnin | (~ProbablyR@S01069050ca4e3573.cg.shawcable.net) |
2022-09-30 03:48:55 +0200 | ProbablyReturnin | (~ProbablyR@S01069050ca4e3573.cg.shawcable.net) () |
2022-09-30 03:49:18 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-09-30 03:49:49 +0200 | <EvanR> | gnarly |
2022-09-30 03:50:42 +0200 | tomku | (~tomku@user/tomku) (Quit: Lost terminal) |
2022-09-30 03:50:59 +0200 | ski | . o O ( <https://en.wikipedia.org/wiki/P-adic_number#Positional_notation> ) |
2022-09-30 03:52:46 +0200 | tomku | (~tomku@user/tomku) |
2022-09-30 03:54:41 +0200 | <byorgey> | Clinton[m]: I think you just need to get rid of the parentheses around (x :=: y) |
2022-09-30 03:55:05 +0200 | sympt | (~sympt@user/sympt) (Read error: Connection reset by peer) |
2022-09-30 03:55:40 +0200 | <ski> | in `2'-adic, you can represent all rationals (as "repeating digits to the left"), except for those (when put in reduced form) whose denominator is divisible by `2' |
2022-09-30 03:56:33 +0200 | <ski> | (and ditto for `p'-adic, for any prime number `p'. you have digits `{0,1,...,p-1}', as usual for base `p', except that you can repeat infinitely to the left) |
2022-09-30 03:57:10 +0200 | sympt | (~sympt@user/sympt) |
2022-09-30 03:58:28 +0200 | <ski> | Clinton[m] : hmm .. did you intend to effectively make an existential ? |
2022-09-30 03:59:19 +0200 | <ski> | (.. since that type doesn't look too useful, to me -- with or without the pattern synonym. but perhaps this is a simplification of what you're really trying) |
2022-09-30 04:01:37 +0200 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
2022-09-30 04:03:38 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 04:05:03 +0200 | <Clinton[m]> | ski: `pattern (:==:) x y = Equal x y` works fine I worked out in the end. My example wasn't complete, in the real example in `Equal` (which is actually something different) `a` is not of kind `Type` but instead another kind and `Equal` has a number of constructors which expose the actual type. |
2022-09-30 04:05:23 +0200 | <ski> | sure, not saying it doesn't work |
2022-09-30 04:05:40 +0200 | <ski> | just that you couldn't actually do anything with `x' and `y', after matching on the pattern |
2022-09-30 04:06:21 +0200 | <ski> | hm .. you want to avoid exposing the type representation ? |
2022-09-30 04:06:51 +0200 | <Clinton[m]> | In my actual code I can, but yes, in the example I agree no I can't. |
2022-09-30 04:07:02 +0200 | ski | nods |
2022-09-30 04:08:42 +0200 | <Clinton[m]> | @ski:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/c92e19c0584fc25777bd17f72a6ddf17bd69…>) |
2022-09-30 04:08:43 +0200 | <lambdabot> | Unknown command, try @list |
2022-09-30 04:09:44 +0200 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
2022-09-30 04:11:13 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds) |
2022-09-30 04:12:01 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 246 seconds) |
2022-09-30 04:13:04 +0200 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 268 seconds) |
2022-09-30 04:13:32 +0200 | td_ | (~td@muedsl-82-207-238-058.citykom.de) (Ping timeout: 260 seconds) |
2022-09-30 04:14:07 +0200 | <ski> | (fwiw, there's no need / custom to adorn nicknames with sigils (like `@') on IRC. just mention the nick of the person you wish to address, or reference. in case of the former, e.g. starting the message with the name, followed by a comma or colon, and the rest of the message. most IRC clients will highlight/alert the user when their nick is mentioned first think (iow so with no `@' before it) in the message. |
2022-09-30 04:14:13 +0200 | <ski> | not as many will do it if it occurs otherwhere in the message) |
2022-09-30 04:14:24 +0200 | <ski> | (`@' also happens to already mean something else, on IRC .. namely channel operator) |
2022-09-30 04:14:52 +0200 | <ski> | Clinton[m] : ok, a GADT |
2022-09-30 04:15:01 +0200 | td_ | (~td@94.134.91.160) |
2022-09-30 04:15:07 +0200 | <ski> | indexed by a datakind |
2022-09-30 04:15:34 +0200 | ski | would probably write `data Alice :: Bob -> * where' (or `Type' in place of `*', if you prefer), there .. |
2022-09-30 04:15:47 +0200 | <ski> | (.. since the name `a' is of no use there) |
2022-09-30 04:17:06 +0200 | <ski> | Clinton[m] : .. did you want to make a pattern synonym for the general type Alice a or for one of the specialized ones, Alice 'Integer resp. Alice 'Text ? |
2022-09-30 04:18:21 +0200 | <Clinton[m]> | Ah, okay, I've just bumped into a separate problem.... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/ac79b8834810e59ba6bf7b3429df6ded4f25…>) |
2022-09-30 04:18:28 +0200 | <Clinton[m]> | s///, s/// |
2022-09-30 04:20:03 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 04:20:03 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-09-30 04:20:03 +0200 | finn_elija | FinnElija |
2022-09-30 04:20:04 +0200 | mrianbloom | (uid350277@id-350277.ilkley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-09-30 04:22:44 +0200 | <ski> | Clinton[m] : you could make a "singleton" type |
2022-09-30 04:22:59 +0200 | <ski> | data BobIs :: Bob -> * |
2022-09-30 04:23:01 +0200 | <ski> | where |
2022-09-30 04:23:18 +0200 | <ski> | IsInteger :: BobIs 'Integer |
2022-09-30 04:23:28 +0200 | <ski> | IsText :: BobIs 'Text |
2022-09-30 04:23:34 +0200 | <ski> | and then you could do |
2022-09-30 04:23:42 +0200 | <ski> | class Chuck (a :: Bob) |
2022-09-30 04:23:44 +0200 | <ski> | where |
2022-09-30 04:23:54 +0200 | <ski> | f :: BobIs a -> Alice a |
2022-09-30 04:23:55 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) |
2022-09-30 04:24:32 +0200 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2022-09-30 04:26:09 +0200 | <ski> | (called a "singleton" since, for each particular type `a' of kind `Bob', `BobIs a' has just one (total) value .. so you can pass this value, and pattern-match on it, as an ersatz for not being able to pattern-match on a type (`forall') parameter of kind `Bob') |
2022-09-30 04:26:27 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 04:27:01 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2022-09-30 04:28:50 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 04:29:54 +0200 | <ski> | (whereas, `f :: a -> Alice a' wouldn't work, since the latter `a' has, as you noted, kind `Bob', while the former has to be a concrete type (one which is capable of being inhabited, having values), iow having kind `*' (or being an unboxed type or a few more variants)) |
2022-09-30 04:37:44 +0200 | Linux | HP-UX |
2022-09-30 04:41:31 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds) |
2022-09-30 04:41:58 +0200 | <ski> | (so .. `f :: BobIs a -> Alice a' here works as a replacement for the proper dependent type (signature) `f :: (a ::) Bob -> Alice a' (or `f :: foreach (a :: Bob) -> Alice a' in Dependent Haskell syntax, iirc)) |
2022-09-30 04:45:01 +0200 | mikoto-chan | (~mikoto-ch@2001:999:688:67e8:7b13:7bf9:475:595a) (Ping timeout: 260 seconds) |
2022-09-30 04:45:39 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal) |
2022-09-30 04:56:11 +0200 | mikoto-chan | (~mikoto-ch@2001:999:588:88d8:9998:df71:a0e0:69a1) |
2022-09-30 05:06:56 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
2022-09-30 05:08:34 +0200 | vglfr | (~vglfr@145.224.100.190) (Ping timeout: 268 seconds) |
2022-09-30 05:08:38 +0200 | <kiri1606[m]> | Hello! I’m trying to understand this piece of code but I’m having a hard time deciphering the last line. `fmap (c:)` followed by `$`…... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/50eb7698d7a55001eb86a802a721b8e35496…>) |
2022-09-30 05:09:06 +0200 | razetime | (~quassel@117.254.35.71) |
2022-09-30 05:10:30 +0200 | <c_wraith> | It's followed by <$> , not $ |
2022-09-30 05:11:26 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-09-30 05:12:51 +0200 | <kiri1606[m]> | Oops, that’s what I meant! Yeah i don’t understand what that means here. (I know that <$> is functor application, but i can’t seem to make sense of it here) |
2022-09-30 05:13:12 +0200 | <kiri1606[m]> | * functor application/fmap, but |
2022-09-30 05:13:22 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 05:13:34 +0200 | <c_wraith> | so, it's a nested fmap. Another way to write that would be fmap (fmap (c:)) (...) |
2022-09-30 05:14:01 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
2022-09-30 05:14:03 +0200 | <ski> | or `(fmap . fmap) (c :) (...)' |
2022-09-30 05:14:11 +0200 | <c_wraith> | so it's applying the function (c:) to a value nested inside two functors |
2022-09-30 05:14:26 +0200 | <c_wraith> | (c:) just prepends the value c to a list. |
2022-09-30 05:14:55 +0200 | <c_wraith> | so basically it's "parse the rest of the expected input, then prepend c to the generated input" |
2022-09-30 05:15:23 +0200 | <ski> | in this case, `fmap . fmap' has type `(String -> String) -> (Maybe (String,String) -> Maybe (String,String))' |
2022-09-30 05:15:23 +0200 | <kiri1606[m]> | Ah,`(fmap . fmap) (c :) (...)' I’m familiar with this, so it’s basically the equivalent of applying a function that’s embedded 2 layers deep ? |
2022-09-30 05:15:28 +0200 | <c_wraith> | yes |
2022-09-30 05:15:38 +0200 | <ski> | the outer functor is `Maybe', the inner is `(String,)' |
2022-09-30 05:17:10 +0200 | <ski> | (so the `String' that's "changed" by `(c :) :: String -> String' here is the second component of the pair .. which is the monadic result, for `Parser'. the first `String' is the remainder of the token (`Char') stream) |
2022-09-30 05:17:49 +0200 | <kiri1606[m]> | Thanks c_wraith ski! It makes sense now. I was a bit confused as i wasn’t sure of the « precedence », like… i thought that <$> was an argument passed to the first fmap |
2022-09-30 05:17:50 +0200 | <ski> | btw, there is no need to say `(c:cs) -> ...', it could just say `c:cs -> ...' |
2022-09-30 05:18:02 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
2022-09-30 05:18:03 +0200 | <kiri1606[m]> | Gotcha |
2022-09-30 05:18:16 +0200 | <c_wraith> | kiri1606[m]: ah. for reference, infix operators are always lower precedence than prefix function application |
2022-09-30 05:18:17 +0200 | <ski> | yea, function application binds tighter than infix operators |
2022-09-30 05:18:33 +0200 | ski | low fours c_wraith |
2022-09-30 05:18:47 +0200 | <kiri1606[m]> | Thanks! That’s a useful tip to keep at the back of my head |
2022-09-30 05:18:58 +0200 | <DigitalKiwi> | i like parens though (aesthetically, so not lisp lol) |
2022-09-30 05:19:33 +0200 | <kiri1606[m]> | * a function on something that’s embedded |
2022-09-30 05:19:33 +0200 | <ski> | (record construction&update binds tigher, though ! .. as do `!',`~',`@' in patterns. and `@' (meaning something else) in expressions) |
2022-09-30 05:24:39 +0200 | zmt01 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
2022-09-30 05:25:47 +0200 | zmt00 | (~zmt00@user/zmt00) |
2022-09-30 05:25:51 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-09-30 05:26:38 +0200 | tomku | (~tomku@user/tomku) (Quit: Lost terminal) |
2022-09-30 05:27:14 +0200 | razetime | (~quassel@117.254.35.71) (Ping timeout: 265 seconds) |
2022-09-30 05:28:53 +0200 | tomku | (~tomku@user/tomku) |
2022-09-30 05:29:47 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 05:30:56 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 05:34:23 +0200 | mcglk | (~mcglk@131.191.49.120) (Ping timeout: 250 seconds) |
2022-09-30 05:35:13 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
2022-09-30 05:35:26 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 05:36:39 +0200 | mcglk | (~mcglk@131.191.49.120) |
2022-09-30 05:36:42 +0200 | vglfr | (~vglfr@145.224.100.164) |
2022-09-30 05:36:49 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) |
2022-09-30 05:36:56 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Client Quit) |
2022-09-30 05:42:19 +0200 | mikoto-chan | (~mikoto-ch@2001:999:588:88d8:9998:df71:a0e0:69a1) (Ping timeout: 246 seconds) |
2022-09-30 05:44:24 +0200 | mikoto-chan | (~mikoto-ch@2001:999:589:2115:1305:6aca:b6bf:af91) |
2022-09-30 05:46:11 +0200 | Vajb | (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer) |
2022-09-30 05:47:00 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
2022-09-30 05:47:39 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 05:50:51 +0200 | mikoto-chan | (~mikoto-ch@2001:999:589:2115:1305:6aca:b6bf:af91) (Ping timeout: 250 seconds) |
2022-09-30 05:51:04 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 05:57:27 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-09-30 06:03:35 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-09-30 06:04:08 +0200 | Vajb | (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) |
2022-09-30 06:06:38 +0200 | razetime | (~quassel@117.254.35.71) |
2022-09-30 06:10:09 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 06:15:05 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
2022-09-30 06:32:27 +0200 | jargon | (~jargon@184.101.88.60) (Remote host closed the connection) |
2022-09-30 06:32:57 +0200 | fef | (~thedawn@user/thedawn) |
2022-09-30 06:36:57 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
2022-09-30 06:41:11 +0200 | darkstardevx | (~darkstard@192.183.207.94) (Ping timeout: 265 seconds) |
2022-09-30 06:53:21 +0200 | darkstardevx | (~darkstard@192.183.207.94) |
2022-09-30 06:54:58 +0200 | darkstardevx | (~darkstard@192.183.207.94) (Remote host closed the connection) |
2022-09-30 06:55:22 +0200 | darkstardevx | (~darkstard@192.183.207.94) |
2022-09-30 06:59:11 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2022-09-30 07:09:30 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 07:13:28 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 07:14:59 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-09-30 07:19:11 +0200 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving) |
2022-09-30 07:20:20 +0200 | chomwitt | (~chomwitt@2a02:587:dc14:f500:3759:458b:6e75:9dca) |
2022-09-30 07:30:15 +0200 | Furor | LoupGris |
2022-09-30 07:32:38 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-09-30 07:36:49 +0200 | tmiller | (~tmiller@199.241.26.152) (Quit: WeeChat 3.6) |
2022-09-30 07:49:39 +0200 | michalz | (~michalz@185.246.207.221) |
2022-09-30 07:53:44 +0200 | landonf | (landonf@mac68k.info) (Quit: ZNC - http://znc.sourceforge.net) |
2022-09-30 07:55:14 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-09-30 07:59:47 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 08:01:14 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-09-30 08:04:27 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 08:04:45 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
2022-09-30 08:13:51 +0200 | <Axman6> | Anyone know what the unsafeCoerce# is doing in https://hackage.haskell.org/package/array-0.5.4.0/docs/src/Data.Array.Base.html#thawSTUArray? |
2022-09-30 08:16:18 +0200 | <Axman6> | oh it's converting an IO call into an ST one |
2022-09-30 08:16:48 +0200 | <Axman6> | unsafeCoerce# :: (State# RealWorld -> (# State# RealWorld, Ptr Any #)) -> State# s -> (# State# s, Any #) |
2022-09-30 08:20:13 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 08:23:18 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) |
2022-09-30 08:24:31 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Client Quit) |
2022-09-30 08:24:35 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 248 seconds) |
2022-09-30 08:31:04 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-09-30 08:34:30 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 244 seconds) |
2022-09-30 08:36:06 +0200 | acidjnk_new | (~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de) |
2022-09-30 08:38:38 +0200 | ellensol | (~ellen@ua-84-216-129-63.bbcust.telenor.se) |
2022-09-30 08:39:46 +0200 | gmg | (~user@user/gehmehgeh) |
2022-09-30 08:42:56 +0200 | joeyh | (joeyh@2600:3c03::f03c:91ff:fe73:b0d2) (Ping timeout: 255 seconds) |
2022-09-30 08:45:06 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-09-30 08:45:58 +0200 | ft | (~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: leaving) |
2022-09-30 08:49:26 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 08:52:44 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 08:54:39 +0200 | glguy | (~glguy@libera/staff-emeritus/glguy) (Ping timeout: 244 seconds) |
2022-09-30 08:55:39 +0200 | mncheck | (~mncheck@193.224.205.254) |
2022-09-30 08:57:08 +0200 | glguy | (~glguy@libera/staff-emeritus/glguy) |
2022-09-30 08:59:12 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 264 seconds) |
2022-09-30 09:02:03 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:255f:4d0:bef0:41ba) |
2022-09-30 09:02:55 +0200 | glguy | (~glguy@libera/staff-emeritus/glguy) (Ping timeout: 244 seconds) |
2022-09-30 09:04:02 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 09:04:24 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-09-30 09:05:13 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 09:06:21 +0200 | MajorBiscuit | (~MajorBisc@c-001-026-007.client.tudelft.eduvpn.nl) |
2022-09-30 09:10:02 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds) |
2022-09-30 09:11:53 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) |
2022-09-30 09:13:12 +0200 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-09-30 09:14:15 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Client Quit) |
2022-09-30 09:15:53 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
2022-09-30 09:18:45 +0200 | ellensol | (~ellen@ua-84-216-129-63.bbcust.telenor.se) (Read error: Connection reset by peer) |
2022-09-30 09:22:08 +0200 | glguy | (~glguy@libera/staff-emeritus/glguy) |
2022-09-30 09:24:24 +0200 | acidjnk_new | (~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-09-30 09:27:18 +0200 | acidjnk_new | (~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de) |
2022-09-30 09:32:25 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 09:34:16 +0200 | <maerwald> | wow... ghci core dumps on alpine 3.15 |
2022-09-30 09:36:27 +0200 | tcard_ | (~tcard@p696070-ipngn8501hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
2022-09-30 09:36:42 +0200 | mixfix41 | (~sdeny9ee@user/mixfix41) |
2022-09-30 09:37:13 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2022-09-30 09:39:41 +0200 | nschoe | (~quassel@141.101.51.197) |
2022-09-30 09:42:55 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 265 seconds) |
2022-09-30 09:42:57 +0200 | tcard | (~tcard@p696070-ipngn8501hodogaya.kanagawa.ocn.ne.jp) |
2022-09-30 09:44:20 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-09-30 09:46:17 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 09:47:42 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 09:49:51 +0200 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-09-30 09:51:31 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 248 seconds) |
2022-09-30 09:52:03 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 248 seconds) |
2022-09-30 09:52:18 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-09-30 09:53:04 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2022-09-30 09:56:10 +0200 | waldo | (~waldo@user/waldo) |
2022-09-30 09:57:29 +0200 | kenran | (~user@user/kenran) |
2022-09-30 09:58:02 +0200 | akegalj | (~akegalj@93-139-186-42.adsl.net.t-com.hr) |
2022-09-30 09:58:34 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-09-30 10:00:22 +0200 | k8yun | (~k8yun@user/k8yun) (Quit: Leaving) |
2022-09-30 10:03:37 +0200 | razetime | (~quassel@117.254.35.71) (Ping timeout: 252 seconds) |
2022-09-30 10:08:10 +0200 | titibandit | (~titibandi@xdsl-212-8-150-57.nc.de) |
2022-09-30 10:08:21 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2022-09-30 10:09:45 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2022-09-30 10:11:12 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 10:15:37 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds) |
2022-09-30 10:16:19 +0200 | <kenran> | okay, another day, another (last) try to manhandle the named pipes problem I had yesterday :D I could just go the domain socket route instead, but I _need_ to know whether I'm just making mistakes or there could really be an OS bug involved somewhere. |
2022-09-30 10:16:44 +0200 | <[exa]> | kenran: what's the issue? |
2022-09-30 10:17:37 +0200 | <[exa]> | btw y u no domain sockets? |
2022-09-30 10:20:57 +0200 | razetime | (~quassel@117.254.35.71) |
2022-09-30 10:28:49 +0200 | <probie> | kenran: how are you reading from the named pipes? Off memory things like Data.ByteString.readFile don't work |
2022-09-30 10:29:22 +0200 | hsw__ | (~hsw@112-104-87-196.adsl.dynamic.seed.net.tw) (Quit: Leaving) |
2022-09-30 10:29:37 +0200 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
2022-09-30 10:32:10 +0200 | <dr_merijn> | probie: Well, it does, just, like, probably not what you'd expect if you don't know what's happening underneath :p |
2022-09-30 10:34:13 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-09-30 10:34:55 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-09-30 10:34:59 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Remote host closed the connection) |
2022-09-30 10:35:24 +0200 | kenran | (~user@user/kenran) |
2022-09-30 10:35:53 +0200 | kuribas | (~user@ptr-17d51emgkkoi3ymbxyx.18120a2.ip6.access.telenet.be) |
2022-09-30 10:44:21 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 10:46:13 +0200 | mixfix41 | (~sdeny9ee@user/mixfix41) (Ping timeout: 265 seconds) |
2022-09-30 10:46:38 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-09-30 10:48:20 +0200 | califax | (~califax@user/califx) |
2022-09-30 10:52:02 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-09-30 10:52:56 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 10:57:24 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 264 seconds) |
2022-09-30 10:57:24 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds) |
2022-09-30 10:58:47 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-09-30 11:00:15 +0200 | steve[m]1 | (~stevetrou@2001:470:69fc:105::e0b) (Quit: You have been kicked for being idle) |
2022-09-30 11:14:11 +0200 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-09-30 11:22:05 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-09-30 11:23:02 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-09-30 11:25:21 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2022-09-30 11:26:45 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2022-09-30 11:27:58 +0200 | wonko | (~wjc@2a0e:1c80:11::50) |
2022-09-30 11:28:13 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 11:31:36 +0200 | razetime | (~quassel@117.254.35.71) (Ping timeout: 260 seconds) |
2022-09-30 11:31:42 +0200 | razetime_ | (~quassel@117.254.35.71) |
2022-09-30 11:32:38 +0200 | CiaoSen | (~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-09-30 11:35:28 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) |
2022-09-30 11:37:34 +0200 | wonko | (~wjc@2a0e:1c80:11::50) (Ping timeout: 246 seconds) |
2022-09-30 11:39:00 +0200 | wonko | (~wjc@2a0e:1c80:11::50) |
2022-09-30 11:39:59 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 244 seconds) |
2022-09-30 11:46:28 +0200 | wonko | (~wjc@2a0e:1c80:11::50) (Changing host) |
2022-09-30 11:46:28 +0200 | wonko | (~wjc@user/wonko) |
2022-09-30 11:46:38 +0200 | nschoe | (~quassel@141.101.51.197) (Ping timeout: 265 seconds) |
2022-09-30 11:52:23 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 244 seconds) |
2022-09-30 11:59:31 +0200 | wonko | (~wjc@user/wonko) (Ping timeout: 248 seconds) |
2022-09-30 11:59:54 +0200 | wonko | (~wjc@2a0e:1c80:11::50) |
2022-09-30 12:00:02 +0200 | acidjnk | (~acidjnk@p200300d6e7137a8424c1978e90463b18.dip0.t-ipconnect.de) |
2022-09-30 12:00:29 +0200 | waldo | (~waldo@user/waldo) (Ping timeout: 250 seconds) |
2022-09-30 12:01:09 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 12:01:40 +0200 | acidjnk_new | (~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-09-30 12:01:41 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Quit: WeeChat 3.6) |
2022-09-30 12:02:06 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 265 seconds) |
2022-09-30 12:02:40 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2022-09-30 12:03:34 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) |
2022-09-30 12:05:59 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
2022-09-30 12:06:36 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds) |
2022-09-30 12:10:07 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2022-09-30 12:12:30 +0200 | luffy | (~chenqisu1@183.217.201.220) |
2022-09-30 12:13:38 +0200 | __monty__ | (~toonn@user/toonn) |
2022-09-30 12:26:05 +0200 | DavidBinder | (~DavidBind@134.2.10.18) |
2022-09-30 12:27:44 +0200 | waldo | (~waldo@user/waldo) |
2022-09-30 12:28:51 +0200 | CiaoSen | (~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2022-09-30 12:30:50 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 12:33:10 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-09-30 12:33:13 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 246 seconds) |
2022-09-30 12:34:00 +0200 | luffy | (~chenqisu1@183.217.201.220) (Ping timeout: 265 seconds) |
2022-09-30 12:35:12 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds) |
2022-09-30 12:35:23 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-09-30 12:36:54 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 258 seconds) |
2022-09-30 12:37:52 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 244 seconds) |
2022-09-30 12:42:21 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-09-30 12:42:46 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 12:43:41 +0200 | <dminuoso> | Given an UDP protocol where a single protocol data unit will never exceed a single UDP segment, is there any real benefit to using `binary` over just a handwritten Get/Put that work on a static single bytestring? |
2022-09-30 12:44:58 +0200 | CiaoSen | (~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-09-30 12:45:04 +0200 | <dminuoso> | The more I think about it, the only reason for its existence is to work with lazy bytestrings |
2022-09-30 12:45:25 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 12:45:34 +0200 | gmg | (~user@user/gehmehgeh) |
2022-09-30 12:48:38 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 12:49:40 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds) |
2022-09-30 12:53:10 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 246 seconds) |
2022-09-30 12:57:15 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 12:59:12 +0200 | wonko | (~wjc@2a0e:1c80:11::50) (Ping timeout: 264 seconds) |
2022-09-30 13:01:37 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 244 seconds) |
2022-09-30 13:02:02 +0200 | Midjak | (~Midjak@82.66.147.146) (Ping timeout: 265 seconds) |
2022-09-30 13:02:30 +0200 | Pickchea | (~private@user/pickchea) |
2022-09-30 13:04:34 +0200 | xff0x | (~xff0x@2405:6580:b080:900:b7c1:3130:710b:2a7f) |
2022-09-30 13:04:58 +0200 | waleee | (~waleee@192.165.44.49) |
2022-09-30 13:09:10 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-09-30 13:09:59 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2022-09-30 13:10:20 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 13:14:33 +0200 | talismanick | (~talismani@2601:200:c100:c9e0::24ac) (Ping timeout: 244 seconds) |
2022-09-30 13:14:58 +0200 | <jackdk> | I don't like `binary` because it has some dicey instances for Double: https://github.com/kolmodin/binary/issues/69 |
2022-09-30 13:15:06 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 13:15:45 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2022-09-30 13:17:19 +0200 | mncheck | (~mncheck@193.224.205.254) (Write error: Connection reset by peer) |
2022-09-30 13:17:57 +0200 | <dr_merijn> | binary the package is great |
2022-09-30 13:18:01 +0200 | <dr_merijn> | Binary the class is trash |
2022-09-30 13:18:25 +0200 | <dr_merijn> | You should never use the Binary class for anything but throwaway prototypes and even *then* |
2022-09-30 13:19:12 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 13:19:34 +0200 | <dminuoso> | Fair, I think Ill roll my own eventually though. There's just nothing in `binary` I care about, its just an extra dependency. |
2022-09-30 13:19:44 +0200 | <dr_merijn> | The Binary class introduces it's own (non-futureproof) custom padding/tagging scheme which means you can't use it for data you intend to parse outside Haskell anyway, and for data parsed by Haskell it's bad if you ever intend to read old data |
2022-09-30 13:19:56 +0200 | <dr_merijn> | You should always just use explicit Get/Put |
2022-09-30 13:20:08 +0200 | <dr_merijn> | (for stuff you care about, anyway) |
2022-09-30 13:20:09 +0200 | <dminuoso> | Sure, I mean Im using non-classes with it right now |
2022-09-30 13:20:57 +0200 | <dr_merijn> | dminuoso: That was mostly wrt to jackdk's comments |
2022-09-30 13:20:57 +0200 | <dminuoso> | Unrelatedly, for a datatype of unary constructors, is there a way to get the boxed value out as a Dynamic? |
2022-09-30 13:21:01 +0200 | <dminuoso> | dr_merijn: Ah fair enough. |
2022-09-30 13:21:18 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Remote host closed the connection) |
2022-09-30 13:21:32 +0200 | <dr_merijn> | The Double issues are only for the Binary class, getDoublebe etc. all just do "what you'd expect" |
2022-09-30 13:21:40 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 13:22:33 +0200 | <dminuoso> | Given that Im doing protocol decoding, Im checking their internal behavior irrespetive of my expectations. :P |
2022-09-30 13:23:37 +0200 | <dr_merijn> | dminuoso: getDouble/getFloat just use the standard 4/8 byte IEEE-754 encoding |
2022-09-30 13:23:46 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-09-30 13:23:50 +0200 | <dr_merijn> | Which is the obvious sensible thing to do |
2022-09-30 13:24:20 +0200 | <dminuoso> | yeah I read the bug report, its a bit weird |
2022-09-30 13:25:17 +0200 | <dminuoso> | Speaking of things that are annoying and wrong, these belong right in there: |
2022-09-30 13:25:22 +0200 | <dminuoso> | attoparsec: decimal :: Integral a => Parser a |
2022-09-30 13:25:29 +0200 | <dminuoso> | megaparsec: decimal :: forall e s m a . (MonadParsec e s m, Token s ~ Word8, Num a) => m a |
2022-09-30 13:26:16 +0200 | <dminuoso> | These should in addition deserve a Bounded constraint. |
2022-09-30 13:26:31 +0200 | acidjnk | (~acidjnk@p200300d6e7137a8424c1978e90463b18.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-09-30 13:27:22 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-09-30 13:29:34 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 13:33:36 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 13:38:17 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 13:40:06 +0200 | ft | (~ft@p3e9bc57b.dip0.t-ipconnect.de) |
2022-09-30 13:43:58 +0200 | lyle | (~lyle@104.246.145.85) |
2022-09-30 13:44:08 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-09-30 13:46:58 +0200 | acidjnk | (~acidjnk@p200300d6e7137a84917195bd27e414df.dip0.t-ipconnect.de) |
2022-09-30 13:49:19 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
2022-09-30 13:51:30 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2022-09-30 13:53:02 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 13:56:21 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 13:58:36 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 264 seconds) |
2022-09-30 14:00:14 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 14:01:50 +0200 | notzmv | (~zmv@user/notzmv) |
2022-09-30 14:01:59 +0200 | faultline | (~christian@200116b82b18a100216c022468c65178.dip.versatel-1u1.de) |
2022-09-30 14:03:24 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 264 seconds) |
2022-09-30 14:05:01 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds) |
2022-09-30 14:06:00 +0200 | faultline | (~christian@200116b82b18a100216c022468c65178.dip.versatel-1u1.de) (Remote host closed the connection) |
2022-09-30 14:10:18 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-09-30 14:11:52 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 14:13:34 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2022-09-30 14:17:53 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-09-30 14:19:57 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-09-30 14:20:08 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 14:24:41 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 14:29:02 +0200 | <dr_merijn> | Athas: Doing the lord's work with that XDG support, so I don't have to but can still make my config portable across environments :> |
2022-09-30 14:32:12 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds) |
2022-09-30 14:35:41 +0200 | yvan-sraka | (~yvan-srak@37.173.255.198) |
2022-09-30 14:37:09 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 252 seconds) |
2022-09-30 14:37:19 +0200 | wonko | (~wjc@2a0e:1c80:11::50) |
2022-09-30 14:39:39 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 14:40:01 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2022-09-30 14:41:34 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-09-30 14:42:15 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
2022-09-30 14:43:15 +0200 | wonko | (~wjc@2a0e:1c80:11::50) (Ping timeout: 268 seconds) |
2022-09-30 14:43:42 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 14:43:46 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds) |
2022-09-30 14:49:10 +0200 | Cerins | (~Cerins@balticom-142-106-43.balticom.lv) |
2022-09-30 14:51:04 +0200 | gmg | (~user@user/gehmehgeh) (Ping timeout: 258 seconds) |
2022-09-30 14:52:13 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-09-30 14:53:23 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-09-30 14:53:44 +0200 | gmg | (~user@user/gehmehgeh) |
2022-09-30 14:54:39 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 14:55:10 +0200 | yvan-sraka | (~yvan-srak@37.173.255.198) (Ping timeout: 252 seconds) |
2022-09-30 15:00:27 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 15:02:03 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 250 seconds) |
2022-09-30 15:02:38 +0200 | joeyh | (~joeyh@kitenet.net) |
2022-09-30 15:07:10 +0200 | califax | (~califax@user/califx) (Read error: Connection reset by peer) |
2022-09-30 15:07:10 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-09-30 15:07:10 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-09-30 15:07:35 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 15:08:19 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 15:09:26 +0200 | califax | (~califax@user/califx) |
2022-09-30 15:09:44 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) |
2022-09-30 15:10:43 +0200 | gmg | (~user@user/gehmehgeh) |
2022-09-30 15:14:09 +0200 | Sose | (~sose@mobile-access-567367-206.dhcp.inet.fi) (Client Quit) |
2022-09-30 15:14:27 +0200 | califax | (~califax@user/califx) (Ping timeout: 258 seconds) |
2022-09-30 15:14:30 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 15:16:24 +0200 | expipiplus1 | (~expipiplu@2001:470:69fc:105::d713) |
2022-09-30 15:17:32 +0200 | califax | (~califax@user/califx) |
2022-09-30 15:18:34 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 15:18:57 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 15:23:23 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 268 seconds) |
2022-09-30 15:25:34 +0200 | akegalj | (~akegalj@93-139-186-42.adsl.net.t-com.hr) (Quit: leaving) |
2022-09-30 15:28:59 +0200 | zebrag | (~chris@user/zebrag) |
2022-09-30 15:29:07 +0200 | kuribas | (~user@ptr-17d51emgkkoi3ymbxyx.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2022-09-30 15:29:23 +0200 | yvan-sraka | (~yvan-srak@37.173.255.198) |
2022-09-30 15:31:38 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-09-30 15:32:48 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-09-30 15:33:32 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-09-30 15:36:14 +0200 | razetime_ | (~quassel@117.254.35.71) (Ping timeout: 265 seconds) |
2022-09-30 15:36:36 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:255f:4d0:bef0:41ba) (Quit: WeeChat 2.8) |
2022-09-30 15:39:11 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) |
2022-09-30 15:41:42 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 15:43:37 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) (Ping timeout: 246 seconds) |
2022-09-30 15:44:21 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
2022-09-30 15:47:02 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 15:50:25 +0200 | razetime | (~quassel@117.254.35.71) |
2022-09-30 15:50:36 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 260 seconds) |
2022-09-30 15:54:22 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-09-30 15:54:22 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-09-30 15:54:22 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-09-30 15:59:56 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 16:00:42 +0200 | xd1le | (~xd1le@user/xd1le) |
2022-09-30 16:01:10 +0200 | ellensol | (~ellen@ua-84-216-129-63.bbcust.telenor.se) |
2022-09-30 16:01:38 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.6) |
2022-09-30 16:02:13 +0200 | xd1le | (~xd1le@user/xd1le) () |
2022-09-30 16:02:40 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 16:04:00 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 244 seconds) |
2022-09-30 16:04:18 +0200 | ellensol | (~ellen@ua-84-216-129-63.bbcust.telenor.se) (Read error: Connection reset by peer) |
2022-09-30 16:06:21 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 16:06:35 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
2022-09-30 16:06:41 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-09-30 16:07:12 +0200 | <ozkutuk> | Is there any tutorial/guide on how to use SYB? I could only find this 2003 paper, but I don't if it's even relevant anymore |
2022-09-30 16:07:40 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-09-30 16:07:47 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-09-30 16:07:56 +0200 | yvan-sraka | (~yvan-srak@37.173.255.198) (Remote host closed the connection) |
2022-09-30 16:10:21 +0200 | <davean> | ozkutuk: A paper is the expression of the idea. If its not relevant anymore than SYB isn't relevant anymore. |
2022-09-30 16:11:02 +0200 | califax | (~califax@user/califx) |
2022-09-30 16:11:24 +0200 | <davean> | That doesn't mean the code in the paper ever matches the code in the package, because papers try to focus on the core of the idea, not the details of a particular implimentation |
2022-09-30 16:11:34 +0200 | <davean> | Those details fall inside the realm of just programming though. |
2022-09-30 16:15:45 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-09-30 16:18:13 +0200 | <ChaiTRex> | Does anyone know what terminal line editing library GHCi uses for letting people edit while composing a line to be evaluated? |
2022-09-30 16:18:25 +0200 | <ozkutuk> | davean: Well, yes, I certainly do find papers valuable in that regard. It is just that I am looking for a more "practical" material, for the lack of a better term |
2022-09-30 16:18:55 +0200 | califax | (~califax@user/califx) |
2022-09-30 16:19:00 +0200 | <davean> | The paper should allow you to produce your own implimentation, if you can produce your own implimentation using an existing one should be trivial. |
2022-09-30 16:19:42 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 16:19:49 +0200 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-09-30 16:19:52 +0200 | <dr_merijn> | ChaiTRex: ghci uses haskeline |
2022-09-30 16:19:53 +0200 | gustik | (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) |
2022-09-30 16:20:08 +0200 | <dr_merijn> | @hackage haskeline |
2022-09-30 16:20:09 +0200 | <lambdabot> | https://hackage.haskell.org/package/haskeline |
2022-09-30 16:20:21 +0200 | <ChaiTRex> | dr_merijn: Thanks. |
2022-09-30 16:20:41 +0200 | <dr_merijn> | ChaiTRex: It's pretty easy to use, I managed to implemented something with interactive database-based auto completion |
2022-09-30 16:20:44 +0200 | <dr_merijn> | Pretty neat |
2022-09-30 16:23:04 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 16:24:14 +0200 | <ozkutuk> | davean: Right. Either way reading the paper is probably a good idea, I think I'll do that. Thanks |
2022-09-30 16:24:29 +0200 | <ChaiTRex> | dr_merijn: I found that using ANSI escape sequences messed up the line editor's idea of where the cursor was on the screen relative to the characters it inserted. Searched GitHub and found that it needs \STX after each ANSI sequence. |
2022-09-30 16:25:37 +0200 | <geekosaur> | are you on an M1/M2 Mac by any chance? |
2022-09-30 16:27:17 +0200 | <EvanR> | haskell line has 3 l's and haskeline lost two of them? |
2022-09-30 16:27:28 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 265 seconds) |
2022-09-30 16:27:54 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 16:28:15 +0200 | <ChaiTRex> | geekosaur: If you mean me, no, I'm on Ubuntu. |
2022-09-30 16:29:02 +0200 | <geekosaur> | interesting. haskeline has generally worked for me on various platforms, but has a bug in M1/M2 macs because of a mis-declared FFI call |
2022-09-30 16:29:23 +0200 | <geekosaur> | whoch leads among other things to corrupted lines |
2022-09-30 16:31:27 +0200 | Guest60 | (~Guest60@2400:1a00:b011:ad4b:5555:45e3:e613:a20f) |
2022-09-30 16:31:33 +0200 | <ChaiTRex> | This was due to haskeline's claim that it can't detect the end of ANSI escape sequences (presumably it would be a lot of work to include all of the details), and so \STX is used as the indication that one just ended. My colorful GHCi prompt finally works. |
2022-09-30 16:32:21 +0200 | <ChaiTRex> | https://github.com/judah/haskeline/wiki/ControlSequencesInPrompt |
2022-09-30 16:33:17 +0200 | <geekosaur> | oh, that kind of problem, not general issues |
2022-09-30 16:33:24 +0200 | <geekosaur> | that makes more sense |
2022-09-30 16:33:46 +0200 | <geekosaur> | although I'd expect it to be able to detect escape sequences reliably, ANSI sequences are very structured |
2022-09-30 16:34:13 +0200 | <geekosaur> | (when I started out I worked with a lot of pre-ANSI terminals, those sucked a lot) |
2022-09-30 16:34:55 +0200 | <Guest60> | Hi all, is it possible to create list from my algebraic data types? |
2022-09-30 16:34:56 +0200 | <Guest60> | Example: |
2022-09-30 16:34:57 +0200 | <Guest60> | data MakeMeAList = One | Two | Three | Four | Five |
2022-09-30 16:34:57 +0200 | <Guest60> | listMaker :: [MakeMeAList] |
2022-09-30 16:34:58 +0200 | <Guest60> | listMaker = |
2022-09-30 16:34:58 +0200 | <Guest60> | -- ???? |
2022-09-30 16:36:14 +0200 | <geekosaur> | derive Enum and Bounded and use [minBound .. maxBound] |
2022-09-30 16:36:15 +0200 | xstill_ | (xstill@fimu/xstill) (Quit: Ping timeout (120 seconds)) |
2022-09-30 16:36:20 +0200 | <ChaiTRex> | Guest60: Yes, you can just write something like `[One, Two, Five, Three]`. |
2022-09-30 16:36:52 +0200 | <geekosaur> | @let data MakeMeAList = One | Two | Three | Four | Five deriving (Enum, Bounded) |
2022-09-30 16:36:54 +0200 | <lambdabot> | Defined. |
2022-09-30 16:37:10 +0200 | CiaoSen | (~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2022-09-30 16:37:15 +0200 | <geekosaur> | > [minBound .. maxBound :: MakeMeAList] |
2022-09-30 16:37:16 +0200 | <lambdabot> | error: |
2022-09-30 16:37:16 +0200 | <lambdabot> | • No instance for (Show MakeMeAList) |
2022-09-30 16:37:16 +0200 | <lambdabot> | arising from a use of ‘show_M71299666854855747388’ |
2022-09-30 16:37:25 +0200 | <geekosaur> | @let data MakeMeAList = One | Two | Three | Four | Five deriving (Enum, Bounded, Show) |
2022-09-30 16:37:26 +0200 | <lambdabot> | /sandbox/tmp/.L.hs:202:1: error: |
2022-09-30 16:37:26 +0200 | <lambdabot> | Multiple declarations of ‘MakeMeAList’ |
2022-09-30 16:37:26 +0200 | <lambdabot> | Declared at: /sandbox/tmp/.L.hs:195:1 |
2022-09-30 16:37:30 +0200 | <geekosaur> | @undefine |
2022-09-30 16:37:30 +0200 | <lambdabot> | Undefined. |
2022-09-30 16:37:33 +0200 | <geekosaur> | @let data MakeMeAList = One | Two | Three | Four | Five deriving (Enum, Bounded, Show) |
2022-09-30 16:37:34 +0200 | <lambdabot> | Defined. |
2022-09-30 16:37:36 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 265 seconds) |
2022-09-30 16:37:37 +0200 | <geekosaur> | > [minBound .. maxBound :: MakeMeAList] |
2022-09-30 16:37:39 +0200 | <lambdabot> | [One,Two,Three,Four,Five] |
2022-09-30 16:37:52 +0200 | xstill_ | (xstill@fimu/xstill) |
2022-09-30 16:38:20 +0200 | <EvanR> | \o/ |
2022-09-30 16:39:22 +0200 | <Guest60> | ChaiTRex if do that then, i'll have to update my list maker everytime i update `MakeMeAList` which im trying to avoid. |
2022-09-30 16:39:40 +0200 | <ChaiTRex> | What is the function supposed to return? |
2022-09-30 16:39:58 +0200 | <Guest60> | geekosaur thanks a lot, it helped |
2022-09-30 16:40:31 +0200 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2022-09-30 16:40:42 +0200 | <Guest60> | ChaiTRex i want it to return list of `MakeMeAList`, eg `listMaker :: [MakeMeAList]` |
2022-09-30 16:41:17 +0200 | <geekosaur> | "list of" doesn't actually help much. "a list of all" would be what I did, but "list if" covers a lot of possibilities |
2022-09-30 16:42:30 +0200 | FragByte | (~christian@user/fragbyte) |
2022-09-30 16:43:53 +0200 | waleee | (~waleee@192.165.44.49) (Ping timeout: 265 seconds) |
2022-09-30 16:44:52 +0200 | <Guest60> | Forgive my wrong usage of terms, im coming from imperative world and getting my feet wet in haskell for the first time. |
2022-09-30 16:44:53 +0200 | <Guest60> | Yes list of all elements of `MakeMeAList` type. geekosaur |
2022-09-30 16:46:16 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-09-30 16:46:28 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-09-30 16:46:46 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-09-30 16:46:59 +0200 | <EvanR> | to a first approximation, data types are nouns while functions are verbs. Since classes tend to be NounVerbers it can be tough to disentangle. But these all have counterexamples, YMMV |
2022-09-30 16:47:38 +0200 | <ski> | (fwiw, functional vs. imperative doesn't factor into that. people in imperative world would have just as much trouble trying to figure out which elements you wanted in your list) |
2022-09-30 16:48:10 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-09-30 16:48:43 +0200 | <geekosaur> | right, it was just an unclear question. I assumed froim the `MakeMeAList` that you wanted a list of all values, but could easily have been wrong |
2022-09-30 16:51:25 +0200 | <EvanR> | data NumbersFive = One | Two | Three | Four | Five deriving (Enum, Bounded, Show) |
2022-09-30 16:51:47 +0200 | <ski> | various different approaches to (or info on) generic programming (in rough order of appearance, iirc) : |
2022-09-30 16:51:53 +0200 | <ski> | Patrik Jansson's page : <https://www.cse.chalmers.se/~patrikj/poly/> |
2022-09-30 16:51:59 +0200 | <ski> | Scrap Your Boilerplate (SYB) : <https://hackage.haskell.org/package/syb>,<https://wiki.haskell.org/Scrap_your_boilerplate>,<https://wiki.haskell.org/Applications_and_libraries/Generic_programming/SyB> |
2022-09-30 16:52:09 +0200 | <ski> | `GHC.Generics' : <https://wiki.haskell.org/GHC.Generics>,<https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/generics.html> |
2022-09-30 16:52:15 +0200 | <ski> | Compositional Data Types (compdata) : <https://hackage.haskell.org/package/compdata> |
2022-09-30 16:52:22 +0200 | <ski> | Compos (almost compositional functions over recursive data types) : <https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.233.3357> |
2022-09-30 16:52:35 +0200 | <ski> | Uniplate : |
2022-09-30 16:52:35 +0200 | <ski> | <https://hackage.haskell.org/package/uniplate>,<https://wiki.haskell.org/Uniplate>,<https://web.archive.org/web/20180702150456/http://community.haskell.org/~ndm/uniplate/>,<https://www.cs.york.ac.uk/fp/darcs/uniplate/uniplate.htm>,<https://www.cs.york.ac.uk/fp/haddock/uniplate/>,<http://neilmitchell.blogspot.com/2007/06/boilerplate-considered-harmful-uniplate.html>,<https://ndmitchell.com/>,<https://hackage.h |
2022-09-30 16:52:41 +0200 | <ski> | askell.org/package/lens-4.15.4/docs/Control-Lens-Plated.html> |
2022-09-30 16:52:42 +0200 | <ski> | ozkutuk ^ |
2022-09-30 16:52:45 +0200 | <ski> | Multiplate : <https://hackage.haskell.org/package/multiplate>,<https://wiki.haskell.org/Multiplate> |
2022-09-30 16:53:03 +0200 | <ski> | (hm, maybe `GHC.Generics' was a bit later ..) |
2022-09-30 16:55:03 +0200 | <EvanR> | makeMeAllList = [minBound .. maxBound] but since this isn't actually a function could just be called |
2022-09-30 16:55:10 +0200 | <EvanR> | allTheThings = [minBound .. maxBound] |
2022-09-30 16:55:37 +0200 | <ski> | (sometimes called `universe' or `finiteUniverse', i think) |
2022-09-30 16:56:12 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-09-30 16:59:15 +0200 | <EvanR> | I guess the haskell equivalent of a noun verber is a module |
2022-09-30 16:59:45 +0200 | <EvanR> | or maybe a thread |
2022-09-30 17:00:21 +0200 | <davean> | I've lost the analogy |
2022-09-30 17:00:53 +0200 | <EvanR> | anti analogy of what tense to use for naming things |
2022-09-30 17:00:56 +0200 | <davean> | I mean a datatype is a calculation? |
2022-09-30 17:01:10 +0200 | <davean> | unless by verb you mean externally visible actions? |
2022-09-30 17:01:20 +0200 | <davean> | I'm so lost |
2022-09-30 17:01:21 +0200 | <EvanR> | grammar |
2022-09-30 17:01:29 +0200 | <EvanR> | MakeMeAList |
2022-09-30 17:01:46 +0200 | <EvanR> | seems especially odd |
2022-09-30 17:01:48 +0200 | <davean> | type MakeMeAList a = [a] |
2022-09-30 17:02:05 +0200 | <EvanR> | it's just a style question, obviously you could put anything |
2022-09-30 17:02:20 +0200 | <EvanR> | oh yeah, a data type can be a type function lol |
2022-09-30 17:02:47 +0200 | <davean> | Sorta, if you want it to actually match a function would have to leave a space in the grammar for a parameter to say which list to make |
2022-09-30 17:03:02 +0200 | <davean> | and the reference to the list is the actual MakeMeAList unqualified |
2022-09-30 17:03:14 +0200 | <davean> | hence it sorta having to be data type? But thats an action its self. |
2022-09-30 17:03:28 +0200 | <davean> | you can setup making the list or make the list |
2022-09-30 17:03:28 +0200 | <EvanR> | well they just wanted to an actual list |
2022-09-30 17:03:34 +0200 | <EvanR> | not a type |
2022-09-30 17:03:55 +0200 | <davean> | Sure, its just that ... well, at the end of the day thats a calculation too? |
2022-09-30 17:04:09 +0200 | <Guest60> | yeah, english is not my first language :) |
2022-09-30 17:04:47 +0200 | <EvanR> | in some metaphysics somewhere I'm sure a rock sitting inanimate on the desert floor is a calculation |
2022-09-30 17:04:47 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) |
2022-09-30 17:06:47 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-09-30 17:06:50 +0200 | <EvanR> | calculus originally "pebble used as a reckoning counter" (rockoning?) I've gone down a rabbit hole now |
2022-09-30 17:12:16 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-09-30 17:12:46 +0200 | mrianbloom | (uid350277@id-350277.ilkley.irccloud.com) |
2022-09-30 17:12:52 +0200 | ellensol | (~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 260 seconds) |
2022-09-30 17:13:01 +0200 | <mrianbloom> | If the incoherent instances extension is deprecated, what replaced it? |
2022-09-30 17:13:51 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-09-30 17:14:10 +0200 | <mrianbloom> | Or can you just use the pragmas without any extension enabled? |
2022-09-30 17:14:48 +0200 | <ski> | wasn't Demosthenes (rhetorician) said to have put pebbles in his mouth, while standing by the sea, trying to talk louder than it, in order to improve upon his stuttering and general bad talking skills ? |
2022-09-30 17:15:39 +0200 | <geekosaur> | the extension wasn't granular enough so you just use the pragmas instead |
2022-09-30 17:15:45 +0200 | <geekosaur> | they're not controlled by the extension |
2022-09-30 17:16:08 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-09-30 17:16:27 +0200 | <mrianbloom> | I see. And in general do you just make your most general instance {-# INCOHERENT #-}? |
2022-09-30 17:16:27 +0200 | <geekosaur> | (pragmas are by definition extensions) |
2022-09-30 17:16:50 +0200 | shapr | (~user@68.54.166.125) |
2022-09-30 17:17:18 +0200 | <geekosaur> | that I wouldn't tell you; I generally try to avoid needing those pragmas in the first place |
2022-09-30 17:17:37 +0200 | <c_wraith> | No. why would I do that to myself? Incoherent instances are well named. They make your program incoherent. |
2022-09-30 17:17:53 +0200 | <ski> | <https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/instances.html#instance-overlap> doesn't seem to have an incoherent pragma example (nor <https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/pragmas.html#overlapping-overlappab…>) |
2022-09-30 17:18:07 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 17:20:00 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) |
2022-09-30 17:20:03 +0200 | <mrianbloom> | I see, I'm using Data.Comp.Multi so I think it's unavoidable if I want the other functionality. |
2022-09-30 17:22:36 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds) |
2022-09-30 17:26:40 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-09-30 17:27:09 +0200 | Guest60 | (~Guest60@2400:1a00:b011:ad4b:5555:45e3:e613:a20f) (Quit: Client closed) |
2022-09-30 17:34:33 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-09-30 17:35:35 +0200 | <davean> | mrianbloom: I have no clue about that myself, but why do you think that vs. overlapping or undecidable? |
2022-09-30 17:35:54 +0200 | <davean> | Why do you specificly think 2 could apply at the same time? |
2022-09-30 17:36:13 +0200 | <davean> | even when you can have a priority system to select between them |
2022-09-30 17:36:22 +0200 | <davean> | or what would prevent that priority system? |
2022-09-30 17:37:55 +0200 | califax | (~califax@user/califx) |
2022-09-30 17:45:01 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 17:47:39 +0200 | waldo | (~waldo@user/waldo) (Quit: quit) |
2022-09-30 17:48:10 +0200 | califax | (~califax@user/califx) (Ping timeout: 258 seconds) |
2022-09-30 17:51:31 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 17:52:19 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) (Remote host closed the connection) |
2022-09-30 17:53:09 +0200 | kenran | (~user@user/kenran) |
2022-09-30 17:59:11 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-09-30 18:00:06 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 18:01:04 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-09-30 18:05:18 +0200 | califax | (~califax@user/califx) |
2022-09-30 18:05:51 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) |
2022-09-30 18:06:10 +0200 | DavidBinder | (~DavidBind@134.2.10.18) (Quit: Leaving) |
2022-09-30 18:13:56 +0200 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving) |
2022-09-30 18:20:36 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) |
2022-09-30 18:21:11 +0200 | euandreh | (~euandreh@179.214.113.107) (Ping timeout: 252 seconds) |
2022-09-30 18:21:32 +0200 | dr_merijn | (~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2022-09-30 18:27:25 +0200 | Everything | (~Everythin@37.115.210.35) |
2022-09-30 18:34:10 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 18:36:18 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-09-30 18:37:35 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 18:38:29 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 244 seconds) |
2022-09-30 18:41:38 +0200 | waldo | (~waldo@user/waldo) |
2022-09-30 18:44:51 +0200 | <dminuoso> | Incoherent instances are, for the most part, rather horrible and not something the average user would ever enable. |
2022-09-30 18:45:32 +0200 | <dminuoso> | I'm sure there's some highly exotic place for them, but for mortal Haskellers enabling IncoherentInstances is not a good idea. |
2022-09-30 18:49:10 +0200 | MajorBiscuit | (~MajorBisc@c-001-026-007.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5) |
2022-09-30 18:50:22 +0200 | <davean> | dminuoso: well, there are restrictions on overlapping and if the incoherent instances produce the exact same computation you're fine |
2022-09-30 18:50:31 +0200 | <davean> | which can resolve some non-termiantion issues |
2022-09-30 18:50:38 +0200 | <davean> | I just don't know why mrianbloom would need them for that |
2022-09-30 18:51:52 +0200 | <c_wraith> | probably trying to write instances for "everything else", which is... generally a bad idea. Better to just require types to opt in to a default implementation. |
2022-09-30 18:52:07 +0200 | <dminuoso> | davean: If you are in a problem domain where you would need this, it's more than likely they wouldn't ask such a question. It seems more likely they are using it for lack of better knowledge. |
2022-09-30 18:53:41 +0200 | <davean> | dminuoso: that was my point |
2022-09-30 18:53:57 +0200 | <davean> | well they referenced something specific |
2022-09-30 18:54:19 +0200 | <davean> | it might be something in the domain that actually does need it. I have inclings on why that might be an "everything else" situation |
2022-09-30 18:54:32 +0200 | <dminuoso> | Unrelated question: Say I have a kind of box type full with unary type constructors (wrapping various types like Word8, Int8, Text). Is there a boilerplate-free mechanism to get the contained value out as a Dynamic? |
2022-09-30 18:55:46 +0200 | <c_wraith> | You could probably use like Data.Data |
2022-09-30 18:57:03 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 18:57:11 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) (Remote host closed the connection) |
2022-09-30 18:58:55 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-09-30 18:59:15 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 268 seconds) |
2022-09-30 18:59:19 +0200 | <c_wraith> | dminuoso: yeah, like.. head . gmapQ toDyn |
2022-09-30 18:59:33 +0200 | <c_wraith> | Or something safer than head |
2022-09-30 19:00:20 +0200 | razetime | (~quassel@117.254.35.71) (Remote host closed the connection) |
2022-09-30 19:00:31 +0200 | <c_wraith> | I guess `gmapQi 0 toDyn` is mildly safer |
2022-09-30 19:01:14 +0200 | <dminuoso> | c_wraith: Ah neat, exactly what I was looking for. Thanks. |
2022-09-30 19:01:27 +0200 | <c_wraith> | well. gmapQi isn't safer at all. :) |
2022-09-30 19:01:38 +0200 | <c_wraith> | it's just as unsafe, and the error message isn't even better! |
2022-09-30 19:01:47 +0200 | <dminuoso> | Yeah this is fine, I know how to case-of lists. :) |
2022-09-30 19:10:20 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
2022-09-30 19:11:09 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: Leaving) |
2022-09-30 19:17:33 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-09-30 19:17:48 +0200 | acidjnk | (~acidjnk@p200300d6e7137a84917195bd27e414df.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-09-30 19:20:03 +0200 | mmhat | (~mmh@p200300f1c7062359ee086bfffe095315.dip0.t-ipconnect.de) |
2022-09-30 19:20:15 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-09-30 19:20:39 +0200 | tmiller | (~tmiller@199.241.26.152) |
2022-09-30 19:24:45 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-09-30 19:31:17 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-09-30 19:31:21 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-09-30 19:31:40 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-09-30 19:31:59 +0200 | <hololeap> | I have a `Map k (OSet v)` and I want to do a breadth-first walk along the `v` contents. I was thinking using interleave from logict, but I don't know how to convert this into a `Logic v` |
2022-09-30 19:32:13 +0200 | <monochrom> | What is OSet? |
2022-09-30 19:32:39 +0200 | <hololeap> | ordered set. each value is unique but it preserves the order they were inserted |
2022-09-30 19:33:06 +0200 | <hololeap> | from ordered-containers |
2022-09-30 19:34:14 +0200 | <monochrom> | You can convert [v] to Logic v. |
2022-09-30 19:34:53 +0200 | <hololeap> | what's the standard way to do that? |
2022-09-30 19:35:18 +0200 | <hololeap> | is there anything better than `asum . fmap pure`? |
2022-09-30 19:36:14 +0200 | <monochrom> | logic (\op z -> foldr op z yourlist) |
2022-09-30 19:36:36 +0200 | <monochrom> | Although, I think it doesn't really mater. |
2022-09-30 19:37:04 +0200 | <hololeap> | I'm just a bit surprised that this isn't included as a helper function in logict. it almost seems intentional. |
2022-09-30 19:38:04 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
2022-09-30 19:39:19 +0200 | <monochrom> | msum pure, too >:) |
2022-09-30 19:39:34 +0200 | <monochrom> | err, mconcat pure ! |
2022-09-30 19:40:10 +0200 | euandreh | (~euandreh@179.214.113.107) |
2022-09-30 19:41:03 +0200 | <[Leary]> | hololeap: Note the haddocks for `type Logic`. |
2022-09-30 19:42:06 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2022-09-30 19:42:15 +0200 | <hololeap> | what about them |
2022-09-30 19:42:29 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-09-30 19:42:29 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-09-30 19:42:46 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 19:43:04 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-09-30 19:43:25 +0200 | <monochrom> | [Leary] is probably referring to "Technical perspective. Logic is a Boehm-Berarducci encoding of lists." etc. |
2022-09-30 19:43:49 +0200 | <monochrom> | which is how I derived logic (\op z -> foldr op z yourlist) |
2022-09-30 19:43:55 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 19:44:54 +0200 | <hololeap> | ok then why isn't there a `fromList :: [a] -> Logic a`. this seems like such an obvious thing, its omission seems intentional, like it breaks performance or something |
2022-09-30 19:45:11 +0200 | <monochrom> | The front-page example has "choose = foldr ((<|>) . pure) empty" so your idea of asum . fmap pure is as standard as everyone else :) |
2022-09-30 19:46:12 +0200 | <monochrom> | BTW Logic is also Foldable so I guess that answers your question :) |
2022-09-30 19:46:23 +0200 | <monochrom> | Err no, wrong direction! |
2022-09-30 19:46:25 +0200 | <[Leary]> | I suspect they just consider it too trivial for anyone who understands the representation. |
2022-09-30 19:47:36 +0200 | <monochrom> | I think you're 2nd-guessing too much why it wasn't included. |
2022-09-30 19:48:17 +0200 | <hololeap> | ok, fair enough. I just thought I would ask |
2022-09-30 19:48:30 +0200 | <monochrom> | Reality is always much more boring than deep technical considerations. The real reason is usually procrastination, laziness, lack of care. |
2022-09-30 19:49:41 +0200 | <[Leary]> | If it did break performance, I bet they'd go out of their way to write it, just so they could slap a big warning on it. |
2022-09-30 19:50:40 +0200 | <hololeap> | I have very little experience with this package, partly because I was confused how to actually use it in most cases |
2022-09-30 19:51:11 +0200 | <hololeap> | but I keep forgetting to look at a package's README in their source repo |
2022-09-30 19:51:53 +0200 | <monochrom> | The readme is also on the hackage page. I never read source repos. |
2022-09-30 19:52:05 +0200 | <monochrom> | Unpopular opinion: Never use the source, Luke. |
2022-09-30 19:52:59 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 19:53:11 +0200 | <hololeap> | oh, you're right. it is (in this case) but I've seen others that don't have it. also the generated haddocks I can read locally don't include it for some reason. |
2022-09-30 19:53:35 +0200 | <hololeap> | or at least I've seen it where the README on hackage and on github differ |
2022-09-30 19:54:02 +0200 | <hololeap> | possibly because of the one on github being updated more recently, IDK |
2022-09-30 19:54:04 +0200 | <monochrom> | Yeah local haddocks don't include the readme. Hackage does something extra for it. |
2022-09-30 19:54:13 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds) |
2022-09-30 19:54:28 +0200 | <hololeap> | ok, well thanks for the help |
2022-09-30 19:57:55 +0200 | <monochrom> | Is OSet Foldable? You may have as simple as foldMap pure my_oset |
2022-09-30 19:58:31 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds) |
2022-09-30 20:00:23 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-09-30 20:00:26 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Quit: leaving) |
2022-09-30 20:04:11 +0200 | nate3 | (~nate@98.45.169.16) |
2022-09-30 20:05:17 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) |
2022-09-30 20:08:31 +0200 | a6a45081-2b83 | (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) |
2022-09-30 20:08:45 +0200 | <a6a45081-2b83> | what's a better way to do this? https://bpa.st/AFBA |
2022-09-30 20:09:03 +0200 | <a6a45081-2b83> | defining data constructors with varying argument orders |
2022-09-30 20:09:24 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 264 seconds) |
2022-09-30 20:10:25 +0200 | <monochrom> | Offer fewer choices and resist feature creep. |
2022-09-30 20:12:09 +0200 | <geekosaur> | depends on how important preserving said order is |
2022-09-30 20:12:23 +0200 | <monochrom> | That's one extremal solution. The other extremal solution on the other side is: |
2022-09-30 20:12:26 +0200 | <ski> | why those exact permutations ? |
2022-09-30 20:12:50 +0200 | <davean> | This seems like a pattern thing |
2022-09-30 20:12:55 +0200 | <davean> | it also seems like a bad idea |
2022-09-30 20:12:58 +0200 | <ski> | (also, why `End' ? .. and why the redundant brackets ?) |
2022-09-30 20:13:30 +0200 | <tomsmeding> | ski: End because the data type is recursive |
2022-09-30 20:13:48 +0200 | <monochrom> | Resist type-level enforcement of order and uniqueness. Just use a term-level list to store a layout. Now you are also offering more choices and features! Because maybe there is nothing wrong in supporting a layout that repeats my name 100 times. |
2022-09-30 20:13:50 +0200 | <ski> | oh, right. missed that part |
2022-09-30 20:14:04 +0200 | <davean> | tomsmeding: Well its recursive in the sense that a list is, so one can also ask why that isn't factored out. |
2022-09-30 20:14:16 +0200 | <tomsmeding> | sure |
2022-09-30 20:14:35 +0200 | <davean> | I think this is a very odd question from every direction. |
2022-09-30 20:14:58 +0200 | <monochrom> | Oh it's recursive? Well then it already lets me repeat my name 100 times. So yeah just use a list. |
2022-09-30 20:15:17 +0200 | <monochrom> | A rose tree too if necessary. |
2022-09-30 20:16:01 +0200 | <monochrom> | Anyway extremal solutions are the best solutions, literally. :) |
2022-09-30 20:16:23 +0200 | <ski> | "extremal" ? |
2022-09-30 20:16:35 +0200 | <a6a45081-2b83> | Different layouts to find the one that works best with the search algorithm for efficiency due to ordering |
2022-09-30 20:16:44 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
2022-09-30 20:16:54 +0200 | <davean> | a6a45081-2b83: why is that part of the *datastructure* |
2022-09-30 20:16:59 +0200 | <davean> | its not data, its representation |
2022-09-30 20:17:07 +0200 | <davean> | Those are seperate things |
2022-09-30 20:17:22 +0200 | <a6a45081-2b83> | yup so can we switch/reorder data layout with ghc? |
2022-09-30 20:17:46 +0200 | <davean> | I feel you have some deep confusion at the base of this question |
2022-09-30 20:17:47 +0200 | <monochrom> | OK so what's wrong with [Header, Author, Date, Content, Author, Tags]? |
2022-09-30 20:18:18 +0200 | <davean> | I have no idea what though. I have no idea why you think the datastructure has anything to do with how it is presented to search engines |
2022-09-30 20:18:29 +0200 | <a6a45081-2b83> | after it's serialization there would be a cost associated with travelling the data structure based on layout |
2022-09-30 20:18:40 +0200 | <davean> | No there wouldn't? |
2022-09-30 20:18:52 +0200 | <monochrom> | Is that cost at the type level or at the term level? |
2022-09-30 20:19:03 +0200 | <davean> | Hell, having them all represented the same way is actually cheaper because its less conditionals |
2022-09-30 20:19:05 +0200 | <a6a45081-2b83> | if it's on heap using pointers then probably not |
2022-09-30 20:19:05 +0200 | <monochrom> | If the cost is at the term level then the layout is also at the term level. |
2022-09-30 20:19:14 +0200 | <a6a45081-2b83> | but if I serialized it it would be linear |
2022-09-30 20:19:24 +0200 | <monochrom> | So what's wrong with [Header, Author, Date, Content, Author, Tags] at the term level? |
2022-09-30 20:19:36 +0200 | <monochrom> | [Header, Author, Date, Content, Author, Tags] is also linear. |
2022-09-30 20:19:42 +0200 | <a6a45081-2b83> | hmm |
2022-09-30 20:19:43 +0200 | <monochrom> | It's literally a list. |
2022-09-30 20:20:24 +0200 | <monochrom> | I have never heard of type-level search or optimization algorithms BTW. |
2022-09-30 20:20:35 +0200 | talismanick | (~talismani@96-67-197-217-static.hfc.comcastbusiness.net) |
2022-09-30 20:21:09 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-09-30 20:21:12 +0200 | <a6a45081-2b83> | probably see https://research.cs.wisc.edu/multifacet/papers/pldi99_cache_layout_pdf.pdf |
2022-09-30 20:21:19 +0200 | <a6a45081-2b83> | or https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.6594&rep=rep1&type=pdf |
2022-09-30 20:21:21 +0200 | <davean> | "a6a45081-2b83 after it's serialization there would be a cost associated with travelling the data structure based on layout" so the only cost here is the conditionals and the non-deterministic parsing. That doesn't have anything to do with your data type, it has to do with your serialization function |
2022-09-30 20:21:29 +0200 | <monochrom> | And I'm sure there is a cost function that says repeating my name 100 times is optimal. |
2022-09-30 20:21:54 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-09-30 20:21:55 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-09-30 20:21:55 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-09-30 20:21:55 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Read error: Connection reset by peer) |
2022-09-30 20:22:38 +0200 | <davean> | a6a45081-2b83: ah, if you're trying to do memory optimal things, you're really off the track, you're going to need to know about GHC's representations and boxing and laziness |
2022-09-30 20:22:44 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 20:22:48 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-09-30 20:22:51 +0200 | <davean> | the ordering is the least of your concerns there. |
2022-09-30 20:22:57 +0200 | <monochrom> | I don't understand the relevance of the cache paper. |
2022-09-30 20:23:18 +0200 | <monochrom> | I mean relevance to blog layouts. |
2022-09-30 20:23:28 +0200 | <davean> | Oh CERTAINLY no relivent to blogs |
2022-09-30 20:23:50 +0200 | califax | (~califax@user/califx) |
2022-09-30 20:23:51 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 20:23:52 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-09-30 20:23:57 +0200 | <davean> | I do happen to know a lot about optimizing Haskell data definitions for cache optimality. |
2022-09-30 20:24:10 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-09-30 20:24:17 +0200 | <monochrom> | After you know GHC's representations you will conclude that you should give up on optimizing for cache. :) |
2022-09-30 20:24:38 +0200 | <davean> | Absolutely not. I've done a lot of cycle perfect Haskell programming :) |
2022-09-30 20:24:44 +0200 | <davean> | Its actually not that bad |
2022-09-30 20:24:54 +0200 | <davean> | We have some pretty good tools |
2022-09-30 20:25:05 +0200 | <davean> | Now, our levity polymorphism story ... |
2022-09-30 20:25:08 +0200 | <davean> | thats pretty shit. |
2022-09-30 20:25:44 +0200 | <davean> | but making isolated kernels that are optimal are actually really pretty easy to get close to right in Haskell and sometimes you can get them perfect |
2022-09-30 20:25:44 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 20:25:52 +0200 | <monochrom> | OK OK my sentence is tailor-made for a particular class of "you". |
2022-09-30 20:26:08 +0200 | <davean> | It just doesn't integrate well into other Haskell code, you need a translation boundary |
2022-09-30 20:26:53 +0200 | <davean> | If we had some type classes like Num polymorphic ... well of course there are reasons we don't. |
2022-09-30 20:27:07 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) |
2022-09-30 20:28:25 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-09-30 20:28:35 +0200 | biberu | (~biberu@user/biberu) |
2022-09-30 20:29:05 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 20:29:44 +0200 | <monochrom> | Do you allow GHC to use copying GC? Because the copy algorithm may or may not happen to preserve or ruin your carefully created layout. |
2022-09-30 20:30:30 +0200 | <monochrom> | perhaps s/layout/locality/ |
2022-09-30 20:31:18 +0200 | <EvanR> | I'm curious about these tools for optimizing cache performance of haskell code |
2022-09-30 20:31:23 +0200 | <davean> | locality is a different concern and I'd say alignment matters more. If you want to preseve locality you can arraize it and move it out of GC. |
2022-09-30 20:31:33 +0200 | <monochrom> | Although, I can be ignorant in thinking that cache locality is the only issue. |
2022-09-30 20:31:50 +0200 | <monochrom> | Ah alignment. |
2022-09-30 20:31:51 +0200 | <davean> | monochrom: well cache locality and memory locality aren't very related, except by alignment |
2022-09-30 20:32:13 +0200 | <monochrom> | OK does GHC's copying GCer ruin your alignment? :) |
2022-09-30 20:32:13 +0200 | <davean> | there IS associtivity but with 16 way associtive caches that can mostly be hand waved |
2022-09-30 20:32:18 +0200 | <davean> | monochrom: generally not! |
2022-09-30 20:32:25 +0200 | <int-e> | There's also the GHC.Compact stuff... which I'm only vaguely aware of. |
2022-09-30 20:32:36 +0200 | <davean> | int-e: yep, rather nice but inflexible. |
2022-09-30 20:32:45 +0200 | <davean> | What we don't have is general tools, we have a lot of very specific ones |
2022-09-30 20:33:35 +0200 | beteigeuze | (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) |
2022-09-30 20:34:38 +0200 | <davean> | Honestly thats always the case outside assembly |
2022-09-30 20:34:51 +0200 | a6a45081-2b83 | (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection) |
2022-09-30 20:34:52 +0200 | <dminuoso> | monochrom: Never use the source? Haskell is the wrong language for you then. |
2022-09-30 20:35:23 +0200 | <dminuoso> | I'd say being able to quickly understand undocumented things right via hyperlink on haddock is the only way to use a fair chunk of hackage. |
2022-09-30 20:35:40 +0200 | <monochrom> | Well the whole world is basically the wrong world for me. |
2022-09-30 20:35:41 +0200 | <dminuoso> | Hyperlinks named "Source" have to be my most visited ones. |
2022-09-30 20:35:48 +0200 | <davean> | monochrom: you are always such a downer |
2022-09-30 20:35:52 +0200 | <davean> | monochrom: what is with that? |
2022-09-30 20:36:02 +0200 | <monochrom> | I'm cynical! |
2022-09-30 20:36:11 +0200 | <davean> | I mean we figured that out. |
2022-09-30 20:36:55 +0200 | <dontdieych> | (this channel ,.. always working) |
2022-09-30 20:37:14 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-09-30 20:37:18 +0200 | <monochrom> | In practice I sometimes take a look at the source code, as you explained. |
2022-09-30 20:37:40 +0200 | sibnull[m] | (~sibnullma@2001:470:69fc:105::1:1291) |
2022-09-30 20:37:58 +0200 | <monochrom> | But that's a statement of the status quo that authors don't bother to write docs, not an endorsement. |
2022-09-30 20:38:10 +0200 | lys | (lys@id-194105.uxbridge.irccloud.com) |
2022-09-30 20:38:10 +0200 | <davean> | monochrom: my main alignment issues in haskell are inside of datastructures, and historically GHC didn't do anything subword so you just got way too much padding. |
2022-09-30 20:38:16 +0200 | <monochrom> | We are always pushing more authors to write better docs, no? |
2022-09-30 20:38:18 +0200 | <davean> | so sometimes you had to hand-pack things |
2022-09-30 20:38:39 +0200 | <davean> | now with the subword stuff I haven't had a deep dive yet but if it has changed that you can just pad |
2022-09-30 20:40:18 +0200 | <dontdieych> | My Haskell bottleneck https://en.m.wikibooks.org/wiki/Haskell/Understanding_monads/State |
2022-09-30 20:40:41 +0200 | <c_wraith> | state was a challenge for me at the start too |
2022-09-30 20:40:51 +0200 | <dontdieych> | stop at that point... |
2022-09-30 20:40:59 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-09-30 20:42:22 +0200 | <monochrom> | If you have a functional mind then you always reduce "I have state variables" to "I have a state transition function S -> S". |
2022-09-30 20:42:48 +0200 | <monochrom> | And then you add "but I also have an input and an output" so it's (X,S) -> (Y,S). |
2022-09-30 20:43:28 +0200 | <monochrom> | From there it is not so big a leap to accept that perhaps S->(Y,S) suffices because you can always slap on an X-> when necessary. |
2022-09-30 20:43:38 +0200 | <davean> | monochrom: so locality comes into play with prefetching and most CPUs will do indirect loop detection so walking over a pointer array is fine. I haven't worked on proccessors with more limited prefetching recently. |
2022-09-30 20:43:45 +0200 | dminuoso | is itching to make a funny remark about reverse state |
2022-09-30 20:44:18 +0200 | <dminuoso> | davean: their prefetchers havent really become much better. |
2022-09-30 20:44:25 +0200 | <EvanR> | if the type of a "normal" function that is stateless is A -> B, then you can add statefulness by doing (A,S) -> (B,S). Now the function can depend on state and change the state |
2022-09-30 20:44:31 +0200 | <dminuoso> | At least on Intel side. AMD I keep forgetting how to find the optimization manuals |
2022-09-30 20:44:53 +0200 | <davean> | dminuoso: right but its about more limited ones because desktop and server class CPUs have been much better than needed for quite a long time. |
2022-09-30 20:44:56 +0200 | <EvanR> | the State monad is just stringing together such functions so the output state is the state fed to the next input state |
2022-09-30 20:45:01 +0200 | <davean> | dminuoso: I don't know the story on like low end ARM phone CPUs. |
2022-09-30 20:45:15 +0200 | Everything | (~Everythin@37.115.210.35) () |
2022-09-30 20:45:17 +0200 | <davean> | dminuoso: CPU pretetchers actually have become a decent bit better though |
2022-09-30 20:45:35 +0200 | <davean> | Its that it only really matters for poorly optimized code |
2022-09-30 20:45:48 +0200 | <dminuoso> | davean: Honestly I would expect a simple prefetcher to be present even on ARM phones. Memory stride detection is super trivial. |
2022-09-30 20:45:54 +0200 | <davean> | where you have longer, more complex conditionals to do prediction off of |
2022-09-30 20:45:57 +0200 | <dminuoso> | Even Intel has the most dumb logic ever. |
2022-09-30 20:45:59 +0200 | LukeHoersten_ | (~LukeHoers@user/lukehoersten) |
2022-09-30 20:46:12 +0200 | <davean> | dminuoso: Intel has MASSIVELY more than memory stride detection |
2022-09-30 20:46:25 +0200 | <dminuoso> | For automatic memory prefetching, not really |
2022-09-30 20:46:36 +0200 | <dminuoso> | There's 2 different stride prefetcher that each have 2-3 cases where they trigger |
2022-09-30 20:46:45 +0200 | <monochrom> | I'm impressed that for modern CPUs a pointer array is fine. That really enables a lot more high-level programming. |
2022-09-30 20:47:04 +0200 | <davean> | monochrom: mostly only catches the simple cases |
2022-09-30 20:47:16 +0200 | <dminuoso> | But I guess its the combination with speculative execution this kicks in really well |
2022-09-30 20:47:36 +0200 | <dminuoso> | That is, if the cpu can speculatively execute code with a semantically stalled pipeline, it can trigger stride prefetchers even earlier |
2022-09-30 20:47:41 +0200 | <davean> | dminuoso: right |
2022-09-30 20:47:54 +0200 | dcoutts_ | (~duncan@host86-177-125-45.range86-177.btcentralplus.com) |
2022-09-30 20:48:05 +0200 | <monochrom> | OK yeah but if I have like Vector (boxed Int) it may be one of the simple cases. |
2022-09-30 20:48:17 +0200 | <davean> | Yep! Exactly |
2022-09-30 20:48:22 +0200 | <dminuoso> | What is really super interesting, is that the current (not the brand new one) architecture is able maintain a constant throughput of 8 instructions per cycle. |
2022-09-30 20:48:24 +0200 | <monochrom> | Or if I have the analogue in C++. |
2022-09-30 20:48:28 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 246 seconds) |
2022-09-30 20:48:39 +0200 | <dminuoso> | Without being stalled (assuming some good and targeted code of course) |
2022-09-30 20:48:48 +0200 | <dminuoso> | No CPU before could do that well. :) |
2022-09-30 20:48:50 +0200 | <davean> | where that doesn't work, rotating to a SoA design can fix a lot too |
2022-09-30 20:49:01 +0200 | <dminuoso> | (Again, talking Intel) |
2022-09-30 20:49:08 +0200 | <davean> | dminuoso: Oh, ok, sticking to Intel yah |
2022-09-30 20:49:26 +0200 | <davean> | dminuoso: I mean I was about to bring up a few elephands in the room. |
2022-09-30 20:49:32 +0200 | <dminuoso> | Agner Fog has most details on their CPUs :> |
2022-09-30 20:50:35 +0200 | <dminuoso> | It's somewhat of a shame that you have to resort to some person privately benchmarking and thereby reverse engineering microarchitecture details. Intel wont tell you half the things necessary for optimal code generation. |
2022-09-30 20:50:48 +0200 | dcoutts__ | (~duncan@host86-177-125-45.range86-177.btcentralplus.com) (Ping timeout: 264 seconds) |
2022-09-30 20:51:12 +0200 | <davean> | dminuoso: Yah, if you want to optimize CPU code you have to have friends that want to optimize CPU code. |
2022-09-30 20:52:12 +0200 | <dminuoso> | No I rather meant, both AMD and Intel are rather sketchy on microarchitectural details |
2022-09-30 20:52:17 +0200 | <davean> | Honestly I think sticking to things like Cache Oblivious algs and such is better 99% of the time; it works fairly well across languages, and it doesn't fall appart in the future. |
2022-09-30 20:52:26 +0200 | <dminuoso> | Yup. |
2022-09-30 20:52:52 +0200 | <davean> | dminuoso: yes, and the only way to get around that is to have friends who also want to optimize CPU code, because there is no way to one man lift figuring out solutions. I got what you meant. |
2022-09-30 20:52:55 +0200 | <dminuoso> | Cache awareness I think is one of the primary optimization opportunities in many algorithms or programs. |
2022-09-30 20:53:05 +0200 | <dminuoso> | That is very frequently left untouched. |
2022-09-30 20:53:08 +0200 | <davean> | you have to be part of a community working on it to really have a chance. |
2022-09-30 20:53:12 +0200 | <dminuoso> | Outside of OS code you rarely see cache coloring for example |
2022-09-30 20:53:36 +0200 | <davean> | Most of the high level techniques don't care what language you're in or anything if you have decent data layout control, and haskell DOES have that. |
2022-09-30 20:53:42 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds) |
2022-09-30 20:53:42 +0200 | <davean> | in modern times. |
2022-09-30 20:53:55 +0200 | <davean> | And haskell can MOSTLY optimize datapacking ok, so generally that stuff works out. |
2022-09-30 20:54:28 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
2022-09-30 20:54:47 +0200 | <davean> | dminuoso: my point there was one doesn't just stumble into how to optimize for CPUs, nor can one just deduce it from straight experimentation |
2022-09-30 20:54:51 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
2022-09-30 20:55:03 +0200 | <dminuoso> | Ah yes right. |
2022-09-30 20:55:04 +0200 | <davean> | you need a combination of experimentation, mechanical sympathy, and idea generation |
2022-09-30 20:55:49 +0200 | <dontdieych> | sigh.. cant grog state monad signature. |
2022-09-30 20:55:54 +0200 | <dontdieych> | another day |
2022-09-30 20:56:01 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-09-30 20:56:02 +0200 | <davean> | dontdieych: Do you have a specific problem? |
2022-09-30 20:56:44 +0200 | <davean> | dontdieych: do you understand the equivilence of (a, b) -> c and a -> b -> c? |
2022-09-30 20:56:47 +0200 | <monochrom> | I mean well yeah a state transition function also says that there is always the next state, another day. >:) |
2022-09-30 20:56:51 +0200 | <dontdieych> | davean: no just read and learn haskell. actually it is fun and joy |
2022-09-30 20:57:06 +0200 | <davean> | dontdieych: Yah its just "I don't understand" doesn't really give any way to help you |
2022-09-30 20:57:14 +0200 | <davean> | "A seems in conflict with B" might |
2022-09-30 20:57:17 +0200 | <davean> | or something like that. |
2022-09-30 20:57:24 +0200 | <dminuoso> | dontdieych: You should go one step back, and start with the motivation problem, which both the wikibooks article you pointed out goes into great length to setup, and all monochrom, davean and EvanR have been trying to set you up with. |
2022-09-30 20:57:26 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-09-30 20:57:32 +0200 | <EvanR> | "he should move to the next state" actual review of actual digital logic professor |
2022-09-30 20:57:40 +0200 | <dminuoso> | Don't jump towards the State type, start with the motivating problem. |
2022-09-30 20:58:08 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
2022-09-30 20:58:09 +0200 | <monochrom> | haha EvanR. It's real?! Some student wrote that?! |
2022-09-30 20:58:13 +0200 | <EvanR> | yeah |
2022-09-30 20:58:22 +0200 | <davean> | EvanR: I love that student so much right now. |
2022-09-30 20:58:23 +0200 | <EvanR> | though you probably heard that 100 times |
2022-09-30 20:58:34 +0200 | <monochrom> | No, this is the 1st time. |
2022-09-30 20:58:37 +0200 | <dontdieych> | Thank you for all |
2022-09-30 20:59:01 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 20:59:13 +0200 | <dontdieych> | I'll read back to books |
2022-09-30 20:59:16 +0200 | LukeHoersten_ | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-09-30 20:59:32 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-09-30 21:00:07 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 268 seconds) |
2022-09-30 21:00:11 +0200 | Lord_of_Life_ | Lord_of_Life |
2022-09-30 21:00:12 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-09-30 21:01:13 +0200 | <dminuoso> | dontdieych: And another personal tip: just drop the word Monad. Scratch it from your definition list. |
2022-09-30 21:01:32 +0200 | <monochrom> | :( |
2022-09-30 21:01:53 +0200 | <monochrom> | I take the opposite view. |
2022-09-30 21:02:39 +0200 | <monochrom> | For example I don't understand CPUs. Especially after today listening to you about cache behaviour and how to or not to write code to play nice with it. |
2022-09-30 21:02:57 +0200 | <monochrom> | Has that ever stopped me from just going ahead and using CPUs? |
2022-09-30 21:03:27 +0200 | <geekosaur> | I think that was actually the point? |
2022-09-30 21:03:35 +0200 | <int-e> | But you use CPUs rather indirectly (like everybody else) ;-) |
2022-09-30 21:03:38 +0200 | <geekosaur> | Don't try to understand it, just use it and understanding will come |
2022-09-30 21:03:49 +0200 | <monochrom> | (Unpopular opinion: You know what, I'm cynical, perhaps the world would be better if everyone thought "I don't understand CPUs so perhaps I should not become a programmer.") |
2022-09-30 21:04:03 +0200 | <hololeap> | anyone know of a lib with a data structure that can lookup a collection of values given a key, but also lookup the parent key given a value? |
2022-09-30 21:04:11 +0200 | <int-e> | You should still use the term "monad" though because a) that's the type class name and b) that's the name by which everybody else knows the concept. |
2022-09-30 21:04:14 +0200 | <geekosaur> | Bimap? |
2022-09-30 21:04:24 +0200 | <hololeap> | it's not quite bimap, I don't think |
2022-09-30 21:04:25 +0200 | <dminuoso> | hololeap: What is "parent"? |
2022-09-30 21:04:34 +0200 | <hololeap> | good question |
2022-09-30 21:04:39 +0200 | <dminuoso> | Do you mean "key"? |
2022-09-30 21:04:48 +0200 | <int-e> | But I'd agree that you don't have to internalize all the monad laws to use monads. |
2022-09-30 21:04:49 +0200 | <hololeap> | sure |
2022-09-30 21:04:54 +0200 | <dminuoso> | Use two maps? |
2022-09-30 21:04:59 +0200 | <dminuoso> | And a data wrapper |
2022-09-30 21:05:00 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 21:05:04 +0200 | <monochrom> | Um but I have used CPUs pretty directly. I sometimes read asm code. I used to write a little bit of asm code too. I used to even measure CPU pins with oscilloscopes of logic analyzers. |
2022-09-30 21:05:19 +0200 | <EvanR> | I don't understand cars so maybe I shouldn't drive |
2022-09-30 21:05:24 +0200 | <dontdieych> | I'd made once ! real world program with Haskell accidentally, for my daily jobs. ... that was great. |
2022-09-30 21:05:25 +0200 | <EvanR> | actually, we don't even need the first part |
2022-09-30 21:05:26 +0200 | <hololeap> | so write it myself, because there is no popular lib that has this already |
2022-09-30 21:05:54 +0200 | <dminuoso> | Not that I've seen |
2022-09-30 21:06:15 +0200 | <int-e> | monochrom: but I imagine you're still using a keyboard, maybe a mouse, a monitor (via a graphics controller), storage devices... etc. rather than injecting your own electric signals into the CPU core. |
2022-09-30 21:06:32 +0200 | <dminuoso> | hololeap: well there is https://hackage.haskell.org/package/bimap-0.5.0/docs/Data-Bimap.html |
2022-09-30 21:06:40 +0200 | <dminuoso> | Which I suppose geekosaur referred to |
2022-09-30 21:06:45 +0200 | <EvanR> | what is "direct" anyway |
2022-09-30 21:07:01 +0200 | <int-e> | monochrom: even assembly language isn't very direct |
2022-09-30 21:07:06 +0200 | <EvanR> | your quantum state is entangled with the computer hardware in some sense |
2022-09-30 21:07:21 +0200 | <dminuoso> | int-e: Even machine code isnt very direct either for AMD64 CPUs :> |
2022-09-30 21:07:24 +0200 | <sm> | could anyone explain how you're supposed to use https://hackage.haskell.org/package/time-parsers-0.1.2.1/docs/Data-Time-Parsers.html ? |
2022-09-30 21:07:47 +0200 | <EvanR> | and everything you ever told the computer to do was superdetermined at the beginning of the universe! |
2022-09-30 21:07:53 +0200 | <dminuoso> | Your machine code gets compiled into micro ops by a big black box of micro code. |
2022-09-30 21:07:53 +0200 | <hololeap> | well, it's not quite a bimap, but that would probably be the best thing to use if I do write it myself |
2022-09-30 21:08:13 +0200 | <dminuoso> | hololeap: Or are you looking for a kind of tree perhaps? |
2022-09-30 21:08:23 +0200 | <monochrom> | Humanity started using fire without understanding fire. |
2022-09-30 21:08:37 +0200 | <EvanR> | same with computers |
2022-09-30 21:08:41 +0200 | <EvanR> | and computation |
2022-09-30 21:08:43 +0200 | <sm> | also do we approve of "case undefined" in https://hackage.haskell.org/package/time-parsers-0.1.2.1/docs/src/Data.Time.Parsers.html#timeZone ? |
2022-09-30 21:08:43 +0200 | <monochrom> | Every time you enjoy a BBQ or a nicely grilled steak, remember that. |
2022-09-30 21:09:13 +0200 | <dminuoso> | sm: instantiate m at a suitable type satisfying CharParsing, LookAheadParsing and Monad, and use that? |
2022-09-30 21:09:23 +0200 | <monochrom> | If every human were like every monad student "I don't understand fire so I refuse to just go ahead and use fire", ... |
2022-09-30 21:09:25 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-09-30 21:09:25 +0200 | <int-e> | dminuoso: Well at least you will find machine code travel along the memory interfaces. (There's no point to this, I just wanted to tease monochrom a bit.) |
2022-09-30 21:09:44 +0200 | <monochrom> | Well I guess we would all enjoy beef sashimi and tartar steak instead :) |
2022-09-30 21:09:48 +0200 | <sm> | dminuoso: I'm needing more.. |
2022-09-30 21:09:55 +0200 | <dminuoso> | more what? |
2022-09-30 21:10:08 +0200 | <dminuoso> | sm: Mind my asking, what is is that you want to parse? |
2022-09-30 21:10:12 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 21:10:15 +0200 | <EvanR> | I've played enough minecraft to know you need to cook the food for best results |
2022-09-30 21:10:16 +0200 | <sm> | clear advice |
2022-09-30 21:10:25 +0200 | <sm> | dminuoso: a time zone, in this case |
2022-09-30 21:10:33 +0200 | <sm> | I thought I'd save some time and use this |
2022-09-30 21:10:44 +0200 | <EvanR> | same with computations |
2022-09-30 21:10:44 +0200 | <geekosaur> | time zones are hell |
2022-09-30 21:10:53 +0200 | <sm> | but it's got me baffled |
2022-09-30 21:11:06 +0200 | <dminuoso> | There's that crufty ancient library that all linux comes with.. uh what is its name again |
2022-09-30 21:11:17 +0200 | <EvanR> | olsen timezone package has parsers right? |
2022-09-30 21:11:20 +0200 | <sm> | I see that DateParsing is... a triple ? |
2022-09-30 21:11:24 +0200 | <hololeap> | no, I just want something that has all the standard Map functions, but the value is always a collection of values, and it also includes something like `getKey :: ThingMap k v -> v -> k` in addition to `lookup :: ThingMap k v -> k -> Set v` |
2022-09-30 21:11:27 +0200 | <sm> | how does that even.. |
2022-09-30 21:11:31 +0200 | <dminuoso> | sm: a triple constraint |
2022-09-30 21:11:52 +0200 | <monochrom> | sm: I would be more happy if it were "case () of", but really it doesn't matter to me. |
2022-09-30 21:12:03 +0200 | <dminuoso> | zonedTime :: DateParsing m => m ZonedTime |
2022-09-30 21:12:04 +0200 | <dminuoso> | zonedTime :: (CharParsing m, LookAheadParsing m, Monad m) => m ZonedTime |
2022-09-30 21:12:07 +0200 | <dminuoso> | These two are the same thing |
2022-09-30 21:12:07 +0200 | king_gs | (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Remote host closed the connection) |
2022-09-30 21:12:18 +0200 | <hololeap> | anyway I can write it if need be |
2022-09-30 21:12:19 +0200 | <dminuoso> | sm: See why I mean "pick a type m that satisfies these three constraints"? |
2022-09-30 21:12:48 +0200 | <dminuoso> | sm: You would click on CharParsing and LookAheadParsing, see what kind of instances these come with, and look for a type supported in both |
2022-09-30 21:12:52 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-09-30 21:12:52 +0200 | <monochrom> | More precisely I would be most happy with MultiWayIf, but here we're looking at a piece of code that predates that. |
2022-09-30 21:12:56 +0200 | <sm> | yes I got that general sense myself but it is far from obvious |
2022-09-30 21:13:10 +0200 | <sm> | this is one of those undocumented packages we hear about |
2022-09-30 21:13:10 +0200 | <dminuoso> | sm: You can use ReadP or attoparsec Parser for example. |
2022-09-30 21:13:14 +0200 | <sm> | thanks |
2022-09-30 21:14:38 +0200 | <sm> | doh, I can just use parseTimeM like I'm already doing |
2022-09-30 21:15:45 +0200 | <sm> | parseTimeM False defaultTimeLocale "%Z" "UTC" :: Maybe TimeZone |
2022-09-30 21:17:02 +0200 | califax | (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-09-30 21:17:02 +0200 | vglfr | (~vglfr@145.224.100.164) (Read error: Connection reset by peer) |
2022-09-30 21:17:02 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) |
2022-09-30 21:17:13 +0200 | vglfr | (~vglfr@145.224.100.164) |
2022-09-30 21:17:32 +0200 | califax | (~califax@user/califx) |
2022-09-30 21:17:33 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-09-30 21:17:41 +0200 | <monochrom> | int-e: Basically the definition of "use", aka "black-box use", comes with a lower bound of indirectness. |
2022-09-30 21:17:46 +0200 | <EvanR> | I always though if I was going to do industrial timezone bullshit I'd use timezone-olsen package |
2022-09-30 21:17:54 +0200 | beteigeuze | (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 268 seconds) |
2022-09-30 21:18:40 +0200 | <EvanR> | which defines the thing TimeZoneSeries, which is usually what a TimeZone ends up being |
2022-09-30 21:18:52 +0200 | <dminuoso> | What is the corresponding C facility to interact with tzdb? |
2022-09-30 21:19:08 +0200 | waldo | (~waldo@user/waldo) (Ping timeout: 268 seconds) |
2022-09-30 21:20:10 +0200 | pavonia | (~user@user/siracusa) |
2022-09-30 21:20:54 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-09-30 21:21:03 +0200 | waldo | (~waldo@user/waldo) |
2022-09-30 21:21:13 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-09-30 21:21:13 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-09-30 21:21:13 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-09-30 21:21:15 +0200 | <EvanR> | there's tzset |
2022-09-30 21:21:26 +0200 | <EvanR> | but that only does 1 thing |
2022-09-30 21:21:47 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-09-30 21:21:54 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-09-30 21:21:59 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-09-30 21:22:07 +0200 | <geekosaur> | there's a library for the olsen tzdb stuff, iirc it's bundled with timezone-olsen? |
2022-09-30 21:22:17 +0200 | <geekosaur> | but not standard on e.g. linux |
2022-09-30 21:23:31 +0200 | mrmr | (~mrmr@user/mrmr) (Quit: Ping timeout (120 seconds)) |
2022-09-30 21:23:42 +0200 | califax | (~califax@user/califx) |
2022-09-30 21:23:48 +0200 | mrmr | (~mrmr@user/mrmr) |
2022-09-30 21:24:14 +0200 | gustik | (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Quit: Leaving) |
2022-09-30 21:25:29 +0200 | acidjnk | (~acidjnk@p200300d6e7137a85945ed0a823b800bd.dip0.t-ipconnect.de) |
2022-09-30 21:26:30 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) |
2022-09-30 21:28:01 +0200 | lys | rosalind |
2022-09-30 21:30:51 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-09-30 21:31:51 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 252 seconds) |
2022-09-30 21:33:03 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) |
2022-09-30 21:33:55 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-09-30 21:34:11 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-09-30 21:37:15 +0200 | codaraxis | (~codaraxis@user/codaraxis) |
2022-09-30 21:37:41 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 260 seconds) |
2022-09-30 21:37:46 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 21:41:33 +0200 | mrmr9 | (~mrmr@user/mrmr) |
2022-09-30 21:42:06 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 21:43:15 +0200 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 268 seconds) |
2022-09-30 21:43:15 +0200 | mrmr9 | mrmr |
2022-09-30 21:46:10 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-09-30 21:50:09 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-09-30 21:53:00 +0200 | ski | thought sashimi had to be fish |
2022-09-30 21:53:47 +0200 | <ski> | a `ThingMap k v' sounds like it's representing a functional relation (from `v' to `k'), which can be used both forwards and backwards |
2022-09-30 21:54:03 +0200 | <monochrom> | There are urchin and octopus too. And then there is beef. |
2022-09-30 21:54:19 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) |
2022-09-30 21:54:41 +0200 | <ski> | hm, okay |
2022-09-30 21:54:59 +0200 | ski | imagines sea bovines |
2022-09-30 21:56:34 +0200 | <Rembane> | Like manates? |
2022-09-30 21:56:42 +0200 | <talismanick> | I just tried `cabal install hood` - it appears it requires base <4.11 :| |
2022-09-30 21:57:08 +0200 | <talismanick> | Are there any other debuggers like it? I'm intrigued by this concept of debugging by observing the sequence of intermediate data structures generated |
2022-09-30 21:57:22 +0200 | <monochrom> | hood is probably very old and not updated. |
2022-09-30 21:57:53 +0200 | <talismanick> | It'd mesh well with what I've learned from "Algorithm Design With Haskell", and seems like a good way to search for space leaks |
2022-09-30 21:58:39 +0200 | <monochrom> | You can try telling cabal "--allow-newer" but if there are compile-time errors it can be a rabbit hole to bring the code up to date. |
2022-09-30 21:59:23 +0200 | <ski> | Rembane : .. maybe ? |
2022-09-30 21:59:27 +0200 | <talismanick> | Let's see... what fails is a dependency, FPretty |
2022-09-30 21:59:43 +0200 | <sclv> | hood is likely extremely bitrotted but also it would be a good project to get it up to date |
2022-09-30 22:00:15 +0200 | waldo | (~waldo@user/waldo) (Quit: quit) |
2022-09-30 22:00:37 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 22:00:53 +0200 | <talismanick> | Oh my god, 800 lines of error messages |
2022-09-30 22:01:22 +0200 | ski | . o O ( "Luvly jubly !" ) |
2022-09-30 22:01:33 +0200 | <talismanick> | 86 instances of the word "error" when grepping, 64 from FPretty |
2022-09-30 22:03:10 +0200 | <geekosaur> | hood knows a bit too much about ghc internals, which will have changed drastically since it was written |
2022-09-30 22:03:36 +0200 | <ski> | (hm, there's also a `hood2', and `GHood') |
2022-09-30 22:04:06 +0200 | <geekosaur> | the only other thing like it I know is ghc-vis, which might even be up to date (hm, don't know about ghc9 though) |
2022-09-30 22:04:19 +0200 | ski | idly reminisces Buddha |
2022-09-30 22:05:18 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 22:07:28 +0200 | causal | (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
2022-09-30 22:07:43 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 265 seconds) |
2022-09-30 22:08:00 +0200 | <geekosaur> | iirc GHood is just a GUI wrapper for hood. no idea about hood2 |
2022-09-30 22:08:14 +0200 | rosalind | (lys@id-194105.uxbridge.irccloud.com) (Quit: bbl) |
2022-09-30 22:12:21 +0200 | <talismanick> | hood2 and ghc-vis both fail to compile |
2022-09-30 22:12:55 +0200 | <talismanick> | buddha appears Hugs-related and even predates hood, so I presume it won't work with GHC |
2022-09-30 22:13:31 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 265 seconds) |
2022-09-30 22:13:51 +0200 | shapr | (~user@68.54.166.125) (Ping timeout: 260 seconds) |
2022-09-30 22:16:30 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds) |
2022-09-30 22:16:30 +0200 | gmg | (~user@user/gehmehgeh) (Ping timeout: 258 seconds) |
2022-09-30 22:17:23 +0200 | dr_merijn | (~dr_merijn@86-86-29-250.fixed.kpn.net) |
2022-09-30 22:17:26 +0200 | kenran | (~user@user/kenran) |
2022-09-30 22:17:45 +0200 | gmg | (~user@user/gehmehgeh) |
2022-09-30 22:18:04 +0200 | vglfr | (~vglfr@145.224.100.164) (Ping timeout: 244 seconds) |
2022-09-30 22:19:28 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-09-30 22:20:55 +0200 | Everything | (~Everythin@37.115.210.35) |
2022-09-30 22:21:45 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-09-30 22:22:13 +0200 | dr_merijn | (~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2022-09-30 22:24:08 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-09-30 22:25:11 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 268 seconds) |
2022-09-30 22:25:48 +0200 | talismanick | (~talismani@96-67-197-217-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds) |
2022-09-30 22:26:48 +0200 | kenran | (~user@user/kenran) |
2022-09-30 22:27:14 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds) |
2022-09-30 22:28:00 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-09-30 22:28:47 +0200 | kenran | (~user@user/kenran) (Read error: Connection reset by peer) |
2022-09-30 22:30:02 +0200 | kenran | (~user@user/kenran) |
2022-09-30 22:30:04 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 22:30:31 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-09-30 22:32:03 +0200 | ardell | (~ardell@user/ardell) |
2022-09-30 22:33:09 +0200 | rosalind | (rosalind@id-194105.uxbridge.irccloud.com) |
2022-09-30 22:34:06 +0200 | rosalind | (rosalind@id-194105.uxbridge.irccloud.com) () |
2022-09-30 22:35:43 +0200 | lys | (lys@id-194105.uxbridge.irccloud.com) |
2022-09-30 22:36:15 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 22:38:21 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
2022-09-30 22:38:36 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2022-09-30 22:40:39 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 22:41:10 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
2022-09-30 22:42:38 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-09-30 22:43:20 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-09-30 22:45:21 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-09-30 22:45:26 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-09-30 22:51:03 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
2022-09-30 22:51:40 +0200 | lagash | (lagash@lagash.shelltalk.net) (Ping timeout: 244 seconds) |
2022-09-30 22:56:26 +0200 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 260 seconds) |
2022-09-30 22:58:36 +0200 | lagash | (lagash@lagash.shelltalk.net) |
2022-09-30 22:59:24 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-09-30 23:01:40 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 23:04:02 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-09-30 23:07:09 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-09-30 23:08:01 +0200 | Cerins | (~Cerins@balticom-142-106-43.balticom.lv) (Quit: Leaving) |
2022-09-30 23:08:06 +0200 | x7Ot | (~x7Ot@2804:14d:78a6:85fe:8df8:3066:639f:5a59) |
2022-09-30 23:10:13 +0200 | x7Ot | (~x7Ot@2804:14d:78a6:85fe:8df8:3066:639f:5a59) (Client Quit) |
2022-09-30 23:10:38 +0200 | lys | rosalind |
2022-09-30 23:13:55 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-09-30 23:15:27 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 23:16:15 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) |
2022-09-30 23:16:39 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-09-30 23:18:34 +0200 | rosalind | (lys@id-194105.uxbridge.irccloud.com) (Quit: Time) |
2022-09-30 23:20:45 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 252 seconds) |
2022-09-30 23:21:31 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds) |
2022-09-30 23:24:43 +0200 | acidjnk | (~acidjnk@p200300d6e7137a85945ed0a823b800bd.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2022-09-30 23:26:11 +0200 | mmhat | (~mmh@p200300f1c7062359ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-09-30 23:31:19 +0200 | bilegeek | (~bilegeek@2600:1008:b018:1dfc:44e1:aaa5:595f:8e17) |
2022-09-30 23:31:58 +0200 | zebrag | (~chris@user/zebrag) (Ping timeout: 244 seconds) |
2022-09-30 23:32:41 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-09-30 23:35:21 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-09-30 23:39:06 +0200 | mmhat | (~mmh@p200300f1c7062333ee086bfffe095315.dip0.t-ipconnect.de) |
2022-09-30 23:41:31 +0200 | shapr | (~user@68.54.166.125) |
2022-09-30 23:44:07 +0200 | rockymarine | (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
2022-09-30 23:44:21 +0200 | talismanick | (~talismani@c-73-41-86-39.hsd1.ca.comcast.net) |
2022-09-30 23:44:49 +0200 | <shapr> | @quote |
2022-09-30 23:44:49 +0200 | <lambdabot> | cowardlydragon says: [from a reddit comment thread] Don't get me started on monad. What is that, a man with a single testicle? |
2022-09-30 23:51:34 +0200 | moonsheep | (~user@user/moonsheep) |
2022-09-30 23:52:30 +0200 | thyriaen | (~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce) |
2022-09-30 23:55:01 +0200 | ellensol | (~ellen@178-78-210-152.customers.ownit.se) |
2022-09-30 23:56:21 +0200 | rockymarine | (~rocky@user/rockymarine) |
2022-09-30 23:56:28 +0200 | mixphix | (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds) |
2022-09-30 23:59:07 +0200 | <monochrom> | haha how does lambdabot actually chooses quotes to match recent conversations?! |
2022-09-30 23:59:18 +0200 | rosalind | (rosalind@id-194105.uxbridge.irccloud.com) |