Logs: liberachat/#haskell
| 2021-07-14 01:33:34 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 2021-07-14 01:34:50 | × | bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 2021-07-14 01:35:10 | ← | shriekingnoise parts (~shrieking@186.137.144.80) (ERC (IRC client for Emacs 28.0.50)) |
| 2021-07-14 01:36:29 | → | hughjfchen joins (~hughjfche@vmi556545.contaboserver.net) |
| 2021-07-14 01:37:23 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 2021-07-14 01:37:38 | <hololeap> | geekosaur: I'm reading about the ship of Thesus, and it seems like the quintessential thought experiment in regards to what I mentioned about bionic body replacement |
| 2021-07-14 01:38:06 | <geekosaur> | probably what the futurama ep was riffing on |
| 2021-07-14 01:38:29 | <hololeap> | yeah probably |
| 2021-07-14 01:38:58 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 2021-07-14 01:39:44 | <dexterfoo> | is attoparsec still a good choice (efficient) if i don't need any backtracking? |
| 2021-07-14 01:40:38 | <hololeap> | dexterfoo: I think so, but megaparsec is supposed to have similar efficiency... someone else can probably go into more detail on this |
| 2021-07-14 01:42:25 | <davean> | dexterfoo: attoparsec forces copying in its buffer |
| 2021-07-14 01:42:45 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 255 seconds) |
| 2021-07-14 01:43:42 | <davean> | For many cases you can get faster elsewhere. I've had to add functions to attoparsec to keep acceptable performance vs. other things, but I haven't done side-by-side benchmarks with other standard offerings lately. I'd suspect attoparsec losses though - it certainly loses in many cases against naive implimentations. |
| 2021-07-14 01:44:01 | <davean> | I'm moving everything off attoparsec slowly |
| 2021-07-14 01:45:01 | → | renzhi joins (~xp@2607:fa49:655f:a700::8b9f) |
| 2021-07-14 01:45:30 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 2021-07-14 01:45:43 | → | stevenxl joins (~stevenlei@66.63.167.105) |
| 2021-07-14 01:46:18 | × | stevenxl quits (~stevenlei@66.63.167.105) (Client Quit) |
| 2021-07-14 01:49:03 | <dexterfoo> | davean: to which library? |
| 2021-07-14 01:50:05 | → | stevenxl joins (uid133530@id-133530.highgate.irccloud.com) |
| 2021-07-14 01:50:15 | <davean> | I didn't imply to a specific library. I just ran the parse combinators against a 'machines' stream and removed the duplication of having a parser library for most of the stuff I was doing, because my core inefficiency was due to poor buffer management in attoparsec, but "more appropriate things" I have no reason to move to one specific thing to solve all my problems. |
| 2021-07-14 01:51:00 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 2021-07-14 01:51:57 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 276 seconds) |
| 2021-07-14 01:55:16 | <hololeap> | dexterfoo: I think it would be a good idea to compare it to megaparsec at the very least. also check out megaparsec's github page because there are some benchmark results on there |
| 2021-07-14 01:56:31 | → | o1lo01ol1o joins (~o1lo01ol1@bl11-109-140.dsl.telepac.pt) |
| 2021-07-14 01:57:06 | <dexterfoo> | ok, but i am parsing streaming data with conduit, which has a Data.Conduit.Attoparsec module, but there is no megaparsec integration |
| 2021-07-14 01:57:09 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
| 2021-07-14 01:59:41 | <davean> | A) ok, great B) why would you need to to make that explicitely? C) if you just want it to be easy, use what you have at hand? |
| 2021-07-14 02:01:26 | × | o1lo01ol1o quits (~o1lo01ol1@bl11-109-140.dsl.telepac.pt) (Ping timeout: 272 seconds) |
| 2021-07-14 02:02:02 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 2021-07-14 02:02:04 | <dexterfoo> | i am using attoparsec and it works and is easy, but i am wondering if there is a faster way |
| 2021-07-14 02:03:37 | <stevenxl> | Hey folks. I have a newtype wrapper around a list of Ints, and I'd like a property test that if the list contains the number 1 in it, I get back the result `One`. |
| 2021-07-14 02:03:42 | <davean> | Oh theres a definately a faster way |
| 2021-07-14 02:03:49 | <stevenxl> | I wrote a quick script just to show what I mean: |
| 2021-07-14 02:03:58 | <davean> | attoparsec can't be anywhere NEAR the fastest - parse theory tells us that, its the wrong structure |
| 2021-07-14 02:04:01 | <stevenxl> | https://www.irccloud.com/pastebin/MPAt1waK/ |
| 2021-07-14 02:04:26 | <stevenxl> | Of course, the problem is that the instance of `Arbitrary` that I have created will always add one to the head of the list. |
| 2021-07-14 02:04:47 | <stevenxl> | I'd like to add it at the head, the tail, or somewhere in-between randomly. |
| 2021-07-14 02:05:02 | <davean> | stevenxl: filter? |
| 2021-07-14 02:05:19 | <stevenxl> | davean: Sorry. I'm not following you. |
| 2021-07-14 02:05:20 | <Axman6> | generate a random number between 0 and length list and insert it at that location |
| 2021-07-14 02:05:38 | <davean> | stevenxl: you can make sure 1 isn't in the list easily, you can also check if 1 is in the list easily, thus you can construct both cases |
| 2021-07-14 02:05:49 | <davean> | you can also randomly sort the list |
| 2021-07-14 02:05:59 | <stevenxl> | Axman6: Thanks. That's what I think I need! |
| 2021-07-14 02:06:24 | <Axman6> | do { list <- arbitrary; idx <- choose (0,length list); pure $ ContainsOne (insert idx 1 list) } -- you might need to write insert |
| 2021-07-14 02:06:45 | <stevenxl> | Axman6: perfect. |
| 2021-07-14 02:06:49 | <Axman6> | and you'll probably need to look up the correct name for choose |
| 2021-07-14 02:07:05 | <stevenxl> | Yup - I can look that up in the quickcheck docs / generator section. |
| 2021-07-14 02:09:17 | → | Guest43 joins (~Guest43@187.83.249.216.dyn.smithville.net) |
| 2021-07-14 02:11:34 | × | thonkpod quits (~thonkpod@user/thonkpod) (Ping timeout: 256 seconds) |
| 2021-07-14 02:17:24 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 255 seconds) |
| 2021-07-14 02:17:46 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 2021-07-14 02:18:22 | × | td_ quits (~td@94.134.91.7) (Ping timeout: 256 seconds) |
| 2021-07-14 02:19:08 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 2021-07-14 02:19:08 | FinnElija | is now known as Guest2571 |
| 2021-07-14 02:19:08 | × | Guest2571 quits (~finn_elij@user/finn-elija/x-0085643) (Killed (sodium.libera.chat (Nickname regained by services))) |
| 2021-07-14 02:19:08 | finn_elija | is now known as FinnElija |
| 2021-07-14 02:19:49 | → | td_ joins (~td@muedsl-82-207-238-063.citykom.de) |
| 2021-07-14 02:22:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-07-14 02:26:14 | × | phma quits (phma@2001:5b0:211f:8638:196:5581:d6d8:1f7e) (Remote host closed the connection) |
| 2021-07-14 02:26:43 | → | phma joins (~phma@2001:5b0:211f:8638:196:5581:d6d8:1f7e) |
| 2021-07-14 02:34:03 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 255 seconds) |
| 2021-07-14 02:36:40 | → | thonkpod joins (~thonkpod@user/thonkpod) |
| 2021-07-14 02:38:56 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
| 2021-07-14 02:41:30 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 2021-07-14 02:44:37 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 2021-07-14 02:53:24 | × | MQ-17J quits (~MQ-17J@8.21.10.15) (Ping timeout: 255 seconds) |
| 2021-07-14 02:57:00 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds) |
| 2021-07-14 02:57:29 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 2021-07-14 03:01:37 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 2021-07-14 03:03:18 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 255 seconds) |
| 2021-07-14 03:08:33 | × | FixedPointDude quits (~FixedPoin@204.237.49.106) (Quit: Client closed) |
| 2021-07-14 03:09:57 | <dsal> | stevenxl: arbitrary = notOnes >>= \a -> notOnes >>= \b -> pure $ a <> [1] <> b |
| 2021-07-14 03:10:28 | <Axman6> | notOnes could just be arbitrary |
| 2021-07-14 03:10:42 | <Axman6> | all that's needed is that it contains a one, not that it contains only one one |
| 2021-07-14 03:10:55 | <dsal> | Where notOnes = arbitrary `suchThat` (notElem 1) |
| 2021-07-14 03:11:00 | <dsal> | Oh, then yeah |
| 2021-07-14 03:11:37 | <Axman6> | concat <$> sequence [arbitrary, pure [1], arbitrary] |
| 2021-07-14 03:12:03 | <dsal> | Yeah. That's a good one. |
| 2021-07-14 03:12:19 | <dsal> | I'm on a phone with part of my brain missing. :) |
| 2021-07-14 03:15:55 | × | hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
| 2021-07-14 03:16:08 | <Axman6> | It was a good team effort |
| 2021-07-14 03:16:16 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-14 03:16:21 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
| 2021-07-14 03:17:54 | × | swistak quits (~swistak@185.21.216.141) (Ping timeout: 252 seconds) |
| 2021-07-14 03:19:32 | <stevenxl> | Great team effort! |
| 2021-07-14 03:19:35 | <stevenxl> | lol. Thank you all. |
| 2021-07-14 03:21:55 | × | alx741 quits (~alx741@186.178.109.32) (Quit: alx741) |
| 2021-07-14 03:21:56 | → | swistak joins (~swistak@185.21.216.141) |
| 2021-07-14 03:24:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-07-14 03:25:22 | × | derelict quits (~derelict@user/derelict) (Ping timeout: 246 seconds) |
| 2021-07-14 03:29:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds) |
| 2021-07-14 03:30:24 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2021-07-14 03:30:34 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2021-07-14 03:33:40 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2021-07-14 03:34:31 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 2021-07-14 03:34:55 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 2021-07-14 03:35:15 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 255 seconds) |
| 2021-07-14 03:37:57 | → | favonia joins (~favonia@user/favonia) |
All times are in UTC.