Logs: liberachat/#haskell
| 2025-12-28 00:19:01 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 00:24:01 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 00:33:04 | <haskellbridge> | <Liamzee> apparently apple silicon (and psosibly modern ARM in general) is designed to be very resistant to segfaults; double free would throw an error, but not a segfault |
| 2025-12-28 00:33:29 | <haskellbridge> | <Liamzee> we ended up having to point a pointer at kernel memory just to trigger a segfault |
| 2025-12-28 00:34:28 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 00:37:06 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.10.1+deb1 - https://znc.in) |
| 2025-12-28 00:39:21 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 00:50:16 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 00:54:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 00:58:18 | × | collide2954 quits (~collide29@user/collide2954) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-28 01:02:08 | <geekosaur> | there are malloc libraries which do that (it's not up to the hardware) |
| 2025-12-28 01:03:06 | <geekosaur> | which doesn't mean you can't segfault on them, just that common errors like double free, use after free, and overreading/writing a block are detected and reported instead of corrupting memory or crashing |
| 2025-12-28 01:04:57 | <geekosaur> | they're really nice in conjunction with debuggers because you can break on the error entry point and catch things like that immediately instead of after something reveals memory corruption |
| 2025-12-28 01:06:04 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 01:07:05 | <geekosaur> | (that said, I think memcheck has superseded all of them…) |
| 2025-12-28 01:10:21 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 01:11:58 | <int-e> | presumably this is about ARM's "pointer authentication" feature |
| 2025-12-28 01:12:50 | × | Hafydd quits (~Hafydd@user/hafydd) (Quit: WeeChat 4.8.1) |
| 2025-12-28 01:14:10 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 2025-12-28 01:15:46 | → | omidmash2 joins (~omidmash@user/omidmash) |
| 2025-12-28 01:16:19 | → | collide2954 joins (~collide29@user/collide2954) |
| 2025-12-28 01:17:35 | × | omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds) |
| 2025-12-28 01:17:35 | omidmash2 | is now known as omidmash |
| 2025-12-28 01:18:55 | → | hsw joins (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) |
| 2025-12-28 01:19:21 | → | hsw_ joins (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) |
| 2025-12-28 01:19:36 | × | hsw_ quits (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Remote host closed the connection) |
| 2025-12-28 01:21:29 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 01:24:44 | × | divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2025-12-28 01:24:56 | → | divlamir joins (~divlamir@user/divlamir) |
| 2025-12-28 01:28:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 01:31:49 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 2025-12-28 01:33:34 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 2025-12-28 01:38:57 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 2025-12-28 01:39:32 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 01:40:22 | × | Hafydd quits (~Hafydd@user/hafydd) (Read error: Connection reset by peer) |
| 2025-12-28 01:40:28 | → | Hafydd_ joins (~Hafydd@user/hafydd) |
| 2025-12-28 01:43:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 01:45:14 | × | Tuplanolla quits (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2025-12-28 01:49:35 | × | annamalai quits (~annamalai@157.32.142.174) (Ping timeout: 240 seconds) |
| 2025-12-28 01:55:00 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 02:00:03 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 02:10:48 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 02:14:10 | × | Hafydd_ quits (~Hafydd@user/hafydd) (Quit: WeeChat 4.8.1) |
| 2025-12-28 02:15:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 02:22:05 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 2025-12-28 02:26:50 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 02:27:49 | → | annamalai joins (~annamalai@157.33.228.123) |
| 2025-12-28 02:31:28 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 02:42:36 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 02:47:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-28 02:53:47 | × | acidjnk quits (~acidjnk@p200300d6e7171962095fe0be59254d80.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2025-12-28 02:58:23 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 03:03:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-12-28 03:05:02 | × | op_4 quits (~tslil@user/op-4/x-9116473) (Remote host closed the connection) |
| 2025-12-28 03:05:39 | → | op_4 joins (~tslil@user/op-4/x-9116473) |
| 2025-12-28 03:14:10 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 03:18:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 03:22:03 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-12-28 03:29:57 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 03:35:01 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-28 03:40:15 | <Leary> | "variance introduced by outliers: -9223372036854775808% (severely inflated)" |
| 2025-12-28 03:40:19 | <Leary> | Thanks, criterion. |
| 2025-12-28 03:45:46 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 03:50:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 03:50:46 | × | Hafydd quits (~Hafydd@user/hafydd) (Quit: WeeChat 4.8.1) |
| 2025-12-28 04:01:32 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 04:04:27 | <monochrom> | That number looks awfully familar. |
| 2025-12-28 04:06:11 | <monochrom> | > 2^63 |
| 2025-12-28 04:06:12 | <lambdabot> | 9223372036854775808 |
| 2025-12-28 04:06:16 | <monochrom> | That. :) |
| 2025-12-28 04:06:29 | <Leary> | > minBound :: Int |
| 2025-12-28 04:06:30 | <lambdabot> | -9223372036854775808 |
| 2025-12-28 04:06:37 | <Leary> | Or that. |
| 2025-12-28 04:07:52 | <monochrom> | But if variance is negative, that's severely deflated or imploded, not inflated. >:) |
| 2025-12-28 04:08:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-28 04:14:21 | <Leary> | (turns out I'd forgotten to wait on forked threads, so criterion was measuring a load of nonsense) |
| 2025-12-28 04:15:25 | <monochrom> | oh heh |
| 2025-12-28 04:19:35 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 04:24:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 04:28:25 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 2025-12-28 04:35:22 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 04:40:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 04:49:31 | × | Pozyomka quits (~pyon@user/pyon) (Quit: bbl) |
| 2025-12-28 04:51:08 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 04:55:39 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-12-28 05:01:16 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 05:01:20 | → | iqubic joins (~sophia@2601:602:9203:1660:c40f:f996:91cc:d34) |
| 2025-12-28 05:03:27 | <iqubic> | I have a Haskell design question. How do I decide if I should make a typeclass to describe a particular constraint or just use and pass around a record of functions. |
| 2025-12-28 05:05:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-28 05:29:23 | <haskellbridge> | <slack1256> Iqubic: the standard answer some years ago was that if you could give "algebraic laws" relating the operations between themselves or super classes you were in the right path |
| 2025-12-28 05:29:31 | × | spew quits (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-28 05:30:52 | <haskellbridge> | <slack1256> The second case was that the class admitted obvious instances. For example show and read. Foldable was obvious even if kind of adhoc because `toList` was the only real method and everything else was a more efficient way to avoid the conversion to lists. |
| 2025-12-28 05:31:18 | <ski> | does the type determine a canonical instance ? or would it make sense to want to pass different records, at different times, for the same type ? |
| 2025-12-28 05:31:31 | <haskellbridge> | <slack1256> In summary, you had abstraction power via laws or you had a simple model ln the instances |
| 2025-12-28 05:32:22 | <ski> | yea, you also most likely should not be making a type class, unless you already have at least two different instances in mind |
| 2025-12-28 05:32:32 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-28 05:36:37 | <iqubic> | In the thing that I'm modelling, the same type could very easily have different implementations. And I don't want to jump through newtype wrappers like Sum and Product for the two different Monoids over integers. |
| 2025-12-28 05:36:56 | <iqubic> | The more I actually think about this, the more it makes sense to use a record of functions. |
| 2025-12-28 05:37:15 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-28 05:37:35 | <haskellbridge> | <slack1256> Record of functions can be used everywhere else. Most importantly where the provenance is a deciding factor on what the functions should do, not just the type. This is a fine concept, these records of functions are modules as ocaml sense |
All times are in UTC.