2021-08-24 00:00:18 +0200 | <dminuoso> | Or "I can't believe that your prof's course material didn't start off with type families" |
2021-08-24 00:00:26 +0200 | <dminuoso> | That's where your job is headed. |
2021-08-24 00:00:46 +0200 | <dminuoso> | Soon we will abolish code generation in GHC. |
2021-08-24 00:01:29 +0200 | <batch12> | dminuoso: This does the job: |
2021-08-24 00:01:29 +0200 | <batch12> | type family IsShow (a :: [*]) :: Constraint where |
2021-08-24 00:01:29 +0200 | <batch12> | IsShow '[] = () |
2021-08-24 00:01:29 +0200 | <batch12> | IsShow (h:t) = (Show h, IsShow t) |
2021-08-24 00:01:59 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
2021-08-24 00:02:28 +0200 | <dminuoso> | % type family IsShow (a :: [*]) :: Constraint where IsShow '[] = (); IsShow (h:t) = (Show h, IsShow t) |
2021-08-24 00:02:28 +0200 | <yahb> | dminuoso: |
2021-08-24 00:03:01 +0200 | <dminuoso> | And how do you intend to use this? |
2021-08-24 00:04:58 +0200 | <batch12> | I'm maintaining a stack of operations that are attached to some values |
2021-08-24 00:05:43 +0200 | <batch12> | (the actual class is not show..) |
2021-08-24 00:05:57 +0200 | <batch12> | Thanks for the help! |
2021-08-24 00:08:18 +0200 | <fresheyeball> | ok I got another quandry |
2021-08-24 00:08:25 +0200 | <fresheyeball> | postgresql simple |
2021-08-24 00:08:35 +0200 | <fresheyeball> | Incompatible {errSQLType = "record", errSQLTableOid = Nothing, errSQLField = "row", errHaskellType = "Text", errMessage = "types incompatible"} |
2021-08-24 00:08:44 +0200 | <fresheyeball> | The column has type text |
2021-08-24 00:08:49 +0200 | <fresheyeball> | and the haskell type is Text |
2021-08-24 00:08:53 +0200 | <fresheyeball> | I am at a loss |
2021-08-24 00:09:25 +0200 | <dminuoso> | fresheyeball: can you show the code? |
2021-08-24 00:09:55 +0200 | <hpc> | can the column be null? |
2021-08-24 00:09:58 +0200 | <fresheyeball> | dminuoso: http://ix.io/3wMj |
2021-08-24 00:10:05 +0200 | <fresheyeball> | no it cannot be null |
2021-08-24 00:10:27 +0200 | <fresheyeball> | http://ix.io/3wMk |
2021-08-24 00:10:31 +0200 | <fresheyeball> | this is the schema |
2021-08-24 00:12:06 +0200 | <dminuoso> | fresheyeball: Is there valid utf8 in there? |
2021-08-24 00:12:16 +0200 | benin036932 | (~benin@183.82.178.142) |
2021-08-24 00:12:41 +0200 | <dminuoso> | I expect not. |
2021-08-24 00:13:34 +0200 | <fresheyeball> | dminuoso: I am not sure, it's being generated by an Arbitrary instance |
2021-08-24 00:14:07 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-24 00:14:19 +0200 | <fresheyeball> | ok I hard coded it to "user" and "pass" and the error persists |
2021-08-24 00:14:23 +0200 | <fresheyeball> | those are both utf8 |
2021-08-24 00:15:27 +0200 | batch12 | (~user@192.152.118.97) (Ping timeout: 240 seconds) |
2021-08-24 00:17:21 +0200 | <dminuoso> | errSQLField = "row" |
2021-08-24 00:17:37 +0200 | <fresheyeball> | ? |
2021-08-24 00:18:12 +0200 | <dminuoso> | I find that curious |
2021-08-24 00:18:19 +0200 | <dminuoso> | It should mention the column name |
2021-08-24 00:18:58 +0200 | <fresheyeball> | It was the parens in the query |
2021-08-24 00:19:19 +0200 | <dminuoso> | fresheyeball: Does this trigger on insert or select? |
2021-08-24 00:19:28 +0200 | <fresheyeball> | select |
2021-08-24 00:19:53 +0200 | <dminuoso> | 00:18:58 fresheyeball | It was the parens in the query |
2021-08-24 00:19:55 +0200 | <dminuoso> | Yeah. |
2021-08-24 00:19:59 +0200 | <dminuoso> | That explains it. |
2021-08-24 00:20:30 +0200 | <dminuoso> | Also why there's no table oid, or SQLType "record" |
2021-08-24 00:20:47 +0200 | <fresheyeball> | well onto the next error |
2021-08-24 00:20:54 +0200 | d0ku | (~d0ku@37.30.113.168.nat.umts.dynamic.t-mobile.pl) |
2021-08-24 00:21:06 +0200 | <fresheyeball> | apparently my createUser query doesn't make a user that is fount by my lookupHashByUsername function |
2021-08-24 00:22:26 +0200 | <dminuoso> | fresheyeball: the order of columns is swapped around in the insert. |
2021-08-24 00:22:33 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-24 00:22:35 +0200 | <fresheyeball> | so |
2021-08-24 00:22:39 +0200 | <dminuoso> | or not? |
2021-08-24 00:22:52 +0200 | <fresheyeball> | I don't understand why it matters the order |
2021-08-24 00:22:55 +0200 | <fresheyeball> | they are named |
2021-08-24 00:23:20 +0200 | <dminuoso> | fresheyeball: what does the ToField instance for User look like? |
2021-08-24 00:23:31 +0200 | <fresheyeball> | it's derived from a newtype of Text |
2021-08-24 00:24:13 +0200 | <dminuoso> | Anyway. Enable debugging in your postgresql server |
2021-08-24 00:24:20 +0200 | <dminuoso> | That way you can see what queries your database is actually getting |
2021-08-24 00:24:25 +0200 | <dminuoso> | This can be a gods end with postgresql-simple |
2021-08-24 00:26:27 +0200 | <fresheyeball> | well I looked in the db |
2021-08-24 00:26:33 +0200 | <fresheyeball> | and there is in fact a user there |
2021-08-24 00:26:35 +0200 | <fresheyeball> | oh shit |
2021-08-24 00:26:37 +0200 | <fresheyeball> | I see |
2021-08-24 00:26:51 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 250 seconds) |
2021-08-24 00:27:23 +0200 | <aegon> | fresheyeball: does the flow your trying to emulate in haskell work in raw sql? |
2021-08-24 00:27:31 +0200 | <fresheyeball> | user_name needs UNIQUE |
2021-08-24 00:27:57 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-24 00:28:31 +0200 | <fresheyeball> | ok tests run now atleast |
2021-08-24 00:28:53 +0200 | <dminuoso> | fresheyeball: Btw, you might want to use cryptonite rather if security is important to you. :) |
2021-08-24 00:29:06 +0200 | <dminuoso> | Argh |
2021-08-24 00:29:09 +0200 | <dminuoso> | I meant libsodium, |
2021-08-24 00:29:11 +0200 | <fresheyeball> | what is wrong with Data.Password.Argon2 |
2021-08-24 00:29:13 +0200 | <fresheyeball> | ? |
2021-08-24 00:29:15 +0200 | <dminuoso> | Im really tired and need to go to bed. |
2021-08-24 00:29:19 +0200 | <dminuoso> | No I meant libsodium |
2021-08-24 00:29:35 +0200 | <dminuoso> | fresheyeball: libsodium is written by crypto experts with a keen focus on avoiding side channels |
2021-08-24 00:29:35 +0200 | <fresheyeball> | well apparently Data.Password cannot handle all strings |
2021-08-24 00:29:38 +0200 | <dminuoso> | all these haskell libraries are not. |
2021-08-24 00:29:47 +0200 | d0ku | (~d0ku@37.30.113.168.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-08-24 00:30:40 +0200 | <dminuoso> | There's not even published papers on side channels in haskell semantics, the code that GHC produces, the way its optimized works, how this affects cache lines, CPU instructions, and everything |
2021-08-24 00:31:44 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-24 00:32:22 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-08-24 00:32:24 +0200 | <fresheyeball> | ok |
2021-08-24 00:32:28 +0200 | <fresheyeball> | this is good enough for now |
2021-08-24 00:32:31 +0200 | <fresheyeball> | I will look into it |
2021-08-24 00:32:49 +0200 | <fresheyeball> | either way, it's actually the user check that is failing now |
2021-08-24 00:32:58 +0200 | <fresheyeball> | "L\NUL'\"?Dk" |
2021-08-24 00:32:59 +0200 | <fresheyeball> | expected: "L\NUL'\"?Dk" |
2021-08-24 00:33:01 +0200 | <fresheyeball> | but got: "L" |
2021-08-24 00:33:22 +0200 | <fresheyeball> | utf8 problem? |
2021-08-24 00:34:19 +0200 | <dminuoso> | Postgresql does not permit NUL bytes in text |
2021-08-24 00:34:41 +0200 | <dminuoso> | It's surprising this gets truncated silently |
2021-08-24 00:35:54 +0200 | <fresheyeball> | ok well I seriously doubt that users are going manage to get a NUL byte into a webform |
2021-08-24 00:37:05 +0200 | <dminuoso> | And this is how bugs and security issues are born |
2021-08-24 00:37:34 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
2021-08-24 00:37:43 +0200 | <dminuoso> | I seriously doubt someone is named "; DROP ALL TABLES" |
2021-08-24 00:38:03 +0200 | <hseg> | (except for bobby tables) |
2021-08-24 00:38:52 +0200 | <dminuoso> | fresheyeball: Ignoring these types of bugs can have surprising results |
2021-08-24 00:39:00 +0200 | <dminuoso> | Consider the case where a user might call themselves |
2021-08-24 00:39:04 +0200 | <dminuoso> | a\BELdmin |
2021-08-24 00:39:31 +0200 | <dminuoso> | And suddenly this becomes `admin` after roundtripping say through the database, or some rendering engine |
2021-08-24 00:40:07 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 240 seconds) |
2021-08-24 00:41:03 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-24 00:43:03 +0200 | <fresheyeball> | dminuoso: ouch |
2021-08-24 00:43:12 +0200 | ham | (~ham4@user/ham) (Quit: Leaving) |
2021-08-24 00:43:29 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-08-24 00:50:07 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-08-24 00:52:15 +0200 | cjb | (~cjb@user/cjb) |
2021-08-24 00:53:42 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 00:53:56 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 00:54:00 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-24 00:57:13 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-134.prtc.net) (Quit: Client closed) |
2021-08-24 00:59:31 +0200 | elf_fortrezz | (~elf_fortr@adsl-72-50-6-134.prtc.net) |
2021-08-24 01:00:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 01:01:31 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-24 01:01:38 +0200 | forell | (~forell@user/forell) (Ping timeout: 268 seconds) |
2021-08-24 01:01:50 +0200 | elf_fortrezz | (~elf_fortr@adsl-72-50-6-134.prtc.net) (Client Quit) |
2021-08-24 01:02:12 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-134.prtc.net) |
2021-08-24 01:03:42 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2021-08-24 01:04:30 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-24 01:06:58 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 01:07:48 +0200 | dsrt^ | (~dsrt@12.16.129.111) (Remote host closed the connection) |
2021-08-24 01:08:30 +0200 | dsrt^ | (~dsrt@12.16.129.111) |
2021-08-24 01:11:07 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-24 01:11:43 +0200 | chisui | (~chisui@200116b868b05800c65627e740591fd3.dip.versatel-1u1.de) (Ping timeout: 246 seconds) |
2021-08-24 01:12:06 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-134.prtc.net) (Quit: Client closed) |
2021-08-24 01:16:04 +0200 | forell | (~forell@user/forell) |
2021-08-24 01:17:39 +0200 | teo | (~teo@137.220.120.222) |
2021-08-24 01:17:52 +0200 | hseg | (~gesh@IGLD-84-228-238-79.inter.net.il) (Ping timeout: 250 seconds) |
2021-08-24 01:18:20 +0200 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds)) |
2021-08-24 01:19:37 +0200 | teo | (~teo@137.220.120.222) (Remote host closed the connection) |
2021-08-24 01:21:04 +0200 | dajoer | (~david@user/gvx) |
2021-08-24 01:23:14 +0200 | venue | (~venue@user/venue) |
2021-08-24 01:27:27 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2021-08-24 01:34:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-24 01:34:40 +0200 | <Cajun> | yeah anything that has to do with user entry should be essentially babied from your code. sanitize it in every possible way |
2021-08-24 01:35:10 +0200 | <Cajun> | as much as script injection/ACE is fun to mess with, its not fun when someone messes with it on your platform :P |
2021-08-24 01:35:52 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-08-24 01:36:30 +0200 | Gurkenglas | (~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
2021-08-24 01:36:46 +0200 | ft | (~ft@shell.chaostreff-dortmund.de) (Ping timeout: 268 seconds) |
2021-08-24 01:41:24 +0200 | d0ku | (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) |
2021-08-24 01:45:26 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-08-24 01:45:44 +0200 | ft | (~ft@shell.chaostreff-dortmund.de) |
2021-08-24 01:54:50 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-08-24 01:55:44 +0200 | batch12 | (~user@192.152.118.97) |
2021-08-24 02:24:43 +0200 | d0ku | (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 250 seconds) |
2021-08-24 02:27:38 +0200 | juhp | (~juhp@128.106.188.220) (Quit: juhp) |
2021-08-24 02:27:53 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-24 02:31:17 +0200 | xlei | (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Quit: ZNC - https://znc.in) |
2021-08-24 02:32:05 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
2021-08-24 02:35:17 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-08-24 02:35:40 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
2021-08-24 02:36:30 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-08-24 02:36:40 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 240 seconds) |
2021-08-24 02:37:20 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 258 seconds) |
2021-08-24 02:39:06 +0200 | xlei | (znc@pool-68-129-84-118.nycmny.fios.verizon.net) |
2021-08-24 02:40:01 +0200 | shailangsa | (~shailangs@host86-186-136-25.range86-186.btcentralplus.com) (Ping timeout: 248 seconds) |
2021-08-24 02:40:03 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 02:41:24 +0200 | aegon | (~mike@174.127.249.180) (Quit: leaving) |
2021-08-24 02:42:21 +0200 | jespada | (~jespada@90.254.245.194) |
2021-08-24 02:48:11 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-08-24 02:53:40 +0200 | urdh | (~urdh@user/urdh) (Ping timeout: 240 seconds) |
2021-08-24 02:57:46 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-08-24 03:00:52 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
2021-08-24 03:01:21 +0200 | cjb | (~cjb@user/cjb) |
2021-08-24 03:04:18 +0200 | urdh | (~urdh@user/urdh) |
2021-08-24 03:12:17 +0200 | Nosrep | (~archbox@user/nosrep) |
2021-08-24 03:12:56 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2021-08-24 03:16:34 +0200 | shailangsa | (~shailangs@host86-185-102-120.range86-185.btcentralplus.com) |
2021-08-24 03:20:50 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
2021-08-24 03:22:33 +0200 | alx741 | (~alx741@181.196.68.94) (Quit: alx741) |
2021-08-24 03:23:14 +0200 | Guest86 | (~Guest86@68.233.176.29) (Quit: Client closed) |
2021-08-24 03:29:44 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) |
2021-08-24 03:30:45 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-24 03:31:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 03:37:31 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 03:42:43 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:b601:7649:8935:742b) (Ping timeout: 250 seconds) |
2021-08-24 03:44:22 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-24 03:44:40 +0200 | xff0x | (~xff0x@2001:1a81:5333:b100:e90f:35ab:1ea2:78fd) |
2021-08-24 03:45:17 +0200 | dsrt^ | (~dsrt@12.16.129.111) (Remote host closed the connection) |
2021-08-24 03:46:34 +0200 | dsrt^ | (~dsrt@12.16.129.111) |
2021-08-24 03:47:29 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds) |
2021-08-24 03:48:00 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
2021-08-24 03:54:41 +0200 | dsrt^ | (~dsrt@12.16.129.111) (Remote host closed the connection) |
2021-08-24 03:56:28 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-24 03:56:33 +0200 | notzmv | (~zmv@user/notzmv) (Read error: Connection reset by peer) |
2021-08-24 03:59:51 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-24 04:00:38 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
2021-08-24 04:01:10 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 240 seconds) |
2021-08-24 04:01:13 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Read error: Connection reset by peer) |
2021-08-24 04:01:26 +0200 | dsrt^ | (~dsrt@12.16.129.111) |
2021-08-24 04:01:51 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-08-24 04:03:48 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) |
2021-08-24 04:05:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-24 04:06:26 +0200 | dsrt^ | (~dsrt@12.16.129.111) (Ping timeout: 250 seconds) |
2021-08-24 04:08:57 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-24 04:13:30 +0200 | dsrt^ | (~dsrt@12.16.129.111) |
2021-08-24 04:15:58 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 250 seconds) |
2021-08-24 04:19:18 +0200 | notzmv | zimmybot |
2021-08-24 04:19:25 +0200 | zimmybot | notzmv |
2021-08-24 04:19:27 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 240 seconds) |
2021-08-24 04:20:46 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-24 04:21:10 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
2021-08-24 04:22:59 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-08-24 04:27:28 +0200 | favonia | (~favonia@user/favonia) |
2021-08-24 04:37:40 +0200 | td_ | (~td@94.134.91.226) (Ping timeout: 240 seconds) |
2021-08-24 04:39:50 +0200 | td_ | (~td@94.134.91.225) |
2021-08-24 04:47:54 +0200 | abrantesasf | (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) (Quit: Leaving) |
2021-08-24 04:53:48 +0200 | ikex1 | (ash@user/ikex) |
2021-08-24 04:57:08 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 250 seconds) |
2021-08-24 04:57:09 +0200 | ikex1 | ikex |
2021-08-24 05:00:10 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 250 seconds) |
2021-08-24 05:17:27 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-08-24 05:18:44 +0200 | thornAvery | (~thorn@137.147.64.16) (Quit: WeeChat 3.2) |
2021-08-24 05:21:40 +0200 | otto_s | (~user@p4ff270c5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-08-24 05:22:03 +0200 | notzmv | (~zmv@user/notzmv) (Remote host closed the connection) |
2021-08-24 05:23:16 +0200 | otto_s | (~user@p5de2f618.dip0.t-ipconnect.de) |
2021-08-24 05:28:09 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-24 05:28:53 +0200 | keutoi | (~keutoi@157.48.145.7) |
2021-08-24 05:35:07 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
2021-08-24 05:39:00 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-7-12.prtc.net) |
2021-08-24 05:49:49 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-24 06:00:33 +0200 | keutoi | (~keutoi@157.48.145.7) (Ping timeout: 248 seconds) |
2021-08-24 06:00:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 06:07:53 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-08-24 06:11:17 +0200 | Guest2290 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-24 06:15:06 +0200 | bbear | (~znc@21212.s.t4vps.eu) (Quit: ZNC 1.7.4 - https://znc.in) |
2021-08-24 06:15:20 +0200 | bbear | (~znc@21212.s.t4vps.eu) |
2021-08-24 06:16:28 +0200 | chris | (~chris@81.96.113.213) |
2021-08-24 06:16:32 +0200 | chris | Guest8132 |
2021-08-24 06:19:33 +0200 | sjb0 | (~stephen@2001:8004:5170:3b13:8c1d:1f1c:70aa:a42e) |
2021-08-24 06:20:30 +0200 | mei | (~mei@user/mei) |
2021-08-24 06:20:46 +0200 | Guest8132 | (~chris@81.96.113.213) (Ping timeout: 250 seconds) |
2021-08-24 06:21:47 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-08-24 06:23:05 +0200 | keutoi | (~keutoi@157.47.104.135) |
2021-08-24 06:23:57 +0200 | thornAvery | (~Thorn@2401:c080:1800:4346:5400:3ff:fe2c:c8f8) |
2021-08-24 06:24:35 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 06:24:49 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 06:32:04 +0200 | aman | (~aman@user/aman) (Ping timeout: 252 seconds) |
2021-08-24 06:35:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 06:44:04 +0200 | aman | (~aman@user/aman) |
2021-08-24 06:48:25 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-08-24 06:49:48 +0200 | vysn | (~vysn@user/vysn) |
2021-08-24 06:55:14 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds) |
2021-08-24 06:55:30 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2021-08-24 07:01:27 +0200 | falafel | (~falafel@2601:280:4e00:9970:69e8:224d:d22f:fb15) |
2021-08-24 07:04:38 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-7-12.prtc.net) (Quit: Client closed) |
2021-08-24 07:05:05 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 250 seconds) |
2021-08-24 07:05:24 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-08-24 07:07:38 +0200 | falafel_ | (~falafel@2601:280:4e00:9970:69e8:224d:d22f:fb15) |
2021-08-24 07:09:47 +0200 | batch12 | (~user@192.152.118.97) (Ping timeout: 240 seconds) |
2021-08-24 07:10:01 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-24 07:10:43 +0200 | falafel | (~falafel@2601:280:4e00:9970:69e8:224d:d22f:fb15) (Ping timeout: 250 seconds) |
2021-08-24 07:20:34 +0200 | slack1256 | (~slack1256@181.203.9.71) |
2021-08-24 07:22:51 +0200 | slack1256[m] | (~slack1256@2001:470:69fc:105::e068) |
2021-08-24 07:23:04 +0200 | slack1256[m] | (~slack1256@2001:470:69fc:105::e068) () |
2021-08-24 07:34:59 +0200 | benin036932 | (~benin@183.82.178.142) (Ping timeout: 250 seconds) |
2021-08-24 07:39:19 +0200 | slack1256 | (~slack1256@181.203.9.71) (Ping timeout: 250 seconds) |
2021-08-24 07:44:51 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-08-24 07:45:03 +0200 | <talismanick> | Does GHC play nice with distcc? |
2021-08-24 07:45:37 +0200 | <talismanick> | (I have several mediocre laptops on hand, and no beefy server to handle long compiles) |
2021-08-24 07:45:51 +0200 | <Axman6> | Since it manages it own scheduling I would be surprised if it did, you would have to work to set that up I would believe |
2021-08-24 07:46:36 +0200 | <talismanick> | Or ccache, for that matter |
2021-08-24 07:52:04 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-08-24 07:52:46 +0200 | chris | (~chris@81.96.113.213) |
2021-08-24 07:52:49 +0200 | chris | Guest3531 |
2021-08-24 07:55:39 +0200 | vysn | (~vysn@user/vysn) |
2021-08-24 07:57:25 +0200 | ubert | (~Thunderbi@91.141.36.16.wireless.dyn.drei.com) |
2021-08-24 08:14:15 +0200 | elf_fortrezz | (~elf_fortr@adsl-72-50-6-135.prtc.net) |
2021-08-24 08:14:23 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Read error: Connection reset by peer) |
2021-08-24 08:18:06 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-08-24 08:18:51 +0200 | Gurkenglas | (~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de) |
2021-08-24 08:22:36 +0200 | elf_fortrezz | (~elf_fortr@adsl-72-50-6-135.prtc.net) (Quit: Client closed) |
2021-08-24 08:25:25 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-24 08:30:57 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds) |
2021-08-24 08:31:38 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 08:31:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 08:33:26 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-24 08:33:39 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-24 08:34:56 +0200 | lortabac | (~lortabac@62.98.34.238) |
2021-08-24 08:44:19 +0200 | falafel_ | (~falafel@2601:280:4e00:9970:69e8:224d:d22f:fb15) (Ping timeout: 250 seconds) |
2021-08-24 08:52:24 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-08-24 08:56:11 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-08-24 08:56:32 +0200 | <arahael> | My yesod webserver suddenly runs out of file handles after I run it for a few days. Any tips or suggestions I should be aware of to help identify the culprit? |
2021-08-24 08:56:46 +0200 | <arahael> | I'm not deliberately opening or closing files, except for a single .tar.gz file at the very start. |
2021-08-24 08:57:17 +0200 | timCF | (~timCF@m91-129-108-244.cust.tele2.ee) |
2021-08-24 08:57:21 +0200 | <Rembane_> | File handles are also used for sockets. Sockets are connections to the HTTP clients. Maybe something isn't closing them as they should. |
2021-08-24 08:57:56 +0200 | <arahael> | Yeah, it's got to be sockets. |
2021-08-24 08:58:28 +0200 | <Rembane_> | Is the application doing Websockets or long polling or something other exciting like that? |
2021-08-24 08:58:44 +0200 | <arahael> | Nope. |
2021-08-24 08:59:03 +0200 | <timCF> | Hello! Does anybody have idea why lens functions compose "backwards" if compare with standard field accessor functions in Haskell? Is it intentional thing and what's the reasoning behind this reversed style of composition? |
2021-08-24 08:59:12 +0200 | <arahael> | It's basically a google protocol buffers web api, but a naive one at that. |
2021-08-24 08:59:17 +0200 | <dminuoso> | timCF: It's a natural consequence from the construction. |
2021-08-24 08:59:18 +0200 | <arahael> | (Instead of JSON) |
2021-08-24 08:59:23 +0200 | <dminuoso> | timCF: To see why, consider the following: |
2021-08-24 08:59:43 +0200 | <dminuoso> | timCF: `traverse (traverse f) [[1,2,3], [2,3,4]]]` |
2021-08-24 08:59:55 +0200 | <dminuoso> | Which traverse touches the "inner" numbers", and which traverse works on the lists? |
2021-08-24 09:00:36 +0200 | <arahael> | Rembane_: I'm just wondering if there's any way of, eg, remotely loading it in some sort of real-time debugger or log viewer where I can see a report of open files. |
2021-08-24 09:00:47 +0200 | <timCF> | dminuoso: 2nd works on numbers I ghuess |
2021-08-24 09:01:03 +0200 | <arahael> | Rembane_: Such that I could test for any leaks when I do a curl or something. |
2021-08-24 09:01:03 +0200 | <dminuoso> | timCF: Can you try and assert this for yourself? |
2021-08-24 09:01:14 +0200 | <dminuoso> | timCF: Want to ensure that you yourself are sure of this fact. |
2021-08-24 09:01:15 +0200 | <Rembane_> | arahael: If you're running Linux you can get that by the command lsof -i |
2021-08-24 09:02:24 +0200 | <Rembane_> | arahael: lsof -ai -p PIDOFTHEPROCESS |
2021-08-24 09:02:32 +0200 | d0ku | (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) |
2021-08-24 09:02:40 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-08-24 09:03:29 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-24 09:04:14 +0200 | <arahael> | Rembane_: That just gives: familyser 585947 arahael 3u IPv4 184973807 0t0 TCP *:hbci (LISTEN) |
2021-08-24 09:04:25 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Ping timeout: 252 seconds) |
2021-08-24 09:05:05 +0200 | <timCF> | dminuoso: yeah, I did tried it here https://replit.com/languages/haskell like this `traverse (traverse print) [[1,2,3], [2,3,4]]` and got column of numbers |
2021-08-24 09:05:26 +0200 | <Rembane_> | arahael: I wonder if your server process starts a sub process to hold the connections, does it seem to do that or is it just one process? |
2021-08-24 09:05:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 09:06:56 +0200 | <arahael> | Rembane_: I don't think so. I mean, there's the cabal process itself, but that then just starts the actual server. |
2021-08-24 09:07:39 +0200 | tomsmeding | . o O ( pstree PIDOFPROCESS ) |
2021-08-24 09:09:14 +0200 | <dminuoso> | timCF: Alright. Now consider: |
2021-08-24 09:09:25 +0200 | <dminuoso> | (traverse . traverse) f [[1,2,3], [2,3,4]] |
2021-08-24 09:09:29 +0200 | <dminuoso> | Do you agree that this is the same thing? |
2021-08-24 09:09:51 +0200 | <arahael> | tomsmeding: That seems to identify that I have the right PID, at least. |
2021-08-24 09:09:54 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-08-24 09:10:02 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-08-24 09:10:13 +0200 | <tomsmeding> | arahael: and, apparently, shows that there are no subprocesses you didn't know about :) |
2021-08-24 09:11:38 +0200 | <arahael> | tomsmeding: Indeed, it doesn't! Actually I just restarted my client application, and then that lsof command showed a billion lines. (No, not a billion, a great many), but now a few seconds later when I ran it again, there's just that line I showed already. |
2021-08-24 09:11:52 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2021-08-24 09:12:08 +0200 | <arahael> | So I for a very short time had many, many lines that looked like this: |
2021-08-24 09:12:10 +0200 | <arahael> | familyser 585947 arahael 53u IPv4 185217813 0t0 TCP pihole:hbci->192.168.1.105:52946 (ESTABLISHED) |
2021-08-24 09:12:29 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 250 seconds) |
2021-08-24 09:12:34 +0200 | <arahael> | (The local server also happens to run pihole, hence that appearing there) |
2021-08-24 09:13:25 +0200 | <timCF> | dminuoso: yeah, result seems the same |
2021-08-24 09:13:37 +0200 | <arahael> | Just counted them with wc -l: It outputs 52 lines. |
2021-08-24 09:13:52 +0200 | <tomsmeding> | that's not too many |
2021-08-24 09:13:54 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 09:14:13 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 250 seconds) |
2021-08-24 09:14:30 +0200 | <tomsmeding> | try adding -n to the lsof command, less weird port names |
2021-08-24 09:14:41 +0200 | <timCF> | dminuoso: but I think this time first in the line "traverse" is responsible for applying `f` to numbers |
2021-08-24 09:15:43 +0200 | <tomsmeding> | timCF: (traverse1 . traverse2) f x = (\y -> traverse1 (traverse2 y)) f x = traverse1 (traverse2 f) x |
2021-08-24 09:15:53 +0200 | <arahael> | tomsmeding: Good tip. Still, this doesn't seem to be indicating any problems - zero lines where there are indeed zero connections - and presumeably, one line for each connection. |
2021-08-24 09:16:22 +0200 | <arahael> | Yet, in a few days, at some random point (haven't seen a pattern), it'll just suddenly die. |
2021-08-24 09:16:24 +0200 | <tomsmeding> | arahael: kind of sounds like in normal operation there aren't too many FDs open, but when the problem arises, it suddenly spikes or something |
2021-08-24 09:16:35 +0200 | <arahael> | tomsmeding: Could be, yes. |
2021-08-24 09:18:39 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) |
2021-08-24 09:18:54 +0200 | <arahael> | Going to spam the localhost with a while true; connect loop. |
2021-08-24 09:19:15 +0200 | <tomsmeding> | arahael: what I would do is set up a process that just does 'while true; do echo "$(date) $(lsof -ni PIDOFPROCESS | wc -l)"; sleep 120; done >>log.txt' |
2021-08-24 09:19:37 +0200 | <tomsmeding> | and you'll find whether it's a gradual rise or something more sudden :) |
2021-08-24 09:20:39 +0200 | <arahael> | Hmm, odd. I couldn't kill the server that way, using `while true; curl...&; done`, ended up having lines like: curl: c(u7r)l :C o(u7l)d nC'otu lcdonn'nte ccto ntnoe cste rtvoe rs |
2021-08-24 09:20:58 +0200 | <tomsmeding> | :D |
2021-08-24 09:20:59 +0200 | <timCF> | tomsmeding: hmm, you are right. In my mind I've always pronounced `.` not as "compose" but as "after" when I'm writing or reading some code. Because "after" is much easier to imagine than "compose". But seems like in some cases this is misleading. |
2021-08-24 09:21:01 +0200 | <arahael> | Which means after a while I was getting "Couldn't connect to server". |
2021-08-24 09:21:06 +0200 | <Rembane_> | arahael: I like the level of chaos in that. :D |
2021-08-24 09:21:10 +0200 | <Axman6> | concurr is hard cy |
2021-08-24 09:21:11 +0200 | <arahael> | Rembane_: :D |
2021-08-24 09:21:15 +0200 | <tomsmeding> | timCF: "after" is definitely correct |
2021-08-24 09:21:25 +0200 | <dminuoso> | timCF: Now, the next bit is this: |
2021-08-24 09:21:31 +0200 | <dminuoso> | `traverse` *is* a valid traversal |
2021-08-24 09:21:33 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-24 09:21:37 +0200 | <tomsmeding> | it's applying traverse1 after traverse2 to f |
2021-08-24 09:21:41 +0200 | <dminuoso> | It's the traversal that targets *each* element in a given structure. |
2021-08-24 09:21:54 +0200 | <timCF> | Yeah |
2021-08-24 09:22:00 +0200 | <dminuoso> | And `traverse . traverse` is a composed traversal. |
2021-08-24 09:22:06 +0200 | <dminuoso> | We can even use this with lens: |
2021-08-24 09:22:16 +0200 | <dminuoso> | % toListOf (traverse . traverse) [[1,2,3,], [2,3,4]] |
2021-08-24 09:22:17 +0200 | <yahb> | dminuoso: ; <interactive>:11:40: error: parse error on input `]' |
2021-08-24 09:22:23 +0200 | <dminuoso> | % toListOf (traverse . traverse) [[1,2,3], [2,3,4]] |
2021-08-24 09:22:23 +0200 | <yahb> | dminuoso: [1,2,3,2,3,4] |
2021-08-24 09:22:24 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-24 09:23:04 +0200 | <dminuoso> | c.f.: |
2021-08-24 09:23:08 +0200 | <dminuoso> | % :i Traversal |
2021-08-24 09:23:09 +0200 | <yahb> | dminuoso: type role ReifiedTraversal representational nominal representational nominal; type ReifiedTraversal :: * -> * -> * -> * -> *; newtype ReifiedTraversal s t a b = Traversal {...}; -- Defined in `Control.Lens.Reified'; type Traversal :: * -> * -> * -> * -> *; type Traversal s t a b = forall (f :: * -> *). Applicative f => (a -> f b) -> s -> f t; -- Defined in `Control.Lens.Type' |
2021-08-24 09:23:30 +0200 | <dminuoso> | type Traversal s t a b = forall (f :: * -> *). Applicative f => (a -> f b) -> s -> f t; |
2021-08-24 09:23:33 +0200 | <dminuoso> | % :t traverse |
2021-08-24 09:23:33 +0200 | <yahb> | dminuoso: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2021-08-24 09:23:45 +0200 | <arahael> | tomsmeding: It seems that wc -l will usually report in just '2'. I guess I have to watch it, and take note of the actual error message to cut&paste, I only remember that it was running out of files somehow, and that it suggested I run it in a threaded configuration instead to work around it. |
2021-08-24 09:23:49 +0200 | <dminuoso> | timCF: A lens is something similar to this, except the constraint is Functor, not Applicative. |
2021-08-24 09:24:04 +0200 | <dminuoso> | timCF: If you care, I can give you a set of simple examples to explore this further |
2021-08-24 09:24:12 +0200 | <dminuoso> | Well. Tasks really |
2021-08-24 09:24:18 +0200 | <arahael> | Ooh, I've got it to slowly accumulate more and more connections. Nice. (Found a slow API, which I'm polling as fast as I can) |
2021-08-24 09:24:24 +0200 | <tomsmeding> | arahael: yeah my intent with that while-loop was to let that running for a few days until it crashes |
2021-08-24 09:26:10 +0200 | <arahael> | tomsmeding: I think I'll get it to crash in a few moments. Possibly minutes. :) I've realised that my testing with the client where there's only 52 connections was problematic because I've implemented etags, so now it's too fast if it's already cached. |
2021-08-24 09:26:21 +0200 | <arahael> | It's up to 550 files now. |
2021-08-24 09:26:32 +0200 | <arahael> | Or at least, 550-2 files. |
2021-08-24 09:26:33 +0200 | <tomsmeding> | "yay"? |
2021-08-24 09:27:11 +0200 | <arahael> | Yeah. |
2021-08-24 09:27:18 +0200 | <arahael> | Stupid optimisations. ;) |
2021-08-24 09:27:50 +0200 | <arahael> | I can tell that the server is clearly single-threaded, processing connections very very sequentially. |
2021-08-24 09:28:10 +0200 | <timCF> | dminuoso: Thanks! Seems like explanation why lens compose "backwards" is more complex than I can handle right now) Probably I need to read some FPComplete tutorials and implement it myself to really understand why it works this way) |
2021-08-24 09:28:12 +0200 | <tomsmeding> | arahael: seems that if the server runs out of FDs, then the client should also be using quite a significant number of connections by then |
2021-08-24 09:28:25 +0200 | <arahael> | That's my thinking, yeah. |
2021-08-24 09:28:26 +0200 | <dminuoso> | 09:14:41 timCF | dminuoso: but I think this time first in the line "traverse" is responsible for applying `f` to numbers |
2021-08-24 09:28:35 +0200 | <dminuoso> | timCF: If you understood this, you already understood why lenses compose "backwards" |
2021-08-24 09:28:43 +0200 | <dminuoso> | Nothing further to be understood. |
2021-08-24 09:28:45 +0200 | <timCF> | dminuoso: :) |
2021-08-24 09:29:03 +0200 | <arahael> | tomsmeding: Just passed a thousand connections! |
2021-08-24 09:29:12 +0200 | <dminuoso> | It's just that `traverse` is characterstic of the thing that lets you "operate on each thing". So `traverse` itself is a first class optic, a Traversal. |
2021-08-24 09:29:30 +0200 | <dminuoso> | If you monomorphize this into |
2021-08-24 09:29:31 +0200 | <arahael> | Aaand error message! |
2021-08-24 09:29:34 +0200 | <arahael> | 24/Aug/2021:17:28:58 +1000 [Error#yesod-core] Exception from Warp: Network.Socket.accept: resource exhausted (Too many open files) @(yesod-core-1.6.21.0-aa8cb2d15ab3f57565dd6843d5c747c9da7580c51a33acffed1522ce0cdf2caa:Yesod.Core.Dispatch src/Yesod/Core/Dispatch.hs:205:23) |
2021-08-24 09:29:46 +0200 | <tomsmeding> | yay |
2021-08-24 09:29:51 +0200 | <dminuoso> | traverseList :: Applicative f => (a -> f b) -> [a] -> f [b] |
2021-08-24 09:30:02 +0200 | <dminuoso> | Then thats a "traversal that targets each item in a list" |
2021-08-24 09:30:13 +0200 | <dminuoso> | But we could also write such a thing, that targets each *second* item in a list. |
2021-08-24 09:30:37 +0200 | <Athas> | Is there a function '[a] -> [(a,a)]' that turns '[1,2,3,4]' into '[(1,2),(3,4)]'? |
2021-08-24 09:31:01 +0200 | <dminuoso> | Athas: What are the rules of that function? |
2021-08-24 09:31:06 +0200 | <tomsmeding> | dminuoso's and Athas's last messages seem strangely related |
2021-08-24 09:31:17 +0200 | <Athas> | dminuoso: I don't care about the edge cases, if that's what you mean. |
2021-08-24 09:31:25 +0200 | <dminuoso> | Athas: No I really dont know what that function is supposed to do |
2021-08-24 09:31:32 +0200 | <Athas> | Clearly I should add a dependency on topograph to get it! |
2021-08-24 09:31:52 +0200 | <dminuoso> | Athas: I can think of at least a handful of differnet implementations that would produce that result given [1,2,3,4] |
2021-08-24 09:32:02 +0200 | <Athas> | dminuoso: this is its specification: pairs [] = []; pairs (x:y:l) = (x,y) : pairs l |
2021-08-24 09:32:04 +0200 | <dminuoso> | What would the function produce given [1,2,3], or [1...100]? |
2021-08-24 09:32:22 +0200 | <dminuoso> | I see |
2021-08-24 09:32:23 +0200 | <Rembane_> | arahael: Yay! It just struck me, you can lower the number of allowed open files using the command ulimit, this will make testing faster. |
2021-08-24 09:32:35 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2021-08-24 09:33:21 +0200 | <arahael> | Rembane_: Im' actually wondering how to make it multithreaded, as I have several cores. |
2021-08-24 09:33:28 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-24 09:33:38 +0200 | <dminuoso> | Athas: does it have to be tuples, or can it be lists too? |
2021-08-24 09:33:53 +0200 | <Rembane_> | arahael: That will certainly make your troubleshooting more interesting. :) |
2021-08-24 09:34:00 +0200 | <arahael> | Rembane_: Then, my next thing will be to more simplistically configure my client apps not to open so many connections. :) |
2021-08-24 09:34:11 +0200 | <Athas> | dminuoso: Is there space for that kind of wiggle room in type type? |
2021-08-24 09:34:29 +0200 | <dminuoso> | Athas: I can conjure up some `Int -> [a] -> [[a]]` fairly easily? |
2021-08-24 09:34:37 +0200 | <dminuoso> | I know you know this too |
2021-08-24 09:34:43 +0200 | <dminuoso> | So Im thinking we have our wires crossed |
2021-08-24 09:34:46 +0200 | <arahael> | Yesod's website says this: "The Haskell runtime is asynchronous automatically. Instead of dealing with... blah blah blah"... So I'm wondering how, now. :) |
2021-08-24 09:34:52 +0200 | <Athas> | But the type must be '[a] -> [(a,a)]'. |
2021-08-24 09:35:08 +0200 | <dminuoso> | So that's a no on "can it be lists too". |
2021-08-24 09:35:11 +0200 | <Rembane_> | arahael: Or make them close them faster. IIRC the web server that Yesod is built upon opens a green thread for each connection, so if you compile the project using -threaded you should get one executing thread per core. |
2021-08-24 09:35:35 +0200 | <arahael> | Rembane_: Thanks, will look that up... |
2021-08-24 09:35:38 +0200 | <Drew[m]> | tomsmeding: you said a few days ago that you were able to use HLS without issue on ghcup when you compiled it under GHC 9.0.1. I tried it and I get dependency resolution errors for days. How were you building it? |
2021-08-24 09:36:32 +0200 | <dminuoso> | timCF: As a simplification, you can think of every lens/traversal as something sort of like "traverse", and functions like `view/over` just use this "traverse-like" thing by providing it some `f`. |
2021-08-24 09:36:50 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-08-24 09:36:51 +0200 | <arahael> | Rembane_: Ah, so I have to set ghc-options in the cabal file. |
2021-08-24 09:38:01 +0200 | <dminuoso> | Athas: Im not seeing any non-convoluted option to construct `pairs` other than just writing it out like you did. |
2021-08-24 09:38:36 +0200 | <Rembane_> | arahael: Exactly. |
2021-08-24 09:39:03 +0200 | <arahael> | Hmm, odd... Rembane_ If I compile it with -threaded, shouldn't it consume something like 400% CPU if I have closer to four cores and they're all otherwise idle? |
2021-08-24 09:39:14 +0200 | <timCF> | dminuoso: thanks for simple explanations) |
2021-08-24 09:39:37 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 252 seconds) |
2021-08-24 09:40:39 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-24 09:40:50 +0200 | <Rembane_> | arahael: It should, if they have something to do. Are they idle? |
2021-08-24 09:41:38 +0200 | cfricke | (~cfricke@user/cfricke) (Client Quit) |
2021-08-24 09:41:38 +0200 | <arahael> | Rembane_: My load average is only 1.58 |
2021-08-24 09:42:11 +0200 | <arahael> | (And the CPU utilisation for the particular yesod server never goes above 100%, except sometimes 100.3%, which I guess is a rounding error) |
2021-08-24 09:42:52 +0200 | <arahael> | Nothing else is consuming significant CPU now. I've even killed the test script, though the yesod service hasn't noticed yet as it's still chewing through a pile of old connections. |
2021-08-24 09:43:17 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-24 09:44:07 +0200 | <Rembane_> | arahael: Run the program with the -N4 command line argument and see if it gets better. |
2021-08-24 09:44:54 +0200 | <arahael> | Rembane_: As in, `cabal run -N4 familyserver...`? |
2021-08-24 09:45:14 +0200 | <Rembane_> | arahael: I think so, or perhaps use -- -N4 at the end of the command |
2021-08-24 09:45:21 +0200 | <Rembane_> | arahael: More on multicore here: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-concurrent.html |
2021-08-24 09:45:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 09:46:53 +0200 | <arahael> | Ah, interesting, so I probably should use something like `+RTS -N4 -RTS` |
2021-08-24 09:47:25 +0200 | <tomsmeding> | Drew[m]: 'cp cabal.project.ghc901 cabal.project; cabal build' |
2021-08-24 09:47:35 +0200 | <Rembane_> | arahael: YEs! |
2021-08-24 09:47:35 +0200 | <tomsmeding> | (after 'git pull; cabal update') |
2021-08-24 09:47:57 +0200 | <tomsmeding> | Drew[m]: let me guess: you missed the cabal.project.ghc901 :p (I missed it for a while too) |
2021-08-24 09:48:43 +0200 | <tomsmeding> | arahael: cabal run familyserver |
2021-08-24 09:48:47 +0200 | <tomsmeding> | arahael: cabal run familyserver -- +RTS -N4 |
2021-08-24 09:48:48 +0200 | <tomsmeding> | sorry |
2021-08-24 09:49:02 +0200 | <tomsmeding> | oh you got that already :p |
2021-08-24 09:50:15 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-08-24 09:50:18 +0200 | <arahael> | Odd, I had to put that at the very end, not at the start of the arguments, but using `-- +RTS -N4` makes a huge difference, it's now using almost 400% of the CPU. |
2021-08-24 09:50:39 +0200 | <Rembane_> | Ha! Win! :D |
2021-08-24 09:50:59 +0200 | <arahael> | And it's substantially faster now. |
2021-08-24 09:51:50 +0200 | <arahael> | Taking forever to handle a new connection when there's a massive backlog, though. |
2021-08-24 09:52:06 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 09:52:09 +0200 | <Rembane_> | Does the program talk to anything else? Like a database. |
2021-08-24 09:52:13 +0200 | <arahael> | (So I think each of the 4 threads is still themselves inherently sequential) |
2021-08-24 09:52:16 +0200 | <arahael> | Nope. All memory. |
2021-08-24 09:52:29 +0200 | <Rembane_> | They probably are. Think of each connection as its own thread. |
2021-08-24 09:52:49 +0200 | <arahael> | Yeah, they don't seem to be that concurrent. |
2021-08-24 09:52:51 +0200 | timCF | (~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving) |
2021-08-24 09:52:59 +0200 | __monty__ | (~toonn@user/toonn) |
2021-08-24 09:55:21 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-08-24 09:56:41 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-24 09:58:51 +0200 | <merijn> | arahael: oh, wanna bet I know the problem? |
2021-08-24 09:59:05 +0200 | <merijn> | arahael: Run with "+RTS -sstderr" |
2021-08-24 09:59:18 +0200 | <merijn> | And then pastebin the GC log at the end :p |
2021-08-24 09:59:48 +0200 | <arahael> | Yep, I'm happy with this. Also I've noticed that my client program has `config.httpMaximumConnectionsPerHost = 50` which explains why I was getting `wc -l` to report 52. |
2021-08-24 10:00:13 +0200 | <arahael> | merijn: I didn't get a GC log! |
2021-08-24 10:00:37 +0200 | <merijn> | arahael: Does your program terminate or do you SIGINT it? |
2021-08-24 10:00:53 +0200 | <arahael> | merijn: I think it's SIGINT, ie, I kill it by using ^c. |
2021-08-24 10:01:02 +0200 | <arahael> | It otherwise never terminates. |
2021-08-24 10:01:06 +0200 | <merijn> | yeah, it doesn't report a log then :p |
2021-08-24 10:01:07 +0200 | <arahael> | (Unless it runs out of file handles) |
2021-08-24 10:01:26 +0200 | <merijn> | I forgot how to make it print a GC log early, though |
2021-08-24 10:01:39 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-08-24 10:01:40 +0200 | <arahael> | Will do that another day, then. :) It's bound to be interesting. |
2021-08-24 10:03:22 +0200 | <merijn> | arahael: The real question I wanted to know is: Is it spending ages GCing, because then you're getting hurt by "the parallel GC is garbage and shouldn't be enabled" |
2021-08-24 10:03:48 +0200 | <merijn> | You can try using "+RTS -qg" and see if it's faster that way |
2021-08-24 10:03:58 +0200 | <Drew[m]> | tomsmeding: I noticed that but it turns out I didn't know the propper way to select the right project file in a folder with two of them |
2021-08-24 10:03:59 +0200 | <arahael> | merijn: Ah, no, I doubt it, I'm subjectively seeing much more work being done. |
2021-08-24 10:04:16 +0200 | <arahael> | merijn: Ie, my client app seems faster, and the logs from the server are definitely visibily significantly faster. |
2021-08-24 10:04:32 +0200 | <merijn> | arahael: Sure, but maybe they could be *even* faster :p |
2021-08-24 10:05:20 +0200 | <arahael> | Heh. :) |
2021-08-24 10:05:28 +0200 | <jchia[m]> | QuickCheck question: How can I set the random seed for running quickCheck? QCGen seems to be an opaque type and google shows many outdated answers that don't work. I just want quickcheck to run with the same failing input every time so that I can debug. |
2021-08-24 10:06:14 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-08-24 10:08:22 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-08-24 10:11:10 +0200 | <tomsmeding> | Drew[m]: I also don't, hence I just copied it over :p |
2021-08-24 10:15:24 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) |
2021-08-24 10:17:11 +0200 | <tomsmeding> | jchia[m]: apparently this exists in Test.QuickCheck.Random https://github.com/nick8325/quickcheck/blob/master/src/Test/QuickCheck/Random.hs#L71 |
2021-08-24 10:17:38 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-08-24 10:17:39 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-08-24 10:17:42 +0200 | allbery_b | geekosaur |
2021-08-24 10:17:54 +0200 | qbt | (~edun@user/edun) |
2021-08-24 10:17:56 +0200 | <tomsmeding> | don't know why there's no documentation generated (I found it by scouting down https://github.com/UnkindPartition/tasty/blob/efe0ad287032b17bfd78c646db62e833518eeb19/quickcheck/… ) |
2021-08-24 10:19:36 +0200 | <Drew[m]> | tomsmeding: turns out there is a --project-file flag |
2021-08-24 10:20:02 +0200 | <jchia[m]> | The haddock is broken. Maybe that's why I couldn't find the relevant docs. |
2021-08-24 10:20:17 +0200 | <tomsmeding> | jchia[m]: yeah, no idea why |
2021-08-24 10:20:43 +0200 | <jchia[m]> | I often come across packages having partially or totally broken haddock. |
2021-08-24 10:20:45 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-08-24 10:24:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
2021-08-24 10:26:25 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 10:30:40 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-24 10:31:10 +0200 | talismanick | (~user@2601:644:8500:8350::e26b) (Ping timeout: 240 seconds) |
2021-08-24 10:31:43 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 10:34:35 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-08-24 10:46:52 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-08-24 10:48:48 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-24 10:53:46 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) |
2021-08-24 10:56:19 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-08-24 10:57:27 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-24 11:00:36 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-08-24 11:02:07 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 250 seconds) |
2021-08-24 11:03:04 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-24 11:03:27 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-08-24 11:03:48 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 11:04:20 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-7-11.prtc.net) |
2021-08-24 11:05:18 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-24 11:05:36 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-24 11:06:21 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-24 11:06:48 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-7-11.prtc.net) (Client Quit) |
2021-08-24 11:09:02 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-136.prtc.net) |
2021-08-24 11:24:05 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 11:25:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-24 11:26:00 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-24 11:29:51 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 250 seconds) |
2021-08-24 11:30:07 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-24 11:31:35 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-08-24 11:35:49 +0200 | ubert1 | (~Thunderbi@91.141.36.16.wireless.dyn.drei.com) |
2021-08-24 11:37:13 +0200 | ubert | (~Thunderbi@91.141.36.16.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
2021-08-24 11:37:13 +0200 | ubert1 | ubert |
2021-08-24 11:37:33 +0200 | icebreaker | (~icebreake@user/icebreaker) |
2021-08-24 11:40:55 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-24 11:40:57 +0200 | icebreaker | (~icebreake@user/icebreaker) (Client Quit) |
2021-08-24 11:41:14 +0200 | icebreaker | (~icebreake@user/icebreaker) |
2021-08-24 11:41:27 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds) |
2021-08-24 11:41:43 +0200 | shailangsa | (~shailangs@host86-185-102-120.range86-185.btcentralplus.com) (Ping timeout: 252 seconds) |
2021-08-24 11:42:16 +0200 | Moyst | (~moyst@user/moyst) (Ping timeout: 252 seconds) |
2021-08-24 11:43:43 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-24 11:44:03 +0200 | Moyst | (~moyst@user/moyst) |
2021-08-24 11:44:44 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2021-08-24 11:47:43 +0200 | mniip | (mniip@libera/staff/mniip) (Quit: This page is intentionally left blank.) |
2021-08-24 11:47:46 +0200 | mniip_ | (mniip@libera/staff/mniip) |
2021-08-24 11:57:41 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 12:02:24 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-d8c8-4f7-e34-193e.fixed6.kpn.net) |
2021-08-24 12:04:00 +0200 | lortabac | (~lortabac@62.98.34.238) (Quit: WeeChat 2.8) |
2021-08-24 12:04:49 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-136.prtc.net) (Ping timeout: 246 seconds) |
2021-08-24 12:08:07 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-24 12:12:42 +0200 | drsocks | (~aaashutos@113.199.149.122) |
2021-08-24 12:12:57 +0200 | drsocks | (~aaashutos@113.199.149.122) (Client Quit) |
2021-08-24 12:14:02 +0200 | shailangsa_ | (~shailangs@host86-185-102-120.range86-185.btcentralplus.com) |
2021-08-24 12:15:20 +0200 | mcglk | (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
2021-08-24 12:16:14 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-24 12:16:20 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
2021-08-24 12:16:38 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 12:16:45 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-24 12:17:00 +0200 | mcglk | (~mcglk@131.191.49.120) |
2021-08-24 12:18:15 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-24 12:18:34 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-08-24 12:22:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-24 12:24:07 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 12:25:12 +0200 | ubert | (~Thunderbi@91.141.36.16.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-08-24 12:26:22 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 12:28:47 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2021-08-24 12:29:07 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-24 12:29:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 12:30:34 +0200 | dsrt^ | (~dsrt@12.16.129.111) (Remote host closed the connection) |
2021-08-24 12:30:57 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Ping timeout: 250 seconds) |
2021-08-24 12:33:22 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-24 12:34:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-24 12:35:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 12:35:39 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) |
2021-08-24 12:37:27 +0200 | keutoi | (~keutoi@157.47.104.135) (Ping timeout: 250 seconds) |
2021-08-24 12:39:19 +0200 | keutoi | (~keutoi@106.208.52.196) |
2021-08-24 12:40:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 12:41:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 12:43:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 12:47:25 +0200 | aman | (~aman@user/aman) (Ping timeout: 250 seconds) |
2021-08-24 12:47:30 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 12:48:28 +0200 | aman | (~aman@user/aman) |
2021-08-24 12:48:43 +0200 | keutoi | (~keutoi@106.208.52.196) (Ping timeout: 250 seconds) |
2021-08-24 12:48:46 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) (Quit: WeeChat 3.2) |
2021-08-24 12:48:57 +0200 | Morrow_ | (~Morrow@31.154.96.164) |
2021-08-24 12:50:08 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Quit: ERC (IRC client for Emacs 28.0.50)) |
2021-08-24 12:50:39 +0200 | keutoi | (~keutoi@157.48.189.217) |
2021-08-24 12:51:45 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 12:51:47 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-24 12:52:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 12:55:13 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) |
2021-08-24 12:55:58 +0200 | <siers> | I found hlint complaining about a redundant bang pattern, which was necessary :) |
2021-08-24 12:56:14 +0200 | chisui | (~chisui@200116b868760900ef247521c8a78041.dip.versatel-1u1.de) |
2021-08-24 12:57:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 12:58:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 12:59:16 +0200 | mouseghost | (~draco@user/mouseghost) |
2021-08-24 12:59:23 +0200 | <mouseghost> | i wish i understood this language arhhh |
2021-08-24 12:59:49 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2021-08-24 13:00:05 +0200 | <Drew[m]> | mouseghost: having a particular problem? |
2021-08-24 13:00:23 +0200 | <mouseghost> | looking at basic parser implementation |
2021-08-24 13:01:03 +0200 | alx741 | (~alx741@181.196.68.94) |
2021-08-24 13:01:24 +0200 | <mouseghost> | but i guess this is mostly an issue of the notation here, hmm |
2021-08-24 13:02:02 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-24 13:06:18 +0200 | <tomsmeding> | siers: report a bug :) |
2021-08-24 13:06:40 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-08-24 13:06:40 +0200 | <siers> | tomsmeding, I guess I should, but I don't have a good testcase |
2021-08-24 13:06:44 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) (Remote host closed the connection) |
2021-08-24 13:06:55 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) |
2021-08-24 13:07:26 +0200 | <tomsmeding> | ah right |
2021-08-24 13:07:36 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-08-24 13:07:41 +0200 | <siers> | I mean I have a self-contained simple to run one, but it's not small at all |
2021-08-24 13:08:13 +0200 | <tomsmeding> | I doubt that hlint does sophisticated full-program analysis, so you might be able to significantly reduce it without influencing hlint's behaviour |
2021-08-24 13:08:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 13:09:21 +0200 | AlexNoo_ | (~AlexNoo@178.34.150.125) |
2021-08-24 13:10:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 13:11:22 +0200 | AlexZenon | (~alzenon@94.233.241.255) (Ping timeout: 252 seconds) |
2021-08-24 13:11:22 +0200 | Alex_test | (~al_test@94.233.241.255) (Ping timeout: 252 seconds) |
2021-08-24 13:12:28 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-08-24 13:12:54 +0200 | AlexNoo | (~AlexNoo@94.233.241.255) (Ping timeout: 258 seconds) |
2021-08-24 13:17:04 +0200 | Alex_test | (~al_test@178.34.150.125) |
2021-08-24 13:17:19 +0200 | AlexZenon | (~alzenon@178.34.150.125) |
2021-08-24 13:19:04 +0200 | Morrow_ | (~Morrow@31.154.96.164) (Ping timeout: 252 seconds) |
2021-08-24 13:19:14 +0200 | <siers> | what do you mean? |
2021-08-24 13:21:15 +0200 | <tomsmeding> | siers: you might be able to significantly reduce your code where hlint makes a mistake without influencing hlint's behaviour |
2021-08-24 13:21:43 +0200 | <siers> | meaning it's worthwhile most of the time or? |
2021-08-24 13:21:47 +0200 | <siers> | the false flag |
2021-08-24 13:21:50 +0200 | <tomsmeding> | because I don't think it looks very far from the point where the lint is triggered |
2021-08-24 13:22:10 +0200 | <tomsmeding> | no you should be able to fairly easily reduce your code to a small reproducing example :p |
2021-08-24 13:22:12 +0200 | <tomsmeding> | I think |
2021-08-24 13:22:26 +0200 | felixphew | (~felix@cssa/committee/felix) |
2021-08-24 13:23:04 +0200 | lortabac | (~lortabac@62.98.34.238) |
2021-08-24 13:23:13 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-08-24 13:23:41 +0200 | <felixphew> | hi! I'm trying to use ghcup on FreeBSD 13.0, and having some difficulties |
2021-08-24 13:23:50 +0200 | <felixphew> | I hit this issue and fixed it with a symlink: https://gitlab.haskell.org/ghc/ghc/-/issues/20095 |
2021-08-24 13:24:05 +0200 | <felixphew> | but now I'm getting a missing libgmp.so.10 |
2021-08-24 13:24:36 +0200 | <felixphew> | does ghcup require GMP from ports? if so, do you know if this is documented anywhere? |
2021-08-24 13:24:41 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b9534e4a445cd6b407eb5.dip0.t-ipconnect.de) |
2021-08-24 13:24:55 +0200 | <felixphew> | FreeBSD hasn't come with libgmp for a good 2 decades afaict |
2021-08-24 13:25:48 +0200 | <maerwald> | felixphew: install the 12.2 compat libs |
2021-08-24 13:26:50 +0200 | <maerwald> | https://www.freshports.org/misc/compat12x/ |
2021-08-24 13:27:22 +0200 | <felixphew> | that doesn't come with libgmp.so.10, though...? |
2021-08-24 13:27:36 +0200 | <felixphew> | https://cgit.freebsd.org/ports/tree/misc/compat12x/pkg-plist.amd64 |
2021-08-24 13:27:43 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-24 13:28:54 +0200 | <maerwald> | it's built on 12.2, so you need whatever is on 12.2 |
2021-08-24 13:29:14 +0200 | <felixphew> | yes, and I'm pretty sure libgmp.so.10 isn't in 12.2 |
2021-08-24 13:29:55 +0200 | <felixphew> | I can grab a tarball and check, though |
2021-08-24 13:30:06 +0200 | <maerwald> | the binary was built here: https://gitlab.haskell.org/haskell/ghcup-hs/-/jobs/759970 |
2021-08-24 13:30:09 +0200 | <maerwald> | clearly on 12.2 |
2021-08-24 13:30:24 +0200 | <felixphew> | I'll have a look at that now |
2021-08-24 13:32:59 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) |
2021-08-24 13:34:14 +0200 | <felixphew> | I strongly suspect that whatever this is running on has math/gmp installed |
2021-08-24 13:34:16 +0200 | <felixphew> | I can |
2021-08-24 13:34:31 +0200 | <felixphew> | 't check, of course, because it's not a Docker image (being not Linux) |
2021-08-24 13:35:34 +0200 | <maerwald> | yeah, imagine freebsd had working docker support |
2021-08-24 13:35:55 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-08-24 13:36:02 +0200 | <felixphew> | well, it does as a host (using jails with Linux emulation) |
2021-08-24 13:36:05 +0200 | <felixphew> | just not as a guest |
2021-08-24 13:36:26 +0200 | <felixphew> | and... yep, judging by this comment: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/.gitlab/before_script/freebsd/install_de… |
2021-08-24 13:37:06 +0200 | <felixphew> | cool, I'll go and install that - it's probably worth noting somewhere that this won't run on a completely fresh FreeBSD system, though |
2021-08-24 13:37:14 +0200 | <maerwald> | what's the package name |
2021-08-24 13:37:19 +0200 | <felixphew> | gmp |
2021-08-24 13:37:27 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2021-08-24 13:37:35 +0200 | <maerwald> | https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/ghcup-0.0.6.yaml#L137 |
2021-08-24 13:37:43 +0200 | <maerwald> | it's there |
2021-08-24 13:37:57 +0200 | <maerwald> | and presented during installation |
2021-08-24 13:38:18 +0200 | <felixphew> | no it's not, because ghcup _itself_ needs it |
2021-08-24 13:38:24 +0200 | <maerwald> | ah right |
2021-08-24 13:38:32 +0200 | <maerwald> | damn bootstrapping |
2021-08-24 13:38:46 +0200 | <maerwald> | can't win |
2021-08-24 13:40:59 +0200 | <maerwald> | well, let me know when FreeBSD fixes static linking :p |
2021-08-24 13:41:24 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) |
2021-08-24 13:41:49 +0200 | vs^ | (~vs@12.16.129.111) |
2021-08-24 13:45:50 +0200 | <merijn> | maerwald: What's broken about it? |
2021-08-24 13:46:02 +0200 | <maerwald> | merijn: all of it? |
2021-08-24 13:46:25 +0200 | <maerwald> | I don't remember the details, but I spent probably an entire weekend on that idea |
2021-08-24 13:49:48 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat) |
2021-08-24 13:50:37 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) |
2021-08-24 13:50:41 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b9534e4a445cd6b407eb5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-24 13:51:47 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds) |
2021-08-24 13:52:46 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-24 13:52:58 +0200 | _ak_ | (~akspecs@136.24.181.20) |
2021-08-24 13:54:46 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-24 13:55:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 13:55:59 +0200 | burnside_ | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 13:55:59 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-08-24 13:56:32 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 13:56:32 +0200 | burnside_ | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-08-24 13:58:36 +0200 | Sinbad | (~Sinbad@user/sinbad) |
2021-08-24 13:58:55 +0200 | xff0x | (~xff0x@2001:1a81:5333:b100:e90f:35ab:1ea2:78fd) (Ping timeout: 250 seconds) |
2021-08-24 13:59:51 +0200 | xff0x | (~xff0x@2001:1a81:5333:b100:677b:385:c244:5fff) |
2021-08-24 14:01:32 +0200 | chisui | (~chisui@200116b868760900ef247521c8a78041.dip.versatel-1u1.de) (Quit: Client closed) |
2021-08-24 14:03:02 +0200 | icebreaker | (~icebreake@user/icebreaker) (Quit: leaving) |
2021-08-24 14:03:06 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-08-24 14:03:20 +0200 | icebreaker | (~icebreake@user/icebreaker) |
2021-08-24 14:03:37 +0200 | chisui | (~chisui@200116b868760900d980a481ca884939.dip.versatel-1u1.de) |
2021-08-24 14:04:40 +0200 | icebreaker | (~icebreake@user/icebreaker) (Client Quit) |
2021-08-24 14:04:57 +0200 | icebreaker | (~icebreake@user/icebreaker) |
2021-08-24 14:08:30 +0200 | thornAvery | (~Thorn@2401:c080:1800:4346:5400:3ff:fe2c:c8f8) () |
2021-08-24 14:08:53 +0200 | trcc | (~trcc@users-5343.st.net.au.dk) |
2021-08-24 14:09:27 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) (Ping timeout: 240 seconds) |
2021-08-24 14:11:39 +0200 | thornAvery | (~Thorn@2401:c080:1800:4346:5400:3ff:fe2c:c8f8) |
2021-08-24 14:11:39 +0200 | thornAvery | Thorn |
2021-08-24 14:12:20 +0200 | Thorn | thornAvery |
2021-08-24 14:13:19 +0200 | <kuribas> | How do you enable tracing in production? For example if I want to trace the queries generated? |
2021-08-24 14:13:27 +0200 | <maerwald> | https://paste.tomsmeding.com/DS3Bgy4l that looks wrong |
2021-08-24 14:13:49 +0200 | <kuribas> | create a query generator that runs in a logging monad transformer? |
2021-08-24 14:13:51 +0200 | <thornAvery> | why do people hate static linking? |
2021-08-24 14:14:02 +0200 | <dminuoso> | thornAvery: Who says people hate static linking? |
2021-08-24 14:14:19 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) |
2021-08-24 14:14:21 +0200 | <thornAvery> | I just hear a lot of people going on about it |
2021-08-24 14:14:23 +0200 | <dminuoso> | There's just a lot of myths that people appear to readily accept as truth.. |
2021-08-24 14:14:29 +0200 | <kuribas> | thornAvery: the only problem is linking libc... |
2021-08-24 14:14:48 +0200 | <kuribas> | thornAvery: because it is not compatible between systems. |
2021-08-24 14:14:57 +0200 | <thornAvery> | Oh fair call |
2021-08-24 14:15:08 +0200 | <maerwald> | musl? |
2021-08-24 14:15:20 +0200 | <maerwald> | linking crypto libs is more problematic than that |
2021-08-24 14:15:21 +0200 | <kuribas> | yeah, musl solves it, but introduces other problems. |
2021-08-24 14:15:28 +0200 | <dminuoso> | thornAvery: In principle there's nothing wrong with static linking, and it generally makes shipping isolated packages easier. |
2021-08-24 14:15:29 +0200 | <kuribas> | with networking |
2021-08-24 14:15:31 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-08-24 14:15:32 +0200 | <maerwald> | nothing is without problems |
2021-08-24 14:15:58 +0200 | <tomsmeding> | maerwald: two different versions of the prettyprint library? |
2021-08-24 14:16:05 +0200 | <maerwald> | tomsmeding: no |
2021-08-24 14:16:23 +0200 | <maerwald> | it's type level hackery |
2021-08-24 14:16:30 +0200 | <maerwald> | https://hackage.haskell.org/package/haskus-utils-variant-3.0/docs/Haskus-Utils-Variant-Excepts.htm… |
2021-08-24 14:16:46 +0200 | <dminuoso> | thornAvery: It's just that static linking makes it harder to replace a *shared* library in one go and fix some underlying issue, since every package needs to receive that same update. But at the same time, replacing a shared library can easily break a multitude of packages.A |
2021-08-24 14:17:00 +0200 | <dminuoso> | And any memory arguments have been largely moot a long time ago |
2021-08-24 14:17:25 +0200 | <maerwald> | yeah, if you ship static binaries, don't link against ssl |
2021-08-24 14:18:29 +0200 | <dminuoso> | It's a trade off either way. For some reasons, it's just that folks like Ulrich Drepper held some incredibly strong opinions about it, and pushed against static linking extremely hard. |
2021-08-24 14:18:37 +0200 | <tdammers> | the Free Lunch Theory strikes again |
2021-08-24 14:18:52 +0200 | <dminuoso> | Heh yeah |
2021-08-24 14:19:29 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-24 14:20:30 +0200 | <dminuoso> | maerwald: This is an interesting proposition. |
2021-08-24 14:21:04 +0200 | <dminuoso> | Dynamically link against libraries that can introduce severe security issues, where prompt updates are important. Or against particularly weak software that is error prone. |
2021-08-24 14:21:17 +0200 | <maerwald> | well, there are implementations that are made to be statically linked, such as polarssl |
2021-08-24 14:21:41 +0200 | <maerwald> | but you as a static binary distributor will generally do a worse job than the distro |
2021-08-24 14:21:54 +0200 | <dminuoso> | But perhaps the real solution here is to simply ship the source code with enough wizardry to link in the flavor that *you* want |
2021-08-24 14:21:59 +0200 | <dminuoso> | Then you can update libraries yourself whenever you feel like it |
2021-08-24 14:22:15 +0200 | <dminuoso> | Perhaps users have become too accustomed to binary packages.. |
2021-08-24 14:22:21 +0200 | <Jack> | How can dynamically linking be insecure? This is a serious question |
2021-08-24 14:22:28 +0200 | <tdammers> | problem is of course that it's not entirely clear which libraries might introduce severe security issues |
2021-08-24 14:22:31 +0200 | <dminuoso> | Jack: not insecure, but they can introduce brittleness |
2021-08-24 14:22:42 +0200 | <maerwald> | tdammers: yeah, like png |
2021-08-24 14:22:50 +0200 | <maerwald> | not everything needs to be crypto |
2021-08-24 14:22:55 +0200 | <dminuoso> | because the linked library is not under your control, it might not exist, might exist in wrong flavor, wrong compilation flags, wrong versions |
2021-08-24 14:23:04 +0200 | <dminuoso> | and all existing mechanisms to at least control this are error prone |
2021-08-24 14:23:50 +0200 | <dminuoso> | most of the time we dont notice this, because its the distribution maintainers that cherry pick everything so the dynamic libraries on your system will work with the programs |
2021-08-24 14:24:07 +0200 | <dminuoso> | or they add patches left and right to make things work |
2021-08-24 14:24:12 +0200 | <maerwald> | dynamic linking is fine as long as the distro controls it... when you have things like steam dropping random stuff that may or may not work together is a different story |
2021-08-24 14:24:17 +0200 | <dminuoso> | right |
2021-08-24 14:24:27 +0200 | <dminuoso> | I think this is the key part. |
2021-08-24 14:24:39 +0200 | <maerwald> | sonames aren't fool proof etc |
2021-08-24 14:24:48 +0200 | <dminuoso> | dynamic linking moves responsibility of library management to the distribution maintainer, because there's no real portable way to depend on shared libraries that really works. |
2021-08-24 14:24:59 +0200 | <dminuoso> | maerwald: indeed. |
2021-08-24 14:25:45 +0200 | <dminuoso> | For package inside your own organization, this becomes an interesting topic now. |
2021-08-24 14:25:57 +0200 | <maerwald> | the problem with ssl static linking is also that there's an amount of compile time configuration about certificate store etc afair |
2021-08-24 14:26:08 +0200 | <dminuoso> | Because then it essentialy becomes a question of whether your system administrators are capabable of managing your softwares dynamic dependencies or not. |
2021-08-24 14:26:20 +0200 | <dminuoso> | If not, you're better of just distributing static artifacts. |
2021-08-24 14:26:38 +0200 | <dminuoso> | maerwald: oh really? |
2021-08-24 14:26:52 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-08-24 14:26:59 +0200 | <maerwald> | I mean there are a number of directories an SSL implementations is *supposed* to search |
2021-08-24 14:27:09 +0200 | <maerwald> | but some of these are set at compile time afair |
2021-08-24 14:27:14 +0200 | <maerwald> | it's pretty confusing |
2021-08-24 14:27:16 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-08-24 14:27:31 +0200 | <merijn> | This just in, CA based certificates are a maddening clusterfuck :p |
2021-08-24 14:27:40 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-08-24 14:27:44 +0200 | <maerwald> | just using the system dynamic lib will do the right thing |
2021-08-24 14:27:55 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 14:27:55 +0200 | maroloccio | (~marolocci@37.100.40.252) |
2021-08-24 14:27:57 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds) |
2021-08-24 14:28:22 +0200 | favonia | (~favonia@user/favonia) |
2021-08-24 14:29:13 +0200 | <merijn> | I would disagree. I might concede that it will do the thing most people expect nowadays, but I wouldn't necessarily call that the right thing :p |
2021-08-24 14:31:36 +0200 | <tdammers> | problem is that you want both "give me this exact version so that my stuff is guaranteed to not break" and "give me a version that has all the latest security fixes" |
2021-08-24 14:31:57 +0200 | <tdammers> | but logic says you can't have both at the same time |
2021-08-24 14:32:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Ping timeout: 250 seconds) |
2021-08-24 14:32:18 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) |
2021-08-24 14:32:30 +0200 | <maerwald> | security is expensive |
2021-08-24 14:32:41 +0200 | <Taneb> | Often, not security is even more expensive |
2021-08-24 14:32:42 +0200 | <merijn> | It's almost like half of us programmers don't deserve to call themselves engineers :p |
2021-08-24 14:32:47 +0200 | pbrisbin | (~patrick@174-081-116-011.res.spectrum.com) |
2021-08-24 14:34:18 +0200 | <maerwald> | what's an engineer anyway... someone following best practices? |
2021-08-24 14:34:39 +0200 | <maerwald> | like running hlint over their codebase? |
2021-08-24 14:35:03 +0200 | fef | (~thedawn@user/thedawn) |
2021-08-24 14:35:22 +0200 | <maerwald> | 'you could write this pointfree' |
2021-08-24 14:35:28 +0200 | <tdammers> | merijn: actually the majority of programmers does not hold an engineering degree, so technically only a small minority deserves the title |
2021-08-24 14:35:30 +0200 | <merijn> | maerwald: No, someone who *plans* for actual long term |
2021-08-24 14:35:42 +0200 | <maerwald> | merijn: don't talk crazy |
2021-08-24 14:35:57 +0200 | maerwald | buys more crypto |
2021-08-24 14:36:00 +0200 | <merijn> | You plan a bridge to last actual decades. Which means planning how the fuck you will be able to fix/maintain things latr |
2021-08-24 14:36:04 +0200 | markpythonicbtc | (~textual@2601:647:5a00:35:f45e:90a7:31f1:d8ef) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-08-24 14:36:28 +0200 | <merijn> | If you wanna pretend your a software *engineer*, start planning how that shit will work *long* term, instead of this one sprint |
2021-08-24 14:36:34 +0200 | <Taneb> | Oh god is that a mood. "This'll go wrong in ten years", I say, "In ten years neither of us or this system will still be here" is the response |
2021-08-24 14:36:46 +0200 | <merijn> | That includes, updating libraries, handling libraries disappearing, whatever |
2021-08-24 14:37:20 +0200 | <maerwald> | tdammers: not sure it's worth much... the greatest coders I met were wizards, some of them did know nothing of CS. But generally, everyone who is afraid of complexity is a good fit |
2021-08-24 14:37:32 +0200 | <maralorn> | When building with ghc 9.0 (in nixpkgs) in blaze-textual 0.2.1 I get "Ambiguous occurrence ‘quotRemInteger’" between base 4.15 and integer-gmp 1.1. This is a dependency of ghcide so it’s supposed to be working but I can‘t figure out in which way I have wrong versions. Can anyone help me? |
2021-08-24 14:37:37 +0200 | <tdammers> | Reminds me of that story about programmers working on a cruise missile control system. They found a memory leak, but it was a very consistent and predictable one, so they just calculated how much memory the code would leak over the duration of a mission, doubled that, and just added that much more RAM to the system |
2021-08-24 14:37:50 +0200 | <merijn> | tdammers: tbh, I can respect that |
2021-08-24 14:38:08 +0200 | <maerwald> | well, they don't just update the compiler, I hope :p |
2021-08-24 14:38:33 +0200 | <tdammers> | merijn: thing is, IMO programming is nothing like engineering. The constraints are just so radically different that comparing the two disciplines is not awfully useful. |
2021-08-24 14:38:35 +0200 | <merijn> | maerwald: Missile guidance people don't change software versions in their pipeline |
2021-08-24 14:38:36 +0200 | <maralorn> | maralorn: The fact, that integer-gmp 1.1 is not even on hackage does not help. |
2021-08-24 14:38:52 +0200 | <merijn> | tdammers: I agree that software isn't very similar to engineering |
2021-08-24 14:39:07 +0200 | <tomsmeding> | maralorn: how does it depend on it then :p |
2021-08-24 14:39:15 +0200 | <merijn> | tdammers: I'm just saying the attitude of most programmers is shite and they could learn a lot from engineers in many things |
2021-08-24 14:39:19 +0200 | <tdammers> | maerwald: the point being, you don't need fancy garbage collection in a computer system that, by design, literally explodes after one program run |
2021-08-24 14:39:29 +0200 | <Logio_> | software isn't like engineering only because not enough people have been killed by bad software (yet) |
2021-08-24 14:39:32 +0200 | <tdammers> | merijn: agree on this much. |
2021-08-24 14:39:52 +0200 | <maralorn> | tomsmeding: I suspect integer-gmp 1.1 is the one bundled with ghc 9.0? |
2021-08-24 14:39:59 +0200 | <tdammers> | Logio_: no, it's fundamentally different because information systems have different dynamics than physical machines and structures |
2021-08-24 14:40:09 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b9534e4a445cd6b407eb5.dip0.t-ipconnect.de) |
2021-08-24 14:40:30 +0200 | <Taneb> | maralorn: I think the right solution here will be drop the dependency on integer-gmp on that version of GHC. |
2021-08-24 14:40:36 +0200 | sjb0 | (~stephen@2001:8004:5170:3b13:8c1d:1f1c:70aa:a42e) (Quit: Leaving.) |
2021-08-24 14:40:42 +0200 | maroloccio | (~marolocci@37.100.40.252) (Quit: WeeChat 3.0) |
2021-08-24 14:40:51 +0200 | <dminuoso> | Taneb: Id say "not security" is like gambling, but the jackbot has a negative sign attached to it. |
2021-08-24 14:41:07 +0200 | <Logio_> | tdammers: not in any fundamental sense, IMO. Software is about controlling something in the real world at the end of the day |
2021-08-24 14:41:11 +0200 | <Taneb> | dminuoso: reverse gambling, and yet, the house still always wins |
2021-08-24 14:41:24 +0200 | <Logio_> | the implementation details are not what defines engineering |
2021-08-24 14:41:27 +0200 | <tdammers> | Logio_: the difference is in the economics of the production process |
2021-08-24 14:41:33 +0200 | maroloccio | (~marolocci@37.100.40.252) |
2021-08-24 14:42:11 +0200 | <maralorn> | Taneb: Sorry, I don‘t understand. Do you mean building ghc without gmp? |
2021-08-24 14:42:14 +0200 | <tomsmeding> | maralorn: is blaze-textual a dependency of your project? Are you building using cabal or stack? |
2021-08-24 14:42:35 +0200 | <tdammers> | Logio_: in industrial design, "production" is elaborate, expensive, and bound to severe physical constraints. In programming, the "production" part is a matter of running the build script. Changing an industrial production process is expensive; changing a deployment script is cheap. |
2021-08-24 14:42:43 +0200 | <Logio_> | tdammers: not the economics of the production, but of failure. As I said, once bad software starts killing enough people than things will change |
2021-08-24 14:42:54 +0200 | <dminuoso> | merijn: Regarding your bridge argument, it's my opinion that the main problem is that there's no liability for software. If you simply neglect security for hospital software, and this allows an attacker to turn off the entire ICU equipment, nobody goes to jail because of the dozens people that die. Nobody pays even a fine. |
2021-08-24 14:43:01 +0200 | <Taneb> | maralorn: no, I mean blaze-textual has a dependency on integer-gmp, but on newer GHCs I don't think this should be necessary |
2021-08-24 14:43:05 +0200 | <merijn> | dminuoso: Agreed |
2021-08-24 14:43:20 +0200 | <tdammers> | Logio_: no, the economics of production as well. It's just that people call the process of writing code "production", when that's really the equivalent of "design" in an industrial engineering process |
2021-08-24 14:43:44 +0200 | <maralorn> | tomsmeding: blaze-textual is a dependency of ghcide. I am building with nix which has the famous "not-doing-it" dependency resolution algorithm. |
2021-08-24 14:43:51 +0200 | <Taneb> | maralorn: the direct dependency shouldn't be necessary, I mean. There may still be an indirect dependency |
2021-08-24 14:44:02 +0200 | <maralorn> | Taneb: Ah, thanks. |
2021-08-24 14:44:26 +0200 | <Logio_> | tdammers: engineering cheap things is similar whether it's hardware or software, see chinese manufacturing |
2021-08-24 14:44:30 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-08-24 14:44:37 +0200 | <Taneb> | maralorn: I reserve the right to be horribly wrong about this ;) |
2021-08-24 14:45:06 +0200 | <tomsmeding> | maralorn: the cabal.project in the haskell-language-server repo for ghc 9.0.1 has a specific git dependency on blaze-textual on a particular commit |
2021-08-24 14:45:09 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Read error: Connection reset by peer) |
2021-08-24 14:45:21 +0200 | <tomsmeding> | maralorn: https://github.com/haskell/haskell-language-server/blob/master/cabal-ghc901.project#L33 |
2021-08-24 14:45:28 +0200 | <tomsmeding> | perhaps this is your problem |
2021-08-24 14:45:33 +0200 | shailangsa_ | (~shailangs@host86-185-102-120.range86-185.btcentralplus.com) () |
2021-08-24 14:46:00 +0200 | <tdammers> | Logio_: even if you produce in China, changing your design in the middle of a production run is a lot more cumbersome and time consuming |
2021-08-24 14:46:12 +0200 | <tomsmeding> | maralorn: that seems to be exactly your problem |
2021-08-24 14:46:18 +0200 | maroloccio | (~marolocci@37.100.40.252) (Client Quit) |
2021-08-24 14:46:22 +0200 | <Logio_> | tdammers: that's still just a quantitative difference, not a qualitative one |
2021-08-24 14:46:57 +0200 | <maerwald> | it's as if "agile" isn't an actual engineering practice :p |
2021-08-24 14:47:12 +0200 | <maralorn> | tomsmeding: Thanks! I’ll try passing integer-simple. |
2021-08-24 14:47:19 +0200 | <maerwald> | you don't build a sky-scraper agile |
2021-08-24 14:47:26 +0200 | <tdammers> | Logio_: it becomes quasi-qualitative when you consider that "production" is practically always a commodity in programming, and practically never in industrial production |
2021-08-24 14:47:30 +0200 | <tomsmeding> | maralorn: or using that fork of blaze-textual |
2021-08-24 14:47:58 +0200 | maroloccio | (~marolocci@37.100.40.252) |
2021-08-24 14:48:10 +0200 | <maralorn> | tomsmeding: Since I am trying to upstream this into nixpkgs I‘d prefer to not do that to much. |
2021-08-24 14:49:10 +0200 | <Taneb> | maralorn: nixpkgs does sometimes do that |
2021-08-24 14:49:56 +0200 | <maralorn> | I will go there if there is no other way. |
2021-08-24 14:50:12 +0200 | <Taneb> | e.g. https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/configuration-ghc-8.… (there's a file for ghc 9.0 as well) |
2021-08-24 14:51:39 +0200 | <maralorn> | Yeah, I am familiar with those files. |
2021-08-24 14:51:51 +0200 | <maralorn> | Working on the 9.0 one right now. |
2021-08-24 14:52:11 +0200 | <tomsmeding> | all too familiar? :p |
2021-08-24 14:53:04 +0200 | <Taneb> | OK, I'll leave you to it |
2021-08-24 14:55:15 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) (Quit: You have been idle for 30+ days) |
2021-08-24 14:55:16 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Quit: You have been idle for 30+ days) |
2021-08-24 14:55:34 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) (Quit: You have been idle for 30+ days) |
2021-08-24 14:57:26 +0200 | AlexNoo_ | AlexNoo |
2021-08-24 14:57:47 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-24 15:00:53 +0200 | vs^ | (~vs@12.16.129.111) (Ping timeout: 250 seconds) |
2021-08-24 15:05:31 +0200 | markpythonicbtc | (~textual@50.228.44.6) |
2021-08-24 15:06:16 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-08-24 15:09:34 +0200 | trcc_ | (~trcc@users-5343.st.net.au.dk) |
2021-08-24 15:10:21 +0200 | <maerwald> | ok, now I'm confused... my code type checks if I move a function to a different module... |
2021-08-24 15:12:07 +0200 | trcc | (~trcc@users-5343.st.net.au.dk) (Ping timeout: 240 seconds) |
2021-08-24 15:13:12 +0200 | <maerwald> | do module boundaries affect some type level hackery? |
2021-08-24 15:14:35 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-08-24 15:14:59 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-24 15:16:24 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-24 15:16:51 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 15:18:17 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 15:18:49 +0200 | shailangsa | (~shailangs@host86-185-102-120.range86-185.btcentralplus.com) |
2021-08-24 15:19:44 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-24 15:19:51 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 15:20:12 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-24 15:20:43 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 15:20:45 +0200 | felixphew | (~felix@cssa/committee/felix) () |
2021-08-24 15:21:08 +0200 | trcc_ | (~trcc@users-5343.st.net.au.dk) (Ping timeout: 250 seconds) |
2021-08-24 15:21:29 +0200 | vs^ | (~vs@12.16.129.111) |
2021-08-24 15:22:33 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-24 15:24:21 +0200 | mcglk | (~mcglk@131.191.49.120) (*.net *.split) |
2021-08-24 15:24:21 +0200 | awth13 | (~awth13@user/awth13) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Techcable | (~Techcable@168.235.93.147) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Dykam | (Dykam@dykam.nl) (*.net *.split) |
2021-08-24 15:24:21 +0200 | polux | (~polux@51.15.169.172) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Eoco | (~ian@x-160-94-179-157.acm.umn.edu) (*.net *.split) |
2021-08-24 15:24:21 +0200 | drewolson1 | (~drewolson@user/drewolson) (*.net *.split) |
2021-08-24 15:24:21 +0200 | wrunt | (~ajc@vmx14030.hosting24.com.au) (*.net *.split) |
2021-08-24 15:24:21 +0200 | glider_ | (~glider@user/glider) (*.net *.split) |
2021-08-24 15:24:21 +0200 | orzo_ | (joe@lasker.childrenofmay.org) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Vq | (~vq@90-227-195-41-no77.tbcn.telia.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (*.net *.split) |
2021-08-24 15:24:21 +0200 | dave_uy | (~dave_uy@108.61.193.26) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Teacup | (~teacup@user/teacup) (*.net *.split) |
2021-08-24 15:24:21 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (*.net *.split) |
2021-08-24 15:24:21 +0200 | glguy | (x@libera/staff/glguy) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Unode | (~Unode@194.94.44.220) (*.net *.split) |
2021-08-24 15:24:21 +0200 | pierrot | (~pi@user/pierrot) (*.net *.split) |
2021-08-24 15:24:21 +0200 | ellie | (~ellie@user/ellie) (*.net *.split) |
2021-08-24 15:24:21 +0200 | tristanC | (~tristanC@user/tristanc) (*.net *.split) |
2021-08-24 15:24:21 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) (*.net *.split) |
2021-08-24 15:24:21 +0200 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | ishutin | (~ishutin@92-249-150-163.static.digikabel.hu) (*.net *.split) |
2021-08-24 15:24:21 +0200 | micro | (~micro@user/micro) (*.net *.split) |
2021-08-24 15:24:21 +0200 | arahael | (~arahael@203.221.97.63) (*.net *.split) |
2021-08-24 15:24:21 +0200 | monochrom | (trebla@216.138.220.146) (*.net *.split) |
2021-08-24 15:24:21 +0200 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) (*.net *.split) |
2021-08-24 15:24:21 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Ananta-shesha | (~pjetcetal@2.95.210.196) (*.net *.split) |
2021-08-24 15:24:21 +0200 | L29Ah | (~L29Ah@user/l29ah) (*.net *.split) |
2021-08-24 15:24:21 +0200 | CannabisIndica | (~herb@user/mesaboogie) (*.net *.split) |
2021-08-24 15:24:21 +0200 | adium | (adium@user/adium) (*.net *.split) |
2021-08-24 15:24:21 +0200 | gauss | (~gauss@139.180.175.160) (*.net *.split) |
2021-08-24 15:24:21 +0200 | hamishmack | (sid389057@stonehaven.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | jonrh | (sid5185@charlton.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | kaizen | (sid501599@brockwell.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | hsiktas | (sid224847@tooting.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | elvishjerricco | (sid237756@brockwell.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | conjunctive | (sid433686@brockwell.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | whez | (sid470288@tooting.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | cbarrett | (sid192934@brockwell.irccloud.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | edwardk | (sid47016@haskell/developer/edwardk) (*.net *.split) |
2021-08-24 15:24:21 +0200 | cross | (~cross@spitfire.i.gajendra.net) (*.net *.split) |
2021-08-24 15:24:21 +0200 | shredder | (~user@user/shredder) (*.net *.split) |
2021-08-24 15:24:21 +0200 | sm2n | (~sm2n@user/sm2n) (*.net *.split) |
2021-08-24 15:24:21 +0200 | fjmorazan | (~quassel@user/fjmorazan) (*.net *.split) |
2021-08-24 15:24:21 +0200 | energizer | (~energizer@user/energizer) (*.net *.split) |
2021-08-24 15:24:21 +0200 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (*.net *.split) |
2021-08-24 15:24:21 +0200 | hays | (~rootveget@fsf/member/hays) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Clint | (~Clint@user/clint) (*.net *.split) |
2021-08-24 15:24:21 +0200 | finsternis | (~X@23.226.237.192) (*.net *.split) |
2021-08-24 15:24:21 +0200 | wanko | (~wanko@51.15.4.226) (*.net *.split) |
2021-08-24 15:24:21 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) (*.net *.split) |
2021-08-24 15:24:21 +0200 | remexre | (~nathan@user/remexre) (*.net *.split) |
2021-08-24 15:24:21 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) (*.net *.split) |
2021-08-24 15:24:21 +0200 | vk3wtf | (~doc@220-245-2-190.tpgi.com.au) (*.net *.split) |
2021-08-24 15:24:21 +0200 | typedfern__ | (~Typedfern@28.red-83-57-142.dynamicip.rima-tde.net) (*.net *.split) |
2021-08-24 15:24:21 +0200 | jackhill | (~jackhill@kalessin.dragonsnail.net) (*.net *.split) |
2021-08-24 15:24:21 +0200 | EvanR | (~evan@mail.evanr.info) (*.net *.split) |
2021-08-24 15:24:21 +0200 | ridcully_ | (~ridcully@p508ac428.dip0.t-ipconnect.de) (*.net *.split) |
2021-08-24 15:24:21 +0200 | spoonm | (spoonm@inaba.spoonm.org) (*.net *.split) |
2021-08-24 15:24:21 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (*.net *.split) |
2021-08-24 15:24:21 +0200 | drewr | (~drew@user/drewr) (*.net *.split) |
2021-08-24 15:24:47 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-24 15:27:59 +0200 | juhp | (~juhp@128.106.188.220) (Quit: juhp) |
2021-08-24 15:28:13 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-24 15:28:24 +0200 | <Logio_> | some malarky with non-qualified imports? |
2021-08-24 15:28:38 +0200 | mcglk | (~mcglk@131.191.49.120) |
2021-08-24 15:28:38 +0200 | awth13 | (~awth13@user/awth13) |
2021-08-24 15:28:38 +0200 | Techcable | (~Techcable@168.235.93.147) |
2021-08-24 15:28:38 +0200 | Dykam | (Dykam@dykam.nl) |
2021-08-24 15:28:38 +0200 | polux | (~polux@51.15.169.172) |
2021-08-24 15:28:38 +0200 | Eoco | (~ian@x-160-94-179-157.acm.umn.edu) |
2021-08-24 15:28:38 +0200 | drewolson1 | (~drewolson@user/drewolson) |
2021-08-24 15:28:38 +0200 | wrunt | (~ajc@vmx14030.hosting24.com.au) |
2021-08-24 15:28:38 +0200 | glider_ | (~glider@user/glider) |
2021-08-24 15:28:38 +0200 | orzo_ | (joe@lasker.childrenofmay.org) |
2021-08-24 15:28:38 +0200 | Vq | (~vq@90-227-195-41-no77.tbcn.telia.com) |
2021-08-24 15:28:38 +0200 | dave_uy | (~dave_uy@108.61.193.26) |
2021-08-24 15:28:38 +0200 | Teacup | (~teacup@user/teacup) |
2021-08-24 15:28:38 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-08-24 15:28:38 +0200 | glguy | (x@libera/staff/glguy) |
2021-08-24 15:28:38 +0200 | Unode | (~Unode@194.94.44.220) |
2021-08-24 15:28:38 +0200 | pierrot | (~pi@user/pierrot) |
2021-08-24 15:28:38 +0200 | ellie | (~ellie@user/ellie) |
2021-08-24 15:28:38 +0200 | tristanC | (~tristanC@user/tristanc) |
2021-08-24 15:28:38 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) |
2021-08-24 15:28:38 +0200 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) |
2021-08-24 15:28:38 +0200 | ishutin | (~ishutin@92-249-150-163.static.digikabel.hu) |
2021-08-24 15:28:38 +0200 | micro | (~micro@user/micro) |
2021-08-24 15:28:38 +0200 | arahael | (~arahael@203.221.97.63) |
2021-08-24 15:28:38 +0200 | monochrom | (trebla@216.138.220.146) |
2021-08-24 15:28:38 +0200 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2021-08-24 15:28:38 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2021-08-24 15:28:38 +0200 | Ananta-shesha | (~pjetcetal@2.95.210.196) |
2021-08-24 15:28:38 +0200 | L29Ah | (~L29Ah@user/l29ah) |
2021-08-24 15:28:38 +0200 | CannabisIndica | (~herb@user/mesaboogie) |
2021-08-24 15:28:38 +0200 | adium | (adium@user/adium) |
2021-08-24 15:28:38 +0200 | gauss | (~gauss@139.180.175.160) |
2021-08-24 15:28:38 +0200 | hamishmack | (sid389057@stonehaven.irccloud.com) |
2021-08-24 15:28:38 +0200 | jonrh | (sid5185@charlton.irccloud.com) |
2021-08-24 15:28:38 +0200 | kaizen | (sid501599@brockwell.irccloud.com) |
2021-08-24 15:28:38 +0200 | hsiktas | (sid224847@tooting.irccloud.com) |
2021-08-24 15:28:38 +0200 | elvishjerricco | (sid237756@brockwell.irccloud.com) |
2021-08-24 15:28:38 +0200 | conjunctive | (sid433686@brockwell.irccloud.com) |
2021-08-24 15:28:38 +0200 | whez | (sid470288@tooting.irccloud.com) |
2021-08-24 15:28:38 +0200 | cbarrett | (sid192934@brockwell.irccloud.com) |
2021-08-24 15:28:38 +0200 | edwardk | (sid47016@haskell/developer/edwardk) |
2021-08-24 15:28:38 +0200 | cross | (~cross@spitfire.i.gajendra.net) |
2021-08-24 15:28:38 +0200 | shredder | (~user@user/shredder) |
2021-08-24 15:28:38 +0200 | sm2n | (~sm2n@user/sm2n) |
2021-08-24 15:28:38 +0200 | fjmorazan | (~quassel@user/fjmorazan) |
2021-08-24 15:28:38 +0200 | energizer | (~energizer@user/energizer) |
2021-08-24 15:28:38 +0200 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) |
2021-08-24 15:28:38 +0200 | hays | (~rootveget@fsf/member/hays) |
2021-08-24 15:28:38 +0200 | Clint | (~Clint@user/clint) |
2021-08-24 15:28:38 +0200 | finsternis | (~X@23.226.237.192) |
2021-08-24 15:28:38 +0200 | wanko | (~wanko@51.15.4.226) |
2021-08-24 15:28:38 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) |
2021-08-24 15:28:38 +0200 | remexre | (~nathan@user/remexre) |
2021-08-24 15:28:38 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) |
2021-08-24 15:28:38 +0200 | vk3wtf | (~doc@220-245-2-190.tpgi.com.au) |
2021-08-24 15:28:38 +0200 | typedfern__ | (~Typedfern@28.red-83-57-142.dynamicip.rima-tde.net) |
2021-08-24 15:28:38 +0200 | jackhill | (~jackhill@kalessin.dragonsnail.net) |
2021-08-24 15:28:38 +0200 | EvanR | (~evan@mail.evanr.info) |
2021-08-24 15:28:38 +0200 | ridcully_ | (~ridcully@p508ac428.dip0.t-ipconnect.de) |
2021-08-24 15:28:38 +0200 | spoonm | (spoonm@inaba.spoonm.org) |
2021-08-24 15:28:38 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-24 15:28:38 +0200 | drewr | (~drew@user/drewr) |
2021-08-24 15:28:42 +0200 | finsternis | (~X@23.226.237.192) (Max SendQ exceeded) |
2021-08-24 15:28:59 +0200 | finsternis | (~X@23.226.237.192) |
2021-08-24 15:32:14 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) |
2021-08-24 15:32:39 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 15:32:53 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 15:34:24 +0200 | <maerwald> | yeah, must be import foo |
2021-08-24 15:41:10 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-08-24 15:44:25 +0200 | <merijn> | maerwald: Is there TH involved? |
2021-08-24 15:44:27 +0200 | keutoi | (~keutoi@157.48.189.217) (Ping timeout: 240 seconds) |
2021-08-24 15:44:37 +0200 | <maerwald> | ya |
2021-08-24 15:44:41 +0200 | keutoi | (~keutoi@157.48.189.217) |
2021-08-24 15:45:02 +0200 | <maerwald> | I fiddled around until it worked, now I'm pretending this never happened |
2021-08-24 15:45:06 +0200 | <merijn> | TH splices introduce grouping |
2021-08-24 15:45:17 +0200 | <merijn> | Code can't see definitions *below* a TH splice |
2021-08-24 15:45:53 +0200 | <merijn> | so if you have "foo <TH splice 1> bar <TH splice 2> quux" then code in 'foo' can't see any definitions in bar/quux |
2021-08-24 15:46:16 +0200 | <merijn> | bar can't see quux and quux can see everything |
2021-08-24 15:46:39 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-08-24 15:47:01 +0200 | <merijn> | This is so that it's unambiguous what is/isn't in scope for the splices (i.e. only things above it) |
2021-08-24 15:51:35 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b9534e4a445cd6b407eb5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-24 15:52:33 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-08-24 15:53:00 +0200 | markpythonicbtc | (~textual@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-08-24 15:56:21 +0200 | fendor | (~fendor@77.119.197.208.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
2021-08-24 15:56:49 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 248 seconds) |
2021-08-24 16:02:58 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-08-24 16:11:11 +0200 | chisui | (~chisui@200116b868760900d980a481ca884939.dip.versatel-1u1.de) (Quit: Client closed) |
2021-08-24 16:12:46 +0200 | <kuribas> | has any work been done on enforcing permissions using types? I saw something recently using liquid haskell I remember... |
2021-08-24 16:13:18 +0200 | <kuribas> | For example, carrying a typelevel proof that someone can access a resource... |
2021-08-24 16:14:06 +0200 | <kuribas> | As long as you don't use (undefined :: HasPermission UserFoo ResourceBar)... |
2021-08-24 16:16:20 +0200 | fendor | (~fendor@91.141.62.188.wireless.dyn.drei.com) |
2021-08-24 16:16:32 +0200 | <maerwald> | https://hackage.haskell.org/package/mac |
2021-08-24 16:16:44 +0200 | Guest3531 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-24 16:16:54 +0200 | <maerwald> | there are 3+ implementations of data flow control in haskell |
2021-08-24 16:17:05 +0200 | <maerwald> | the first one used arrows afair |
2021-08-24 16:17:05 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 16:17:16 +0200 | chris | (~chris@81.96.113.213) |
2021-08-24 16:17:19 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 16:17:21 +0200 | chris | Guest2329 |
2021-08-24 16:17:28 +0200 | <maerwald> | there are also papers, I'm too lazy to find them |
2021-08-24 16:18:25 +0200 | <kuribas> | maerwald: that looks very interesting, but maybe not quite what I look for. |
2021-08-24 16:18:54 +0200 | <kuribas> | maerwald: It's not really about untrusted code, more like ensuring our trusted code works correctly. |
2021-08-24 16:19:21 +0200 | <kuribas> | more like an aid to the developers than as a security guard. |
2021-08-24 16:21:05 +0200 | slack1256 | (~slack1256@191.125.33.180) |
2021-08-24 16:21:40 +0200 | Guest2329 | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2021-08-24 16:22:30 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-08-24 16:25:04 +0200 | <kuribas> | Maybe using a free variable, like in the St Monad as proof of permission... |
2021-08-24 16:26:40 +0200 | <kuribas> | So you have a low level library which stores permission in the database. |
2021-08-24 16:27:06 +0200 | <kuribas> | And the logic to process those is kept in a small part of the code. |
2021-08-24 16:27:31 +0200 | <kuribas> | This code also propagates a phantom variable "proof" of permission. |
2021-08-24 16:28:02 +0200 | <maerwald> | https://blog.b123400.net/type-level-permission-checking/ |
2021-08-24 16:29:13 +0200 | markpythonicbtc | (~textual@2601:647:5a00:35:999f:46ac:3d0f:19d0) |
2021-08-24 16:29:29 +0200 | arjun | (~Srain@user/arjun) |
2021-08-24 16:29:30 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-08-24 16:29:51 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 16:30:03 +0200 | carter | (sid14827@brockwell.irccloud.com) () |
2021-08-24 16:30:40 +0200 | carter | (sid14827@id-14827.helmsley.irccloud.com) |
2021-08-24 16:30:57 +0200 | <kuribas> | something like that. |
2021-08-24 16:31:07 +0200 | Franciman | (~francesco@openglass.it) (Quit: WeeChat 2.3) |
2021-08-24 16:31:29 +0200 | <kuribas> | I think the free phantom variable is necessary because confidential information shouldn't *escape* from the user context. |
2021-08-24 16:31:41 +0200 | <kuribas> | So a monad which cannot be escaped. |
2021-08-24 16:32:13 +0200 | <jippiedoe> | Maybe you want to look for 'information flow control' libraries? |
2021-08-24 16:32:57 +0200 | <maerwald> | I already linked one :p |
2021-08-24 16:33:24 +0200 | zebrag | (~chris@user/zebrag) |
2021-08-24 16:34:03 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Ping timeout: 250 seconds) |
2021-08-24 16:34:26 +0200 | <kuribas> | jippiedoe: indeed... |
2021-08-24 16:35:38 +0200 | <maerwald> | java has better stuff there |
2021-08-24 16:35:48 +0200 | <maerwald> | https://www.cs.cornell.edu/jif/ |
2021-08-24 16:36:14 +0200 | meinside_ | (uid24933@id-24933.brockwell.irccloud.com) () |
2021-08-24 16:36:29 +0200 | meinside_ | (uid24933@id-24933.helmsley.irccloud.com) |
2021-08-24 16:37:17 +0200 | <maerwald> | but don't think anyone really uses that |
2021-08-24 16:37:21 +0200 | <maerwald> | in any language |
2021-08-24 16:38:35 +0200 | <kuribas> | they should, it's so easy to get a security breach... |
2021-08-24 16:38:51 +0200 | <maerwald> | no one reads langsec anymore |
2021-08-24 16:39:45 +0200 | feepo | (sid28508@id-28508.brockwell.irccloud.com) () |
2021-08-24 16:39:59 +0200 | feepo | (sid28508@id-28508.helmsley.irccloud.com) |
2021-08-24 16:45:35 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-08-24 16:46:40 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:b47e:9266:a80c:4549) (Ping timeout: 240 seconds) |
2021-08-24 16:47:04 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 16:47:15 +0200 | lbseale_ | (~lbseale@user/ep1ctetus) |
2021-08-24 16:47:19 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 16:47:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 16:48:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 16:50:27 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Ping timeout: 240 seconds) |
2021-08-24 16:53:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-24 16:54:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 16:57:31 +0200 | chris | (~chris@81.96.113.213) |
2021-08-24 16:57:35 +0200 | chris | Guest1613 |
2021-08-24 16:59:55 +0200 | lightandlight | (sid135476@id-135476.brockwell.irccloud.com) () |
2021-08-24 17:00:09 +0200 | lightandlight | (sid135476@id-135476.helmsley.irccloud.com) |
2021-08-24 17:00:49 +0200 | d0ku | (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds) |
2021-08-24 17:02:49 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-24 17:02:49 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-24 17:02:49 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-24 17:04:01 +0200 | hannessteffenhag | (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2021-08-24 17:04:47 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 17:04:50 +0200 | meejah_ | meejah |
2021-08-24 17:04:59 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 17:05:25 +0200 | <tdammers> | I think the main reason type-level permissions aren't used more widely is because in most practical systems where it matters and enough budget is available to build something like that, permissions pretty much need to be runtime-configurable |
2021-08-24 17:05:38 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 17:05:52 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 17:07:51 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 17:08:05 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 17:12:47 +0200 | lbseale__ | (~lbseale@user/ep1ctetus) |
2021-08-24 17:14:32 +0200 | bjs | (sid190364@user/bjs) () |
2021-08-24 17:14:50 +0200 | bjs | (sid190364@user/bjs) |
2021-08-24 17:16:25 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-24 17:16:25 +0200 | cbarrett | (sid192934@brockwell.irccloud.com) () |
2021-08-24 17:16:27 +0200 | lbseale_ | (~lbseale@user/ep1ctetus) (Ping timeout: 240 seconds) |
2021-08-24 17:16:39 +0200 | dpratt_ | (sid193493@id-193493.brockwell.irccloud.com) () |
2021-08-24 17:16:41 +0200 | cbarrett | (sid192934@id-192934.helmsley.irccloud.com) |
2021-08-24 17:16:58 +0200 | dpratt_ | (sid193493@id-193493.helmsley.irccloud.com) |
2021-08-24 17:21:27 +0200 | keutoi | (~keutoi@157.48.189.217) (Ping timeout: 240 seconds) |
2021-08-24 17:21:55 +0200 | skykanin | (~skykanin@115.81-166-221.customer.lyse.net) |
2021-08-24 17:23:27 +0200 | keutoi | (~keutoi@157.48.189.217) |
2021-08-24 17:23:38 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-08-24 17:24:42 +0200 | skykanin | (~skykanin@115.81-166-221.customer.lyse.net) (Client Quit) |
2021-08-24 17:25:25 +0200 | slack1256 | (~slack1256@191.125.33.180) (Remote host closed the connection) |
2021-08-24 17:25:27 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 240 seconds) |
2021-08-24 17:25:31 +0200 | skykanin | (~skykanin@115.81-166-221.customer.lyse.net) |
2021-08-24 17:25:47 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-08-24 17:25:54 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-08-24 17:26:48 +0200 | mouseghost | (~draco@user/mouseghost) (Quit: mew wew) |
2021-08-24 17:26:59 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-08-24 17:27:23 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-24 17:29:40 +0200 | chisui | (~chisui@200116b868760900d980a481ca884939.dip.versatel-1u1.de) |
2021-08-24 17:30:19 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-08-24 17:30:20 +0200 | slack1256 | (~slack1256@191.125.33.180) |
2021-08-24 17:30:28 +0200 | <chisui> | Hey, is there any documentation of the dark art of writing compiler plugins? |
2021-08-24 17:30:40 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
2021-08-24 17:31:21 +0200 | vs^ | (~vs@12.16.129.111) (Remote host closed the connection) |
2021-08-24 17:32:25 +0200 | edmundnoble | (sid229620@id-229620.brockwell.irccloud.com) () |
2021-08-24 17:32:40 +0200 | edmundnoble | (sid229620@id-229620.helmsley.irccloud.com) |
2021-08-24 17:33:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
2021-08-24 17:34:00 +0200 | <tomsmeding> | chisui: there are some notes here, not sure how extensive they are https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/extending_ghc.html |
2021-08-24 17:34:52 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-08-24 17:35:52 +0200 | <chisui> | thanks |
2021-08-24 17:36:53 +0200 | arjun | (~Srain@user/arjun) (Ping timeout: 250 seconds) |
2021-08-24 17:37:09 +0200 | <kuribas> | tdammers: is it that expensive though? |
2021-08-24 17:37:41 +0200 | <kuribas> | tdammers: would it be harder than using any monad library? |
2021-08-24 17:38:23 +0200 | flukiluke | (~flukiluke@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection) |
2021-08-24 17:39:10 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) |
2021-08-24 17:39:20 +0200 | flukiluke | (~flukiluke@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2021-08-24 17:41:13 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 250 seconds) |
2021-08-24 17:43:19 +0200 | juhp | (~juhp@128.106.188.220) (Quit: juhp) |
2021-08-24 17:43:33 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-24 17:45:47 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 240 seconds) |
2021-08-24 17:46:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 17:46:40 +0200 | oxytocat | (~alloca@user/suppi) (Ping timeout: 240 seconds) |
2021-08-24 17:47:05 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
2021-08-24 17:47:52 +0200 | oxytocat | (~alloca@user/suppi) |
2021-08-24 17:50:06 +0200 | dsrt^ | (~dsrt@12.16.129.111) |
2021-08-24 17:50:32 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) (Quit: Connection closed) |
2021-08-24 17:51:49 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 244 seconds) |
2021-08-24 17:52:59 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) |
2021-08-24 17:53:00 +0200 | lortabac | (~lortabac@62.98.34.238) (Quit: WeeChat 2.8) |
2021-08-24 17:53:53 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-08-24 17:54:20 +0200 | econo | (uid147250@user/econo) |
2021-08-24 17:56:27 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-d8c8-4f7-e34-193e.fixed6.kpn.net) (Ping timeout: 240 seconds) |
2021-08-24 17:58:33 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-24 18:00:10 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
2021-08-24 18:01:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 18:02:26 +0200 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-08-24 18:03:25 +0200 | kaychaks__ | (sid236345@id-236345.brockwell.irccloud.com) () |
2021-08-24 18:03:45 +0200 | kaychaks__ | (sid236345@id-236345.helmsley.irccloud.com) |
2021-08-24 18:04:52 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-24 18:05:02 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-24 18:05:06 +0200 | elvishjerricco | (sid237756@brockwell.irccloud.com) () |
2021-08-24 18:05:21 +0200 | elvishjerricco | (sid237756@id-237756.helmsley.irccloud.com) |
2021-08-24 18:06:22 +0200 | parseval | (sid239098@id-239098.brockwell.irccloud.com) () |
2021-08-24 18:06:36 +0200 | parseval | (sid239098@id-239098.helmsley.irccloud.com) |
2021-08-24 18:06:55 +0200 | lbseale__ | (~lbseale@user/ep1ctetus) (Remote host closed the connection) |
2021-08-24 18:08:01 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-08-24 18:08:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-24 18:11:57 +0200 | <kuribas> | hmm, but for a web service it probably doesn't matter, because each request will run in one user context... |
2021-08-24 18:12:37 +0200 | <kuribas> | So you need to just enforce that all resources are going through the permission checker... |
2021-08-24 18:12:53 +0200 | alicebudda | (~alicebudd@cold.passenger.volia.net) |
2021-08-24 18:13:44 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 18:13:47 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 240 seconds) |
2021-08-24 18:16:18 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-08-24 18:16:21 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-24 18:24:01 +0200 | alicebudda | (~alicebudd@cold.passenger.volia.net) (Quit: Client closed) |
2021-08-24 18:24:37 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-08-24 18:26:55 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-24 18:29:56 +0200 | son0p | (~ff@181.136.122.143) |
2021-08-24 18:30:11 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-08-24 18:31:28 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 252 seconds) |
2021-08-24 18:32:43 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 18:40:23 +0200 | zzz | (~yin@user/yin) () |
2021-08-24 18:40:41 +0200 | zzz | (~yin@user/yin) |
2021-08-24 18:42:51 +0200 | Sqaure | B2G2_ |
2021-08-24 18:43:12 +0200 | B2G2_ | Sqaure |
2021-08-24 18:43:16 +0200 | zebrag | (~chris@user/zebrag) |
2021-08-24 18:43:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 18:47:30 +0200 | <gaze___> | is there a nice utility for string templating in haskell but inline as a template haskell extension? |
2021-08-24 18:47:39 +0200 | <gaze___> | something closer to python’s string formatting |
2021-08-24 18:47:53 +0200 | <gaze___> | or alternatively — is there a nice utility for generating c++ code? |
2021-08-24 18:48:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-24 18:51:43 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-08-24 18:52:45 +0200 | <gaze___> | ah test.shakespeare.text |
2021-08-24 18:52:51 +0200 | <gaze___> | *text.shakespeare.text |
2021-08-24 18:53:28 +0200 | shailangsa | (~shailangs@host86-185-102-120.range86-185.btcentralplus.com) (Ping timeout: 252 seconds) |
2021-08-24 18:53:58 +0200 | oxide | (~lambda@user/oxide) |
2021-08-24 18:54:39 +0200 | arjun | (~Srain@110.235.239.43) |
2021-08-24 18:54:42 +0200 | arjun | (~Srain@110.235.239.43) (Remote host closed the connection) |
2021-08-24 18:55:56 +0200 | oxide | (~lambda@user/oxide) (Client Quit) |
2021-08-24 19:00:01 +0200 | pavonia | (~user@user/siracusa) |
2021-08-24 19:00:17 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 248 seconds) |
2021-08-24 19:00:37 +0200 | Sinbad | (~Sinbad@user/sinbad) (Ping timeout: 252 seconds) |
2021-08-24 19:03:12 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 19:05:06 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) |
2021-08-24 19:05:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Remote host closed the connection) |
2021-08-24 19:08:07 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 240 seconds) |
2021-08-24 19:12:27 +0200 | keutoi | (~keutoi@157.48.189.217) (Ping timeout: 240 seconds) |
2021-08-24 19:13:27 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 19:13:51 +0200 | Achylles | (~Achylles_@2804:431:d724:c077:94a6:8465:b517:1da8) |
2021-08-24 19:14:24 +0200 | keutoi | (~keutoi@223.238.95.231) |
2021-08-24 19:14:42 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-24 19:16:16 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-24 19:16:28 +0200 | azeem | (~azeem@dynamic-adsl-94-34-21-20.clienti.tiscali.it) |
2021-08-24 19:16:35 +0200 | cuz | (~user@38.140.58.234) |
2021-08-24 19:17:51 +0200 | jespada | (~jespada@90.254.245.194) (Ping timeout: 250 seconds) |
2021-08-24 19:18:51 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-24 19:19:54 +0200 | keutoi | (~keutoi@223.238.95.231) (Quit: leaving) |
2021-08-24 19:19:57 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-24 19:20:01 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 19:20:10 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-24 19:20:21 +0200 | jespada | (~jespada@90.254.245.194) |
2021-08-24 19:21:18 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-08-24 19:21:48 +0200 | fef | (~thedawn@user/thedawn) |
2021-08-24 19:21:49 +0200 | <buggymcbugfix> | how would i create a dependency graph of a haskell definition (not module!) wrt to its free variables? |
2021-08-24 19:22:31 +0200 | <buggymcbugfix> | automatically.. |
2021-08-24 19:22:34 +0200 | Achylles | (~Achylles_@2804:431:d724:c077:94a6:8465:b517:1da8) (Remote host closed the connection) |
2021-08-24 19:23:25 +0200 | <c_wraith> | I don't think there's anything easily adapted to that purpose. |
2021-08-24 19:24:16 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-08-24 19:25:22 +0200 | <c_wraith> | The various IDE support tools probably are the closest tools to that, but they only work with source. |
2021-08-24 19:25:37 +0200 | <buggymcbugfix> | yep, i've got the sources |
2021-08-24 19:25:44 +0200 | <c_wraith> | Of course, giving how aggressive GHC can be with inlining, source is the only reliable way to do it in the first place |
2021-08-24 19:25:56 +0200 | <buggymcbugfix> | which IDE support tools do you have in mind? |
2021-08-24 19:26:33 +0200 | <c_wraith> | anything that supports "jump to definition" has all the pieces you need, but they aren't arranged the way you want |
2021-08-24 19:26:33 +0200 | azeem | (~azeem@dynamic-adsl-94-34-21-20.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-08-24 19:27:11 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-24 19:27:54 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-08-24 19:28:41 +0200 | <buggymcbugfix> | if i want to use ghc itself for this, i'm assuming all the information i need is at the renaming stage |
2021-08-24 19:28:48 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-08-24 19:29:27 +0200 | azeem | (~azeem@dynamic-adsl-94-34-21-20.clienti.tiscali.it) |
2021-08-24 19:29:33 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 250 seconds) |
2021-08-24 19:31:09 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-08-24 19:34:38 +0200 | <buggymcbugfix> | aha, this seems interesting: https://hackage.haskell.org/package/ghc-8.10.2/docs/src/GHC.Hs.Binds.html#HsBindLR |
2021-08-24 19:35:21 +0200 | wjl | (~wjl@024-241-014-164.res.spectrum.com) |
2021-08-24 19:35:36 +0200 | wjl | (~wjl@024-241-014-164.res.spectrum.com) () |
2021-08-24 19:36:03 +0200 | <cdsmith> | Is there any way to say something like this in a rewrite rule? {-# RULES "foo" forall a. Show a => forall (x :: a). foo x = fooWithShow x #-} |
2021-08-24 19:36:40 +0200 | <cdsmith> | That fails with a syntax error, but hopefully gets the idea across |
2021-08-24 19:37:16 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 19:37:29 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 19:37:47 +0200 | <cdsmith> | If I leave out the Show, I get an error saying "Possible fix: Add Show a to the context of the RULE", which makes me hopeful! |
2021-08-24 19:38:07 +0200 | azeem | (~azeem@dynamic-adsl-94-34-21-20.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-08-24 19:38:46 +0200 | Guest42 | (~Guest42@adsl-72-50-7-6.prtc.net) |
2021-08-24 19:39:25 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Remote host closed the connection) |
2021-08-24 19:40:12 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 19:45:40 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-24 19:45:43 +0200 | zer0bitz | (~zer0bitz@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-08-24 19:46:13 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-08-24 19:46:28 +0200 | PinealGlandOptic | (~PinealGla@195.60.174.145) |
2021-08-24 19:46:36 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-08-24 19:48:06 +0200 | <carter> | cdsmith: I think you can just syntactically inject show |
2021-08-24 19:48:15 +0200 | <carter> | And … it’ll mostly work? |
2021-08-24 19:48:28 +0200 | <cdsmith> | @carter I'm not sure what that means. |
2021-08-24 19:48:29 +0200 | <lambdabot> | A rocky road is easier to travel than a stone wall. |
2021-08-24 19:48:42 +0200 | <carter> | Do it without the type constraints ? |
2021-08-24 19:49:24 +0200 | <cdsmith> | Like this? https://code.world/haskell#Pxi2jzEgRtHTbbZHuPbIfew Doesn't work |
2021-08-24 19:49:48 +0200 | <carter> | Hrmm |
2021-08-24 19:50:17 +0200 | <cdsmith> | I would love to "add Show a to the context of the RULE" as suggested. I just cannot find the syntax to do so |
2021-08-24 19:51:26 +0200 | <carter> | cdsmith: the issue may also be that foralls in rules also are used for quantifying over syntax? |
2021-08-24 19:51:41 +0200 | <carter> | fgaz: you have any ideas here ? |
2021-08-24 19:52:13 +0200 | <carter> | This is actually a kinda cool problem you’ve hit |
2021-08-24 19:52:55 +0200 | <carter> | cdsmith: I pulled my back this AM, but I totally will dig into this :) |
2021-08-24 19:52:59 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 19:53:16 +0200 | <cdsmith> | Yikes! Hope your back gets better quickly |
2021-08-24 19:54:13 +0200 | <cdsmith> | You definitely need two foralls if you want type-level explicit quantifiers. That's clear from the GHC user guide. |
2021-08-24 19:54:30 +0200 | <cdsmith> | like: forall a. forall (x :: a). ... |
2021-08-24 19:54:54 +0200 | <cdsmith> | But none of the user guide examples have a context for the RULE |
2021-08-24 19:58:35 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-08-24 19:59:21 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2021-08-24 20:00:05 +0200 | zer0bitz | (~zer0bitz@dsl-hkibng31-58c384-213.dhcp.inet.fi) |
2021-08-24 20:00:53 +0200 | <cdsmith> | Builds, but doesn't work: https://code.world/haskell#Pd4WZhPErm5DuwdYa4YzL8g |
2021-08-24 20:01:55 +0200 | gensyst | (gensyst@user/gensyst) |
2021-08-24 20:03:32 +0200 | mud | (~mud@user/kadoban) (Remote host closed the connection) |
2021-08-24 20:03:35 +0200 | <gensyst> | What's the way to stream a list to/from files? If the byte length of each element is not always same, how do you indicate a "separator"? |
2021-08-24 20:04:23 +0200 | smarton | (~smarton@gnu/webmaster/smarton) |
2021-08-24 20:04:36 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-24 20:04:50 +0200 | <cdsmith> | gensyst: There are several ways: lazy I/O is convenient for scripting, but not suitable for long-running programs. Libraries like conduit, pipes, and io-streams are better for long-running programs. |
2021-08-24 20:05:40 +0200 | <gensyst> | cdsmith, yes that's what i actually meant by "list".. even with conduit, i still have the question how the data is read back into haskell |
2021-08-24 20:06:03 +0200 | <gensyst> | How does "it" know where to separate? |
2021-08-24 20:06:04 +0200 | Guest42 | (~Guest42@adsl-72-50-7-6.prtc.net) (Ping timeout: 246 seconds) |
2021-08-24 20:06:53 +0200 | <gensyst> | conduit just gets me bytestring chunks i presume |
2021-08-24 20:07:12 +0200 | <gensyst> | (when reading a file) |
2021-08-24 20:07:58 +0200 | ubert | (~Thunderbi@178.165.204.112.wireless.dyn.drei.com) |
2021-08-24 20:08:59 +0200 | smarton | (~smarton@gnu/webmaster/smarton) (Read error: Connection reset by peer) |
2021-08-24 20:09:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Remote host closed the connection) |
2021-08-24 20:09:45 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-08-24 20:10:17 +0200 | smarton | (~smarton@gnu/webmaster/smarton) |
2021-08-24 20:12:41 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-08-24 20:12:53 +0200 | <cdsmith> | Right. I also lets you unpush leftovers. So you can read a chunk, look for the next separator, and either emit an element downstream and then unpush the leftover, or else block to read more if you don't have a complete element |
2021-08-24 20:13:12 +0200 | <cdsmith> | There may be combinators to make that sort of thing easier. I honestly am not knowledgable about conduit off-hand |
2021-08-24 20:13:23 +0200 | <cdsmith> | Looking at docs now to see if there's something I see there |
2021-08-24 20:15:23 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-08-24 20:15:58 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-08-24 20:17:07 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-08-24 20:17:10 +0200 | <carter> | cdsmith: yeah I don’t think that other rule will ever run except in code in ghci |
2021-08-24 20:17:23 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 20:18:11 +0200 | gentauro | (~gentauro@user/gentauro) |
2021-08-24 20:18:34 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-24 20:19:35 +0200 | <cdsmith> | gensyst: Looks like takeExactlyUntilE might be your friend here if you want to take everything up to a field separator. Or line, if that field separator is \n |
2021-08-24 20:19:35 +0200 | smarton | (~smarton@gnu/webmaster/smarton) (Read error: Connection reset by peer) |
2021-08-24 20:20:14 +0200 | smarton | (~smarton@gnu/webmaster/smarton) |
2021-08-24 20:20:34 +0200 | wrengr_away | (~wrengr@56.4.82.34.bc.googleusercontent.com) (Quit: leaving) |
2021-08-24 20:20:45 +0200 | <gensyst> | cdsmith, ok so it all boils down to some sort of magic separators? |
2021-08-24 20:20:50 +0200 | <gensyst> | (if byte length of each is not fixed) |
2021-08-24 20:21:40 +0200 | <cdsmith> | Sure, that's one way to do it. Another would be to use some kind of parser. Depends on what your input data looks like. If you get to choose, then separating with \n and using linesUnbounded or something like that seems good. |
2021-08-24 20:23:14 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-08-24 20:23:31 +0200 | cohn | (~noone@user/cohn) (Quit: leaving) |
2021-08-24 20:23:44 +0200 | <gensyst> | cdsmith, ah i think your "unpush leftovers" is the key. combined with "decodeExPortionWith" here: https://hackage.haskell.org/package/store-0.7.12/docs/Data-Store.html |
2021-08-24 20:25:16 +0200 | mud | (~mud@user/kadoban) |
2021-08-24 20:25:26 +0200 | <cdsmith> | gensyst: Yes, that will work. https://hackage.haskell.org/package/conduit-1.3.4.1/docs/Data-Conduit.html#v:leftover is how you unread the rest |
2021-08-24 20:25:55 +0200 | <gensyst> | thanks! |
2021-08-24 20:26:54 +0200 | maroloccio | (~marolocci@37.100.40.252) (Quit: WeeChat 3.0) |
2021-08-24 20:27:10 +0200 | smarton | (~smarton@gnu/webmaster/smarton) (Leaving) |
2021-08-24 20:29:28 +0200 | wrengr | (~wrengr@56.72.82.34.bc.googleusercontent.com) |
2021-08-24 20:30:03 +0200 | <cdsmith> | carter: Yeah, I think that required x to be polymorphic, which isn't what I want |
2021-08-24 20:30:43 +0200 | <cdsmith> | So I'm back with https://code.world/haskell#PPy7SH19I_3Pu4KUz7s3K_g and no idea how to do the suggested fix |
2021-08-24 20:31:33 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) |
2021-08-24 20:33:34 +0200 | gensyst | (gensyst@user/gensyst) (Quit: Leaving) |
2021-08-24 20:34:34 +0200 | PinealGlandOptic | (~PinealGla@195.60.174.145) () |
2021-08-24 20:37:31 +0200 | <carter> | So …. I think it’s actually impossible in ghcs current rule engine to express what you want. It might be possible in a future ghc or a different system. Partly because type class constraints are only solved at type checking time, and this rule kinda creates a new type class dictionary pass through site that didn’t exist at the time of type checking. Because the rule that would introduce it hasn’t run till after type checking |
2021-08-24 20:38:36 +0200 | <carter> | Like, you could imagine some sort of version of rules that sortah works backward to add those inference constraints. But I think the only fix you can do is add a show constraint to the parent |
2021-08-24 20:38:47 +0200 | <carter> | cdsmith: wait! There’s a tool you can use |
2021-08-24 20:38:53 +0200 | <carter> | That might do what you want |
2021-08-24 20:39:45 +0200 | <carter> | https://github.com/well-typed/recover-rtti … would this work for you or does it need to run in ghcjs? |
2021-08-24 20:40:23 +0200 | <carter> | In which case, we could just ffi bind an evil js print fucntion as a -> String and just use that ? |
2021-08-24 20:41:02 +0200 | <carter> | Would |
2021-08-24 20:41:05 +0200 | <carter> | That work? |
2021-08-24 20:41:37 +0200 | <cdsmith> | I want this to work in as many places as possible. Found https://stackoverflow.com/questions/19745038/ghc-rewrite-rule-specialising-a-function-for-a-type-c… which points to https://hackage.haskell.org/package/ifcxt, which is bitrotted but looks easy to understand and reproduce in HMock |
2021-08-24 20:42:08 +0200 | <cdsmith> | So I think that solves it (as well as explaining why RULES aren't viable, just as you did) |
2021-08-24 20:43:03 +0200 | <carter> | Ohhh the bit about not being in a type class? |
2021-08-24 20:43:16 +0200 | <carter> | I don’t think that’s even the issue, though it’s related |
2021-08-24 20:44:12 +0200 | <carter> | Hrmmm. Yeah this gets into needing something like multimethods for runtime attempts to work |
2021-08-24 20:44:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 20:45:10 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-24 20:46:43 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 20:46:58 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-24 20:47:08 +0200 | _crazygirl | (~hola@213.94.16.140) |
2021-08-24 20:48:03 +0200 | oxide | (~lambda@user/oxide) |
2021-08-24 20:48:25 +0200 | _crazygirl | (~hola@213.94.16.140) (Killed (ozone (No Spam))) |
2021-08-24 20:52:44 +0200 | remedan | (~remedan@balak.me) (Quit: Bye!) |
2021-08-24 20:54:30 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-08-24 20:57:28 +0200 | Sinbad | (~Sinbad@user/sinbad) |
2021-08-24 20:57:40 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-24 21:01:29 +0200 | remedan | (~remedan@balak.me) |
2021-08-24 21:04:16 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-08-24 21:05:19 +0200 | mei | (~mei@user/mei) (Ping timeout: 250 seconds) |
2021-08-24 21:05:46 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-08-24 21:07:10 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-08-24 21:07:50 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) |
2021-08-24 21:08:06 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-24 21:11:31 +0200 | cuz | (~user@38.140.58.234) (Ping timeout: 252 seconds) |
2021-08-24 21:12:27 +0200 | buggymcbugfix | (~buggymcbu@p4fcaa0a6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-08-24 21:14:44 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-08-24 21:17:58 +0200 | d0ku | (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) |
2021-08-24 21:18:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-24 21:22:26 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Remote host closed the connection) |
2021-08-24 21:23:25 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-24 21:23:25 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-24 21:23:25 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-24 21:24:02 +0200 | mniip_ | mniip |
2021-08-24 21:26:27 +0200 | cuz | (~user@38.140.58.234) |
2021-08-24 21:29:16 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-24 21:29:41 +0200 | maroloccio | (~marolocci@37.100.40.252) |
2021-08-24 21:30:53 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-24 21:30:53 +0200 | lavaman | (~lavaman@98.38.249.169) (Read error: Connection reset by peer) |
2021-08-24 21:31:04 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-24 21:31:19 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 252 seconds) |
2021-08-24 21:32:30 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-24 21:33:42 +0200 | hseg | (~gesh@IGLD-84-228-238-79.inter.net.il) |
2021-08-24 21:34:23 +0200 | <zzz> | Data.Graph from containers or fgl? |
2021-08-24 21:34:54 +0200 | <Rembane_> | zzz: You could also use Data.Map. |
2021-08-24 21:35:12 +0200 | <zzz> | Rembane_: how so? |
2021-08-24 21:35:41 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-24 21:38:11 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-08-24 21:39:14 +0200 | qbt | (~edun@user/edun) (Remote host closed the connection) |
2021-08-24 21:39:51 +0200 | <monochrom> | Also [] and [[]] |
2021-08-24 21:41:26 +0200 | <Rembane_> | zzz: A graph has many representations, a mapping between nodes is one of them. OTOH fgl is fun! |
2021-08-24 21:43:00 +0200 | <monochrom> | The fgl paper would be fun to read. I don't find fgl fun to use. Unless "fun" means many type parameters and many classes. |
2021-08-24 21:48:13 +0200 | alx741 | (~alx741@181.196.68.94) (Ping timeout: 250 seconds) |
2021-08-24 21:49:28 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-08-24 21:51:47 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2021-08-24 21:53:23 +0200 | <zzz> | this seems fun: https://hackage.haskell.org/package/algebraic-graphs |
2021-08-24 21:57:09 +0200 | maroloccio | (~marolocci@37.100.40.252) (Quit: WeeChat 3.0) |
2021-08-24 21:58:56 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
2021-08-24 21:59:45 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 22:00:30 +0200 | slack1256 | (~slack1256@191.125.33.180) (Remote host closed the connection) |
2021-08-24 22:01:13 +0200 | alx741 | (~alx741@186.178.108.43) |
2021-08-24 22:03:43 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-24 22:05:26 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 250 seconds) |
2021-08-24 22:05:34 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-08-24 22:05:53 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-08-24 22:07:29 +0200 | Guest1613 | (~chris@81.96.113.213) (Ping timeout: 248 seconds) |
2021-08-24 22:08:09 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-24 22:08:38 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .) |
2021-08-24 22:08:49 +0200 | mrmonday | (robert@2a01:7e00::f03c:91ff:fe24:1bd) |
2021-08-24 22:13:20 +0200 | talismanick | (~user@2601:644:8500:8350::cc04) |
2021-08-24 22:17:47 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
2021-08-24 22:18:27 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 22:19:51 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds) |
2021-08-24 22:21:43 +0200 | meriadoc | (~meriadoc@097-086-004-112.res.spectrum.com) |
2021-08-24 22:22:23 +0200 | meriadoc | (~meriadoc@097-086-004-112.res.spectrum.com) (WeeChat 2.3) |
2021-08-24 22:22:55 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 22:25:08 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-08-24 22:27:13 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Ping timeout: 250 seconds) |
2021-08-24 22:29:02 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-08-24 22:31:20 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-24 22:33:10 +0200 | Sinbad | (~Sinbad@user/sinbad) (Quit: WeeChat 3.2) |
2021-08-24 22:33:28 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-08-24 22:36:19 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
2021-08-24 22:44:33 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
2021-08-24 22:48:31 +0200 | aman | (~aman@user/aman) (Quit: aman) |
2021-08-24 22:49:23 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 22:51:48 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 250 seconds) |
2021-08-24 22:52:10 +0200 | mcfilib | (sid302703@user/mcfilib) () |
2021-08-24 22:52:25 +0200 | mcfilib | (sid302703@user/mcfilib) |
2021-08-24 22:54:31 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 250 seconds) |
2021-08-24 22:58:05 +0200 | scav | (sid309693@id-309693.brockwell.irccloud.com) () |
2021-08-24 22:58:20 +0200 | scav | (sid309693@id-309693.helmsley.irccloud.com) |
2021-08-24 22:58:36 +0200 | MQ-17J | (~MQ-17J@2607:fb90:888c:3321:7349:4005:9638:7e44) |
2021-08-24 23:00:33 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b9534e4a445cd6b407eb5.dip0.t-ipconnect.de) |
2021-08-24 23:01:15 +0200 | MQ-17J | (~MQ-17J@2607:fb90:888c:3321:7349:4005:9638:7e44) (Read error: Connection reset by peer) |
2021-08-24 23:01:21 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) () |
2021-08-24 23:01:36 +0200 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2021-08-24 23:02:44 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-08-24 23:03:26 +0200 | gregberns__ | (sid315709@id-315709.brockwell.irccloud.com) () |
2021-08-24 23:03:40 +0200 | gregberns__ | (sid315709@id-315709.helmsley.irccloud.com) |
2021-08-24 23:04:27 +0200 | d0ku | (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2021-08-24 23:05:11 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-08-24 23:05:16 +0200 | remedan | (~remedan@balak.me) (Quit: Bye!) |
2021-08-24 23:05:57 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-24 23:08:49 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) (Remote host closed the connection) |
2021-08-24 23:09:49 +0200 | remedan | (~remedan@balak.me) |
2021-08-24 23:10:21 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-08-24 23:10:45 +0200 | remedan | (~remedan@balak.me) (Client Quit) |
2021-08-24 23:10:58 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-08-24 23:13:02 +0200 | remedan | (~remedan@balak.me) |
2021-08-24 23:15:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-24 23:15:19 +0200 | ubert | (~Thunderbi@178.165.204.112.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
2021-08-24 23:18:57 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 248 seconds) |
2021-08-24 23:23:27 +0200 | <nshepperd> | i need to send in a patch to that package |
2021-08-24 23:23:45 +0200 | <nshepperd> | The documented complexity for 'vertexCount :: AdjacencyIntMap -> Int' is wrong |
2021-08-24 23:23:47 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
2021-08-24 23:24:16 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 23:24:49 +0200 | <nshepperd> | because IntMap.size is o(n) |
2021-08-24 23:30:40 +0200 | jespada | (~jespada@90.254.245.194) (Ping timeout: 252 seconds) |
2021-08-24 23:30:55 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
2021-08-24 23:31:07 +0200 | remedan | (~remedan@balak.me) (Quit: Bye!) |
2021-08-24 23:32:07 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-24 23:32:28 +0200 | parisienne | (sid383587@id-383587.brockwell.irccloud.com) () |
2021-08-24 23:32:42 +0200 | parisienne | (sid383587@id-383587.helmsley.irccloud.com) |
2021-08-24 23:33:20 +0200 | NiKaN | (sid385034@id-385034.brockwell.irccloud.com) () |
2021-08-24 23:33:40 +0200 | jespada | (~jespada@90.254.245.194) |
2021-08-24 23:34:05 +0200 | NiKaN | (sid385034@id-385034.helmsley.irccloud.com) |
2021-08-24 23:34:14 +0200 | oldsk00l | (~znc@ec2-3-120-38-228.eu-central-1.compute.amazonaws.com) |
2021-08-24 23:34:59 +0200 | gaze___ | (sid387101@id-387101.brockwell.irccloud.com) () |
2021-08-24 23:35:13 +0200 | gaze___ | (sid387101@id-387101.helmsley.irccloud.com) |
2021-08-24 23:37:13 +0200 | remedan | (~remedan@balak.me) |
2021-08-24 23:40:45 +0200 | mouseghost | (~draco@user/mouseghost) |
2021-08-24 23:42:07 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-08-24 23:43:00 +0200 | remedan | (~remedan@balak.me) (Quit: Bye!) |
2021-08-24 23:45:04 +0200 | remedan | (~remedan@balak.me) |
2021-08-24 23:47:42 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-08-24 23:49:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-24 23:51:11 +0200 | markpythonicbtc | (~textual@2601:647:5a00:35:999f:46ac:3d0f:19d0) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-08-24 23:51:45 +0200 | markpythonicbtc | (~textual@2601:647:5a00:35:999f:46ac:3d0f:19d0) |
2021-08-24 23:53:45 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
2021-08-24 23:54:59 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-24 23:55:12 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-24 23:57:36 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) |
2021-08-24 23:58:50 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-08-24 23:59:14 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-24 23:59:29 +0200 | cuz | (~user@38.140.58.234) (Ping timeout: 248 seconds) |