Logs on 2023-07-17 (liberachat/#haskell)
| 00:00:45 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 00:05:14 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds) |
| 00:08:51 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 00:10:05 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:11:38 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds) |
| 00:12:01 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1) |
| 00:17:00 | × | oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 252 seconds) |
| 00:18:29 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 00:20:59 | [_] | is now known as [itchyjunk] |
| 00:21:14 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds) |
| 00:26:12 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds) |
| 00:27:50 | zero | is now known as zwro |
| 00:29:56 | × | fr33domlover quits (~fr33domlo@towards.vision) (Ping timeout: 258 seconds) |
| 00:33:33 | → | fr33domlover joins (~fr33domlo@towards.vision) |
| 00:34:02 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14::ac08) |
| 00:34:46 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 00:38:17 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14::ac08) (Ping timeout: 246 seconds) |
| 00:41:59 | → | wildbartty_ joins (~wildbartt@159.196.158.155) |
| 00:43:06 | → | marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8) |
| 00:45:12 | × | wildbartty quits (~wildbartt@user/wildbartty) (Ping timeout: 272 seconds) |
| 00:46:53 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:48:52 | × | wildbartty_ quits (~wildbartt@159.196.158.155) (Quit: Leaving) |
| 00:49:05 | → | wildbartty_ joins (~wildbartt@159.196.158.155) |
| 00:49:34 | → | dobblego joins (~dibblego@116-255-1-157.ip4.superloop.au) |
| 00:49:35 | × | dobblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host) |
| 00:49:35 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 00:50:06 | dobblego | is now known as dibblego |
| 00:52:37 | → | neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e) |
| 00:56:29 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 00:58:58 | → | nick4 joins (~nick@ip98-162-147-230.pn.at.cox.net) |
| 00:59:40 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 01:01:11 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 264 seconds) |
| 01:10:55 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:12:13 | → | razetime joins (~quassel@117.193.6.110) |
| 01:14:01 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 01:17:03 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:18:30 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds) |
| 01:20:02 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds) |
| 01:21:37 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 01:24:11 | <Axman6> | @src Monoid |
| 01:24:11 | <lambdabot> | class Monoid a where |
| 01:24:11 | <lambdabot> | mempty :: a |
| 01:24:11 | <lambdabot> | mappend :: a -> a -> a |
| 01:24:11 | <lambdabot> | mconcat :: [a] -> a |
| 01:24:47 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 01:25:01 | → | Square joins (~Square@user/square) |
| 01:25:02 | <Axman6> | @src Foldable |
| 01:25:02 | <lambdabot> | Source not found. Do you think like you type? |
| 01:25:06 | <Axman6> | :( |
| 01:25:35 | <Square> | I sit and hammer away in GHCI. Suddenly 🎃 appears on the command line out of nowhere. |
| 01:26:46 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 01:29:15 | × | dispater quits (~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in) |
| 01:29:16 | × | orcus quits (~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in) |
| 01:29:32 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds) |
| 01:32:26 | → | dispater joins (~dispater@user/brprice) |
| 01:32:59 | → | orcus joins (~orcus@user/brprice) |
| 01:35:42 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 01:39:14 | <Axman6> | Square: spooky, I can't wait to hear the end of the story... if you survive |
| 01:40:02 | <Square> | I have to admit, it was a bit scary. |
| 01:40:11 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 264 seconds) |
| 01:40:16 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 01:40:27 | <Axman6> | The emojis are coming from inside the house, get out! |
| 01:45:35 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 01:45:48 | → | kritty joins (~crumb@c-76-155-235-153.hsd1.co.comcast.net) |
| 01:47:07 | <Square> | omg omg =D |
| 01:47:54 | <ddellacosta> | is there a way to pass a struct by value via FFI other than just writing a wrapper function in C myself? |
| 01:53:20 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 01:54:21 | <monochrom> | I think no, since there is no pass-struct-by-value-via-FFI at all. |
| 01:54:22 | <probie> | https://wiki.haskell.org/Foreign_Function_Interface#Foreign_types concretely says "no". Being a wiki, it might be out of date, but I don't think it is |
| 01:54:26 | <Axman6> | ddellacosta: have you tried it? IIRC if you're passing something by reference you need to be explicit by using Ptr, so I would have assumed that as long as you have the appropriate Storable instance it might work? |
| 01:54:37 | <Axman6> | guess I'm wrong |
| 01:54:51 | <monochrom> | FFI only knows ints, floats, and pointers. It almost doesn't even know C strings. |
| 01:56:26 | <ddellacosta> | Axman6: yeah I've had no luck in any variation I've tried even with what seems like a viable Storable instance :-( |
| 01:56:34 | <ddellacosta> | monochrom: thanks for confirming, that's what I suspected |
| 01:56:35 | <probie> | If it's a struct like `struct point { int x; int y; }` you might be able to get away with `newtype Point = Point Word64` |
| 01:56:48 | <ddellacosta> | naw, this is a beast with like 14 fields |
| 01:57:00 | <monochrom> | You can make and use an appropriate Storable instance, but then you are still by-ref/ptr not by-value. |
| 01:57:26 | <ddellacosta> | yeah, I'm going to have to just make a C wrapper to call the API function, as far as I can understand right now |
| 01:57:42 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds) |
| 01:57:52 | × | kritty quits (~crumb@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Leaving) |
| 01:58:42 | <ddellacosta> | also probie thanks for that wiki link, missed that somehow |
| 01:59:05 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 02:00:20 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection) |
| 02:00:39 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 02:09:28 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 02:09:35 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 264 seconds) |
| 02:09:42 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 02:10:19 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 02:12:16 | → | dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au) |
| 02:12:16 | × | dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host) |
| 02:12:16 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 02:14:32 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds) |
| 02:16:30 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 02:17:58 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 02:18:12 | <ddellacosta> | woohoo that was actually super easy |
| 02:18:36 | × | phma quits (~phma@2001:5b0:210b:e378:ed22:f5d0:8c20:185c) (Read error: Connection reset by peer) |
| 02:19:00 | → | phma joins (~phma@host-67-44-208-43.hnremote.net) |
| 02:21:05 | → | bratwurst joins (~dfadsva@2604:3d09:207f:f650::c680) |
| 02:21:14 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 02:22:21 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection) |
| 02:23:14 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 02:25:06 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 02:29:42 | × | td_ quits (~td@i53870936.versanet.de) (Ping timeout: 272 seconds) |
| 02:30:55 | × | bratwurst quits (~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 240 seconds) |
| 02:31:19 | → | td_ joins (~td@i53870921.versanet.de) |
| 02:37:48 | × | neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed) |
| 02:39:12 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 02:43:43 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 258 seconds) |
| 02:52:21 | → | lain1001 joins (~lain@76.108.135.43) |
| 02:54:36 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:54:36 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:54:37 | finn_elija | is now known as FinnElija |
| 02:56:33 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 02:57:52 | × | ddellacosta quits (~ddellacos@143.244.47.81) (Ping timeout: 245 seconds) |
| 02:58:38 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds) |
| 02:59:14 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Client Quit) |
| 02:59:46 | × | lain1001 quits (~lain@76.108.135.43) (Ping timeout: 260 seconds) |
| 03:00:01 | → | ddellacosta joins (~ddellacos@146.70.171.140) |
| 03:01:22 | × | picklejuice quits (~root@172.58.204.21) (Ping timeout: 272 seconds) |
| 03:02:23 | → | picklejuice joins (~root@172.58.203.145) |
| 03:02:56 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 03:03:21 | → | puke joins (~puke@user/puke) |
| 03:04:25 | × | puke quits (~puke@user/puke) (Max SendQ exceeded) |
| 03:05:51 | → | puke joins (~puke@user/puke) |
| 03:08:32 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 03:08:58 | × | ft quits (~ft@p508db47d.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 03:09:33 | → | pickleju1ce joins (~root@c-73-196-164-60.hsd1.nj.comcast.net) |
| 03:09:57 | × | picklejuice quits (~root@172.58.203.145) (Ping timeout: 245 seconds) |
| 03:10:34 | → | ft joins (~ft@p508dbe50.dip0.t-ipconnect.de) |
| 03:12:52 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds) |
| 03:16:22 | → | pyooque joins (~puke@user/puke) |
| 03:16:22 | puke | is now known as Guest5974 |
| 03:16:22 | × | Guest5974 quits (~puke@user/puke) (Killed (zirconium.libera.chat (Nickname regained by services))) |
| 03:16:22 | pyooque | is now known as puke |
| 03:16:36 | × | phma quits (~phma@host-67-44-208-43.hnremote.net) (Read error: Connection reset by peer) |
| 03:17:00 | → | phma joins (phma@2001:5b0:210b:e378:ed22:f5d0:8c20:185c) |
| 03:18:46 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
| 03:21:15 | × | ddellacosta quits (~ddellacos@146.70.171.140) (Ping timeout: 246 seconds) |
| 03:22:10 | × | mechap quits (~mechap@user/mechap) (Ping timeout: 260 seconds) |
| 03:22:53 | → | mechap joins (~mechap@user/mechap) |
| 03:23:21 | → | ddellacosta joins (~ddellacos@143.244.47.68) |
| 03:25:50 | → | lain1001 joins (~lain@76.108.135.43) |
| 03:29:39 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 03:30:06 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 03:31:18 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 03:35:25 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds) |
| 03:42:40 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 03:46:14 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 03:47:21 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 258 seconds) |
| 03:59:53 | → | aforemny joins (~aforemny@i59F516E8.versanet.de) |
| 04:00:23 | × | actioninja63 quits (~actioninj@user/actioninja) (Quit: see ya mane) |
| 04:00:48 | → | actioninja63 joins (~actioninj@user/actioninja) |
| 04:01:02 | × | aforemny_ quits (~aforemny@i59F516F8.versanet.de) (Ping timeout: 252 seconds) |
| 04:01:51 | × | mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 246 seconds) |
| 04:04:06 | → | mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
| 04:06:55 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:07:19 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 04:09:11 | × | razetime quits (~quassel@117.193.6.110) (Ping timeout: 245 seconds) |
| 04:10:22 | × | Square quits (~Square@user/square) (Ping timeout: 245 seconds) |
| 04:15:59 | × | lain1001 quits (~lain@76.108.135.43) (Quit: leaving) |
| 04:17:53 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 04:22:26 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds) |
| 04:24:46 | → | trev joins (~trev@user/trev) |
| 04:32:24 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 04:34:28 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 272 seconds) |
| 04:35:00 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 04:38:03 | → | gentauro joins (~gentauro@user/gentauro) |
| 04:39:26 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds) |
| 05:05:31 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 05:08:28 | → | dobblego joins (~dibblego@116-255-1-114.ip4.superloop.au) |
| 05:08:28 | × | dobblego quits (~dibblego@116-255-1-114.ip4.superloop.au) (Changing host) |
| 05:08:28 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 05:09:11 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds) |
| 05:09:11 | dobblego | is now known as dibblego |
| 05:15:43 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 05:23:14 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds) |
| 05:29:01 | → | notzmv joins (~zmv@user/notzmv) |
| 05:31:12 | <Lears> | probie: Re your Preludeless adventures, I've done similar things before. It's vastly more comfortable if you allow yourself to craft a RebindableSyntax interface layer. I.e. write an alternate prelude that imports (but does not reexport) types like `Integer` and `String`, just to implement `fromInteger` and `fromString`, etc. |
| 05:31:47 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds) |
| 05:34:09 | → | rainbyte joins (~rainbyte@181.31.239.226) |
| 05:39:11 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 05:43:17 | × | pickleju1ce quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 246 seconds) |
| 05:46:36 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 05:50:50 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds) |
| 06:01:37 | → | mncheck joins (~mncheck@193.224.205.254) |
| 06:03:52 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 06:05:25 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 06:05:46 | → | smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com) |
| 06:08:12 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds) |
| 06:10:44 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 272 seconds) |
| 06:16:03 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 06:20:06 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 06:20:12 | → | Guest97 joins (~Guest97@2603-7000-4b42-1100-8446-81c1-b315-7d12.res6.spectrum.com) |
| 06:20:55 | <Guest97> | Hello !! How to Calculate mod of Rational Number in Haskell? I can't get it right |
| 06:23:24 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds) |
| 06:24:20 | → | razetime joins (~quassel@117.193.6.110) |
| 06:25:25 | <Axman6> | > let fmod n d = let q = n / d in n - q*d in fmod pi 3 |
| 06:25:27 | <lambdabot> | 0.0 |
| 06:25:36 | <Axman6> | hmmm |
| 06:25:55 | <Axman6> | uh, yeah of course |
| 06:26:25 | <Axman6> | Guest97: what sort of answer are you expecting to get? |
| 06:27:20 | <Guest97> | A rational number between 0%1 and 11%1 |
| 06:27:40 | <c_wraith> | > mod' 3.5 1.5 |
| 06:27:41 | <lambdabot> | 0.5 |
| 06:27:47 | <c_wraith> | > mod' 3.5 1.5 :: Rational |
| 06:27:48 | <lambdabot> | 1 % 2 |
| 06:27:57 | <c_wraith> | it's in Data.Fixed, for some reason |
| 06:28:11 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 06:28:32 | <Guest97> | ok I couldn't find mod' |
| 06:28:51 | <c_wraith> | https://hackage.haskell.org/package/base-4.18.0.0/docs/Data-Fixed.html#v:mod-39- |
| 06:29:25 | <Axman6> | :t realFrac |
| 06:29:26 | <lambdabot> | error: |
| 06:29:26 | <lambdabot> | • Variable not in scope: realFrac |
| 06:29:26 | <lambdabot> | • Perhaps you meant ‘realToFrac’ (imported from Prelude) |
| 06:29:58 | <Axman6> | :t properFraction |
| 06:29:59 | <lambdabot> | (RealFrac a, Integral b) => a -> (b, a) |
| 06:35:35 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14::ac08) |
| 06:36:33 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:39:22 | <Axman6> | > let fmod n d = let (i,f) = properFraction (n / d) in f*d in fmod pi 3 |
| 06:39:23 | <lambdabot> | 0.1415926535897929 |
| 06:39:31 | <Axman6> | > let fmod n d = let (i,f) = properFraction (n / d) in f*d in fmod 3.5 1.5 |
| 06:39:33 | <lambdabot> | 0.5000000000000002 |
| 06:39:40 | <Axman6> | > let fmod n d = let (i,f) = properFraction (n / d) in f*d in fmod 3.5 1.5 :: Rational |
| 06:39:41 | <lambdabot> | 1 % 2 |
| 06:39:55 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14::ac08) (Ping timeout: 240 seconds) |
| 06:40:50 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 06:40:52 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:41:34 | → | michalz joins (~michalz@185.246.207.218) |
| 06:43:59 | → | titibandit joins (~titibandi@user/titibandit) |
| 06:45:41 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14::ac08) |
| 06:46:31 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 06:47:00 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 06:49:09 | → | mango joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) |
| 06:53:54 | → | oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
| 07:00:42 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 07:04:25 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds) |
| 07:12:56 | → | fendor joins (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) |
| 07:16:02 | × | razetime quits (~quassel@117.193.6.110) (Ping timeout: 246 seconds) |
| 07:16:21 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 07:21:08 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds) |
| 07:31:48 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 07:33:17 | → | neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e) |
| 07:35:48 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 07:36:03 | → | razetime joins (~quassel@117.193.6.110) |
| 07:37:40 | × | neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Client Quit) |
| 07:38:54 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 07:41:23 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14::ac08) (Remote host closed the connection) |
| 07:41:58 | → | pointlessslippe1 joins (~pointless@212.82.82.3) |
| 07:42:59 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 07:48:35 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 07:51:00 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 07:53:20 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds) |
| 08:00:26 | × | rainbyte quits (~rainbyte@181.31.239.226) (Ping timeout: 245 seconds) |
| 08:03:26 | → | gurkenglas joins (~gurkengla@dynamic-046-114-176-022.46.114.pool.telefonica.de) |
| 08:05:38 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 08:09:38 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 260 seconds) |
| 08:10:17 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:11:13 | → | titibandit joins (~titibandi@user/titibandit) |
| 08:13:22 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 08:15:23 | → | bontaq joins (~user@ool-45779b84.dyn.optonline.net) |
| 08:15:23 | × | titibandit quits (~titibandi@user/titibandit) (Read error: Connection reset by peer) |
| 08:18:14 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:19:54 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 258 seconds) |
| 08:21:11 | → | titibandit joins (~titibandi@user/titibandit) |
| 08:22:49 | → | ripspin joins (~chatzilla@1.145.214.25) |
| 08:24:29 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:24:44 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 08:24:58 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 08:25:49 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 08:28:20 | → | califax joins (~califax@user/califx) |
| 08:28:32 | → | chele joins (~chele@user/chele) |
| 08:29:26 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 08:32:17 | → | qqq joins (~qqq@92.43.167.61) |
| 08:36:22 | → | titibandit joins (~titibandi@user/titibandit) |
| 08:38:18 | × | razetime quits (~quassel@117.193.6.110) (Ping timeout: 272 seconds) |
| 08:39:16 | × | wildbartty_ quits (~wildbartt@159.196.158.155) (Remote host closed the connection) |
| 08:39:52 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 08:41:00 | → | danse-nr3 joins (~francesco@151.43.141.194) |
| 08:43:44 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:43:51 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 08:51:16 | → | mei joins (~mei@user/mei) |
| 08:58:14 | → | razetime joins (~quassel@117.193.6.110) |
| 09:02:33 | × | Guest97 quits (~Guest97@2603-7000-4b42-1100-8446-81c1-b315-7d12.res6.spectrum.com) (Quit: Client closed) |
| 09:04:48 | → | m1k3d joins (~md@74.102.139.139) |
| 09:06:10 | × | mango quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 09:12:42 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 09:12:59 | × | end\ quits (~end^@user/end/x-0094621) (Remote host closed the connection) |
| 09:17:41 | × | Inst__ quits (~Inst@2601:6c4:4081:2fc0:39c6:994c:92a5:82c7) (Ping timeout: 246 seconds) |
| 09:18:25 | × | acidjnk quits (~acidjnk@p200300d6e7072f499123e473781aa8c4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 09:18:42 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) |
| 09:20:06 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds) |
| 09:24:32 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Ping timeout: 272 seconds) |
| 09:25:06 | × | ft quits (~ft@p508dbe50.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:29:10 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:33:07 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 09:34:16 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 09:34:24 | × | danse-nr3 quits (~francesco@151.43.141.194) (Remote host closed the connection) |
| 09:34:46 | → | danse-nr3 joins (~francesco@151.43.141.194) |
| 09:35:03 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
| 09:35:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:36:01 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 09:37:06 | Lord_of_Life_ | is now known as Lord_of_Life |
| 09:41:09 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1) |
| 09:44:14 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 258 seconds) |
| 09:44:38 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 09:44:39 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 09:45:12 | → | __monty__ joins (~toonn@user/toonn) |
| 09:49:18 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 09:52:18 | × | Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection) |
| 09:52:18 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:52:32 | × | CrunchyFlakes quits (~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) (Quit: WeeChat 4.0.1) |
| 09:53:52 | → | Inst__ joins (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) |
| 09:56:50 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 272 seconds) |
| 09:58:28 | → | titibandit joins (~titibandi@user/titibandit) |
| 09:59:56 | → | dobblego joins (~dibblego@116-255-1-114.ip4.superloop.au) |
| 09:59:56 | × | dobblego quits (~dibblego@116-255-1-114.ip4.superloop.au) (Changing host) |
| 09:59:56 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 10:00:38 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 272 seconds) |
| 10:00:39 | dobblego | is now known as dibblego |
| 10:02:38 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection) |
| 10:11:42 | → | puke joins (~puke@user/puke) |
| 10:12:49 | × | puke quits (~puke@user/puke) (Max SendQ exceeded) |
| 10:14:21 | → | puke joins (~puke@user/puke) |
| 10:29:52 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) |
| 10:30:15 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 10:31:56 | <danse-nr3> | maybe a b c d |
| 10:32:13 | <danse-nr3> | i guess `c` cannot be a function applied to `d` to return a maybe ... |
| 10:34:19 | <danse-nr3> | oh, the case is that `maybe a b c` could return a function to be applied to `d` |
| 10:39:28 | → | zazaeil joins (~user@91.234.25.217) |
| 10:39:51 | <probie> | > maybe (*2) (*) (Just 3) 14 |
| 10:39:52 | <lambdabot> | 42 |
| 10:41:36 | <zazaeil> | is there a way to run `Yesod.Test` with `QuickCheck` altogether? like `prop "tests foo" $ forAll genFoo $ \foo -> do { get $ HomeR foo ; statusIs 400 }`? |
| 10:41:45 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:42:26 | <zazaeil> | I want request to be generated randomly and then run it on top of the `Yesod.Test` capabilities. |
| 10:43:04 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 250 seconds) |
| 10:45:01 | → | titibandit joins (~titibandi@user/titibandit) |
| 10:47:01 | × | p3n quits (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in) |
| 10:48:01 | → | ishig joins (~abbe@136.pool85-53-4.dynamic.orange.es) |
| 10:48:08 | → | picklejuice joins (~root@c-73-196-164-60.hsd1.nj.comcast.net) |
| 10:48:46 | × | ishig quits (~abbe@136.pool85-53-4.dynamic.orange.es) (Client Quit) |
| 10:49:12 | <Profpatsch> | Is it possible to refer to the current module? |
| 10:49:33 | <Profpatsch> | e.g. if I have a let fooFn = fooFnFromModule |
| 10:49:45 | <Profpatsch> | something like let foo = ThisModule.foo |
| 10:50:04 | <danse-nr3> | zazaeil, i wonder whether a tool already exists to do that. I recall a friend was working on something similar many years ago. I think it was independent from the framework serving the interface though, just querying from a client |
| 10:50:50 | <danse-nr3> | Profpatsch, usually if you have an ambiguity in scope, the compiler will show you the alternatives "qualified" |
| 10:51:15 | → | acidjnk joins (~acidjnk@p200300d6e7072f779123e473781aa8c4.dip0.t-ipconnect.de) |
| 10:51:18 | <zazaeil> | danse-nr3: any chance you got a `GitHub` ref or something alike? I really need that but seems quite a complex task get done. |
| 10:52:03 | <danse-nr3> | nope sorry, i think he abandoned that project since, so i should do a proper research about the topic |
| 10:53:02 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 10:53:12 | <danse-nr3> | something platform-independent should rely on a description of the interface anyways |
| 10:53:24 | <zazaeil> | danse-nr3: I have some guesses why he did abandon that; does not sound like an easy thing to do. |
| 10:53:54 | <danse-nr3> | nah, it was working. There are many reasons why projects do not take off sometimes |
| 10:54:36 | <zazaeil> | danse-nr3: I see. just in case you'd recall something useful, pls shoot me a msg. |
| 10:54:54 | <zazaeil> | meanwhile will try to scan the Github once again. might find something to reuse. |
| 10:55:00 | <danse-nr3> | good luck! |
| 10:55:22 | <danse-nr3> | and also try scanning hackage, not everything is on github |
| 10:55:46 | × | tomku quits (~tomku@user/tomku) (Ping timeout: 260 seconds) |
| 10:56:21 | <zazaeil> | danse-nr3: indeed |
| 10:59:57 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 11:05:17 | → | misterfish joins (~misterfis@87.215.131.102) |
| 11:07:31 | → | mei joins (~mei@user/mei) |
| 11:08:36 | → | CrunchyFlakes joins (~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) |
| 11:08:46 | × | CrunchyFlakes quits (~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) (Quit: WeeChat 4.0.2) |
| 11:08:59 | → | CrunchyFlakes joins (~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) |
| 11:09:46 | <Profpatsch> | danse-nr3: yeah but I can’t import the current module without creating a cycle as far as I can see |
| 11:10:36 | <danse-nr3> | why would you import it when all symbols are already in scope? |
| 11:11:23 | → | ubert joins (~Thunderbi@91.141.70.181.wireless.dyn.drei.com) |
| 11:16:26 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection) |
| 11:17:51 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 11:18:52 | <probie> | I think the only time one would need this is if you had some shadowing going on, e.g. `foo x y = if y == 0 then x else let foo = x + y in ThisModule.foo foo (y - 1)` |
| 11:19:43 | <probie> | if it's a top level name collision, one can import every module qualified, and then only the current module will have unqualified names |
| 11:19:56 | <danse-nr3> | % let head = const 1 in head [0] |
| 11:19:57 | <yahb2> | 1 |
| 11:20:20 | <danse-nr3> | maybe i have something setup that makes the compiler complain and list alternatives |
| 11:22:18 | <probie> | No, it's just that that definition of `head` shadows `Prelude.head`. If you make a top level definition named `head`, it won't shadow `Prelude.head` and you'll get an error about ambiguity when you go to use `head` |
| 11:22:30 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 11:22:52 | <danse-nr3> | % head = const 1 |
| 11:22:52 | <yahb2> | <no output> |
| 11:22:58 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds) |
| 11:23:02 | <danse-nr3> | % head [0] |
| 11:23:02 | <yahb2> | 1 |
| 11:23:19 | <danse-nr3> | i do not know how to make a top-level definition then |
| 11:25:22 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
| 11:25:28 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 11:25:46 | <danse-nr3> | % head = Prelude.head |
| 11:25:46 | <yahb2> | <no output> |
| 11:25:54 | <danse-nr3> | just in case |
| 11:26:03 | <probie> | Try loading something like https://paste.tomsmeding.com/DSgolX8Z in GHCi |
| 11:27:33 | <danse-nr3> | i get no errors |
| 11:27:43 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 11:27:57 | <probie> | Interesting |
| 11:28:02 | × | acidjnk quits (~acidjnk@p200300d6e7072f779123e473781aa8c4.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 11:28:55 | <probie> | So if I try and load that, I get https://paste.tomsmeding.com/6YcL8qZM |
| 11:29:50 | <Lears> | Profpatsch: The current module is already "imported" (in scope) both qualified and unqualified. |
| 11:29:51 | <danse-nr3> | maybe it is a new feature, i run old 8.6 |
| 11:30:04 | <fvr> | Profpatsch: you don't need import the current module, you can prefix usage with current module name without importing |
| 11:30:23 | → | acidjnk joins (~acidjnk@p200300d6e7072f770cf848d8868092f6.dip0.t-ipconnect.de) |
| 11:32:11 | <Profpatsch> | Lears: fvr but I can’t give it a different qualified name? |
| 11:32:25 | <Profpatsch> | maybe I’m asking too much haha |
| 11:34:22 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 11:34:36 | <fvr> | Profpatsch: Perhaps `qualified-imports-plugin` can be modified to accomplish that |
| 11:35:05 | × | CrunchyFlakes quits (~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) (Quit: WeeChat 4.0.2) |
| 11:38:10 | × | danse-nr3 quits (~francesco@151.43.141.194) (Ping timeout: 272 seconds) |
| 11:38:42 | × | Logio_ quits (em@kapsi.fi) (Ping timeout: 260 seconds) |
| 11:39:03 | <Profpatsch> | fvr: errr, if plain Haskell doesn’t support it it’s fine |
| 11:39:21 | → | Logio joins (em@kapsi.fi) |
| 11:39:36 | <Profpatsch> | I’d rather not use plugins if I can avoid it, esp not for things that can be trivially worked around |
| 11:48:56 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 11:49:08 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 11:50:41 | → | Guest94 joins (~Guest94@89.101.145.49) |
| 11:50:58 | × | Guest94 quits (~Guest94@89.101.145.49) (Client Quit) |
| 11:58:59 | × | razetime quits (~quassel@117.193.6.110) (Remote host closed the connection) |
| 11:59:05 | → | rainbyte joins (~rainbyte@181.31.239.226) |
| 12:00:22 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 12:05:24 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds) |
| 12:07:26 | → | danse-nr3 joins (~francesco@151.43.154.166) |
| 12:13:22 | × | m1k3d quits (~md@74.102.139.139) (Read error: Connection reset by peer) |
| 12:22:42 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 12:42:02 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 12:42:55 | × | gurkenglas quits (~gurkengla@dynamic-046-114-176-022.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 12:53:38 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds) |
| 12:53:38 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 12:53:47 | → | yoggurt[m] joins (~yoggurtma@2001:470:69fc:105::2:ba5) |
| 12:56:34 | → | alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) |
| 13:03:40 | → | telser joins (~quassel@user/telser) |
| 13:04:18 | × | zazaeil quits (~user@91.234.25.217) (Ping timeout: 272 seconds) |
| 13:08:46 | × | picklejuice quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 245 seconds) |
| 13:09:28 | → | picklejuice joins (~root@c-73-196-164-60.hsd1.nj.comcast.net) |
| 13:17:23 | × | nick4 quits (~nick@ip98-162-147-230.pn.at.cox.net) (Ping timeout: 264 seconds) |
| 13:22:02 | × | xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 272 seconds) |
| 13:23:45 | → | xff0x joins (~xff0x@178.255.149.135) |
| 13:24:16 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 250 seconds) |
| 13:25:38 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:6659:6245:cbff:fe9f:48b1) |
| 13:30:44 | × | alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 13:35:56 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 13:37:11 | × | xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 246 seconds) |
| 13:38:06 | → | alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) |
| 13:39:11 | → | xff0x joins (~xff0x@2405:6580:b080:900:28aa:9c66:15d:15fc) |
| 13:40:10 | × | alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 13:40:40 | → | alexbiehl joins (~alexbiehl@77.20.253.164) |
| 13:40:45 | × | danse-nr3 quits (~francesco@151.43.154.166) (Ping timeout: 258 seconds) |
| 13:40:56 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 13:41:13 | → | danse-nr3 joins (~francesco@151.43.154.166) |
| 13:45:01 | × | alexbiehl quits (~alexbiehl@77.20.253.164) (Remote host closed the connection) |
| 13:45:53 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 13:46:41 | <Lears> | Profpatsch: I doubt it's an improvement over your workaround, but I'd been wanting a TH/QQ exercise anyway, so I wrote this: <https://gist.github.com/LSLeary/5e181568bdf7a7fba72d243e15e5b632>. |
| 13:46:51 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 13:47:33 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 13:54:37 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 13:54:59 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 13:58:14 | × | qqq quits (~qqq@92.43.167.61) (Quit: Lost terminal) |
| 13:59:11 | <Profpatsch> | Lears: erm, no thank you |
| 13:59:24 | <Profpatsch> | that is scary |
| 14:00:03 | <Profpatsch> | Am I right in the assumption that HasField cannot be correctly derived for rankN fields? |
| 14:02:07 | <[exa]> | the complexity of the proposition that the HasField would represent may get pretty scary there |
| 14:04:05 | → | Square joins (~Square@user/square) |
| 14:04:09 | <Profpatsch> | The thing is I’m using a record to mock some functions |
| 14:04:28 | <Profpatsch> | and this record field looks like: insert :: forall coll. ([InsertEntry coll] -> m [Entry coll ()]) |
| 14:04:49 | <Profpatsch> | but mock.insert cannot infer coll? |
| 14:04:55 | <Profpatsch> | Proxy I guess |
| 14:04:55 | → | qqq joins (~qqq@92.43.167.61) |
| 14:05:34 | <Profpatsch> | doesn’t seem to work :( |
| 14:06:27 | ← | jabuxas parts (~jabuxas@user/jabuxas) (WeeChat 3.8) |
| 14:06:28 | <Profpatsch> | It does work with a FieldSelector |
| 14:06:42 | → | nick4 joins (~nick@wsip-174-78-110-18.pn.at.cox.net) |
| 14:06:45 | <Profpatsch> | So I guess I’d have to enable FieldSelectors for this module :( |
| 14:07:30 | <Lears> | NamedFieldPuns is best for records of functions. |
| 14:08:12 | <Profpatsch> | Lears: ah yes, that’s another possibility thanks |
| 14:09:32 | <Profpatsch> | that’s a lot better |
| 14:13:56 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 14:26:08 | <nick4> | I'm trying to install hoogle locally through cabal. I keep getting this error when building the warp-tls dependency: Couldn't match type ‘x509-1.7.7:Data.X509.CertificateChain.CertificateChain’ |
| 14:26:10 | <nick4> | with ‘crypton-x509-1.7.6:Data.X509.CertificateChain.CertificateChain’ |
| 14:26:32 | <nick4> | Is there a way to resolve this without modifying source? I'm not sure how to resolve this. |
| 14:31:06 | <int-e> | maybe try --constraint 'crypton-x509 < 0.0' |
| 14:31:29 | <int-e> | but presumably there's a reason for that fork of x509 |
| 14:32:01 | → | mango joins (~finn@176-151-21-224.abo.bbox.fr) |
| 14:34:46 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 14:35:42 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 14:36:19 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 14:38:07 | → | mei joins (~mei@user/mei) |
| 14:39:11 | <int-e> | it's a very recent fork though so it'll probably work for now |
| 14:40:24 | → | tomku joins (~tomku@user/tomku) |
| 14:40:34 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds) |
| 14:44:37 | <nick4> | so you're saying I should try $ cabal install --contraint 'crypton-x509 < 0.0' hoogle? |
| 14:44:55 | <int-e> | con*s*traint. yes. |
| 14:46:12 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 14:46:16 | <int-e> | it should use previous releases of tls and http-client-tls that still rely on x509 |
| 14:46:29 | <nick4> | well that kinda works. Now I'm getting an out of scope error for the same variable that it says couldn't match type . . . =/ |
| 14:46:50 | <int-e> | fun? |
| 14:46:57 | <nick4> | much |
| 14:47:10 | <nick4> | I'm just not sure how I'm supposed to figure out how to resolve the dependencies? |
| 14:47:40 | <nick4> | like at least with missing C headers, I can try random things lol |
| 14:47:45 | <int-e> | . o O ( reset the package index state to early 2022 and try again ) |
| 14:47:48 | <nick4> | I'm completely lost here |
| 14:48:13 | <int-e> | (the last upload of hoogle was in december 2021; presumably it could be built then) |
| 14:48:32 | <int-e> | Oh, C headers... that's outside the scope of cabal |
| 14:48:54 | <geekosaur> | I think that was an example of what they could fix, as compared to this? |
| 14:48:59 | <int-e> | but if it's a type error that rather suggests incompatible dependencies |
| 14:49:03 | <int-e> | on the haskell side |
| 14:49:32 | <nick4> | Hmmm I'm not sure what you mean by the package index . . . I'm not seeing any options in cabal help to direct me. |
| 14:50:04 | × | mango quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 14:50:38 | <int-e> | the package index is what `cabal update` updates |
| 14:50:42 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 14:51:30 | <int-e> | And you can roll that back with, uhm, `cabal update --index-state='2022-01-01'` for example. I'm not convinced that this is a great idea unless you're also willing to use a similarly old ghc. |
| 14:51:59 | <int-e> | and also I've never done that |
| 14:52:15 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 14:52:16 | <int-e> | I only know of that feature because `caba update` itself advertises it |
| 14:52:32 | <nick4> | well clearly this version of ghc isn't working with hoogle, so I'm willing to try things |
| 14:52:42 | <nick4> | how do I know which version of ghc that I need? |
| 14:53:11 | <nick4> | I assume I can just install it with ghcup and symlink it? |
| 14:53:37 | <maerwald> | symlink? |
| 14:53:40 | <int-e> | somewhere between 8.10 and 9.2 I guess |
| 14:53:44 | <geekosaur> | ghcup set ghc, or use ghcup tui to select it, or use -w with cabal to tell caball to use a specific version |
| 14:54:05 | <maerwald> | or symlink it manually and cause havoc :D |
| 14:54:08 | <geekosaur> | cabal install haddock -w ghc-8.10.7 |
| 14:54:13 | <int-e> | 9.2 was still rather new then; 8.10 is the safest bet |
| 14:54:52 | <maerwald> | ghcup run --ghc 8.10 -- cabal install haddock |
| 14:55:24 | <int-e> | (not sure whether there is a convenient list of release dates, but with https://www.haskell.org/ghc/download.html it's just a click per version) |
| 14:55:57 | <maerwald> | int-e: ghcup now supports adding release dates (which is used for nightlies only atm) |
| 14:56:06 | zwro | is now known as yin |
| 14:56:09 | <maerwald> | so anyone with too much time on their hands could provide a PR |
| 14:56:37 | <jade[m]> | I believe this shows modification dates without click http://downloads.haskell.org/~ghc/9.6.1/ |
| 14:56:47 | <int-e> | . o O ( I'm too busy procrastinating to do that ) |
| 14:56:55 | <jade[m]> | oops, one directory back |
| 14:57:16 | <maerwald> | yeah, I got a lot of time, but not a lot of energy (sick leave) |
| 14:57:16 | <geekosaur> | only to 2020 |
| 14:57:26 | <maerwald> | so am just bikeshedding on github issues |
| 14:57:31 | <geekosaur> | but that may be good enough |
| 14:57:40 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds) |
| 14:57:43 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
| 14:58:11 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 264 seconds) |
| 14:58:55 | <nick4> | well i installed ghcup from brew install, and in .ghcup/bin it doesn't install a plain ghc/ghci version, but instead always symlinks to an executable in .ghcup/bin/ghc/{version} but does not provide a ghc/ghci without a version appended to the name, so how else can I run ghc/ghci without symlinking one of those binaries? |
| 14:59:12 | <geekosaur> | that's what ghcup set is for |
| 14:59:18 | <nick4> | exactly |
| 14:59:26 | <geekosaur> | ghcup set ghc <version> |
| 14:59:41 | <geekosaur> | or use ghcup tui to select a version |
| 14:59:58 | <maerwald> | yeah, we need an introductory mode |
| 15:00:17 | <maerwald> | https://github.com/haskell/ghcup-hs/pull/850 |
| 15:00:49 | <nick4> | ah hell yeah that's way better than manual symlinking! XD |
| 15:02:09 | <maerwald> | that's because you installed via brew and didn't go through the installation script that will do that for you |
| 15:02:43 | <maerwald> | I'm not too excited of people packaging ghcup... means I can't control the entry point anymore. It's more support work |
| 15:04:55 | <danse-nr3> | many technologies ship with an environment switcher. ghcup has become the haskell standard |
| 15:05:14 | <danse-nr3> | which alternative would you suggest? |
| 15:05:45 | <nick4> | ah ok, do you think it would be better to just uninstall through brew and then install through the script? |
| 15:05:51 | <maerwald> | nick4: yes |
| 15:05:54 | <nick4> | I'm just trying ot manage installations with a package manager |
| 15:05:58 | <maerwald> | curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh |
| 15:06:25 | <danse-nr3> | oh got it was just about packaging |
| 15:06:33 | <maerwald> | danse-nr3: I'm not sure I'm following... with "I can't control the entry point anymore" I mean I'm the maintainer of ghcup and have to deal with fallout that packagers do |
| 15:06:44 | <maerwald> | (e.g. brew packaging broke the vscode-haskell extension) |
| 15:06:45 | <danse-nr3> | yeah apologies |
| 15:07:20 | <maerwald> | because `ghcup upgrade --inplace` doesn't work anymore when using brew |
| 15:07:32 | <maerwald> | may fail with permission denied |
| 15:08:20 | × | danse-nr3 quits (~francesco@151.43.154.166) (Remote host closed the connection) |
| 15:08:28 | <maerwald> | or... the users run `ghcup upgrade` and got the PATH not in order |
| 15:08:37 | <maerwald> | now they got 2 binaries |
| 15:08:43 | → | danse-nr3 joins (~francesco@151.43.154.166) |
| 15:09:51 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 15:09:55 | → | mauke joins (~mauke@user/mauke) |
| 15:11:02 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:11:54 | → | califax joins (~califax@user/califx) |
| 15:13:25 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 15:13:43 | → | gurkenglas joins (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) |
| 15:14:32 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 15:15:22 | <probie> | Why do people package ghcup? If I'm a package maintainer, the last thing I want is software that upgrades itself and installs things outside the package manager, since I can't make any promises about the stability or security of it. |
| 15:16:05 | <maerwald> | probie: ghcup doesn't update itself inplace by default |
| 15:16:11 | <maerwald> | it has sane defaults |
| 15:16:24 | <maerwald> | and many package managers provide e.g. rustup |
| 15:16:35 | <maerwald> | there is something compelling about it, but |
| 15:16:57 | → | califax joins (~califax@user/califx) |
| 15:17:35 | <int-e> | but for you as the maintainer it's a burden |
| 15:17:37 | <maerwald> | probie: you can't make any guarantee about any application in your repository that connects to the internet (games, chat apps, whatever) |
| 15:17:42 | <maerwald> | they all write to $HOME |
| 15:19:21 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 15:19:34 | <maerwald> | from a security perspective, I think ghcup is better than (most) package repositories: it prefers GHC upstream bindists whenever possible. Those are built and verified by GHC devs. |
| 15:20:06 | <maerwald> | security is established through sha256 checksums and gpg signatures |
| 15:20:22 | <maerwald> | https://www.haskell.org/ghcup/guide/#gpg-verification |
| 15:21:00 | <maerwald> | but no one ever asked me for my GPG key... so I think no one cares about security |
| 15:21:20 | <maerwald> | they'll just believe whatever someone uploaded to that website |
| 15:22:08 | <maerwald> | I think people rather rely on public shaming |
| 15:22:52 | <maerwald> | give trust to random strangers and shame them if they f*ck up :D |
| 15:23:18 | <nick4> | lol I'm definitely doing this wrong, but you may find it humours that I was jesting about C headers before . . . . `gcc' failed in phase `C Compiler'. (Exit code: 1) . . . fatal error: 'ffitarget_arm64.h' file not found . . . no wonder why you didn't recommend this XD |
| 15:23:35 | <maerwald> | nick4: darwin aarch64? |
| 15:23:41 | <nick4> | Monterey |
| 15:23:49 | <maerwald> | what architecture |
| 15:23:58 | <nick4> | M1 |
| 15:24:08 | <maerwald> | which ghc version |
| 15:24:08 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) |
| 15:24:12 | × | xff0x quits (~xff0x@2405:6580:b080:900:28aa:9c66:15d:15fc) (Ping timeout: 240 seconds) |
| 15:24:24 | → | Pickchea joins (~private@user/pickchea) |
| 15:24:31 | <nick4> | right now I've downgraded to 9.2.1 |
| 15:24:46 | <maerwald> | this is a known bug |
| 15:24:54 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 15:24:58 | <maerwald> | https://gitlab.haskell.org/ghc/ghc/-/issues/20592#note_391266 |
| 15:25:02 | <nick4> | yeah I really hate macs man |
| 15:25:20 | <nick4> | wouldn't have this thing if my boss didn't buy it for me |
| 15:25:22 | <maerwald> | export C_INCLUDE_PATH="`xcrun --show-sdk-path`/usr/include/ffi" |
| 15:25:38 | <maerwald> | but it's fixed in 9.2.3+ |
| 15:26:17 | → | xff0x joins (~xff0x@ai086045.d.east.v6connect.net) |
| 15:26:42 | <nick4> | how did you find that so fast? |
| 15:27:13 | <maerwald> | my brain is filled with GHC bugs |
| 15:27:39 | <maerwald> | most of them are on mac |
| 15:27:42 | <nick4> | rofl |
| 15:28:17 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Ping timeout: 245 seconds) |
| 15:28:33 | <maerwald> | I should take more sick leave... I feel more productive that way |
| 15:31:04 | <nick4> | fuck, all that downgrading and I get the same failure to build from the warp-tls dependency . . . |
| 15:31:21 | <maerwald> | what failure |
| 15:33:25 | → | Ashkan joins (~Ashkan@a119011.upc-a.chello.nl) |
| 15:34:19 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 15:35:23 | <Ashkan> | Hi guys. I have this rather simple function : |
| 15:35:23 | <Ashkan> | ``` |
| 15:35:24 | <Ashkan> | size :: SomeTypeClass a => a -> Float |
| 15:35:24 | <Ashkan> | size x = x * blockSize |
| 15:35:25 | <Ashkan> | ``` |
| 15:35:25 | <Ashkan> | `blockSize` is a `Float` and I need `size` to work with essentially every number as long as they are not imaginary or anything fancy: Integer, Int, Double etc. Ideas ? |
| 15:35:45 | <maerwald> | SomeTypeClass? |
| 15:36:22 | <Ashkan> | that is part of the question. I don't know which type class but I assume there must be a type class ? |
| 15:37:02 | <Ashkan> | maybe I should define one and then instance it for those type I want to work with :thinking: Would that be too much ? |
| 15:37:37 | <geekosaur> | Ashkan, I think you've got typeclasses backwards, as is common for people coming from OOP |
| 15:37:47 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 15:38:05 | <geekosaur> | blockSize will have some specific type; x must therefore have the same type, it cannot be "any numeric type" |
| 15:38:13 | <geekosaur> | :t (*) |
| 15:38:14 | <lambdabot> | Num a => a -> a -> a |
| 15:38:22 | <probie> | You probably want `Real`. `size x = (realToFrac x) * blockSize` |
| 15:38:25 | <geekosaur> | they all have to be the same `a` |
| 15:38:30 | → | alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) |
| 15:38:42 | <probie> | s/probably/may/ |
| 15:38:50 | <mauke> | :t \x -> toEnum (fromEnum x) * (2 :: Float) |
| 15:38:51 | <lambdabot> | Enum a => a -> Float |
| 15:38:58 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 15:39:05 | mauke | runs away |
| 15:39:08 | <Ashkan> | Think of it this way: I need to express that there is a block-size and then I have full-number blocks (like 3 blocks, or 10 blocks) and half blocks (3.5) and partial blocks (1/3rd of a bock or 3.56 of a block) and they all translate to a screen size by multiplying them with the block-size. How do I model that ? |
| 15:39:14 | <probie> | > toEnum (fromEnum (3.2 :: Float)) |
| 15:39:15 | <lambdabot> | *Exception: Prelude.Enum.().toEnum: bad argument |
| 15:39:19 | <probie> | :( |
| 15:39:53 | <mauke> | > toEnum (fromEnum 3.2) * (2 :: Float) |
| 15:39:54 | <lambdabot> | 6.0 |
| 15:40:24 | <mauke> | Ashkan: Rational, maybe? |
| 15:41:14 | <Ashkan> | geekosaur they don;t need to be all `a`. `size` outputs `Float`. It's argument, however, could be anything: whole numbers, fractional numbers, Doubles ... anything except non-real number or fancy stuff |
| 15:41:57 | <geekosaur> | (*) requires both parameters and its result to be the same type |
| 15:42:09 | <geekosaur> | you must do a conversion somewhere and it must be explicit |
| 15:42:12 | <mauke> | why are you using Float? |
| 15:43:01 | <nick4> | https://paste.tomsmeding.com/pIaBfPzw |
| 15:43:03 | <nick4> | there's the error |
| 15:43:18 | <probie> | > (0.1 + (0.2 :: Double), 0.1 + (0.2 :: Float)) -- <joke>It's the more correct type</joke> |
| 15:43:19 | <lambdabot> | (0.30000000000000004,0.3) |
| 15:43:30 | × | alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 15:43:48 | <Ashkan> | mauke the `size` output is used with gloss functions which use `Float` but on a more conceptual level :the output is the screen size of the blocks in question, hence its either `Float` or `Double` |
| 15:43:50 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 15:44:17 | <mauke> | my screen uses pixels |
| 15:44:34 | <mauke> | I've never seen floating points |
| 15:44:48 | <maerwald> | nick4: try using 3.4.0 |
| 15:44:57 | <maerwald> | it uses the new crypton package, which might have fixedit |
| 15:45:19 | <c_wraith> | Eh. It's not wrong to model the screen as point samples of some continuous function, at least when doing graphics. |
| 15:45:32 | <geekosaur> | mauke, opengl (gloss) doesn't do pixels |
| 15:46:09 | <int-e> | . o O ( fragments ) |
| 15:46:16 | <mauke> | maybe someone should port it to computer screens |
| 15:46:18 | <c_wraith> | but Float's lack of precision when magnitudes get a little big has led to all sorts of bugs in all sorts of games |
| 15:46:34 | geekosaur | has flashbacks to DPS |
| 15:47:14 | <mauke> | ... but first we need to talk about parallel universes |
| 15:47:38 | <Square> | I'm playing with ":kind" here. Can i somehow write the type function (->) ((,) Int) wo defining the actual parameterized type? |
| 15:47:39 | <probie> | Ashkan: Whether or not it's the right thing to do, `size :: Real a => a -> Float; size x = realToFrac x * blockSize` will do what you've asked, assuming `blockSize` is a `Float` (i.e take Int, Integer, Float, Double, Word etc.) |
| 15:48:38 | <Ashkan> | probie Thank you ! that answers my question. |
| 15:48:48 | <Square> | (...as I do with function composition using ":t") |
| 15:49:08 | <c_wraith> | A lot of games model time by converting some system timer that reports uptime into a number of seconds. Turns out that if you then convert that timer into a Float, after about 6 days, updates to it are no longer of sufficient granularity to update at 60 Hz. This has caused bugs in a number of games. |
| 15:50:13 | → | danse-nr3_ joins (~francesco@151.57.135.118) |
| 15:50:17 | × | danse-nr3 quits (~francesco@151.43.154.166) (Read error: Connection reset by peer) |
| 15:50:56 | <Ashkan> | Now another question. How do I properly model this concept of "converting to screen units" ? the key point is : there are a few things (expressed as types) for all of which it makes sense and is required to get the screen-size. Some of them are used-defined like `newtype Col = Col Int` or maybe even more complex. Does a type-class fit here ? |
| 15:50:59 | <c_wraith> | A lot of games model world coordinates as floats. When the world gets too big, this results in objects popping between locations, as the minimum available precision becomes a visible gap |
| 15:53:04 | → | hellwolf joins (~user@5b3d-5cac-bb28-d008-0f00-4d40-07d0-2001.sta.estpak.ee) |
| 15:54:37 | <hellwolf> | Who here has experience to share regarding how to kick start a local haskell user group? How many people needed to have the 1st event, what topics, what format, etc? I know this is too general a question, but still would like to just hear some stories... |
| 15:55:31 | <geekosaur> | that sounds like a good thing to ask on the discourse |
| 15:56:04 | <geekosaur> | c_wraith, while your observations are correct, Ashkan is using gloss which uses Float |
| 15:56:17 | <geekosaur> | rewriting it is probably out of scope |
| 15:56:26 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 15:57:19 | <Ashkan> | It is a very stripped down mine sweeper but interesting to know about how float will cause all those bugs ! |
| 15:58:47 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 15:58:55 | <c_wraith> | Technically, Double has all the same bugs. But you're way less likely to encounter them thanks to the much larger precision |
| 15:59:31 | <c_wraith> | Still, ideally you'd be doing those tasks with some sort of fixed-point numbers, where precision doesn't depend on the magnitude |
| 16:00:26 | <c_wraith> | (And that have good hardware support, and good language support... it's not happening any time soon) |
| 16:00:49 | <mauke> | > head [ n | n <- [0 ..], let x = fromInteger (1 `shiftL` n) :: Float, x + 1 == x ] |
| 16:00:50 | <lambdabot> | 24 |
| 16:00:55 | <mauke> | > head [ n | n <- [0 ..], let x = fromInteger (1 `shiftL` n) :: Double, x + 1 == x ] |
| 16:00:56 | × | Ashkan quits (~Ashkan@a119011.upc-a.chello.nl) (Quit: Client closed) |
| 16:00:56 | <lambdabot> | 53 |
| 16:01:07 | <mauke> | that sounds about right |
| 16:02:05 | <c_wraith> | more than double the mantissa size! |
| 16:02:09 | <mauke> | well, everybody knows that home computers can't handle integers larger than 32 bits, so you should be safe using Double |
| 16:02:21 | <c_wraith> | ah, the javascript approach |
| 16:03:27 | <mauke> | ... cribbed from perl |
| 16:03:33 | <c_wraith> | I like that javascript has bitwise operators that are specified as "convert the arguments to a 32-bit integer, do the bitwise operation, convert the result back to a double" |
| 16:04:30 | <mauke> | except in the mean time, perl switched to keeping the internal representation as an integer wherever possible |
| 16:04:38 | <jade[m]> | c_wraith: Q_sqrt "evil bit hack" moment |
| 16:05:34 | → | dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
| 16:05:38 | <c_wraith> | jade[m]: Oh. No, I meant convert the number to a 32-bit integer by rounding/clamping. Not doing a bitwise conversion, like that hack does. |
| 16:05:47 | <jade[m]> | ahhhhh okay |
| 16:06:07 | <mauke> | s/rounding/truncating/ |
| 16:06:10 | <jade[m]> | what are those useful for? |
| 16:06:27 | <c_wraith> | When you want to pretend you have an integer and do bitwise operations |
| 16:06:43 | <c_wraith> | despite javascript only having doubles |
| 16:06:53 | <jade[m]> | ahh I see |
| 16:06:59 | <jade[m]> | js fuckery |
| 16:07:21 | <danse-nr3_> | Square what do you mean? |
| 16:07:34 | <mauke> | (I'm serious about the perl part, btw: perl's internal type for floating-point numbers is still called NV (for "numeric value")) |
| 16:07:47 | <mauke> | probably the fast inverse square root hack |
| 16:08:03 | <[exa]> | hellwolf: do you have some user group communication platform/link/base? once that is established just share the link here and you'll see. :D |
| 16:08:13 | × | nyc quits (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Read error: Connection reset by peer) |
| 16:08:45 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 16:09:14 | <jade[m]> | https://www.youtube.com/watch?v=p8u_k2LIZyo / https://en.m.wikipedia.org/wiki/Fast_inverse_square_root |
| 16:09:55 | <mauke> | I'd like to strike my last remark. I've accidentally crossed the conversation streams |
| 16:10:14 | <Square> | danse-nr3_, I meant that just as I can do ':t show . (3*)' Id hoped I could do ':k (->) ((,) Int)' and it magically sorted out the resulting type function/kind. =D |
| 16:10:34 | <mauke> | you'd need a type-level compose |
| 16:10:46 | <Square> | oh ok |
| 16:11:07 | <danse-nr3_> | wow i received a message from lambdabot from two days ago |
| 16:11:26 | <mauke> | type C f g x = f (g x), except that doesn't help you because C (->) ((,) Int) is malformed |
| 16:12:27 | <Square> | oh ok |
| 16:13:34 | <jade[m]> | unrelated, but I recently realized that I really dislike how TupleSections look |
| 16:14:00 | × | remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 252 seconds) |
| 16:15:47 | → | remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz) |
| 16:15:48 | <probie> | I hate all three of `flip (,) x`, `\y -> (y, x)` and `(,x)` |
| 16:17:01 | <jade[m]> | yeah that's fair |
| 16:17:01 | <danse-nr3_> | `(,x)` looks nice and readable |
| 16:17:10 | <jade[m]> | just don't use tuples tbh |
| 16:17:16 | <jade[m]> | (half joking) |
| 16:18:26 | <probie> | :t (,42,,) |
| 16:18:27 | <lambdabot> | Num t1 => t2 -> t3 -> t4 -> (t2, t1, t3, t4) |
| 16:20:17 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 16:20:32 | <probie> | :t (,(,(,(,42)))) -- I hate that they make parens extra meaningful |
| 16:20:33 | <lambdabot> | Num t1 => t2 -> (t2, t3 -> (t3, t4 -> (t4, t5 -> (t5, t1)))) |
| 16:20:53 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 16:20:57 | <probie> | :t (, , , , 42) |
| 16:20:58 | <lambdabot> | Num t1 => t2 -> t3 -> t4 -> t5 -> (t2, t3, t4, t5, t1) |
| 16:20:59 | → | pickleju1ce joins (~root@172.56.217.212) |
| 16:21:01 | <jade[m]> | that's truly disgusting |
| 16:21:09 | <mauke> | you sound like you'd enjoy perl |
| 16:21:35 | → | arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au) |
| 16:21:41 | <mauke> | in perl, (1,(((2),3),4)) and 1,2,3,4 mean the same thing |
| 16:21:49 | <mauke> | (because , is list concatenation) |
| 16:23:38 | × | picklejuice quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 246 seconds) |
| 16:24:31 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 16:24:41 | <probie> | I can't make lambdabot demonstrate it, but I also hate that you're allowed to put newlines into tuple sections |
| 16:26:11 | <monochrom> | You're allowed to put newlines into almost everywhere. |
| 16:26:20 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds) |
| 16:26:30 | <jade[m]> | as long as the indentation on the next line is right |
| 16:26:34 | <mauke> | I avoid newlines by programming in the whitespace-free subset of Haskell |
| 16:27:02 | <probie> | Yes, but it means that people from languages that allow trailing commas get a rather weird type error |
| 16:27:36 | <monochrom> | This allows a religious cult of code formatting that minimizes line-based diffs. Perhaps that's what you hate. :) |
| 16:28:44 | <jade[m]> | very evil |
| 16:28:54 | <int-e> | > let{fibs(x)(y)=x:fibs(y)(x+y)}in{--}fibs(0)(1) |
| 16:28:55 | <lambdabot> | [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,... |
| 16:29:30 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 16:29:43 | <mauke> | baeuaeutiful |
| 16:29:50 | <int-e> | mauke: do you think using {--} is cheating? |
| 16:29:56 | <probie> | > let{fibs(x)y=x:fibs(y)(x+y)}in0+fibs(0)1 |
| 16:29:58 | <lambdabot> | <hint>:1:29: error: parse error on input ‘in0’ |
| 16:30:16 | <probie> | right, that turns it into an identifier |
| 16:30:29 | <mauke> | int-e: no, but you could've used ( ) instead, which is shorter |
| 16:30:30 | <probie> | > let{fibs(x)y=x:fibs(y)(x+y)}in(fibs(0)1) |
| 16:30:32 | <lambdabot> | [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,... |
| 16:30:39 | <int-e> | probie: ohright |
| 16:30:44 | <int-e> | mauke: err |
| 16:30:51 | <int-e> | mauke: (that was for you) |
| 16:31:17 | <int-e> | so silly too since I used so many parentheses already |
| 16:31:35 | <probie> | > let{fibs(x)y=y:fibs(x+y)y}in(fibs(1)0) |
| 16:31:36 | <lambdabot> | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0... |
| 16:31:40 | <monochrom> | let kt = flip take in kt"abcdefg"2 |
| 16:31:44 | <monochrom> | err |
| 16:31:46 | <monochrom> | > let kt = flip take in kt"abcdefg"2 |
| 16:31:47 | <lambdabot> | "ab" |
| 16:32:01 | <int-e> | apparently `data(A)=B|C` is legal? |
| 16:32:09 | <jade[m]> | lambdabot: iccanobif |
| 16:32:25 | <int-e> | so the white-space-free fragment is shaping up to be rather big even without comments |
| 16:32:52 | <probie> | > let{fibs(x)y=y:fibs(x+y)x}in(fibs(1)0) |
| 16:32:54 | <lambdabot> | [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,... |
| 16:34:25 | <int-e> | with PackageImports you can even foo import"base"Data.List |
| 16:34:34 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 16:34:40 | <mauke> | ah, but how do you enable PackageImports? |
| 16:34:52 | <int-e> | I don't know yet |
| 16:35:06 | <probie> | cheat and pass it as an argument to GHC |
| 16:35:50 | <int-e> | Sorry, that was poor style. I meant "this is left as an exercise to the reader". |
| 16:36:01 | <jade[m]> | the command and args to ghc itself also may not contain whitespace |
| 16:36:26 | <monochrom> | x`fibs`y=y:(x+y)`fibs`x :) |
| 16:36:35 | <geekosaur> | {-#OPTIONS_GHC-XPackageImportds#-} |
| 16:36:39 | <geekosaur> | -d |
| 16:37:36 | <Square> | Free monads seems hyped in that they can be give you analyzable trace of a computation. I wonder if there are any examples libs / apps using it that way. I mostly find illustrative examples of Free rather than actual application of it. |
| 16:38:11 | <monochrom> | Use C instead of shell. execlp("ghc","-XPackageImports",(char*)NULL); no space at all :) |
| 16:38:25 | <Square> | ie Free tutorials- |
| 16:38:40 | <monochrom> | (I am teaching fork-exec in a course right now :) ) |
| 16:39:30 | <monochrom> | https://hackage.haskell.org/package/free-game is a game library that uses a free monad. |
| 16:39:52 | <Square> | thanks |
| 16:40:05 | <geekosaur> | you can rev-deps any free monad package such as prompt |
| 16:40:10 | <geekosaur> | or freer or etc. |
| 16:40:23 | <geekosaur> | (packdeps.haskellers.com/revdeps) |
| 16:40:44 | <Square> | thans |
| 16:41:04 | <int-e> | . o O ( echo${IFS}a${IFS}b${IFS}c ) |
| 16:42:05 | <int-e> | (there is nothing wrong with using more than one whitespace character per argument) |
| 16:42:11 | <geekosaur> | sorry that's /reverse not /revdeps |
| 16:42:22 | <mauke> | {echo,hello,world} |
| 16:42:24 | <geekosaur> | also I think flora.pm provides reverse dependencies |
| 16:42:37 | → | CrunchyFlakes joins (~pi4@ip9234cf0c.dynamic.kabel-deutschland.de) |
| 16:42:43 | <int-e> | mauke: hmm interesting |
| 16:43:37 | <int-e> | oh duh |
| 16:44:01 | <int-e> | (I know that syntax, but I have probably never used it in isolation like that) |
| 16:44:02 | × | pickleju1ce quits (~root@172.56.217.212) (Ping timeout: 250 seconds) |
| 16:44:08 | <geekosaur> | heh |
| 16:44:19 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 16:44:59 | → | picklejuice joins (~root@172.56.218.140) |
| 16:49:31 | <probie> | int-e: You've probably seen it prefixed like in `mv foo{,.old}` |
| 16:50:35 | <int-e> | probie: Among other things, yes. I'm surprised I didn't recognize it because I actually use it quite a lot. I think the reason is that I usually don't think much about what it actually expands too |
| 16:50:39 | <int-e> | *to |
| 16:51:51 | <int-e> | or maybe I forgot that the command name is just another word in the command line |
| 16:52:06 | <int-e> | whatever |
| 16:52:56 | <Square> | geekosaur, i found it |
| 16:53:17 | <int-e> | so I think whitespace- and comment-free Haskell is quite adequte for programming, but I don't think you can name modules (`module Foo where`) |
| 16:54:18 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 16:55:01 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 16:55:18 | <probie> | But you can run definitely write little programs like `{runhaskell,-XPackageImports}<<<'import"base"Data.List;main=putStrLn(sort("Hello\x20World"))'` |
| 16:55:52 | <geekosaur> | did you catch how to turn on PackageImports in the file? |
| 16:55:54 | <mauke> | \x20? how gauche |
| 16:56:07 | <geekosaur> | concat 😛 |
| 16:56:34 | <mauke> | \32, baby |
| 16:56:41 | <int-e> | probie: right, and you can use let{...}in(...) to switch to explicit layout for as many local function definitions as you like |
| 16:57:06 | <geekosaur> | \& is gauche too 😛 |
| 16:57:15 | <geekosaur> | \32\&5 |
| 16:57:17 | <int-e> | geekosaur: I'm debating whether a pragma is a comment |
| 16:58:26 | <geekosaur> | I'd say it isn't. I get syntax errors for using one in the wrong place (try it with e.g. {-# COMPLETE #-}) |
| 17:00:22 | <geekosaur> | btw, re {} there's another confusion in that { means two different things |
| 17:00:35 | <geekosaur> | {foo,bar} vs. {;a;b;} |
| 17:00:52 | <geekosaur> | one's a glob, the other's a command list |
| 17:01:30 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 17:01:49 | <Hecate> | Unicorn_Princess: hohai |
| 17:01:50 | <ncf> | {;a;b;} is nothing |
| 17:02:02 | <probie> | An unrecognised pragma is only a warning though |
| 17:02:05 | <ncf> | i think you need spaces to disambiguate |
| 17:03:07 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 17:03:43 | <geekosaur> | probie, https://paste.tomsmeding.com/HYpvaxKe |
| 17:04:19 | <geekosaur> | (serious example, I am still trying to put together a promposal and found out I couldn't reuse that pragma with backward compatibility) |
| 17:04:41 | <geekosaur> | -m |
| 17:04:47 | <probie> | Sure, but `{runhaskell,-XPackageImports}<<<'module{-##-}Main{-#Deprecated"a"#-}where;import"base"Data.List;main=putStrLn(sort("Hello\x20World"))'` runs |
| 17:05:40 | <geekosaur> | int-e asked if pragmas counted as comments, at least one does not because you get a syntax error |
| 17:05:46 | <Unicorn_Princess> | Hecate, o/ |
| 17:07:33 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 17:09:49 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 17:12:04 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:14:06 | → | bratwurst joins (~dfadsva@2604:3d09:207f:f650::c680) |
| 17:16:15 | × | ripspin quits (~chatzilla@1.145.214.25) (Remote host closed the connection) |
| 17:19:32 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 272 seconds) |
| 17:21:32 | × | mizlan quits (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 17:22:15 | → | mizlan joins (~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) |
| 17:23:42 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 246 seconds) |
| 17:24:50 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Quit: λ) |
| 17:26:02 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 17:27:12 | → | mango joins (~finn@176-151-21-224.abo.bbox.fr) |
| 17:28:23 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:6659:6245:cbff:fe9f:48b1) (Quit: Leaving) |
| 17:32:49 | <probie> | cat<<<'{-#OPTIONS_GHC-XPackageImports#-}import"base"System.Environment;main=do{[input,_,output]<-getArgs;writeFile(output)"module\x20";readFile(input)>>=appendFile(output).drop(34)}'>AddModule.hs;{ghc,--make,AddModule.hs,-o,addModule};{runhaskell,-F}<<<'{-#OPTIONS_GHC-pgmF=./addModule#-}Main{-#Warning"SpacelessMode"#-}where;main=putStrLn"hi"' |
| 17:32:59 | <probie> | this almost definitely counts as cheating |
| 17:33:30 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 17:35:25 | <probie> | namely, write a source preprocessor that adds `module ` to the start of files in the space-free dialect of Haskell, and then run it on a source file that starts with the module name. It breaks when there are other pragmas at the start of the file, but that's easily fixed |
| 17:38:02 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 258 seconds) |
| 17:40:30 | <[exa]> | probie: still better than perl |
| 17:40:55 | × | mango quits (~finn@176-151-21-224.abo.bbox.fr) (Quit: WeeChat 2.8) |
| 17:45:30 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 17:55:34 | → | ensyde joins (~ensyde@2600:381:4229:8b04:2d50:ec6d:ab72:78a2) |
| 17:58:31 | × | driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
| 17:59:10 | → | driib joins (~driib@vmi931078.contaboserver.net) |
| 18:00:18 | × | ensyde quits (~ensyde@2600:381:4229:8b04:2d50:ec6d:ab72:78a2) (Quit: WeeChat 4.0.1) |
| 18:04:34 | → | Guest8732 joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) |
| 18:15:34 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 18:16:09 | → | dibblego joins (~dibblego@116-255-1-114.ip4.superloop.au) |
| 18:16:09 | × | dibblego quits (~dibblego@116-255-1-114.ip4.superloop.au) (Changing host) |
| 18:16:09 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 18:17:06 | × | danse-nr3_ quits (~francesco@151.57.135.118) (Ping timeout: 245 seconds) |
| 18:26:50 | × | ncf quits (~n@monade.li) (Quit: Fairfarren.) |
| 18:27:13 | → | ncf joins (~n@monade.li) |
| 18:29:02 | <hellwolf> | [exa]: yea, I have a meetup page, it has less than 10 members atm, and many of them know each other :D Comparing to the one in Helsinki across the pond, there is 100-200 ppl... |
| 18:29:32 | <hellwolf> | crazy question: can GHCJS cross compile GHC itself? (probably not, but just asking, why not) |
| 18:30:16 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 18:30:42 | <Hecate> | hellwolf: latest GHC or a specific, outdated version of GHC? Also, GHCJS *specifically* or the JS backend of GHC? |
| 18:31:01 | <hellwolf> | latest JS backend of GHC, and latest GHC |
| 18:34:00 | <geekosaur> | js backend of ghc is a tech demo as yet |
| 18:34:14 | <geekosaur> | so my guess is not |
| 18:34:45 | → | gmg joins (~user@user/gehmehgeh) |
| 18:36:02 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 18:37:51 | <hellwolf> | Would... would it ever? |
| 18:38:13 | × | dumptruckman quits (~dumptruck@143-42-239-71.ip.linodeusercontent.com) (Quit: ZNC - https://znc.in) |
| 18:38:16 | <hellwolf> | imaging running GHC in browser without using a cloud service paid by someone who doesn't have the money |
| 18:38:27 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Quit: λ) |
| 18:38:29 | <geekosaur> | I don't see wy not, it'll just take time and more work |
| 18:39:00 | <geekosaur> | that said, I imagine the resule would be slow as molasses |
| 18:39:05 | <geekosaur> | *result |
| 18:42:08 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:42:26 | → | dibblego joins (~dibblego@116-255-1-114.ip4.superloop.au) |
| 18:42:26 | × | dibblego quits (~dibblego@116-255-1-114.ip4.superloop.au) (Changing host) |
| 18:42:26 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 18:43:39 | × | Nosrep quits (~Nosrep@user/nosrep) (Remote host closed the connection) |
| 18:44:03 | → | dumptruckman joins (~dumptruck@143-42-184-47.ip.linodeusercontent.com) |
| 18:45:01 | → | Nosrep joins (~Nosrep@user/nosrep) |
| 18:45:20 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14::ac08) |
| 18:47:01 | <monochrom> | This is what you get for FOSS. (Oh don't get me wrong, paid software has the opposite problems...) |
| 18:47:14 | <monochrom> | (So, this is what you get for human nature.) |
| 18:47:39 | <geekosaur> | I strongly suspect this is being funded and someone wanted to see results early so got a tech demo |
| 18:48:59 | → | deb776[m] joins (~deb776ted@2001:470:69fc:105::3:84c5) |
| 18:49:06 | <[exa]> | hellwolf: re ghcjs, actually I saw some talk which kinda demonstrated it, iirc from zurihac, but maybe that was the wasm backend |
| 18:49:21 | <monochrom> | That sounds exactly how I work. Before the deadline for the thesis proposal: intensive work and impressive proposal. After submitting that: Yeah let's chill out on IRC and do nothing. >:) |
| 18:49:29 | <[exa]> | hellwolf: btw it's stockholm then? :D |
| 18:51:00 | <hellwolf> | [exa]: oh, I think you mean Ben Lynn's MacGyver's Haskell :) |
| 18:51:09 | <hellwolf> | [exa]: no, actually Tallinn/Estonia :) |
| 18:51:27 | <[exa]> | yeah likely, it looked like a lot of stuff running in the browser there |
| 18:52:00 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14::ac08) (Remote host closed the connection) |
| 18:52:02 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 18:52:03 | <hellwolf> | It was, and it was wasm indeed. Close haskell 98 though. |
| 18:52:08 | <hellwolf> | *close to |
| 18:52:27 | → | alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) |
| 18:52:40 | <[exa]> | re community, it may just take time |
| 18:53:03 | <[exa]> | community building is _hard_ |
| 18:53:25 | <hellwolf> | geekosaur: funding is overrated, I have heard that you can launch a coin with cute dog face on it and you can fund GHC 20 years with that money. Talking about humanity priority. |
| 18:54:29 | × | alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 18:54:32 | <[exa]> | hellwolf: compared to how easy it is there's strikingly low amount of funding received that way. :D |
| 18:54:54 | <[exa]> | btw geekosaur might have been pointing to a grant timing out to "show papers" phase |
| 18:55:24 | <monochrom> | So we should go out and scam people? |
| 18:56:11 | <monochrom> | Oh the research world has its dose of scammers alright. |
| 18:56:24 | <monochrom> | I guess s/dose/share/ |
| 18:56:41 | <[exa]> | that's pretty cool on bitcoin, most scammy folks migrated there |
| 18:58:08 | → | alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) |
| 18:59:32 | <hellwolf> | Sorry for the digression, I am a bit disillusioned about the state of the affairs. Back to Haskell. |
| 19:00:03 | × | alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 19:00:10 | <monochrom> | :) |
| 19:00:17 | <[exa]> | hellwolf: there's always #-offtopic |
| 19:00:31 | <[exa]> | also do you have estonian haskell channel? |
| 19:02:58 | → | alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) |
| 19:07:07 | <hellwolf> | No I don't, only the meetup page. There used to be a slack server, and there is this https://haskell.ee/ and I met many of them. |
| 19:07:56 | × | mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 245 seconds) |
| 19:08:59 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 19:10:10 | → | mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
| 19:13:34 | → | new joins (~new@ool-18bbef1a.static.optonline.net) |
| 19:16:49 | <new> | Hi, im reading "Learn yourself a haskell for good", and i dont understand this quote when learning about typeclass and type |
| 19:16:49 | <new> | > To join Num, a type must already be friends with Show and Eq. |
| 19:16:50 | <new> | I know that typeclass is like Interface, so it looks like either Show or Eq should have something like implemented the Num typeclass in their :i |
| 19:16:50 | <new> | But using :i on Num Show or Eq I don't see any link to one another. |
| 19:16:50 | <lambdabot> | <hint>:1:12: error: parse error on input ‘,’ |
| 19:16:51 | <new> | So if I have a type that wants to implement Num, how do I know I must first implements Show and Eq? Will the compiler show error? |
| 19:16:51 | <new> | Thank you |
| 19:20:09 | <monochrom> | I don't know how "like interface" helps. |
| 19:20:24 | <monochrom> | and the "friends" analogy is also highly broken. |
| 19:20:51 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 19:21:09 | <monochrom> | I would think my own lecture notes does it justice. http://www.cs.utoronto.ca/~trebla/CSCC24-2023-Summer/04-haskell-types-2.html |
| 19:21:23 | <mauke> | does Num still require Show and Eq? |
| 19:21:28 | <monochrom> | No. |
| 19:21:28 | <mauke> | I thought they got rid of that |
| 19:21:34 | <monochrom> | Right. |
| 19:21:35 | <new> | oh |
| 19:21:46 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 250 seconds) |
| 19:21:50 | <monochrom> | In the past, Num was a subclass of Show and Eq. |
| 19:22:13 | <monochrom> | Today, not any more. However, you can still learn the subclassing concept from Ord and Eq. |
| 19:22:23 | <mauke> | yeah, but :i Ord produces massive output |
| 19:22:52 | <mauke> | 'class Eq a => Ord a' is in there somewhere if you know what you're looking for :-) |
| 19:22:53 | <monochrom> | Well, Integral and Num then. :) |
| 19:23:02 | <mauke> | ah, that's better |
| 19:23:04 | <new> | right |
| 19:23:19 | <new> | meaning, if i wants to implement Ord, I have to implement everything in Eq |
| 19:23:24 | <mauke> | yes |
| 19:23:31 | <monochrom> | "class Eq a => Ord a" is also in my lecture notes. And yes that should be where you should look. </shameless plug> |
| 19:23:33 | <new> | really helpful thank you for all your help |
| 19:23:50 | <new> | this is my second attempt learning haskell |
| 19:24:27 | <new> | I learned haskell to learn F# for work. And after a while I love F# so much that I goes back to haskell because FP is so beautiful |
| 19:24:50 | <mauke> | my second attempt was the successful one :-) |
| 19:25:50 | <new> | the initial attempt was rushed because i needed to get a sense of FP basic concepts like monad and functor to use F# quick. Now I have a better grasp and actually enjoy FP, it's time to go back to haskell again :) |
| 19:26:12 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 19:28:26 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:32:06 | <nick4> | so I wasted most of the day trying to install hoogle locally from cabal with no success at all. I decided to just try stack, and it literally worked first try. Is stack, just better to use than cabal? How do I decide which package manager to use? |
| 19:33:00 | <nick4> | I know a lot of people have complained about cabal (that I have read online), but this is the first issue I've had. So I'm just trying to see what opinions are out there between cabal/stack |
| 19:33:28 | <geekosaur> | stack does things like download matching ghc versions for things |
| 19:34:12 | <sclv> | for installing software stack could well be better, because you never need to have two different dep sets and merge them |
| 19:34:15 | <sclv> | stackage solved that for you |
| 19:34:16 | <geekosaur> | and won't have picked up all the crypton churn in the LTS yet |
| 19:34:23 | <sclv> | but note that cabal works with stackage as well! |
| 19:34:34 | <nick4> | doesn't cabal do that? I mean, it tries to match the base version at least with whatever you're doing? Am I missing something? |
| 19:34:39 | <sclv> | the current issue is really fundamentally just that there's been a very recent breakage in crypto churn |
| 19:34:54 | <sclv> | and stackage has a pinned set that has not yet faced that issue |
| 19:35:14 | <sclv> | cabal uses whatever ghc you pass it with the -w flag, it can't pick a different ghc version for you |
| 19:35:21 | <sclv> | so that means it uses the base you passed it |
| 19:36:55 | <sclv> | but in any case, you're experiencing the fact that hoogle latest is busted w/r/t the crypto changes, and stackage doesn't have that problem. so if you used cabal with the stackage resolver you'd be fine. |
| 19:37:27 | <nick4> | so you would use stack when you're just trying to build an executable from hackage? But you think cabal is still good to use in projects? |
| 19:37:32 | <sclv> | i would always use cabal |
| 19:37:35 | <sclv> | personally |
| 19:37:47 | <sclv> | but i might use the stackage resolver in conjunction with it for just building executables :-) |
| 19:38:07 | <nick4> | I don't know, I've tried building hoogle several times the past month, and have given up every instance because I didn't want to devote the time to fix it |
| 19:38:09 | <sclv> | i don't think stack is any worse in this case -- just personally i like to stick to one thing |
| 19:38:17 | <nick4> | and today I just said f it and have been focusing on that |
| 19:38:25 | <sclv> | again -- cabal with the stackage resolver gives the same benefit you just got |
| 19:38:58 | <nick4> | for how long has this crypto issue been going on with hoogle and cabal? because if its recent, it seems that hoogle often has issues with cabal? |
| 19:39:11 | <sclv> | its very recent, and its not just hoogle. its the entire network ecosystem |
| 19:39:28 | <sclv> | the cryptonite package went unmaintained, and the maintainer refused to hand over ownership |
| 19:39:41 | <sclv> | so it was forked into crypton, but not all packages are uniformly updated to use the fork |
| 19:39:46 | <nick4> | has this been going on for hours? days? weeks? months? |
| 19:39:51 | <sclv> | about a month |
| 19:39:57 | <nick4> | ok that makes sense |
| 19:40:36 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 19:40:42 | <monochrom> | I use cabal. I have never run into problems. |
| 19:40:46 | <sclv> | basically we had one very ornery maintainer who wrote and controlled the crypto ecosystem, but did not play well with others, and now that they've walked away and taken their ball with them, we're all picking up the pieces |
| 19:41:31 | <nick4> | so how do you use the stackage resolver? This is the first I'm hearing about it. |
| 19:41:47 | <nick4> | I'm still trying to install hoogle on my debian machine, so I can try doing that. |
| 19:41:50 | <monochrom> | I don't use stack because I don't have disk space for stack automatically deciding that I need 10 versions of GHC. |
| 19:42:01 | <nick4> | you also didn't suggest using stackage |
| 19:42:07 | <sm> | nick4: stack makes certain kinds of install (things which are in the stackage version you're using) more likely to work reliably, as you saw. cabal makes certain other kinds of install (things which are not in the stackage snapshot) possible. |
| 19:42:33 | × | alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 19:42:38 | <sclv> | stackage provides freeze files as "cabal.config" files for each lts (they're sort of undocumented on its side) |
| 19:42:39 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) |
| 19:42:46 | <sm> | also stack can optionally install ghc and on windows, extra libs, for you. But nowadays it can let ghcup handle that and experts mostly prefer that. |
| 19:42:53 | <sclv> | one can either download them and use them in a project directly |
| 19:43:02 | <sclv> | or create a cabal.project file that remotely imports them https://cabal.readthedocs.io/en/stable/cabal-project.html#conditionals-and-imports |
| 19:44:12 | <sclv> | in this case if i remember the story i pieced together, you first got sufficient advice to avoid the package issue without that hassle -- just setting the constraint on crypton like so `cabal install hoogle --constraint='crypton-x509 < 0.0'` |
| 19:44:14 | <nick4> | oh, so you're saying instead of building the package through cabal, you actually download the cabal file and build it like a local project? |
| 19:44:34 | <sclv> | then it was just you had the bad luck of using a ghc with a known bug on c headers, and stack picking a ghc without that bug |
| 19:44:49 | <geekosaur> | no, you build through cabal, you just tell cabal to use the same dependencies stack would use |
| 19:44:52 | <sm> | in all cases, cabal and stack build packages from source - there's no binary downloading |
| 19:45:18 | <sclv> | geekosaur: right, but you can't do it from hackage directly, you need to use the repo or unpack to use the freeze or project stuff |
| 19:45:23 | <geekosaur> | (stack calls this a resolver) |
| 19:45:59 | <sclv> | in general one can use ghcup to make sure you're on "recommended" and not known-buggy versions of ghc. |
| 19:46:28 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 19:47:23 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Ping timeout: 264 seconds) |
| 19:48:19 | <nick4> | yes I know that, but I used like 7 different versions of ghc and two different versions of cabal using ghcup |
| 19:48:32 | <nick4> | been trying to add all sorts of constraints etc etc |
| 19:48:40 | → | ft joins (~ft@p508dbe50.dip0.t-ipconnect.de) |
| 19:48:44 | <sclv> | right but my understanding was that single constraint and _any_ nonbuggy ghc would work |
| 19:48:48 | <nick4> | what I'm trying to figure out is how you actually do that with cabal because it makes no sense to me |
| 19:48:51 | <sclv> | you just stumbled into a matrix of two problems |
| 19:49:03 | <nick4> | it feels like more than two problems =/ |
| 19:49:03 | <sclv> | and you ended up exploring it in an accidentally very suboptimal order |
| 19:49:25 | <nick4> | are you saying there's a way to install hoogle through cabal right now? or is it impossible because of the bugs? |
| 19:49:25 | <sclv> | ok i literally only know of two from what i saw -- the crypto issue, solvable by a single constraint, and the buggy header issue |
| 19:49:38 | <sclv> | its literally possible with exactly the command i pasted above |
| 19:49:41 | <nick4> | yeah, i haven't mentioned every issue i've had =/ |
| 19:49:41 | <sclv> | and any nonbuggy ghc |
| 19:50:02 | <nick4> | you're talking about cabal install hoogle --constraint='crypton-x509 < 0.0? |
| 19:50:15 | <nick4> | I'm going to run that on my debian machine right now, and I'll let you know about the output. |
| 19:50:25 | <sclv> | i'll test too, to make sure i'm not blowing smoke |
| 19:51:10 | <nick4> | which version of ghc should I have set from ghcup? 9.2.8? |
| 19:51:33 | <sclv> | i'd imagine that works, idk. i'm using 9.4.5 locally typically |
| 19:51:46 | <sclv> | that's the one i'm testing with at least |
| 19:51:53 | <sclv> | the 9.2 series is ancient |
| 19:52:08 | <nick4> | ok I'll try 9.2.8 since its running, then 9.4.5 if it doesn't work. |
| 19:53:42 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 19:57:40 | <monochrom> | cabal ... -wghc-?.?.? --constraint='????? < 0.0' |
| 19:59:19 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 19:59:35 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 19:59:48 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 20:02:08 | <monochrom> | When I use hexchat, or calibre, or fcitx, I just let ubuntu choose which version and where to install to and what compile-time options to turn on or off. This is because for my use case of them, it doesn't matter. |
| 20:02:33 | <monochrom> | But I do not go around saying "therefore ubuntu is easier than building your own". |
| 20:02:58 | <monochrom> | If some non-default option is important for other people, it is not easier for them. |
| 20:03:36 | <monochrom> | Now just do hexchat, calibre, fcitx : ubuntu :: haskell : stack |
| 20:03:56 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 20:04:25 | <monochrom> | And damn English prepositions. s/important for/important to/ |
| 20:04:45 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 20:04:59 | → | trev joins (~trev@user/trev) |
| 20:05:35 | <monochrom> | People debate like "stack works out of the box" vs "no, cabal works out of the box". I don't understand why. |
| 20:05:40 | × | trev quits (~trev@user/trev) (Client Quit) |
| 20:05:52 | <monochrom> | It's almost like religious wars among ubuntu, gentoo, nix. |
| 20:05:55 | <monochrom> | Oh wait. |
| 20:07:56 | <mauke> | stack just rubs me the wrong way because of the FUD |
| 20:08:58 | <Square> | Is there some way of showing the type of function for a certain instance in ghci. Say for fmap for "instance Functor ((->) r) ", instead of the class generic variant. |
| 20:09:04 | × | oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 258 seconds) |
| 20:10:28 | <monochrom> | There was even a time when I didn't want to use cabal (and stack didn't even exist) and I simply point my web browser to hackage and downloaded some tarballs and ran Setup.hs myself. |
| 20:10:35 | <mauke> | :t fmap @((->) Char) |
| 20:10:36 | <lambdabot> | error: parse error on input ‘->’ |
| 20:13:24 | <monochrom> | Even today, I still keep around a shell script that runs Setup.hs for call-stack and then for HUnit. This is because a few years ago I made students use HUnit for homework, and "cabal update" would be inappropriate because their school accounts did not have enough disk quota for the humongous 00-index.tar. (So nevermind stack.) |
| 20:13:58 | <monochrom> | Here be a use case in which both cabal and stack would be impossible. |
| 20:15:09 | <Square> | mauke, thanks. Works! |
| 20:16:02 | <monochrom> | Actually cabal was slightly possible because the disk quota was just enough for 00-index.tar, so some students had success because they had no other files. |
| 20:16:28 | <carbolymer> | huh, I've discovered today that closed type families don't really protect you from referring to non-existing instances. so why use closed type families over open? |
| 20:19:05 | <Square> | Unless you get a better answer. There are situations closed families are an requirement for certain functionality iirc. |
| 20:19:18 | <Square> | is an* |
| 20:20:12 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 20:23:02 | × | fendor quits (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection) |
| 20:23:20 | <carbolymer> | yeah I imagine there exists a purpose |
| 20:23:38 | × | new quits (~new@ool-18bbef1a.static.optonline.net) (Ping timeout: 246 seconds) |
| 20:24:38 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 260 seconds) |
| 20:29:16 | <sm> | mauke: what FUD ? |
| 20:29:54 | <mauke> | "Hackage documentation generation is not reliable. For up to date documentation, please see: http://www.stackage.org/package/http-client." |
| 20:30:57 | <nick4> | unfortunately i got a build error on my debian machine with `cabal install hoogle --constraint='crypton-x509 < 0.0'`. Here's the pastebin of the error https://paste.tomsmeding.com/Osm8xdGd. I just don't know what to do. That's with ghc-9.4.5 |
| 20:31:08 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 20:31:34 | <sm> | is hackage documentation generation reliable ? I thought sometimes it failed and that's why there's a manual upload feature |
| 20:31:57 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection) |
| 20:32:42 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 20:33:29 | <sclv> | yeah i got that too nick4 -- its because of buggy bounds on the tls stuff -- precisely another reason its good (despite the pain) that it was forked, sigh |
| 20:33:36 | <sclv> | its worth tracing down tho and i guess i will |
| 20:33:55 | <nick4> | thanks at least I know its not me now |
| 20:36:50 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 246 seconds) |
| 20:39:43 | <geekosaur> | sm, the main reason for hackage documentation build failures is it's done as part of package building, which can fail because there's only one ghc version available and a very limited set of system libraries etc. |
| 20:39:56 | <sm> | yes, I know |
| 20:40:06 | <geekosaur> | it *used* to be fairly unreliable but that was fixed long ago |
| 20:40:19 | <geekosaur> | like, years |
| 20:40:34 | × | dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 252 seconds) |
| 20:40:51 | <sm> | the effect is the same surely to a user ? Some packages/versions will not have the docs they're looking for ? |
| 20:41:08 | <geekosaur> | yeh |
| 20:42:03 | <sm> | I see no value judgement in the statement, it's just factual. But I'm sure we could get it reworded |
| 20:42:51 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 246 seconds) |
| 20:44:14 | <sm> | or removed, if it's just obsolete. (I assume some uploaders fail to manually upload or are slow about it, but maybe the percentage is ignorable) |
| 20:45:50 | <mauke> | the statement is information-free |
| 20:46:00 | <mauke> | it tells me nothing |
| 20:46:47 | <sm> | how could we measure how many packages have haddocks currently ? |
| 20:48:02 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 20:48:25 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 20:50:04 | <sm> | https://www.yesodweb.com/blog/2014/12/use-stackage-for-docs was the announcement of this message, with a little discussion. It sounds like he was willing to reword it but got busy |
| 20:53:59 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 20:54:28 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 20:54:40 | <mauke> | yeah, that's stupid |
| 20:56:22 | <monochrom> | Oh, https://hackage.haskell.org/package/free-game doesn't have docs built. But that's because extra C libs. |
| 20:56:44 | <mauke> | ... and apparently he solved it the next day by automating documentation generation |
| 20:56:58 | <monochrom> | I wouldn't be surprised that by now (even since several years ago), doc build failure iff extra C libs. |
| 20:57:21 | <monochrom> | in which case I don't bet that stackage is any better. |
| 20:57:57 | <mauke> | I like how the "my next blog post" link goes to the article itself |
| 20:59:04 | <monochrom> | But I'm disillusioned (about humanity in general, you see). Please still FUD about recursion taking stack space, like 3 decades since gcc -O2 does TCO. |
| 20:59:18 | <monochrom> | err, s/Please/People/ |
| 20:59:25 | <monochrom> | (Please don't FUD about that! heh) |
| 20:59:57 | <mauke> | 'my main motivation here is explaining my reasoning for these changes, so I don't get a flood of new inquiries as to "why do you have such a strange description field in all your packages?"' [proceeds to not link to the blog post anywhere, especially not the package description field] |
| 21:00:06 | <geekosaur> | in 2023 FUD is the norm 😞 |
| 21:00:15 | <monochrom> | And https://queue.acm.org/detail.cfm?id=3212479 points out a ton of updated information about C and real metal. |
| 21:00:29 | <monochrom> | err, s/updated/outdate/ |
| 21:00:43 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 21:00:52 | <monochrom> | Gosh I can't write today. It's even at the word level. |
| 21:01:15 | yin | is now known as zzz |
| 21:02:13 | <monochrom> | Oh wait, "my next blog post" link going to the article itself. That's recursion. >:D |
| 21:02:29 | <mauke> | tail recursion, even |
| 21:05:43 | × | michalz quits (~michalz@185.246.207.218) (Remote host closed the connection) |
| 21:06:10 | × | Guest8732 quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 21:07:50 | <darkling> | This article's really interesting. Thanks, monochrom. |
| 21:08:10 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 272 seconds) |
| 21:13:52 | × | nick4 quits (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 240 seconds) |
| 21:16:20 | <int-e> | well "not just a fast PDP-11" is cute |
| 21:20:04 | × | Square quits (~Square@user/square) (Ping timeout: 250 seconds) |
| 21:20:32 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 21:21:12 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) |
| 21:21:36 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 21:26:12 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 245 seconds) |
| 21:32:04 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) |
| 21:35:15 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 21:36:12 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) (Ping timeout: 240 seconds) |
| 21:37:16 | → | nick4 joins (~nick@2600:100d:b126:6e75:7c64:2bc8:586e:a3ac) |
| 21:38:34 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 272 seconds) |
| 21:39:14 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 252 seconds) |
| 21:39:15 | → | son0p joins (~ff@181.136.122.143) |
| 21:39:30 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 21:40:17 | <sclv> | alright, i hunted down the underlying issue. |
| 21:40:35 | <sclv> | hoogle depends both on warp-tls and connection |
| 21:40:49 | <sclv> | the former is updated to use the forked crypto ecosystem and the latter isn't |
| 21:41:07 | <monochrom> | :( |
| 21:41:10 | <sclv> | the other issues are just like weird mismatches that come from forcing hoogle back onto prior versions that don't have this given issue |
| 21:42:39 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 21:42:59 | × | gurkenglas quits (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 21:44:26 | <sclv> | and doh, i see this is fixed in the hoogle repo |
| 21:45:29 | <sclv> | nick4: the correct answer to all the issues turns out to be "this is fixed by using the hoogle repo from github, which is ahead of the release" |
| 21:45:54 | <int-e> | sclv: good to know |
| 21:46:17 | <monochrom> | Ugh "fixed in HEAD" rears its head again. |
| 21:46:41 | <int-e> | brain surgery is difficult |
| 21:49:14 | → | gurkenglas joins (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) |
| 21:53:42 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds) |
| 21:54:08 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:01:25 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:05:15 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) |
| 22:05:52 | × | hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 245 seconds) |
| 22:05:59 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 240 seconds) |
| 22:07:56 | → | hrberg joins (~quassel@171.79-160-161.customer.lyse.net) |
| 22:08:53 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 22:09:38 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) (Ping timeout: 260 seconds) |
| 22:10:35 | × | acidjnk quits (~acidjnk@p200300d6e7072f770cf848d8868092f6.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 22:12:58 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:15:41 | <sm> | and this is what tested package sets are for. Pretty simple, I don't know why people still ask about it |
| 22:18:12 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds) |
| 22:21:35 | × | nick4 quits (~nick@2600:100d:b126:6e75:7c64:2bc8:586e:a3ac) (Ping timeout: 264 seconds) |
| 22:23:29 | <monochrom> | That's just "taxpayers are responsible for their own tax calculations in US and Canada" vs "government does the tax calculations for you in Hong Kong". |
| 22:23:58 | <monochrom> | I'm from Hong Kong so I get to say "it's pretty simple, why do people make their own lives harder" too. |
| 22:26:13 | <sm> | well, I do know. I should have said, so don't know why we as a community don't communicate this better to newcomers |
| 22:26:43 | <sm> | s/so/I/ |
| 22:26:52 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:28:11 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 22:29:45 | × | bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 258 seconds) |
| 22:34:06 | → | Guest66 joins (~Guest66@2601:14b:4101:8da0:84f2:9dc9:72ab:e343) |
| 22:35:34 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 22:38:18 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) |
| 22:38:38 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 22:40:33 | → | nick4 joins (~nick@2600:8807:9084:7800:5dfe:adbf:7a8a:2199) |
| 22:43:10 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) (Ping timeout: 272 seconds) |
| 22:44:41 | × | Guest66 quits (~Guest66@2601:14b:4101:8da0:84f2:9dc9:72ab:e343) (Ping timeout: 246 seconds) |
| 22:45:42 | × | nick4 quits (~nick@2600:8807:9084:7800:5dfe:adbf:7a8a:2199) (Ping timeout: 272 seconds) |
| 22:49:34 | → | pavonia joins (~user@user/siracusa) |
| 22:50:08 | → | zmt01 joins (~zmt00@user/zmt00) |
| 22:53:55 | × | zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds) |
| 23:00:32 | × | mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 240 seconds) |
| 23:00:46 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 23:09:51 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:12:57 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 23:13:17 | × | mei quits (~mei@user/mei) (Ping timeout: 246 seconds) |
| 23:16:22 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 23:17:46 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 23:18:16 | × | mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.0.2) |
| 23:22:21 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 23:26:24 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:27:30 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 23:28:35 | × | Inst__ quits (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) (Remote host closed the connection) |
| 23:28:42 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) |
| 23:28:57 | → | Inst__ joins (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) |
| 23:31:13 | → | ru0mad joins (~ru0mad@titan.ruomad.net) |
| 23:32:27 | → | dolio joins (~dolio@130.44.134.54) |
| 23:32:52 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) (Ping timeout: 245 seconds) |
| 23:33:00 | × | Inst__ quits (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) (Remote host closed the connection) |
| 23:33:24 | → | Inst__ joins (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) |
| 23:38:41 | → | mauke_ joins (~mauke@user/mauke) |
| 23:40:10 | × | ru0mad quits (~ru0mad@titan.ruomad.net) (Ping timeout: 272 seconds) |
| 23:40:17 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 258 seconds) |
| 23:40:17 | mauke_ | is now known as mauke |
| 23:41:17 | × | Inst__ quits (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) (Remote host closed the connection) |
| 23:41:39 | → | Inst__ joins (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) |
| 23:43:53 | → | alexbiehl joins (~alexbiehl@2a02:8108:323f:c964:c8b9:341:c65c:41d0) |
| 23:45:50 | × | bratwurst quits (~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 246 seconds) |
| 23:45:52 | × | cheater quits (~Username@user/cheater) (Ping timeout: 272 seconds) |
| 23:47:03 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 23:47:05 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds) |
| 23:48:37 | × | gurkenglas quits (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:48:43 | → | cheater joins (~Username@user/cheater) |
| 23:49:52 | × | alexbiehl quits (~alexbiehl@2a02:8108:323f:c964:c8b9:341:c65c:41d0) (Ping timeout: 240 seconds) |
| 23:51:28 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 23:54:35 | × | Inst__ quits (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) (Remote host closed the connection) |
| 23:54:58 | → | Inst__ joins (~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf) |
| 23:56:33 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 23:56:50 | → | mechap joins (~mechap@user/mechap) |
All times are in UTC on 2023-07-17.