Logs on 2021-10-29 (liberachat/#haskell)
| 00:00:39 | × | mc47 quits (~mc47@xmonad/TheMC47) (Quit: Leaving) |
| 00:05:05 | <aegon> | i shouldn't have put any sort of initial set of calls in the same place as creating the other half of the continuations, another tick in my worry bucket about making IO accessable too many places |
| 00:06:55 | × | terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (Quit: Ping timeout (120 seconds)) |
| 00:07:54 | → | terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de) |
| 00:08:07 | → | sprout_ joins (~quassel@2a02:a467:ccd6:1:21d2:19c0:e01b:f66c) |
| 00:08:22 | <remexre> | is there a way to get either tuple syntax or list syntax for hlists? |
| 00:08:40 | × | sprout quits (~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 268 seconds) |
| 00:09:03 | <remexre> | or are hlists "dead" and do people use something else to get generic computations over tuples of unknown length |
| 00:10:13 | <awpr> | you mean make `[5, "hi"]` work as an `HList [Int, String]`? not currently. I've been considering making a GHC plugin that could do that, but it's vaporware and would take substantial work even if I did decide to prioritize it |
| 00:10:38 | <awpr> | I should say, not that I know of |
| 00:11:02 | <remexre> | I guess alternatively-and-isomorphically, is there a good way to get n-ary curried functions? |
| 00:11:25 | → | dajoer joins (~david@user/gvx) |
| 00:11:36 | <remexre> | in this case, where each argument has a certain trait, and the final return is polymorphic (but doesn't depend on the arg types) |
| 00:11:41 | <remexre> | er, typeclass* |
| 00:11:41 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 00:11:58 | <remexre> | I've been writing Rust for the last couple years instead of Haskell :) |
| 00:12:01 | <awpr> | there's the trick used by `printf` where it always returns a `forall r. FormatResult r => r` at each step, or something to that effect |
| 00:12:10 | <awpr> | sounds like it has some hope of being applicable here |
| 00:12:23 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 00:12:30 | <remexre> | I'll take a look at that; is that Text.Printf.printf? |
| 00:12:52 | <awpr> | yeah, s/FormatResult/PrintfType/ |
| 00:13:36 | × | guniberas quits (~guniberas@42.191.188.121) (Ping timeout: 268 seconds) |
| 00:13:36 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 00:13:57 | <remexre> | huh, okay, its approach makes sense, I think |
| 00:14:01 | <remexre> | I'll try that, thanks! |
| 00:15:31 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 00:17:27 | → | Farzad joins (~FarzadBek@185.131.125.100) |
| 00:18:59 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 00:19:17 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 00:21:47 | Lord_of_Life_ | is now known as Lord_of_Life |
| 00:23:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 00:29:16 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Ping timeout: 245 seconds) |
| 00:31:00 | × | sprout_ quits (~quassel@2a02:a467:ccd6:1:21d2:19c0:e01b:f66c) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 00:31:40 | → | sprout joins (~quassel@2a02:a467:ccd6:1:21d2:19c0:e01b:f66c) |
| 00:32:08 | <remexre> | oh ugh, breaks when the return type is a monad typeclass |
| 00:32:20 | <remexre> | because (a -> m ()) is a monad too |
| 00:32:31 | <remexre> | er |
| 00:33:17 | <remexre> | because typeclass resolution doesn't figure out that really only one instance matches |
| 00:33:54 | <remexre> | between Func f => Func (a -> f) and (Func f, Monad m, a ~ ()) => Func (m a) |
| 00:37:08 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection) |
| 00:37:55 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 00:38:10 | → | lavaman joins (~lavaman@98.38.249.169) |
| 00:38:17 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 00:39:59 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 00:40:08 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 00:40:09 | <remexre> | oh, right, {-# OVERLAPPING #-} exists |
| 00:41:33 | × | CannabisIndica quits (~herb@user/mesaboogie) (Quit: ZNC - https://znc.in) |
| 00:48:52 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 00:50:48 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:eba7:95bb:d099:a7d8) |
| 00:51:40 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 00:54:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) |
| 00:55:11 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 00:55:30 | → | CannibisIndica joins (~herb@user/mesaboogie) |
| 00:58:02 | → | bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) |
| 00:59:55 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 260 seconds) |
| 01:01:54 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 01:03:48 | × | alx741 quits (~alx741@186.178.109.79) (Quit: alx741) |
| 01:08:48 | → | lavaman joins (~lavaman@98.38.249.169) |
| 01:12:35 | × | d0ku quits (~d0ku@178.43.15.137.ipv4.supernova.orange.pl) (Ping timeout: 246 seconds) |
| 01:13:01 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 01:13:43 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:14:27 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds) |
| 01:16:50 | × | mmhat quits (~mmh@55d4b856.access.ecotel.net) (Ping timeout: 260 seconds) |
| 01:19:50 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:20:39 | → | MoC_ joins (~moc@user/moc) |
| 01:21:21 | × | MoC quits (~moc@user/moc) (Ping timeout: 245 seconds) |
| 01:23:24 | × | a6a45081-2b83 quits (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection) |
| 01:30:20 | → | mmhat joins (~mmh@55d4bea4.access.ecotel.net) |
| 01:36:45 | × | Farzad quits (~FarzadBek@185.131.125.100) (Quit: Leaving) |
| 01:38:26 | × | mmhat quits (~mmh@55d4bea4.access.ecotel.net) (Ping timeout: 245 seconds) |
| 01:43:08 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 01:45:16 | × | xff0x quits (~xff0x@2001:1a81:525b:da00:1097:4d57:43e2:986f) (Ping timeout: 260 seconds) |
| 01:46:26 | → | lavaman joins (~lavaman@98.38.249.169) |
| 01:47:01 | → | xff0x joins (~xff0x@2001:1a81:529e:f300:b22f:69e6:aa77:fd2f) |
| 01:51:02 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 01:52:16 | → | alzgh joins (~alzgh@user/alzgh) |
| 01:55:19 | → | myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net) |
| 02:01:18 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 02:03:39 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 02:17:23 | × | abrantesasf quits (~abrantesa@187.36.170.211) (Remote host closed the connection) |
| 02:18:05 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
| 02:20:43 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:24:30 | × | bongobrown quits (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Ping timeout: 260 seconds) |
| 02:25:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:25:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 02:25:49 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:26:47 | × | fizzsegfaultbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 260 seconds) |
| 02:28:12 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 02:30:25 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 02:30:52 | → | brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d) |
| 02:38:47 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds) |
| 02:40:20 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:51:45 | → | mbuf joins (~Shakthi@171.61.174.60) |
| 02:54:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 02:54:19 | × | td_ quits (~td@94.134.91.221) (Ping timeout: 260 seconds) |
| 02:55:57 | → | td_ joins (~td@muedsl-82-207-238-132.citykom.de) |
| 02:56:00 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
| 02:57:53 | × | burnsidesLlama quits (~burnsides@dhcp168-026.wadham.ox.ac.uk) (Remote host closed the connection) |
| 03:12:26 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
| 03:17:22 | → | Guest3764 joins (~fedora@59.98.57.201) |
| 03:19:06 | × | Guest3764 quits (~fedora@59.98.57.201) (Client Quit) |
| 03:19:13 | zzz | is now known as onion |
| 03:26:29 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 03:26:47 | × | mvk quits (~mvk@2607:fea8:5cc1:300::d3fb) (Ping timeout: 264 seconds) |
| 03:29:52 | → | nikshalark joins (~nikshalar@c-73-110-102-193.hsd1.in.comcast.net) |
| 03:55:32 | → | bgamari joins (~bgamari@64.223.157.117) |
| 03:55:49 | × | bgamari_ quits (~bgamari@64.223.175.225) (Ping timeout: 252 seconds) |
| 03:56:26 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 03:58:25 | × | bgamari quits (~bgamari@64.223.157.117) (Client Quit) |
| 04:00:56 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 245 seconds) |
| 04:02:20 | → | bgamari joins (~bgamari@64.223.227.106) |
| 04:10:24 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 04:11:02 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 04:21:23 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds) |
| 04:23:31 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:23:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 04:23:31 | → | wroathe joins (~wroathe@user/wroathe) |
| 04:31:44 | → | v01d4lph4 joins (~v01d4lph4@223.190.95.48) |
| 04:31:44 | × | v01d4lph4 quits (~v01d4lph4@223.190.95.48) (Changing host) |
| 04:31:44 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 04:35:10 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
| 04:38:10 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 04:43:15 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 04:50:23 | × | nikshalark quits (~nikshalar@c-73-110-102-193.hsd1.in.comcast.net) (Quit: Lost terminal) |
| 04:50:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:00:20 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 260 seconds) |
| 05:01:09 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 05:02:09 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 05:25:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 05:26:41 | × | idnar quits (sid12240@debian/mithrandi) (Read error: Connection reset by peer) |
| 05:26:47 | × | gonz___ quits (sid304396@lymington.irccloud.com) (Ping timeout: 264 seconds) |
| 05:26:47 | × | bw quits (sid2730@user/betawaffle) (Ping timeout: 264 seconds) |
| 05:26:47 | × | bjs quits (sid190364@user/bjs) (Ping timeout: 264 seconds) |
| 05:26:47 | × | scav quits (sid309693@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
| 05:26:47 | × | tnks quits (sid412124@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
| 05:26:49 | × | gmc quits (sid58314@ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 05:26:50 | → | idnar joins (sid12240@debian/mithrandi) |
| 05:26:58 | → | gmc joins (sid58314@id-58314.ilkley.irccloud.com) |
| 05:26:59 | → | Guest39 joins (~Guest39@103.142.31.135) |
| 05:27:06 | × | SanchayanMaity quits (sid478177@hampstead.irccloud.com) (Read error: Connection reset by peer) |
| 05:27:07 | × | glowcoil quits (sid3405@tinside.irccloud.com) (Read error: Connection reset by peer) |
| 05:27:14 | → | glowcoil joins (sid3405@id-3405.tinside.irccloud.com) |
| 05:27:15 | → | SanchayanMaity joins (sid478177@id-478177.hampstead.irccloud.com) |
| 05:27:16 | → | scav joins (sid309693@id-309693.helmsley.irccloud.com) |
| 05:27:18 | → | bjs joins (sid190364@user/bjs) |
| 05:27:23 | × | ysh quits (sid6017@ilkley.irccloud.com) (Ping timeout: 264 seconds) |
| 05:27:23 | × | rtpg quits (sid443069@ilkley.irccloud.com) (Ping timeout: 264 seconds) |
| 05:27:23 | × | taktoa[c] quits (sid282096@tinside.irccloud.com) (Ping timeout: 264 seconds) |
| 05:27:51 | <Guest39> | When testing a function with HUnit how do I mock the database connection and the query response |
| 05:27:59 | × | aarchi quits (sid486183@uxbridge.irccloud.com) (Ping timeout: 264 seconds) |
| 05:27:59 | × | cbarrett quits (sid192934@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
| 05:27:59 | × | lightandlight quits (sid135476@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
| 05:27:59 | × | systemfault quits (sid267009@uxbridge.irccloud.com) (Ping timeout: 264 seconds) |
| 05:27:59 | × | bbhoss quits (sid18216@tinside.irccloud.com) (Ping timeout: 264 seconds) |
| 05:28:16 | → | rtpg joins (sid443069@id-443069.ilkley.irccloud.com) |
| 05:28:22 | → | fizzsegfaultbuzz joins (~segfaultf@135-180-0-138.static.sonic.net) |
| 05:28:35 | × | alinab quits (sid468903@helmsley.irccloud.com) (Read error: Connection reset by peer) |
| 05:28:35 | × | edmundnoble quits (sid229620@helmsley.irccloud.com) (Ping timeout: 264 seconds) |
| 05:28:35 | × | ephemient quits (uid407513@lymington.irccloud.com) (Ping timeout: 264 seconds) |
| 05:28:40 | → | bbhoss joins (sid18216@id-18216.tinside.irccloud.com) |
| 05:28:43 | → | alinab joins (sid468903@id-468903.helmsley.irccloud.com) |
| 05:28:48 | → | taktoa[c] joins (sid282096@id-282096.tinside.irccloud.com) |
| 05:28:49 | → | gonz___ joins (sid304396@id-304396.lymington.irccloud.com) |
| 05:28:51 | × | Ferdirand quits (~somebody@2001:4c78:2012:5000::2) (Ping timeout: 245 seconds) |
| 05:28:59 | → | bw joins (sid2730@user/betawaffle) |
| 05:29:04 | → | cbarrett joins (sid192934@id-192934.helmsley.irccloud.com) |
| 05:29:10 | → | lightandlight joins (sid135476@id-135476.helmsley.irccloud.com) |
| 05:29:12 | → | ysh joins (sid6017@id-6017.ilkley.irccloud.com) |
| 05:29:14 | → | Ferdirand joins (~somebody@2001:4c78:2012:5000::2) |
| 05:29:15 | → | ephemient joins (uid407513@id-407513.lymington.irccloud.com) |
| 05:29:15 | → | edmundnoble joins (sid229620@id-229620.helmsley.irccloud.com) |
| 05:29:45 | → | tnks joins (sid412124@id-412124.helmsley.irccloud.com) |
| 05:29:47 | × | hamishmack quits (sid389057@hampstead.irccloud.com) (Ping timeout: 264 seconds) |
| 05:29:47 | × | awpr quits (uid446117@lymington.irccloud.com) (Ping timeout: 264 seconds) |
| 05:30:02 | → | systemfault joins (sid267009@id-267009.uxbridge.irccloud.com) |
| 05:30:23 | × | integral quits (sid296274@user/integral) (Ping timeout: 264 seconds) |
| 05:30:23 | × | Pent quits (sid313808@lymington.irccloud.com) (Ping timeout: 264 seconds) |
| 05:30:44 | → | aarchi joins (sid486183@id-486183.uxbridge.irccloud.com) |
| 05:31:20 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
| 05:32:17 | → | awpr joins (uid446117@id-446117.lymington.irccloud.com) |
| 05:32:38 | <Axman6> | mocking a database cnnection seems difficult. mocking queries to the database seems doable though |
| 05:32:59 | <Guest39> | could you tell me how I can accomplish that |
| 05:32:59 | → | hamishmack joins (sid389057@id-389057.hampstead.irccloud.com) |
| 05:33:10 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:33:10 | <Axman6> | it would very much depend on your codebase |
| 05:33:29 | → | Pent joins (sid313808@id-313808.lymington.irccloud.com) |
| 05:33:51 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
| 05:33:59 | × | jakesyl_ quits (sid56879@hampstead.irccloud.com) (Ping timeout: 264 seconds) |
| 05:34:59 | → | integral joins (sid296274@user/integral) |
| 05:34:59 | <Guest39> | well iam just getting started learning so |
| 05:35:11 | <Guest39> | I used postgresql-simple |
| 05:36:43 | × | obviyus quits (sid415299@user/obviyus) (Read error: Connection reset by peer) |
| 05:36:50 | <Axman6> | A common way to do this is to define a type class that contains functions which define the interface you need, and then make instances for that type class against the databse and as a mock instance |
| 05:36:52 | → | obviyus joins (sid415299@user/obviyus) |
| 05:38:18 | <Guest39> | Understood I then create have mock implementation for everything that iam goingto use from the actual library |
| 05:38:36 | → | jakesyl_ joins (sid56879@id-56879.hampstead.irccloud.com) |
| 05:38:45 | <Guest39> | but wont the code still be importing the library functions |
| 05:39:00 | <Guest39> | how do i make it use my mock implementation temporarily |
| 05:39:32 | <Guest39> | I mean only while running the test casess |
| 05:45:00 | × | zebrag quits (~chris@user/zebrag) (Remote host closed the connection) |
| 05:47:45 | <Axman6> | I haven't read the article, but skimming this looks like it may be a good introduction: https://making.pusher.com/unit-testing-io-in-haskell/ |
| 05:48:51 | <Axman6> | maybe this is a better one https://lexi-lambda.github.io/blog/2017/06/29/unit-testing-effectful-haskell-with-monad-mock/ |
| 05:49:42 | <Axman6> | this looks pretty cool actually |
| 05:49:50 | × | fizzsegfaultbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 260 seconds) |
| 05:52:07 | × | myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds) |
| 05:55:00 | <Guest39> | thank you |
| 05:55:25 | × | aegon quits (~mike@174.127.249.180) (Remote host closed the connection) |
| 05:57:08 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:58:46 | × | phma quits (~phma@host-67-44-208-16.hnremote.net) (Read error: Connection reset by peer) |
| 06:02:14 | → | _xor joins (~xor@72.49.199.147) |
| 06:02:45 | → | phma joins (~phma@host-67-44-208-251.hnremote.net) |
| 06:08:05 | × | Kaiepi quits (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
| 06:11:19 | → | sagax joins (~sagax_nb@user/sagax) |
| 06:12:36 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 06:16:20 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 06:19:10 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 06:19:38 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:19:59 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 06:29:13 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:29:13 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 06:29:13 | → | wroathe joins (~wroathe@user/wroathe) |
| 06:33:59 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds) |
| 06:34:11 | × | fendor quits (~fendor@178.165.166.121.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 06:34:16 | → | michalz joins (~michalz@185.246.204.109) |
| 06:36:39 | → | fendor joins (~fendor@178.165.166.121.wireless.dyn.drei.com) |
| 06:37:58 | × | brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Remote host closed the connection) |
| 06:41:18 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 06:42:06 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
| 06:44:19 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 06:48:15 | × | Guest39 quits (~Guest39@103.142.31.135) (Quit: Client closed) |
| 06:49:26 | → | lortabac joins (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr) |
| 06:55:33 | → | lavaman joins (~lavaman@98.38.249.169) |
| 06:55:39 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:57:53 | → | neurocyte0132889 joins (~neurocyte@46.243.81.22) |
| 06:57:53 | × | neurocyte0132889 quits (~neurocyte@46.243.81.22) (Changing host) |
| 06:57:53 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 06:57:54 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 06:58:32 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 06:58:41 | → | comandingo joins (~drever@ipb218f985.dynamic.kabel-deutschland.de) |
| 06:59:03 | × | comandingo quits (~drever@ipb218f985.dynamic.kabel-deutschland.de) (Client Quit) |
| 07:00:23 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
| 07:07:06 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:08:05 | → | Kaiepi joins (~Kaiepi@156.34.44.192) |
| 07:11:06 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:19:10 | → | hololeap joins (~hololeap@user/hololeap) |
| 07:22:16 | → | bontaq` joins (~user@ool-45779fe5.dyn.optonline.net) |
| 07:25:51 | × | MoC_ quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 07:27:10 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 07:27:17 | → | MoC joins (~moc@user/moc) |
| 07:29:49 | × | hendursaga quits (~weechat@user/hendursaga) (Remote host closed the connection) |
| 07:30:37 | → | hendursaga joins (~weechat@user/hendursaga) |
| 07:30:53 | → | chele joins (~chele@user/chele) |
| 07:31:53 | → | gehmehgeh_ joins (~user@user/gehmehgeh) |
| 07:32:57 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 07:34:01 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 07:35:15 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 07:35:24 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
| 07:38:04 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:38:19 | → | acidjnk_new joins (~acidjnk@p200300d0c7238d78f12f2b4aa168a17a.dip0.t-ipconnect.de) |
| 07:39:41 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:43:14 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 07:47:55 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 07:51:58 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection) |
| 07:58:28 | → | ubert joins (~Thunderbi@178.165.162.187.wireless.dyn.drei.com) |
| 08:00:05 | × | Cajun quits (~Cajun@user/cajun) (Quit: Client closed) |
| 08:00:45 | × | fendor quits (~fendor@178.165.166.121.wireless.dyn.drei.com) (Remote host closed the connection) |
| 08:06:55 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:08:33 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 08:12:30 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection) |
| 08:14:38 | → | d0ku joins (~d0ku@178.43.150.25.ipv4.supernova.orange.pl) |
| 08:16:46 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 08:16:54 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
| 08:17:38 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 08:18:09 | → | hololeap joins (~hololeap@user/hololeap) |
| 08:20:51 | bontaq` | is now known as bontaq |
| 08:27:16 | × | phma quits (~phma@host-67-44-208-251.hnremote.net) (Read error: Connection reset by peer) |
| 08:28:32 | → | phma joins (~phma@host-67-44-208-63.hnremote.net) |
| 08:32:37 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:32:58 | → | vpan joins (~0@212.117.1.172) |
| 08:35:18 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:38:20 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 08:40:42 | → | alzgh joins (~alzgh@user/alzgh) |
| 08:40:52 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 08:42:53 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 09:07:01 | × | bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:11:26 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 09:12:07 | → | rond_ joins (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
| 09:12:54 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) |
| 09:17:47 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Ping timeout: 264 seconds) |
| 09:19:15 | × | jumper149 quits (~jumper149@80.240.31.34) (Ping timeout: 260 seconds) |
| 09:19:59 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 09:21:15 | → | mmhat joins (~mmh@55d4be4b.access.ecotel.net) |
| 09:22:22 | gehmehgeh_ | is now known as gehmehgeh |
| 09:23:04 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 09:25:15 | × | LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds) |
| 09:25:16 | × | poljar quits (~poljar@93-139-113-226.adsl.net.t-com.hr) (Ping timeout: 252 seconds) |
| 09:25:57 | → | LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao) |
| 09:26:05 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 09:26:57 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 09:27:13 | → | poljar joins (~poljar@78-3-31-140.adsl.net.t-com.hr) |
| 09:38:29 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 264 seconds) |
| 09:42:33 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 09:44:10 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 09:45:12 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 09:45:32 | → | alzgh joins (~alzgh@user/alzgh) |
| 09:57:59 | × | lortabac quits (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
| 10:02:11 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 264 seconds) |
| 10:11:17 | → | lortabac joins (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr) |
| 10:12:08 | → | __monty__ joins (~toonn@user/toonn) |
| 10:12:58 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
| 10:16:04 | → | wonko joins (~wjc@user/wonko) |
| 10:17:53 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 10:18:42 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 10:21:19 | → | jjrol joins (~jjrol@n122-104-58-147.sun4.vic.optusnet.com.au) |
| 10:22:21 | ← | jjrol parts (~jjrol@n122-104-58-147.sun4.vic.optusnet.com.au) () |
| 10:24:32 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 10:35:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 10:36:05 | × | acidjnk_new quits (~acidjnk@p200300d0c7238d78f12f2b4aa168a17a.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 10:36:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:39:36 | × | johnjay quits (~pi@192.142.100.50) (Ping timeout: 260 seconds) |
| 10:42:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 10:42:22 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:45:31 | → | dcl^ joins (~dcl@wsip-98-188-242-6.mc.at.cox.net) |
| 10:46:22 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 258 seconds) |
| 10:47:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 10:48:01 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:48:23 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds) |
| 10:53:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 10:54:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:55:56 | × | ubert quits (~Thunderbi@178.165.162.187.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 10:56:25 | → | Cajun joins (~Cajun@user/cajun) |
| 10:57:19 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:02:00 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
| 11:03:02 | × | faultline quits (~christian@nat-eduroam-01.scc.kit.edu) (Ping timeout: 246 seconds) |
| 11:03:46 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:03:52 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 11:05:09 | → | img joins (~img@user/img) |
| 11:05:26 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:12:48 | → | AlexNoo_ joins (~AlexNoo@178.34.163.209) |
| 11:14:35 | × | Alex_test quits (~al_test@178.34.150.219) (Ping timeout: 260 seconds) |
| 11:15:05 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 11:15:32 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
| 11:15:49 | × | AlexNoo_ quits (~AlexNoo@178.34.163.209) (Client Quit) |
| 11:16:00 | × | AlexZenon quits (~alzenon@178.34.150.219) (Ping timeout: 260 seconds) |
| 11:16:03 | → | AlexNoo_ joins (~AlexNoo@178.34.163.209) |
| 11:16:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 11:16:35 | × | AlexNoo quits (~AlexNoo@178.34.150.219) (Ping timeout: 264 seconds) |
| 11:16:48 | → | AlexZenon joins (~alzenon@178.34.163.209) |
| 11:16:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:16:59 | → | Alex_test joins (~al_test@178.34.163.209) |
| 11:17:31 | → | ubert joins (~Thunderbi@178.165.162.187.wireless.dyn.drei.com) |
| 11:17:50 | AlexNoo_ | is now known as AlexNoo |
| 11:19:16 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
| 11:19:19 | → | talismanick joins (~talismani@76.78.246.111) |
| 11:20:01 | <talismanick> | Realized I didn't have Haskell yet on my computer, so I curl'd ghcup, ran it, and got... an error? |
| 11:20:10 | <maerwald> | talismanick: which one |
| 11:20:51 | <talismanick> | maerwald: Version of ghcup? Whichever's latest from the website - I didn't pipe directly to sh, but into a script which I then executed |
| 11:21:06 | <maerwald> | which error |
| 11:21:25 | <talismanick> | I looked at config.log in /tmp, and it was calling GCC with flags which don't exist, like -V |
| 11:21:58 | <maerwald> | that's not ghcup, that's the GHC configure script |
| 11:22:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 11:22:14 | <maerwald> | so it failed during installing the bindist? |
| 11:22:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:22:43 | <talismanick> | yeah |
| 11:22:57 | <maerwald> | can you reproduce the error when running configure? |
| 11:23:25 | <talismanick> | maerwald: Correct. I tried it 2x. |
| 11:23:42 | <maerwald> | what's the exact error then? |
| 11:24:01 | <maerwald> | not all errors in config.log are fatal |
| 11:24:48 | <talismanick> | https://0x0.st/-nTw.log |
| 11:25:15 | <talismanick> | maerwald: Yeah, but it does list 2 errors as "fatal" |
| 11:25:46 | <maerwald> | it's just probing your gcc for cli flags afaik |
| 11:26:04 | <maerwald> | error: cannot run C compiled programs. |
| 11:26:07 | <maerwald> | this looks relevant |
| 11:26:59 | <tomsmeding> | in particular that "permission denied" |
| 11:27:13 | <tomsmeding> | is your /tmp on a partition which does not allow executing executables? |
| 11:27:13 | <talismanick> | I don't remember running it with sudo |
| 11:27:26 | tomsmeding | thinks that's the noexec mount option, but might remember incorrectly |
| 11:28:03 | <talismanick> | tomsmeding: Well, I remember setting tmp with "nosuid" in /etc/fstab not long ago |
| 11:28:09 | <talismanick> | Here's the whole line: tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0 |
| 11:28:13 | <maerwald> | talismanick: run the script with TMPDIR=$HOME/.ghcup-tmp or so set |
| 11:28:49 | <maerwald> | I believe cabal itself will bail out badly too if it can't execute binaries in /tmp |
| 11:28:51 | → | johnjay joins (~pi@192.142.100.50) |
| 11:29:08 | <tomsmeding> | talismanick: try what maerwald suggests; if that does work, 'mount | grep /tmp' and see what flags are there (I have nosuid too, works fine) |
| 11:29:15 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:30:37 | → | img joins (~img@user/img) |
| 11:31:11 | <talismanick> | tomsmeding: Good call - there is indeed a noexec flag set |
| 11:31:18 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 11:31:29 | <tomsmeding> | no idea how that might end up there, but that's probably the issue here |
| 11:31:43 | <maerwald> | it's an odd choice |
| 11:31:54 | <maerwald> | I don't see that improving security |
| 11:32:12 | <talismanick> | tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noexec,noatime,size=6291456k,inode64) |
| 11:32:38 | <talismanick> | I don't remember ever writing that explicitly - could it be that btrfs put it there? |
| 11:32:38 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 11:32:51 | × | dcl^ quits (~dcl@wsip-98-188-242-6.mc.at.cox.net) (Remote host closed the connection) |
| 11:33:00 | <maerwald> | at any rate, check out https://www.haskell.org/ghcup/guide/#env-variables |
| 11:33:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 11:33:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:35:06 | <talismanick> | maerwald: I think I've seen that at some point - I have the XDG option set in ~/.bash_profile already |
| 11:35:13 | <hpc> | it stops a lot of lazy malware - /tmp is one of those places every user needs to write to, so it's a good place to drop the next stage of an attack after you have disk access |
| 11:36:14 | <maerwald> | malware? |
| 11:36:20 | <maerwald> | like ghcup? :D |
| 11:36:40 | <hpc> | like php :D |
| 11:36:51 | <talismanick> | write and compile hello_world.c => "Windows detected malware and deleted it" |
| 11:39:44 | → | dsrt^ joins (~dsrt@wsip-98-188-242-6.mc.at.cox.net) |
| 11:40:02 | × | rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
| 11:44:25 | <bontaq> | lmao |
| 11:45:29 | <talismanick> | Anyways, I remounted /tmp with "exec" in the args, and it works fine now |
| 11:46:22 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 11:48:46 | tomsmeding | wonders why a tmpfs has noatime set -- that's for increasing performance due to not performing additional non-sequential writes for each file update, right? But tmpfs is an in-memory file system, so that shouldn't matter much |
| 11:49:37 | <hpc> | atime is access time? |
| 11:49:43 | <hpc> | it probably improves read performance enough to be worth it |
| 11:49:46 | <geekosaur> | tmpfs is more complicated than that iirc. in particular it can use otherwise free swap space |
| 11:50:18 | <tomsmeding> | ah |
| 11:50:20 | <talismanick> | hpc: Don't ask me, I don't know why. I posted the tmpfs line in /etc/fstab, which is roughly what you'd expect |
| 11:50:28 | → | zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 11:50:38 | <tomsmeding> | talismanick: hpc responded to me I think :p |
| 11:50:48 | <talismanick> | oh, duh |
| 11:50:50 | <talismanick> | tired |
| 11:50:56 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 11:51:21 | → | oxide joins (~lambda@user/oxide) |
| 11:53:03 | <hpc> | :P |
| 11:59:20 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 11:59:29 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
| 11:59:35 | × | JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 11:59:54 | → | JimL joins (~quassel@89-162-2-132.fiber.signal.no) |
| 12:00:27 | × | JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Client Quit) |
| 12:00:45 | → | JimL joins (~quassel@89-162-2-132.fiber.signal.no) |
| 12:04:55 | → | guniberas joins (~guniberas@42.191.188.121) |
| 12:06:33 | → | bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) |
| 12:19:59 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 12:21:11 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 12:24:41 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 264 seconds) |
| 12:27:39 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 12:31:22 | → | cfricke joins (~cfricke@user/cfricke) |
| 12:31:27 | × | zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
| 12:32:03 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:36:04 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:37:27 | → | img joins (~img@user/img) |
| 12:38:56 | → | CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 12:42:45 | × | dsrt^ quits (~dsrt@wsip-98-188-242-6.mc.at.cox.net) (Remote host closed the connection) |
| 12:44:40 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 12:56:41 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:56:56 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 12:57:07 | → | lavaman joins (~lavaman@98.38.249.169) |
| 12:58:37 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:58:59 | → | Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) |
| 13:01:55 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
| 13:05:47 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 264 seconds) |
| 13:06:58 | <maerwald> | I can't coerce if the target data constructor is not in scope? |
| 13:07:26 | <merijn> | maerwald: You mean newtype constructor, presumably? And correct |
| 13:07:35 | <maerwald> | yes |
| 13:07:39 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 13:08:05 | <merijn> | Can't coerce without visible constructor (to allow abstract datatypes that can't be coerced) |
| 13:08:21 | <maerwald> | is there a hack to make it work? |
| 13:08:27 | <merijn> | unsafeCoerce? :p |
| 13:09:05 | × | hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 260 seconds) |
| 13:10:53 | → | hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net) |
| 13:11:02 | → | kn07_ joins (~kn07_@86.121.23.168) |
| 13:12:07 | <maerwald> | well, that was easy |
| 13:12:22 | <maerwald> | packages not exposing internal modules are annoying |
| 13:14:42 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
| 13:15:33 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 13:15:39 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 13:16:01 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:17:53 | <Tisoxin> | There aren't any laws for the Alternative type class, are there? |
| 13:18:19 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 13:19:27 | × | CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen) |
| 13:20:14 | → | yrlnry joins (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) |
| 13:23:09 | × | hendursa1 quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 13:23:30 | <Tisoxin> | nvm |
| 13:24:57 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 13:27:40 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 13:28:19 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 13:36:21 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
| 13:37:17 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 13:38:29 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 13:38:30 | → | MQ-17J joins (~MQ-17J@8.6.144.203) |
| 13:38:44 | ← | amazigh parts (~amirouche@user/amirouche) (WeeChat 2.8) |
| 13:39:17 | → | fendor joins (~fendor@178.115.69.86.wireless.dyn.drei.com) |
| 13:39:50 | <lortabac> | Tisoxin: that's a good question, I would say it should have the same laws as Monoid, but perhaps different laws are also possible and no agreement has been reached |
| 13:40:11 | × | wonko quits (~wjc@user/wonko) (Ping timeout: 246 seconds) |
| 13:41:00 | <lortabac> | it would be interesting to read the discussions that led to the absence of laws in the documentation |
| 13:42:16 | <lortabac> | maybe, given the superclass constraint, the Applicative laws are enough? |
| 13:43:40 | <merijn> | Alternative laws are associativity + identity |
| 13:43:42 | <merijn> | So same as monoid |
| 13:43:51 | <merijn> | That part is uncontroversial, afaik |
| 13:44:02 | <merijn> | The controversy is the relation between Alternative/MonadPlus |
| 13:44:08 | <maerwald> | anyone tried GHC under wine? |
| 13:44:28 | <lortabac> | merijn: but why aren't they mentioned in the documentation? |
| 13:44:29 | <maerwald> | I'm getting tired of coding inside a windows VM |
| 13:45:28 | <merijn> | lortabac: They are? "A monoid on applicative functors." and empty says "The identity of <|>" and <|> says "An associative binary operation" |
| 13:45:38 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 13:46:07 | <merijn> | lortabac: The real controversy is mzero/mplus |
| 13:46:23 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 13:46:33 | <merijn> | lortabac: Specifically the docs say: "v >> mzero = mzero" but does that mean the effects of 'v' happened or not? |
| 13:46:55 | <lortabac> | merijn: right, I was looking for an explicit list of laws as the other classes |
| 13:47:25 | <merijn> | lortabac: Yeah, I recall that existing in the past (but maybe I imagined it?), should be easy for someone to add that, though |
| 13:48:31 | × | Kaiepi quits (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
| 13:49:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: restart) |
| 13:50:31 | <geekosaur> | might check the Typeclassopedia |
| 13:51:02 | <geekosaur> | although if it's there then someone should really add it to the class docs |
| 13:51:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:52:51 | <lortabac> | I'm reading the Typeclassopedia, it explains the problem well |
| 13:56:29 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 264 seconds) |
| 13:58:40 | × | ubert quits (~Thunderbi@178.165.162.187.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 14:00:34 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 14:00:59 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
| 14:04:00 | × | MQ-17J quits (~MQ-17J@8.6.144.203) (Ping timeout: 260 seconds) |
| 14:07:49 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 14:09:32 | × | lortabac quits (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr) (Quit: WeeChat 2.8) |
| 14:12:16 | → | acidjnk_new joins (~acidjnk@p200300d0c7238d78f12f2b4aa168a17a.dip0.t-ipconnect.de) |
| 14:13:08 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 14:17:28 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) |
| 14:21:46 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Ping timeout: 245 seconds) |
| 14:22:59 | → | faultline joins (~christian@193.27.14.21) |
| 14:24:32 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
| 14:25:16 | <Tisoxin> | <merijn> "lortabac: Specifically the..." <- i stumpled upon this controvery due to megaparsecs ParsecT: https://hackage.haskell.org/package/megaparsec-9.2.0/docs/Text-Megaparsec.html#t:ParsecT |
| 14:27:20 | <merijn> | Well, it's not a law in the docs, because people can't agree on it :p |
| 14:27:30 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: relog) |
| 14:27:57 | <Tisoxin> | yeah |
| 14:30:48 | → | zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) |
| 14:32:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 14:36:53 | <adamCS> | maerwald: Thanks again for all the help yesterday! Using the ByteString functions as a Streamly unfold ends up 3 times faster than Text.hGetline. I can see from all your fine tuned inline pragmas that there's some subtlety to inlining well for streamly. Any place you would go to read/learn about that? I'm onto to optimizing another bit that I would like to fuse as nicely as possible... |
| 14:37:57 | <maerwald> | adamCS: https://github.com/composewell/streamly/blob/master/docs/optimizing.md |
| 14:38:53 | <maerwald> | what do you mean with "ByteString functions as Streamly unfold"? Did you use streamly-bytestring with the elemIndex? |
| 14:39:21 | <adamCS> | No. Just used your function to feed Streamly.Unfold.unfoldr |
| 14:39:23 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:39:24 | <adamCS> | more or less |
| 14:39:56 | <maerwald> | https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Prelude.html#v:unfoldr |
| 14:39:59 | <maerwald> | that way? |
| 14:40:40 | <maerwald> | I still feel it's kinda a hack |
| 14:40:52 | <maerwald> | Because we're relying on lazy bytestring |
| 14:41:00 | <adamCS> | https://gist.github.com/adamConnerSax/f115bb26a15e597d1199d42af2645568 |
| 14:41:42 | <adamCS> | Sure. I'm just trying to make a thing faster though, so it's a win. 10 times faster than Pipes using Pipes.Text and feeding Pipes via that same function didn't speed that up much. Which is confusing. |
| 14:41:50 | <maerwald> | yeah, but we're not using streamly to read the file now, which is sad |
| 14:42:33 | <maerwald> | although we could: https://hackage.haskell.org/package/streamly-bytestring-0.1.3/docs/Streamly-External-ByteString-Lazy.html |
| 14:42:44 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 260 seconds) |
| 14:42:48 | <merijn> | adamCS: I mean, bytestring being faster than Text is kinda obvious, though? You save a lot of effort if you don't bother decoding the data |
| 14:42:59 | <maerwald> | merijn: not necessarily |
| 14:42:59 | × | Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 14:43:09 | <maerwald> | the reason it's faster is only because we use `elemIndex` and nothing else |
| 14:43:09 | <merijn> | maerwald: Not necessarily what? |
| 14:43:15 | <maerwald> | which uses memchr |
| 14:43:21 | <adamCS> | merijn: But I do decode it, after it's broken into lines as ByteString |
| 14:43:23 | <maerwald> | some other bytestring functions don't |
| 14:43:47 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:43:50 | <maerwald> | in fact, most bytestring functions have their own hot loop with pointer aritmetic |
| 14:43:55 | <maerwald> | which is much slower than memchr |
| 14:44:33 | <maerwald> | abusing elemIndex is also how chris made the fast xml parser: https://chrisdone.com/posts/fast-haskell-c-parsing-xml/ |
| 14:44:46 | <maerwald> | which is faster than most C implementations even |
| 14:45:02 | <maerwald> | now... if we could trick streamly into using elemIndex in our parser |
| 14:45:21 | <maerwald> | that would be really cool... because then we have the speed of the xeno approach, but with an API that doesn't suck |
| 14:45:48 | <maerwald> | (internal API, but still... did you look at the xeno code? ugh.) |
| 14:47:21 | <maerwald> | but I'm susprised that a very simple char-by-char Fold in streamly is faster than attoparsec |
| 14:47:30 | → | surgeon[m] joins (~surge9nma@2001:470:69fc:105::f585) |
| 14:47:38 | → | max22- joins (~maxime@2a01cb08833598004910fadca795f245.ipv6.abo.wanadoo.fr) |
| 14:47:51 | <maerwald> | but it's true this feels more like experimentation than a stable API |
| 14:48:41 | <adamCS> | Yeah. I'm going to be sad if Unfold disappears. Is to be replaced by "Producer" or something else? Just the move from 0.7 to 0.8 was sorta painful. My own fault for using all sorts of "Internal" modules. |
| 14:49:20 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 14:49:21 | <maerwald> | they don't have funding for streamly... this is something HF should address imo |
| 14:49:31 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:49:31 | <maerwald> | it needs a lot of work |
| 14:49:53 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 14:50:58 | → | myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net) |
| 14:51:07 | <adamCS> | And I find the performance good but mysterious. I worked for a bit yesterday to take a thing I do a lot: load from csv to Text lines, turn each text line into a Vinyl record, transform the record into a different record, possibly filtering, so (Record rs -> Maybe (Record rs')) and then load that into Frames in-core AoS representation. |
| 14:51:57 | <adamCS> | Each step is streamly, unfold to Text, scan to process headers and then tokenize and convert the lines, map to do the transformation and then a fold into the AoS structure. |
| 14:52:05 | × | kn07_ quits (~kn07_@86.121.23.168) (Quit: Leaving) |
| 14:52:32 | <adamCS> | But the version that uses separate functions is faster. Which is inexplicable to me unless I have an inlining issue. Which I probably do. |
| 14:52:49 | × | vpan quits (~0@212.117.1.172) (Quit: Leaving.) |
| 14:53:12 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 14:58:45 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 15:00:08 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 15:05:35 | <maerwald> | adamCS: I still think there's a problem that needs to be solved in streamly. Namely chunked parsing... because you can only say "backtrack an entire element", but you can't say "drop the element, but then prepend this to the input of the next parser" |
| 15:06:09 | <maerwald> | I think this is due to how nested backtracking works |
| 15:06:32 | <maerwald> | I briefly lookd at the code and it doesn't seem there's an easy hack |
| 15:06:46 | <adamCS> | Yes. That seems like it would be useful, that the next element you process should be produced by a function of the current state and the next element in the stream. |
| 15:07:42 | <maerwald> | my suspicion is that using elemIndex within chunk boundaries and then forwarding to the next chunk will be as fast as the same on lazy ByteString |
| 15:08:32 | <maerwald> | also, Folds will get a monadic interface |
| 15:08:50 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 15:08:51 | <maerwald> | they seem to be generally faster than parsers, probably due to lack of backtracking |
| 15:09:11 | <maerwald> | (even if you don't use the backtracking) |
| 15:20:38 | × | acidjnk_new quits (~acidjnk@p200300d0c7238d78f12f2b4aa168a17a.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 15:24:02 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) |
| 15:28:24 | → | cfricke joins (~cfricke@user/cfricke) |
| 15:31:43 | <Boarders> | is there a way to get around "Unrecognised pragma for {#- HLINT ignore #-} ? |
| 15:32:19 | <merijn> | Not currently |
| 15:32:27 | <merijn> | Besides "don't use the pragma syntax" |
| 15:32:50 | <Boarders> | I'll see if hlint has an option to turn off all checks in a module using yaml |
| 15:33:17 | <Boarders> | I think it does |
| 15:33:24 | → | fizzsegfaultbuzz joins (~segfaultf@135-180-0-138.static.sonic.net) |
| 15:34:22 | <monochrom> | Which program is giving the "Unrecognised pragma" message? GHC? hlint? |
| 15:34:32 | <Boarders> | GHC via ghcid |
| 15:35:04 | <merijn> | GHC |
| 15:35:21 | <geekosaur> | it's a warning, I believe |
| 15:35:26 | <merijn> | Anything using the {-# #-} pragma syntax that GHC doesn't know produces a warning |
| 15:36:07 | <merijn> | There was a big discussion on how to handle tool pragmas like hlint a while (several years, possibly) ago, but not sure what the end conclusion was |
| 15:36:59 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 264 seconds) |
| 15:37:22 | <geekosaur> | the battle between the tools folks and the LANGAUGE folks :þ |
| 15:37:38 | <monochrom> | haha |
| 15:38:01 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection) |
| 15:38:52 | <remexre> | am I understanding correctly if it seems like (in the "instance resolution is Prolog" metaphor) every rule has a cut? |
| 15:39:09 | → | peterhil joins (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) |
| 15:39:16 | <monochrom> | Yes. |
| 15:39:17 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) |
| 15:39:43 | <remexre> | is there a way to... not have that? |
| 15:39:50 | <monochrom> | No. |
| 15:40:59 | <remexre> | any suggestings for making a printf-like that "finally" returns an arbitrary MonadIO? Right now I have instances {-# OVERLAPPING #-} (LogFunction func, ToJSON a) => LogFunction (a -> func) and {-# OVERLAPPABLE #-} (MonadIO m, a ~ ()) => LogFunction (m a) |
| 15:41:00 | <monochrom> | Or yes if you reimagine Haskell to defer resolution to link time and therefore you enjoy a CWA therefore backtracking makes sense again. |
| 15:41:09 | <remexre> | CWA? |
| 15:41:15 | <monochrom> | closed-world assumption |
| 15:41:25 | <monochrom> | the anti-thesis to separate compilation |
| 15:41:39 | <monochrom> | You do know Prolog, right? RIGHT? |
| 15:41:49 | <remexre> | yes, but not for AI, for logic :P |
| 15:41:59 | × | Franciman quits (~Franciman@mx1.fracta.dev) (Remote host closed the connection) |
| 15:42:12 | <monochrom> | I learned CWA in the context of "prolog as a logic" too. |
| 15:42:42 | <monochrom> | It is why "negation" "makes" "sense" in Prolog. |
| 15:42:45 | <remexre> | I've heard the term (though idk if it was from Prolog or general AI stuff), but never seen the acronym before, prolog or otherwise... anyway |
| 15:42:47 | → | Franciman joins (~Franciman@mx1.fracta.dev) |
| 15:42:54 | <remexre> | I guess I'd need something to prevent a (MonadIO (r -> a)) instance from being written |
| 15:43:06 | <remexre> | er, (MonadIO ((->) r))) |
| 15:45:27 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 15:45:48 | <monochrom> | Often we create newtypes to get it going. |
| 15:45:56 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 245 seconds) |
| 15:47:36 | × | zer0bitz quits (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Ping timeout: 260 seconds) |
| 15:48:19 | <remexre> | hm, any way to do that without changing the signature? This works with a concrete IO instead of the MonadIO, but avoiding needing to use liftIO every time is "the point" |
| 15:49:26 | × | d0ku quits (~d0ku@178.43.150.25.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 15:52:28 | → | fendor_ joins (~fendor@178.115.69.81.wireless.dyn.drei.com) |
| 15:54:15 | <monochrom> | onoes GHC 9.2.1 |
| 15:54:20 | <monochrom> | I mean oyes :) |
| 15:54:55 | <shapr> | oyes! |
| 15:54:55 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 15:55:02 | × | fendor quits (~fendor@178.115.69.86.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 15:55:13 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 15:56:10 | <monochrom> | Haha GHC2021 in lieu of Haskell2021 |
| 15:56:24 | × | dajoer quits (~david@user/gvx) (Quit: leaving) |
| 15:58:17 | <monochrom> | Ben ends the message with "happy testing". This is how confident the GHC devs are about this haha. |
| 15:59:00 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 15:59:01 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
| 15:59:14 | <sprout> | I can relate! |
| 15:59:28 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 15:59:36 | × | Midjak quits (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep) |
| 16:00:09 | × | monadfritz[m] quits (~ahdytmatr@2001:470:69fc:105::e1f1) (Quit: You have been kicked for being idle) |
| 16:02:06 | <monochrom> | I am now tempted to end all my emails with "Good luck with that, \n <my name>" |
| 16:02:40 | <monochrom> | Example: |
| 16:02:51 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 16:03:36 | <monochrom> | A student emails me to ask "is it OK for me to use do-notation on the exam, even though you didn't teach it?" |
| 16:03:58 | <monochrom> | Reply: "Yes you may. \n \n Good luck with that, \n <my name>" |
| 16:04:55 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 258 seconds) |
| 16:11:04 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:11:05 | × | talismanick quits (~talismani@76.78.246.111) (Remote host closed the connection) |
| 16:12:48 | × | NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.3) |
| 16:15:00 | → | igghibu joins (~igghibu@37.120.201.125) |
| 16:16:55 | ← | igghibu parts (~igghibu@37.120.201.125) () |
| 16:20:11 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 16:20:11 | <myShoggoth> | "Govern yourself accordingly," |
| 16:20:46 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 16:21:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:23:07 | → | NinjaTrappeur joins (~ninja@user/ninjatrappeur) |
| 16:27:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 16:27:24 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:32:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 16:33:02 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:34:09 | × | MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Ping timeout (120 seconds)) |
| 16:34:10 | → | chexum_ joins (~quassel@gateway/tor-sasl/chexum) |
| 16:34:20 | → | MidAutumnMoon joins (~MidAutumn@user/midautumnmoon) |
| 16:34:32 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 244 seconds) |
| 16:34:33 | × | mrianbloom quits (sid350277@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 16:34:33 | × | vito quits (sid1962@user/vito) (Ping timeout: 244 seconds) |
| 16:34:33 | × | supersven quits (sid501114@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 16:34:43 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 16:35:04 | × | S11001001 quits (sid42510@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 16:35:04 | × | JSharp quits (sid4580@lymington.irccloud.com) (Ping timeout: 244 seconds) |
| 16:35:04 | × | hendi quits (sid489601@lymington.irccloud.com) (Ping timeout: 244 seconds) |
| 16:35:10 | × | orcus quits (~orcus@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in) |
| 16:35:30 | → | orcus joins (~orcus@user/brprice) |
| 16:35:35 | × | sa1 quits (sid7690@ilkley.irccloud.com) (Ping timeout: 244 seconds) |
| 16:35:35 | × | bradparker quits (sid262931@uxbridge.irccloud.com) (Ping timeout: 244 seconds) |
| 16:36:36 | → | hendi joins (sid489601@id-489601.lymington.irccloud.com) |
| 16:36:37 | → | vito joins (sid1962@user/vito) |
| 16:36:44 | → | bradparker joins (sid262931@id-262931.uxbridge.irccloud.com) |
| 16:36:49 | → | sa1 joins (sid7690@id-7690.ilkley.irccloud.com) |
| 16:36:56 | → | JSharp joins (sid4580@id-4580.lymington.irccloud.com) |
| 16:37:42 | → | supersven joins (sid501114@id-501114.ilkley.irccloud.com) |
| 16:37:43 | → | mrianbloom joins (sid350277@id-350277.ilkley.irccloud.com) |
| 16:38:14 | → | S11001001 joins (sid42510@id-42510.ilkley.irccloud.com) |
| 16:38:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 16:39:46 | × | hiruji quits (~hiruji@user/hiruji) (Ping timeout: 252 seconds) |
| 16:40:45 | × | ft quits (~ft@shell.chaostreff-dortmund.de) (Ping timeout: 244 seconds) |
| 16:41:42 | → | ft joins (~ft@shell.chaostreff-dortmund.de) |
| 16:42:20 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 16:42:41 | → | aegon joins (~mike@174.127.249.180) |
| 16:45:36 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 16:49:13 | → | burnsidesLlama joins (~burnsides@dhcp168-040.wadham.ox.ac.uk) |
| 16:55:13 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 16:55:40 | → | hendursaga joins (~weechat@user/hendursaga) |
| 16:56:11 | fendor_ | is now known as fendor |
| 16:57:10 | → | Bleant joins (~Bleant@2804:7f7:d68c:6ec3:f145:b950:2a0e:7ea8) |
| 16:58:23 | → | lavaman joins (~lavaman@98.38.249.169) |
| 16:58:27 | × | Bleant quits (~Bleant@2804:7f7:d68c:6ec3:f145:b950:2a0e:7ea8) (Remote host closed the connection) |
| 16:59:57 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 17:03:23 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
| 17:04:12 | → | hiruji joins (~hiruji@user/hiruji) |
| 17:04:59 | → | Katarushisu5 joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
| 17:05:51 | → | agander_m_ joins (sid407952@id-407952.tinside.irccloud.com) |
| 17:05:52 | → | meinside_ joins (uid24933@id-24933.helmsley.irccloud.com) |
| 17:05:52 | → | manicennui_ joins (uid349235@id-349235.tinside.irccloud.com) |
| 17:05:52 | → | pepeiborra_ joins (sid443799@id-443799.ilkley.irccloud.com) |
| 17:05:52 | → | aria_ joins (sid380617@id-380617.lymington.irccloud.com) |
| 17:05:55 | → | dpratt__ joins (sid193493@id-193493.helmsley.irccloud.com) |
| 17:06:15 | × | bongobrown quits (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Ping timeout: 258 seconds) |
| 17:07:15 | → | carbolymer_ joins (~carbolyme@dropacid.net) |
| 17:08:06 | → | cross_ joins (~cross@spitfire.i.gajendra.net) |
| 17:08:20 | × | guniberas quits (~guniberas@42.191.188.121) (Ping timeout: 260 seconds) |
| 17:08:48 | → | motherfs1 joins (~motherfsc@user/motherfsck) |
| 17:10:06 | → | Guest6 joins (~Guest6@2a01cb0d04e290000a0027fffe32ed70.ipv6.abo.wanadoo.fr) |
| 17:11:20 | × | peterhil quits (~peterhil@mobile-access-5672f1-161.dhcp.inet.fi) (Ping timeout: 265 seconds) |
| 17:13:19 | × | motherfsck quits (~motherfsc@user/motherfsck) (*.net *.split) |
| 17:13:19 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (*.net *.split) |
| 17:13:19 | × | Ekho quits (~Ekho@user/ekho) (*.net *.split) |
| 17:13:20 | × | carbolymer quits (~carbolyme@dropacid.net) (*.net *.split) |
| 17:13:20 | × | cross quits (~cross@spitfire.i.gajendra.net) (*.net *.split) |
| 17:13:20 | × | pepeiborra quits (sid443799@ilkley.irccloud.com) (*.net *.split) |
| 17:13:20 | × | manicennui quits (uid349235@tinside.irccloud.com) (*.net *.split) |
| 17:13:20 | × | aria quits (sid380617@lymington.irccloud.com) (*.net *.split) |
| 17:13:20 | × | meinside quits (uid24933@helmsley.irccloud.com) (*.net *.split) |
| 17:13:20 | × | agander_m quits (sid407952@tinside.irccloud.com) (*.net *.split) |
| 17:13:20 | × | dpratt_ quits (sid193493@helmsley.irccloud.com) (*.net *.split) |
| 17:13:20 | Katarushisu5 | is now known as Katarushisu |
| 17:13:20 | dpratt__ | is now known as dpratt_ |
| 17:13:20 | pepeiborra_ | is now known as pepeiborra |
| 17:13:20 | meinside_ | is now known as meinside |
| 17:13:20 | manicennui_ | is now known as manicennui |
| 17:13:20 | aria_ | is now known as aria |
| 17:13:20 | agander_m_ | is now known as agander_m |
| 17:15:00 | → | Ekho- joins (~Ekho@user/ekho) |
| 17:16:17 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:16:28 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 17:21:00 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Ping timeout: 265 seconds) |
| 17:23:11 | → | Pickchea joins (~private@user/pickchea) |
| 17:23:15 | → | econo joins (uid147250@user/econo) |
| 17:23:41 | Ekho- | is now known as Ekho |
| 17:31:40 | → | lavaman joins (~lavaman@98.38.249.169) |
| 17:32:39 | <lbseale> | can I automatically derive NFData for an arbitrary record type? |
| 17:33:03 | <maerwald> | with Generic |
| 17:33:22 | <lbseale> | nice |
| 17:33:58 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection) |
| 17:34:34 | → | Kaiepi joins (~Kaiepi@156.34.44.192) |
| 17:34:40 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: djvksd) |
| 17:35:46 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Ping timeout: 258 seconds) |
| 17:39:48 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 17:40:00 | → | lavaman joins (~lavaman@98.38.249.169) |
| 17:40:58 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 17:41:11 | × | hiruji quits (~hiruji@user/hiruji) (Ping timeout: 264 seconds) |
| 17:41:46 | → | chomwitt joins (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374) |
| 17:43:14 | → | jil joins (~user@160.155.45.49) |
| 17:43:19 | <jil> | hello |
| 17:44:29 | <jil> | I'm a begginer, learning haskell and I would like to define a type for different sets of digit. |
| 17:46:43 | <pavonia> | Welcome |
| 17:47:57 | <jil> | I could do `data Digit2 = Zero | One` or `data Digit6 = Zero | One | ... | Five` but I would like a more generic approche using Exiting Int or Char. For exemple `data Digits n` would be '0' | '1' | ... | nth -1 symbol of a predefined sequence |
| 17:48:17 | × | Guest6 quits (~Guest6@2a01cb0d04e290000a0027fffe32ed70.ipv6.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
| 17:49:20 | <jil> | How do I do that ? and Why can't I do `data Digit2 = 0 | 1` ? I want a Digit2 to be an Int and it's successor . |
| 17:49:29 | <jil> | hello pavonia |
| 17:49:58 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 17:50:06 | <jil> | or Digit2 to be two successive Char |
| 17:50:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 17:51:10 | <yrlnry> | `Data` defines a new data type. If it let you `data Digit2 = 0 | 1`, then when the Haskell compiler saw a `0` in your code, it wouldn't know whether you meant the Data2 value 0 or the integer value 0. |
| 17:52:40 | <yrlnry> | You can do `Data2 = D0 | D1`. Or you can tell Haskell that `Data2` is an instance of `Num`, and then define a `fromInteger` function for it that says how Haskell should interpret a `0` or a `1` that is being used in a place where it expected a `Digit2`. |
| 17:53:16 | <dsal> | That gets partial if it's not modular, though. Because what does `4 :: Digit2` mean? |
| 17:53:35 | <awpr> | it means "good luck debugging this with no stack trace" :) |
| 17:53:54 | <awpr> | partial Num instances cause unbounded pain |
| 17:53:58 | <yrlnry> | Presumably for this application partial is acceptable, it should complain `4 is not a permitted digit` or something. |
| 17:54:41 | <dsal> | Partial functions are more desirable in the beginning. :) |
| 17:54:47 | <monochrom> | Worse than that. Most Num methods make no sense for the "digit" concept. |
| 17:55:14 | <awpr> | an error sounds okay at first glance, but there's no way to find out where the problem came from without making a profiling build and using the RTS' stack traces |
| 17:55:34 | <yrlnry> | What would be a better approach? |
| 17:55:41 | <awpr> | not having a Num instance |
| 17:55:57 | <monochrom> | Don't make the digit type a Num instance in the first place. |
| 17:56:05 | <jil> | ok |
| 17:56:07 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 17:56:07 | <dsal> | You can make an e-Num type. That's more high tech anyway. |
| 17:56:12 | <monochrom> | Enum ought to be enough for that. |
| 17:56:42 | <awpr> | I wrote this entire library and GHC plugin fueled by frustration with exactly this problem: https://hackage.haskell.org/package/dependent-literals-plugin |
| 17:57:03 | <yrlnry> | Enum is probably a better idea, thanks. |
| 17:57:16 | <awpr> | to make it possible to make numeric literals work with Fin, without ruining somebody's week whenever someone uses an out-of-range literal |
| 17:57:48 | <monochrom> | Enum is precisely for "my type is just 10 constructors flat". |
| 17:57:55 | <awpr> | (incidentally, `DigitN` is `Fin N`) |
| 17:58:25 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Ping timeout: 260 seconds) |
| 17:59:00 | × | burnsidesLlama quits (~burnsides@dhcp168-040.wadham.ox.ac.uk) (Remote host closed the connection) |
| 17:59:03 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) |
| 17:59:31 | → | burnsidesLlama joins (~burnsides@dhcp168-040.wadham.ox.ac.uk) |
| 18:00:11 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 18:00:57 | <monochrom> | Haha now I understand the e-Num joke. |
| 18:02:30 | → | hololeap joins (~hololeap@user/hololeap) |
| 18:03:41 | <pavonia> | @quote beginner |
| 18:03:41 | <lambdabot> | JohnHughes says: I would guess that the majority if compiler runs for beginners (and perhaps for the rest of us too!) end in a type error |
| 18:04:15 | × | burnsidesLlama quits (~burnsides@dhcp168-040.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
| 18:04:46 | <pavonia> | Wasn't there a quote about beginners asking an innocent question and being overwhelmed with type theory answers? |
| 18:04:55 | awpr | hides |
| 18:06:00 | × | yrlnry quits (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) (Ping timeout: 260 seconds) |
| 18:07:53 | × | max22- quits (~maxime@2a01cb08833598004910fadca795f245.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
| 18:07:54 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 18:08:20 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 18:08:31 | → | Farzad joins (~FarzadBek@37.49.150.10) |
| 18:08:42 | <geekosaur> | @quote type.theory |
| 18:08:42 | <lambdabot> | ggVGc says: haskell also has the gotcha of starting to write a program and ending up with a ultra-generic library for some new type theory concepts you just learnt |
| 18:08:49 | <geekosaur> | @quote type.theory |
| 18:08:49 | <lambdabot> | ggVGc says: haskell also has the gotcha of starting to write a program and ending up with a ultra-generic library for some new type theory concepts you just learnt |
| 18:08:53 | <geekosaur> | hm |
| 18:09:57 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 18:09:58 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 18:10:08 | <shapr> | @quote first-year |
| 18:10:08 | <lambdabot> | TacticalGrace says: #haskell in action: discussion about first-year teaching turns into an argument about CT and Kan extensions |
| 18:10:11 | <shapr> | that one? |
| 18:10:23 | × | mbuf quits (~Shakthi@171.61.174.60) (Quit: Leaving) |
| 18:10:34 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 18:10:57 | <shapr> | @quote category theory |
| 18:10:57 | <lambdabot> | No quotes for this person. You untyped fool! |
| 18:11:00 | <shapr> | @quote category.theory |
| 18:11:00 | <lambdabot> | mjrosenb says: <3 #haskell; "why doesn't this program typecheck?" ; 5 hours of category theory later, op left 4 hours ago |
| 18:11:05 | <shapr> | @quote category.theory |
| 18:11:05 | <lambdabot> | Botje says: the line between madness and category theory is a fine one indeed. |
| 18:11:13 | <shapr> | too many category theory quotes |
| 18:11:32 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:11:54 | <earthy> | there's no such thing as to many category theory... is there? :) |
| 18:12:30 | <monochrom> | 2-many 2-category theory |
| 18:14:14 | × | hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer) |
| 18:14:17 | <jil> | awpr it's not clear exactly how to use you librari but I will try. I think It answer my question. |
| 18:14:54 | <pavonia> | shapr: Hhm, maybe it was this first-year quote |
| 18:15:08 | <jil> | I have another innocent beginner question. |
| 18:15:13 | <awpr> | tbh it's probably too complicated for this use case if you're not willing to go to great lengths to get literals working |
| 18:15:31 | <jil> | how do yo know in what package to find a specific function ? |
| 18:15:33 | → | hololeap joins (~hololeap@user/hololeap) |
| 18:16:11 | <geekosaur> | hoogle |
| 18:16:17 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
| 18:16:17 | <awpr> | hmm, if I added a `Wrapped Finite` impl, it might actually become easy... |
| 18:16:27 | <jil> | in ghci :doc read will point to readMaybe. If one does not have acess to internet how can he find readMaybe is in Data.Text (from memory) |
| 18:17:13 | <awpr> | `data Digit2 = D0 | D1 deriving Generic deriving Finite via Wrapped Generic Digit2 deriving HasIntLiterals via Wrapped Finite Digit2` isn't too bad. |
| 18:17:25 | <sm> | jil, you can do what you just said, in ghci ? |
| 18:17:27 | <jil> | wouhao ! |
| 18:17:33 | <sm> | you can also set up hoogle to work locally |
| 18:18:00 | <awpr> | but I still think dependent-literals is overkill for this, honestly. I'd probably just use D0 and D1 directly |
| 18:18:25 | <jil> | awpr but what about Fin 16, Fin 32 ect.. |
| 18:18:33 | <jil> | :doc read |
| 18:19:00 | <jil> | points to readMaybe |
| 18:19:06 | <sm> | or you can set up a more fancy local docs tool like `dash` or similar |
| 18:19:11 | <awpr> | yeah, those are a bit more meaningful. if you want a lot of different radixes, I'd maybe find an existing Fin library (e.g. `fin-int` is one I maintain) |
| 18:20:06 | <jil> | sm ok, I need a better IDE setup. any suggestion for a ghci runing in emacs ? |
| 18:20:21 | <sm> | M-x shell, ghci |
| 18:20:29 | <jil> | I'm not familliar with dash. |
| 18:20:36 | <awpr> | that comes with dependent-literals support, but you can also just say `fin 5` if you don't want to deal with the plugin. (and that has a HasCallStack constraint, so if you call it on an out-of-range number, it'll at least tell you where) |
| 18:20:37 | <jil> | sm That's what I use |
| 18:20:50 | <sm> | also don't miss ghcid, it's great |
| 18:21:10 | <jil> | ok sm. Thank you. |
| 18:23:20 | <sm> | jil I also recommend spending a half hour to skim the haddocks for all of base and a few other main libraries (containers, mtl, text, safe, ...) - most of us did not do it and it can save a lot of time |
| 18:23:41 | <sm> | likewise for the GHC user guide |
| 18:24:45 | → | thblt joins (~thblt@user/thblt) |
| 18:24:47 | <jil> | :) ok. |
| 18:24:56 | <sm> | oh and the stack and cabal user guides :) |
| 18:25:08 | <sm> | THEN you'll be fine |
| 18:26:30 | <thblt> | Is there a file manipulation library in Haskell that signals errors with types rather than exceptions? (Eg open :: FilePath -> IO (Either FileError Handle)) |
| 18:27:16 | <monochrom> | You can use Control.Exception's "try". |
| 18:27:17 | <jil> | sm I'm trying to finish Hutton_G_Programming_in_Haskell-Cambridge_University_Press_2018.pdf |
| 18:27:39 | <sm> | good one |
| 18:27:59 | <sm> | he has more recent lessons on youtube also |
| 18:28:48 | <sm> | @where HTAC |
| 18:28:48 | <sm> | is also good |
| 18:29:22 | <sm> | @where HTAC , I say |
| 18:29:22 | <lambdabot> | "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook> |
| 18:30:22 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 18:31:48 | → | alx741 joins (~alx741@186.178.109.79) |
| 18:34:29 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 18:35:16 | <thblt> | monochrom: thanks |
| 18:36:03 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 18:36:24 | → | max22- joins (~maxime@2a01cb0883359800df57ac14517550fc.ipv6.abo.wanadoo.fr) |
| 18:37:40 | → | ubert joins (~Thunderbi@178.115.53.120.wireless.dyn.drei.com) |
| 18:39:47 | → | burnsidesLlama joins (~burnsides@dhcp168-040.wadham.ox.ac.uk) |
| 18:44:37 | × | burnsidesLlama quits (~burnsides@dhcp168-040.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
| 18:45:59 | × | motherfs1 quits (~motherfsc@user/motherfsck) (Quit: quit) |
| 18:47:15 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 18:49:14 | → | ubert1 joins (~Thunderbi@178.115.53.120.wireless.dyn.drei.com) |
| 18:49:39 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection) |
| 18:59:06 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 19:01:43 | → | vicfred joins (~vicfred@user/vicfred) |
| 19:01:54 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 19:02:03 | <maerwald> | whats the conversion from `NominalDiffTime` to `EpochTime`? fromIntegral? |
| 19:04:01 | <monochrom> | I have a feeling that realToFrac is closer. |
| 19:04:10 | <maerwald> | doesn't work |
| 19:04:23 | <maerwald> | No Instance for Fractional Epochtime |
| 19:04:35 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 19:04:48 | <monochrom> | Ah right. But NominalDiffTime is not Integral either. |
| 19:07:00 | <monochrom> | Perhaps truncate or round. NominalDiffTime is sub-seconds, but its integral part means seconds. |
| 19:07:06 | → | Null_A joins (~null_a@2601:645:8700:2290:19ff:7d99:67c6:79e3) |
| 19:07:43 | <maerwald> | that doesn't sound too sure :D |
| 19:08:06 | <maerwald> | there's `nominalDiffTimeToSeconds`, but then I got Pico, wtf |
| 19:08:15 | <monochrom> | Well, in the first place, I am not sure that NominalDiffTime and EpochTime stand for the same idea. |
| 19:09:24 | <monochrom> | One is a duration, the other is an absolute point. |
| 19:09:44 | <monochrom> | Although you could wing it and say "I just mean CTime" |
| 19:09:45 | <maerwald> | well, type POSIXTime = NominalDiffTime |
| 19:10:05 | <maerwald> | I have UTCTime and want EpochTime (which is CTime) |
| 19:10:12 | <maerwald> | so: utcTimeToPOSIXSeconds :: UTCTime -> POSIXTime |
| 19:10:18 | <maerwald> | then I'm stuck with NominalDiffTime |
| 19:10:43 | <maerwald> | CTime is Real and Num |
| 19:10:44 | <monochrom> | Pico is just another Fractional instance that you can use truncate/round on. |
| 19:11:38 | <maerwald> | well, then I have an Integral |
| 19:11:40 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:11:50 | <maerwald> | CTime isn't |
| 19:11:52 | <monochrom> | Well, on all known GHC platforms that have System.Posix, CTime is also just a newtype around Int64. |
| 19:12:28 | <maerwald> | I wish there was a time library that isn't awful |
| 19:12:56 | <monochrom> | Plus, "According to POSIX, it shall be an integer type." from a linux man page about time_t |
| 19:13:03 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 19:13:04 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 19:13:17 | <monochrom> | Me, I wish there were no pretended abstractions like this. |
| 19:13:32 | <maerwald> | `fromInteger . floor . nominalDiffTimeToSeconds . utcTimeToPOSIXSeconds` |
| 19:13:38 | <maerwald> | but now I really have no idea what that does |
| 19:13:46 | <monochrom> | "Oh CTime is platform-dependent we can't tell you it's an integer". Platform-dependent my ass. |
| 19:14:00 | <maerwald> | I'm just gonna assume it's correct |
| 19:14:17 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) |
| 19:14:30 | → | hololeap joins (~hololeap@user/hololeap) |
| 19:14:52 | → | yrlnry joins (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) |
| 19:15:18 | <maerwald> | this is where I miss javascript |
| 19:15:30 | <maerwald> | don't care, just throw it in, it'll be fine! |
| 19:17:36 | <monochrom> | Pretty sure you don't need nominalDiffTimeToSeconds |
| 19:18:01 | <monochrom> | NomimalDiffTime is just a newtype around Pico. nominalDiffTimeToSeconds just unwraps. |
| 19:18:29 | <monochrom> | This is why whereas Pico is Fractional, so is NominalDiffTime. |
| 19:20:28 | <maerwald> | those are all really interesing things... but why can't we have a simple tables with those conversions, which also clearly indicates if you lose precision etc. |
| 19:21:30 | <monochrom> | FWIW why do you have UTCTime in the first place? If you called getCurrentTime, perhaps replace with epochTime? |
| 19:22:11 | <maerwald> | EpochTime is unix-specific isn't it? |
| 19:22:22 | <maerwald> | I want to be cross-platform |
| 19:23:08 | <monochrom> | OK, you are converting something to EpochTime for cross-platform? |
| 19:23:30 | <maerwald> | yes, that's the unix module |
| 19:23:36 | <maerwald> | but the type must not leak |
| 19:23:38 | <monochrom> | I would think sticking to UTCTime and NominalDiffTime was the cross-platform way. |
| 19:23:45 | <monochrom> | Ah OK. |
| 19:24:09 | → | burnsidesLlama joins (~burnsides@dhcp168-040.wadham.ox.ac.uk) |
| 19:24:47 | <maerwald> | I'm becoming a fan of DList |
| 19:24:57 | <monochrom> | Oh well yeah use rounding and use the "forbidden" knowledge that EpochTime = CTime = newtype of Int32/64/doesn't matter. |
| 19:25:19 | <maerwald> | `fromInteger . floor . utcTimeToPOSIXSeconds` typechecks |
| 19:25:38 | <maerwald> | users will tell me if it does the correct thing after their systems crashed |
| 19:27:23 | × | emf quits (~emf@2620:10d:c090:400::5:5ca4) (Ping timeout: 264 seconds) |
| 19:27:23 | <monochrom> | But yeah a table would be nice. |
| 19:27:47 | <maerwald> | DList.toList is nicely lazy, so you can append in O(1) in your fold and then turn it back almost zero-cost, right? |
| 19:28:04 | <maerwald> | neglecting the memory overhead |
| 19:29:05 | <monochrom> | Yes, to a large extent, all those "ByteString.Builder" "Text.Builder" "Foo.Builder" "Bar.Builder" are DLists. |
| 19:29:30 | → | emf joins (~emf@c-73-97-137-43.hsd1.wa.comcast.net) |
| 19:29:36 | × | emf quits (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Client Quit) |
| 19:31:00 | × | Farzad quits (~FarzadBek@37.49.150.10) (Quit: Leaving) |
| 19:34:03 | <hololeap> | I'm running on Gentoo with the haskell repo and so I have all of my packages installed at a system level (ultimately using cabal packages converted to gentoo packages) |
| 19:34:27 | <hololeap> | I'm experimenting with running hoogle as a systemd service |
| 19:35:05 | <hololeap> | when a package is done installing, I have a hook that runs: /usr/bin/hoogle generate --local -- $n |
| 19:35:16 | <hololeap> | where $n is the name of the cabal package |
| 19:35:25 | <shapr> | hololeap: I'm running hoogle in nix and working my way towards nix-copy-closure to 'deploy' the server. |
| 19:36:01 | <hololeap> | the problem is that hoogle crashes when I try to connect after this and only resumes after doing a full generate |
| 19:36:02 | <shapr> | and yeah, a systemd service for restarting |
| 19:36:39 | <shapr> | hololeap: I switched to nix because stack hoogle things have several layers of broken |
| 19:36:42 | <shapr> | are you using cabal? |
| 19:37:11 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds) |
| 19:37:20 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 19:37:27 | <hololeap> | shapr: sort of kind of? gentoo uses Setup.hs behind the scenes to run configure, build, test, etc |
| 19:38:36 | <hololeap> | I'm wondering how hoogle.haskell.org updates when there is a new version/package pushed to hackage |
| 19:38:56 | <hololeap> | because it doesn't seem to like this style of incremental update |
| 19:39:02 | <shapr> | We have 500kloc (excluding whitespace lines) of Haskell in our monorepo, a hoogle server makes it easier to find things. |
| 19:39:26 | <shapr> | oh, your question is whether hoogle supports incremental updates? |
| 19:39:31 | <shapr> | I always have to do a full rebuild. |
| 19:39:35 | <hololeap> | more or less |
| 19:39:50 | <monochrom> | I don't know hoogle, but I would think the safe default thing to do is: kill the server before generate, start the server after. |
| 19:40:04 | <shapr> | I'd bet changing haddocks could be done incrementally, but I don't know about reindexing to build the hoogle db |
| 19:41:34 | <hololeap> | monochrom: the package manager doesn't have permission to do this, I don't think. maybe that could be changed... |
| 19:41:34 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 19:41:59 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 19:42:03 | <hololeap> | *to kill/start the hoogle server running through systemd |
| 19:42:44 | <hololeap> | actually the hook system must be running as root |
| 19:43:14 | <hololeap> | I could try it, but so far it seems like you have to re-index _everything_ after something has been changed |
| 19:45:47 | <monochrom> | I'm thinking of this other Goldberg machine: The hoogle server is watched over by a watchdog, this watchdog waits for DB change and restarts the hoogle server. |
| 19:46:12 | <monochrom> | With some luck, this watchdog can be written in systemd syntax too. |
| 19:46:34 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection) |
| 19:46:34 | <monochrom> | or s/can be written/may be writable/ |
| 19:46:51 | <hololeap> | monochrom: that's kind of how I have it set up now, just because it crashes after I update a single package |
| 19:47:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:48:27 | <monochrom> | Hrm haha, do you mean that I can skip the step "wait for changes"? >:) |
| 19:49:00 | <hololeap> | pretty much |
| 19:49:04 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 19:49:05 | <monochrom> | "the server crashes" serves as notification for "now is a good time to respawn" |
| 19:49:35 | × | xff0x quits (~xff0x@2001:1a81:529e:f300:b22f:69e6:aa77:fd2f) (Ping timeout: 264 seconds) |
| 19:49:43 | <monochrom> | This is consistent with my policy of "don't work until it's really urgent" >:) |
| 19:50:37 | <hololeap> | https://github.com/gentoo-haskell/gentoo-haskell/blob/bb70927ef3bc753bc899f589b69586b34b90d0f9/dev-util/hoogle/files/hoogle.service |
| 19:50:44 | <hololeap> | https://github.com/gentoo-haskell/gentoo-haskell/blob/bb70927ef3bc753bc899f589b69586b34b90d0f9/dev-util/hoogle/files/hoogle-generate.service |
| 19:51:21 | <hololeap> | since I have Restart=always and Requires=hoogle-generate.service, when hoogle crashes it regenerates the DB and restarts the service |
| 19:51:29 | → | hiruji joins (~hiruji@user/hiruji) |
| 19:52:17 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 19:53:35 | <hololeap> | but this takes longer and longer each time I add a new package to the system |
| 19:54:21 | <hololeap> | I asked in #haskell-infrastructure ... maybe someone in there knows how the main hoogle service operates |
| 20:05:11 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 264 seconds) |
| 20:07:01 | → | juhp joins (~juhp@128.106.188.220) |
| 20:08:25 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 20:09:07 | → | acidjnk_new joins (~acidjnk@p200300d0c7238d89cc95ba723fa3afc9.dip0.t-ipconnect.de) |
| 20:14:05 | → | xff0x joins (~xff0x@2001:1a81:529e:f300:b22f:69e6:aa77:fd2f) |
| 20:15:41 | × | alx741 quits (~alx741@186.178.109.79) (Ping timeout: 264 seconds) |
| 20:17:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) |
| 20:21:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 20:25:04 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 20:25:35 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 20:25:55 | → | waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
| 20:27:19 | → | fluffyballoon joins (~user@131.93.208.196) |
| 20:29:10 | → | alx741 joins (~alx741@181.196.69.253) |
| 20:46:11 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection) |
| 20:46:17 | × | OscarH quits (~OscarH@90.201.86.195) (Ping timeout: 264 seconds) |
| 20:46:54 | <shapr> | hololeap: this is brilliant and sneaky, I love it |
| 20:47:22 | <hololeap> | shapr: it wasn't really intentional, I swear D: |
| 20:47:28 | <dsal> | Is DeriveAnyClass a terrible idea? |
| 20:47:56 | <hololeap> | no, but it can be misused to a certain extent |
| 20:48:23 | <dsal> | I file like it makes thing slightly better in this one case. |
| 20:48:39 | <hololeap> | it's basically the same as `instance Blah T` without the `where` or the following definition block |
| 20:49:15 | <shapr> | hololeap: if only it would crash as soon as you update a package instead of when you next speak to the hoogle server |
| 20:49:28 | <hololeap> | so for some classes, it makes sense... for instance Exception |
| 20:50:12 | <geekosaur> | also for any class that can use a Generic instance in its default implementation, which is IIRC the intended use case |
| 20:50:53 | <hololeap> | ^ beat me to it |
| 20:51:00 | <hpc> | i forsee a https://xkcd.com/1172/ style bug report in hoogle's future |
| 20:51:27 | <dsal> | Well, hlint won't me do it. That's lame. |
| 20:52:22 | → | Guest17 joins (~Guest17@94-255-217-215.cust.bredband2.com) |
| 20:52:23 | <hololeap> | it won't let you? |
| 20:53:17 | <dsal> | Precommit hook with a bunch of predefined decisions. |
| 20:54:11 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 260 seconds) |
| 20:54:16 | <hololeap> | hm, bummer. it forbids that extension? |
| 20:55:04 | <dsal> | Yeah. I guess someone did a thing somewhere and it was wrong or something. |
| 20:55:30 | <dsal> | It's unfortunate it covers several syntaxes. I'm using deriving strategies here and I'd think that'd be OK because, you know, I meant to do it. |
| 20:55:44 | <dsal> | I think there's something about newtype vs. any doing something different for aeson or something. |
| 20:55:54 | <hololeap> | I suppose it makes sense, because you can shoot yourself in the foot if you aren't paying attention. if you want to use it, it's a good idea to have DerivingStrategies enabled and use them everywhere |
| 20:56:06 | <dsal> | Yeah, I don't know if we can say that. |
| 20:56:38 | <geekosaur> | yeh, strategies exist because if DeriveAnyClass is enabled it overrides GeneralisedNewtypeDeriving |
| 20:56:54 | <geekosaur> | so you get something other than what you intended for a newtype |
| 20:58:54 | <dsal> | Oh interesting. Yeah, I guess there needed to be a tie breaker. |
| 20:59:26 | × | Guest17 quits (~Guest17@94-255-217-215.cust.bredband2.com) (Quit: Client closed) |
| 21:01:12 | × | ubert1 quits (~Thunderbi@178.115.53.120.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 21:02:08 | × | ubert quits (~Thunderbi@178.115.53.120.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 21:04:14 | → | proboscis joins (~proboscis@115-189-129-117.mobile.spark.co.nz) |
| 21:05:24 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 21:06:57 | × | proboscis quits (~proboscis@115-189-129-117.mobile.spark.co.nz) (Client Quit) |
| 21:08:30 | → | proboscis joins (~proboscis@115-189-129-117.mobile.spark.co.nz) |
| 21:09:25 | → | Farzad joins (~FarzadBek@37.49.150.10) |
| 21:27:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) |
| 21:30:35 | × | michalz quits (~michalz@185.246.204.109) (Remote host closed the connection) |
| 21:30:52 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:31:17 | × | chomwitt quits (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374) (Ping timeout: 246 seconds) |
| 21:40:11 | → | nehsou^ joins (~nehsou@wsip-98-188-242-6.mc.at.cox.net) |
| 21:41:56 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 21:44:11 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
| 21:45:11 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 21:47:08 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 21:47:57 | → | kn07_ joins (~kn07_@86.121.23.168) |
| 21:52:32 | × | xsperry quits (~xs@user/xsperry) (Ping timeout: 260 seconds) |
| 21:53:04 | × | Farzad quits (~FarzadBek@37.49.150.10) (Quit: Leaving) |
| 21:53:05 | × | shailangsa quits (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) (Remote host closed the connection) |
| 21:59:44 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
| 22:02:04 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) |
| 22:07:58 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 22:09:34 | × | xff0x quits (~xff0x@2001:1a81:529e:f300:b22f:69e6:aa77:fd2f) (Ping timeout: 268 seconds) |
| 22:09:43 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 22:10:18 | → | xff0x joins (~xff0x@2001:1a81:529e:f300:d3c7:e134:91d9:4541) |
| 22:11:40 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds) |
| 22:16:51 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 22:17:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:19:01 | × | kn07_ quits (~kn07_@86.121.23.168) (Quit: Leaving) |
| 22:19:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:19:04 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 22:19:04 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:19:56 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 22:22:54 | → | mcglk_ joins (~mcglk@131.191.49.120) |
| 22:23:32 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:23:47 | × | mcglk quits (~mcglk@131.191.49.120) (Ping timeout: 260 seconds) |
| 22:24:05 | → | jespada joins (~jespada@181.28.253.200) |
| 22:26:45 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds) |
| 22:29:47 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds) |
| 22:30:27 | ← | jil parts (~user@160.155.45.49) (ERC (IRC client for Emacs 27.2)) |
| 22:31:09 | × | proboscis quits (~proboscis@115-189-129-117.mobile.spark.co.nz) (Read error: Connection reset by peer) |
| 22:31:22 | → | proboscis joins (~proboscis@115-189-129-117.mobile.spark.co.nz) |
| 22:32:50 | × | hyiltiz quits (~quassel@31.220.5.250) (Quit: hyiltiz) |
| 22:33:41 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 22:35:22 | × | jespada quits (~jespada@181.28.253.200) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:37:18 | × | proboscis quits (~proboscis@115-189-129-117.mobile.spark.co.nz) (Read error: Connection reset by peer) |
| 22:37:27 | → | proboscis joins (~proboscis@115-189-129-117.mobile.spark.co.nz) |
| 22:39:01 | → | f-a joins (f2a@f2a.jujube.ircnow.org) |
| 22:39:56 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 22:40:00 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:40:27 | <f-a> | I am writing a small haskell program, is there a way GHC can show me *unused* top-level functions in my src/ when I run the program? |
| 22:40:43 | → | ubert joins (~Thunderbi@178.115.53.120.wireless.dyn.drei.com) |
| 22:42:50 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Lost terminal) |
| 22:45:59 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 22:47:38 | <hpc> | not at runtime |
| 22:47:50 | <hpc> | ghc has various -Wunused-* flags you can pass |
| 22:47:58 | <hpc> | or maybe hlint |
| 22:50:36 | <f-a> | thanks |
| 22:55:40 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 22:59:33 | × | hyiltiz quits (~quassel@31.220.5.250) (Quit: hyiltiz) |
| 23:06:05 | × | fluffyballoon quits (~user@131.93.208.196) (Ping timeout: 268 seconds) |
| 23:06:42 | <clever> | f-a: also, unused top-level functions will only be warned about if you have explicit exports |
| 23:06:53 | <clever> | if you export everything, then it cant know what is unused in other modules |
| 23:07:07 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection) |
| 23:07:20 | <f-a> | argh, I see |
| 23:07:52 | → | Farzad joins (~FarzadBek@37.49.150.10) |
| 23:13:35 | × | burnsidesLlama quits (~burnsides@dhcp168-040.wadham.ox.ac.uk) (Remote host closed the connection) |
| 23:14:07 | → | burnsidesLlama joins (~burnsides@dhcp168-040.wadham.ox.ac.uk) |
| 23:14:12 | × | proboscis quits (~proboscis@115-189-129-117.mobile.spark.co.nz) (Ping timeout: 260 seconds) |
| 23:14:23 | → | proboscis joins (~proboscis@115-189-132-172.mobile.spark.co.nz) |
| 23:17:07 | × | max22- quits (~maxime@2a01cb0883359800df57ac14517550fc.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 23:18:24 | <dsal> | Explicit exports are kind of bad, but generating lots of stuff with TH and having to type up a bunch of exports for code that doesn't exist in the file can be annoying. |
| 23:18:24 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 23:18:42 | <dsal> | Er, not having explicit exports is kind of bad. |
| 23:18:59 | <Cajun> | also exporting potentially unsafe constructors is obviously not good |
| 23:18:59 | × | burnsidesLlama quits (~burnsides@dhcp168-040.wadham.ox.ac.uk) (Ping timeout: 264 seconds) |
| 23:19:36 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection) |
| 23:19:59 | → | MQ-17J joins (~MQ-17J@8.6.144.203) |
| 23:21:40 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds) |
| 23:22:50 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 23:24:18 | <energizer> | why is there no dynamic language with haskell syntax? |
| 23:25:24 | <geekosaur> | define 'dynamic language' |
| 23:25:58 | <aegon> | maybe they mean interpreted? |
| 23:26:00 | <energizer> | i know it when i see it |
| 23:26:19 | <aegon> | like a ghci vm :? |
| 23:26:25 | <hpc> | you could always defer type errors :D |
| 23:26:33 | <geekosaur> | hugs? |
| 23:26:56 | <geekosaur> | if you mean dynamic typing, there's small issues like pattern matching fundamentally relying on strict typing |
| 23:28:46 | <geekosaur> | also "i know it when i see it" basiclaly makes your question unanswerable, because we can't get into your head to see what you really want |
| 23:29:08 | <energizer> | i think many of us know it when we see it |
| 23:29:17 | <energizer> | what is "strict typing"? |
| 23:29:29 | <hpc> | you'd be surprised how many people are able to see things without knowing them |
| 23:29:46 | <aegon> | i see things without knowing them every day :P |
| 23:29:55 | <aegon> | i'm seeing a screen right now, i could say how it works, but i don't know it |
| 23:29:56 | <hpc> | strict means "types must match", static means "at compile time" |
| 23:30:01 | <aegon> | lets get nit picky!!! :D |
| 23:30:08 | <energizer> | now try this schtick when i say python is statically typed |
| 23:30:13 | <hpc> | (strict typing is also called strong typing) |
| 23:30:32 | <hpc> | weak typing is "the language will do what it can to make things work" |
| 23:30:42 | <hpc> | python is strict and dynamic typed |
| 23:30:47 | <hpc> | haskell is strict and static typed |
| 23:31:03 | <hpc> | perl is weak and static typed |
| 23:31:05 | <energizer> | yeah so pattern matching depending on types seems irrelevant |
| 23:31:17 | <energizer> | since dynamic languages can have strong types |
| 23:31:25 | <hpc> | (its compile-time types are $, @, %, &, and *) |
| 23:31:38 | <hpc> | (when you use the wrong one, it might do something like give you the length of a list, or make a list of one element) |
| 23:31:57 | <hpc> | C is weak and static typed |
| 23:32:20 | <hpc> | its types are sizes, and if you use the wrong size it can sometimes figure things out for you |
| 23:32:55 | <hpc> | (byte = 1, int = cpu-dependent, struct = sum of all field sizes, etc) |
| 23:34:03 | <monochrom> | Racket has pattern matching, yes. |
| 23:34:11 | <hpc> | python has pattern matching |
| 23:35:11 | × | proboscis quits (~proboscis@115-189-132-172.mobile.spark.co.nz) (Ping timeout: 260 seconds) |
| 23:35:14 | → | Domino[m] joins (~dominothe@2001:470:69fc:105::1:271b) |
| 23:35:40 | → | proboscis joins (~proboscis@115-189-83-58.mobile.spark.co.nz) |
| 23:35:58 | <monochrom> | But histo-socially, users of dynamic typing don't want haskell syntax in the first place. |
| 23:37:21 | <hololeap> | I don't understand what function composition would look like in a dynamically typed language |
| 23:37:22 | <geekosaur> | I should have specified Haskell's pattern matching, which I consider part of its syntax |
| 23:37:32 | × | wrengr quits (~wrengr@150.12.83.34.bc.googleusercontent.com) (Quit: leaving) |
| 23:37:41 | <hololeap> | just passing strings around? |
| 23:37:55 | → | wrengr joins (~wrengr@150.12.83.34.bc.googleusercontent.com) |
| 23:38:05 | <monochrom> | But I brought up Racket pattern matching because it's a superset of Haskell pattern matching. |
| 23:38:57 | <hololeap> | hm, nvm that was dumb of me |
| 23:39:18 | <hololeap> | I've used ruby before :p |
| 23:39:31 | <monochrom> | And function composition in Racket looks like (compose f g) |
| 23:39:50 | → | shailangsa joins (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) |
| 23:39:55 | × | ubert quits (~Thunderbi@178.115.53.120.wireless.dyn.drei.com) (Remote host closed the connection) |
| 23:40:57 | <hololeap> | energizer: when you say "dynamic languages", do you mean so-called "interpreted languages"? |
| 23:41:29 | <hololeap> | https://en.wikipedia.org/wiki/List_of_programming_languages_by_type |
| 23:41:47 | <hololeap> | there's no "dynamic language" section here, so it's hard to pin down a definition |
| 23:43:18 | <energizer> | let's say language with runtime types |
| 23:43:57 | <monochrom> | OK, so dynamic typing. |
| 23:44:06 | <energizer> | regardless of whether it also has static types, like python does |
| 23:45:17 | → | fef joins (~thedawn@user/thedawn) |
| 23:45:34 | <monochrom> | Anyone wanna state that Haskell is a dynamic language with Haskell syntax on account that Typeable is runtime type information? >:) |
| 23:47:06 | <hololeap> | or because of typeclasses/polymorphic literals |
| 23:47:39 | <monochrom> | But type classes are completely resolved at link time. |
| 23:48:23 | × | MQ-17J quits (~MQ-17J@8.6.144.203) (Ping timeout: 264 seconds) |
| 23:48:42 | → | MQ-17J joins (~MQ-17J@8.6.144.203) |
| 23:48:50 | × | cads quits (~cads@ip-64-72-99-234.lasvegas.net) (Quit: Leaving) |
| 23:48:56 | <monochrom> | Err that contradicts what I said about Typeable haha. |
| 23:57:07 | × | acidjnk_new quits (~acidjnk@p200300d0c7238d89cc95ba723fa3afc9.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
All times are in UTC on 2021-10-29.