Logs: freenode/#haskell
| 2020-10-23 12:10:42 | <merijn> | infinity0: That problem is unsolvable |
| 2020-10-23 12:10:43 | → | Yangster joins (c053e4f4@192.83.228.244) |
| 2020-10-23 12:10:50 | <hc> | infinity0: when you ask a hacker a simple question, you might get a long and possible philospophical answer ;p |
| 2020-10-23 12:10:56 | <infinity0> | fair enough... |
| 2020-10-23 12:10:59 | × | Yangster quits (c053e4f4@192.83.228.244) (Remote host closed the connection) |
| 2020-10-23 12:11:04 | <merijn> | "I'm repeatedly computing the same thing, how do I make it fast?" 'well...stop doing that' |
| 2020-10-23 12:11:09 | → | ggole joins (~ggole@2001:8003:8119:7200:553e:28c1:9eff:faae) |
| 2020-10-23 12:11:23 | <merijn> | If you're encoding the same string, just, like, save the result and reuse it? |
| 2020-10-23 12:11:49 | <merijn> | And if you're *not* encoding the same string, then I fail to see how you could convert it faster than "converting it" |
| 2020-10-23 12:12:14 | × | ubert quits (~Thunderbi@p200300ecdf10db38e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 2020-10-23 12:12:32 | → | ubert joins (~Thunderbi@p200300ecdf10db38e6b318fffe838f33.dip0.t-ipconnect.de) |
| 2020-10-23 12:12:36 | × | cristi_ quits (~cristi@86.121.125.90) (Quit: cristi_) |
| 2020-10-23 12:14:07 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus) |
| 2020-10-23 12:14:07 | <infinity0> | i'm repeatedly decoding a stream, that's the thing, and it could either be A or B |
| 2020-10-23 12:14:14 | <arahael> | merijn: When someone wants to "focus" on doing something efficiently, they don't always mean in computer time, even if they say that. ;) |
| 2020-10-23 12:14:18 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:6d96:aec8:3874:14ea) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-23 12:14:45 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds) |
| 2020-10-23 12:16:01 | <merijn> | infinity0: Incidentally, replacing Char8.unpack with "T.unpack . decodeUtf8With lenientDecode" will give you the exact same type with a *much* more robust and *much* less bug-prone behaviour |
| 2020-10-23 12:16:13 | <infinity0> | it's reasonable that a decoding API gives me (leftovers, result), but the two different APIs have different types for "leftovers" |
| 2020-10-23 12:16:14 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 2020-10-23 12:16:28 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 2020-10-23 12:16:42 | <infinity0> | merijn: thanks, yes i thought something like that must be possible, unfortunately it still would be inefficient due to the thunk build-up as if i understand right |
| 2020-10-23 12:16:59 | <merijn> | (since it will 1. work correctly for any UTF-8 unicode, 2. gracefully handle errors if it's *not* UTF-8. As opposed to Char8 which will just silently corrupt your data) |
| 2020-10-23 12:17:18 | <merijn> | infinity0: Any conversion to String is *always* going to be inefficient |
| 2020-10-23 12:17:27 | <merijn> | Given that string easily takes up ~24 byte per character |
| 2020-10-23 12:17:32 | <merijn> | and ruins your cache |
| 2020-10-23 12:18:17 | <[exa]> | merijn: like, the users at least... :D |
| 2020-10-23 12:18:33 | <infinity0> | well laziness could help with that, if only pack was "smart" enough to recognise an "unpack (...)" thunk and actually destructure it instead of building on top of it |
| 2020-10-23 12:18:56 | <merijn> | [exa]: Well, there's the expectation that users do, but it doesn't hold as you see |
| 2020-10-23 12:19:00 | <arahael> | infinity0: You mean fusion? :) |
| 2020-10-23 12:19:03 | <merijn> | infinity0: That's not possible with ByteString |
| 2020-10-23 12:19:18 | <[exa]> | merijn: moderation/banhammer is not available? |
| 2020-10-23 12:19:28 | <merijn> | infinity0: To create a ByteString it *must* be copied in full |
| 2020-10-23 12:19:40 | <infinity0> | sorry, i am talking about Lazy.ByteString here |
| 2020-10-23 12:19:44 | <merijn> | [exa]: In theory, sure, in practice there's no process |
| 2020-10-23 12:19:57 | <merijn> | infinity0: Lazy ByteString is just [Strict.ByteString] |
| 2020-10-23 12:20:34 | <[exa]> | well then it's marvelous that the hackage is in such a good state |
| 2020-10-23 12:20:39 | <merijn> | The chunk size depending on how/what creates the lazy list |
| 2020-10-23 12:20:49 | <infinity0> | right, you only need to copy the first part of it, when creating one lazily |
| 2020-10-23 12:21:23 | <infinity0> | arahael: that only happens at build-time not run-time conditionally AIUI. i'm pretty sure what i mentioned is impossible with today's haskell but i thought perhaps there might be some other strartegy i didn't know about |
| 2020-10-23 12:21:41 | → | Sarma joins (~Amras@unaffiliated/amras0000) |
| 2020-10-23 12:22:15 | <arahael> | infinity0: When I deal with haskell, I rarely try to think about compiletime vs runtime. I just accept that all the types are resolved at compile time. |
| 2020-10-23 12:22:51 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-23 12:23:20 | <infinity0> | well, i also care about runtime performance |
| 2020-10-23 12:23:40 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:6d96:aec8:3874:14ea) |
| 2020-10-23 12:24:23 | <merijn> | infinity0: Which 2 libraries are this? |
| 2020-10-23 12:24:42 | <infinity0> | Serialise vs Read |
| 2020-10-23 12:24:48 | <merijn> | oof |
| 2020-10-23 12:24:55 | <merijn> | As in the Read typeclass? |
| 2020-10-23 12:25:01 | <infinity0> | yeah |
| 2020-10-23 12:25:05 | <merijn> | And you care about performance? |
| 2020-10-23 12:25:20 | <merijn> | Because Read's performance is notoriously *god awful* |
| 2020-10-23 12:25:30 | <merijn> | Just, like, incredibly bad |
| 2020-10-23 12:25:55 | <infinity0> | right, for interactive user session is fine, but having it degrade on a O(n^2) basis sounds bad even for an interactive user session |
| 2020-10-23 12:25:58 | <merijn> | What are you trying to read? |
| 2020-10-23 12:27:21 | <infinity0> | a stream of a bunch of objects, that could either be Serialise or Read |
| 2020-10-23 12:27:28 | → | brisbin joins (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) |
| 2020-10-23 12:27:33 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-10-23 12:28:07 | <arahael> | When I had to do a Read thing, I made my own read typeclass. |
| 2020-10-23 12:28:34 | <merijn> | infinity0: And you don't control what creates this input (i.e. there's no way to replace Read with something else?) |
| 2020-10-23 12:29:00 | <infinity0> | i could replace Read with perhaps JSON, that is another option i guess. mostly Read is convenient to derive and carries no dependencies |
| 2020-10-23 12:29:41 | <merijn> | If you use Serialise already anyway, why not just derive Serialise? |
| 2020-10-23 12:29:46 | <infinity0> | the underlying question regarding "runtime fusion" was interesting though |
| 2020-10-23 12:30:12 | <infinity0> | i am already deriving Serialise. the idea is to have a fast+binary option but also a easy-friendly-manual option |
| 2020-10-23 12:30:27 | × | acidjnk_new3 quits (~acidjnk@p200300d0c7237805143004c29cad477d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 2020-10-23 12:30:48 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:6d96:aec8:3874:14ea) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-23 12:31:19 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 2020-10-23 12:32:54 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 2020-10-23 12:33:07 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-23 12:33:18 | × | knupfer quits (~Thunderbi@200116b8245a88002178c45bdf988b17.dip.versatel-1u1.de) (Remote host closed the connection) |
| 2020-10-23 12:33:26 | → | knupfer joins (~Thunderbi@200116b8245a88004cde9423a5581dc5.dip.versatel-1u1.de) |
| 2020-10-23 12:35:04 | → | carlomagno joins (~cararell@148.87.23.13) |
| 2020-10-23 12:35:27 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3801:1e49:4cbd:104) |
| 2020-10-23 12:35:33 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 2020-10-23 12:36:18 | × | carlomagno1 quits (~cararell@148.87.23.5) (Ping timeout: 260 seconds) |
| 2020-10-23 12:37:12 | → | whatisRT joins (~whatisRT@2002:5b41:6a33:0:ada0:9073:7dbb:6b46) |
| 2020-10-23 12:37:25 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:9c62:9bf3:3478:5d05) |
| 2020-10-23 12:37:36 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-10-23 12:37:56 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3801:1e49:4cbd:104) (Client Quit) |
| 2020-10-23 12:38:13 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
| 2020-10-23 12:38:22 | → | cristi_ joins (~cristi@86.121.125.90) |
| 2020-10-23 12:42:07 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:9c62:9bf3:3478:5d05) (Ping timeout: 260 seconds) |
| 2020-10-23 12:43:23 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-23 12:45:08 | → | solonarv joins (~solonarv@astrasbourg-552-1-23-6.w90-13.abo.wanadoo.fr) |
| 2020-10-23 12:46:47 | × | ubert quits (~Thunderbi@p200300ecdf10db38e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 2020-10-23 12:47:48 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 2020-10-23 12:50:05 | → | mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) |
| 2020-10-23 12:50:39 | × | cristi_ quits (~cristi@86.121.125.90) (Quit: cristi_) |
| 2020-10-23 12:55:59 | → | b_b1 joins (~b_b@185.244.214.217) |
| 2020-10-23 12:57:17 | → | thir joins (~thir@p200300f27f19de00a929a56a6a990c9a.dip0.t-ipconnect.de) |
| 2020-10-23 13:01:45 | × | whald quits (~trem@2a02:810a:8100:11a6:1053:b508:9293:f7ba) (Ping timeout: 272 seconds) |
| 2020-10-23 13:01:55 | × | thir quits (~thir@p200300f27f19de00a929a56a6a990c9a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2020-10-23 13:04:48 | × | st8less quits (~st8less@2603:a060:11fd:0:dd24:d259:2e39:f97e) (Quit: WeeChat 2.7.1) |
| 2020-10-23 13:05:54 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 2020-10-23 13:06:29 | → | whald joins (~trem@ip4d15893f.dynamic.kabel-deutschland.de) |
| 2020-10-23 13:07:10 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 2020-10-23 13:08:54 | × | Lowl3v3l quits (~Lowl3v3l@dslb-002-203-195-108.002.203.pools.vodafone-ip.de) (Remote host closed the connection) |
| 2020-10-23 13:09:16 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-203-195-108.002.203.pools.vodafone-ip.de) |
| 2020-10-23 13:12:00 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 2020-10-23 13:13:17 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
All times are in UTC.