Logs on 2022-04-26 (liberachat/#haskell)
| 00:00:26 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 00:01:23 | × | mshiraeeshi quits (~shiraeesh@46.34.207.121) (Ping timeout: 260 seconds) |
| 00:03:37 | × | gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 00:03:37 | × | xff0x_ quits (~xff0x@om126158204045.30.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 00:03:44 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 246 seconds) |
| 00:04:45 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds) |
| 00:05:50 | <abastro[m]> | Antennas for wifi? |
| 00:07:02 | <whatsupdoc> | Why learn haskell? It's not being used in industry |
| 00:07:44 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 00:08:17 | → | vysn joins (~vysn@user/vysn) |
| 00:08:28 | <monochrom> | Troll. |
| 00:08:58 | <abastro[m]> | Yea |
| 00:09:06 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 00:09:08 | <dibblego> | gah! what have I been doing for the last 20 years!? |
| 00:09:32 | <monochrom> | dibblego you should learn the violin too, it is not used in industry :) |
| 00:09:42 | <abastro[m]> | Lmaooo |
| 00:09:46 | <dibblego> | that would be yet another 20 wasted years, I'm onto you |
| 00:09:57 | <abastro[m]> | Great |
| 00:10:06 | <monochrom> | But but but you'll get more love from twosetviolin. |
| 00:10:23 | <abastro[m]> | The risk is, you might end up becoming violinist |
| 00:10:24 | <dibblego> | yeah but in 20 years, someone who definitely knows wtf they are talking about will break this news to me |
| 00:12:13 | <Axman6> | shit, does that mean I haven't had a job for the last seven years programming in Haskell either? |
| 00:12:22 | <dibblego> | yeah man devo |
| 00:13:21 | <Axman6> | My financial stability is a lie, whatever will I do! |
| 00:13:46 | <Axman6> | Maybe I should tell the stock exchange that their clearing and settlement system doesn't exist |
| 00:13:48 | <whatsupdoc> | Gosh it really is a cult |
| 00:13:57 | <monochrom> | Financial stability is a lie, period. >:) |
| 00:14:02 | <dibblego> | oh no more bad news! |
| 00:14:04 | <Axman6> | This is true |
| 00:14:19 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 00:14:56 | <monochrom> | Why are we tolerating whatsupdoc? They are not contributing. |
| 00:14:57 | ChanServ | sets mode +o monochrom |
| 00:15:03 | monochrom | sets mode +b *!*@id-509081.hampstead.irccloud.com |
| 00:15:03 | whatsupdoc | is kicked by monochrom (whatsupdoc) |
| 00:15:26 | monochrom | sets mode -o monochrom |
| 00:15:31 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds) |
| 00:15:38 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 00:16:39 | × | ralu1 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 256 seconds) |
| 00:17:45 | <Axman6> | "whatsupdoc: Tell mono to unban me geez, I asked a genuine question and got attacked by y'all" |
| 00:17:58 | Arathorn | is now known as Matthew|m |
| 00:18:09 | <dolio> | Haha. |
| 00:19:42 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 00:20:04 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 250 seconds) |
| 00:20:10 | <Axman6> | it gets better |
| 00:20:19 | <Axman6> | "whatsupdoc: I'm gonna need y'all when I start learning Haskell later this year, damn " |
| 00:21:00 | <Axman6> | http://i0.kym-cdn.com/entries/icons/mobile/000/023/180/notsurprisedkirk.jpg |
| 00:24:25 | → | acarrico1 joins (~acarrico@dhcp-68-142-48-19.greenmountainaccess.net) |
| 00:24:28 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 00:25:10 | → | laolmtdea^ joins (~laolmtdea@50.227.69.228) |
| 00:26:50 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 00:29:06 | <sm> | why ban so quickly ? do you know that person ? |
| 00:29:42 | <Bulby[m]> | powerlevel 👀 |
| 00:31:16 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 00:32:21 | → | russruss joins (~russruss@my.russellmcc.com) |
| 00:33:31 | <abastro[m]> | Wow how could one change the power level like this? |
| 00:35:04 | × | laolmtdea^ quits (~laolmtdea@50.227.69.228) (Ping timeout: 272 seconds) |
| 00:35:56 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 00:40:23 | <monochrom> | "Gosh it really is a cult" proves disingenuosness. I don't need to know the person. I just need to know they are adding noise. |
| 00:40:47 | <dibblego> | I support the ban and was planning it after having my fun. |
| 00:41:07 | <Axman6> | SO I kept talking to whatsupdoc, and the basis of their opinion is that the company they work for doesn't use Haskell, therefore it isn't used in industry. Also apparently Google don't use HAskell, despire having many open source Haskell projects - for anyone wondering where those well educated statements come from |
| 00:41:21 | <dibblego> | Axman6: please send them to #haskell-ops |
| 00:41:34 | <monochrom> | Also measuring from the start "Why learn haskell? It's not being used in industry" it took me 7 minutes. That was more than they deserved. |
| 00:41:43 | <Axman6> | Haskell* despite* |
| 00:42:38 | → | hololeap joins (~hololeap@user/hololeap) |
| 00:42:47 | <monochrom> | No, please don't spend time on a time sink. |
| 00:43:38 | <exarkun> | It doesn't seem like the most justified ban in the world to me. |
| 00:46:07 | <Axman6> | I would also have said it was too soon for a ban too, kicking or a timed ban - IMO bans should be for patterns of behaviour, and three messages isn't really that |
| 00:47:33 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 00:47:38 | <hpc> | 100% of those three messages were classic #haskell troll lines though |
| 00:48:18 | <dibblego> | I support it 100%, come to #haskell-ops, let's agree to not be a dick head, problem solved |
| 00:48:27 | <monochrom> | Correction: 20 minutes measuring from the real start, the "worship" line. |
| 00:48:49 | <sm> | I know we're no longer a young enthusiastic language community, and I know defending against spam is tricky and thankless, but I'd hate to see this channel continue to slide towards an intolerant cliquish atmosphere. It used to be known as the friendliest IRC channel. |
| 00:49:00 | <hpc> | in any event, finally we can get back to the real topic of #haskell... |
| 00:49:01 | <hpc> | pringles |
| 00:49:14 | <Axman6> | I agree, though apparently they also want to learn Haskell, for learning sake (not a course). Wouldn't be the first time we've turned a troll into a ~convert~ useful member of society |
| 00:49:50 | <Axman6> | What's the deal with the new pringles recipe and the new shape??? |
| 00:49:59 | <Axman6> | Absolute junk |
| 00:50:02 | <monochrom> | IMO they say "I want to learn" afterwards to scam you for sympathy. |
| 00:50:22 | <hpc> | Axman6: it's to support 5G, of course :D |
| 00:50:23 | <monochrom> | For 20 minutes they had a chance to say that before I banned. |
| 00:50:37 | <Axman6> | They got no sympathy, I spointed out clearly how dump insulting people you need help from is |
| 00:51:10 | <Axman6> | pointed* dumb* bloody hell |
| 00:51:53 | <hololeap> | how do people feel about writing out pragmas like "Language" instead of "LANGUAGE" |
| 00:52:06 | <monochrom> | I write "language". |
| 00:52:11 | <Axman6> | hololeap: that's worse than the new pringles recipe |
| 00:52:16 | <exarkun> | why not LanGuage |
| 00:52:50 | <Axman6> | LanguaGe - lang-gua-zhay |
| 00:52:51 | <monochrom> | But to answer, yeah I'm OK with Language. :) |
| 00:53:07 | <hololeap> | it feels a little less loud |
| 00:53:27 | <monochrom> | Yeah this is why I go the final step, language :) |
| 00:53:32 | <Axman6> | it's a PRAGMA, it's supposed to be LOUD so the compiler can hear it! |
| 00:53:47 | <hpc> | go full latex - LaNgUaGe |
| 00:53:54 | <monochrom> | I think the {-# is already loud enough. |
| 00:54:13 | <hpc> | i never knew it wasn't case-sensitive |
| 00:54:25 | <monochrom> | Yeah I found out fairly recently too. |
| 00:54:27 | <Axman6> | It''s literally a comment, the compiler should be ignoring it, hence the caps to make it take notice! |
| 00:54:32 | <hpc> | gonna have to start doing all-lowercase now, like how i write powershell |
| 00:55:00 | <monochrom> | Unfortunately {-# language gadts #-} probably doesn't fly |
| 00:55:26 | <hololeap> | that's why I prefer Language; it fits with the CamelCase of the extensions |
| 00:55:47 | <monochrom> | I still hate camel case. |
| 00:56:15 | <hpc> | that's what llamAcasE is for |
| 00:56:42 | <hololeap> | lol wat |
| 00:57:13 | <hpc> | it's camelcase for left-handed people |
| 00:57:39 | <hololeap> | so llamas are polar opposites of camels? |
| 00:58:17 | <hololeap> | perhaps even tropical opposites |
| 00:58:20 | <hpc> | cartesian opposite - polar opposite is sləwec |
| 00:58:49 | <hpc> | haha, tropical opposites |
| 00:59:27 | × | alp_ quits (~alp@user/alp) (Ping timeout: 240 seconds) |
| 01:00:07 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 01:05:16 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 01:05:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 01:07:01 | → | xff0x_ joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) |
| 01:08:27 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 01:13:42 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds) |
| 01:13:43 | <hololeap> | @unmtl ExceptT e (ListT m) a |
| 01:13:43 | <lambdabot> | m ([] (Either e a)) |
| 01:14:03 | <hololeap> | @unmtl ListT (ExceptT e m) a |
| 01:14:03 | <lambdabot> | m (Either e ([] a)) |
| 01:24:21 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 01:24:29 | → | andrey__ joins (~andrey@p200300dbcf119000377e8be0c29d44c5.dip0.t-ipconnect.de) |
| 01:26:55 | × | andrey_ quits (~andrey@p5b1652a4.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 01:27:23 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 246 seconds) |
| 01:34:17 | × | kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
| 01:36:28 | → | Guest81 joins (~Guest81@128.177.72.242) |
| 01:41:37 | → | frost joins (~frost@user/frost) |
| 01:43:02 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 01:45:12 | × | Hiring quits (~Hiring@31.222.238.38) (Ping timeout: 252 seconds) |
| 01:54:26 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:55:49 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 01:57:14 | → | fef joins (~thedawn@user/thedawn) |
| 01:57:29 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 01:58:21 | → | Core4993 joins (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) |
| 02:00:14 | → | oxide joins (~lambda@user/oxide) |
| 02:00:33 | ezzieygu1wuf | is now known as ezzieyguywuf |
| 02:00:59 | × | oxide quits (~lambda@user/oxide) (Client Quit) |
| 02:02:07 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 02:02:55 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Read error: Connection reset by peer) |
| 02:03:13 | → | zaquest joins (~notzaques@5.130.79.72) |
| 02:03:14 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 02:09:17 | → | parsnip joins (~parsnip@user/parsnip) |
| 02:09:37 | <parsnip> | where did `xs` notation come from? |
| 02:10:12 | <shachaf> | English, I imagine. |
| 02:10:48 | <monochrom> | plural of x :) |
| 02:10:48 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Read error: Connection reset by peer) |
| 02:11:33 | <parsnip> | did haskell start this convention? |
| 02:11:34 | <Axman6> | while x's would be valid Haskell, it's longer, and less gramatically correct than xs |
| 02:12:35 | <shachaf> | 's should be used as a possessive. |
| 02:13:01 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 02:13:03 | <parsnip> | i think apostrophe is allowed, just not common |
| 02:13:04 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 02:13:05 | → | Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
| 02:13:23 | <parsnip> | maybe x:X was not allowed in ML |
| 02:13:48 | × | Core4993 quits (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Read error: Connection reset by peer) |
| 02:14:01 | → | Core4993 joins (~Core4993@210.12.195.3) |
| 02:14:08 | <parsnip> | i mean i have many x's is allowed in english |
| 02:14:17 | <monochrom> | Ah ML used this convention too. Not sure who started, but certainly at least ML. |
| 02:14:29 | <parsnip> | so it's probably an issue of casing? |
| 02:14:30 | × | Core4993 quits (~Core4993@210.12.195.3) (Read error: Connection reset by peer) |
| 02:14:38 | <parsnip> | like, uppercase changes meaning? |
| 02:14:44 | → | Core4993 joins (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) |
| 02:14:45 | <monochrom> | x:X is allowed in ML. They don't actually have a "capital means constructor" rule. |
| 02:14:55 | <parsnip> | because in math, you are more likely to write `for x in X` |
| 02:15:05 | <parsnip> | the big set is upper case |
| 02:15:09 | × | Core4993 quits (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Read error: Connection reset by peer) |
| 02:15:17 | <parsnip> | the little element in lower case |
| 02:15:24 | <Axman6> | I'm not sure I would say that that's what x:xs means though |
| 02:15:36 | <monochrom> | Well, they chose xs over X. |
| 02:15:38 | <Axman6> | and using it like that would be confusing, since x is specifically not in xs |
| 02:16:00 | <Axman6> | it's x and the other xs |
| 02:16:06 | <[Leary]> | That convention translates to x :: X. |
| 02:16:10 | <monochrom> | ML may disallow apostrophe though. |
| 02:16:29 | <Axman6> | if we were talking about list comprehensions it would make more sense to use x <- X |
| 02:17:26 | <[Leary]> | You don't just call any list of xs X; that should have some kind of completeness. |
| 02:17:40 | → | oxide joins (~lambda@user/oxide) |
| 02:17:41 | <parsnip> | my memory is bad, don't haskellers write x <- xs ? |
| 02:17:53 | <Axman6> | yes |
| 02:18:24 | → | jargon joins (~jargon@174-22-223-120.phnx.qwest.net) |
| 02:18:39 | <monochrom> | I am not sure you can use rational reasoning to understand naming. |
| 02:18:53 | <parsnip> | lol |
| 02:19:03 | <Axman6> | r/namenerdcirclejerk would tend to agree with you |
| 02:19:29 | <monochrom> | Both xs and X could made sense. A ton more alternatives would too. Some bigshot made a choice. End of story. |
| 02:20:23 | → | doppo joins (~doppo@2604:180::e0fc:a07f) |
| 02:20:23 | <monochrom> | I think the Prolog people started X:Xs. (It's [X|Xs] in their actual syntax.) |
| 02:20:29 | ← | doppo parts (~doppo@2604:180::e0fc:a07f) () |
| 02:21:35 | <monochrom> | And in Prolog it couldn't be x:xs. Lower case for constant atoms (like atoms in Scheme), capitalized for parameters (in general variables waiting for unification). |
| 02:21:50 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds) |
| 02:22:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 02:22:14 | <monochrom> | Err, I mean in Prolog it couldn't be x:X i.e. [x|X]. |
| 02:22:49 | <monochrom> | (To answer why they didn't go with the "x∈X" convention.) |
| 02:24:27 | <monochrom> | I guess it pays off that I signed up to be a TA of a course that involved Prolog heh. Now I know more than I ever want to. Much regret. :) |
| 02:24:28 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds)) |
| 02:24:47 | → | Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
| 02:25:37 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 02:26:22 | → | AlexNoo_ joins (~AlexNoo@94.233.241.106) |
| 02:26:44 | <monochrom> | Oh and I also had to mark an assignment that went "choose one of these six topics and write a tutorial" and I had to mark those who chose "C++ lambda, map, filter, fold" so now I also know way too much C++ than I'm comfortable with haha. |
| 02:28:06 | <monochrom> | On the bright side I finally understand what's "using t = Myclass::value_type" and why sometimes it has to be "using t = typename Myclass::value_type". |
| 02:28:57 | <abastro[m]> | Eww C++ lambda |
| 02:29:01 | <Axman6> | ... can you explain why? |
| 02:29:04 | × | AlexZenon quits (~alzenon@178.34.160.91) (Ping timeout: 272 seconds) |
| 02:29:39 | × | AlexNoo quits (~AlexNoo@178.34.160.91) (Ping timeout: 240 seconds) |
| 02:29:42 | × | Alex_test quits (~al_test@178.34.160.91) (Ping timeout: 272 seconds) |
| 02:29:48 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-e10b-aeba-a8b3-e9aa.res6.spectrum.com) (Remote host closed the connection) |
| 02:31:20 | <monochrom> | OK I should s/understand/know/ :) |
| 02:32:25 | <monochrom> | If it begins with say "template<typename Myclass>" then there is something about "Myclass::value_type is a dependent name, assumed non-type unless you say typename". |
| 02:32:29 | <Axman6> | "Please see sections X, Y, Z and Q.2.1a in the C++2X standard and it should become clear, if you read all parts of the standard that those sections depend on" |
| 02:32:46 | <monochrom> | Nah I just read Stroustrup's. |
| 02:33:29 | <abastro[m]> | Oh no |
| 02:33:43 | <abastro[m]> | Pls do not get converted to C++ |
| 02:33:52 | <shachaf> | Axman6: The reason is that the C++ grammar is awful (partly inherited from C, though C++ made it much worse, and introduced all these problems). |
| 02:34:02 | <monochrom> | ikr? I can feel the Stockholm syndrome... |
| 02:34:22 | → | Alex_test joins (~al_test@94.233.241.106) |
| 02:34:30 | × | Guest81 quits (~Guest81@128.177.72.242) (Ping timeout: 276 seconds) |
| 02:34:36 | <shachaf> | There are a bunch of ambiguities that need this sort of clarification. |
| 02:34:40 | → | AlexZenon joins (~alzenon@94.233.241.106) |
| 02:34:45 | <Axman6> | I feel like there's a lot to like about C++, except the language itself |
| 02:35:20 | <shachaf> | For example, "f<x>(y);" can be parsed as "f applied to template argument x and regular argument y", or as "(f < x) > (y);". |
| 02:35:42 | <monochrom> | People whined about Ada. I feel that C++ is the rightful heir. |
| 02:35:42 | <shachaf> | To disambugate there you need to know what f is. Which normally you do, but not if f itself is a template argument. |
| 02:35:55 | <Axman6> | I like many of the ideas, having a lot of control over how to specialise things, allocate things, inline things, data layouts etc, but god there's a lot of awful crap in the language |
| 02:36:18 | <monochrom> | expressive but bureacratic. |
| 02:36:21 | <Axman6> | I feel people whine about Ada without knowing Ada - I enjoyed Ada but it did feel very unfamiliart |
| 02:36:25 | <Axman6> | -t |
| 02:36:40 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 272 seconds) |
| 02:36:55 | <shachaf> | There's a similar ambiguity with "t * x;" -- is it declaring a pointer x, or multiplying t by x? You need to know what t is to know. |
| 02:37:01 | <Axman6> | Few languages provide as good tools for concurrency and embedded systems as Ada |
| 02:37:03 | <monochrom> | And now that C++ also standardizes concurrency, it finally catches up with Ada haha </snark> |
| 02:37:18 | × | td_ quits (~td@94.134.91.109) (Ping timeout: 272 seconds) |
| 02:37:30 | <shachaf> | I assume "using t = ambiguous_thing;" is a similar issue, though I'm not sure what the ambiguity is here. |
| 02:37:31 | <monochrom> | <not snark> To be fair in many other aspects C++ surpassed Ada |
| 02:37:50 | <shachaf> | C has a lot of control over how to specialize things, allocate things, inline things, data layouts, etc. |
| 02:38:13 | <Axman6> | I'd be surprised if it did surpass Ada when it comes to concurrency, it provides really useful, high level concepts that would require language changes for C++ to enforce the properties of |
| 02:38:53 | → | td_ joins (~td@94.134.91.110) |
| 02:38:55 | <Axman6> | shachaf: C compilers do, but afair it's mostly ad hoc and everyone just agreed to do the same thing, without a standard for it. |
| 02:40:02 | <Axman6> | Ada lets you do things like say: "This type takes up exactly one word, and the bits can mean one of these eight different things, and it is only allowed to be used in these specific addresses, which the compiler must ensure it doesn't allocate for any other use, because they are actually memory mapped IO registers" |
| 02:41:06 | <monochrom> | I feel you. It's why I chose "whined" rather than "complained". |
| 02:41:11 | <Axman6> | in C, you'd say "struct register[8] = 0x83890000; // Compiler, pls don't do anything to this address |
| 02:41:30 | → | ralu1 joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 02:41:57 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 02:42:22 | <shachaf> | Well, certainly anything C++ gives you in this regard, C does too. |
| 02:42:55 | → | terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 02:42:59 | <Axman6> | (If this sounds like a pretty specific example, it's because it was the example used in my embedded systems course at uni, showing how to program a DSP in Ada, where the interface do it was via some number of memory mapped registers) |
| 02:43:40 | <Axman6> | yeah both C and C++ are lacking in this kind of control IMO, and you have to resort to linker scripts to try and convince the compiler to not write garbage to things |
| 02:46:15 | <maerwald[m]> | Expressivity comes with a price, many people forget, including Haskellers |
| 02:47:12 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 02:47:37 | <monochrom> | This is why I gave up expressing OOP and just stick to FP such as Haskell. |
| 02:49:39 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 02:49:45 | <jackdk> | Axman6: I too liked my experience with Ada, but it wasn't at that high of a level. I ended up writing a parallel floodfill to work through a maze. |
| 02:50:50 | <monochrom> | That is like one of those National Treasure or Tomb Raider treasure hunt movies. |
| 02:51:32 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 02:51:32 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 02:51:32 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:51:57 | <monochrom> | "OMG we are trapped AND water is coming in to drown us!" "Wait a second two wrongs make a right! Watch where the water is leaving, that's our exit too!" |
| 02:56:03 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:58:50 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 272 seconds) |
| 03:00:29 | × | slaydr quits (~slaydr@193.19.109.224) (Ping timeout: 246 seconds) |
| 03:00:58 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 03:02:35 | → | abastro joins (~abab9579@192.249.26.99) |
| 03:06:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 03:07:42 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 272 seconds) |
| 03:09:00 | → | oxide joins (~lambda@user/oxide) |
| 03:10:52 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 03:13:16 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 03:18:45 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 03:20:39 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds) |
| 03:22:28 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 03:22:53 | → | Guest81 joins (~Guest81@c-73-151-189-117.hsd1.ca.comcast.net) |
| 03:23:29 | <Guest81> | really? banned on #haskell-ops as well? this ts so dumb |
| 03:26:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 03:28:28 | × | Adran quits (adran@botters/adran) (Quit: Este é o fim.) |
| 03:31:16 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 03:34:02 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 03:35:33 | → | Adran joins (adran@botters/adran) |
| 03:38:06 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 250 seconds) |
| 03:39:15 | <[itchyjunk]> | Can you use () to group operations? |
| 03:39:19 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 03:39:38 | <[itchyjunk]> | (blah) ++ (some other blah) to say do two things to create similar lists then merge them |
| 03:42:38 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 03:43:36 | → | notzmv joins (~zmv@user/notzmv) |
| 03:47:44 | <monochrom> | Yes. |
| 03:48:14 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 03:51:39 | × | Guest81 quits (~Guest81@c-73-151-189-117.hsd1.ca.comcast.net) (Quit: Connection closed) |
| 03:51:59 | × | maerwald quits (~maerwald@user/maerwald) (Ping timeout: 256 seconds) |
| 03:54:44 | <[itchyjunk]> | Argh, it was a typo all along i think.. |
| 03:54:58 | → | inversed_ joins (~inversed@94.13.111.159) |
| 03:55:50 | × | inversed quits (~inversed@94.13.111.159) (Ping timeout: 272 seconds) |
| 03:58:22 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 272 seconds) |
| 03:59:43 | <[itchyjunk]> | i think i just need to filter out the things what i need from this |
| 03:59:44 | <[itchyjunk]> | https://bpa.st/DFOQ |
| 03:59:45 | × | liz quits (~liz@host109-151-125-217.range109-151.btcentralplus.com) (Quit: Lost terminal) |
| 04:00:03 | <[itchyjunk]> | Either that or the second list i create needs to be different hmmm |
| 04:01:31 | → | redb joins (~nmh@136.49.49.211) |
| 04:04:37 | → | maerwald joins (~maerwald@mail.hasufell.de) |
| 04:06:09 | → | mbuf joins (~Shakthi@182.64.156.25) |
| 04:06:36 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 04:06:40 | → | slaydr joins (~slaydr@193.19.109.224) |
| 04:13:39 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 04:14:36 | × | maerwald quits (~maerwald@mail.hasufell.de) (Ping timeout: 276 seconds) |
| 04:15:00 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 04:15:01 | → | kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it) |
| 04:16:36 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection) |
| 04:16:59 | → | redb joins (~nmh@136.49.49.211) |
| 04:17:00 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 04:20:10 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 04:22:00 | <hololeap> | is there a good alternative to dlist that is in the libs bundled with ghc? |
| 04:22:26 | <hololeap> | oh, wait I don't need dlist, nvm |
| 04:22:29 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 04:22:49 | <monochrom> | I use `("sdkljfl" ++) . ('c' :)`. Does that count? :) |
| 04:24:22 | <hololeap> | I thought about doing that, but I can just use foldr |
| 04:24:55 | → | tommd joins (~tommd@97-120-41-123.ptld.qwest.net) |
| 04:27:55 | <hololeap> | I'm using `ListT IO FilePath` to scan through a directory tree. honest question, what could go wrong? |
| 04:28:21 | <monochrom> | Is that [IO FilePath]? |
| 04:28:45 | <monochrom> | Err wait no. Is that IO [FilePath]? |
| 04:28:56 | <hololeap> | that's what it ends up being after runListT |
| 04:29:51 | <monochrom> | So unless you use unsafeInterleaveIO, it doesn't return until the whole tree is complete. |
| 04:31:06 | <monochrom> | "ListT m a = newtype (m [a])" has other issues in addition. I think I even heard "not a monad" too. |
| 04:31:18 | × | gpncarl quits (~gpncarl@210.12.195.5) (Ping timeout: 272 seconds) |
| 04:31:23 | <hololeap> | yeah, it's deprecated, which was the source of my question |
| 04:31:25 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 04:31:52 | <hololeap> | but the syntax is convenient |
| 04:31:59 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 04:32:00 | <jackdk> | Many streaming libraries advertise themselves as "ListT done right". I would consider using one of those to provide a stream of filenames to iterate through, so you have more precise control over the traversal |
| 04:32:24 | <hololeap> | one of the constraints of this project is that I have to use packages bundled with GHC only |
| 04:33:21 | <monochrom> | Oleg's "data L m a = Nil | Cons a (m (L m a))" though is legit. |
| 04:34:00 | <hololeap> | but it won't fail early in the case of a `throwError`? it will scan the whole tree first and then process it? |
| 04:35:29 | <monochrom> | throwing an exception early is an orthogonal issue. |
| 04:35:56 | <monochrom> | more or less |
| 04:36:04 | <jackdk> | hololeap: `data Stream f m r = Done r | Step (f (Stream f m r)) | Effect (m (Stream f m r))`; `data Of a b = !a :< b deriving Functor`; you now have a streaming type |
| 04:36:05 | <hololeap> | I'm saying if it hits a throw error on file 50/500, will it look at the other 450? |
| 04:36:12 | <jackdk> | (inspired by `streaming`) |
| 04:36:32 | <hololeap> | maybe I can test this somehow |
| 04:36:39 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 04:41:15 | × | abastro quits (~abab9579@192.249.26.99) (Ping timeout: 276 seconds) |
| 04:42:19 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Ping timeout: 260 seconds) |
| 04:44:17 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) |
| 04:51:19 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 04:51:29 | <hololeap> | here is the relevant snippet, in all it's unglory: http://sprunge.us/qTGZGQ |
| 04:51:38 | → | maerwald joins (~maerwald@mail.hasufell.de) |
| 04:52:06 | → | coot joins (~coot@213.134.190.95) |
| 04:52:25 | → | Batzy joins (~quassel@user/batzy) |
| 04:55:58 | × | x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Remote host closed the connection) |
| 04:56:45 | → | x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
| 04:59:04 | × | Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 248 seconds) |
| 04:59:46 | → | Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
| 05:02:15 | → | abastro joins (~abab9579@192.249.26.99) |
| 05:11:39 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Ping timeout: 240 seconds) |
| 05:11:42 | → | gpncarl joins (~gpncarl@222.249.231.3) |
| 05:11:48 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 05:13:54 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) |
| 05:18:02 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 05:18:18 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection) |
| 05:18:38 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 05:18:38 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 05:19:19 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 05:19:51 | <Axman6> | jackdk: "inspired" |
| 05:21:01 | <jackdk> | Axman6: "yes" |
| 05:21:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 05:23:49 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 05:25:13 | → | deadmarshal_ joins (~deadmarsh@95.38.115.70) |
| 05:29:37 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 05:31:19 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds) |
| 05:36:30 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 05:36:49 | × | tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 256 seconds) |
| 05:40:36 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 05:40:54 | → | vicfred joins (~vicfred@user/vicfred) |
| 05:41:20 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 05:45:19 | × | vicfred quits (~vicfred@user/vicfred) (Ping timeout: 256 seconds) |
| 05:46:40 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 06:03:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:04:07 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 06:05:19 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:09:41 | × | hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Ping timeout: 256 seconds) |
| 06:10:48 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:12:06 | → | alp_ joins (~alp@user/alp) |
| 06:16:43 | → | hughjfchen joins (~hughjfche@vmi556545.contaboserver.net) |
| 06:17:03 | × | Me-me quits (~me-me@user/me-me) (Ping timeout: 260 seconds) |
| 06:31:59 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 06:35:12 | → | acidjnk joins (~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) |
| 06:38:36 | → | xkuru joins (~xkuru@user/xkuru) |
| 06:43:06 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 06:43:48 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 06:50:35 | → | Ram-Z joins (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) |
| 06:52:32 | × | ralu1 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 272 seconds) |
| 07:01:49 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:01:51 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:02:25 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 07:04:43 | → | chele joins (~chele@user/chele) |
| 07:08:09 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 07:08:57 | → | michalz joins (~michalz@185.246.204.125) |
| 07:10:06 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 07:10:23 | → | merijn joins (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
| 07:12:36 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:13:55 | → | mshiraeeshi joins (~shiraeesh@46.34.207.194) |
| 07:14:24 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 07:14:40 | × | abastro quits (~abab9579@192.249.26.99) (Remote host closed the connection) |
| 07:15:29 | → | abastro joins (~abab9579@192.249.26.99) |
| 07:15:38 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:16:18 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 07:17:05 | × | jargon quits (~jargon@174-22-223-120.phnx.qwest.net) () |
| 07:17:16 | → | xaotuk joins (~sasha@net253-36-245-109.mbb.telenor.rs) |
| 07:21:22 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:8229:e9bc:f0d0:5ffc) |
| 07:22:13 | × | abastro quits (~abab9579@192.249.26.99) (Remote host closed the connection) |
| 07:22:49 | → | fendor joins (~fendor@178.165.165.71.wireless.dyn.drei.com) |
| 07:23:06 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds) |
| 07:23:16 | → | shiraeeshi joins (~shiraeesh@46.34.207.194) |
| 07:24:44 | × | mshiraeeshi quits (~shiraeesh@46.34.207.194) (Ping timeout: 246 seconds) |
| 07:24:50 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 272 seconds) |
| 07:25:05 | × | fendor_ quits (~fendor@178.165.165.71.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
| 07:32:06 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:32:56 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 07:35:30 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:36:23 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 07:40:59 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 07:42:25 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:45:50 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:47:39 | × | xaotuk quits (~sasha@net253-36-245-109.mbb.telenor.rs) (Ping timeout: 240 seconds) |
| 07:49:04 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 07:49:11 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 07:50:16 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:54:40 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 07:54:51 | → | Pikachu[m] joins (~pychaumat@2001:470:69fc:105::2:1ce) |
| 07:58:31 | × | shiraeeshi quits (~shiraeesh@46.34.207.194) (Quit: Leaving) |
| 08:02:11 | → | ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:5717:8bb4:874e:9726) |
| 08:02:51 | → | yauhsien_ joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 08:04:43 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 08:09:19 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 08:10:46 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 08:12:40 | → | dsrt^ joins (~dsrt@50.227.69.228) |
| 08:13:32 | → | xaotuk joins (~sasha@gore.copyleft.no) |
| 08:15:03 | × | yauhsien_ quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:20:01 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 08:24:19 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 08:31:15 | → | Pickchea joins (~private@user/pickchea) |
| 08:36:07 | → | mattil joins (~mattil@helsinki.portalify.com) |
| 08:37:12 | → | ralu1 joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 08:37:15 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 08:44:23 | → | kuribas joins (~user@ptr-17d51enjtkmzpg60wq1.18120a2.ip6.access.telenet.be) |
| 08:45:10 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 08:45:11 | → | zeenk joins (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) |
| 08:49:47 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 08:50:24 | → | gustik joins (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) |
| 08:51:14 | × | zeenk quits (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Remote host closed the connection) |
| 08:51:15 | → | coot joins (~coot@213.134.190.95) |
| 08:52:09 | → | zeenk joins (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) |
| 08:52:24 | × | gustik quits (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Remote host closed the connection) |
| 08:55:23 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 08:56:47 | × | zeenk quits (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Excess Flood) |
| 08:57:09 | → | zeenk joins (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) |
| 08:57:15 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 09:00:19 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:02:09 | → | searemind joins (~searemind@122.161.49.176) |
| 09:02:23 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
| 09:03:38 | × | dcoutts_ quits (~duncan@host86-150-41-186.range86-150.btcentralplus.com) (Ping timeout: 272 seconds) |
| 09:12:26 | AlexNoo_ | is now known as AlexNoo |
| 09:12:29 | → | cosimone joins (~user@93-44-185-79.ip98.fastwebnet.it) |
| 09:13:46 | × | searemind quits (~searemind@122.161.49.176) (Quit: 0.9.4) |
| 09:14:39 | × | xaotuk quits (~sasha@gore.copyleft.no) (Ping timeout: 240 seconds) |
| 09:14:46 | → | Core4993 joins (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) |
| 09:14:51 | → | searemind joins (~searemind@122.161.49.176) |
| 09:16:15 | × | acidjnk quits (~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 09:16:41 | × | zyklotomic quits (~ethan@r4-128-61-94-122.res.gatech.edu) (Ping timeout: 256 seconds) |
| 09:16:48 | → | ubert1 joins (~Thunderbi@ip5b407402.dynamic.kabel-deutschland.de) |
| 09:18:36 | → | zyklotomic joins (~ethan@res380d-128-61-86-213.res.gatech.edu) |
| 09:19:45 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:20:05 | × | pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 256 seconds) |
| 09:20:20 | → | pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee) |
| 09:22:45 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:27:16 | → | zeenk2 joins (~zeenk@82.76.113.230) |
| 09:27:20 | × | zeenk quits (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Ping timeout: 248 seconds) |
| 09:30:35 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 09:33:17 | × | searemind quits (~searemind@122.161.49.176) (Quit: 0.9.4) |
| 09:34:50 | × | zeenk2 quits (~zeenk@82.76.113.230) (Quit: Konversation terminated!) |
| 09:35:06 | → | zeenk joins (~zeenk@82.76.113.230) |
| 09:40:19 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 240 seconds) |
| 09:42:35 | → | oxide joins (~lambda@user/oxide) |
| 09:44:11 | → | __monty__ joins (~toonn@user/toonn) |
| 09:44:43 | × | Core4993 quits (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Quit: CoreIRC for Android - www.coreirc.com) |
| 09:45:51 | × | zeenk quits (~zeenk@82.76.113.230) (Quit: Konversation terminated!) |
| 09:46:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:48:39 | <albet70> | what's the quick way to split [1,2,3,4,5,6] to [[1,2],[3,4],[5,6]]? groupBy? |
| 09:49:47 | <abastro[m]> | split package, I think |
| 09:50:15 | <yushyin> | chunksOf from split package |
| 09:53:03 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 09:53:59 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 09:58:04 | → | anomal joins (~anomal@87.227.196.109) |
| 10:02:23 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:05:39 | → | Midjak joins (~Midjak@82.66.147.146) |
| 10:06:54 | × | td_ quits (~td@94.134.91.110) (Ping timeout: 276 seconds) |
| 10:09:13 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 10:12:09 | → | xaotuk joins (~sasha@109.245.225.166) |
| 10:14:42 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
| 10:15:28 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 10:16:07 | → | anomal joins (~anomal@87.227.196.109) |
| 10:18:27 | → | td_ joins (~td@94.134.91.110) |
| 10:19:00 | × | xaotuk quits (~sasha@109.245.225.166) (Ping timeout: 272 seconds) |
| 10:19:18 | → | xaotuk joins (~sasha@gore.copyleft.no) |
| 10:20:16 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:25:49 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 10:30:12 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds) |
| 10:30:13 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:31:40 | × | xff0x_ quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds) |
| 10:32:04 | → | akegalj joins (~akegalj@93-138-184-212.adsl.net.t-com.hr) |
| 10:38:29 | → | gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) |
| 10:41:05 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
| 10:41:25 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 10:47:03 | → | andrey_ joins (~andrey@p200300dbcf1dd700efb6dcb1d2488e69.dip0.t-ipconnect.de) |
| 10:47:51 | × | pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 276 seconds) |
| 10:48:05 | → | pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee) |
| 10:49:35 | × | andrey__ quits (~andrey@p200300dbcf119000377e8be0c29d44c5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 10:50:45 | × | slaydr quits (~slaydr@193.19.109.224) (Ping timeout: 256 seconds) |
| 10:50:54 | <Bulby[m]> | So how do I connect to a dbus socket 🤔 |
| 10:52:27 | → | zebrag joins (~chris@user/zebrag) |
| 10:53:53 | × | ubert1 quits (~Thunderbi@ip5b407402.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 10:56:04 | → | searemind joins (~searemind@122.161.49.176) |
| 10:56:35 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 10:57:35 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 11:01:38 | × | searemind quits (~searemind@122.161.49.176) (Quit: 0.9.4) |
| 11:02:56 | <yushyin> | you connect to a unix domain socket, either the session bus socket or the system bus socket. however, the actual thing is that you should use a dbus client lib for the heavy lifting |
| 11:03:45 | → | slaydr joins (~slaydr@173.239.197.19) |
| 11:05:22 | <Bulby[m]> | how do I write to it |
| 11:05:32 | <Bulby[m]> | from elsewhere |
| 11:08:26 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 11:08:41 | → | dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) |
| 11:11:44 | <exarkun> | unix domain sockets have mostly the same API as AF_INET sockets |
| 11:12:13 | <exarkun> | you just pass a different address / address family to create/connect them |
| 11:12:44 | <exarkun> | I'm not sure what you mean by "from elsewhere". |
| 11:13:00 | <Bulby[m]> | from command line, sorry |
| 11:13:20 | <yushyin> | dbus-send |
| 11:13:30 | <Bulby[m]> | how do I know the socket name |
| 11:15:12 | <Bulby[m]> | and what lib should I use? dbus (all lowercase) has no docs but DBus does |
| 11:15:14 | <yushyin> | there are well-known message bus paths, clients will try to find one and just connect to it. |
| 11:16:00 | <Bulby[m]> | yes, but that dbus-send command will be set in stone (or at best dependent on envvars) |
| 11:16:35 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:18:42 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 11:19:58 | → | gpncarl_ joins (~gpncarl@222.249.231.3) |
| 11:20:10 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 11:20:39 | <yushyin> | seems like the dbus lib is at least somewhat maintained |
| 11:20:55 | <Bulby[m]> | and two versions back it has docs |
| 11:20:59 | × | gpncarl quits (~gpncarl@222.249.231.3) (Ping timeout: 246 seconds) |
| 11:21:13 | <yushyin> | check out the examples and/or the freedesktop tutorial on dbus and see what you can do with that |
| 11:21:17 | → | lyiriyah[m] joins (~lyiriyahm@2001:470:69fc:105::cc0) |
| 11:21:26 | <yushyin> | https://dbus.freedesktop.org/doc/dbus-tutorial.html |
| 11:21:27 | <Bulby[m]> | what examples |
| 11:21:36 | <yushyin> | https://github.com/rblaze/haskell-dbus/tree/master/examples |
| 11:22:46 | <Bulby[m]> | ah, so the bus is an open thing... and I can tune in to only 1 event than dbus-send will send to |
| 11:23:36 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 272 seconds) |
| 11:23:40 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 11:24:22 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 11:29:36 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 11:30:35 | → | acidjnk joins (~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) |
| 11:30:44 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 11:31:45 | <yushyin> | Bulby[m]: it's a message bus for IPC, with some processes providing 'services' via this message bus and other processes accessing these services (sending messages,getting messages) |
| 11:32:10 | <Bulby[m]> | I will figure it out eventually 😄 |
| 11:33:53 | <yushyin> | it has a pretty high-level object model with interfaces, methods, signals ... one has to read up a bit on the subject first |
| 11:34:53 | <Bulby[m]> | I HATE READING! I LOVE STUMBLING INTO SOLUTONS! |
| 11:40:08 | → | Hiring joins (~Hiring@31.222.238.38) |
| 11:40:29 | → | xff0x_ joins (~xff0x@om126158204045.30.openmobile.ne.jp) |
| 11:40:55 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
| 11:41:17 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 11:41:38 | × | xaotuk quits (~sasha@gore.copyleft.no) (Ping timeout: 246 seconds) |
| 11:42:14 | <geekosaur> | mrrr. dbus is client side only, apparently |
| 11:42:35 | <geekosaur> | DBus was the first release of what is now dbus |
| 11:42:38 | <Bulby[m]> | i am not sending anything |
| 11:42:46 | <geekosaur> | ok |
| 11:43:54 | → | xaotuk joins (~sasha@109.245.225.166) |
| 11:45:08 | × | pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 246 seconds) |
| 11:47:16 | → | pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee) |
| 11:48:15 | <geekosaur> | well, maybe not ok. sending is notthe point of client side vs. server side, a server might well only receive. you still need the ability to establish a new endpoint versus connecting to an existing one, etc. |
| 11:48:42 | <geekosaur> | although that little Iknowof the dbus api should cover that part at least |
| 11:49:02 | → | dminuoso joins (~dminuoso@static.88-198-218-68.clients.your-server.de) |
| 11:50:48 | <Bulby[m]> | dbus seems to have no convientional access to the IO monad 😱 meaning unsafePerformIO |
| 11:51:07 | <geekosaur> | https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L241-L252 as client, sending to a server written in C (see also https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L80-L82) |
| 11:51:59 | <geekosaur> | I don't understand that comment, its operations run in IO as shown in my links |
| 11:52:29 | <Bulby[m]> | I mean I want to println in the callback |
| 11:52:32 | → | _xor joins (~xor@74.215.232.169) |
| 11:56:51 | <Bulby[m]> | oh, AutoMethod lets me use IO 😶 |
| 11:57:37 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 11:59:02 | × | zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 250 seconds) |
| 12:01:01 | × | dminuoso quits (~dminuoso@static.88-198-218-68.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:04:37 | → | dminuoso joins (~dminuoso@static.88-198-218-68.clients.your-server.de) |
| 12:06:19 | × | dminuoso quits (~dminuoso@static.88-198-218-68.clients.your-server.de) (Client Quit) |
| 12:09:28 | → | dminuoso joins (~dminuoso@static.88-198-218-68.clients.your-server.de) |
| 12:10:23 | × | dminuoso quits (~dminuoso@static.88-198-218-68.clients.your-server.de) (Client Quit) |
| 12:11:19 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:12:21 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds) |
| 12:12:22 | × | mattil quits (~mattil@helsinki.portalify.com) (Ping timeout: 272 seconds) |
| 12:13:15 | → | dminuoso joins (~dminuoso@user/dminuoso) |
| 12:14:37 | × | dminuoso quits (~dminuoso@user/dminuoso) (Client Quit) |
| 12:14:50 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 12:15:59 | → | dminuoso joins (~dminuoso@user/dminuoso) |
| 12:22:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:26:11 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 12:27:39 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 12:30:16 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 12:32:29 | → | cross joins (~cross@spitfire.i.gajendra.net) |
| 12:32:44 | × | jespada_ quits (~jespada@146.70.119.92) (Ping timeout: 260 seconds) |
| 12:35:31 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 12:42:06 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:42:15 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds) |
| 12:42:54 | × | [Leary] quits (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) (Remote host closed the connection) |
| 12:43:08 | → | [Leary] joins (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) |
| 12:44:38 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 12:48:23 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.4.1) |
| 12:49:11 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 246 seconds) |
| 12:57:58 | → | zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:9939:dfc8:bfb9:90c2) |
| 12:58:50 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 250 seconds) |
| 13:02:03 | → | jespada joins (~jespada@194.37.96.158) |
| 13:08:50 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 13:18:17 | → | shlevy[m] joins (~shlevymat@2001:470:69fc:105::1:d3b1) |
| 13:19:59 | × | acidjnk quits (~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 13:21:16 | → | Guest5420 joins (~Guest54@c-73-151-189-117.hsd1.ca.comcast.net) |
| 13:21:56 | → | Simon76 joins (~Simon@2001:4ca0:0:f237:9dd4:cf64:12cb:6b07) |
| 13:22:25 | ← | Guest5420 parts (~Guest54@c-73-151-189-117.hsd1.ca.comcast.net) () |
| 13:24:39 | → | vorpuni joins (~pvorp@2001:861:3881:c690:691f:4814:d40:6070) |
| 13:27:26 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 13:27:45 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 13:30:01 | × | ystael quits (~ystael@user/ystael) (Quit: Lost terminal) |
| 13:31:59 | → | abastro joins (~abab9579@192.249.26.99) |
| 13:41:32 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:41:32 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:41:32 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:45:45 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:50:50 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 13:51:15 | Andrew | is now known as AndrewYu |
| 13:51:56 | → | ubert1 joins (~Thunderbi@2a02:8109:9880:303c:2b38:2bad:43a9:a91c) |
| 13:53:56 | AndrewYu | is now known as Andrew |
| 13:54:14 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:55:03 | → | ystael joins (~ystael@user/ystael) |
| 13:56:21 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 13:58:09 | → | zmt00 joins (~zmt00@user/zmt00) |
| 13:58:14 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 13:59:11 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds) |
| 14:00:27 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 14:02:56 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 14:03:43 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 14:03:58 | → | coot joins (~coot@213.134.190.95) |
| 14:07:00 | × | akegalj quits (~akegalj@93-138-184-212.adsl.net.t-com.hr) (Quit: leaving) |
| 14:08:15 | → | Guest9846 joins (~Thunderbi@240e:474:1c2:42c0:611f:3dbf:5d1e:14) |
| 14:08:57 | <Guest9846> | how to install haskell on ubuntu? |
| 14:09:54 | <geekosaur> | https://haskell.org/ghcup |
| 14:10:01 | <geekosaur> | the packaged ghc is way too old |
| 14:10:20 | <Guest9846> | how about haskell-platform |
| 14:10:49 | <geekosaur> | haskell-platform was discontinued |
| 14:11:08 | <geekosaur> | it's better to let build tools like stack and cabal manage libraries for you |
| 14:11:53 | <Guest9846> | ok |
| 14:12:55 | × | Guest9846 quits (~Thunderbi@240e:474:1c2:42c0:611f:3dbf:5d1e:14) (Quit: Guest9846) |
| 14:13:00 | <geekosaur> | the closest we get to "platforms" is stack LTS resolvers, but even then y... feh |
| 14:15:12 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 276 seconds) |
| 14:16:16 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 14:17:21 | × | Simon76 quits (~Simon@2001:4ca0:0:f237:9dd4:cf64:12cb:6b07) (Quit: Client closed) |
| 14:18:15 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 14:23:54 | → | searemind joins (~searemind@122.161.49.176) |
| 14:24:22 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 14:24:24 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:25:33 | × | searemind quits (~searemind@122.161.49.176) (Remote host closed the connection) |
| 14:25:58 | → | searemind joins (~searemind@122.161.49.176) |
| 14:29:30 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 14:29:45 | × | Brandon_IX quits (~brandon@178-79-138-117.ip.linodeusercontent.com) (Quit: leaving) |
| 14:30:34 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 14:31:03 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 14:31:40 | → | vicfred joins (~vicfred@user/vicfred) |
| 14:35:34 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 14:36:33 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:36:59 | → | Pickchea joins (~private@user/pickchea) |
| 14:38:50 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:39:43 | × | searemind quits (~searemind@122.161.49.176) (Quit: 0.9.4) |
| 14:43:38 | × | abastro quits (~abab9579@192.249.26.99) (Ping timeout: 246 seconds) |
| 14:45:38 | → | searemind joins (~searemind@122.161.49.176) |
| 14:46:19 | × | searemind quits (~searemind@122.161.49.176) (Client Quit) |
| 14:47:52 | → | mmhat joins (~mmh@55d4c7b7.access.ecotel.net) |
| 14:48:44 | Bulby[m] | sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/6a10a5aac52fcc1a4dd97626b3f8765949929c47 |
| 14:52:54 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds) |
| 14:53:28 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 14:54:28 | <geekosaur> | what's the other side look like? the example code I've seen suggests you don't have that quite right |
| 14:55:16 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 14:55:41 | <geekosaur> | that said I'm not a dbus expert |
| 14:56:52 | → | yauhsien joins (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) |
| 14:57:53 | <Bulby[m]> | https://paste.tomsmeding.com/oIiQXaNe |
| 15:00:26 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Quit: Leaving) |
| 15:01:02 | × | cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving) |
| 15:01:13 | × | yauhsien quits (~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 15:01:23 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 15:02:42 | <geekosaur> | hm, that seems to match up, assuming the method you're sending is the Introspect one |
| 15:02:53 | <Bulby[m]> | yes |
| 15:03:07 | <Bulby[m]> | so why is it not printing |
| 15:03:18 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds) |
| 15:03:18 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds) |
| 15:04:05 | <geekosaur> | UnknownObject suggests the client didn't get registered somehow, unless what it's saying is you missed some step to make it introspectable |
| 15:04:25 | <geekosaur> | since you don't seem to register any methods, just the object, that may be the problem |
| 15:06:59 | <Bulby[m]> | that autoMethod function it takes in is `String -> IO String`, so when I call the method it should be printing that string |
| 15:09:17 | → | Brandon_IX joins (brandon@2a01:7e00::f03c:92ff:feab:6b7c) |
| 15:09:31 | <geekosaur> | but the method you're calling is org.freedesktop.DBus.Introspectable.Introspect, isn't it? |
| 15:09:59 | <Bulby[m]> | yes, but that can be called on any client, no? |
| 15:11:18 | <geekosaur> | I would guess it needs some support so it can send back what methods the client can accept |
| 15:13:23 | × | xaotuk quits (~sasha@109.245.225.166) (Ping timeout: 246 seconds) |
| 15:19:41 | × | xff0x_ quits (~xff0x@om126158204045.30.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 15:20:51 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:8229:e9bc:f0d0:5ffc) (Quit: WeeChat 2.8) |
| 15:23:03 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 15:23:18 | <geekosaur> | hm. actually if I read the introspection example correctly you call it differently. (I'm rummaging around in the source package) |
| 15:23:32 | <Bulby[m]> | ah, I have fixed it, it was my object path |
| 15:23:38 | <geekosaur> | yes |
| 15:24:02 | → | fendor_ joins (~fendor@178.115.43.124.wireless.dyn.drei.com) |
| 15:24:18 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 15:25:10 | Bulby[m] | sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/7154e75622d062b80bc9a88bd43084a1e2844b82 |
| 15:25:59 | <Bulby[m]> | that will be... fun |
| 15:26:48 | × | fendor quits (~fendor@178.165.165.71.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 15:27:30 | <geekosaur> | you have to annotate stuff with HasCallStack constraints to get a meaningful call stack |
| 15:28:04 | <Bulby[m]> | I mean, i'm surprised it showed up here at not over at the main terminal |
| 15:28:47 | → | f-a joins (f2a@f2a.jujube.ircnow.org) |
| 15:31:54 | × | Hiring quits (~Hiring@31.222.238.38) (Quit: Client closed) |
| 15:33:19 | × | merijn quits (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 15:33:29 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 15:33:46 | <geekosaur> | my guess is that's from --print-reply and something unexpected went wrong processing the request |
| 15:35:32 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 15:36:19 | × | alp_ quits (~alp@user/alp) (Ping timeout: 240 seconds) |
| 15:38:35 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5) |
| 15:39:11 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds) |
| 15:39:56 | <Bulby[m]> | 😍 IT WORKS |
| 15:40:12 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 15:40:43 | → | merijn joins (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
| 15:40:58 | <geekosaur> | I'm curious as to why you went with string when dbus supports typed values |
| 15:41:26 | <Bulby[m]> | you can pipe in any value |
| 15:43:58 | <monochrom> | I guess you want to accept any string and do your own parsing and basically reinvent the wheel. |
| 15:44:10 | ← | f-a parts (f2a@f2a.jujube.ircnow.org) () |
| 15:44:20 | → | f-a joins (f2a@f2a.jujube.ircnow.org) |
| 15:44:40 | <Bulby[m]> | no, I don't parse anything. it just gets tossed into a string formatter and displayed on the status bar |
| 15:46:38 | <Bulby[m]> | that error earlier is me forgetting to fill in the format |
| 15:46:51 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 15:46:59 | × | slaydr quits (~slaydr@173.239.197.19) (Remote host closed the connection) |
| 15:47:03 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 15:47:11 | <EvanR> | what does the d in dbus stand for |
| 15:47:47 | <monochrom> | Wikipedia says "desktop". |
| 15:48:05 | <Bulby[m]> | 🖥️🚌 |
| 15:48:09 | <monochrom> | I would guess so too, the people are freedesktop.org |
| 15:48:25 | <megaTherion> | it isnt even busd |
| 15:48:38 | <monochrom> | heh |
| 15:48:52 | <monochrom> | They have systemd, we have system fc. >:) |
| 15:49:13 | monochrom | mv /usr/bin/ghc /usr/bin/systemfc |
| 15:49:15 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:50:32 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 15:51:25 | × | dsrt^ quits (~dsrt@50.227.69.228) (Remote host closed the connection) |
| 15:52:01 | <EvanR> | mv /bin/mv /bin/mv |
| 15:53:22 | <monochrom> | Oh wait https://richarde.dev/papers/2017/dep-haskell-spec/dep-haskell-spec.pdf has both a system d and a system dc :) |
| 15:53:43 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 15:55:05 | <jonathanx> | I am looking into lenses, and made a Traversable' using = row :: Int -> Traversal' (Matrix a) a |
| 15:55:05 | <jonathanx> | row r = lens (Matrix.getRow' r) (Matrix.setRow r) . Lens.traverse |
| 15:55:28 | → | comerijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 15:55:57 | <jonathanx> | Now I want to turn it into an IndexedTraversable (Where the index is the vector index= Int) |
| 15:56:13 | <jonathanx> | But when I try to look up how to do it I get lost in lenses typeclasses |
| 15:57:29 | × | merijn quits (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 15:58:06 | <jonathanx> | can anyone hint me in some direction? :) |
| 16:00:06 | × | eddiemundo quits (~eddiemund@2001:470:69fc:105::a80) (Quit: You have been kicked for being idle) |
| 16:01:25 | → | stackdroid18 joins (14094@user/stackdroid) |
| 16:02:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:02:40 | × | comerijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Quit: Lost terminal) |
| 16:05:11 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Quit: Leaving) |
| 16:07:39 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 16:10:38 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 16:13:17 | → | searemind joins (~searemind@122.161.49.176) |
| 16:14:09 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 16:14:09 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:20:45 | × | ubert1 quits (~Thunderbi@2a02:8109:9880:303c:2b38:2bad:43a9:a91c) (Remote host closed the connection) |
| 16:20:46 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds) |
| 16:21:33 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:24:34 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:26:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 16:28:06 | → | raehik joins (~raehik@178.251.171.164) |
| 16:29:09 | → | hololeap joins (~hololeap@user/hololeap) |
| 16:31:56 | <jonathanx> | I figured it out! |
| 16:32:40 | <jonathanx> | I still haven't found a good way to "discover" lenses, since all the type machinery makes it unhoogleable |
| 16:33:24 | <jonathanx> | What's the best way to learn them on a higher level that doens't involve building a personal relationship with kmett? |
| 16:33:53 | <EvanR> | you're basically a lens jedi now. Despite everyone in the star wars universe / haskell universe having lightsabers / lenses, you have to invent your own instead of picking them up at the corner store |
| 16:34:32 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 16:34:53 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:35:16 | <jonathanx> | right, I'll add "Make a competitor to Control.Lens" to my todo list |
| 16:35:34 | <EvanR> | I mean, build the final lens from first principles |
| 16:35:47 | × | searemind quits (~searemind@122.161.49.176) (Quit: 0.9.4) |
| 16:36:03 | <EvanR> | also there are other lens libs that claim to be easier, like optics |
| 16:37:08 | <jonathanx> | I think most haskell libraries claim to be better than their competitors in some ways, and it's hard to know what's actually better until you've tried it |
| 16:37:19 | <jonathanx> | and now I feel invested :D |
| 16:37:56 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 16:40:07 | <EvanR> | honestly I think it's easier to grok such esoteric nonsense by getting as many perspectives at once xD |
| 16:40:24 | × | ralu1 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 16:40:41 | <Rembane> | Trying to see patterns in the operators is also quite useful imo |
| 16:40:55 | → | ralu1 joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 16:41:17 | <EvanR> | I don't even see lenses anymore, just blonde brunette redhead... |
| 16:43:03 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 16:49:05 | <Zemyla> | I know what lenses are, I know how they work, but I don't know all the operators in Control.Lens. |
| 16:49:32 | <geekosaur> | neither do I, but they follow enough of a pattern that I can often guess at them |
| 16:49:43 | <Rembane> | I want an AI that finds the most useful lens without me searching for it. |
| 16:50:25 | <maerwald> | Rembane: if only that was a joke |
| 16:50:41 | <Rembane> | maerwald: Yeah... |
| 16:51:01 | <monochrom> | Why not go one step further, an AI that writes the complete code. |
| 16:51:07 | <Rembane> | maerwald: Can the typed holes functionality help with that? I haven't dared trying. |
| 16:52:14 | <maerwald> | Deriving code from specifications is nothing new and you don't need an AI for it. |
| 16:52:50 | → | econo joins (uid147250@user/econo) |
| 16:53:11 | <maerwald> | But people probably want an AI to tell them what they want to build |
| 16:53:16 | <maerwald> | so there we go |
| 16:53:21 | <Rembane> | That's true, but where would I get my VC money if I didn't have an AI? |
| 16:53:36 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 16:55:31 | <EvanR> | can my AI generate a gamified tech tree with the steps needed to do my project |
| 16:55:45 | <EvanR> | I'll even do the steps, as a compromise |
| 16:56:23 | <monochrom> | No, the AI should also do the steps. You are no longer needed. |
| 16:57:15 | <monochrom> | To be sure, there is stiil room for you in recreational programming contests. |
| 16:57:53 | <monochrom> | The same way we have maranthons as games but public transit and cargo logistics don't actually rely on runners. |
| 16:59:02 | <monochrom> | There are spelling bee contests but you don't actually hire a winner for spellchecking in production. |
| 17:01:50 | <monochrom> | When AI finally takes over the full devop stack, we can finally go back to programming just for fun and aesthetics. No more worries about "you don't do this in production code" or "best practices". Isn't that liberating and brave? |
| 17:02:07 | ← | f-a parts (f2a@f2a.jujube.ircnow.org) () |
| 17:02:47 | <geekosaur> | until your production falls over because the AIs are too busy arguing over best practices :) |
| 17:02:56 | <monochrom> | haha |
| 17:04:17 | <geekosaur> | AIs produced by humans will have the same shortcomings humans do. this has already been demonstrated (AIs have sexism and racism biases) |
| 17:08:42 | <EvanR> | the AIs determine java and go are the most viable languages and we are all disappoint |
| 17:09:23 | <monochrom> | "why learn haskell? it is not used by skynet" >:) |
| 17:09:45 | <geekosaur> | "No more worries about "you don't do this in production code" or "best practices". Isn't that liberating and brave?" |
| 17:09:48 | × | cosimone quits (~user@93-44-185-79.ip98.fastwebnet.it) (Read error: Connection reset by peer) |
| 17:09:51 | <geekosaur> | frees us to program inHaskell |
| 17:10:04 | <geekosaur> | let Skynet have Skynet languages :) |
| 17:10:53 | <EvanR> | then they use java and go in a way that doesn't have security holes and we are screwed |
| 17:12:17 | <EvanR> | "why were you guys so bad at security" skynet says |
| 17:15:13 | <Rembane> | "It's a human thing" <- all humans |
| 17:15:23 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 17:16:07 | → | eraziel joins (~eraziel@modemcable169.17-58-74.mc.videotron.ca) |
| 17:16:34 | <eraziel> | is there an ergonomic way to expose record fields but also forbid record updates ? |
| 17:16:40 | <eraziel> | I want read only access to record fields, essentially |
| 17:16:50 | <maerwald> | use... functions |
| 17:18:05 | <monochrom> | If you have "data X = X{x::Int}", something about "module M(X, x)" |
| 17:18:47 | × | ptrcmd quits (~ptrcmd@user/ptrcmd) (Ping timeout: 240 seconds) |
| 17:19:11 | <eraziel> | but then you can use the record update syntax with x |
| 17:19:20 | <eraziel> | which I only figured out today somehow |
| 17:19:30 | <monochrom> | No, one would need X(..) for record update syntax. |
| 17:19:31 | <eraziel> | and I'd like to prevent that |
| 17:19:45 | → | ptrcmd joins (~ptrcmd@user/ptrcmd) |
| 17:19:45 | <maerwald> | monochrom: you don't need the constructor to do a record update? |
| 17:19:53 | <maerwald> | eraziel: use functions |
| 17:19:56 | <eraziel> | no you don't |
| 17:20:05 | <eraziel> | yeah functions work, obviously |
| 17:20:13 | <monochrom> | OK let me be clearer with one fewer name clash. |
| 17:20:24 | <monochrom> | If you have "data X = Mk{x::Int}", something about "module M(X, x)" |
| 17:21:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:21:12 | <eraziel> | that still allows "yourInstance {x = 42}" |
| 17:21:23 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 17:21:24 | <eraziel> | I just tested it :x |
| 17:21:29 | <monochrom> | Ah OK sorry. |
| 17:21:35 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:22:15 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:23:16 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 17:24:28 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 17:24:42 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:24:45 | <monochrom> | Hrm, record pattern synonym is a thing. Maybe you can make a unidirectional pattern synonym, lacking the construct direction. |
| 17:24:57 | <EvanR> | haskell gives up and includes "const keyword" as well as "private keyword" to the next version of the standard |
| 17:24:59 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds) |
| 17:25:56 | <monochrom> | Yeah it can "For a unidirectional record pattern synonym we define record selectors but do not allow record updates or construction." |
| 17:26:50 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 17:27:01 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:27:23 | <eraziel> | EvanR: do you have a link with more information ? |
| 17:27:26 | × | raehik quits (~raehik@178.251.171.164) (Ping timeout: 246 seconds) |
| 17:27:48 | <monochrom> | I think EvanR was joking. |
| 17:27:55 | <eraziel> | lmao damn |
| 17:27:59 | → | Hiring joins (~Hiring@31.222.238.38) |
| 17:28:06 | <eraziel> | I'll look into pattern synonyms I guess |
| 17:28:43 | <eraziel> | I wish we had something like Rust "submodule in a file" to unit test private things like this :/ |
| 17:29:04 | <monochrom> | You won't regret investing time into learning pattern synonyms. It's liberating. |
| 17:29:23 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 17:29:56 | <EvanR> | first law of private members of a module is that someone will always want to access it |
| 17:30:12 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 17:30:17 | <monochrom> | Ah yes submodules are great. Why not? Racket has it, Rust has it, everyone has it... |
| 17:30:23 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:30:44 | <Rembane> | Or put it into an Internal module, write "plz no" at the top of it and then done. |
| 17:30:46 | <EvanR> | I've been joking about silly aspects of OOP languages, and here we are with "one module per file" silliness for real |
| 17:30:57 | <monochrom> | We can have nested functions and nested let and nested do-notation, why not also nested modules... OK I'll stop. |
| 17:31:14 | <Rembane> | Why can't we have nested irc channels? |
| 17:31:22 | → | cosimone joins (~user@93-44-185-79.ip98.fastwebnet.it) |
| 17:31:25 | <monochrom> | :) |
| 17:31:48 | <__monty__> | +1 for Agda-style modules. |
| 17:32:03 | <monochrom> | Please don't tempt me. After we have nesting, next I will demand "why limit to trees? I want DAGs..." |
| 17:32:22 | <Rembane> | monochrom: Are you gonna put Turing complete modules into Haskell? :O |
| 17:32:34 | <monochrom> | Nah don't worry I'll stop at DAGs. |
| 17:33:14 | <monochrom> | I understand that, for example, wanting cycles is unfair and often bad. |
| 17:34:20 | <EvanR> | cycles are unfair? |
| 17:34:25 | <monochrom> | But Perl probably does Turing-complete modules. |
| 17:34:56 | <Rembane> | Generally recursive modules must be good. |
| 17:35:46 | <geekosaur> | perldoesn't really do modules. it just runs them, they work iff they follow the conventions |
| 17:36:23 | <geekosaur> | (or if they follow a different set of conventions, they become pragmas instead of modules) |
| 17:38:15 | <geekosaur> | (remember, folks, "package" is not a compile-time entity….) |
| 17:39:07 | <monochrom> | That probably means Turing-complete module system and in addition Turing-complete pragma system. Under the interpretation "if you follow a certain convention, people agree that you're doing a module/pragma". |
| 17:39:33 | <janus> | geekosaur: what do you mean by not being a compile-time entity? there is PackageImports |
| 17:40:00 | <monochrom> | So for example suppose I say "if <arbitrary program> <code that follows the convention that people read as importing a module>" |
| 17:40:23 | × | Brandon_IX quits (brandon@2a01:7e00::f03c:92ff:feab:6b7c) (Quit: WeeChat 3.0) |
| 17:40:23 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:42:43 | → | thyriaen joins (~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de) |
| 17:43:42 | <geekosaur> | janus, I was talking about monochrom's Perl comment |
| 17:43:58 | <geekosaur> | not Haskell imports |
| 17:44:14 | <janus> | oh, i thought it must've been haskell because it said compile |
| 17:44:24 | <monochrom> | heh |
| 17:44:38 | <geekosaur> | even perl has a compile phase (and so does python) |
| 17:44:52 | <janus> | just-in-time-compilation? |
| 17:45:10 | <geekosaur> | in fact if you go looking at your system's python install you'll see a bunch of *.pyc files which are the saved result of compilation |
| 17:45:22 | <geekosaur> | but usually they aren't saved for user code |
| 17:45:36 | <geekosaur> | there is still a distinct compile pass though |
| 17:46:06 | <janus> | but i remember people putting binary data at the end of perl files |
| 17:46:14 | <janus> | and then prefixing it with an unpack step |
| 17:46:34 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
| 17:46:42 | <geekosaur> | that's a different kind of hack |
| 17:47:00 | <janus> | but i don't understand how you can compile a perl file that has stuff like that |
| 17:47:08 | <monochrom> | When bytecodes like that are involved, whether you call it "interpret" or "compile" is just community convention. |
| 17:47:10 | <janus> | cause to preserve the binary blob, it would have to be part of the ast |
| 17:47:20 | <janus> | but asts don't typically have stuff like that |
| 17:47:29 | <geekosaur> | go look at __DATA__ |
| 17:48:06 | <monochrom> | And Perl adds nuance because it iterates over an interleaving of parsing, making bytecode, running bytecode. |
| 17:48:07 | <geekosaur> | it's a magic filehandle consisting of the source file following the __DATA__ line |
| 17:48:08 | <EvanR> | bytecodes as opposed to machine code which is made of... also bytes |
| 17:48:37 | <geekosaur> | so the AST ends but there's a special filehandle opened on the rest of the file |
| 17:49:09 | <monochrom> | Yes I would rather say P-code than bytecode. |
| 17:49:23 | <monochrom> | The idea started with many Pascal implementations. |
| 17:49:29 | <monochrom> | Hence the P. |
| 17:49:55 | <monochrom> | But who remembers that? Millenials only know as far back as Java, and even then barely. |
| 17:50:13 | <janus> | i think it is misleading to say you compile myscript.pl if you actually only compile the first part and require the RTS to open a file descriptor on the rest |
| 17:50:45 | <geekosaur> | that is not the kind of compiling I was talking about |
| 17:51:26 | <monochrom> | ooohhhh Perl has __DATA__ sections? \∩/ BASIC and COBOL had that too... |
| 17:52:29 | <geekosaur> | you can (or could; it seems to have been discontinued, probably because it was mostly worthless) compile a perl script with perl -c |
| 17:52:42 | <geekosaur> | this does not give you a binary blob at the end of the perl script, but a separate file |
| 17:52:52 | <geekosaur> | you just don't gain much from doing it |
| 17:53:02 | <EvanR> | Perl: COBOL of the... oh |
| 17:53:13 | <monochrom> | ;) |
| 17:54:26 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 17:56:22 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 17:56:30 | <geekosaur> | mm, slightly wrong, -c is check mode |
| 17:56:40 | <EvanR> | I wonder if haskell has packages to effectively support anything COBOL could do |
| 17:56:47 | <geekosaur> | I don't recall how you did precompilation, but it hardly matters because you get so little out of it |
| 17:57:26 | <geekosaur> | 99% of what cobol could do was read/write binary (or card reader/punch) formatted records and sort |
| 17:58:01 | <monochrom> | I think Okasaki figured out a trick to define things so that "multiple x by y" type-checks and equals to x*y, but it causes type inference to take exponential time. |
| 17:58:23 | <EvanR> | lol |
| 17:58:49 | <monochrom> | But OK in the case of mimicking COBOL you just have "multiple x by y", that's already the longest thing possible, so OK. |
| 17:59:16 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 17:59:30 | <monochrom> | But Okasaki was figuring out how to, e.g., "begin 1 2 3 4 end = [1,2,3,4]", and that's when the program length can be arbitrarily long. |
| 17:59:39 | <EvanR> | this brochure on cobol from earlier this year from GNU COBOL project side, is the concrete syntax really the most compelling feature |
| 17:59:50 | <EvanR> | aside* |
| 18:00:28 | <geekosaur> | the most compelling feature for cobol is being able to keep using the same programs you were 40 years ago |
| 18:00:32 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 18:00:40 | <geekosaur> | this actually means a lot to many businesses |
| 18:00:56 | <geekosaur> | (although thta raises the question of why the FSF cares what said businesses think) |
| 18:01:07 | <EvanR> | not exactly AGILE |
| 18:01:21 | <geekosaur> | agile is pretty much the opposite of what they want |
| 18:02:12 | <monochrom> | Unpopular opinion: Dragons are web-scale. They have webs, and they have scales. |
| 18:04:31 | → | vicfred joins (~vicfred@user/vicfred) |
| 18:04:44 | <EvanR> | GNU COBOL can only be a way of sticking it to the man because other COBOL products are apparently pricey |
| 18:05:22 | → | kilolympus joins (~kilolympu@31.205.200.235) |
| 18:05:26 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 18:05:57 | <EvanR> | or maybe it's to accelerate the collapse of the market and so the technology |
| 18:06:07 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 18:07:36 | → | fr33domlover joins (~fr33@141.226.183.231) |
| 18:08:28 | <geekosaur> | well, actually they only care about business to the extent that they don't TiVoify it, which seems unlikely for COBOL |
| 18:08:51 | <geekosaur> | and for selling support, which is especially important to these businesses, they want someone on call 24/7 for problems |
| 18:09:09 | <geekosaur> | Internet support isn't going to interest them |
| 18:09:26 | <Bulby[m]> | i thought the node devs were maintaining COBOL /s |
| 18:10:06 | × | mbuf quits (~Shakthi@182.64.156.25) (Quit: Leaving) |
| 18:11:05 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:11:21 | <geekosaur> | they just haven't learned the lessons of COBOL |
| 18:11:32 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 18:12:08 | <geekosaur> | to wit: there are fields in which you can have a program that is stable and does not need to be changed any more, and it can and will keep doing the thing it was designed to do for years, even decades |
| 18:12:11 | <geekosaur> | and this is OKAY |
| 18:12:14 | × | fr33domlover quits (~fr33@141.226.183.231) (Client Quit) |
| 18:12:45 | × | deadmarshal_ quits (~deadmarsh@95.38.115.70) (Ping timeout: 256 seconds) |
| 18:12:58 | <EvanR> | can more fields have this? please |
| 18:13:07 | <geekosaur> | you don't need 50 reimplementations of it, you don't need bells and whistles, it just works. |
| 18:20:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 18:21:06 | → | acidjnk joins (~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) |
| 18:22:12 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
| 18:23:02 | → | hololeap joins (~hololeap@user/hololeap) |
| 18:25:46 | → | dcoutts_ joins (~duncan@host213-122-143-245.range213-122.btcentralplus.com) |
| 18:27:20 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 18:29:59 | × | zyklotomic quits (~ethan@res380d-128-61-86-213.res.gatech.edu) (Ping timeout: 240 seconds) |
| 18:30:44 | × | thyriaen quits (~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de) (Quit: Leaving) |
| 18:31:21 | <shlevy[m]> | Does anyone know what, if anything, would break if I built a stage 1 ghc with the internal interpreter? I do *not* want this for TemplateHaskell, plan to use `iserv` for that, I want this to enable https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7377 |
| 18:32:16 | → | zyklotomic joins (~ethan@r4-128-61-95-41.res.gatech.edu) |
| 18:32:29 | <geekosaur> | that's probably a question for #ghc, not #haskell, but I could see problems if the bootstrap ghc's version doesn't match the stage 1's version |
| 18:33:22 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:37:42 | <geekosaur> | (in particular the stage1 ghc will be using the bootstrap version's RTS, which suggests to me that wired-ins may not match for code executed during compilation) |
| 18:39:54 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 18:42:22 | <shlevy[m]> | geekosaur: Ah, didn't remember #ghc, thanks |
| 18:43:02 | → | Pickchea joins (~private@user/pickchea) |
| 18:43:04 | → | simendsjo joins (~user@84.211.91.241) |
| 18:45:03 | <shlevy[m]> | <geekosaur> "(in particular the stage1 ghc..." <- I'd compile with the bootstrap compiler, but *against* the ghc lib of stage1 |
| 18:47:55 | × | megaTherion quits (~therion@unix.io) (Ping timeout: 260 seconds) |
| 18:49:03 | → | redb joins (~nmh@136.49.49.211) |
| 18:53:33 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
| 18:53:33 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 18:58:19 | × | simendsjo quits (~user@84.211.91.241) (Remote host closed the connection) |
| 19:01:31 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 19:01:42 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 19:02:54 | → | megaTherion joins (~therion@unix.io) |
| 19:03:36 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5) |
| 19:04:06 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 19:04:15 | × | averell quits (~averell@user/averell) (Quit: .) |
| 19:09:12 | → | averell joins (~averell@user/averell) |
| 19:10:31 | × | [Leary] quits (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) (Remote host closed the connection) |
| 19:10:47 | → | [Leary] joins (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) |
| 19:12:39 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:5717:8bb4:874e:9726) (Remote host closed the connection) |
| 19:13:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 19:16:07 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:18:15 | → | hololeap joins (~hololeap@user/hololeap) |
| 19:19:26 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 19:20:10 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:21:07 | → | redb joins (~nmh@136.49.49.211) |
| 19:24:49 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 19:25:33 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 19:25:51 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
| 19:26:16 | × | myme quits (~myme@2a01:799:d5a:cd00:7ca6:39bc:e22b:ee2b) (Ping timeout: 248 seconds) |
| 19:27:15 | → | myme joins (~myme@2a01:799:d5a:cd00:39b8:863a:6d20:cd9e) |
| 19:27:36 | → | deadmarshal_ joins (~deadmarsh@95.38.113.141) |
| 19:28:41 | × | eraziel quits (~eraziel@modemcable169.17-58-74.mc.videotron.ca) (Quit: Client closed) |
| 19:30:46 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 19:32:24 | × | deadmarshal_ quits (~deadmarsh@95.38.113.141) (Ping timeout: 276 seconds) |
| 19:40:26 | → | pavonia joins (~user@user/siracusa) |
| 19:42:31 | × | vorpuni quits (~pvorp@2001:861:3881:c690:691f:4814:d40:6070) (Ping timeout: 260 seconds) |
| 19:47:42 | → | redb joins (~nmh@136.49.49.211) |
| 19:50:46 | → | Guest91 joins (~Guest91@caliga.eecs.tufts.edu) |
| 19:51:27 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 19:52:33 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
| 19:56:17 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 19:56:58 | → | notzmv joins (~zmv@user/notzmv) |
| 19:57:32 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 20:00:20 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 20:00:49 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 20:02:21 | <Guest91> | Backstory: I'm trying to get a central install -- not a home directory install! -- of GHC and various Haskell tools built for RHEL 8. I've built ghc-9.2.2, and used ghcup to put a temporary-use 'cabal' binary in ~/.ghcup/bin so I can run 'cabal v1-install' to put stuff centrally. But the ghcup-provided 'cabal' binary can do no such thing. No |
| 20:02:21 | <Guest91> | matter what I try, it barfs out multiple rejections of various dependencies and exits with: |
| 20:02:22 | <Guest91> | After searching the rest of the dependency tree exhaustively, these were the |
| 20:02:22 | <Guest91> | goals I've had most trouble fulfilling: [list of all dependencies] |
| 20:02:23 | <Guest91> | Even something as simple as 'cabal install cabal-install' fails the same way, but 'cabal install xml' works. It looks like it can't install anything that's already under ~/.ghcup, even though I specifically don't want it to overwrite anything in ~/.ghcup. Is there any way to force it to install somewhere else? |
| 20:03:13 | → | mastarija joins (~mastarija@2a05:4f46:e04:6000:dcea:d813:208c:e9e1) |
| 20:03:46 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 20:03:47 | <Guest91> | Note that my final goal is to have a central install of various tools to be shared by multiple users, and my temporary stuff deleted with 'rm -rf ~/.ghcup ~/.ghc ~/.cabal" |
| 20:05:33 | → | redb joins (~nmh@136.49.49.211) |
| 20:06:09 | <sclv> | Guest91: in the above you've written 'cabal install cabal-install' but did you actually mean to write 'cabal v1-install cabal-install'? |
| 20:06:28 | <mastarija> | How do I add a flag for the particular package in my cabal.project file? |
| 20:06:29 | <Guest91> | I tried both; neither worked. |
| 20:06:41 | <sclv> | note that if you've used any not-v1 cabal install commands you'll have a ghc environment file lying around, and those can cause trouble |
| 20:07:03 | <sclv> | you should delete the environment file, and use `v1-install --global` _only_ |
| 20:07:25 | <Guest91> | OK, trying to clobber things first then re-ghcup myself a cabal binary. |
| 20:07:37 | <sclv> | the cabal binary will be the same |
| 20:07:41 | <sclv> | and you don't need to clobber everything |
| 20:07:47 | <sclv> | just delete a ghc environment file if it exists |
| 20:07:52 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:08:01 | <Guest91> | Past experience says that clobbering everything is often necessary :/ |
| 20:08:05 | <sclv> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/packages.html#package-environments |
| 20:08:08 | <geekosaur> | also if you have installed ghc using ghcup and have not used the envar to point the install to e.g. /usr/local, "global" will be the ghc library directory under ~/.ghcup |
| 20:08:31 | <Guest91> | The GHC install I have is standalone, not done with ghcup. |
| 20:08:52 | <sclv> | then it is confusing that you say "it can't install anything that's already under ~/.ghcup" |
| 20:08:57 | <sclv> | because no libraries will be under there! |
| 20:09:01 | <sclv> | just binaries |
| 20:09:10 | <sclv> | and cabal doesn't know or care about those |
| 20:09:26 | <Guest91> | Hrm. Trying again post-clobber. |
| 20:09:51 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 20:09:58 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 20:10:45 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
| 20:11:01 | <sclv> | the environment file i'm warning about will be in $XDG_DATA_HOME/ghc/arch-os-version/environments/default |
| 20:11:33 | <Guest91> | I don't have that environment variable set. What does it default to? |
| 20:12:00 | × | mastarija quits (~mastarija@2a05:4f46:e04:6000:dcea:d813:208c:e9e1) (Quit: Leaving) |
| 20:12:03 | <geekosaur> | ~/.local on unix |
| 20:12:16 | → | liz joins (~liz@host109-151-125-217.range109-151.btcentralplus.com) |
| 20:12:46 | <Guest91> | Aha! OK, clobbering that too. |
| 20:13:33 | <Guest91> | Nothing in ~/.local/ghc. |
| 20:13:46 | <geekosaur> | if you have ~/.ghc it may be using that |
| 20:13:51 | <geekosaur> | (backwards compat) |
| 20:14:16 | <Guest91> | I whacked that already. Trying again with a new ~/.ghcup/bin/cabal |
| 20:16:08 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 20:16:38 | <Guest91> | Nada. Same error. |
| 20:17:06 | <sclv> | oh wait with cabal-install it may be that there's legit no install plan with 9.2.2 |
| 20:17:14 | <sclv> | that's what you get for using the latest compiler |
| 20:17:19 | <Guest91> | D'oh! |
| 20:17:36 | <Guest91> | I can fall back to 8.10.7, which is what I used to build 9.2.2. Will have to check with the instructor though. |
| 20:17:40 | <sclv> | you can pick out a good universe of libs too |
| 20:17:49 | <sclv> | i mean... you have the binary |
| 20:17:54 | <sclv> | no need to be able to bootstrap it |
| 20:18:55 | <sclv> | most libs you'll want globally installed for end-users should be fine |
| 20:19:47 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:20:05 | → | anomal joins (~anomal@87.227.196.109) |
| 20:20:13 | <sclv> | (its rather irritating about cabal-install but its release cycle is usually _immediately before_ or coincident with a compiler release, but it can't be built against a stable latest-release until that release already happens, so its frequently one behind) |
| 20:24:28 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) () |
| 20:24:51 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 20:25:22 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 20:26:12 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 20:28:12 | <Guest91> | So downgrading to an earlier 9.2 might work? |
| 20:28:23 | <sclv> | not 9.2 |
| 20:28:32 | <Guest91> | 9.1, OK. |
| 20:28:39 | <sclv> | i'd go with 8.10.7 |
| 20:28:43 | <sclv> | for building cabal-install |
| 20:28:48 | <sclv> | but again, you have _no need_ to build it |
| 20:28:50 | <sclv> | you already have it |
| 20:29:00 | → | redb joins (~nmh@136.49.49.211) |
| 20:30:07 | <Guest91> | I would like to have an install of that somewhere other than my homedir. Past experience says that many issues with cabal are easily solved by deleting all the cabal and ghc-related directories in ~, and having my only copy of cabal there is problematic. I suppose I can re-ghcup myself every time. |
| 20:30:09 | <sclv> | and even if you do build it, that doesn't prevent you from providing a systemwide 9.2.2 in general, it just means that you'll have used 8.10.7 to build a particular binary |
| 20:30:26 | <sclv> | you don't need to re-ghcup yourself for cabal install. its literally _just_ a binary |
| 20:30:32 | → | Henson joins (~kvirc@107-179-133-201.cpe.teksavvy.com) |
| 20:31:44 | <sclv> | all ghcup does is download and unpack the appropriate binary tarball from https://downloads.haskell.org/cabal/cabal-install-3.6.2.0/ |
| 20:31:45 | <Guest91> | 'cabal v1-install template-haskell' also failed -- and that had no dependency but itself. Again, something that seems to come with cabal-install, and things not in that stack looked to install fine (zlib, for example) |
| 20:32:07 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:33:07 | <sclv> | template-haskell is not reinstallable |
| 20:33:07 | <sclv> | its a "builtin" lib -- its coupled to the compiler and can only be the version that comes with the compiler |
| 20:33:07 | <sclv> | genrally the things you say "come with cabal-install" are things that come with ghc, and are mainly but not entirelly unreinstallable |
| 20:33:34 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 20:33:36 | <Henson> | hi everyone, I'm trying to figure out how to do something with existential types. I've boiled it down to a simple example here: https://paste.tomsmeding.com/XmnhxI61 I want to be able to set different types of a class to the foo2 record of the Foo type. Does anybody have any suggestions on how to do this correctly? |
| 20:33:41 | <Guest91> | Ah, OK. I just saw it as one of the dependencies that was failing when I tried to get cabal-install to install where I wanted it. |
| 20:34:09 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
| 20:34:24 | <Guest91> | And it looked to have no dependencies of its own, which is why I tried it. |
| 20:34:41 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 20:36:33 | → | redb joins (~nmh@136.49.49.211) |
| 20:36:49 | <Guest91> | I will try dropping the cabal binary manually into the appropriate bindir and install only things that I don't already have from ghc itself. |
| 20:37:58 | → | hololeap joins (~hololeap@user/hololeap) |
| 20:39:12 | <tomsmeding> | Henson: not entirely sure why that doesn't work, but here's another approach: https://play-haskell.tomsmeding.com/play/paste/TLFK6v3P/1 |
| 20:39:29 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Quit: mikoto-chan) |
| 20:39:47 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 20:40:31 | <tomsmeding> | Henson: at the very least you need a GADT to do this; the (Show a) context (dictionary) on your regular Foo wasn't actually embedded in the data type, so you could never actually _use_ that Show |
| 20:40:43 | <tomsmeding> | the GADT actually stores the Show dictionary in the data type at runtime |
| 20:41:00 | <tomsmeding> | (as if you had another `a -> String` field in the data type) |
| 20:42:02 | <Henson> | tomsmeding: ok, thank you for the suggestion. Haskell suggested either existential quantification or GADTs, so thanks for showing me show it could be done. |
| 20:42:32 | <Henson> | tomsmeding: but it looks like I have to use pattern matching and that records are not possible? |
| 20:44:26 | <tomsmeding> | Henson: I think to get the dictionary out of the GADT, you have to pattern match indeed. You can still use records, somewhat, but apparently they seem quite crippled around the existential fields? |
| 20:44:29 | <tomsmeding> | I'm not sure either |
| 20:44:33 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
| 20:44:56 | → | redb joins (~nmh@136.49.49.211) |
| 20:45:05 | <tomsmeding> | like, you can replace the (Foo x _) pattern match by (foo { foo1 = x }) and it works fine, but that doesn't really help |
| 20:45:29 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 20:45:46 | → | Me-me joins (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
| 20:46:12 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 20:46:31 | <Henson> | tomsmeding: ok. The thing I'm really trying to do with this is to have a Camera data type that can contain an exposure controller that belongs to a certain class. I would like to try to avoid having the type of the camera also depend on the type of the exposure controller, because it could in principle be altered at run time. Is this the right track for solving my problem? |
| 20:48:31 | <Henson> | tomsmeding: and what do you mean by "Show dictionary" and "context (dictionary)" in what you were saying? |
| 20:48:31 | <tomsmeding> | Henson: how practical would it be to make a new data type, `data SomeExpCon where SomeExpCon :: IsExposureController a => a -> SomeExpCon`, and implement the functionality you need of an ExpCon on that data type? |
| 20:48:38 | <tomsmeding> | ah! |
| 20:49:01 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-0019-c4db-1431-3cc1.res6.spectrum.com) |
| 20:49:07 | <tomsmeding> | Henson: `class Show a where show :: a -> String` becomes `data Show a = ShowDict { show :: a -> String }` at runtime |
| 20:49:34 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 20:49:39 | <tomsmeding> | and if you write `f :: (A, B) => c -> d -> e`, then at runtime that becomes `f :: (a, b) -> c -> d -> e` |
| 20:50:23 | <tomsmeding> | when I say a "Show dictionary", I mean the dictionary (i.e. record; GHC calls it a dictionary) containing the definitions of the methods of Show that gets passed around at runtime |
| 20:50:58 | <tomsmeding> | and at runtime you _need_ that dictionary, because if you write `f :: Show a => a -> String; f x = show x`, and supposing `f` isn't inlined, `f` needs to pull a definition of `show` from _somewhere_ |
| 20:51:04 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 20:51:15 | <tomsmeding> | and that somewhere is from the dictionary that it also gets passed |
| 20:52:12 | × | redb quits (~nmh@136.49.49.211) (Remote host closed the connection) |
| 20:52:15 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 20:52:20 | → | redb joins (~nmh@136.49.49.211) |
| 20:52:23 | → | hololeap joins (~hololeap@user/hololeap) |
| 20:52:44 | <tomsmeding> | Henson: open this https://play-haskell.tomsmeding.com/play/paste/lexvC47g/1 , click Core, and look at the type of Main.$wfoo (it's near the top) |
| 20:52:52 | <Henson> | tomsmeding: thank you for the explanation. I didn't know that stuff was happening behind the scenes. |
| 20:53:03 | <tomsmeding> | (so here GHC realised that Show only has one member, so it just inlined that one member) |
| 20:53:27 | × | zer0bitz quits (~zer0bitz@2001:2003:f444:8f00:9939:dfc8:bfb9:90c2) (Ping timeout: 260 seconds) |
| 20:54:31 | <Henson> | tomsmeding: interesting. What is this "Tidy Core" output? |
| 20:54:31 | <tomsmeding> | another example: change foo to `foo :: Eq a => a -> String ; foo x = if x == x && x /= x then "yes" else "no"` and see that it now gets two extra arguments (quiz: what are they :p) |
| 20:55:45 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Quit: leaving) |
| 20:55:49 | <geekosaur> | core has a lot of extra information in it which is being stripped for readability |
| 20:55:50 | → | goepsilongo joins (~goepsilon@2603-7000-ab00-62ed-8077-381b-a4b0-5dd2.res6.spectrum.com) |
| 20:56:05 | <tomsmeding> | Henson: GHC parses your program into a Haskell AST, resolves names, typechecks, and then converts into an intermediate language called Core. Most optimisation passes run on Core; this "Tidy Core" output is the state of Core after optimisation. It's a bit like haskell, but has some differences as well. (After Core, the program gets converted to STG, and then to Cmm, and then to machine code) |
| 20:56:06 | <geekosaur> | there are command line arguments you can use to do the same thing, to inspect core locally |
| 20:56:20 | <tomsmeding> | yeah this is just `ghc -ddump-simpl Main.hs` |
| 20:56:44 | <geekosaur> | oh, you don';t do the -dsuppress-uniques or whatever on top? |
| 20:56:54 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
| 20:57:07 | <tomsmeding> | geekosaur: https://github.com/tomsmeding/pastebin-haskell/blob/play/bwrap-files/entry.sh#L33 |
| 20:57:08 | <geekosaur> | anyway you can do this locally, I think the dump-core package is the current preferred way to get nice clean core to look at |
| 20:57:18 | <monochrom> | Add -dsuppress-all to omit some information so you don't get overwhelmed at the beginning. |
| 20:58:54 | <monochrom> | -dsuppress-unique is a two-edged sword though. Distinct variables look like the same variable. |
| 20:59:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 21:01:01 | <monochrom> | Hah feature request:" -duniqueness-seed=1394" so you can get reproducible randomized variable names :) |
| 21:01:44 | tomsmeding | clicked "Core" multiple times and got identical output |
| 21:01:45 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 21:01:50 | → | hololeap joins (~hololeap@user/hololeap) |
| 21:02:03 | <monochrom> | Hrm |
| 21:02:07 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 21:02:11 | monochrom | goes try |
| 21:02:24 | <monochrom> | Is that 9.0? 9.2? 8.10? |
| 21:02:32 | <tomsmeding> | https://play-haskell.tomsmeding.com/play/paste/lexvC47g/1 |
| 21:02:37 | <tomsmeding> | select your favourite version! |
| 21:02:49 | <geekosaur> | I thought they made things fixed these days so reproducible builds were possible |
| 21:02:58 | <geekosaur> | I may be misremembering though |
| 21:03:05 | <EvanR> | these records passed around as part of "dictionary passing" are like, the smallest dictionaries ever right xD |
| 21:03:22 | <geekosaur> | try the dictionary for Foldable :) |
| 21:03:41 | <tomsmeding> | EvanR: this one has a bunch of stuff as well https://hackage.haskell.org/package/snap-core-1.0.5.0/docs/Snap-Core.html#t:MonadSnap |
| 21:04:17 | <EvanR> | class MonadSnap where liftSnap |
| 21:04:20 | <tomsmeding> | (superclasses are fields in the dictionary, evidently) |
| 21:04:20 | <monochrom> | Nice. |
| 21:04:31 | <tomsmeding> | (because you need their fields too) |
| 21:04:32 | <EvanR> | ah I see |
| 21:05:12 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:05:25 | <EvanR> | still that is still small compared to a dictionary |
| 21:05:38 | <tomsmeding> | thinking about Oxford? |
| 21:05:43 | <tomsmeding> | I mean, yeah :p |
| 21:05:52 | <EvanR> | and I imagine indexing is not doing a binary search is it |
| 21:06:14 | <monochrom> | No, hardcoded offset. |
| 21:07:00 | <EvanR> | "void star array passing" xD |
| 21:08:09 | × | kaskal quits (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) (Quit: ZNC - https://znc.in) |
| 21:08:27 | → | kaskal joins (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) |
| 21:10:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 21:10:05 | <EvanR> | less dictionary and more cheat sheet |
| 21:11:58 | <tomsmeding> | EvanR: think C struct, that's also not going to do binary search :p |
| 21:12:10 | <tomsmeding> | that would be the stupidest C compiler ever |
| 21:12:29 | <tomsmeding> | or, more likely, it's actually a C interpreter |
| 21:13:19 | <EvanR> | it's funny because in many languages the equivalent of C structs using dictionaries |
| 21:13:36 | <EvanR> | (very small) |
| 21:13:50 | → | hololeap joins (~hololeap@user/hololeap) |
| 21:14:11 | <EvanR> | here we don't do that but call them dictionaries xD |
| 21:14:48 | <monochrom> | Let's start calling them objects, just for fun. |
| 21:15:21 | <monochrom> | "classes are implemented by object passing" will go on to become a great slogan |
| 21:15:32 | → | alp_ joins (~alp@user/alp) |
| 21:16:13 | <tomsmeding> | makes me think of an article I read at some point where someone bragged about having worked at google or somesuch and having named a field in a protocol "stuff" |
| 21:17:12 | <monochrom> | I think I heard of that. |
| 21:17:45 | <monochrom> | Maybe not bragging but explaining that it is really generic, can't have a more specific name. |
| 21:18:07 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 21:18:27 | <tomsmeding> | yeah |
| 21:18:35 | <tomsmeding> | can't seem to find the post now tough |
| 21:18:39 | <tomsmeding> | *though |
| 21:18:47 | <monochrom> | No worries :) |
| 21:20:02 | <tomsmeding> | monochrom: did you find a reproducer for nondeterministic names, or do they indeed seem deterministic nowadays? |
| 21:20:21 | <monochrom> | They are deterministic now, yeah. Tried 8.10.7. |
| 21:20:45 | <tomsmeding> | I tried all five compilers available on that list (though with a very small program), and it was all deterministic |
| 21:21:25 | <monochrom> | I only remember old things such as BASIC, COBOL, and Hugs, you see... :) |
| 21:21:51 | <tomsmeding> | at least Hugs had a friendly name |
| 21:23:54 | × | michalz quits (~michalz@185.246.204.125) (Remote host closed the connection) |
| 21:24:21 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 21:24:51 | × | alp_ quits (~alp@user/alp) (Ping timeout: 256 seconds) |
| 21:26:03 | <geekosaur> | my recollection is various folks including the nix folks (and nix users working on/with ghc) begged for that determinism |
| 21:26:28 | → | redb joins (~nmh@136.49.49.211) |
| 21:29:00 | → | asivitz joins (uid178348@id-178348.tinside.irccloud.com) |
| 21:29:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 21:31:52 | → | hololeap joins (~hololeap@user/hololeap) |
| 21:33:11 | → | abrantesasf joins (~abrantesa@189.115.192.139) |
| 21:35:17 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 21:37:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 21:37:41 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 21:42:14 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds) |
| 21:42:58 | × | wolfshappen quits (~waff@irc.furworks.de) (Quit: later) |
| 21:43:20 | → | wolfshappen joins (~waff@irc.furworks.de) |
| 21:43:43 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 21:45:15 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 21:45:35 | → | hololeap joins (~hololeap@user/hololeap) |
| 21:45:46 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds) |
| 21:47:56 | → | malinoskj2903 joins (~malinoskj@48.170-avail-pool-cc.sccoast.net) |
| 21:48:17 | <shlevy[m]> | Yes we did :D |
| 21:49:15 | <shlevy[m]> | In general we want byte-determinism in all of our builds but the non-determinism in GHC was particularly bad because it meant actually incompatible builds results |
| 21:49:32 | × | abrantesasf quits (~abrantesa@189.115.192.139) (Remote host closed the connection) |
| 21:49:40 | × | malinoskj290 quits (~malinoskj@48.170-avail-pool-cc.sccoast.net) (Ping timeout: 250 seconds) |
| 21:49:46 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 21:50:10 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:51:00 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 21:52:16 | × | malinoskj2903 quits (~malinoskj@48.170-avail-pool-cc.sccoast.net) (Ping timeout: 250 seconds) |
| 21:55:32 | → | malinoskj290 joins (~malinoskj@48.170-avail-pool-cc.sccoast.net) |
| 21:56:03 | × | Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
| 21:58:36 | → | abrantesasf joins (~abrantesa@189.115.192.139) |
| 21:59:20 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 21:59:39 | → | bshelden joins (~bshelden@S010664777d493f93.vf.shawcable.net) |
| 22:03:39 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
| 22:04:09 | → | malinoskj2906 joins (~malinoskj@48.170-avail-pool-cc.sccoast.net) |
| 22:04:13 | × | malinoskj290 quits (~malinoskj@48.170-avail-pool-cc.sccoast.net) (Read error: Connection reset by peer) |
| 22:05:26 | → | anomal joins (~anomal@87.227.196.109) |
| 22:07:11 | × | acidjnk quits (~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 22:07:58 | × | kuribas quits (~user@ptr-17d51enjtkmzpg60wq1.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 22:11:58 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:12:46 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 22:13:18 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 22:16:07 | → | xff0x_ joins (~xff0x@om126167099166.29.openmobile.ne.jp) |
| 22:16:57 | × | dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:17:43 | → | dolio joins (~dolio@130.44.130.54) |
| 22:17:56 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 246 seconds) |
| 22:19:06 | × | raym quits (~raym@user/raym) (Ping timeout: 272 seconds) |
| 22:19:36 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 22:21:47 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 22:24:04 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:24:25 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:24:34 | → | raym joins (~raym@user/raym) |
| 22:25:57 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 276 seconds) |
| 22:29:24 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 22:34:24 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
| 22:39:04 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:42:38 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 22:45:35 | × | dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 22:46:48 | × | fendor_ quits (~fendor@178.115.43.124.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:47:45 | ← | bshelden parts (~bshelden@S010664777d493f93.vf.shawcable.net) () |
| 22:50:28 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 22:51:48 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 22:56:17 | <EvanR> | "this field must be named 'stuff' because it really could be anything" sounds like my first day at my first PHP job |
| 22:56:37 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 22:56:37 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 22:56:37 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:56:37 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 22:56:39 | <EvanR> | and it wasn't at google |
| 22:57:37 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection) |
| 22:58:01 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 22:58:43 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:02:25 | → | gentauro joins (~gentauro@user/gentauro) |
| 23:03:00 | → | Henson joins (~kvirc@107-179-133-201.cpe.teksavvy.com) |
| 23:04:14 | <Henson> | shlevy[m]: was it even possible to build Nix packages when the results from GHC were non-deterministic? I mean, they could build, but would their store hashes be different every time? |
| 23:06:54 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds) |
| 23:07:39 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:07:49 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection) |
| 23:08:14 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 23:13:03 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 23:16:56 | <shlevy[m]> | <Henson> "shlevy: was it even possible..." <- No, because the store hashes are not* determined based on the hash of the result, they are determined based on the hash of the inputs + the build script |
| 23:16:56 | <shlevy[m]> | *: Slight oversimplification, some builds are determined based on the hash (e.g. fetching a tarball from the internet) and very recently there's a "content-addressed" store feature which is not essential to this point. |
| 23:24:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 23:24:55 | <Henson> | shlevy[m]: ok, so the store hashes could be the same, even though the hash out the outputs were different. I think at NixCon 2020 Eelco mentioned something about this, and how they were working on content-based hashing. |
| 23:27:00 | → | hololeap joins (~hololeap@user/hololeap) |
| 23:30:33 | <meejah> | iirc, the store hashes are a hash of the config / nix-expression? |
| 23:31:22 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:33:12 | × | lisq quits (~quassel@lis.moe) (Quit: lisq) |
| 23:46:47 | <Guest91> | Looks like I have as many packages installed with cabal as I'm going to get. Many thanks for all the help! |
| 23:47:46 | × | Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
| 23:47:51 | <geekosaur> | the ones you can't reinstall you can copy and edit their package registration files, then "ghc-pkg recache --global" |
| 23:47:52 | → | vysn joins (~vysn@user/vysn) |
| 23:52:39 | × | abrantesasf quits (~abrantesa@189.115.192.139) (Remote host closed the connection) |
| 23:58:15 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds) |
All times are in UTC on 2022-04-26.