Logs on 2022-06-11 (liberachat/#haskell)
| 00:03:11 | × | Tuplanolla quits (~Tuplanoll@91-159-69-63.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:03:12 | → | kaskal joins (~kaskal@089144205066.atnat0014.highway.webapn.at) |
| 00:03:47 | × | kaskal- quits (~kaskal@213-225-35-123.nat.highway.a1.net) (Ping timeout: 255 seconds) |
| 00:04:33 | × | Qudit quits (~user@user/Qudit) (Remote host closed the connection) |
| 00:05:12 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 00:06:57 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:07:17 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 00:08:44 | × | sagax quits (~sagax_nb@user/sagax) (Ping timeout: 255 seconds) |
| 00:09:49 | → | Qudit joins (~user@user/Qudit) |
| 00:14:17 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5) |
| 00:18:11 | → | Mensan23421 joins (~Mensan234@S01069050ca4e3573.cg.shawcable.net) |
| 00:18:22 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds) |
| 00:19:37 | × | Mensan23421 quits (~Mensan234@S01069050ca4e3573.cg.shawcable.net) (Client Quit) |
| 00:19:57 | → | Mga joins (~Mga@S01069050ca4e3573.cg.shawcable.net) |
| 00:20:38 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 00:20:44 | → | vicfred joins (~vicfred@user/vicfred) |
| 00:22:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 00:25:44 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 272 seconds) |
| 00:27:03 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 00:29:07 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:30:04 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 00:32:13 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 00:32:36 | × | Kaipei quits (~Kaiepi@156.34.47.253) (Remote host closed the connection) |
| 00:32:50 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 00:32:55 | → | Kaipei joins (~Kaiepi@156.34.47.253) |
| 00:33:26 | → | cheater joins (~Username@user/cheater) |
| 00:33:31 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) () |
| 00:33:52 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 00:38:51 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:39:37 | × | stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 00:40:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 00:43:47 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:47:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 00:47:20 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 00:49:33 | × | k8yun quits (~k8yun@user/k8yun) (Quit: Leaving) |
| 00:50:00 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds) |
| 00:51:18 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:52:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 00:54:17 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:54:25 | <Mga> | my boyfriend is a staffer |
| 00:54:29 | <Mga> | and contributed of haskell |
| 00:58:53 | <Mga> | i enjoy running simulations |
| 00:59:07 | <Mga> | various inputs, etc. haha. |
| 01:01:32 | → | causal joins (~user@50.35.83.177) |
| 01:02:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 01:03:56 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 01:10:32 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:14:26 | × | xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds) |
| 01:16:39 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:19:20 | × | mimmy_ quits (~mimmy@185.153.179.38) (Ping timeout: 244 seconds) |
| 01:23:21 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 258 seconds) |
| 01:24:54 | <dragestil> | does anyone know how to get the hls installed from ghcup have brittany support? |
| 01:25:02 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 01:25:55 | <dragestil> | or, alternatively, is there a way to disable formatting-on-save by hls? |
| 01:26:54 | → | xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp) |
| 01:27:57 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 258 seconds) |
| 01:28:17 | → | cyphase joins (~cyphase@user/cyphase) |
| 01:28:56 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds) |
| 01:28:58 | <dragestil> | in hls configuration, there's formattingProvider, but it seems there's no knob to make hls hands off formatter |
| 01:30:11 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds) |
| 01:30:46 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a) |
| 01:30:46 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 01:39:03 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 01:39:28 | → | simendsj` joins (~user@78-72-230-58-no2730.tbcn.telia.com) |
| 01:41:06 | × | simendsjo quits (~user@78-72-230-58-no2730.tbcn.telia.com) (Ping timeout: 272 seconds) |
| 01:42:35 | <Bulby[m]> | I'm starting to write a bytecode emitter now -would the preferred way to get opcodes be deriving `Enum` ? |
| 01:45:51 | ChanServ | sets mode +o litharge |
| 01:45:52 | litharge | sets mode -bo *!*@151.52.164.1 litharge |
| 01:48:45 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 01:52:07 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 01:53:46 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 272 seconds) |
| 01:54:02 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 255 seconds) |
| 01:54:59 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 01:55:10 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 01:55:36 | → | Haskelytic joins (~Haskelyti@37.111.212.211) |
| 01:56:36 | <Haskelytic> | ```isAssociative :: Eq a => (a -> a -> a) -> a -> a -> a -> Bool |
| 01:56:37 | <Haskelytic> | isAssociative (<>) x y z = |
| 01:56:37 | <Haskelytic> | x <> (y <> z) == (x <> y) <> z |
| 01:56:38 | <Haskelytic> | isSemigroup :: (Eq a, Semigroup a) => a -> a -> a -> Bool |
| 01:56:38 | <Haskelytic> | isSemigroup = isAssociative (<>) |
| 01:56:39 | <Haskelytic> | hasLeftIdentity :: (Eq a, Monoid a) => a -> Bool |
| 01:56:39 | <Haskelytic> | hasLeftIdentity m = mempty <> m == m |
| 01:56:40 | <Haskelytic> | hasRightIdentity :: (Eq a, Monoid a) => a -> Bool |
| 01:56:40 | <Haskelytic> | hasRightIdentity m = m <> mempty == m |
| 01:56:41 | <Haskelytic> | isMonoid :: Test.QuickCheck.Property.Property |
| 01:56:41 | <Haskelytic> | isMonoid = isSemigroup .&&. hasLeftIdentity``` |
| 01:56:51 | <Haskelytic> | I'm getting ambiguous type variable for isMonoid |
| 01:57:22 | → | _xor joins (~xor@72.49.198.103) |
| 01:57:30 | <Haskelytic> | Ambiguous type variable ‘a1’ arising from a use of ‘isSemigroup’ |
| 01:57:30 | <Haskelytic> | prevents the constraint ‘(Eq a1)’ from being solved. |
| 01:57:31 | <Haskelytic> | Probable fix: use a type annotation to specify what ‘a1’ should be. |
| 01:57:31 | <Haskelytic> | These potential instances exist: |
| 01:57:32 | <Haskelytic> | ...plus 275 instances involving out-of-scope types |
| 01:57:32 | <Haskelytic> | (use -fprint-potential-instances to see them all) |
| 01:57:33 | <Haskelytic> | • In the first argument of ‘(.&&.)’, namely ‘isSemigroup’ |
| 01:57:33 | <Haskelytic> | In the expression: isSemigroup .&&. hasLeftIdentity |
| 01:57:34 | <Haskelytic> | In an equation for ‘isMonoid’: |
| 01:57:34 | <Haskelytic> | isMonoid = isSemigroup .&&. hasLeftIdentitytypecheck(-Wdeferred-type-errors) |
| 01:57:40 | <dsal> | @where patse |
| 01:57:40 | <lambdabot> | I know nothing about patse. |
| 01:57:43 | <dsal> | @where paste |
| 01:57:43 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 01:58:05 | <Bulby[m]> | @where pasta |
| 01:58:05 | <lambdabot> | I know nothing about pasta. |
| 01:58:09 | <Bulby[m]> | 😔 |
| 02:00:08 | → | z0k joins (~z0k@206.84.143.2) |
| 02:00:51 | <Haskelytic> | https://paste.tomsmeding.com/NslNe9NQ |
| 02:00:59 | → | kimjetwav joins (~user@2607:fea8:2340:da00:ce44:66a9:7fdd:687e) |
| 02:01:31 | <Haskelytic> | I'm trying to write a test for monoid properties by composing test for semigroup AND the left/right identity test |
| 02:02:08 | × | Kaipei quits (~Kaiepi@156.34.47.253) (Ping timeout: 255 seconds) |
| 02:02:46 | <Haskelytic> | this is for use with QuickCheck |
| 02:03:28 | × | kimjetwav quits (~user@2607:fea8:2340:da00:ce44:66a9:7fdd:687e) (Client Quit) |
| 02:04:04 | → | kimjetwav joins (~user@2607:fea8:2340:da00:b28:9278:475e:6fce) |
| 02:08:30 | <dsal> | @hackage checkers |
| 02:08:30 | <lambdabot> | https://hackage.haskell.org/package/checkers |
| 02:08:35 | <dsal> | Haskelytic: Have you seen this? |
| 02:13:12 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 248 seconds) |
| 02:14:02 | <dsal> | Haskelytic: It's not really clear to me what you intended `isMonoid` to do. i.e., I agree with the compiler: "what?" |
| 02:14:42 | → | zebrag joins (~chris@user/zebrag) |
| 02:14:45 | <Haskelytic> | dsal: I didn't know about this package |
| 02:15:26 | → | nate3 joins (~nate@98.45.169.16) |
| 02:15:52 | × | td_ quits (~td@94.134.91.132) (Ping timeout: 248 seconds) |
| 02:15:55 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 02:15:55 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 02:15:55 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:17:21 | <Haskelytic> | dsal: Hmm...tbh I just made a wild guess that since `quickCheck :: Testable prop => prop -> IO ()` and `(.&&.) :: (Testable prop1, Testable prop2) => prop1 -> prop2 -> Property` I could use conjuction (.&&.) to create a prop that is satisfied if both props are |
| 02:17:32 | <Haskelytic> | I must be misunderstanding something |
| 02:17:39 | <dsal> | How would you use it? |
| 02:17:44 | × | xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 02:17:52 | <Haskelytic> | `quickCheck isMonoid` |
| 02:17:54 | → | td_ joins (~td@muedsl-82-207-238-090.citykom.de) |
| 02:18:01 | <dsal> | What would that test? |
| 02:18:32 | <Haskelytic> | I presume it would test both properties and only succeed if both succeed |
| 02:18:52 | <Haskelytic> | by both properties I mean the arguments to the .&&. |
| 02:19:22 | <Haskelytic> | namely, `isSemigroup` and `hasLeftIdentity` |
| 02:19:24 | <dsal> | But the signature doesn't mention any monoids, so it's not clear what you'd expect it to be testing. |
| 02:19:42 | <dsal> | At some point, you need the monoid you intend to test. |
| 02:19:57 | × | Topsi quits (~Topsi@dyndsl-095-033-088-183.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 02:20:22 | × | andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Ping timeout: 272 seconds) |
| 02:21:38 | <Haskelytic> | Hmm...wait so when I use conjunction `.&&.`, the types deduced for its args: `isSemigroup` and `hasLeftIdentity` must be something concrete (e.g., `[Int]`) |
| 02:21:56 | × | even4void quits (even4void@came.here.for-some.fun) (Ping timeout: 248 seconds) |
| 02:21:56 | → | mimmy_ joins (~mimmy@23.230.46.220) |
| 02:22:53 | <dsal> | When you call `isSemigroup` at all, you have to have a semigroup. |
| 02:23:28 | <dsal> | It can work on any semigroup, but if the compiler can't figure out which one you mean, it can't do the work. |
| 02:23:35 | <Haskelytic> | Ohhhhh hahahaha I got it now! |
| 02:23:52 | <Haskelytic> | dsal: thanks! |
| 02:24:16 | <dsal> | It's possible to add a type parameter `isMonoid` and pass that along with some language extensions. |
| 02:24:30 | <dsal> | But if you just want to do the work, checkers is OK. It's a bit weird to use, but I use it for exactly this on occasion. |
| 02:24:40 | <Haskelytic> | right |
| 02:24:44 | <Haskelytic> | thanks for the kind pointers |
| 02:25:12 | <dsal> | This uses checkers for similar things: https://github.com/dustin/mqttd/blob/master/test/SubTree.hs |
| 02:28:08 | × | mimmy_ quits (~mimmy@23.230.46.220) (Ping timeout: 248 seconds) |
| 02:29:36 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 244 seconds) |
| 02:33:05 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 02:33:51 | → | julian joins (~julian@20.83.116.49) |
| 02:34:41 | → | cyphase joins (~cyphase@user/cyphase) |
| 02:38:21 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 02:39:38 | × | z0k quits (~z0k@206.84.143.2) (Ping timeout: 258 seconds) |
| 02:41:22 | → | even4void joins (even4void@came.here.for-some.fun) |
| 02:41:49 | → | ketema joins (~ketema@160.sub-174-211-228.myvzw.com) |
| 02:42:03 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:42:03 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:42:03 | finn_elija | is now known as FinnElija |
| 02:43:08 | <ketema> | @help |
| 02:43:08 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
| 02:43:48 | <ketema> | @pointful sum (filter divisibleBy3Or5 (unfoldr (\b -> if b == 1000 then Nothing else Just (b, b+1)) 0)) |
| 02:43:48 | <lambdabot> | sum (filter divisibleBy3Or5 (unfoldr (\ b -> if (b == 1000) then Nothing else Just (b, (b + 1))) 0)) |
| 02:44:39 | <ketema> | @pointful filter (<10) (unfoldr (\b -> if b == 1001 then Nothing else Just (b, b+1)) 1) |
| 02:44:40 | <lambdabot> | filter (\ a0 -> a0 < 10) (unfoldr (\ b -> if (b == 1001) then Nothing else Just (b, (b + 1))) 1) |
| 02:45:37 | → | xacktm joins (xacktm@user/xacktm) |
| 02:46:49 | <ketema> | @pl filter (<10) (unfoldr (\b -> if b == 1001 then Nothing else Just (b, b+1)) 1) |
| 02:46:49 | <lambdabot> | filter (< 10) (unfoldr (ap (flip if' Nothing . (1001 ==)) (Just . ap (,) (1 +))) 1) |
| 02:47:28 | <ketema> | @pl sum (filter divisibleBy3Or5 (unfoldr (\b -> if b == 1000 then Nothing else Just (b, b+1)) 0)) |
| 02:47:28 | <lambdabot> | sum (filter divisibleBy3Or5 (unfoldr (ap (flip if' Nothing . (1000 ==)) (Just . ap (,) (1 +))) 0)) |
| 02:49:35 | → | k8yun joins (~k8yun@user/k8yun) |
| 02:50:44 | → | andreas303 joins (andreas303@ip227.orange.bnc4free.com) |
| 02:57:28 | × | alp quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 02:57:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 02:58:25 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 258 seconds) |
| 03:00:02 | × | haasn quits (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
| 03:00:07 | × | k8yun quits (~k8yun@user/k8yun) (Quit: Leaving) |
| 03:00:35 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 03:01:23 | → | haasn joins (~nand@haasn.dev) |
| 03:05:17 | × | ketema quits (~ketema@160.sub-174-211-228.myvzw.com) (Quit: ketema) |
| 03:07:43 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 03:08:49 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:12:11 | → | Mga52 joins (~Mga@S01069050ca4e3573.cg.shawcable.net) |
| 03:12:39 | × | Mga52 quits (~Mga@S01069050ca4e3573.cg.shawcable.net) (Client Quit) |
| 03:15:11 | × | Mga quits (~Mga@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed) |
| 03:18:46 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 03:28:59 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 03:42:52 | × | simeon quits (~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de) (Remote host closed the connection) |
| 03:43:00 | × | zmt01 quits (~zmt00@user/zmt00) (Quit: Leaving) |
| 03:44:51 | → | zmt00 joins (~zmt00@user/zmt00) |
| 03:46:59 | × | [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 255 seconds) |
| 03:55:36 | × | briandaed quits (~briandaed@109.95.143.14.r.toneticgroup.pl) (Remote host closed the connection) |
| 03:57:24 | → | mimmy_ joins (~mimmy@23.230.46.221) |
| 04:00:10 | × | shinjipf quits (~shinjipf@vmi826685.contaboserver.net) (Quit: Shinji leaves) |
| 04:02:26 | → | mimmy joins (~mimmy@23.82.193.83) |
| 04:03:34 | × | mimmy_ quits (~mimmy@23.230.46.221) (Ping timeout: 246 seconds) |
| 04:03:38 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds) |
| 04:04:10 | → | shinjipf joins (~shinjipf@2a02:c207:2082:6685::1) |
| 04:20:22 | × | mimmy quits (~mimmy@23.82.193.83) (Ping timeout: 246 seconds) |
| 04:25:08 | × | kitty1 quits (~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 272 seconds) |
| 04:31:51 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 04:31:55 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 246 seconds) |
| 04:32:45 | → | coot joins (~coot@213.134.190.95) |
| 04:35:40 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 244 seconds) |
| 04:36:02 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds) |
| 04:40:34 | → | cyphase joins (~cyphase@user/cyphase) |
| 04:43:36 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 04:46:17 | → | kitty1 joins (~kitty@096-039-147-043.res.spectrum.com) |
| 04:58:59 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Ping timeout: 255 seconds) |
| 04:59:45 | → | ubert1 joins (~Thunderbi@p200300ecdf14f99dfb6d2023d109ce6e.dip0.t-ipconnect.de) |
| 04:59:57 | × | ubert quits (~Thunderbi@p200300ecdf14f9a1eda1a89be8fd240f.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 04:59:58 | ubert1 | is now known as ubert |
| 05:00:07 | → | [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) |
| 05:04:52 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 05:17:39 | → | Kaipei joins (~Kaiepi@156.34.47.253) |
| 05:20:19 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 05:20:29 | → | mimmy joins (~mimmy@23.82.193.84) |
| 05:26:46 | × | mimmy quits (~mimmy@23.82.193.84) (Ping timeout: 258 seconds) |
| 05:33:06 | → | frost joins (~frost@user/frost) |
| 05:34:02 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 05:36:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 05:37:28 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds) |
| 05:42:09 | → | mimmy joins (~mimmy@23.82.193.82) |
| 05:42:25 | → | cyphase joins (~cyphase@user/cyphase) |
| 05:42:25 | × | mimmy quits (~mimmy@23.82.193.82) (Client Quit) |
| 05:46:39 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 05:49:35 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:00:40 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:06:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:07:20 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 06:08:25 | ormaaj | is now known as jaamro |
| 06:12:07 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:12:14 | × | Haskelytic quits (~Haskelyti@37.111.212.211) (Quit: Client closed) |
| 06:19:27 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 06:22:07 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection) |
| 06:22:21 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 06:24:17 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 260 seconds) |
| 06:24:51 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:28:01 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 06:34:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:34:49 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 06:36:37 | → | irfan joins (~irfan@user/irfan) |
| 06:37:43 | → | kenran joins (~kenran@200116b82bb5a1009ed0e3ac5a3eacc5.dip.versatel-1u1.de) |
| 06:44:59 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b02c52aeeb3175c6b9c.dip0.t-ipconnect.de) |
| 06:54:27 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:58:28 | × | irfan quits (~irfan@user/irfan) (Quit: leaving) |
| 06:59:09 | → | alp joins (~alp@user/alp) |
| 07:00:55 | → | alp_ joins (~alp@user/alp) |
| 07:02:19 | × | alp_ quits (~alp@user/alp) (Remote host closed the connection) |
| 07:02:38 | → | alp_ joins (~alp@user/alp) |
| 07:03:52 | × | alp quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 07:04:23 | → | alp__ joins (~alp@user/alp) |
| 07:06:38 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection) |
| 07:07:04 | × | alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 07:08:24 | → | yw61 joins (~yw@2.58.65.178) |
| 07:09:07 | × | alp__ quits (~alp@user/alp) (Ping timeout: 258 seconds) |
| 07:14:54 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 07:16:10 | → | nate3 joins (~nate@98.45.169.16) |
| 07:16:22 | → | Teacup joins (~teacup@user/teacup) |
| 07:20:06 | × | Teacup quits (~teacup@user/teacup) (Client Quit) |
| 07:20:58 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 07:21:04 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 07:21:32 | → | Teacup joins (~teacup@user/teacup) |
| 07:22:35 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 07:23:41 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 07:26:48 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 07:29:26 | <hololeap> | @let divisibleBy3Or5 x = x `rem` 3 == 0 || x `rem` 5 == 0 |
| 07:29:27 | <lambdabot> | Defined. |
| 07:31:36 | <hololeap> | > sum [ x | x <- [0..1000], divisibleBy3Or5 x ] |
| 07:31:38 | <lambdabot> | 234168 |
| 07:33:07 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:33:18 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 07:33:28 | × | kenran quits (~kenran@200116b82bb5a1009ed0e3ac5a3eacc5.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 07:34:43 | → | Teacup joins (~teacup@user/teacup) |
| 07:38:04 | <hololeap> | why isn't there a MonadWriter instance for Control.Monad.Trans.Writer.CPS |
| 07:38:52 | <hololeap> | is it just a quirk of the libs or does the CPS version work differently somehow |
| 07:41:18 | <hololeap> | also, could someone please point me to a resource that explains in detail why the Strict version of WriterT has memory issues that the CPS version does not have? |
| 07:43:10 | × | simendsj` quits (~user@78-72-230-58-no2730.tbcn.telia.com) (Ping timeout: 240 seconds) |
| 07:44:17 | <jackdk> | hololeap: that instance exists as of mtl-2.3 |
| 07:45:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:45:39 | <hololeap> | ok, I'm on 2.2.2 |
| 07:48:07 | <jackdk> | this was in the first page of DDG results for "strict writert": https://stackoverflow.com/questions/14644830/what-is-the-point-of-having-a-lazy-strict-version-of-writer |
| 07:48:35 | <jackdk> | I imagine that even the strict version may still build a pile of <> thunks |
| 07:49:54 | <hololeap> | ok, but why doesn't CPS have the same problem? I feel like I'm missing something fundamental here |
| 07:51:13 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:51:27 | <hololeap> | actually, I don't really understand how dlist works, either |
| 07:52:33 | <hololeap> | I think they would be related |
| 07:53:01 | <jackdk> | You will have to noodle around with the source of the cps WriterT, but note that its version of `writer` forces the <> to WHNF using `seq` before returning a result. This is probably what's avoiding the thunk buildup : https://hackage.haskell.org/package/transformers-0.6.0.4/docs/src/Control.Monad.Trans.Writer.CPS.html#writer |
| 07:53:56 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 07:53:59 | <hololeap> | oh |
| 07:56:00 | <jackdk> | To understand dlist, spend half an hour performing the transformations yourself: step through the evaluation of `((([1, 2, 3] ++ [4, 5, 6]) ++ [7, 8, 9]) ++ [10, 11, 12])` to get a feel for why it must walk the prefix over and over to generate any result, then evaluate `((( ([1, 2, 3] ++) . ([4, 5, 6] ++) ) . ([7, 8, 9] ++) ) . ([10, 11, 12] ++)) []` by hand, stepping through the evaluation of `(.)` to see how it causes right-associated chain of (++) |
| 07:56:06 | <tomsmeding> | hololeap: paper is completely unrelated, but it happens to contain a description of the core idea of dlist: search for "Example 7.1" in https://arxiv.org/pdf/2205.11368.pdf |
| 07:56:10 | → | zincy joins (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr) |
| 07:56:17 | <tomsmeding> | or that :) |
| 07:56:20 | <jackdk> | (the second expression is the first, but transformed into dlist and back) |
| 07:56:30 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:57:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:57:36 | → | Pickchea joins (~private@user/pickchea) |
| 07:58:03 | → | Kaipii joins (~Kaiepi@156.34.47.253) |
| 07:58:37 | <tomsmeding> | (the example in that PDF spreads over the page break, just to be clear) |
| 07:58:52 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 07:59:35 | <hololeap> | ok, thanks |
| 08:00:07 | → | ketema joins (~ketema@129.sub-174-212-38.myvzw.com) |
| 08:00:36 | <hololeap> | I understand regular concatenation well enough, but not the dlist version. writing it out seems like a good idea |
| 08:01:15 | × | Kaipei quits (~Kaiepi@156.34.47.253) (Ping timeout: 258 seconds) |
| 08:01:52 | <hololeap> | actually, it makes intuitive sense already, since each sublist only has to be walked once in the dlist version |
| 08:02:36 | <tomsmeding> | the function compositions do cost time, but that time is proportional to the _number_ of concatenations |
| 08:06:01 | energizer_ | is now known as energizer |
| 08:21:09 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds) |
| 08:23:38 | → | Pickchea joins (~private@user/pickchea) |
| 08:27:37 | → | chomwitt joins (~chomwitt@2a02:587:dc1f:5600:72bd:2e5c:4221:2d73) |
| 08:28:40 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b02c52aeeb3175c6b9c.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 08:30:58 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
| 08:32:30 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) |
| 08:37:44 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 08:44:53 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds) |
| 08:47:50 | × | gabriel_1 quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.5) |
| 08:48:31 | → | gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk) |
| 08:48:33 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:55:53 | → | vglfr joins (~vglfr@88.155.106.79) |
| 08:57:07 | × | bilegeek quits (~bilegeek@2600:1008:b006:dc9e:9b3e:98b5:2da3:eff8) (Quit: Leaving) |
| 09:00:31 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 09:00:37 | × | zincy quits (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 09:01:38 | → | zaquest joins (~notzaques@5.130.79.72) |
| 09:06:27 | × | chomwitt quits (~chomwitt@2a02:587:dc1f:5600:72bd:2e5c:4221:2d73) (Ping timeout: 240 seconds) |
| 09:06:59 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
| 09:08:39 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 09:16:16 | × | yw61 quits (~yw@2.58.65.178) (Quit: Client closed) |
| 09:19:21 | → | Tuplanolla joins (~Tuplanoll@91-159-69-63.elisa-laajakaista.fi) |
| 09:23:29 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 09:25:03 | → | Teacup joins (~teacup@user/teacup) |
| 09:29:19 | × | Teacup quits (~teacup@user/teacup) (Client Quit) |
| 09:30:47 | → | Teacup joins (~teacup@user/teacup) |
| 09:30:49 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 09:31:11 | × | ketema quits (~ketema@129.sub-174-212-38.myvzw.com) (Quit: ketema) |
| 09:34:22 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 09:35:17 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds) |
| 09:35:37 | → | Batzy joins (~quassel@user/batzy) |
| 09:35:54 | × | Kaipii quits (~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds) |
| 09:36:34 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 09:37:31 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 09:37:49 | × | vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 246 seconds) |
| 09:38:58 | → | Teacup joins (~teacup@user/teacup) |
| 09:40:25 | → | Pickchea joins (~private@user/pickchea) |
| 09:48:12 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 09:48:52 | jaamro | is now known as ormaaj |
| 09:49:34 | → | Teacup joins (~teacup@user/teacup) |
| 09:51:51 | × | frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds)) |
| 09:52:48 | → | DNH joins (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) |
| 09:54:37 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 10:02:20 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Remote host closed the connection) |
| 10:09:00 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 10:13:39 | → | coot joins (~coot@213.134.190.95) |
| 10:19:06 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 10:21:58 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 10:23:23 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 10:23:25 | → | img joins (~img@user/img) |
| 10:23:51 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:24:31 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 10:24:35 | → | Kaipii joins (~Kaiepi@156.34.47.253) |
| 10:25:12 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 10:25:23 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
| 10:25:46 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 10:26:18 | → | coot joins (~coot@213.134.190.95) |
| 10:26:22 | → | Teacup joins (~teacup@user/teacup) |
| 10:27:45 | × | coot quits (~coot@213.134.190.95) (Remote host closed the connection) |
| 10:27:54 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 10:28:49 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 10:29:27 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 10:31:10 | → | vglfr joins (~vglfr@88.155.106.79) |
| 10:37:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 10:38:23 | × | Vajb quits (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) (Read error: Connection reset by peer) |
| 10:39:02 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:40:29 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
| 10:41:10 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds) |
| 10:41:27 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 10:42:49 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 10:45:25 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 10:47:29 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:47:30 | × | Kaipii quits (~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds) |
| 10:50:17 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 10:50:45 | → | coot joins (~coot@213.134.190.95) |
| 10:50:48 | × | coot quits (~coot@213.134.190.95) (Remote host closed the connection) |
| 10:51:45 | → | dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) |
| 10:54:14 | → | chomwitt joins (~chomwitt@2a02:587:dc1f:5600:1db:79aa:6ee1:a01a) |
| 10:55:53 | × | DNH quits (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:58:16 | → | fr-isotope joins (uid556229@id-556229.ilkley.irccloud.com) |
| 11:02:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) |
| 11:07:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 255 seconds) |
| 11:08:14 | <dsp> | I have a package that requires a specific base version <4.15. My GHC is 9.0.2 and i am curious how i best go about delivering a lower base, or do i need to downgrade the compiler |
| 11:09:43 | → | DNH joins (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) |
| 11:14:13 | ← | dsp parts (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Leaving) |
| 11:14:18 | → | dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) |
| 11:17:40 | → | nate3 joins (~nate@98.45.169.16) |
| 11:18:34 | <geekosaur> | base is hardwired into the compiler, you must downgrade |
| 11:20:53 | <geekosaur> | https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history shows what versions of things come with which compilers. base, integer-simple/integer-gmp/ghc-bignum, ghc-prim, ghc, and template-haskell are wired in |
| 11:22:32 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 11:25:12 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 11:26:50 | → | alp joins (~alp@user/alp) |
| 11:29:04 | × | dsp quits (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection) |
| 11:33:08 | <unit73e> | I figured ghcup fixes all my GHC instalation problems |
| 11:33:33 | <[exa]> | ghcup is underrated. |
| 11:33:54 | <tomsmeding> | not by its users :) |
| 11:37:15 | <[exa]> | anyway, re the problem that dsp had before -- is there some kinda switch that would, for a package, just go yolo and ignore the upper bound? (like, this is quite a common source of problems, and the only fix is that all maintainers regularly reupload new dependency bounds) |
| 11:38:23 | <geekosaur[m]> | --allow-newer |
| 11:40:51 | <[exa]> | how come I wasn't able to google this? ._. |
| 11:40:55 | <[exa]> | (thanks a lot! :D ) |
| 11:41:02 | × | chomwitt quits (~chomwitt@2a02:587:dc1f:5600:1db:79aa:6ee1:a01a) (Ping timeout: 260 seconds) |
| 11:41:10 | <geekosaur[m]> | There's also a more constrained version: --allow-newer=package: dependency [,...] |
| 11:41:27 | <tomsmeding> | can also put allow-newer: in a cabal.project, if that's your schtick |
| 11:41:42 | <geekosaur[m]> | Ugh,minus the extra spaces |
| 11:42:31 | <[exa]> | o cool |
| 11:43:23 | <tomsmeding> | [exa]: HLS uses this extensively (this list was far longer when 9.2 was fresher) https://github.com/haskell/haskell-language-server/blob/master/cabal.project#L66 |
| 11:46:23 | → | Kaipii joins (~Kaiepi@156.34.47.253) |
| 11:48:35 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 11:49:12 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 248 seconds) |
| 11:50:16 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 248 seconds) |
| 11:51:33 | → | Vajb joins (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) |
| 11:53:17 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 260 seconds) |
| 11:57:53 | → | kaskal- joins (~kaskal@213-147-164-164.nat.highway.webapn.at) |
| 11:59:15 | × | kaskal quits (~kaskal@089144205066.atnat0014.highway.webapn.at) (Ping timeout: 256 seconds) |
| 12:04:44 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) |
| 12:07:42 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 12:07:45 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 244 seconds) |
| 12:08:56 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 248 seconds) |
| 12:09:41 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:15:29 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 12:16:59 | → | Teacup joins (~teacup@user/teacup) |
| 12:17:05 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 12:17:14 | → | gio123 joins (~gio123@94.137.173.75) |
| 12:19:47 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:20:53 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 255 seconds) |
| 12:22:48 | × | alp quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 12:26:36 | → | alp joins (~alp@user/alp) |
| 12:33:55 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 12:39:40 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 12:41:17 | → | Teacup joins (~teacup@user/teacup) |
| 12:47:01 | × | joo-_ quits (~joo-_@fsf/member/joo--) (Quit: leaving) |
| 12:47:28 | × | benin quits (~benin@183.82.179.200) (Quit: The Lounge - https://thelounge.chat) |
| 12:47:46 | × | Vajb quits (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) (Ping timeout: 250 seconds) |
| 12:52:50 | × | vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 255 seconds) |
| 12:53:24 | → | vglfr joins (~vglfr@88.155.106.79) |
| 12:53:42 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 12:54:23 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 12:54:24 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 12:58:24 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 13:00:34 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 13:01:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 13:11:52 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 13:13:35 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 13:14:28 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 13:17:50 | × | fr-isotope quits (uid556229@id-556229.ilkley.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:24:12 | → | jlamothe joins (~jlamothe@198.251.60.209) |
| 13:26:19 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 13:28:43 | → | Pickchea joins (~private@user/pickchea) |
| 13:29:04 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 13:32:08 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 13:36:06 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds) |
| 13:42:54 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 13:47:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 13:47:04 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 13:48:43 | → | __monty__ joins (~toonn@user/toonn) |
| 13:52:41 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds) |
| 13:56:21 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:01:35 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 14:05:39 | × | cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 14:06:02 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) |
| 14:10:58 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 272 seconds) |
| 14:13:49 | → | chreekat2 joins (~b@152.96.94.198) |
| 14:17:03 | × | julian quits (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian))) |
| 14:22:13 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection) |
| 14:24:34 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 14:24:51 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 14:26:44 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds) |
| 14:27:40 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 14:31:50 | × | chreekat2 quits (~b@152.96.94.198) (Ping timeout: 240 seconds) |
| 14:37:18 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 14:40:53 | → | chreekat2 joins (~b@2001:620:130:6092:f0a5:94c4:beca:8e7a) |
| 14:44:41 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a) |
| 14:44:55 | <exarkun> | Why does the definition of `select` use an irrefutable pattern - `~(ts,fs)`? |
| 14:45:34 | <exarkun> | https://hackage.haskell.org/package/base-4.16.1.0/docs/src/Data-OldList.html#select |
| 14:46:40 | <shapr> | I've been fighting laziness and having vaguely related questions, like why is tails strict |
| 14:47:03 | × | raym quits (~raym@user/raym) (Quit: audio problem, rebooting...) |
| 14:48:40 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds) |
| 14:49:26 | → | raym joins (~raym@user/raym) |
| 14:49:42 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Quit: Going elsewhere) |
| 14:50:36 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a) |
| 14:52:31 | <geekosaur> | mm, I was going to say the Report probably specified the strictness of both, but the Report doesn't have anything outside the basic Prelude |
| 14:56:28 | <geekosaur> | my guess re select is that it causes partition to hold all lists completely in memory instead of lazily consuming the original an item at a time |
| 14:58:45 | <geekosaur> | as for tails, I'm not clear that laziness buys anything since it holds the entire original list (maybe minus its first element) anyway |
| 14:59:05 | <geekosaur> | or is even possible |
| 14:59:47 | <geekosaur> | holds it multiple times, even |
| 15:01:47 | <geekosaur> | mrr, clarify that: lack of ~ would cause it to hold everything in memory |
| 15:02:52 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 260 seconds) |
| 15:12:04 | × | m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 248 seconds) |
| 15:14:12 | → | m1dnight joins (~christoph@78-22-9-5.access.telenet.be) |
| 15:15:26 | <geekosaur> | yeh, tails does essentially what I would expect, and I don't think it can be made less strict meaningfully because something else would make it strict anyway |
| 15:15:29 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 15:17:01 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
| 15:17:55 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 15:17:55 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 15:17:55 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:18:28 | → | emad joins (~emad@156.214.109.162) |
| 15:18:49 | × | emad quits (~emad@156.214.109.162) (Remote host closed the connection) |
| 15:18:56 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 15:19:11 | → | nate3 joins (~nate@98.45.169.16) |
| 15:19:52 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 15:24:05 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
| 15:29:55 | × | vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 246 seconds) |
| 15:33:04 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 15:39:37 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:41:01 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
| 15:43:04 | → | vglfr joins (~vglfr@88.155.106.79) |
| 15:43:52 | → | gmg joins (~user@user/gehmehgeh) |
| 15:45:18 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 15:46:27 | → | califax joins (~califax@user/califx) |
| 15:47:16 | → | dextaa joins (~DV@user/dextaa) |
| 15:51:48 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 15:54:51 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds) |
| 16:00:06 | × | DNH quits (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:00:06 | × | oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Quit: You have been kicked for being idle) |
| 16:00:15 | × | noiobeforebed quits (~noiobefor@2001:470:69fc:105::1:3c2d) (Quit: You have been kicked for being idle) |
| 16:01:00 | → | doomfume[m] joins (~doomfumeh@2001:470:69fc:105::2:2a62) |
| 16:06:47 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) (Ping timeout: 255 seconds) |
| 16:07:55 | → | stackdroid18 joins (14094@user/stackdroid) |
| 16:09:02 | → | doomfume[m]1 joins (~doomfumem@2001:470:69fc:105::2:2a64) |
| 16:09:42 | × | kimjetwav quits (~user@2607:fea8:2340:da00:b28:9278:475e:6fce) (Quit: time to reboot) |
| 16:13:54 | → | kimjetwav joins (~user@2607:fea8:2340:da00:dee7:1b6:101c:bb2) |
| 16:14:12 | → | julian joins (~julian@20.83.116.49) |
| 16:19:34 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-dd76-ba9d-2665-21fb.res6.spectrum.com) |
| 16:22:35 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:27:37 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 16:28:05 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 16:28:24 | × | chreekat2 quits (~b@2001:620:130:6092:f0a5:94c4:beca:8e7a) (Ping timeout: 272 seconds) |
| 16:29:52 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 16:34:32 | → | gmg joins (~user@user/gehmehgeh) |
| 16:35:35 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds) |
| 16:35:36 | → | econo joins (uid147250@user/econo) |
| 16:36:04 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 16:36:16 | → | user3 joins (~user@188.253.237.9) |
| 16:38:27 | × | user3 quits (~user@188.253.237.9) (Client Quit) |
| 16:39:42 | × | vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 276 seconds) |
| 16:40:24 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 248 seconds) |
| 16:41:24 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5) |
| 16:46:47 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection) |
| 16:47:56 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
| 16:48:17 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 17:03:50 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 17:07:23 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 17:07:23 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 17:07:23 | → | wroathe joins (~wroathe@user/wroathe) |
| 17:07:31 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:08:08 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 17:08:35 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) |
| 17:09:19 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 17:12:18 | → | DNH joins (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) |
| 17:12:56 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 248 seconds) |
| 17:13:22 | → | Guest10 joins (~Guest10@136.56.166.157) |
| 17:14:13 | × | Guest10 quits (~Guest10@136.56.166.157) (Client Quit) |
| 17:14:24 | → | Guest10 joins (~Guest10@136.56.166.157) |
| 17:15:47 | × | Guest10 quits (~Guest10@136.56.166.157) (Client Quit) |
| 17:16:59 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 17:23:39 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:26:16 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds) |
| 17:35:06 | <Bulby[m]> | what do you guys use for binary serialization |
| 17:35:27 | <geekosaur> | binary or cereal are the usual go-tos |
| 17:36:09 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 17:36:34 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 17:36:47 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 17:36:58 | <Clint> | i used to use cereal, then i switched to binary |
| 17:37:41 | <Bulby[m]> | binary is really old ☹️ |
| 17:37:58 | <Bulby[m]> | i'll use cereal |
| 17:38:10 | × | Tuplanolla quits (~Tuplanoll@91-159-69-63.elisa-laajakaista.fi) (Ping timeout: 258 seconds) |
| 17:38:12 | <geekosaur> | what, does it have to be updated daily to be usable? |
| 17:38:18 | <Rembane> | Maybe binary is done? |
| 17:38:56 | <Bulby[m]> | it depends on base < 4.13 |
| 17:39:37 | <geekosaur> | https://hackage.haskell.org/package/binary says otherwise |
| 17:39:49 | <geekosaur> | >= 4.5.0.0 && < 5 |
| 17:40:18 | <Bulby[m]> | oh |
| 17:40:25 | <geekosaur> | maybe check the upper right of the page to see if you're on the latest version vs. the version google picked due to links |
| 17:40:26 | <Bulby[m]> | what are the .9 and .10 versions |
| 17:40:49 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:41:15 | <geekosaur> | red is deprecated |
| 17:41:20 | <geekosaur> | it doesn't say why |
| 17:45:08 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) |
| 17:47:02 | → | gmg joins (~user@user/gehmehgeh) |
| 17:48:42 | → | zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:911a:9716:9df3:c391) |
| 17:49:15 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 17:51:45 | → | Tuplanolla joins (~Tuplanoll@91-159-69-173.elisa-laajakaista.fi) |
| 17:54:04 | <monochrom> | I use binary because it comes with GHC. I use parsec because it comes with GHC. I use mtl because it comes with GHC. |
| 17:54:19 | <monochrom> | They are old but so am I. I am old and wise, and so are they. |
| 17:54:28 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
| 17:54:40 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:54:45 | <monochrom> | But you should have figured. I use IRC, too, an old thing. |
| 17:55:01 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 17:55:42 | <monochrom> | Whereas newer people chose the subreddit or stackoverflow or the discourse, and will never consider IRC. |
| 17:56:02 | <monochrom> | If you're all about new, perhaps you should bring your questions to them, not us. |
| 17:57:32 | <[exa]> | where do people even get this expectation of old software being worse? |
| 17:57:57 | <Clint> | bitrot |
| 17:58:01 | <monochrom> | I don't blame them. I did that once, too, when I was younger. |
| 17:58:10 | <Bulby[m]> | true, old software is usually better, especially when maintained |
| 17:58:23 | <hpc> | i mean, "old = less good" is true of almost everything |
| 17:58:28 | <Bulby[m]> | by old I mean unmaintained |
| 17:58:43 | <monochrom> | At school, I found out a bug in some software. I emailed the sysadmin and said things like "this software is old". |
| 17:59:13 | <monochrom> | The sysadmins rightfully reply "we acknowledge the bug, but age doesn't always matter". |
| 17:59:22 | <[exa]> | Clint: fair enough |
| 17:59:34 | <geekosaur[m]> | Could you tell us where you got such an old link? |
| 18:00:03 | <davean> | HTTP is old, so we should use Web3 for everything. |
| 18:00:21 | <monochrom> | Please use HTTP 3.14159 :) |
| 18:00:28 | <Bulby[m]> | ok, now on text, encode utf8: it seems it encodes an empty string. does that mean it puts nothing if the text is empty? |
| 18:00:48 | <[exa]> | davean: also computers are like 30+ years now!!11 |
| 18:01:27 | <davean> | [exa]: More than that and we should stop using them |
| 18:01:43 | <[exa]> | Bulby[m]: empty unicode string encoded to utf8 should make an empty byte sequence, yes. |
| 18:01:48 | <darkling> | davean: Some days, I could get on board with that idea. |
| 18:01:50 | <monochrom> | We should switch from tcp/ip to x.24 |
| 18:01:50 | <davean> | [exa]: you're proving their point, computers are horrid |
| 18:02:06 | <hpc> | this is why i never use imported libraries |
| 18:02:12 | <hpc> | they're always older than the code i am writing right now |
| 18:02:19 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 18:02:28 | <Bulby[m]> | hm... that is an issue. does that mean the string doesn't end with a null byte as well |
| 18:02:41 | <monochrom> | This is why I teach programming rather than write programs. :) |
| 18:03:28 | <monochrom> | What null byte? This is not ##c. |
| 18:03:37 | <davean> | Bulby[m]: Huh? |
| 18:03:41 | <[exa]> | Bulby[m]: the null byte is a C and unix convention, completely irrelevant in all other systems |
| 18:03:56 | <[exa]> | esp these that actually remember the size of their strings |
| 18:04:00 | <monochrom> | Hell, not even always a unix convention. |
| 18:04:09 | <Bulby[m]> | well I'm serialzing to binary |
| 18:04:16 | <davean> | and not even a good convention - it has to be broken a lot, because we need string with null bytes in them |
| 18:04:28 | <Bulby[m]> | so I either a. store the length or b. append a null byte |
| 18:04:34 | <davean> | So length tagged strings are normal even in C and Unix |
| 18:04:51 | <darkling> | Either of those will work, but I'd recomment storing the length. |
| 18:04:58 | <monochrom> | So store the length. |
| 18:04:58 | <[exa]> | Bulby[m]: if you need to place the binary representation to some larger bytestream, I suggest you do one of these, yes. |
| 18:05:00 | <darkling> | Advanced developers will store the length first. ;) |
| 18:05:31 | <[exa]> | and please store the length, the terminating zero is a particular piece of mess in any data exchange |
| 18:06:01 | <Bulby[m]> | I assume length of Text is not length in bytes so I have to manually call up encodeUtf8 |
| 18:06:34 | <monochrom> | You look at basically every binary file format except C strings, they all given lengths up front. |
| 18:06:40 | <[exa]> | Bulby[m]: yes, lengths of encoding vary a lot (accidentally, length of Text is afaik equal to the data length in utf32) |
| 18:07:09 | → | coot joins (~coot@213.134.190.95) |
| 18:07:15 | <Bulby[m]> | i'm getting flashbacks to haxe deserialization 😭 |
| 18:07:49 | <monochrom> | If you don't want length, please use "\end{verbatim}" instead of null byte at the end. :) |
| 18:07:55 | <[exa]> | Bulby[m]: is there Binary instance for ByteString? |
| 18:08:10 | <Bulby[m]> | yes |
| 18:08:29 | <[exa]> | darkling: advanced programmers ride on all paradigms at once and store length at the end |
| 18:08:46 | <monochrom> | store checksum and then length at the end :) |
| 18:09:00 | <Bulby[m]> | https://hackage.haskell.org/package/binary-0.8.9.0/docs/src/Data.Binary.Class.html#line-635 |
| 18:09:01 | <Bulby[m]> | bytestring stores it's length anyway |
| 18:09:04 | <[exa]> | Bulby[m]: and the Binary instance doesn't encode its length? |
| 18:09:10 | <[exa]> | o nice |
| 18:09:25 | <[exa]> | so just encode to ByteString and serialize the bytestring :] |
| 18:09:38 | <Bulby[m]> | so i can just use Text's encoding method which encodes via put |
| 18:10:15 | <Bulby[m]> | btw what's an int? int64? |
| 18:10:28 | <Bulby[m]> | yeah |
| 18:10:30 | <[exa]> | likely. |
| 18:11:14 | <Bulby[m]> | idk why they store it as int. I guess they don't expect a string longer than 2^63 |
| 18:11:26 | → | img joins (~img@user/img) |
| 18:12:08 | <davean> | Packagees like 'bytes' have VarInt instances |
| 18:12:32 | <[exa]> | Bulby[m]: you might want to contemplate on the size of that number |
| 18:12:47 | <Bulby[m]> | yeah |
| 18:13:12 | <Bulby[m]> | that was a joke but apparently it wasn't very funny 🥲 |
| 18:13:33 | → | tremon joins (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) |
| 18:13:54 | <[exa]> | ah okay. sorry I'm not fun today. :D |
| 18:14:21 | <geekosaur> | encode to ASN.1 |
| 18:14:31 | Clint | twitches. |
| 18:15:20 | → | gmg joins (~user@user/gehmehgeh) |
| 18:15:54 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds) |
| 18:16:36 | <[exa]> | Bulby[m]: anyway, I'd say `put . encodeUtf8` should just work |
| 18:17:02 | [exa] | finds Data.Text.Binary |
| 18:17:03 | <Bulby[m]> | Text has a binary instance that does exactly that |
| 18:17:17 | <[exa]> | ah |
| 18:17:21 | <[exa]> | all done then |
| 18:17:22 | <tomsmeding> | Bulby[m]: probably no system that bytestring/text supports can handle allocations longer than 2^48 in the first place |
| 18:17:22 | <[exa]> | \o/ |
| 18:17:34 | <tomsmeding> | oh it was a joke |
| 18:17:37 | <tomsmeding> | woooosh |
| 18:17:44 | <Bulby[m]> | I was just unsure if it stored the length |
| 18:17:55 | <[exa]> | tomsmeding: it's triggerish right? :D |
| 18:17:59 | <tomsmeding> | yes |
| 18:18:49 | <[exa]> | these young peeps complaining about a completely nonsential possibility of ever having a string bigger than 640kB |
| 18:18:50 | <davean> | tomsmeding: we don't need to allocate them to define them ... I'll send you the exact base 10 representation of 1/3rd ;) |
| 18:18:58 | <[exa]> | oh i mean 2^63. |
| 18:19:09 | → | cyphase joins (~cyphase@user/cyphase) |
| 18:19:18 | <tomsmeding> | davean: hm, good point, lazy bytestrings could have interesting lengths |
| 18:19:51 | <hpc> | fun related fact i saw the other day, in rust a vector of () has a fixed size |
| 18:20:04 | <hpc> | it doesn't have to reserve space for any of the values, it just keeps track of the size :D |
| 18:20:13 | <Bulby[m]> | haha |
| 18:20:17 | <davean> | tomsmeding: and we can actually store them when we take into account compression. |
| 18:20:33 | <[exa]> | hpc: kinda wondering what c++ will tell me about std::vector<void> |
| 18:21:04 | <[exa]> | that would be the same case I'd say, except c++ is likely picky about void |
| 18:21:18 | <tomsmeding> | luckily haskell can do the same https://hackage.haskell.org/package/base-4.15.1.0/docs/src/Foreign.Storable.html#line-149 |
| 18:21:36 | <hpc> | tomsmeding: haha that's great |
| 18:21:50 | <tomsmeding> | so a Data.Vector.Storable of () will be constant-size :) |
| 18:22:27 | <tomsmeding> | [exa]: void likely won't work, but you could try `struct Unit {}; std::vector<Unit> v;` |
| 18:23:11 | <tomsmeding> | [exa]: sizeof(struct Unit) == 0, so likely it would work |
| 18:23:36 | <tomsmeding> | yay lots of languages getting this right |
| 18:24:11 | <davean> | tomsmeding: in Haskell () isn't information free |
| 18:24:20 | <[exa]> | tomsmeding: haha you sure? |
| 18:24:30 | <tomsmeding> | davean: Vector doesn't care |
| 18:24:33 | <tomsmeding> | [exa]: no |
| 18:24:39 | <[exa]> | I spent quite sime time trying to get a 0-sized struct :D |
| 18:24:43 | <davean> | tomsmeding: *storable* doesn't |
| 18:24:58 | <davean> | tomsmeding: the forcing is critical |
| 18:25:01 | <tomsmeding> | [exa]: as in, that sizeof is correct, but no idea whether that will actually result in constant-size arrays |
| 18:25:05 | <geekosaur> | there's a Vector backed by Storable |
| 18:25:17 | <tomsmeding> | davean: which forcing |
| 18:25:28 | <tomsmeding> | oh, as in, Storable doesn't force but you think it should? |
| 18:25:37 | <[exa]> | maybe it works in C, but in all C++ses I tried the size of empty struct is 1 |
| 18:25:57 | <monochrom> | But C++ allows you to hand-code what vector<Unit> does and sidestep the general template. |
| 18:26:06 | <geekosaur> | strictly speaking that Storable definition is wrong because it never forces the value, so it treats _|_ as defined |
| 18:26:19 | <tomsmeding> | [exa]: WAT |
| 18:26:32 | <tomsmeding> | [exa]: compiling as C++ gives sizeof 1, but compiling as C gives sizeof 0 |
| 18:26:36 | <[exa]> | yes |
| 18:26:42 | <tomsmeding> | this is the weirdest incompatibility between the two that I've seen in a long while |
| 18:27:10 | <tomsmeding> | geekosaur: right, technically. However I think I would prefer the current definition |
| 18:27:23 | <[exa]> | AFAIK it's because of up/downcasting or something weird that requires RTTI |
| 18:27:27 | <davean> | tomsmeding: data A = A {data :: ???, normalized :: () }, A ... (deepseq data `seq` ()) |
| 18:27:30 | <davean> | tomsmeding: etc |
| 18:29:32 | <tomsmeding> | [exa]: that _requires RTTI_? |
| 18:29:47 | <tomsmeding> | oh, as in, there should be some place to store some data |
| 18:29:55 | <tomsmeding> | except you can't store anything useful in 1 byte |
| 18:30:09 | <tomsmeding> | (regarding RTTI -- I know bytes are useful in general lol) |
| 18:30:32 | <[exa]> | tomsmeding: yeah, in case someone would to use this as a field in some structure and blablabla C++std blabla, you can't have 2 things at 1 place ever™ |
| 18:30:44 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 18:30:52 | <tomsmeding> | oh hm |
| 18:31:03 | <tomsmeding> | sounds fishy though, union{} exists |
| 18:31:19 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 18:31:27 | <[exa]> | I remember deciding to completely forget about the actual reason as soon as I found it on SA |
| 18:31:46 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:32:15 | <davean> | tomsmeding: so its very meaningful that something is or has come from a Data.Vector.Storable |
| 18:32:44 | <tomsmeding> | davean: I'm afraid I'm not completely following |
| 18:33:06 | <davean> | tomsmeding: () in Haskell is a value or a computation\ |
| 18:33:08 | <tomsmeding> | the only information in a value of type () is whether it is a bottom, and if so, what bottom it is (the asynchronous error) |
| 18:33:26 | <tomsmeding> | if you put anything else in it, you better ensure _yourself_ that you evaluate it |
| 18:33:29 | <tomsmeding> | in my opinion |
| 18:33:30 | <davean> | tomsmeding: no, it can also be the information about if something is evaluated |
| 18:33:56 | <tomsmeding> | davean: except querying that information forces the evaluation, right? |
| 18:34:04 | <davean> | The *point* of the data A example is that LOOKING at the () enforces an evaluation property |
| 18:34:11 | <davean> | tomsmeding: Thats The Point(tm) |
| 18:34:17 | <tomsmeding> | yes, looking at the () from the deepseq |
| 18:34:18 | <davean> | It tracks the evaluation |
| 18:34:22 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 18:34:33 | <davean> | It allows you to - for example - impliment deepseq that doesn't rewalk |
| 18:34:39 | <davean> | Thats a fairly trivial example |
| 18:34:43 | <tomsmeding> | wait what? |
| 18:35:00 | <davean> | () stores if an evaluation *has or has not happened* |
| 18:35:00 | <tomsmeding> | you can't check whether something is a thunk in O(1), right? |
| 18:35:11 | <tomsmeding> | (well, maybe there is some weird ghc internal function for that, but disregarding that) |
| 18:35:15 | <davean> | Don't need that |
| 18:35:26 | <davean> | your deepseq implimentation is "force (normalize A) |
| 18:35:40 | <tomsmeding> | normalize :: A -> A ? |
| 18:35:42 | <davean> | if you've already deepseqed that is O(1) |
| 18:35:44 | <davean> | no |
| 18:35:49 | <davean> | look at my A definition |
| 18:36:02 | <davean> | tomsmeding: data A = A {data :: ???, normalized :: () }, A ... (deepseq data `seq` ()) |
| 18:36:03 | <tomsmeding> | on *normalizeD you meant maybe? |
| 18:36:07 | <tomsmeding> | *oh |
| 18:36:12 | <davean> | yes, sorry |
| 18:36:15 | <tomsmeding> | right |
| 18:36:22 | <davean> | Usually you'll see this particular one with that cell as "rnf" |
| 18:36:39 | <tomsmeding> | with the invariant on A that the () in 'normalized' depends on the evaluation of 'data'? |
| 18:36:47 | <tomsmeding> | OH |
| 18:37:05 | <tomsmeding> | right, you do what I just said, and then you deepseq the unit instead of the data |
| 18:37:24 | <davean> | You don't need to deep seq it, you just force it, or rnf it |
| 18:37:31 | <tomsmeding> | okay, so you still don't get the _information_ about whether it was evaluated, but you _can_ avoid traversing the data twice |
| 18:37:39 | <tomsmeding> | right, deepseq = seq for unit |
| 18:37:40 | <davean> | it evaluates whatever its existence predicates evaluation of |
| 18:38:03 | <davean> | The information is always "Eventually True" |
| 18:38:08 | <davean> | Or bottom |
| 18:38:16 | <davean> | You *do* get the information |
| 18:38:34 | <tomsmeding> | I consider "getting the information" equivalent to "being able to turn that into a Bool -- already evaluated or not already evaluated" |
| 18:38:38 | <davean> | The information should just be trivial, but it is not true when you go to look at it, its is "eventually true" |
| 18:39:05 | <davean> | tomsmeding: Well consider computational tree logic - True is not the same as Eventually True |
| 18:39:29 | <davean> | and here we aren't guarrenteed true |
| 18:39:32 | <davean> | we get either true or bottom |
| 18:39:38 | <davean> | which is a large portion of the point |
| 18:40:04 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds) |
| 18:40:12 | <tomsmeding> | I'm afraid my mind is too classical still for this :p |
| 18:41:01 | <davean> | tomsmeding: well, if you force all of them to put them in your vector, you might cause issues, and if you don't and claim they're all () you might cause issues |
| 18:41:16 | <davean> | tomsmeding: Its very clear that (computation resulting in ()) is not (is ()) |
| 18:41:25 | <davean> | you very well could get bottom and that very much is important |
| 18:41:31 | <tomsmeding> | only if you put side effects into your computation using unsafePerformIO |
| 18:41:37 | <davean> | Nope |
| 18:41:41 | <davean> | Incorrect |
| 18:41:49 | <tomsmeding> | otherwise the only difference is resource usage |
| 18:41:49 | <Bulby[m]> | what about undefined? |
| 18:41:49 | <davean> | That is true when pure |
| 18:41:54 | <davean> | tomsmeding: incorrect |
| 18:41:54 | <tomsmeding> | yes, () is pure |
| 18:42:08 | <tomsmeding> | IO () is a vastly different world :p |
| 18:42:14 | <davean> | I'm not talking about IO () |
| 18:42:18 | <Bulby[m]> | undefined is pure, and defined as bottom, no? |
| 18:42:23 | <davean> | Bulby[m]: correct |
| 18:42:35 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:42:39 | <davean> | computations on infinite lists can also be () and non-terminal |
| 18:42:51 | <davean> | And many pure computatiosn error |
| 18:43:05 | <tomsmeding> | agreed |
| 18:43:08 | <davean> | no unsafePerformIO in sight |
| 18:43:34 | <davean> | The value of () can be at least one of (), non-terminal, pure exception |
| 18:43:43 | <davean> | At the *least*, and that its self is a trit |
| 18:43:48 | <tomsmeding> | very few people care about the non-terminal option |
| 18:43:57 | <tomsmeding> | more people care about a possible exception |
| 18:44:48 | <tomsmeding> | in my opinion, if you care about the specific bottom that a computation produces, you should ensure _yourself_ that you evaluate the thing |
| 18:45:05 | <tomsmeding> | I expect stuff like a Storable Vector of () to not evaluate my stuff |
| 18:45:05 | <davean> | tomsmeding: the point is to *not* evaluate it unless you care about it |
| 18:45:20 | <davean> | tomsmeding: () ensures a *property* if you look at it |
| 18:45:48 | × | gio123 quits (~gio123@94.137.173.75) (Quit: Client closed) |
| 18:45:55 | <davean> | Data.Storable.Vector changes the *semantics* of the code |
| 18:46:03 | <Bulby[m]> | I think `()` usually means side effects and is kinda weird when you are handling it purely |
| 18:46:17 | <tomsmeding> | Data.Vector.Storable changes nothing |
| 18:46:26 | <tomsmeding> | it has an interface, and if you use it, you use the interface |
| 18:46:26 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 18:46:26 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 18:46:26 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:46:40 | <tomsmeding> | perhaps it didn't have the semantics you _expected_ |
| 18:48:19 | → | jafarlihi joins (~user@188.253.237.9) |
| 18:48:25 | <davean> | if you want to make that claim, I guess this discussion is going nowhere except a discussion of what the definition of is is |
| 18:48:29 | <davean> | So I'm out |
| 18:48:57 | <tomsmeding> | yes I'm feeling we're talking past each other |
| 18:48:59 | <tomsmeding> | sorry :) |
| 18:53:01 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:53:58 | × | jafarlihi quits (~user@188.253.237.9) (Quit: WeeChat 3.5) |
| 18:56:38 | → | notzmv joins (~zmv@user/notzmv) |
| 19:03:20 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 19:04:56 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 19:07:59 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 19:08:26 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) |
| 19:11:13 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection) |
| 19:11:26 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 19:11:32 | → | BusConscious joins (~martin@ip5f5acfa2.dynamic.kabel-deutschland.de) |
| 19:14:16 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
| 19:14:32 | × | ulvarrefr quits (~user@185.24.53.152) (Read error: Connection reset by peer) |
| 19:16:17 | × | caubert quits (~caubert@136.244.111.235) (Quit: WeeChat 3.5) |
| 19:16:31 | → | caubert joins (~caubert@136.244.111.235) |
| 19:18:18 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
| 19:19:50 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 19:20:42 | → | nate3 joins (~nate@98.45.169.16) |
| 19:22:12 | × | zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 276 seconds) |
| 19:22:47 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
| 19:25:29 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 19:25:29 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 19:25:29 | → | wroathe joins (~wroathe@user/wroathe) |
| 19:25:44 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 19:27:39 | → | gusbicalho joins (~gusbicalh@2804:431:c7f4:8ec4:4ce7:6d2e:9f0c:a377) |
| 19:28:11 | → | cyphase joins (~cyphase@user/cyphase) |
| 19:33:54 | → | ulvarrefr joins (~user@185.24.53.152) |
| 19:34:20 | → | zaquest joins (~notzaques@5.130.79.72) |
| 19:36:13 | × | shapr quits (~user@2600:4040:2d31:7100:9163:bb47:6e24:ceed) (Remote host closed the connection) |
| 19:36:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 19:48:49 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 19:49:47 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 19:55:15 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:55:28 | × | DNH quits (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Ping timeout: 250 seconds) |
| 19:55:32 | → | opow242 joins (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) |
| 19:56:33 | <Bulby[m]> | to write jump operations, Crafting Intepreters wants me to back patch, which doesn't really make sense in haskell |
| 19:57:41 | → | shapr joins (~user@2600:4040:2d31:7100:bf17:8a01:f76e:e214) |
| 19:58:34 | <Rembane> | Bulby[m]: Why doesn't it make sense? |
| 19:58:36 | <Bulby[m]> | especially with the Put monad |
| 19:58:36 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
| 19:58:48 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds) |
| 19:59:04 | <Bulby[m]> | you can't back up with the put monad/edit binary already written |
| 19:59:45 | <Rembane> | Is there a way for you to read what has been written? |
| 19:59:56 | × | alp quits (~alp@user/alp) (Ping timeout: 272 seconds) |
| 20:00:15 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 20:00:15 | <Bulby[m]> | not in any sane way |
| 20:02:52 | × | opow242 quits (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Quit: Client closed) |
| 20:03:06 | <Rembane> | Okay, then that makes it harder. I haven't read Crafting Interpreters so I don't know how they would like this to be solved. |
| 20:03:40 | <geekosaur> | the book provides Java examples iirc |
| 20:03:45 | → | opow242 joins (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) |
| 20:03:51 | <geekosaur> | Bulby[m] is translating to Haskell |
| 20:03:57 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:04:04 | <geekosaur> | I think I'd do this in 2 passes rather than try to backtrack |
| 20:04:07 | × | opow242 quits (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Client Quit) |
| 20:04:23 | → | opow242 joins (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) |
| 20:04:36 | → | machinedgod joins (~machinedg@66.244.246.252) |
| 20:04:47 | <Bulby[m]> | how would two passes work? |
| 20:05:03 | × | opow242 quits (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Client Quit) |
| 20:05:10 | <Rembane> | geekosaur: Oh, that explains quite a bit. |
| 20:05:39 | <geekosaur> | actually I'm not sure because I can't see why they'd want you to backpatch anyway |
| 20:06:09 | <Bulby[m]> | https://craftinginterpreters.com/jumping-back-and-forth.html#if-statements |
| 20:06:10 | <geekosaur> | unless it's adding something like a label / jump landing point, and the point of the first patch would be to precompute those and insert them into whatever you're serializing |
| 20:06:14 | <Bulby[m]> | for jumping |
| 20:06:57 | <Bulby[m]> | then for the first pass, what's the point of serializing to binary? |
| 20:07:20 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds) |
| 20:07:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:07:35 | <Bulby[m]> | oh, I guess it has mixed types |
| 20:07:36 | <geekosaur> | you don't serialize during that patch except to compute how many bytes are to be skipped |
| 20:08:24 | <geekosaur> | then you insert that into the AST, then you have it when serializing the AST. although this looks like it's generating code during parsing, which, well, this is why you don't do that |
| 20:08:47 | <Bulby[m]> | I am not generating during parsing |
| 20:08:48 | <geekosaur> | (IIRC [exa] described PHP doing this in reearly versions and discovering the hard way why it's a bad move) |
| 20:08:58 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving) |
| 20:09:09 | <Bulby[m]> | I am reusing my AST parser |
| 20:09:38 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 20:10:52 | <geekosaur> | okay, so you're not blindly duplicating their code, which is generating during parsing (and is why they need to backpatch) |
| 20:11:13 | <Bulby[m]> | I'm traversing the AST |
| 20:11:18 | <Bulby[m]> | not "traversing" |
| 20:11:24 | <Bulby[m]> | you know what I mean |
| 20:11:48 | <Rembane> | Compiling? |
| 20:12:15 | <geekosaur> | in a full development system you output a label at the target, output a reference to it at the point it's needed as a relocation entry, and let the linker resolve it |
| 20:12:18 | <Bulby[m]> | yes |
| 20:14:10 | <Bulby[m]> | a fun idea could be just `runPut` what I want to jump over, getting length of bytestring, then directly using `putLazyByteString` (which doesn't emit a length) |
| 20:14:47 | <geekosaur> | right, that's basically my first suggestion |
| 20:15:30 | <Bulby[m]> | ok, i'll do that then. |
| 20:15:30 | <Bulby[m]> | it's probably unoptimized but w/e |
| 20:15:34 | <geekosaur> | needs to be a little more clever than that because it may traverse other such relocations but at that point it doesn't care about them, only their lengths |
| 20:15:47 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 20:15:58 | → | Vajb joins (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) |
| 20:16:05 | <Bulby[m]> | if it traverses them then it will do the same thing |
| 20:16:27 | <Bulby[m]> | because i'd be running a recursive call |
| 20:16:29 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:16:30 | <geekosaur> | not the first time since it's not outputting them at that point |
| 20:16:54 | <Bulby[m]> | what? |
| 20:16:58 | <Bulby[m]> | i'm confused |
| 20:17:50 | <geekosaur> | if (expr) { then_part } else { something; if (expr2) { ... } else { ... }; something_else; } -- while generating the size of the else part you don't need to do generation of the contained if/else |
| 20:17:51 | → | alp joins (~alp@user/alp) |
| 20:17:58 | <geekosaur> | you only need that later. |
| 20:18:43 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:19:03 | <Bulby[m]> | why not? it would contain a jump expr as well, and I could manage it in just one pass |
| 20:19:09 | <geekosaur> | because you'll be throwing away the result while getting its length, it's a waste of time doing the whole size/fillin there |
| 20:19:13 | → | nicbk joins (~nicbk@user/nicbk) |
| 20:19:34 | <geekosaur> | unless you provide a way to return all the fillins for nested jumps |
| 20:19:36 | <Bulby[m]> | I am not throwing away the result, I said I would use `putLazyByteString` |
| 20:20:08 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 20:20:24 | × | dfg quits (~dfg@user/dfg) (Quit: I hate quit messages.) |
| 20:21:33 | → | dfg joins (dfg@dfg.rocks) |
| 20:21:33 | × | dfg quits (dfg@dfg.rocks) (Changing host) |
| 20:21:33 | → | dfg joins (dfg@user/dfg) |
| 20:22:03 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 20:22:03 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 20:22:03 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:24:15 | → | pavonia joins (~user@user/siracusa) |
| 20:24:33 | × | caubert quits (~caubert@136.244.111.235) (Changing host) |
| 20:24:33 | → | caubert joins (~caubert@user/caubert) |
| 20:28:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:35:15 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:45:44 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds) |
| 20:46:42 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 20:49:14 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection) |
| 20:50:00 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Ping timeout: 248 seconds) |
| 20:50:36 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 20:54:14 | <unit73e> | after some hiatus I'll continue my SDL engine/tutorial saga. I think it should be possible to make something completely declarative but I'm being super optimistic about it. |
| 20:54:24 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 20:54:28 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection) |
| 20:55:00 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 20:59:10 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 250 seconds) |
| 21:01:28 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 21:07:40 | × | machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 246 seconds) |
| 21:08:36 | → | machinedgod joins (~machinedg@66.244.246.252) |
| 21:13:48 | × | gusbicalho quits (~gusbicalh@2804:431:c7f4:8ec4:4ce7:6d2e:9f0c:a377) (Quit: Client closed) |
| 21:23:19 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 21:33:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 21:34:58 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 21:37:14 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 21:49:00 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 21:49:21 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 21:49:59 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 21:53:00 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 21:56:45 | × | bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection) |
| 21:57:11 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
| 21:57:20 | → | cyphase joins (~cyphase@user/cyphase) |
| 22:04:44 | × | bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection) |
| 22:05:10 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
| 22:05:25 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 22:06:01 | → | biberu\ joins (~biberu@user/biberu) |
| 22:06:48 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 22:06:52 | → | Teacup joins (~teacup@user/teacup) |
| 22:09:16 | × | biberu quits (~biberu@user/biberu) (Ping timeout: 246 seconds) |
| 22:09:16 | biberu\ | is now known as biberu |
| 22:10:05 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:13:45 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 22:19:03 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 22:23:52 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 22:24:32 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 250 seconds) |
| 22:25:59 | × | tremon quits (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
| 22:27:09 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 22:28:32 | → | Teacup joins (~teacup@user/teacup) |
| 22:28:47 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds) |
| 22:33:58 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:34:06 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving) |
| 22:34:45 | × | bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection) |
| 22:35:13 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
| 22:47:05 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 22:48:27 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:48:55 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 22:51:24 | → | ketema joins (~ketema@140.sub-174-211-237.myvzw.com) |
| 22:51:44 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 258 seconds) |
| 22:52:23 | × | BusConscious quits (~martin@ip5f5acfa2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 22:53:29 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) |
| 22:57:21 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds) |
| 23:00:45 | × | bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection) |
| 23:01:07 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
| 23:01:09 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
| 23:06:19 | → | cyphase joins (~cyphase@user/cyphase) |
| 23:07:27 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 258 seconds) |
| 23:10:11 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 23:10:45 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 23:11:49 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 23:12:32 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 23:13:14 | × | bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection) |
| 23:13:41 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
| 23:18:50 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 23:20:30 | → | Teacup joins (~teacup@user/teacup) |
| 23:22:20 | → | nate3 joins (~nate@98.45.169.16) |
| 23:31:55 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:38:04 | × | nicbk quits (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
| 23:39:50 | × | machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 240 seconds) |
| 23:40:02 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:41:45 | × | bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection) |
| 23:42:01 | → | machinedgod joins (~machinedg@66.244.246.252) |
| 23:42:23 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
| 23:54:55 | × | Tuplanolla quits (~Tuplanoll@91-159-69-173.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:56:54 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 258 seconds) |
| 23:57:44 | × | bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection) |
| 23:58:23 | → | bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) |
All times are in UTC on 2022-06-11.