Logs on 2022-08-11 (liberachat/#haskell)
| 00:03:26 | × | lsrts^ quits (~lsrts@206.85.120.17) (Ping timeout: 268 seconds) |
| 00:04:44 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds) |
| 00:05:09 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 00:06:27 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 00:09:02 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 00:09:23 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 00:14:35 | × | vglfr quits (~vglfr@88.155.13.82) (Ping timeout: 255 seconds) |
| 00:15:24 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 00:15:30 | → | Chai-T-Rex joins (~ChaiTRex@user/chaitrex) |
| 00:15:54 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:d0f9:9fe4:8717:f94d) (Ping timeout: 268 seconds) |
| 00:15:56 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 00:16:33 | <Axman6> | d34df00d: I'm glad to see the Elm gateway drug worked :p |
| 00:17:54 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 00:20:19 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 00:20:19 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 00:20:23 | allbery_b | is now known as geekosaur |
| 00:21:07 | × | brettgilio quits (~brettgili@c9yh.net) (Remote host closed the connection) |
| 00:25:51 | × | moonsheep quits (~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 00:29:17 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:29:18 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:29:18 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:31:09 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 00:33:53 | → | mima joins (mmh@gateway/vpn/airvpn/mima) |
| 00:33:59 | × | mima quits (mmh@gateway/vpn/airvpn/mima) (Client Quit) |
| 00:34:19 | → | mima joins (mmh@gateway/vpn/airvpn/mima) |
| 00:34:52 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 00:34:52 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 00:34:56 | allbery_b | is now known as geekosaur |
| 00:36:11 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 00:37:18 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 00:39:45 | → | vysn joins (~vysn@user/vysn) |
| 00:42:22 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 00:45:00 | → | nilradical joins (~nilradica@user/naso) |
| 00:49:42 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 00:49:42 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 00:53:02 | → | nilradical joins (~nilradica@user/naso) |
| 00:53:18 | × | Kaiepi quits (~Kaiepi@142.68.249.28) (Quit: Leaving) |
| 00:56:35 | → | brettgilio joins (~brettgili@c9yh.net) |
| 00:57:13 | <c_wraith> | zzz: it still reserves the namespace for that behavior if the internal representation changes in the future |
| 01:03:51 | <albet70> | there's a term called f-expr in newlisp, it's more powerful than macro, could haskell implement it? |
| 01:04:30 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 01:05:29 | <Axman6> | what is it? |
| 01:06:56 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds) |
| 01:08:31 | <c_wraith> | from what I'm seeing, most lisps had dropped support for them sometime in the 90s because they broke static compilation |
| 01:08:40 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 01:09:44 | <albet70> | https://en.wikipedia.org/wiki/Fexpr |
| 01:13:10 | <zzz> | not ecaluating operands? isn't that just lazyness? |
| 01:13:19 | <zzz> | *eval |
| 01:13:42 | <Axman6> | yeah it feels like laziness to me, but I assume you can also inspect those values' AST |
| 01:14:28 | <Axman6> | so you could do the equivalent of f x = case x of a + b -> ...; a * b -> ...; -a -> ... |
| 01:16:37 | <c_wraith> | ultimately the question is wrong. |
| 01:16:57 | <c_wraith> | albet70: don't ask how to do other-language-feature. Ask how to achieve a particular result. |
| 01:17:38 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:17:42 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection) |
| 01:18:15 | <c_wraith> | do you want to pass a code block into template haskell? cool, write a TH function that accepts an Q Exp. |
| 01:20:13 | <c_wraith> | the whole distinction between FExpr and macro doesn't make sense in Haskell, because Haskell doesn't pretend list of tokens and code are the same thing |
| 01:20:47 | <c_wraith> | So you don't need special forms to treat the same input two different ways. You just have two different types of input. |
| 01:20:50 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 01:21:02 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 01:21:48 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:22:40 | <jackdk> | "a fexpr is a function whose operands are passed to it without being evaluated" sure sounds like a lazy function to me |
| 01:23:08 | <c_wraith> | well. it's more like a macro whose operands are passed without being evaluated. |
| 01:24:00 | <c_wraith> | in sufficiently old versions of lisp, they were used to implement control flow structures |
| 01:24:02 | <Axman6> | I think the main benefit is that the AST is accessible, so a function can modify its inputs |
| 01:24:11 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds) |
| 01:24:22 | <c_wraith> | which in lisp requires turning the arguments into the bodies of functions |
| 01:26:55 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 01:29:18 | <Axman6> | a bit of a long shot, but does anyone know of a tool for visualising bitwise operations? the closest I've found is https://github.com/mellowcandle/bitwise which isn't really close at all to what I'm after |
| 01:30:01 | → | nate4 joins (~nate@98.45.169.16) |
| 01:31:48 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 01:33:02 | <Axman6> | I want something symbolic that lets me do things like abcd_2 * 0x0201 and it'll give me back abcd0abcd_b (not super clear in text only, hence why I want something better) |
| 01:33:03 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 01:33:09 | <Axman6> | maybe I should make something |
| 01:35:15 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 01:35:32 | <dibblego> | and thus, the yak was again hairless |
| 01:35:38 | <dibblego> | I use pen/paper tbh |
| 01:35:57 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 01:37:56 | <Axman6> | the problem is when you want to represent things like y = x * 0x0101010101010101 and show that the top byte is the sum of the values in each of the bytes in x (if each byte is zero or one) |
| 01:38:58 | <Axman6> | I've written a bunch of implementations of popcount in C and was thinking about writing a blog post about them, and being able to visualise how they work ould be pretty useful |
| 01:40:45 | → | mcglk joins (~mcglk@131.191.49.120) |
| 01:45:34 | <Axman6> | ((((x * 0x8040201008040201) >> 7) & 0x0101010101010101) * 0x0101010101010101) >> 56 for example will do an 8 bit popcount but it's not at all clear why the multiplication works |
| 01:45:36 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 01:47:31 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 01:48:23 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 252 seconds) |
| 01:48:30 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:50:48 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 01:55:40 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 01:55:54 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 01:56:18 | × | alp_ quits (~alp@user/alp) (Ping timeout: 268 seconds) |
| 01:57:41 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 01:58:50 | → | zaquest joins (~notzaques@5.130.79.72) |
| 02:00:29 | <jackdk> | I look forward to your blogpost about bitwise visualisation axman6 |
| 02:00:33 | <jackdk> | :> |
| 02:02:21 | → | nate4 joins (~nate@98.45.169.16) |
| 02:07:23 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 02:12:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 02:13:35 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 02:13:58 | → | noteness joins (~noteness@user/noteness) |
| 02:16:12 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:16:12 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:16:12 | finn_elija | is now known as FinnElija |
| 02:16:12 | [_] | is now known as [itchyjunk] |
| 02:17:26 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 02:24:39 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 02:29:36 | × | hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 268 seconds) |
| 02:32:03 | × | td_ quits (~td@muedsl-82-207-238-185.citykom.de) (Ping timeout: 268 seconds) |
| 02:32:08 | → | codaraxis__ joins (~codaraxis@user/codaraxis) |
| 02:33:23 | → | td_ joins (~td@94.134.91.58) |
| 02:33:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 02:36:06 | × | codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 264 seconds) |
| 02:40:56 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 02:42:39 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 02:57:49 | → | ddellacosta joins (~ddellacos@89.45.224.209) |
| 02:58:05 | → | nilradical joins (~nilradica@user/naso) |
| 03:01:41 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 03:02:15 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 03:04:39 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 03:06:07 | × | ddellacosta quits (~ddellacos@89.45.224.209) (Ping timeout: 252 seconds) |
| 03:07:36 | × | luffy quits (~chenqisu1@183.217.201.23) (Quit: Leaving) |
| 03:07:55 | × | nilradical quits (~nilradica@user/naso) () |
| 03:07:59 | → | luffy joins (~chenqisu1@183.217.201.23) |
| 03:08:10 | → | ddellacosta joins (~ddellacos@143.244.47.100) |
| 03:08:53 | → | nate4 joins (~nate@98.45.169.16) |
| 03:11:30 | → | causal joins (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
| 03:14:00 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 03:17:07 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 03:18:12 | <dibblego> | thx Axman6 |
| 03:20:12 | → | kadoban1 joins (~kadoban@user/kadoban) |
| 03:20:25 | × | mima quits (mmh@gateway/vpn/airvpn/mima) (Ping timeout: 252 seconds) |
| 03:24:29 | × | stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.6) |
| 03:31:18 | × | Vajb quits (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer) |
| 03:31:30 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 03:32:09 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 03:32:18 | → | vglfr joins (~vglfr@88.155.19.3) |
| 03:32:57 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
| 03:36:10 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 03:36:47 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 03:40:48 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 03:41:51 | → | kazaf joins (~kazaf@94.180.63.53) |
| 03:46:08 | × | kazaf quits (~kazaf@94.180.63.53) (Ping timeout: 252 seconds) |
| 03:56:39 | → | nate4 joins (~nate@98.45.169.16) |
| 03:58:40 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 03:59:27 | → | Vajb joins (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) |
| 04:00:19 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 04:00:45 | × | vglfr quits (~vglfr@88.155.19.3) (Ping timeout: 252 seconds) |
| 04:00:48 | → | hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net) |
| 04:01:13 | → | mbuf joins (~Shakthi@122.165.55.71) |
| 04:01:29 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 04:05:09 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
| 04:05:16 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 04:05:50 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 04:05:50 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 04:07:54 | → | Guest|3 joins (~Guest|3@a81-14-214-243.net-htp.de) |
| 04:07:55 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 04:08:16 | <Guest|3> | does haskell run on armv7? |
| 04:11:15 | <c_wraith> | like on phones? You can compile to mobile, yes, though it's a pain to get set up initially. |
| 04:17:36 | <jackdk> | arm is becoming an increasingly important compile target because of m1 |
| 04:17:44 | <Guest|3> | https://github.com/simplex-chat/simplex-chat/issues/538#issuecomment-1100840391 |
| 04:18:23 | <Guest|3> | simplex devs says it runs on aarch64 but not armv7 |
| 04:19:09 | <c_wraith> | There are certainly people running haskell on mobile |
| 04:19:48 | <Guest|3> | yea but mobile phone cpus differ |
| 04:20:14 | <Guest|3> | my question is does armv7 work too? |
| 04:20:48 | <Guest|3> | not only aarch64 (which is also arm) |
| 04:21:48 | <jackdk> | https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms seems to be the canonical resource |
| 04:24:08 | → | biberu\ joins (~biberu@user/biberu) |
| 04:27:58 | × | biberu quits (~biberu@user/biberu) (Ping timeout: 268 seconds) |
| 04:27:59 | biberu\ | is now known as biberu |
| 04:31:49 | → | nate4 joins (~nate@98.45.169.16) |
| 04:34:08 | × | Guest|3 quits (~Guest|3@a81-14-214-243.net-htp.de) (Ping timeout: 268 seconds) |
| 04:34:30 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:34:52 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 04:37:12 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 04:37:15 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 04:37:23 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 04:42:09 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
| 04:44:08 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 04:46:56 | <Inst> | yikes |
| 04:49:53 | × | macabre quits (~m@161.35.15.236) (Ping timeout: 252 seconds) |
| 04:51:06 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 244 seconds) |
| 04:53:03 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 04:57:35 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 05:01:25 | × | kitty4 quits (~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 268 seconds) |
| 05:01:55 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:02:23 | → | kitty4 joins (~kitty@096-039-147-043.res.spectrum.com) |
| 05:04:49 | → | img joins (~img@user/img) |
| 05:05:22 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Quit: Going elsewhere) |
| 05:06:39 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec) |
| 05:11:47 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:12:11 | → | img joins (~img@user/img) |
| 05:14:02 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:18:28 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 05:20:01 | → | macabre joins (~m@161.35.15.236) |
| 05:23:28 | × | luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds) |
| 05:23:37 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 05:30:56 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:32:31 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 05:33:22 | → | nate4 joins (~nate@98.45.169.16) |
| 05:38:17 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 05:40:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 05:47:33 | <dsal> | I used to have a few things deployed on 32-bit ARM machines running armbian. It's been a while, though. |
| 05:51:35 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:04:44 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 06:05:47 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:06:06 | × | tv quits (~tv@user/tv) (Ping timeout: 264 seconds) |
| 06:07:17 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 06:09:15 | <sm> | Guest|3: yes it does |
| 06:17:55 | → | frost joins (~frost@user/frost) |
| 06:18:17 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:24:36 | → | coot joins (~coot@213.134.176.158) |
| 06:28:24 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 06:31:36 | <Axman6> | jackdk: well, I was thinking this might be a good excuse to look at reanimate... these examples are amazing: https://reanimate.readthedocs.io/en/latest/voice/ |
| 06:32:04 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:4859:a137:2c1f:9457) |
| 06:32:42 | <c_wraith> | isn't that the one where the author refuses to stop using unsafePerformIO for file output? |
| 06:33:02 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 255 seconds) |
| 06:34:58 | × | ddellacosta quits (~ddellacos@143.244.47.100) (Quit: WeeChat 3.5) |
| 06:35:31 | → | ddellacosta joins (~ddellacos@143.244.47.100) |
| 06:36:50 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 06:37:09 | <jackdk> | X_X |
| 06:37:10 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 06:43:10 | <Axman6> | eh, it's really an app, I'm not too worried about that |
| 06:43:57 | → | chomwitt joins (~chomwitt@2a02:587:dc15:5e00:8014:4f1d:3973:a5c3) |
| 06:44:12 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 06:44:30 | <Axman6> | it would be better to use template haskell to embed them, but I can understand why they'd do it that way |
| 06:47:46 | <tomsmeding> | Axman6: c_wraith said "file output" |
| 06:48:41 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 06:49:37 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 06:54:40 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 06:57:37 | → | Cajun joins (~Cajun@user/cajun) |
| 07:04:12 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 07:07:42 | → | joo-_ joins (~joo-_@80-62-116-198-mobile.dk.customer.tdc.net) |
| 07:07:42 | × | joo-_ quits (~joo-_@80-62-116-198-mobile.dk.customer.tdc.net) (Changing host) |
| 07:07:42 | → | joo-_ joins (~joo-_@fsf/member/joo--) |
| 07:07:56 | → | zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 07:09:59 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 07:10:19 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 07:12:06 | <Axman6> | oh I missed that - yeah that's less ok |
| 07:12:36 | <Axman6> | but whatevs, it's supposed to be a DSL for making pretty pictures, I can't see a lot of harm in doing that |
| 07:12:41 | × | Moyst_ quits (~moyst@user/moyst) (Ping timeout: 268 seconds) |
| 07:13:15 | × | gff quits (~gff@user/gff) (Ping timeout: 268 seconds) |
| 07:13:47 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 07:15:05 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 07:16:05 | → | Moyst_ joins (~moyst@user/moyst) |
| 07:18:01 | <siers> | 1195532 |
| 07:18:21 | <siers> | oh, that's just an expired 2fa code, sorry |
| 07:18:25 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 07:19:37 | → | gff joins (~gff@user/gff) |
| 07:20:01 | × | c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 268 seconds) |
| 07:20:34 | × | ystael quits (~ystael@user/ystael) (Remote host closed the connection) |
| 07:20:49 | → | ystael joins (~ystael@user/ystael) |
| 07:22:31 | <tomsmeding> | interesting length |
| 07:23:09 | <siers> | I was thinking someone might say that and that's because I have a short repeat delay and the initial one repeated |
| 07:23:19 | <tomsmeding> | :') |
| 07:24:48 | → | c_wraith joins (~c_wraith@adjoint.us) |
| 07:31:48 | <[exa]> | siers: I know a root password when I see it! :D |
| 07:31:50 | → | nate4 joins (~nate@98.45.169.16) |
| 07:31:56 | <siers> | (': |
| 07:32:42 | <tdammers> | wait, what, you guys use multi-character root passwords? |
| 07:34:23 | <siers> | tdammers, your single-character password must have external entropy to achieve security — the password means so many things to you, that it has more information! |
| 07:34:34 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 252 seconds) |
| 07:35:00 | → | ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net) |
| 07:35:08 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 07:36:08 | → | mikoto-chan joins (~mikoto-ch@85-76-5-204-nat.elisa-mobile.fi) |
| 07:36:14 | <Axman6> | my root password is ******** |
| 07:36:22 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:36:25 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
| 07:37:47 | <[exa]> | (almost 20 bits of entropy in a single random unicode char may be better than most people's passwords.) |
| 07:38:21 | → | michalz joins (~michalz@185.246.204.69) |
| 07:39:25 | tomsmeding | . o O ( $ wc -l /usr/share/dict/words # -> 123115 ) |
| 07:39:30 | → | yvan-sraka joins (~yvan-srak@105.67.135.250) |
| 07:41:51 | → | ubert joins (~Thunderbi@178.165.202.57.wireless.dyn.drei.com) |
| 07:43:19 | → | vysn joins (~vysn@user/vysn) |
| 07:44:48 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Write error: Connection reset by peer) |
| 07:44:48 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 07:45:07 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 07:45:35 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 07:49:20 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 07:50:50 | <Axman6> | > 123115^4 |
| 07:50:52 | <lambdabot> | 229743841054595400625 |
| 07:51:04 | <Axman6> | > logBase 10 229743841054595400625 |
| 07:51:05 | <lambdabot> | 20.36124387769969 |
| 07:51:14 | <Axman6> | > logBase 2 229743841054595400625 |
| 07:51:16 | <lambdabot> | 67.63858808418391 |
| 07:51:26 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 07:51:37 | × | mikoto-chan quits (~mikoto-ch@85-76-5-204-nat.elisa-mobile.fi) (Ping timeout: 268 seconds) |
| 07:52:27 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 07:54:15 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:55:33 | → | acidjnk_new joins (~acidjnk@p5dd87aad.dip0.t-ipconnect.de) |
| 07:56:02 | → | mikoto-chan joins (~mikoto-ch@85-76-5-204-nat.elisa-mobile.fi) |
| 07:56:11 | → | fserucas joins (~fserucas@83.223.227.123) |
| 07:56:14 | × | fserucas quits (~fserucas@83.223.227.123) (Client Quit) |
| 07:56:28 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
| 07:56:33 | → | fserucas joins (~fserucas@83.223.227.123) |
| 07:59:24 | <tomsmeding> | Axman6: why ^4? |
| 07:59:30 | <tomsmeding> | oh four words, duh |
| 08:00:14 | <tomsmeding> | manhole spacey stretchering nonmetal's |
| 08:00:29 | <tomsmeding> | somewhat less enticing than the classic |
| 08:02:35 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:03:02 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 08:04:19 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:05:22 | → | tv joins (~tv@user/tv) |
| 08:07:48 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 08:10:49 | → | titibandit joins (~titibandi@xdsl-212-8-147-38.nc.de) |
| 08:11:38 | <chreekat> | The spacey manhole is for stretchering nonmetals |
| 08:12:04 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 244 seconds) |
| 08:19:33 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 08:19:35 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 08:20:37 | → | jgeerds joins (~jgeerds@55d46bad.access.ecotel.net) |
| 08:21:07 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 08:22:57 | → | jinsun joins (~jinsun@user/jinsun) |
| 08:24:49 | → | alternateved joins (~user@staticline-31-183-149-36.toya.net.pl) |
| 08:26:39 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:8014:4f1d:3973:a5c3) (Ping timeout: 268 seconds) |
| 08:27:04 | → | chele joins (~chele@user/chele) |
| 08:30:20 | × | titibandit quits (~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection) |
| 08:30:58 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds) |
| 08:33:14 | × | Inst quits (~Inst@2601:6c4:4080:3f80:9130:6712:37bc:57ff) (Ping timeout: 255 seconds) |
| 08:36:59 | → | ubert1 joins (~Thunderbi@178.165.178.67.wireless.dyn.drei.com) |
| 08:37:10 | × | ubert quits (~Thunderbi@178.165.202.57.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 08:37:10 | ubert1 | is now known as ubert |
| 08:39:30 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 08:41:34 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 08:41:48 | <Athas> | I'm reading an older paper on the GHC profiler and the sample profiling report for GHC itself shows a peak memory usage of 3MiB. |
| 08:41:52 | <Athas> | Where did we go wrong... |
| 08:43:53 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 08:44:18 | <merijn> | Athas: tbh, peak memory varies a lot, a lot of my executables are actually showing surprisingly small peak memory usage compared to the amount of data I make them dig through |
| 08:45:12 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:47:26 | <merijn> | Athas: tbh, I think one of the big issues (not just in Haskell, but programming overall) with poor performance has come from people misunderstanding/abusing Knuth's "premature optimisation" quote to not think about performance and optimisation at all |
| 08:47:29 | × | jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 252 seconds) |
| 08:47:42 | <merijn> | Since optimising bad code is a rather huge task |
| 08:48:31 | <kuribas> | merijn: yeah, Knuth is an optimization freak. |
| 08:48:32 | → | luffy joins (~chenqisu1@183.217.201.23) |
| 08:48:54 | <kuribas> | merijn: what he meant is that some optimizations simply don't improve anything, not that you should not optimize. |
| 08:49:20 | <kuribas> | Now it has started to mean "don't optimize, because computers are fast enough". |
| 08:50:31 | <merijn> | kuribas: No, what he meant was that most people's idea of "optimising" was micro-stuff (like rewriting divisions to shifts, etc.) where you don't know if they are either 1) a bottleneck at all or 2) if it's even an optimisation at all |
| 08:50:55 | <kuribas> | that's what I meant |
| 08:51:17 | <merijn> | Some of the beginner programmers in #programming discussing their C code "optimisation" stuff has me facepalm hard. Spending hours on stuff that's basically irrelevant >.> |
| 08:51:21 | <kuribas> | and it's even more true now that you cannot just count instructions. |
| 08:51:37 | <merijn> | Also, benchmarking is *hard* |
| 08:51:40 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 08:51:45 | <merijn> | People consistently underestimate that |
| 08:51:59 | <tomsmeding> | especially if the hotspot is a small loop |
| 08:52:22 | <merijn> | tomsmeding: That's when you get your boss to pay for vtune :p |
| 08:52:23 | → | chomwitt joins (~chomwitt@2a02:587:dc15:5e00:312b:b0d2:43e8:3622) |
| 08:53:07 | <tomsmeding> | I've had some grief from adding a printf in some unrelated place, which adjusted the offset of the address of said loop, which significantly changed performance |
| 08:53:34 | <kuribas> | ironically, LaTeX is encredibly slow because of all the stupid kpathsearch stuff. |
| 08:53:50 | <merijn> | kuribas: LaTeX is slow because lots of reasons :p |
| 08:53:53 | <tomsmeding> | well also if you start tikzing |
| 08:53:59 | <merijn> | I wonder if LaTeX3 will ever take off |
| 08:54:00 | <kuribas> | merijn: but not because of TeX |
| 08:54:43 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 08:56:03 | <dminuoso> | The main mistake with Knuth is not quoting properly I guess? |
| 08:56:13 | <dminuoso> | The original version goes "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." |
| 08:56:53 | × | avpx quits (~nick@ec2-54-214-223-1.us-west-2.compute.amazonaws.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:56:53 | × | hexeme quits (~hexeme@user/hexeme) (Quit: co'o ro do) |
| 08:57:22 | <dminuoso> | Or I guess this was Sir Tony Hoare actually? |
| 08:57:32 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 08:57:54 | → | titibandit joins (~titibandi@2a00:8a60:c000:1:8a13:bf74:b2:8d47) |
| 08:57:56 | <kuribas> | for sure it didn't mean "don't think about which are the optimal datastructures for our problem." |
| 08:58:14 | → | hexeme joins (~hexeme@user/hexeme) |
| 08:58:15 | → | avpx joins (~nick@ec2-54-214-223-1.us-west-2.compute.amazonaws.com) |
| 08:59:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds) |
| 08:59:45 | → | mmhat joins (~mmh@p200300f1c706f76bee086bfffe095315.dip0.t-ipconnect.de) |
| 08:59:57 | <merijn> | The real issue is: you can only tackle performance holistically |
| 09:00:20 | <merijn> | You can optimise the shit out of your inner loop, but that won't help you if you can't feed it data fast enough |
| 09:00:42 | × | wildsebastian quits (~wildsebas@2001:470:69fc:105::1:14b1) (Quit: You have been kicked for being idle) |
| 09:03:04 | <Athas> | This is why I prefer to only focus on application-level performance! It's easy to measure and you definitely only end up worrying about big changes. |
| 09:03:18 | → | wildsebastian joins (~wildsebas@2001:470:69fc:105::1:14b1) |
| 09:03:33 | <merijn> | Athas: I disagree about the easy to measure part :p |
| 09:03:48 | <dminuoso> | My perspective differs slightly. The act of religiously ignoring optimized code can easily lead to an accumulation of performance problems. Premature optimizing as rewriting without profiling is generally bad, but using efficient data structures or algorithms when it doesn't incur too much overhead is a great practice. |
| 09:04:17 | <zzz> | shouldn't it be immature? premature implies maturation |
| 09:04:30 | <dminuoso> | Even if the code in question is outside hot code. For one it reduces the chance of introducing performance regressions, and the more practice you have writing performant code, the better you get at it? |
| 09:04:57 | <kuribas> | dminuoso: I am sure Knuth was talking about small linear optimizations, not choosing correct algorithms/data structures. |
| 09:05:27 | <dminuoso> | So perhaps we should differentiate between "writing optimized code during rewriting" and "rewriting existing code after the fact" |
| 09:05:35 | <dminuoso> | Uhh hold on, that went wrong. |
| 09:05:50 | <dminuoso> | I meant "writing optimized code during rewriting" and "writing initially optimized code" |
| 09:06:18 | <Athas> | My experience is that it's very easy to use asymptotically efficient (or even optimal) data structures. Most of the performance problems I encounter are not asymptotic. |
| 09:06:28 | <kuribas> | dminuoso: for example, you could rewrite some code using SSE, but that will only bring a benifit if the code is a hotspot. |
| 09:06:43 | <dminuoso> | kuribas: I dont think that differentiation is meaningful at all. |
| 09:06:58 | <Athas> | Use Data.Map and you're in pretty good company asymptotically, but you can still end up with sluggish allocation-heavy code with bad locality. |
| 09:08:07 | <merijn> | Athas: My experience is that "arrays beat optimal data structures 90% of the time" |
| 09:08:20 | <Athas> | Yes, that is also my experience. |
| 09:08:25 | <Athas> | Brawns scale better than brains. |
| 09:08:48 | <dminuoso> | merijn: That goes into "things in cache are unbelivably fast" |
| 09:08:50 | <Athas> | It is unfortunate that Haskell is not great at arrays. |
| 09:08:55 | <merijn> | dminuoso: Sure |
| 09:08:59 | <tdammers> | the thing with asymptotic performance is that in a lot of cases, n is never anywhere near big enough for it to matter |
| 09:09:03 | <merijn> | Athas: I dunno, vector's pretty decent |
| 09:09:10 | <kuribas> | Athas: Vector work good enough? |
| 09:09:24 | <merijn> | tdammers: The thing is, when N *is* big, cache locality becomes *more* important |
| 09:09:33 | <tdammers> | merijn: haha, yeah, that too |
| 09:09:37 | <Athas> | Vector is indeed good! It is my favourite array library. But it's not great when you want something as exotic as a 2D array. |
| 09:09:43 | ← | wildsebastian parts (~wildsebas@2001:470:69fc:105::1:14b1) () |
| 09:09:52 | <merijn> | tdammers: I had a super intricate O(n log n) solution for a problem with big N (double digit billions) |
| 09:09:57 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 09:10:08 | <Athas> | And it's still a bit more clumsy than in many other languages (mostly because of the type zoo you have to traverse to get the Good Vector, i.e. unboxed or storable). |
| 09:10:43 | <merijn> | I rewrote it from heaps to arrays and doing multi-pass, so O(n) + a bit, and it was orders of magnitude faster |
| 09:10:44 | <Athas> | merijn: sounds like something that can easily end up just being O(n) cache misses. |
| 09:10:53 | <merijn> | Turns out, sequential scans of multi-GB are pretty fast |
| 09:10:58 | <dminuoso> | merijn, tdammers: With large things, there's not just cache locality but also cache friendly access. If you can trigger cache CPU prefetching early enough for future data to be in the cache line earlier. |
| 09:11:31 | <merijn> | Athas: Yeah, in the end I did a full pass over the data, counting elements per bucket, then radix sortig the whole thing, so two O(n) passes. Much faster |
| 09:11:35 | <tdammers> | merijn: cache misses kind of throw the big O off, yeah |
| 09:11:41 | <dminuoso> | So regarding multi-GB, its only fast if prefetched well enough, and you dont suffer from cache thrashing too much |
| 09:11:44 | <merijn> | Big O is all lies I tell you |
| 09:11:48 | <kuribas> | merijn: wouldn't chuncked lists or maps be better? |
| 09:11:50 | <siers> | caches and the low-level architecture is how I'm certain I know nothing about optimization |
| 09:12:13 | <kuribas> | siers: I can recommend anything by Agner Fog |
| 09:12:14 | <dminuoso> | tdammers: Ah, regarding that. https://www.ilikebigbits.com/2014_04_21_myth_of_ram_1.html and following parts! :) |
| 09:12:50 | <dminuoso> | Perhaps part of big-O is the physically incorrect assumption of random memory access being constant |
| 09:13:18 | <merijn> | big O is off by arbitrary amounts, depending on the access patterns, yes |
| 09:13:29 | <merijn> | dminuoso: Did you ever see PHK's article on the same thing? |
| 09:13:36 | <Athas> | Do modern CPUs perform much automatic prefetching? |
| 09:13:39 | <dminuoso> | merijn: No, do you have a link ready? |
| 09:13:42 | <dminuoso> | Athas: yes |
| 09:13:44 | <merijn> | https://queue.acm.org/detail.cfm?id=1814327 |
| 09:13:47 | <Athas> | dminuoso: this is not about big-O; this is about the RAM cost model. |
| 09:14:08 | × | haskl quits (~haskl@user/haskl) (Remote host closed the connection) |
| 09:14:10 | <merijn> | Athas: You need a memory model for Big-O analysis to make sense |
| 09:14:21 | <merijn> | And most people use "O(1) memory access" as their memory model |
| 09:14:23 | <merijn> | Which is bogus |
| 09:14:24 | → | haskl joins (~haskl@user/haskl) |
| 09:14:27 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) |
| 09:14:28 | <Athas> | merijn: sure, but it doesn't have to be the RAM model. It's not the idea of doing asymptotic analysis that's the problem. |
| 09:14:31 | <merijn> | But doing it right is nearly infinitely hard |
| 09:14:42 | <kuribas> | merijn: For example, I was thinking about storing time series data using lmdb, with chunks of contiguous series data. |
| 09:14:52 | × | haskl quits (~haskl@user/haskl) (Remote host closed the connection) |
| 09:14:55 | <merijn> | Athas: The problem is that the results of asymptotic analysis can be off by an arbitrary factor from reality |
| 09:15:05 | <kuribas> | merijn: wouldn't that be obviously better than a single big array? |
| 09:15:08 | → | haskl joins (~haskl@user/haskl) |
| 09:15:16 | <dminuoso> | Athas: Intel has two separate prefetchers. One is the data cache unit prefetcher that triggers on desc/ascending access of memory (it sort of assumes if you load addr, and then addr+n, you will also want addr+(2*n) where n is the cache line size |
| 09:15:22 | <Athas> | merijn: isn't the factor something like 'sqrt(n)' where 'n' is peak data requirement? |
| 09:15:26 | <merijn> | Athas: i.e. it's very possible (even easy) to construct problems where the "asymptotically worse" wins by near arbitrary margins over the asymptotically better one |
| 09:15:32 | <dminuoso> | The other is the instruction pointer stride prefetcher that monitors loads |
| 09:15:45 | <merijn> | Athas: No, because the impact is non-linear |
| 09:16:08 | × | mikoto-chan quits (~mikoto-ch@85-76-5-204-nat.elisa-mobile.fi) (Ping timeout: 244 seconds) |
| 09:16:09 | <Athas> | The sqrt(n) factor is non-linear. It assumes that every single operation requires the equivalent of a cache miss. |
| 09:16:10 | <merijn> | So you can get arbitrarily big blow ups depending on your access pattern |
| 09:16:26 | <siers> | merijn, what do you do at work that you have to solve such problems? |
| 09:16:28 | <Athas> | It's a *factor*; not an additional term. |
| 09:17:23 | <merijn> | siers: It's been awhile since I did this stuff, but I did a bunch of it when I was interning at Oracle working on distributed graph processing |
| 09:18:02 | <merijn> | siers: I always find it hard to explain this stuff, since I mostly learned it through osmosis :p |
| 09:18:25 | <siers> | :) that sounds like quite the experience |
| 09:18:35 | <merijn> | siers: But we've reached a point where consumer hardware is starting to have a lot of them same issues that HPC systems used to have |
| 09:18:52 | <kuribas> | merijn: cache sized chunks makes sense, but does it make sense to store large arrays? |
| 09:19:08 | <merijn> | i.e. nearly every consumer machine is multi-core now, although I guess we don't really have NUMA consumers systems yet? (or do we?) |
| 09:19:32 | <merijn> | kuribas: I mean, once you go big chunks, what even is the point of having lists of chunks over a giant array?) |
| 09:19:40 | <merijn> | The giant array is much easier to write code for |
| 09:19:54 | <kuribas> | merijn: fast insertion? |
| 09:20:20 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 09:20:32 | <merijn> | kuribas: If you insert you're doing it wrong anyway. You wanna precompute and preallocate the entire array |
| 09:20:49 | <kuribas> | merijn: well, in a database I want to insert... |
| 09:21:24 | × | etoast quits (~exaltedto@user/exaltedtoast) (Quit: Tschüss) |
| 09:21:38 | <kuribas> | merijn: also, allocation is slow. |
| 09:21:46 | <merijn> | kuribas: Which is why you precompute and do it once |
| 09:21:52 | → | etoast joins (~exaltedto@user/exaltedtoast) |
| 09:21:54 | <kuribas> | merijn: wouldn't it be faster to have preallocated chunks? |
| 09:22:16 | <merijn> | The database example seems a bit disingenious, since arrays are not an alternative to databases, those are very different usecases |
| 09:22:45 | <merijn> | kuribas: allocating 10GB or allocating 20 bytes takes roughly the same time, so I don't see how preallocating chunks helps you much? |
| 09:23:11 | <kuribas> | merijn: if they are preallocated, no allocation is necessary? |
| 09:23:33 | <kuribas> | well, I choose that example because it is relevant to our domain. |
| 09:23:37 | <merijn> | kuribas: Well, you have to do the preallocation? |
| 09:23:52 | <kuribas> | sure, but only once in a while. |
| 09:24:05 | <kuribas> | I can keep the blocks around. |
| 09:24:06 | <merijn> | kuribas: How is that different from preallocating a giant array? |
| 09:24:23 | <Athas> | I don't think there is any doubt that trees-of-chunks (e.g. B-trees) are superior to arrays for some problems. |
| 09:24:36 | <kuribas> | right |
| 09:25:29 | <kuribas> | I've been trying to push for this idea (we now store blocks in a RDBMs and load it into linked lists of data), but not much succesfully. |
| 09:25:58 | <merijn> | Anyway, I need to go back through scrolling through fonts to decide on the perfect title font :p |
| 09:26:20 | <Athas> | merijn: it's about performance right? That means italic Impact. |
| 09:26:24 | <Athas> | It is the fastest font. |
| 09:26:35 | <merijn> | Athas: Doesn't quite fit the cover design :p |
| 09:26:43 | <merijn> | Athas: I was thinking impact for the spine, though |
| 09:27:08 | <kuribas> | people have forgotten that title fonts are different from text fonts. |
| 09:27:13 | <merijn> | Because the big glyphs make it easier to keep legible over the background |
| 09:27:26 | <kuribas> | Using time new roman for fonts is heresy. |
| 09:27:27 | <merijn> | kuribas: I haven't, you should see my CV ;) |
| 09:27:34 | <kuribas> | good :) |
| 09:27:36 | cawfee_ | is now known as cawfee |
| 09:27:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 09:27:58 | <kuribas> | fonts used to be subtly different for different sizes. |
| 09:28:12 | <kuribas> | But since digital fonts the same is used for everything. |
| 09:28:24 | <kuribas> | I am not sure if variable fonts are taking off. |
| 09:29:18 | <Athas> | Wait, have you actually seen how normal people use fonts? E.g. flyers about a summer party or whatever posted by a home owner's association? I promise you they do not use the same font for everything. |
| 09:29:52 | <Athas> | Titles are big wavy polychromatic things, preferably with drop shadows and gradients. |
| 09:30:22 | <Athas> | The body text will be a more modest Comic Sans, clearly inspired by SPJ's slides. |
| 09:30:50 | <merijn> | Athas: No, don't use Comic Sans |
| 09:30:58 | <merijn> | Athas: Comic Neue :D |
| 09:31:10 | <merijn> | Athas: http://comicneue.com/ |
| 09:31:41 | merijn | moves to -offtopic |
| 09:31:54 | <Athas> | Yes, no. That has no heritage to it. Don't watch movie remakes, and only use the version of Comic Sans you can extract from a 1993 trial CD of Microsoft BOB. |
| 09:36:08 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:36:27 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:4859:a137:2c1f:9457) (Ping timeout: 268 seconds) |
| 09:40:19 | × | yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection) |
| 09:40:28 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:7101:c713:9f12:569c) |
| 09:46:03 | × | gawen_ quits (~gawen@user/gawen) (Quit: cya) |
| 09:52:13 | → | gawen joins (~gawen@user/gawen) |
| 09:56:39 | × | gff quits (~gff@user/gff) (Ping timeout: 268 seconds) |
| 10:01:36 | → | yvan-sraka joins (~yvan-srak@105.67.135.250) |
| 10:02:48 | × | coot quits (~coot@213.134.176.158) (Quit: coot) |
| 10:03:27 | → | nate4 joins (~nate@98.45.169.16) |
| 10:04:39 | → | pmarg joins (~pmarg@2a01:799:159f:9b00:3e59:ad16:5739:cb9b) |
| 10:05:38 | × | Ram-Z_ quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 240 seconds) |
| 10:08:09 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 10:12:55 | × | pgib quits (~textual@173.38.117.83) (Ping timeout: 252 seconds) |
| 10:13:28 | → | benin0 joins (~benin@183.82.31.108) |
| 10:19:18 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:7101:c713:9f12:569c) (Ping timeout: 264 seconds) |
| 10:22:35 | × | cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds) |
| 10:24:40 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 10:24:40 | → | pavonia_ joins (~user@user/siracusa) |
| 10:27:03 | × | pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 10:27:05 | pavonia_ | is now known as pavonia |
| 10:28:15 | → | img joins (~img@user/img) |
| 10:33:00 | <apache2> | "written on my copy of Microsoft ComicChat" |
| 10:33:41 | <apache2> | kuribas: vector fonts also generate different fonts for different sizes, accentuating different aspects to enhance readability. |
| 10:33:54 | <apache2> | or at least the virtual machine supports it |
| 10:34:17 | <APic> | # Appears as Boten Anna |
| 10:34:54 | → | coot joins (~coot@213.134.176.158) |
| 10:39:36 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:8722:865e:dc02:97b0) |
| 10:43:15 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:47:04 | <kuribas> | apache2: not in general |
| 10:48:39 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 10:56:31 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:58:46 | × | coot quits (~coot@213.134.176.158) (Quit: coot) |
| 11:00:46 | <Maxdamantus> | afaict, the people that make font renderers have basically decided not to enhance legibility and instead maintain sub-pixel positions in all cases. |
| 11:00:54 | <Maxdamantus> | at least horizontally. |
| 11:00:57 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 11:01:41 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 11:01:45 | → | nate4 joins (~nate@98.45.169.16) |
| 11:01:55 | <Maxdamantus> | you can see it in Freetype. If you use a TTF font, it becomes blurry by default from Freetype 2.7, unless you set FREETYPE_PROPERTIES=truetype:interpreter-version=35 |
| 11:02:38 | <Maxdamantus> | the same thing happened at some point with OTF as well, as they switched to the Adobe OTF hinter. |
| 11:03:31 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 11:03:40 | <Maxdamantus> | in both cases, horizontal hints are now ignored, so vertical stems are usually blurred. |
| 11:06:34 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 11:06:38 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 11:06:57 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 11:07:04 | <Maxdamantus> | I was actually working on making some browser-based demo of how I prefer font rendering to be done, but haven't got around to finishing it: https://maxdamantus.eu.org/ftv35-220719/site/ |
| 11:07:36 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 255 seconds) |
| 11:08:49 | <Maxdamantus> | that just uses Freetype compiled to WebAssembly, but most of the text should render in a way that I consider legible (assuming you're not using a fractionally scaled display, eg, on Wayland or macOS) |
| 11:13:58 | → | jgeerds joins (~jgeerds@55d46bad.access.ecotel.net) |
| 11:15:31 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer) |
| 11:15:47 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com) |
| 11:15:47 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
| 11:15:47 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 11:18:03 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 268 seconds) |
| 11:18:18 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 11:24:39 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 11:24:40 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 11:25:29 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:312b:b0d2:43e8:3622) (Ping timeout: 268 seconds) |
| 11:26:34 | × | kuribas quits (~user@silversquare.silversquare.eu) (Remote host closed the connection) |
| 11:26:55 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 11:28:04 | × | xal quits (~quassel@S01063c7c3f334fd0.vw.shawcable.net) (Ping timeout: 268 seconds) |
| 11:29:09 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
| 11:31:46 | → | mastarija joins (~mastarija@2a05:4f46:e03:6000:61a4:b62e:43b7:9ad3) |
| 11:34:33 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:36:20 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 11:40:33 | → | gff joins (~gff@user/gff) |
| 11:43:56 | → | Batzy_ joins (~quassel@user/batzy) |
| 11:43:57 | × | Batzy quits (~quassel@user/batzy) (Ping timeout: 268 seconds) |
| 11:46:04 | <albet70> | > let intersect = foldl1 (\xs ys -> [ x |x <- xs, elem x ys]) in intersect [[1,2,3],[4,3,5], [3,7,8,9,12]] |
| 11:46:07 | <lambdabot> | [3] |
| 11:46:25 | <albet70> | how to speed this up? |
| 11:48:09 | <zzz> | what are some possible arguments against StricData? |
| 11:49:52 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 11:51:36 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 11:53:51 | × | mastarija quits (~mastarija@2a05:4f46:e03:6000:61a4:b62e:43b7:9ad3) (Ping timeout: 268 seconds) |
| 11:54:22 | <merijn> | zzz: It is nearly equally likely to make performance worse as it is to make performance better |
| 11:54:42 | <merijn> | zzz: You cannot absolve yourself from thinking about strictness. StrictData merely changes the default behaviour |
| 11:55:25 | → | jinsun joins (~jinsun@user/jinsun) |
| 11:56:08 | <arahael> | I naively wrote something in purescript the same way I would in haskell. |
| 11:56:15 | <arahael> | Result: Took ages, then crashed. |
| 11:59:55 | <dminuoso> | albet70: With Data.Set |
| 12:01:35 | × | yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection) |
| 12:01:39 | <zzz> | merijn: that's what i figured |
| 12:03:04 | <albet70> | dminuoso , for example? |
| 12:04:03 | <dminuoso> | albet70: https://hackage.haskell.org/package/containers-0.6.6/docs/Data-Set.html#v:intersection |
| 12:04:12 | <dminuoso> | Whether this is truly faster depends on the real size of your lists. |
| 12:14:21 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 12:18:42 | × | alternateved quits (~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection) |
| 12:19:43 | × | joo-_ quits (~joo-_@fsf/member/joo--) (Ping timeout: 268 seconds) |
| 12:19:49 | → | sabry joins (~sabry@41.44.89.119) |
| 12:19:57 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:22:12 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 12:25:53 | × | luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds) |
| 12:27:24 | → | natechan joins (~nate@98.45.169.16) |
| 12:27:45 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 268 seconds) |
| 12:28:02 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 12:28:21 | × | nahcetan quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 12:40:48 | → | oo_miguel joins (~pi@77.252.47.226) |
| 12:53:08 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 12:55:56 | → | ph88 joins (~ph88@sonicwall.snp-ag.com) |
| 12:57:16 | <tomsmeding> | if you don't need to treat the lists as sets in different places too, you might get a better constant factor by sorting the lists first and then merge pairwise à la mergesort |
| 12:57:28 | <tomsmeding> | (but profile first) |
| 12:58:55 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 13:02:29 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:03:30 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 13:04:29 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:06:30 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 13:09:35 | → | img joins (~img@user/img) |
| 13:10:24 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 13:15:07 | × | Hash quits (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) (Quit: ZNC - https://znc.in) |
| 13:15:36 | → | yvan-sraka joins (~yvan-srak@105.67.135.250) |
| 13:19:21 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 13:25:05 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 13:25:33 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:27:45 | → | fr33domlover[m] joins (~fr33domlo@2001:470:69fc:105::1:3bb6) |
| 13:31:20 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:31:33 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.6) |
| 13:32:47 | → | nate4 joins (~nate@98.45.169.16) |
| 13:38:11 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 13:40:56 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 13:41:45 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 13:48:49 | → | chomwitt joins (~chomwitt@2a02:587:dc15:5e00:bc9f:ef3a:bfe5:3be8) |
| 13:50:48 | × | benin0 quits (~benin@183.82.31.108) (Quit: The Lounge - https://thelounge.chat) |
| 13:51:08 | → | zer0bitz joins (~zer0bitz@2001:2003:f748:2000:4941:f6bb:794b:548e) |
| 13:52:36 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 13:53:12 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 13:54:08 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:bc9f:ef3a:bfe5:3be8) (Ping timeout: 268 seconds) |
| 13:55:17 | → | chomwitt joins (~chomwitt@2a02:587:dc15:5e00:b1ae:6546:179b:240) |
| 13:56:22 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 13:56:35 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 14:00:46 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:b1ae:6546:179b:240) (Remote host closed the connection) |
| 14:01:05 | → | chomwitt joins (~chomwitt@2a02:587:dc15:5e00:1638:9f00:c92a:288b) |
| 14:01:32 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds) |
| 14:03:20 | → | giedreich joins (~giedreich@host-92-26-16-130.as13285.net) |
| 14:05:52 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
| 14:06:40 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 14:06:52 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 14:07:57 | <bairyn> | Have the online GHC docs gone missing from haskell.org? |
| 14:08:24 | <merijn> | no? |
| 14:08:44 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 14:08:46 | <merijn> | actually...maybe? xD |
| 14:08:50 | <merijn> | @where usersguide |
| 14:08:50 | <lambdabot> | I know nothing about usersguide. |
| 14:08:54 | <merijn> | @where users-guide |
| 14:08:54 | <lambdabot> | see @where ghc-guide or @where cabal-guide |
| 14:08:55 | × | yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection) |
| 14:08:57 | <tomsmeding> | the /html is gone from the url |
| 14:08:59 | <merijn> | @where ghc-guide |
| 14:08:59 | <lambdabot> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide |
| 14:08:59 | <tomsmeding> | https://downloads.haskell.org/~ghc/latest/docs/users_guide/index.html |
| 14:09:05 | <geekosaur> | 9.4.1 is as usually not up yet |
| 14:09:08 | <geekosaur> | they take a few days |
| 14:09:29 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 14:09:32 | <geekosaur> | actually, iirc hadrian built them wrong and it'll be fixed in 9.4.2, hich is a priority to get released |
| 14:09:39 | <geekosaur> | *which |
| 14:09:42 | <dolio> | If you replace 'latest' with an earlier version they're still there. |
| 14:09:50 | <tomsmeding> | dolio: latest is also there, but without /html in the url |
| 14:10:05 | <merijn> | tomsmeding: Right, succesfully breaking google and links everywhere :p |
| 14:10:07 | <geekosaur> | right, that's the hadrian bug |
| 14:10:10 | <tomsmeding> | ah |
| 14:10:11 | <merijn> | Which is, kinda bad :p |
| 14:10:21 | <merijn> | the top google hit leads to a 404 now |
| 14:10:43 | <dolio> | Oh huh. |
| 14:12:22 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 14:13:51 | → | Hash joins (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) |
| 14:14:03 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 14:14:05 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 14:14:18 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 14:15:01 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 14:16:56 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 14:17:49 | → | zebrag joins (~chris@user/zebrag) |
| 14:21:56 | → | yvan-sraka joins (~yvan-srak@105.67.135.250) |
| 14:22:08 | → | valhardt joins (~parsival@209.141.195.79) |
| 14:22:59 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 14:24:35 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 244 seconds) |
| 14:26:10 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:1638:9f00:c92a:288b) (Ping timeout: 268 seconds) |
| 14:29:26 | × | giedreich quits (~giedreich@host-92-26-16-130.as13285.net) (Quit: Connection closed) |
| 14:29:55 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 268 seconds) |
| 14:29:57 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 14:30:46 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 14:37:40 | × | kuribas quits (~user@silversquare.silversquare.eu) (Remote host closed the connection) |
| 14:38:30 | valhardt | is now known as valzant |
| 14:41:14 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 14:45:29 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:45:54 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:47:22 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 14:47:22 | <albet70> | dminuoso , for example? |
| 14:52:55 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 14:55:36 | → | razetime joins (~quassel@117.193.4.185) |
| 15:00:07 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:00:43 | <zzz> | any impediment for the compiler to simplify arithmetic expressions as an optimization? |
| 15:01:41 | <merijn> | zzz: You mean technically or conceptually? :p |
| 15:02:30 | <merijn> | I guess it also means what you mean exactly by simplifying? i.e. just constant folding or something more complex? |
| 15:02:49 | × | acidjnk_new quits (~acidjnk@p5dd87aad.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 15:04:53 | Hash | is now known as stoned |
| 15:05:05 | → | slack1256 joins (~slack1256@wsip-184-177-0-226.no.no.cox.net) |
| 15:05:38 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:12:41 | <tomsmeding> | why does GadtC in template-haskell have a _list_ of names? https://hackage.haskell.org/package/template-haskell-2.18.0.0/docs/Language-Haskell-TH.html#t:Con |
| 15:13:39 | × | pmarg quits (~pmarg@2a01:799:159f:9b00:3e59:ad16:5739:cb9b) (Ping timeout: 268 seconds) |
| 15:14:30 | <tomsmeding> | I can't seem to write a gadt that produces anything else than a list of length 1 there |
| 15:14:42 | × | yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection) |
| 15:19:30 | → | CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 15:19:51 | <Lears> | tomsmeding: Maybe it's because GADTSyntax allows `C1, C2 :: ...`? |
| 15:20:36 | <tomsmeding> | O.o |
| 15:20:45 | <tomsmeding> | wow TIL |
| 15:20:59 | <tomsmeding> | Lears++ |
| 15:21:39 | <tomsmeding> | oh |
| 15:21:57 | <tomsmeding> | Lears: even if I use C1, C2 :: ... syntax, I still get separate GadtC values for every constructor |
| 15:22:11 | <tomsmeding> | so perhaps that was the intention (can't really be anything else), but it wasn't implemented |
| 15:22:48 | <tomsmeding> | furthermore, RecGadtC also has the list-of-names parameter, but declaring multiple constructors with the same record field names is clearly nonsense! |
| 15:22:56 | <tomsmeding> | oh wait it isn't, heh |
| 15:23:00 | <tomsmeding> | disregard that |
| 15:23:57 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:8722:865e:dc02:97b0) (Quit: WeeChat 2.8) |
| 15:25:16 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 15:25:56 | → | pmarg joins (~pmarg@224.80-203-5.customer.lyse.net) |
| 15:30:08 | × | pmarg quits (~pmarg@224.80-203-5.customer.lyse.net) (Read error: Connection reset by peer) |
| 15:34:00 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6) |
| 15:35:20 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 15:37:02 | → | Guest56 joins (~Guest56@152.red-88-14-101.dynamicip.rima-tde.net) |
| 15:37:03 | × | razetime quits (~quassel@117.193.4.185) (Ping timeout: 252 seconds) |
| 15:38:05 | × | Guest56 quits (~Guest56@152.red-88-14-101.dynamicip.rima-tde.net) (Client Quit) |
| 15:38:06 | → | vglfr joins (~vglfr@37.73.137.225) |
| 15:39:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:39:30 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds) |
| 15:43:41 | → | nate4 joins (~nate@98.45.169.16) |
| 15:47:34 | × | vglfr quits (~vglfr@37.73.137.225) (Ping timeout: 268 seconds) |
| 15:49:18 | → | razetime joins (~quassel@117.254.34.226) |
| 15:49:53 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 15:52:41 | → | mikoto-chan joins (~mikoto-ch@85-76-75-89-nat.elisa-mobile.fi) |
| 15:53:55 | <Athas> | Dinging on GHC for being slow is very enjoyable, but it can compile my main project from scratch in 4m27s on my laptop. That's enough for me. |
| 15:54:07 | <Athas> | I do vaguely recall it wasn't always this fast. |
| 15:54:42 | <merijn> | Athas: The 9.x series has gotten quite some performance work |
| 15:55:02 | × | sabry quits (~sabry@41.44.89.119) (Quit: Client closed) |
| 15:55:05 | <Athas> | Yes, I'm using 9.2.4. |
| 15:55:37 | <Athas> | I also made an effort to split the module dependency tree of my program to be wider. GHC is pretty decent at intra-package parallelisation nowadays. |
| 15:55:43 | × | titibandit quits (~titibandi@2a00:8a60:c000:1:8a13:bf74:b2:8d47) (Remote host closed the connection) |
| 15:56:21 | → | coot joins (~coot@213.134.176.158) |
| 15:57:35 | <tomsmeding> | Athas: are you compiling with -j in GHC's flags? |
| 15:58:27 | <Athas> | Yes. |
| 15:58:27 | <merijn> | I was gonna port my code to GHC 9.x, but too much dependency churn to be worth it :p |
| 15:58:52 | <Athas> | Version migration has been pretty easy for me for the past few years. Maybe I'm just getting lucky. |
| 15:59:34 | <merijn> | Athas: Yeah, but this is stuff that's been pinned and unupdated since late 2018 :p |
| 16:00:25 | <merijn> | So with 1 or 2 (barely) maintained packages it quickly because quite a hassle to get everything working again. So I decided to "not fuck with it" until I finished archiving on Zenodo :p |
| 16:00:35 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:01:54 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 264 seconds) |
| 16:01:55 | → | acidjnk_new joins (~acidjnk@p200300d6e70586293de428a35ddddd41.dip0.t-ipconnect.de) |
| 16:07:18 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:07:50 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:12:11 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 16:13:01 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:15:12 | → | titibandit joins (~titibandi@xdsl-212-8-147-38.nc.de) |
| 16:22:43 | → | nate4 joins (~nate@98.45.169.16) |
| 16:24:45 | × | mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving) |
| 16:26:55 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 16:28:53 | <zzz> | merijn: well i guess i mean something like, for example, if you have `f x = div x y * mod x y` it knows that `f = id` |
| 16:29:15 | <zzz> | i mean |
| 16:29:40 | <zzz> | f x = div x y * y + mod x y |
| 16:30:09 | <zzz> | stuff like this |
| 16:30:41 | <geekosaur> | that depends on laziness, though |
| 16:31:06 | <geekosaur> | and I'm not sure ghc knows that the wired in Int and Integer types are strict |
| 16:31:35 | <geekosaur> | such that that equivalence only holds for *lazy* types, since with strict types it could bottom when `id` wouldn't |
| 16:32:06 | <geekosaur> | laziness concerns complicate optimization considerably, sadly |
| 16:33:45 | × | valzant quits (~parsival@209.141.195.79) (Ping timeout: 244 seconds) |
| 16:38:15 | <merijn> | zzz: I'm not even immediately convinced that's true :p |
| 16:38:27 | <merijn> | mod vs rem is confusing and complicated :p |
| 16:39:25 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
| 16:41:02 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 16:41:23 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:44:36 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 16:45:18 | × | Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Quit: Chai-T-Rex) |
| 16:46:15 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 16:46:44 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:46:56 | <zzz> | well, div leaves out the remainder and mod is just rem but it behaves better with negative numbers in this case |
| 16:47:49 | <zzz> | so `div x y * y` is just `x - (mod x y)` |
| 16:48:11 | × | mikoto-chan quits (~mikoto-ch@85-76-75-89-nat.elisa-mobile.fi) (Ping timeout: 255 seconds) |
| 16:48:17 | <Lears> | We have divMod and quotRem so you can remember which to use with which. Just pretend div/mod/quot/rem don't even exist. |
| 16:48:50 | <zzz> | this was just a quick example of something "simplifiable" i came up with on the spot |
| 16:50:08 | <zzz> | Lears: and eeew partial funcions :p |
| 16:50:28 | <dolio> | The thing is, if you implement that simplification, will it ever actually matter? |
| 16:51:44 | <zzz> | dolio: not this specifically, but some general rules for simplification. i guess the compiler would have to know which functions are inverses of eachother, which are commutative, wich are associative, etc |
| 16:52:15 | <zzz> | wolfram alfa doesnt do too bad simplifying expressions |
| 16:52:23 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 16:52:23 | <albet70> | dminuoso , for example? |
| 16:53:29 | <Lears> | We kinda have this already, e.g. `fmap f . fmap g` is replaced with `fmap (f . g)`. But it's a bit fragile, so it might be hard to have it handle arithmetic simplifications flexibly or thoroughly. |
| 16:54:08 | <Lears> | (the mechanism is called RULES) |
| 16:55:00 | × | CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 16:55:05 | <zzz> | aren't those just ad hoc simplifications? |
| 16:55:43 | <zzz> | but i guess i know what you mean |
| 16:55:51 | <zzz> | where do you draw the line |
| 16:56:24 | <Lears> | Is what wolfram does any different? It's probably just more careful about how it collects, composes and applies its ad hoc rules. |
| 16:57:03 | <zzz> | i have no idea but i imagine it's something a but more sophisticated |
| 16:57:17 | <zzz> | *bit |
| 16:59:04 | → | mikoto-chan joins (~mikoto-ch@85-76-75-89-nat.elisa-mobile.fi) |
| 16:59:31 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 17:00:59 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:03:55 | → | adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan) |
| 17:04:42 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
| 17:05:04 | × | razetime quits (~quassel@117.254.34.226) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 17:05:45 | → | chomwitt joins (~chomwitt@2a02:587:dc15:5e00:589f:ba83:fe7:256a) |
| 17:07:43 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:07:48 | <carbolymer> | how do I compose lenses? https://bpa.st/URDA |
| 17:08:28 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:08:43 | → | Kaipei joins (~Kaiepi@142.68.249.28) |
| 17:08:58 | → | moonsheep joins (~user@user/moonsheep) |
| 17:11:11 | × | Kaiepi quits (~Kaiepi@142.68.249.28) (Ping timeout: 255 seconds) |
| 17:11:28 | <geekosaur> | you're composing them correctly but how those lenses compose makes no sense |
| 17:12:10 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:589f:ba83:fe7:256a) (Ping timeout: 268 seconds) |
| 17:12:11 | <[exa]> | carbolymer: I guess it's just the other way? (lenses compose left to right) |
| 17:12:49 | <[exa]> | as in, I see no reason why `db . query` wouldn't work |
| 17:13:01 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 17:13:55 | <moonsheep> | Is there any way to have multiple readers in an MTL stack? This article (https://ro-che.info/articles/2014-06-11-problem-with-mtl) suggests merging both readers with one record, but that isn't really possible in my case, since my actual monad stacks each individually have a reader, and one is part of the other |
| 17:14:22 | <moonsheep> | I understand the problem, but I was wondering what is the best workaround |
| 17:14:23 | <carbolymer> | [exa]: you're right, thanks |
| 17:14:32 | <moonsheep> | Preferably one that doesn't require writing tons of boilerplate. |
| 17:15:02 | <geekosaur> | we just have a custom liftX that lifts past the outer Reader so you can reach the inner one |
| 17:15:23 | <moonsheep> | But I can't have a function with multiple MonadReaders in its context because of functional dependencies |
| 17:16:04 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 17:16:25 | <dolio> | It isn't multiple MonadReaders for the same monad. |
| 17:16:31 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 17:16:51 | → | k` joins (~user@2605:a601:a60d:5400:55e6:a9b6:adcd:beaa) |
| 17:17:29 | <[exa]> | moonsheep: you might wrap Reader (possibly automatically with DerivingVia and everything) to make a lot of reader types with lots of different MonadReader class types, or have an indexed MonadReader class (such as `MonadReader Env1 Int a`), but honestly just don't |
| 17:17:49 | <[exa]> | moonsheep: what's the usecase? |
| 17:17:58 | <k`> | What is `Data.Default.def` for `Int`? 1 or 0 or something else? (It's not documented and the source is hidden from Hoogle.) |
| 17:17:59 | <Lears> | moonsheep: I have some code with three monad stacks, each a reader over the last. Two custom lifts and, best of all, two withRunIn*s, and all your problems are solved. |
| 17:19:13 | <[exa]> | k`: here: https://hackage.haskell.org/package/data-default-class-0.1.2.0/docs/src/Data-Default-Class.html#line-92 |
| 17:19:25 | <[exa]> | (it's in another package) |
| 17:20:48 | → | neceve joins (~quassel@2.26.93.14) |
| 17:20:54 | → | cheater joins (~Username@user/cheater) |
| 17:21:49 | <geekosaur> | 0, as I learned all too well close to a year ago… |
| 17:22:36 | <monochrom> | This is why Default makes less sense than Monoid. |
| 17:25:21 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:26:30 | × | jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 264 seconds) |
| 17:27:27 | <geekosaur> | https://github.com/xmonad/xmonad/commit/383ffb772e4a is why Default makes less sense than Monoid |
| 17:28:08 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:29:03 | × | ph88 quits (~ph88@sonicwall.snp-ag.com) (Read error: Connection reset by peer) |
| 17:30:43 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 17:30:46 | <carbolymer> | is there a way to change functions this way `f(a -> b ->c) -> a -> b -> f c` for any number of arguments? |
| 17:31:47 | <carbolymer> | Applicative f |
| 17:32:27 | <monochrom> | If you don't mind "upgrading" to f(a -> b ->c) -> f a -> f b -> f c, it becomes liftA3. |
| 17:32:31 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 17:32:59 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 17:33:02 | <monochrom> | I might right "f <*> pure a <*> pure b <*> ... <*> pure z" in general. |
| 17:33:08 | <monochrom> | s/right/write/ |
| 17:33:18 | <monochrom> | "Mr. Wright is right" :) |
| 17:33:26 | <carbolymer> | monochrom: actually I mind ;) |
| 17:33:39 | × | titibandit quits (~titibandi@xdsl-212-8-147-38.nc.de) (Quit: Leaving.) |
| 17:33:40 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:34:17 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds) |
| 17:35:23 | <Lears> | :t let ff &> x = ff <&> ($ x); infixl 4 &> in \ff x y z -> ff &> x &> y &> z |
| 17:35:24 | <lambdabot> | Functor f => f (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> f b |
| 17:35:29 | × | Kaipei quits (~Kaiepi@142.68.249.28) (Ping timeout: 252 seconds) |
| 17:35:39 | <Lears> | You can do something like that, though I'm not sure about the name. |
| 17:35:47 | <Lears> | Or if it exists somewhere. |
| 17:36:13 | <carbolymer> | @_@ |
| 17:36:28 | <monochrom> | Yeah I was about to suggest that too. |
| 17:36:54 | <ddellacosta> | where can I find more on how the choices for the extensions in GHC2021 were made? I'm just curious |
| 17:37:22 | <monochrom> | &> is like <*> except that it just needs Functor because it's "downgraded" to f (x -> y) -> x -> f y |
| 17:37:50 | <carbolymer> | ddellacosta: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0380-ghc2021.rst |
| 17:37:59 | <ddellacosta> | carbolymer: thank you! |
| 17:38:04 | <carbolymer> | ddellacosta: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html |
| 17:38:21 | × | phma quits (~phma@host-67-44-208-154.hnremote.net) (Read error: Connection reset by peer) |
| 17:38:32 | <moonsheep> | [exa]: so there really isn't anything I can do other than wrapping everything in newtypes and making classes? |
| 17:39:14 | → | phma joins (~phma@host-67-44-208-161.hnremote.net) |
| 17:39:23 | <carbolymer> | monochrom: makes sense |
| 17:39:32 | <carbolymer> | Lears: thans, I'l try that |
| 17:40:42 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 17:40:54 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 17:43:14 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:46:19 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:51:46 | → | gmg joins (~user@user/gehmehgeh) |
| 17:52:11 | × | adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
| 17:52:32 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 17:52:38 | → | econo joins (uid147250@user/econo) |
| 17:52:49 | → | slac79690 joins (~slack1256@2607:fb90:c6b:3cba:71e3:d44c:d4aa:8a0b) |
| 17:53:25 | → | valzant joins (~parsival@209.141.195.79) |
| 17:55:11 | × | slack1256 quits (~slack1256@wsip-184-177-0-226.no.no.cox.net) (Ping timeout: 268 seconds) |
| 17:57:37 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 18:05:09 | × | geranim0 quits (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Remote host closed the connection) |
| 18:05:26 | <monochrom> | Haha I suck at this game: http://www.doscienceto.it/whos-that-monoid/ |
| 18:05:55 | → | geranim0 joins (~geranim0@modemcable062.79-202-24.mc.videotron.ca) |
| 18:06:06 | × | aeka quits (~aeka@2606:6080:1001:17:9ea4:71f9:d294:d7b7) (Quit: ZNC 1.8.2 - https://znc.in) |
| 18:06:25 | → | slack1256 joins (~slack1256@69.85.193.146) |
| 18:06:30 | → | aeka joins (~aeka@user/hiruji) |
| 18:06:54 | × | mikoto-chan quits (~mikoto-ch@85-76-75-89-nat.elisa-mobile.fi) (Ping timeout: 268 seconds) |
| 18:08:00 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 18:08:08 | × | valzant quits (~parsival@209.141.195.79) (Ping timeout: 268 seconds) |
| 18:08:23 | → | mikoto-chan joins (~mikoto-ch@164.5.249.78) |
| 18:08:46 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 18:08:49 | × | slac79690 quits (~slack1256@2607:fb90:c6b:3cba:71e3:d44c:d4aa:8a0b) (Ping timeout: 244 seconds) |
| 18:09:13 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 18:09:27 | × | moonsheep quits (~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 18:10:05 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 18:10:06 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:10:13 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec) |
| 18:10:52 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 18:11:26 | × | slack1256 quits (~slack1256@69.85.193.146) (Ping timeout: 255 seconds) |
| 18:13:08 | euandreh_ | is now known as euandreh |
| 18:14:45 | → | kenran joins (~kenran@200116b82be1610022a2541211968a00.dip.versatel-1u1.de) |
| 18:14:52 | × | kenran quits (~kenran@200116b82be1610022a2541211968a00.dip.versatel-1u1.de) (Client Quit) |
| 18:14:58 | <monochrom> | cabal-install 3.8 looks nice. |
| 18:15:05 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 18:16:06 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:17:10 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 18:19:36 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Read error: Connection reset by peer) |
| 18:19:36 | × | ec quits (~ec@gateway/tor-sasl/ec) (Write error: Connection reset by peer) |
| 18:19:36 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Write error: Connection reset by peer) |
| 18:20:01 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:20:04 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 18:20:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 18:20:07 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 18:20:13 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:20:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 18:21:17 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:22:43 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 18:23:04 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 18:23:13 | → | mastarija joins (~mastarija@2a05:4f46:e03:6000:a177:7533:ec47:fb52) |
| 18:23:22 | → | valzant joins (~parsival@209.141.195.79) |
| 18:23:24 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:23:29 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 18:23:51 | × | mastarija quits (~mastarija@2a05:4f46:e03:6000:a177:7533:ec47:fb52) (Client Quit) |
| 18:28:15 | × | neceve quits (~quassel@2.26.93.14) (Remote host closed the connection) |
| 18:31:23 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:31:36 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 18:32:36 | → | titibandit joins (~titibandi@xdsl-212-8-147-38.nc.de) |
| 18:32:58 | <zzz> | from the gloss docs, the the 7th argument to the function `play`, of type `(Float -> world -> world)` is described as "A function to step the world one interation. It is passed the period of time (in seconds) needing to be advanced.". I don't understand what this means. |
| 18:33:08 | × | titibandit quits (~titibandi@xdsl-212-8-147-38.nc.de) (Client Quit) |
| 18:33:09 | → | ianliu joins (~Ian_Liu_R@2804:431:cfcf:8a26:265:a252:7b71:aacb) |
| 18:33:17 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:33:36 | <zzz> | What is "the period of time needing to be advanced" ? |
| 18:34:01 | <geekosaur> | the amount of time that has passed in the "world" |
| 18:35:05 | <monochrom> | Suppose you intend a frame rate of 10 frames per second. Then the next frame is 0.1 seconds after the previous frame. Now s/frame/world/ because what's a frame other than a projection of the world. |
| 18:35:33 | <zzz> | i see |
| 18:36:02 | → | pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl) |
| 18:36:56 | <ianliu> | on https://wiki.haskell.org/Foreign_Function_Interface there is a warning on the top saying not to use ccall and use capi, but I couldn't find any working "hello world" for capi. Is there any "tutorial" on capi out there? |
| 18:37:02 | <zzz> | so the world gets updated at x time and rendered at x+1/fps, at which point the world gets updated again? |
| 18:37:41 | → | jgeerds joins (~jgeerds@55d46bad.access.ecotel.net) |
| 18:37:45 | <monochrom> | The GHC User's Guide has capi examples. |
| 18:38:32 | <monochrom> | But anything that ccall works for, you can just s/ccall/capi/ and it still works, just via a different path. |
| 18:39:30 | <pagnol> | are there any packages which provide a Tree class with implementations of all sorts of algorithms on trees? |
| 18:39:41 | <monochrom> | And then capi also works for, for example, C macros. |
| 18:40:12 | <monochrom> | (Just pretend the macro is a function/global-variable of the appropriate type.) |
| 18:41:00 | <monochrom> | The GHC User's Guide also explains how it manages to get macros to work. |
| 18:41:05 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 18:41:25 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:41:49 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 18:41:51 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 18:41:55 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:42:37 | → | Guest|1 joins (~Guest|1@172.58.171.168) |
| 18:43:19 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 18:43:35 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 18:45:42 | → | Tuplanolla joins (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) |
| 18:48:26 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:48:59 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 18:53:46 | × | Guest|1 quits (~Guest|1@172.58.171.168) (Ping timeout: 268 seconds) |
| 18:55:52 | <ianliu> | monochrom: hmm, changing ccall to capi gives me a parse error |
| 18:56:15 | <geekosaur> | did you do {-# LANGUAGE CApiFFI #-} ? |
| 18:56:35 | stoned | is now known as Hash |
| 18:56:38 | <ianliu> | ah |
| 18:56:41 | <ianliu> | now it works :P |
| 18:56:42 | <ianliu> | thanks |
| 18:57:02 | <monochrom> | Did the wiki remind you? |
| 18:57:55 | <monochrom> | No. This is why I don't read the wiki. |
| 18:58:04 | <ianliu> | https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/ffi.html?highlight=capiffi#extension-CApiFFI This page here doesn't show a working example, but now that geekosaur replied, I see that the user guide says "The CApiFFI *extension*" |
| 18:58:05 | geekosaur | just has it memorized |
| 18:58:46 | <ianliu> | I don't program in haskell very much, so I'm not used to it |
| 18:59:03 | <monochrom> | No worries, I'm roasting low quality haskell wiki |
| 18:59:40 | <monochrom> | Right? An off-the-hand remark "use capi instead of ccall" and no support. |
| 19:01:16 | <monochrom> | The fact is that ccall is still in use and is still suitable for a lot of things. |
| 19:01:32 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:01:43 | → | chomwitt joins (~chomwitt@2a02:587:dc15:5e00:671f:736d:4d41:28c3) |
| 19:01:52 | <geekosaur> | ghc hq is strongly pushing capi and hinting that ccall may go away in the future |
| 19:02:04 | <geekosaur> | it causes too many weird support issues |
| 19:02:06 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 19:02:18 | <monochrom> | The useful thing to know is under what condition ccall fails and why doesn't capi suffer the same issue. |
| 19:02:37 | <geekosaur> | the problem is, knowing that requires internals knowledge of the thing you're calling |
| 19:02:53 | → | Boone joins (~Boone@172.58.171.168) |
| 19:03:00 | <geekosaur> | like, you have to know that glibc hides under several layers of macros the fact that there are four variants of the stat() syscall |
| 19:03:09 | → | McCabe joins (~McCabe@63.sub-174-231-82.myvzw.com) |
| 19:03:14 | <monochrom> | Sure, but I don't mean that. |
| 19:03:18 | <geekosaur> | and the only way you'll get that right is to call it with capi |
| 19:03:34 | <monochrom> | I just mean that, e.g., ccall fails if the "function" is a macro. |
| 19:03:40 | <monochrom> | That is not rocket science. |
| 19:03:46 | <geekosaur> | right, but when do you know that? |
| 19:04:16 | <geekosaur> | "not rocket science" to those of us who know C and know how to trace through possibly multiple layers of include files |
| 19:04:23 | × | Boone quits (~Boone@172.58.171.168) (Client Quit) |
| 19:04:50 | <monochrom> | No, just who know C. |
| 19:04:50 | <geekosaur> | and looking in a symbol table won't necessarily work because it may have one that's not guaranteed to work without all those macros |
| 19:05:14 | <monochrom> | Again, I do not mean that one has to find out whether execvp is a macro. |
| 19:06:47 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 19:08:52 | × | McCabe quits (~McCabe@63.sub-174-231-82.myvzw.com) (Quit: Connection closed) |
| 19:10:01 | <geekosaur> | in any case, you're arguing with the wrong person. as I said, ghc hq is deprecating ccall in favor of capi |
| 19:10:19 | <geekosaur> | argue it with them or make your peace with it |
| 19:11:20 | <monochrom> | I make peace with that. I just want more people to know why. |
| 19:12:12 | <geekosaur> | that's fine as long as it you and not ghc hq that has to do so, I suspect 🙂 |
| 19:12:17 | × | Kaiepi quits (~Kaiepi@142.68.249.28) (Ping timeout: 252 seconds) |
| 19:12:21 | <geekosaur> | *it's |
| 19:13:35 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 19:13:41 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:14:06 | <monochrom> | And someone who cares about the wiki could have just done a s/ccall/capi/g instead of "oh let's be too afraid to change existing content, let's just add one mysterious line at the top". |
| 19:14:14 | <monochrom> | (I no longer care about the wiki.) |
| 19:20:39 | → | McCabe joins (~McCabe@63.sub-174-231-82.myvzw.com) |
| 19:21:15 | × | McCabe quits (~McCabe@63.sub-174-231-82.myvzw.com) (Client Quit) |
| 19:21:42 | → | McCabe joins (~McCabe@63.sub-174-231-82.myvzw.com) |
| 19:23:25 | × | McCabe quits (~McCabe@63.sub-174-231-82.myvzw.com) (Client Quit) |
| 19:24:03 | <k`> | Wikis can be high value, but for whatever reason Haskell seems to rely much more on blogs. |
| 19:24:36 | <monochrom> | Yeah I just mean the haskell wiki. |
| 19:24:53 | <monochrom> | But no, the blogs are not of better quality either. |
| 19:25:28 | <monochrom> | An article is of value [to readers] iff it is written for readers. |
| 19:25:29 | × | valzant quits (~parsival@209.141.195.79) (Ping timeout: 252 seconds) |
| 19:25:49 | <k`> | What would you do if there wasn't someone to rant at you that 'Monads are burritos'? |
| 19:26:08 | <geekosaur> | be happier? |
| 19:26:13 | <monochrom> | Writers of the Haskell wiki and many Haskell blogs have "I'm so excited I must share this in mind". This usually does not align with the readers. |
| 19:27:12 | <k`> | Unfortunately, Haskell changes quickly enough in backwards-incompatible ways that a Haskell book is likely out-of-date before it is published. |
| 19:27:45 | <monochrom> | Oh, I said that on haskell-cafe when someone talked about writing a Haskell database book. |
| 19:28:16 | <monochrom> | That someone was not very happy to hear such a cold hard truth. :) |
| 19:28:42 | <monochrom> | Hell, even databases change quickly too. |
| 19:32:00 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 19:33:30 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:35:17 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 19:36:38 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:38:40 | × | acidjnk_new quits (~acidjnk@p200300d6e70586293de428a35ddddd41.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 19:39:03 | → | acidjnk_new joins (~acidjnk@p200300d6e70586293de428a35ddddd41.dip0.t-ipconnect.de) |
| 19:39:23 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 19:41:19 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:45:24 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 19:45:31 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:46:34 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:49:01 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:49:52 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 19:53:35 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 19:55:54 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 19:56:38 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:57:17 | × | cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds) |
| 19:57:32 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 19:59:28 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:59:38 | → | cheater joins (~Username@user/cheater) |
| 20:00:23 | × | coot quits (~coot@213.134.176.158) (Quit: coot) |
| 20:00:32 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 20:00:40 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
| 20:00:56 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 20:01:22 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 20:02:44 | → | titibandit joins (~titibandi@xdsl-212-8-147-38.nc.de) |
| 20:03:28 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit) |
| 20:03:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 20:04:08 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 20:04:12 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 20:05:34 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 20:05:35 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds) |
| 20:06:31 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 20:06:53 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 20:10:19 | × | acidjnk_new quits (~acidjnk@p200300d6e70586293de428a35ddddd41.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 20:12:27 | × | jargon quits (~jargon@184.101.168.117) (Remote host closed the connection) |
| 20:13:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:14:01 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 20:15:26 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 20:16:08 | → | slack1256 joins (~slack1256@wsip-184-177-0-226.no.no.cox.net) |
| 20:17:38 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:23:50 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 20:26:44 | → | acidjnk joins (~acidjnk@p200300d6e70586290c6dd2639c811ffe.dip0.t-ipconnect.de) |
| 20:27:18 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 20:27:42 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 20:30:28 | <ddellacosta> | It seems like people with a deeper understanding of Haskell/PLT/etc. use the expression "term-level" to talk about values (vs. "type-level")--but why is it not "value-level?" I thought "term" was a very general word for syntactic constructs--what is the history of this usage, where does it come from? |
| 20:30:28 | → | vysn joins (~vysn@user/vysn) |
| 20:31:33 | <tomsmeding> | people use "value-level" as well |
| 20:31:52 | <tomsmeding> | a "term" is, in general, usually a piece of syntax |
| 20:32:45 | <tomsmeding> | but the thing is, for types, the word "type" can both refer to the abstract concept of some type, say the type of the integers, as well as to the syntax that describes it, e.g. `Integer` |
| 20:33:00 | <tomsmeding> | though I believe I've seen people use "type-term" for the latter -- but not sure |
| 20:33:20 | <tomsmeding> | for value-level things, "value" doesn't refer to both -- a "value" is simply the abstract meaning of a program |
| 20:33:38 | <tomsmeding> | the syntax that describes it is itself not a value (barring lisps) |
| 20:34:14 | → | yvan-sraka joins (~yvan-srak@105.67.135.250) |
| 20:34:20 | <tomsmeding> | so people use "term" for that when constrasting with types -- and it's probably also a factor that the words "type" and "term" are both similar in structure :) |
| 20:34:48 | <qrpnxz> | ghc just hit me with a <<loop>> 🥹 debug time |
| 20:35:32 | <ddellacosta> | tomsmeding: okay, I have to think about that a bit--thank you |
| 20:40:11 | → | pmarg joins (~pmarg@2a01:799:159f:9b00:9386:acc:da1e:eccd) |
| 20:41:45 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 252 seconds) |
| 20:42:11 | × | ddellacosta quits (~ddellacos@143.244.47.100) (Ping timeout: 255 seconds) |
| 20:42:55 | → | Furor joins (~colere@about/linux/staff/sauvin) |
| 20:45:05 | × | pmarg quits (~pmarg@2a01:799:159f:9b00:9386:acc:da1e:eccd) (Remote host closed the connection) |
| 20:47:16 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds) |
| 20:50:31 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 20:54:23 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec) |
| 20:54:41 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 20:54:41 | × | califax quits (~califax@user/califx) (Read error: Connection reset by peer) |
| 20:54:41 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 20:54:42 | × | ec quits (~ec@gateway/tor-sasl/ec) (Write error: Connection reset by peer) |
| 20:54:42 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 20:55:04 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 20:55:04 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 20:55:12 | → | califax joins (~califax@user/califx) |
| 20:55:17 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 20:55:28 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 20:57:05 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 20:57:22 | → | califax joins (~califax@user/califx) |
| 20:59:38 | → | Inst joins (~Inst@2601:6c4:4080:3f80:60a2:552d:5c38:7396) |
| 21:01:32 | → | toby joins (~toby@137.220.84.171) |
| 21:03:20 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 21:03:20 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 21:03:23 | allbery_b | is now known as geekosaur |
| 21:09:45 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 21:10:15 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 21:11:04 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:11:19 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 21:13:05 | Furor | is now known as Colere |
| 21:16:07 | <monochrom> | Oh darn missed that conversation. |
| 21:17:34 | ← | kadoban1 parts (~kadoban@user/kadoban) () |
| 21:17:36 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:17:49 | → | kadoban1 joins (~kadoban@user/kadoban) |
| 21:19:21 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 21:19:32 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 21:22:15 | <toby> | Recently started with haskell. I've been running into a segfault/assertion failiure at in the nonmoving-gc (rts/sm/NonMovingMark.c:1815 on a few ghc versions, including ghc-9.2.4. I have some sort of reproducer for this but im not sure if this is something dodgy in a library or an actual RTS bug. Any pointers on how to go about pinning this down further? |
| 21:22:44 | × | ubert quits (~Thunderbi@178.165.178.67.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
| 21:28:22 | × | zer0bitz quits (~zer0bitz@2001:2003:f748:2000:4941:f6bb:794b:548e) (Read error: Connection reset by peer) |
| 21:30:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:31:05 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:35:24 | <merijn> | toby: Check with #ghc ? |
| 21:35:30 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:35:35 | → | dcoutts joins (~duncan@host86-167-206-78.range86-167.btcentralplus.com) |
| 21:35:37 | × | ianliu quits (~Ian_Liu_R@2804:431:cfcf:8a26:265:a252:7b71:aacb) (Quit: WeeChat 3.6) |
| 21:36:01 | × | dcoutts_ quits (~duncan@host86-167-206-78.range86-167.btcentralplus.com) (Ping timeout: 252 seconds) |
| 21:38:45 | <geekosaur> | they just fixed such a bug but it should have been fixed already in 9.2.4 |
| 21:43:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 21:44:53 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 21:44:53 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:44:53 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 21:45:25 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 21:45:26 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:45:30 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 21:45:36 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 21:45:51 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 21:48:05 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 21:48:26 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 21:48:47 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:49:08 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:50:55 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:54:36 | × | ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection) |
| 21:55:32 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 21:56:22 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:59:15 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 21:59:28 | → | dcoutts_ joins (~duncan@host86-153-135-126.range86-153.btcentralplus.com) |
| 22:01:20 | × | dcoutts quits (~duncan@host86-167-206-78.range86-167.btcentralplus.com) (Ping timeout: 244 seconds) |
| 22:02:43 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 22:03:43 | × | pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds) |
| 22:04:53 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 22:04:55 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:05:17 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 22:07:57 | × | yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection) |
| 22:09:19 | × | titibandit quits (~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection) |
| 22:12:36 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 22:13:02 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 22:13:42 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 22:14:20 | → | noteness joins (~noteness@user/noteness) |
| 22:15:25 | × | farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 260 seconds) |
| 22:15:27 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:671f:736d:4d41:28c3) (Ping timeout: 268 seconds) |
| 22:15:30 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 268 seconds) |
| 22:15:30 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
| 22:15:41 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 22:16:17 | → | farn joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
| 22:16:44 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds) |
| 22:17:39 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 22:17:53 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 22:18:12 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 22:18:25 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 22:23:02 | × | causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.6) |
| 22:24:49 | → | nate4 joins (~nate@98.45.169.16) |
| 22:29:36 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 22:35:42 | → | Midjak joins (~Midjak@82.66.147.146) |
| 22:36:16 | × | michalz quits (~michalz@185.246.204.69) (Remote host closed the connection) |
| 22:38:21 | × | k` quits (~user@2605:a601:a60d:5400:55e6:a9b6:adcd:beaa) (Ping timeout: 255 seconds) |
| 22:38:28 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:39:53 | → | pavonia joins (~user@user/siracusa) |
| 22:50:36 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 22:51:09 | <Axman6> | toby: nice work on such a minimal reproduction of the bug |
| 22:52:30 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 22:53:02 | × | jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds) |
| 22:53:31 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 22:57:14 | → | valhardt joins (~parsival@209.141.195.79) |
| 22:58:18 | × | valhardt quits (~parsival@209.141.195.79) (Client Quit) |
| 22:59:12 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 22:59:40 | × | Kaiepi quits (~Kaiepi@142.68.249.28) (Read error: Connection reset by peer) |
| 23:01:18 | × | acidjnk quits (~acidjnk@p200300d6e70586290c6dd2639c811ffe.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 23:02:54 | → | slac96944 joins (~slack1256@2607:fb90:c6b:3cba:8eb0:bff6:9960:78c9) |
| 23:03:03 | × | slac96944 quits (~slack1256@2607:fb90:c6b:3cba:8eb0:bff6:9960:78c9) (Remote host closed the connection) |
| 23:05:24 | × | slack1256 quits (~slack1256@wsip-184-177-0-226.no.no.cox.net) (Ping timeout: 268 seconds) |
| 23:06:51 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 23:06:57 | → | luffy joins (~chenqisu1@183.217.201.23) |
| 23:17:06 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 23:21:58 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 23:22:31 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 23:22:31 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 23:22:32 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:26:31 | → | nicos joins (~nico@190.247.245.154) |
| 23:31:16 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 23:32:49 | × | Patternm1ster quits (~georg@li1192-118.members.linode.com) (Quit: leaving) |
| 23:33:42 | → | kimjetwav joins (~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa) |
| 23:34:24 | → | Patternmaster joins (~georg@user/Patternmaster) |
| 23:34:46 | <toby> | Axman6: thanks, although a large degree of luck was involved |
| 23:45:54 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 23:45:54 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 23:45:54 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:49:47 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 23:50:27 | → | darchitect1 joins (~darchitec@2a00:23c6:3584:df01:81a:29c9:cfd8:abaa) |
| 23:51:00 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 23:53:02 | × | sudden quits (~cat@user/sudden) (Ping timeout: 255 seconds) |
| 23:53:58 | → | sudden joins (~cat@user/sudden) |
| 23:58:08 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 23:58:30 | × | Tuplanolla quits (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:59:15 | → | jargon joins (~jargon@184.101.168.117) |
All times are in UTC on 2022-08-11.