2021-07-29 00:00:00 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 00:00:04 +0200 | <monochrom> | To achieve what Knuth meant by literate programming (hint: if it were just comment-vs-code syntax, he would not go to the trouble to implement two programs, weave and tangle), people now have to say "bidirectional literate programming" |
2021-07-29 00:00:23 +0200 | <monochrom> | Programmers keep doing this. |
2021-07-29 00:01:27 +0200 | <monochrom> | Hungarian notation : "Hungarian notation" :: engineer : "engineer" :: literate programming :: "literate programming" |
2021-07-29 00:03:35 +0200 | <monochrom> | euouae: I haven't done literate programming (the real one) for a long time. But when I did, I used Norman Ramsay's programs "noweave" and "notangle". |
2021-07-29 00:04:11 +0200 | <monochrom> | I get to handwave it because I can point you to existing software. :) |
2021-07-29 00:04:34 +0200 | <hpc> | my favorite is when programmers invent new words for nothing, like "eventually consistent" or "duck typing" |
2021-07-29 00:04:55 +0200 | <monochrom> | But "notangle" is the program that emits code files you can then give to compilers. |
2021-07-29 00:05:13 +0200 | <monochrom> | "noweave" is the one that emits TeX/LaTeX files. |
2021-07-29 00:05:22 +0200 | <monochrom> | Similarly Knuth's weave and tangle. |
2021-07-29 00:06:35 +0200 | <euouae> | That stuff is so cryptic |
2021-07-29 00:06:43 +0200 | <euouae> | I'm reading the man page and it's almost nonsensical |
2021-07-29 00:07:08 +0200 | <monochrom> | man pages are seldom tutorials. |
2021-07-29 00:07:20 +0200 | <euouae> | well for one I can't even find it online |
2021-07-29 00:07:26 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-29 00:07:35 +0200 | <monochrom> | If you already know Knuth's idea of literate programming, then noweave and notangle make sense. |
2021-07-29 00:07:39 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) (Quit: Client closed) |
2021-07-29 00:07:56 +0200 | <monochrom> | If you don't, perhaps don't worry about it for now. |
2021-07-29 00:08:03 +0200 | <euouae> | O |
2021-07-29 00:08:04 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) |
2021-07-29 00:08:17 +0200 | <euouae> | I'd know the idea if there was a single coherent article/blog about it :P |
2021-07-29 00:08:22 +0200 | dschrempf | (~dominik@mobiledyn-185-69-244-184.mrsn.at) (Quit: WeeChat 3.2) |
2021-07-29 00:08:24 +0200 | <monochrom> | But millenial bloggers can only brag and handwave, yes. |
2021-07-29 00:08:33 +0200 | ukari | (~ukari@user/ukari) |
2021-07-29 00:08:52 +0200 | <monochrom> | "coherent blog" is an oxymoron. |
2021-07-29 00:09:21 +0200 | <dolio> | Does the wikipedia article explain it? |
2021-07-29 00:09:27 +0200 | <monochrom> | Look for Knuth's original articles and papers. Screw bloggers. |
2021-07-29 00:09:48 +0200 | <monochrom> | Yeah wikipedia has a high chance of being OK too. |
2021-07-29 00:10:16 +0200 | <dolio> | Seems like it does, although I just read it, and never understood what advocates were on about prior. |
2021-07-29 00:10:16 +0200 | <monochrom> | The blogosphere is a meta-level echo chamber of mediocrity. |
2021-07-29 00:10:55 +0200 | <dolio> | E.G. one of the main things that would disqualify Literate Haskell is that you still have to put all your imports at the top. |
2021-07-29 00:11:33 +0200 | <monochrom> | That would be my opinion, yes. |
2021-07-29 00:12:05 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-29 00:13:49 +0200 | <dolio> | I'm not really sure I buy the 'revolutionary' part either, though. |
2021-07-29 00:14:37 +0200 | euouae | (~euouae@user/euouae) (Quit: Client closed) |
2021-07-29 00:14:48 +0200 | <monochrom> | True. I was excited when I learned it when I was young. But not to the point of calling it "revolutionary". |
2021-07-29 00:14:48 +0200 | <dolio> | It seems way too optimistic about the underlying reasons why software is poorly documented. |
2021-07-29 00:15:51 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 00:15:51 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-29 00:16:00 +0200 | <dolio> | Using literate programming isn't going to make your programmers proofread the entire codebase every time they make a change to make sure everything is still coherent. |
2021-07-29 00:16:08 +0200 | <monochrom> | Oh yeah, it's even more thankless work than the existing comment system. |
2021-07-29 00:17:13 +0200 | <monochrom> | I certainly did it when only it was appropriate. I ran a programming contest and then posted my solution and explanation. That one was an excellent use case. |
2021-07-29 00:17:39 +0200 | <monochrom> | But the program I wrote for my MSc project, haha why would anyone. |
2021-07-29 00:18:49 +0200 | euouae | (~euouae@user/euouae) |
2021-07-29 00:19:54 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2021-07-29 00:23:36 +0200 | <dolio> | Yeah, I would guess that it turns out well because of how Knuth is writing the programs, and most programs aren't written that way (single author, writing something intended to be didactic). |
2021-07-29 00:24:32 +0200 | agua | (~agua@2804:14c:8793:8e2f:8dcb:5525:982:c9ab) (Ping timeout: 268 seconds) |
2021-07-29 00:24:33 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-29 00:24:33 +0200 | <dolio> | I can write (I think) great stuff like that in non-literate Haskell when it's my goal, but often it's not. |
2021-07-29 00:25:59 +0200 | <dolio> | Sometimes I do it in Agda, and that has constraints on the order you can write definitions in. |
2021-07-29 00:28:44 +0200 | <sm> | eww! |
2021-07-29 00:28:48 +0200 | <glguy> | Couldn't we do literate programming just the same now as Knuth did then? It just wouldn't be .lhs files; we'd have to use the same kind of processing passes used before. |
2021-07-29 00:29:50 +0200 | Null_A | (~null_a@2601:645:8700:2290:7921:180d:4519:92d1) () |
2021-07-29 00:29:53 +0200 | <sm> | we certainly can |
2021-07-29 00:29:56 +0200 | <monochrom> | Yeah just use Knuth's weave-tangle or Ramsay's nowave-notangle. Agnostic to languages. |
2021-07-29 00:30:39 +0200 | <monochrom> | Why even invent lhs in the first place. |
2021-07-29 00:31:03 +0200 | <sm> | org mode can do it too |
2021-07-29 00:32:16 +0200 | <sm> | and https://leoeditor.com |
2021-07-29 00:34:44 +0200 | <sm> | or I suppose just m4 if you want to really mess around |
2021-07-29 00:37:34 +0200 | euouae | (~euouae@user/euouae) (Ping timeout: 246 seconds) |
2021-07-29 00:37:38 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 00:38:37 +0200 | son0p- | (~ff@181.136.122.143) |
2021-07-29 00:42:26 +0200 | <monochrom> | Uh m4 hahahaha |
2021-07-29 00:43:05 +0200 | <monochrom> | Someone please concort a shell script that uses sed, and only sed, in a very clever way >:) |
2021-07-29 00:43:50 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2021-07-29 00:43:55 +0200 | <dolio> | I guess strictly speaking, the orderedness of Agda is likely to be less of a limitation, because it basically means you need to introduce the type of something before referring to it, or the definition of something before depending on the properties thereof. |
2021-07-29 00:44:22 +0200 | <dolio> | Which seems like it would correllate with how you'd have to explain things for them to make sense. |
2021-07-29 00:46:31 +0200 | dajoer | (~david@user/gvx) |
2021-07-29 00:47:06 +0200 | Topsi | (~Tobias@dyndsl-037-138-065-120.ewe-ip-backbone.de) |
2021-07-29 00:48:26 +0200 | <monochrom> | My experience is that, e.g., if an ADT has 4 cases and you have a function that works on that ADT, half of the time it is better to explain the first 2 cases and the first half of your function, and then go back to explain the other 2 cases and the other half of your function. |
2021-07-29 00:48:57 +0200 | <monochrom> | In fact I am doing this in my course notes http://www.cs.utoronto.ca/~trebla/CSCC24-2021-Summer/09-semantics-1.html |
2021-07-29 00:49:26 +0200 | <dolio> | Yeah, I'm not sure if you can break up definitions like that in Agda. |
2021-07-29 00:49:49 +0200 | <monochrom> | Pedagogically it makes no sense to even bring up, e.g., the "VClosure" case of the "Value" type at any early point. |
2021-07-29 00:50:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 00:52:06 +0200 | <dolio> | That idea might have been reinvented many years later as "aspect oriented programming", although I'm not an expert on that, either. |
2021-07-29 00:52:16 +0200 | <monochrom> | :) |
2021-07-29 00:52:26 +0200 | <dolio> | Much worse name, certainly. |
2021-07-29 00:53:05 +0200 | <monochrom> | My recollection is that AOP fizzled because it (or its community) really went the equivalent of the m4 route and it became unwanted madness. |
2021-07-29 00:53:10 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-29 00:54:38 +0200 | <monochrom> | But AOP did not aim for explaining code, it aimed for keeping code open-world for postmortem additions. |
2021-07-29 00:55:28 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-07-29 00:55:59 +0200 | <dolio> | Yeah. |
2021-07-29 00:56:20 +0200 | <dolio> | I guess it's the same sort of idea with a different goal in mind. |
2021-07-29 00:56:36 +0200 | <monochrom> | Ah, yeah. |
2021-07-29 00:58:02 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) |
2021-07-29 00:58:04 +0200 | wroathe | (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Ping timeout: 250 seconds) |
2021-07-29 00:59:30 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-07-29 00:59:35 +0200 | <dolio> | I guess my hypothesis is that widespread adoption of literate programming tools would probably get you to where AOP went. |
2021-07-29 00:59:56 +0200 | <dolio> | Because programmers will care about the code organization possibilities, not writing excellent documentation. |
2021-07-29 01:03:09 +0200 | <johnw> | if I have a record data Foo = Foo { a :: Int, b :: Int }, is it possible to write a Traversal' Foo Int over the two members? |
2021-07-29 01:03:47 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds) |
2021-07-29 01:04:32 +0200 | <dolio> | Yes, you can write one. |
2021-07-29 01:04:38 +0200 | <dibblego> | yes, though it would be Iso |
2021-07-29 01:04:45 +0200 | <dibblego> | (and ∴ traversal) |
2021-07-29 01:05:05 +0200 | <dolio> | If the question is whether a library will generate one automatically, I don't know. |
2021-07-29 01:05:18 +0200 | <johnw> | I don't know why I'm stuck on this |
2021-07-29 01:05:32 +0200 | <dibblego> | generic-lens is the closest you'll get in this regard; I've been down this rabbit hole |
2021-07-29 01:05:59 +0200 | <dibblego> | johnw: fooIso = iso (\(Foo x y) -> (x, y)) (uncurry Foo) |
2021-07-29 01:06:21 +0200 | <johnw> | I actually want a traversal |
2021-07-29 01:06:24 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-29 01:06:26 +0200 | <johnw> | not a projected to a pair |
2021-07-29 01:06:28 +0200 | <dibblego> | that is a traversal ^^ |
2021-07-29 01:06:46 +0200 | <dibblego> | oh wait sorry |
2021-07-29 01:06:51 +0200 | <dibblego> | you want Traversal' Foo Int |
2021-07-29 01:07:06 +0200 | <dibblego> | fooTraversal f (Foo x y) = Foo <$> f x <*> f y |
2021-07-29 01:07:18 +0200 | <johnw> | ah, got it |
2021-07-29 01:07:23 +0200 | <johnw> | in my case it's actually: |
2021-07-29 01:07:24 +0200 | <johnw> | s & zipped fees commission %%~ \(x, y) -> (,) <$> f x <*> f y |
2021-07-29 01:07:30 +0200 | <johnw> | it's the use of the sub-lenses that made it awkward |
2021-07-29 01:07:36 +0200 | <johnw> | thanks dibblego! |
2021-07-29 01:07:42 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 01:08:01 +0200 | <sm> | hello johnw! hope you're having an excellent day |
2021-07-29 01:08:01 +0200 | <dibblego> | @type both -- you can also use that ^ Iso with both |
2021-07-29 01:08:03 +0200 | <lambdabot> | (Data.Bitraversable.Bitraversable r, Applicative f) => (a -> f b) -> r a a -> f (r b b) |
2021-07-29 01:08:09 +0200 | <johnw> | hi sm, it's a good day; you? |
2021-07-29 01:08:39 +0200 | <boxscape_> | % let foo = Foo 1 2 in (foo ^.. template :: [Int]) -- this works if Foo derives Data |
2021-07-29 01:08:39 +0200 | <yahb> | boxscape_: [1,2] |
2021-07-29 01:08:52 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed) |
2021-07-29 01:08:56 +0200 | dhil | (~dhil@195.213.192.47) (Ping timeout: 268 seconds) |
2021-07-29 01:09:07 +0200 | <sm> | yes! no complaints. it's drizzling 🌧👍🏻 |
2021-07-29 01:10:23 +0200 | <boxscape_> | % let fooTraversal = template :: Traversal' Foo Int -- more concretely |
2021-07-29 01:10:23 +0200 | <yahb> | boxscape_: |
2021-07-29 01:12:03 +0200 | cheater | (~Username@user/cheater) |
2021-07-29 01:12:46 +0200 | wrunt | (~ajc@vmx14030.hosting24.com.au) (Ping timeout: 258 seconds) |
2021-07-29 01:13:42 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 01:14:29 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-07-29 01:18:44 +0200 | renzhi | (~xp@142.184.90.63) |
2021-07-29 01:19:07 +0200 | octeep | (~octeep@42-2-223-196.static.netvigator.com) |
2021-07-29 01:22:38 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-07-29 01:24:02 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 01:25:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-29 01:27:38 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-07-29 01:30:24 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-29 01:34:34 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-07-29 01:35:00 +0200 | renzhi | (~xp@142.184.90.63) (Ping timeout: 258 seconds) |
2021-07-29 01:39:41 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 01:41:36 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b95049518cd6c04553bbc.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-07-29 01:43:34 +0200 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 265 seconds) |
2021-07-29 01:43:59 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-29 01:44:36 +0200 | zeenk | (~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38) (Quit: Konversation terminated!) |
2021-07-29 01:44:56 +0200 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) |
2021-07-29 01:51:43 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-07-29 01:52:55 +0200 | renzhi | (~xp@142.184.90.63) |
2021-07-29 01:55:10 +0200 | vk3wtf | (~doc@220-245-2-190.tpgi.com.au) |
2021-07-29 01:57:48 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Read error: Connection reset by peer) |
2021-07-29 01:58:05 +0200 | vk3wtf_ | (~doc@207.134.220.203.dial.dynamic.acc01-carp-beg.comindico.com.au) (Ping timeout: 255 seconds) |
2021-07-29 02:04:42 +0200 | retro_ | (~retro@5ec19a54.skybroadband.com) (Ping timeout: 245 seconds) |
2021-07-29 02:05:28 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-07-29 02:07:57 +0200 | <Axman6> | I wonder how efficient the generated code for that is, given all the types are fixed |
2021-07-29 02:09:11 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 02:12:02 +0200 | Brianmancer | (~Neuromanc@user/briandamag) (Ping timeout: 255 seconds) |
2021-07-29 02:13:27 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-07-29 02:19:13 +0200 | jess | (~jess@libera/staff/jess) () |
2021-07-29 02:23:21 +0200 | <Axman6> | % Foo 1 2 & partsOf template %~ (reverse @Int) |
2021-07-29 02:23:21 +0200 | <yahb> | Axman6: Foo {a = 2, b = 1} |
2021-07-29 02:24:37 +0200 | <Axman6> | % Foo 1 2 & partsOf template %~ (reverse @Int . map (*10)) |
2021-07-29 02:24:37 +0200 | <yahb> | Axman6: Foo {a = 20, b = 10} |
2021-07-29 02:28:12 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
2021-07-29 02:33:50 +0200 | MQ-17J | (~MQ-17J@8.6.144.192) (Ping timeout: 265 seconds) |
2021-07-29 02:34:18 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-07-29 02:35:55 +0200 | Deide1 | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-07-29 02:36:02 +0200 | Deide1 | (~Deide@217.155.19.23) |
2021-07-29 02:36:38 +0200 | Deide2 | (~Deide@217.155.19.23) |
2021-07-29 02:40:10 +0200 | Deide1 | (~Deide@217.155.19.23) (Ping timeout: 240 seconds) |
2021-07-29 02:45:24 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-29 02:45:39 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-07-29 02:46:46 +0200 | renzhi | (~xp@142.184.90.63) (Ping timeout: 272 seconds) |
2021-07-29 02:48:13 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
2021-07-29 02:51:00 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 02:52:26 +0200 | peterhil | (~peterhil@mobile-access-5d6aaf-196.dhcp.inet.fi) (Ping timeout: 258 seconds) |
2021-07-29 02:54:22 +0200 | cjb | (~cjb@user/cjb) |
2021-07-29 02:55:53 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-07-29 02:56:06 +0200 | yilin | (~yilin@2601:400:c100:6330:6b23:fdc1:34d0:ae01) |
2021-07-29 02:58:27 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 03:03:14 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2) |
2021-07-29 03:03:33 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-29 03:04:15 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-29 03:09:04 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 03:12:18 +0200 | xff0x | (~xff0x@2001:1a81:52b7:d000:8a03:e207:89f6:6456) (Ping timeout: 240 seconds) |
2021-07-29 03:14:33 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:65e4:872c:1a09:47) |
2021-07-29 03:17:17 +0200 | jeslie0 | (~user@135-23-172-182.cpe.pppoe.ca) |
2021-07-29 03:17:51 +0200 | TranquilEcho | (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
2021-07-29 03:19:19 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 03:21:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 03:22:20 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-29 03:23:16 +0200 | jeslie0 | (~user@135-23-172-182.cpe.pppoe.ca) (ERC (IRC client for Emacs 28.0.50)) |
2021-07-29 03:26:06 +0200 | davros | (~davros@host86-185-61-40.range86-185.btcentralplus.com) (Ping timeout: 276 seconds) |
2021-07-29 03:28:17 +0200 | sridonhiatus[m] | srid[m] |
2021-07-29 03:29:40 +0200 | neurocyte4 | (~neurocyte@212.232.80.209) |
2021-07-29 03:29:40 +0200 | neurocyte4 | (~neurocyte@212.232.80.209) (Changing host) |
2021-07-29 03:29:40 +0200 | neurocyte4 | (~neurocyte@user/neurocyte) |
2021-07-29 03:33:12 +0200 | neurocyte | (~neurocyte@user/neurocyte) (Ping timeout: 250 seconds) |
2021-07-29 03:33:13 +0200 | neurocyte4 | neurocyte |
2021-07-29 03:33:26 +0200 | euouae | (~euouae@user/euouae) |
2021-07-29 03:38:18 +0200 | davros | (~davros@host86-184-180-96.range86-184.btcentralplus.com) |
2021-07-29 03:50:35 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) (Remote host closed the connection) |
2021-07-29 03:50:57 +0200 | juhp | (~juhp@bb116-14-48-29.singnet.com.sg) |
2021-07-29 03:51:11 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) |
2021-07-29 03:52:56 +0200 | alx741 | (~alx741@181.196.69.4) (Quit: alx741) |
2021-07-29 03:53:46 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-07-29 03:55:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-07-29 03:55:22 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) (Ping timeout: 240 seconds) |
2021-07-29 03:56:24 +0200 | Topsi | (~Tobias@dyndsl-037-138-065-120.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-07-29 03:57:55 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-07-29 04:05:18 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) |
2021-07-29 04:09:10 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 04:09:54 +0200 | goepsilongo | (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!) |
2021-07-29 04:12:10 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-29 04:19:22 +0200 | yilin | (~yilin@2601:400:c100:6330:6b23:fdc1:34d0:ae01) (Ping timeout: 240 seconds) |
2021-07-29 04:23:54 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 250 seconds) |
2021-07-29 04:26:59 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-07-29 04:27:54 +0200 | boxscape_ | (~boxscape_@p4ff0b769.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-07-29 04:28:44 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-29 04:28:44 +0200 | FinnElija | Guest8697 |
2021-07-29 04:28:44 +0200 | Guest8697 | (~finn_elij@user/finn-elija/x-0085643) (Killed (tungsten.libera.chat (Nickname regained by services))) |
2021-07-29 04:28:44 +0200 | finn_elija | FinnElija |
2021-07-29 04:33:20 +0200 | dmwit | (~dmwit@pool-108-18-198-142.washdc.fios.verizon.net) (Ping timeout: 255 seconds) |
2021-07-29 04:34:55 +0200 | dmwit | (~dmwit@pool-108-18-198-142.washdc.fios.verizon.net) |
2021-07-29 04:37:00 +0200 | Deide2 | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-07-29 04:45:08 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-07-29 04:46:38 +0200 | slycelote_ | (~slycelote@user/slycelote) (Quit: Leaving) |
2021-07-29 04:48:42 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 240 seconds) |
2021-07-29 04:59:48 +0200 | td_ | (~td@muedsl-82-207-238-200.citykom.de) (Ping timeout: 265 seconds) |
2021-07-29 05:00:05 +0200 | wei2912 | (~wei2912@112.199.250.21) (Ping timeout: 258 seconds) |
2021-07-29 05:00:41 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-07-29 05:01:18 +0200 | td_ | (~td@94.134.91.37) |
2021-07-29 05:01:23 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 05:03:30 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
2021-07-29 05:03:44 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) |
2021-07-29 05:04:03 +0200 | euouae | (~euouae@user/euouae) (Quit: Client closed) |
2021-07-29 05:05:05 +0200 | derelict | (~derelict@user/derelict) |
2021-07-29 05:05:47 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-29 05:06:10 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-07-29 05:12:13 +0200 | obs\ | (~obscur1ty@user/obs/x-5924898) (Quit: Leaving) |
2021-07-29 05:13:15 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-29 05:13:16 +0200 | wrunt | (~ajc@vmx14030.hosting24.com.au) |
2021-07-29 05:18:57 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-29 05:20:24 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-29 05:29:53 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 05:30:57 +0200 | ishutin_ | (~ishutin@92-249-150-169.static.digikabel.hu) |
2021-07-29 05:34:36 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 05:34:43 +0200 | ishutin | (~ishutin@193-110-63-61.cable-modem.hdsnet.hu) (Ping timeout: 268 seconds) |
2021-07-29 05:36:06 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:65e4:872c:1a09:47) (Ping timeout: 276 seconds) |
2021-07-29 05:36:44 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:f86e:7128:132:6c84) |
2021-07-29 05:41:55 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) (Remote host closed the connection) |
2021-07-29 05:46:18 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds) |
2021-07-29 05:46:26 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 268 seconds) |
2021-07-29 05:46:54 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) |
2021-07-29 05:46:58 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 256 seconds) |
2021-07-29 05:47:18 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-29 05:52:00 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 05:53:56 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-07-29 06:01:05 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 06:02:32 +0200 | derelict | (~derelict@user/derelict) (Quit: WeeChat 3.2) |
2021-07-29 06:04:39 +0200 | anandprabhu | (~anandprab@45.83.220.218) |
2021-07-29 06:06:55 +0200 | pe200012 | (~pe200012@183.236.83.77) |
2021-07-29 06:08:47 +0200 | cjb | (~cjb@user/cjb) (Ping timeout: 256 seconds) |
2021-07-29 06:12:48 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-29 06:16:31 +0200 | cjb | (~cjb@user/cjb) |
2021-07-29 06:23:54 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-29 06:25:00 +0200 | koala_man | (~vidar@157.146.251.23.bc.googleusercontent.com) (Quit: RIP Freenode lenge leve libera.katt) |
2021-07-29 06:25:41 +0200 | ccc | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) |
2021-07-29 06:26:19 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-29 06:26:32 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-29 06:28:11 +0200 | arkho | (~ccc@dynamic-acs-24-112-153-241.zoominternet.net) (Ping timeout: 252 seconds) |
2021-07-29 06:29:15 +0200 | koala_man | (~vidar@157.146.251.23.bc.googleusercontent.com) |
2021-07-29 06:29:49 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 06:33:21 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-29 06:33:37 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-29 06:41:50 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-07-29 06:42:56 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-29 06:44:46 +0200 | cjb | (~cjb@user/cjb) |
2021-07-29 06:45:32 +0200 | KM4MBG | jackhill |
2021-07-29 06:46:22 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 06:48:04 +0200 | trufas | (~trufas@177.240.218.218) (Ping timeout: 265 seconds) |
2021-07-29 06:48:29 +0200 | trufas | (~trufas@177.240.218.218) |
2021-07-29 06:49:04 +0200 | jneira_ | (~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 250 seconds) |
2021-07-29 06:50:48 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-07-29 06:56:10 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-07-29 06:56:11 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-07-29 06:57:17 +0200 | qbt | (~edun@user/edun) |
2021-07-29 06:57:20 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-29 06:58:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 07:00:36 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-07-29 07:03:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-29 07:05:23 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) (Remote host closed the connection) |
2021-07-29 07:06:43 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) |
2021-07-29 07:09:31 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 07:16:29 +0200 | Null_A | (~null_a@2601:645:8700:2290:2910:fbd1:f882:3730) (Remote host closed the connection) |
2021-07-29 07:20:58 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-29 07:21:02 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:f86e:7128:132:6c84) (Ping timeout: 256 seconds) |
2021-07-29 07:21:53 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:4116:e67f:3dc9:5c87) |
2021-07-29 07:24:38 +0200 | jneira | (~jneira@212.8.115.226) |
2021-07-29 07:29:18 +0200 | img | (~img@user/img) |
2021-07-29 07:30:46 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) |
2021-07-29 07:33:01 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-07-29 07:36:26 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-07-29 07:36:49 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 268 seconds) |
2021-07-29 07:37:19 +0200 | cjb | (~cjb@user/cjb) |
2021-07-29 07:43:43 +0200 | dhil | (~dhil@195.213.192.47) |
2021-07-29 07:48:00 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 265 seconds) |
2021-07-29 07:52:40 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-07-29 07:59:23 +0200 | tenniscp25 | (~textual@cm-171-101-115-139.revip11.asianet.co.th) |
2021-07-29 08:03:22 +0200 | tenniscp25 | (~textual@cm-171-101-115-139.revip11.asianet.co.th) (Client Quit) |
2021-07-29 08:06:19 +0200 | thiross | (~thiross@39.170.37.82) |
2021-07-29 08:12:09 +0200 | <Xnuk> | :t (%~) |
2021-07-29 08:12:10 +0200 | <lambdabot> | ASetter s t a b -> (a -> b) -> s -> t |
2021-07-29 08:12:17 +0200 | Erutuon_ | (~Erutuon@user/erutuon) |
2021-07-29 08:12:23 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-29 08:14:15 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-29 08:14:21 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-29 08:16:17 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2021-07-29 08:19:58 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-07-29 08:20:34 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
2021-07-29 08:21:12 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-07-29 08:25:53 +0200 | ridcully | (~ridcully@p508ac428.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2021-07-29 08:26:10 +0200 | ridcully | (~ridcully@p508ac428.dip0.t-ipconnect.de) |
2021-07-29 08:26:34 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-29 08:28:48 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Quit: bye bye) |
2021-07-29 08:37:36 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-29 08:37:51 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 08:37:59 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-29 08:43:02 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:4116:e67f:3dc9:5c87) (Ping timeout: 250 seconds) |
2021-07-29 08:44:04 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:318a:5cee:26ae:a4f9) |
2021-07-29 08:44:26 +0200 | chele | (~chele@user/chele) |
2021-07-29 08:47:13 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:388d:2d63:2508:1711) |
2021-07-29 08:47:26 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-07-29 08:48:50 +0200 | spruit11_ | (~quassel@2a02:a467:ccd6:1:91b8:870a:fb3:8344) |
2021-07-29 08:49:43 +0200 | spruit11_ | (~quassel@2a02:a467:ccd6:1:91b8:870a:fb3:8344) (Client Quit) |
2021-07-29 08:50:43 +0200 | spruit11_ | (~quassel@2a02:a467:ccd6:1:91b8:870a:fb3:8344) |
2021-07-29 08:51:10 +0200 | pe200012 | (~pe200012@183.236.83.77) (Remote host closed the connection) |
2021-07-29 08:51:11 +0200 | spruit11 | (~quassel@2a02:a467:ccd6:1:c892:977a:b4bf:318c) (Ping timeout: 252 seconds) |
2021-07-29 08:51:24 +0200 | spruit11_ | (~quassel@2a02:a467:ccd6:1:91b8:870a:fb3:8344) (Client Quit) |
2021-07-29 08:51:43 +0200 | spruit11 | (~quassel@2a02:a467:ccd6:1:91b8:870a:fb3:8344) |
2021-07-29 08:51:44 +0200 | pe200012 | (~pe200012@113.105.10.33) |
2021-07-29 08:51:51 +0200 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-07-29 08:55:45 +0200 | pe200012 | (~pe200012@113.105.10.33) (Remote host closed the connection) |
2021-07-29 08:56:10 +0200 | pe200012 | (~pe200012@218.107.49.28) |
2021-07-29 08:58:18 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:318a:5cee:26ae:a4f9) (Ping timeout: 240 seconds) |
2021-07-29 08:58:20 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds) |
2021-07-29 08:58:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 08:59:15 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:5eb1:ed8e:7709:10d6) |
2021-07-29 08:59:33 +0200 | thiross | (~thiross@39.170.37.82) (Remote host closed the connection) |
2021-07-29 08:59:38 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-07-29 09:00:47 +0200 | thiross | (~thiross@39.170.37.82) |
2021-07-29 09:05:54 +0200 | vysn | (~vysn@user/vysn) |
2021-07-29 09:08:17 +0200 | anandprabhu | (~anandprab@45.83.220.218) (Quit: Leaving) |
2021-07-29 09:11:05 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 252 seconds) |
2021-07-29 09:17:36 +0200 | thiross | (~thiross@39.170.37.82) () |
2021-07-29 09:18:03 +0200 | shredder | (~user@user/shredder) (Quit: quitting) |
2021-07-29 09:18:35 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-07-29 09:19:35 +0200 | aegon | (~mike@174.127.249.180) |
2021-07-29 09:19:39 +0200 | aerona | (~aerona@2600:6c54:4600:f300:d46d:5152:c0fc:6ad9) (Read error: Connection reset by peer) |
2021-07-29 09:19:48 +0200 | <aegon> | how does one use a local dependency with stack :? |
2021-07-29 09:19:49 +0200 | shredder | (~user@user/shredder) |
2021-07-29 09:20:06 +0200 | <aegon> | i tried putting the folder in my stack project but it doesn't seem happy with that |
2021-07-29 09:20:17 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) |
2021-07-29 09:20:34 +0200 | <Axman6> | you need to add it to the stack.yaml... in the exra-deps I think? |
2021-07-29 09:20:40 +0200 | <Axman6> | extra-deps* |
2021-07-29 09:21:45 +0200 | <Axman6> | might njust need to add it to the packages clause |
2021-07-29 09:21:56 +0200 | <Axman6> | https://docs.haskellstack.org/en/stable/yaml_configuration/#packages |
2021-07-29 09:22:09 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b95049518cd6c04553bbc.dip0.t-ipconnect.de) |
2021-07-29 09:22:13 +0200 | fendor | (~fendor@178.165.161.179.wireless.dyn.drei.com) |
2021-07-29 09:24:47 +0200 | <aegon> | Axman6: thanks, i was confused by only seeing git options, totally glossed over just adding a relative path :X |
2021-07-29 09:25:12 +0200 | <Axman6> | all good, I agree it is confusing |
2021-07-29 09:29:41 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) |
2021-07-29 09:29:57 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-29 09:29:58 +0200 | peterhil | (~peterhil@mobile-access-5d6aaf-196.dhcp.inet.fi) |
2021-07-29 09:30:18 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-07-29 09:30:21 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-07-29 09:31:08 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 250 seconds) |
2021-07-29 09:32:02 +0200 | azeem | (~azeem@176.201.32.30) |
2021-07-29 09:32:04 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-29 09:32:35 +0200 | zeenk | (~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38) |
2021-07-29 09:36:19 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 09:38:29 +0200 | azeem | (~azeem@176.201.32.30) (Ping timeout: 252 seconds) |
2021-07-29 09:39:23 +0200 | azeem | (~azeem@176.201.32.30) |
2021-07-29 09:39:52 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 09:42:24 +0200 | Obo | (~roberto@79.red-79-153-119.dynamicip.rima-tde.net) |
2021-07-29 09:43:46 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-29 09:45:38 +0200 | azeem | (~azeem@176.201.32.30) (Read error: Connection reset by peer) |
2021-07-29 09:46:37 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-29 09:54:42 +0200 | jippiedoe | (~david@84-84-122-154.fixed.kpn.net) |
2021-07-29 09:56:52 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Ping timeout: 246 seconds) |
2021-07-29 09:59:28 +0200 | jippiedoe | (~david@84-84-122-154.fixed.kpn.net) (Ping timeout: 258 seconds) |
2021-07-29 09:59:46 +0200 | Erutuon_ | (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
2021-07-29 10:00:06 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-29 10:04:27 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-29 10:04:50 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 258 seconds) |
2021-07-29 10:05:24 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-07-29 10:08:38 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-29 10:10:38 +0200 | kayprish | (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
2021-07-29 10:10:55 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-07-29 10:11:56 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-29 10:17:03 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 10:17:30 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-29 10:17:31 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-29 10:17:32 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 10:17:33 +0200 | allbery_b | geekosaur |
2021-07-29 10:18:02 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-29 10:19:05 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2021-07-29 10:19:17 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 10:20:35 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-29 10:20:57 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 245 seconds) |
2021-07-29 10:22:08 +0200 | azeem | (~azeem@176.201.32.30) |
2021-07-29 10:23:34 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
2021-07-29 10:28:52 +0200 | Obo | (~roberto@79.red-79-153-119.dynamicip.rima-tde.net) (Quit: WeeChat 2.8) |
2021-07-29 10:29:04 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-29 10:34:24 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 250 seconds) |
2021-07-29 10:34:50 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-07-29 10:37:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 10:40:45 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 10:44:25 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-29 10:45:22 +0200 | azeem | (~azeem@176.201.32.30) (Ping timeout: 240 seconds) |
2021-07-29 10:46:11 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-07-29 10:46:41 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-07-29 10:47:48 +0200 | azeem | (~azeem@176.201.32.30) |
2021-07-29 10:53:52 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-07-29 10:56:48 +0200 | pe200012 | (~pe200012@218.107.49.28) (Read error: Connection reset by peer) |
2021-07-29 10:56:54 +0200 | pe200012_ | (~pe200012@218.107.49.28) |
2021-07-29 10:59:12 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 11:04:03 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-29 11:05:41 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-29 11:06:19 +0200 | cfricke | (~cfricke@user/cfricke) (Client Quit) |
2021-07-29 11:07:03 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-29 11:07:10 +0200 | aegon | (~mike@174.127.249.180) (Quit: leaving) |
2021-07-29 11:08:05 +0200 | azeem | (~azeem@176.201.32.30) (Read error: Connection reset by peer) |
2021-07-29 11:08:22 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-29 11:08:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 11:09:33 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 11:09:35 +0200 | kuribas | (~user@ptr-25vy0i6v77tuc30f7h8.18120a2.ip6.access.telenet.be) |
2021-07-29 11:15:38 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-07-29 11:17:15 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-29 11:17:51 +0200 | cfricke | (~cfricke@user/cfricke) (Client Quit) |
2021-07-29 11:18:01 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-29 11:18:14 +0200 | cfricke | (~cfricke@user/cfricke) (Client Quit) |
2021-07-29 11:18:57 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-29 11:23:29 +0200 | Obo | (~roberto@79.red-79-153-119.dynamicip.rima-tde.net) |
2021-07-29 11:24:04 +0200 | chomwitt | (~chomwitt@2a02:587:dc01:5c00:12c3:7bff:fe6d:d374) |
2021-07-29 11:37:18 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-29 11:37:39 +0200 | michalz | (~michalz@185.246.204.57) |
2021-07-29 11:40:40 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:388d:2d63:2508:1711) (Ping timeout: 272 seconds) |
2021-07-29 11:41:28 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-29 11:43:51 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-29 11:44:57 +0200 | peterhil | (~peterhil@mobile-access-5d6aaf-196.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-29 11:45:19 +0200 | peterhil | (~peterhil@mobile-access-5d6aaf-196.dhcp.inet.fi) |
2021-07-29 11:46:48 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds) |
2021-07-29 11:49:09 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9f62:d831:3528:c2cf) |
2021-07-29 11:49:17 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-29 11:50:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 11:50:53 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 11:56:45 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-07-29 11:57:49 +0200 | __monty__ | (~toonn@user/toonn) |
2021-07-29 12:02:37 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 12:03:10 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 12:07:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 12:11:14 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-29 12:18:11 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 265 seconds) |
2021-07-29 12:21:01 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 12:21:56 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) |
2021-07-29 12:22:04 +0200 | Obo | (~roberto@79.red-79-153-119.dynamicip.rima-tde.net) (Ping timeout: 258 seconds) |
2021-07-29 12:22:18 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9f62:d831:3528:c2cf) (Ping timeout: 250 seconds) |
2021-07-29 12:22:49 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-29 12:25:30 +0200 | thonkpod | (~thonkpod@user/thonkpod) (Ping timeout: 240 seconds) |
2021-07-29 12:25:41 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-29 12:30:59 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:956a:ab48:7c29:9877) |
2021-07-29 12:31:06 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 12:36:40 +0200 | ormaaj | (~ormaaj@user/ormaaj) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | siraben | (~siraben@user/siraben) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | kadoban | (~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | boxscape | (~boxscape@user/boxscape) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:40 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | polykernel | (~polykerne@user/polykernel) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | Tisoxin | (~ikosit@user/ikosit) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | jophish | (~jophish@2001:470:69fc:105::670) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:41 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:42 +0200 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:42 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:42 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:42 +0200 | hughjfchen[m] | (~hughjfche@2001:470:69fc:105::c29d) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:42 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:44 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:44 +0200 | infinisil | (~infinisil@2001:470:69fc:105::ff8) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | fakehacker[m] | (~fakehacke@2001:470:69fc:105::b5f0) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | Guest6263 | (~sylveonma@2001:470:69fc:105::2d95) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | octeep[m]1 | (~octeepmoc@2001:470:69fc:105::695e) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:46 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:47 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:47 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:47 +0200 | CyrusT[m] | (~cyrustcru@2001:470:69fc:105::306e) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:47 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | deuslambda[m] | (~deuslambd@2001:470:69fc:105::c749) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | kar1[m] | (~kar1matri@2001:470:69fc:105::c308) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | PotatoHatsue | (~berberman@2001:470:69fc:105::b488) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | andreabedini[m] | (~andreabed@2001:470:69fc:105::c821) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | Deide | (~deide@user/deide) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:48 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:49 +0200 | drewefenwick[m] | (~drewefenw@2001:470:69fc:105::c8c4) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:49 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:49 +0200 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:49 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:49 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:49 +0200 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:49 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:50 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:50 +0200 | SimonWeiss[m] | (~weiss-dma@2001:470:69fc:105::bebd) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:50 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:50 +0200 | OndejSkup[m] | (~mimivxmat@2001:470:69fc:105::c300) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:36:50 +0200 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) (Quit: Bridge terminating on SIGTERM) |
2021-07-29 12:37:11 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 12:37:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-29 12:38:13 +0200 | kayprish | (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Remote host closed the connection) |
2021-07-29 12:38:33 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 12:39:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 12:39:57 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-07-29 12:42:26 +0200 | agua | (~agua@2804:18:40:39f8:1:0:64c7:dff1) |
2021-07-29 12:42:29 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b95075c335839612ea8d0.dip0.t-ipconnect.de) |
2021-07-29 12:43:54 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 240 seconds) |
2021-07-29 12:44:41 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-29 12:44:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-29 12:45:03 +0200 | berberman | (~berberman@user/berberman) |
2021-07-29 12:45:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 12:45:22 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b95049518cd6c04553bbc.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-07-29 12:45:27 +0200 | peterhil | (~peterhil@mobile-access-5d6aaf-196.dhcp.inet.fi) (Ping timeout: 258 seconds) |
2021-07-29 12:45:54 +0200 | Obo | (~roberto@79.red-79-153-119.dynamicip.rima-tde.net) |
2021-07-29 12:46:25 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
2021-07-29 12:46:34 +0200 | michalz | (~michalz@185.246.204.57) (Ping timeout: 240 seconds) |
2021-07-29 12:47:59 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2021-07-29 12:48:55 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) |
2021-07-29 12:48:55 +0200 | sm | (~sm@plaintextaccounting/sm) |
2021-07-29 12:48:55 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-07-29 12:48:55 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) |
2021-07-29 12:48:55 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) |
2021-07-29 12:48:55 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2021-07-29 12:48:55 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-07-29 12:48:55 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2021-07-29 12:48:56 +0200 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) |
2021-07-29 12:48:56 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) |
2021-07-29 12:48:56 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) |
2021-07-29 12:48:56 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) |
2021-07-29 12:48:56 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2021-07-29 12:48:56 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) |
2021-07-29 12:48:56 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-07-29 12:48:56 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) |
2021-07-29 12:48:56 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-07-29 12:48:56 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-07-29 12:48:56 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-07-29 12:48:56 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) |
2021-07-29 12:48:56 +0200 | kadoban | (~kadoban@user/kadoban) |
2021-07-29 12:48:56 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-07-29 12:48:56 +0200 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-07-29 12:48:56 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-07-29 12:48:56 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) |
2021-07-29 12:48:56 +0200 | siraben | (~siraben@user/siraben) |
2021-07-29 12:48:56 +0200 | PotatoHatsue | (~berberman@2001:470:69fc:105::b488) |
2021-07-29 12:48:56 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2021-07-29 12:48:56 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) |
2021-07-29 12:48:56 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) |
2021-07-29 12:48:56 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) |
2021-07-29 12:48:56 +0200 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) |
2021-07-29 12:48:56 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-07-29 12:48:57 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) |
2021-07-29 12:48:57 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2021-07-29 12:48:57 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2021-07-29 12:48:57 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-07-29 12:48:57 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) |
2021-07-29 12:48:57 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-07-29 12:48:57 +0200 | infinisil | (~infinisil@2001:470:69fc:105::ff8) |
2021-07-29 12:48:57 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
2021-07-29 12:48:57 +0200 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) |
2021-07-29 12:48:57 +0200 | Tisoxin | (~ikosit@user/ikosit) |
2021-07-29 12:48:57 +0200 | Deide | (~deide@user/deide) |
2021-07-29 12:48:57 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-07-29 12:48:57 +0200 | polykernel | (~polykerne@user/polykernel) |
2021-07-29 12:48:57 +0200 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) |
2021-07-29 12:48:57 +0200 | hughjfchen[m] | (~hughjfche@2001:470:69fc:105::c29d) |
2021-07-29 12:48:57 +0200 | OndejSkup[m] | (~mimivxmat@2001:470:69fc:105::c300) |
2021-07-29 12:48:57 +0200 | kar1[m] | (~kar1matri@2001:470:69fc:105::c308) |
2021-07-29 12:48:57 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2021-07-29 12:48:57 +0200 | ormaaj | (~ormaaj@user/ormaaj) |
2021-07-29 12:48:57 +0200 | andreabedini[m] | (~andreabed@2001:470:69fc:105::c821) |
2021-07-29 12:49:07 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) |
2021-07-29 12:49:07 +0200 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) |
2021-07-29 12:49:07 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) |
2021-07-29 12:49:08 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) |
2021-07-29 12:49:08 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2021-07-29 12:49:08 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2021-07-29 12:49:08 +0200 | SimonWeiss[m] | (~weiss-dma@2001:470:69fc:105::bebd) |
2021-07-29 12:49:08 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) |
2021-07-29 12:49:08 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) |
2021-07-29 12:49:08 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) |
2021-07-29 12:49:08 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) |
2021-07-29 12:49:08 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) |
2021-07-29 12:49:08 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) |
2021-07-29 12:49:08 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) |
2021-07-29 12:49:08 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) |
2021-07-29 12:49:09 +0200 | drewefenwick[m] | (~drewefenw@2001:470:69fc:105::c8c4) |
2021-07-29 12:49:09 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) |
2021-07-29 12:49:09 +0200 | octeep[m] | (~octeepmoc@2001:470:69fc:105::695e) |
2021-07-29 12:49:09 +0200 | CyrusT[m] | (~cyrustcru@2001:470:69fc:105::306e) |
2021-07-29 12:49:09 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) |
2021-07-29 12:49:09 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) |
2021-07-29 12:49:09 +0200 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) |
2021-07-29 12:49:09 +0200 | deuslambda[m] | (~deuslambd@2001:470:69fc:105::c749) |
2021-07-29 12:49:09 +0200 | fakehacker[m] | (~fakehacke@2001:470:69fc:105::b5f0) |
2021-07-29 12:49:09 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) |
2021-07-29 12:49:10 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
2021-07-29 12:49:10 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) |
2021-07-29 12:49:32 +0200 | michalz | (~michalz@185.246.204.62) |
2021-07-29 12:49:33 +0200 | Sylveon | Guest2540 |
2021-07-29 12:49:48 +0200 | thonkpod | (~thonkpod@user/thonkpod) |
2021-07-29 12:50:07 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-07-29 12:51:20 +0200 | Obo | (~roberto@79.red-79-153-119.dynamicip.rima-tde.net) (Ping timeout: 250 seconds) |
2021-07-29 12:51:26 +0200 | xkuru | (~xkuru@user/xkuru) (Client Quit) |
2021-07-29 12:52:32 +0200 | Deide1 | (~Deide@217.155.19.23) |
2021-07-29 12:52:39 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-07-29 12:53:08 +0200 | Obo | (~roberto@94.191.137.235.mobile.tre.se) |
2021-07-29 12:54:48 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-29 12:56:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 12:56:40 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:956a:ab48:7c29:9877) (Ping timeout: 272 seconds) |
2021-07-29 13:01:14 +0200 | Deide1 | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-07-29 13:01:35 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) (Quit: Client closed) |
2021-07-29 13:01:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-29 13:01:56 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) |
2021-07-29 13:01:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 13:02:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 13:04:21 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-07-29 13:07:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-29 13:07:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 13:07:32 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 13:07:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 13:13:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-29 13:13:45 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 13:15:48 +0200 | ubert | (~Thunderbi@178.165.190.122.wireless.dyn.drei.com) |
2021-07-29 13:18:02 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 258 seconds) |
2021-07-29 13:20:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 13:24:28 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-07-29 13:24:28 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-07-29 13:24:28 +0200 | turlando | (~turlando@user/turlando) |
2021-07-29 13:25:44 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 13:26:21 +0200 | <merijn> | hmm, any suggestions on how to best represent a case of "0, 1, or 2" args for a function? |
2021-07-29 13:27:08 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:d518:334f:85c4:8d2d) |
2021-07-29 13:27:47 +0200 | pesada | (~agua@2804:14c:8793:8e2f:3944:8017:7f63:8e28) |
2021-07-29 13:28:32 +0200 | <sshine> | merijn, data Args a b = Args { argsOne :: Maybe a, argsTwo :: Maybe b }? |
2021-07-29 13:29:23 +0200 | <sm> | maerwald: congrats on the ghcup release! |
2021-07-29 13:29:27 +0200 | <sshine> | merijn, i.e. Data.These |
2021-07-29 13:30:16 +0200 | ikex1 | (~ash@user/ikex) |
2021-07-29 13:30:21 +0200 | <maerwald> | sm: thanks |
2021-07-29 13:30:29 +0200 | <sshine> | oh, data These a b = This a | That b | These a b. I guess that's more canonical. :) |
2021-07-29 13:30:30 +0200 | agua | (~agua@2804:18:40:39f8:1:0:64c7:dff1) (Ping timeout: 256 seconds) |
2021-07-29 13:30:30 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 256 seconds) |
2021-07-29 13:30:48 +0200 | <sm> | maerwald: I think a better answer needs to be found for that good question at https://www.reddit.com/r/haskell/comments/ottx21/ann_ghcup01161_released |
2021-07-29 13:30:56 +0200 | <merijn> | These doesn't cover 0 arguments case, though |
2021-07-29 13:30:56 +0200 | ikex1 | ikex |
2021-07-29 13:31:03 +0200 | <merijn> | At least, not nicely |
2021-07-29 13:31:41 +0200 | <sm> | (the current answer sounds like a bunch of negatives, it doesn't motivate) |
2021-07-29 13:31:42 +0200 | <sshine> | merijn, but another interpretation is Maybe (a, Maybe b) |
2021-07-29 13:31:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 13:32:14 +0200 | <maerwald> | sm: what do you propose? |
2021-07-29 13:32:15 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 13:32:28 +0200 | <merijn> | sshine: In my case it's just representing a commandline that takes 0, 1, or 2 paths and I'm trying to avoid adding separate constructors for each case |
2021-07-29 13:32:38 +0200 | <sm> | nothing unfortunately, I'd like to know the answer too |
2021-07-29 13:33:42 +0200 | <merijn> | sshine: Which question as you referring to? |
2021-07-29 13:33:44 +0200 | <merijn> | eh |
2021-07-29 13:33:47 +0200 | <merijn> | s/sshine/sm |
2021-07-29 13:34:42 +0200 | <maerwald> | sm: I think the answer is that stack shouldn't do an in-place upgrade by default, but install into e.g. ~/.local/bin or whatever is configured |
2021-07-29 13:35:34 +0200 | <maerwald> | ghcup by default does that too... you have to pass `--inplace` if you want that |
2021-07-29 13:36:28 +0200 | <sm> | merijn: "I'm new to this. Why should I choose it over stack?" at https://www.reddit.com/r/haskell/comments/ottx21/ann_ghcup01161_released/ |
2021-07-29 13:37:08 +0200 | <maerwald> | sm: ah, you mean that |
2021-07-29 13:37:20 +0200 | <maerwald> | I think my answer is pretty accurate. |
2021-07-29 13:37:50 +0200 | <merijn> | The answer is "because lots of people don't like stack and lots of linux distros fuck up the packaging of GHC/cabal" |
2021-07-29 13:38:01 +0200 | <sm> | merijn: "you should choose ghcup because it doesn't overwrite itself, unlike stack upgrade" ? |
2021-07-29 13:38:13 +0200 | <maerwald> | sm: what? |
2021-07-29 13:38:16 +0200 | <sshine> | merijn, if one or two paths are missing, will the program supply a default path or will a section of code not run? |
2021-07-29 13:38:25 +0200 | <drewefenwick[m]> | If you only want to use the Stack workflow with no system GHC then GHCup doesn't give you that much extra AFAIK at the moment. If you want straight GHC or a cabal workflow then GHCup is very handy. |
2021-07-29 13:38:45 +0200 | <merijn> | sshine: It's basically diffing configs, so either diff two specified configs or diff one specified config to the default |
2021-07-29 13:39:09 +0200 | <merijn> | sm: "you should choose ghcup because you think figuring out which GHC bindist to download is to complex" |
2021-07-29 13:39:16 +0200 | <sshine> | merijn, what does zero config paths mean then? |
2021-07-29 13:39:17 +0200 | <sm> | OP asks a very simple question and ghcup should have a simple and clear answer to this if it's to succeed with new folks |
2021-07-29 13:39:27 +0200 | <maerwald> | sm: there is a simple and clear answer |
2021-07-29 13:39:29 +0200 | <merijn> | sshine: Just dumping out the diff of the default |
2021-07-29 13:39:32 +0200 | <maerwald> | did you read my response? |
2021-07-29 13:39:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 13:39:48 +0200 | <sm> | maerwald: which response ? |
2021-07-29 13:39:52 +0200 | <maerwald> | sm: on reddit |
2021-07-29 13:40:17 +0200 | <sm> | maerwald: https://www.reddit.com/r/haskell/comments/ottx21/ann_ghcup01161_released/h6xsowf/ ? |
2021-07-29 13:40:50 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 13:40:50 +0200 | <sshine> | makes sense. |
2021-07-29 13:40:50 +0200 | <maerwald> | Yes |
2021-07-29 13:42:18 +0200 | chomwitt | (~chomwitt@2a02:587:dc01:5c00:12c3:7bff:fe6d:d374) (Ping timeout: 276 seconds) |
2021-07-29 13:43:27 +0200 | <sshine> | I understand this as a step on the way. the things snoyberg wrote about having a shared library for managing GHC installations seems like a nice future goal. I guess pushing GHC management responsibility out of Stack and into a library, only so that either Stack or GHCup can refer to this, is the way forward from having competing tools? kinda like having cabal as a format, and not just a tool. :) |
2021-07-29 13:43:38 +0200 | <sm> | maerwald: yes I read it, I just pinged you and gave you feedback about it. I think it's not very motivating and a better answer is needed for folks like the OP. Take it FWIW. |
2021-07-29 13:44:18 +0200 | <maerwald> | sm: I don't understand what other answer you expect |
2021-07-29 13:44:23 +0200 | <sshine> | whether 'stack upgrade' eventually runs a sub-command that triggers this code, or 'ghcup ...' does, should be a CLI preference. |
2021-07-29 13:45:21 +0200 | <maerwald> | sshine: there was never an attempt to write a shared library and the blog post you mentioned also didn't have this as a motivation |
2021-07-29 13:45:35 +0200 | <sshine> | maerwald, oh, okay. |
2021-07-29 13:46:06 +0200 | <merijn> | sm: tbh, I think the question there has a whole bunch of built in assumptions that run counter to the target audience of ghcup |
2021-07-29 13:46:18 +0200 | <merijn> | sm: You say "this person needs a better answer to be convinced to use ghcup" |
2021-07-29 13:46:30 +0200 | <maerwald> | then my answer is: don't :) |
2021-07-29 13:46:31 +0200 | <merijn> | sm: I say "this person sounds like they're not in the target audience of ghcup" |
2021-07-29 13:46:39 +0200 | <maerwald> | yep |
2021-07-29 13:46:58 +0200 | <sshine> | maerwald, yeah, https://www.snoyman.com/blog/2021/05/unified-haskell-installer/ -- the section called "The Goal": What I'd like to see is a well maintained Haskell library for installing Haskell toolchains, generally acknowledged as the de facto standard way to install GHC and other tools. It should be Haskell, so that it's easy for Haskellers to maintain. It should support as many operating systems as |
2021-07-29 13:47:04 +0200 | <sshine> | possible. It should provide an easy-to-use Haskell API that other tooling can leverage. |
2021-07-29 13:47:27 +0200 | <sshine> | maerwald, of course, I interpreted with some degree of freedom. :) |
2021-07-29 13:47:28 +0200 | <sm> | maerwald: you said "not a replacement for stack", "supports installing and managing stack versions", "does the same for cabal, GHC and HLS", "doesn't make a workflow choice for you" - I'm just pointing out that to a new haskeller, especially one already using stack, these sound obscure or like disadvantages. I hope that makes sense. I don't expect anything, I'm just trying to help. |
2021-07-29 13:47:37 +0200 | <merijn> | sm: The target audience of ghcup is "grumpy unix curmudgeons who dislike package manager induced breackage of haskell tooling" |
2021-07-29 13:47:41 +0200 | viluon | (uid453725@id-453725.brockwell.irccloud.com) |
2021-07-29 13:48:17 +0200 | <sshine> | merijn, grumpy unix curmudgeons don't like Stack? |
2021-07-29 13:48:37 +0200 | <merijn> | I don't and maerwald doesn't and I consider us prototypical grumpy unix curmudgeons :p |
2021-07-29 13:49:05 +0200 | <maerwald> | I was talked into supporting stack... so don't blame me |
2021-07-29 13:49:07 +0200 | sshine | wonders if prototype inheritance will solve this. |
2021-07-29 13:49:57 +0200 | <drewefenwick[m]> | IIRC Snoyman hasn't approached anyone to make GHCup this unified GHC installer that Stack uses to install GHC. |
2021-07-29 13:49:57 +0200 | <sm> | merijn, is that really true ? maerwald seems to push it as the haskell install tool |
2021-07-29 13:49:58 +0200 | <merijn> | sm: ghcup came from "people don't like stack, but installing the bindists from the website is guess work which version you need and package managers like Arch keep breaking tools" -> "ghcup reliably and predictably install correct bindist for you" |
2021-07-29 13:50:14 +0200 | <maerwald> | sm: no, the HF did |
2021-07-29 13:50:15 +0200 | <sshine> | maerwald, so, just to understand: if I install stack with ghcup, besides not running 'stack upgrade' to confuse ghcup, should I always use a system-ghc? |
2021-07-29 13:50:25 +0200 | <maerwald> | sm: HF wanted windows support, HF wanted stack support |
2021-07-29 13:50:29 +0200 | <maerwald> | I didn't want either of those |
2021-07-29 13:50:39 +0200 | <viluon> | can Hoogle search for types or typeclasses by kind signature? |
2021-07-29 13:51:12 +0200 | <maerwald> | sshine: doesn't matter, does it? You'll just have potentially multiple instances of one GHC version installed |
2021-07-29 13:51:34 +0200 | Obo | (~roberto@94.191.137.235.mobile.tre.se) (Ping timeout: 250 seconds) |
2021-07-29 13:51:36 +0200 | <merijn> | viluon: No clue, try it? :p |
2021-07-29 13:51:51 +0200 | <viluon> | merijn: tried on the online instance, didn't work |
2021-07-29 13:52:07 +0200 | <sm> | maerwald: I'm thinking of a proposal from snoyman about making stack more universal which you kind of shot down and pushed full speed ahead with ghcup |
2021-07-29 13:52:12 +0200 | <sshine> | maerwald, well, I suppose it mattered slightly if 1) ghcup installs system-ghc, 2) running stack the first time installs another ghc. -- seems kinda silly. but I guess just bundling stack with a system-ghc that isn't necessarily the stack ghc is still sort of useful. |
2021-07-29 13:52:21 +0200 | <viluon> | I'm wondering if the commandline tool can do it, if there's a flag or config option or something |
2021-07-29 13:52:24 +0200 | <maerwald> | sm: "shot down"? |
2021-07-29 13:52:26 +0200 | <viluon> | (I don't have Hoogle locally) |
2021-07-29 13:52:38 +0200 | <sm> | yes |
2021-07-29 13:52:45 +0200 | <maerwald> | sm: that's untrue |
2021-07-29 13:52:57 +0200 | <sm> | I am certainly be confused about ghcup's goals now, so others will be too |
2021-07-29 13:53:15 +0200 | <sshine> | maerwald, I'm just thinking, if two tools refer to the same GHC installation, doing so with a shared library would make a lot of sense. :-D that's why I assumed this was a step on the way to something similar to what Snoyman described. |
2021-07-29 13:53:17 +0200 | <merijn> | sm: ghcup's goals are: install GHC/cabal/hls |
2021-07-29 13:53:34 +0200 | <sshine> | merijn, /stack now? |
2021-07-29 13:53:36 +0200 | <merijn> | sm: Including managing installs of multiple versions |
2021-07-29 13:53:54 +0200 | <merijn> | sshine: Well, according to maerwald that's not a goal, merely something demanded from externally |
2021-07-29 13:54:07 +0200 | <sshine> | merijn, who's demanding? |
2021-07-29 13:54:24 +0200 | <merijn> | Haskell Foundation, per maerwald's words, like, 30 seconds ago :p |
2021-07-29 13:54:51 +0200 | <merijn> | "13:50 < maerwald> sm: HF wanted windows support, HF wanted stack support" |
2021-07-29 13:55:03 +0200 | <sm> | merijn: ok, I understand that as far as it goes. I'm still curious what's a good answer to "I'm new to this. Why should I choose it over stack?" |
2021-07-29 13:55:22 +0200 | <merijn> | sm: "Because you don't like stack's mandated workflow" |
2021-07-29 13:55:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 13:56:00 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 13:57:24 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 13:58:00 +0200 | <merijn> | Stack is very opinionated and many people strongly disagree with its opinions, but some people find installing cabal/GHC bindists to tricky/annoying, so ghcup takes care of that for you. Your question (and the original one) are predicated on "stack is a good default tool, therefore argumentation to use something else is required" |
2021-07-29 13:58:01 +0200 | <maerwald> | sm: 1. the proposal you mentioned was nothing but confusing and didn't represent the current state of the ecosystem correctly, 2. Stack team never collaborated with me and doesn't until today (despite multiple attempts to improve integration, including several patches), 3. I didn't "shoot" down anything. I was correcting the misrepresentation. |
2021-07-29 13:59:20 +0200 | <sm> | maerwald: that's how it read to me, again take it FWIW |
2021-07-29 13:59:21 +0200 | <merijn> | sm: There are many people (including myself) who do not think stack is a good tool. Therefore there is no reason for me to argue "why use this over stack?". I didn't ever consider stack an option to begin with |
2021-07-29 13:59:29 +0200 | <maerwald> | sm: well, you're incorrect |
2021-07-29 13:59:30 +0200 | <sm> | I'm just some crackpot on the internet |
2021-07-29 14:00:00 +0200 | <sshine> | oh, you're also a simon, sm. |
2021-07-29 14:00:13 +0200 | <merijn> | The value proposition of ghcup isn't "what does this provide over stack?", the value proposition is "what does ghcup provide over manually downloading bindists/using apt-get?" |
2021-07-29 14:00:37 +0200 | <sm> | merijn: isn't there a simpler, calmer answer ? a newbie friendly one, without the drama ? that's the one I'd like to read |
2021-07-29 14:00:46 +0200 | <merijn> | sm: What drama? |
2021-07-29 14:00:57 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-07-29 14:00:59 +0200 | <maerwald> | the only drama I read is from you right now :p |
2021-07-29 14:01:33 +0200 | <sm> | alright. Thanks for the chat, anyway |
2021-07-29 14:01:35 +0200 | <merijn> | sm: The value proposition of ghcup over downloading bindists is "no need to guess which bindist you need for your obscure distro" |
2021-07-29 14:02:11 +0200 | <merijn> | sm: The value proposition of ghcup over apt-get/Arch's package manager is: ability to manage multiple concurrent versions, get predictable tooling across distros (i.e. avoiding arch's broken packages) |
2021-07-29 14:02:12 +0200 | <sm> | night all |
2021-07-29 14:02:40 +0200 | <merijn> | Which seem perfectly clear goals/value propositions |
2021-07-29 14:02:49 +0200 | <maerwald> | I wonder when there'll be a release where I don't have to get into these kind of discussions. They happen *every* release. |
2021-07-29 14:03:12 +0200 | <merijn> | maerwald: Well, you don't *have* to get into these discussions :) |
2021-07-29 14:03:22 +0200 | <merijn> | You can just leave them unanswered/addressed :p |
2021-07-29 14:03:38 +0200 | <sshine> | or maybe refer back to previous discussion if it's the same? |
2021-07-29 14:03:42 +0200 | <yushyin> | btw. stack annoyingly does not support mixins in stack repl. it was the reason why i used cabal (and ghcup) again |
2021-07-29 14:03:46 +0200 | <dminuoso> | Im going to argue that the majority of stack users use stack for no reason other than they started out with stack and never bothered to consider their choices after the newbie phase. |
2021-07-29 14:04:05 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 268 seconds) |
2021-07-29 14:04:08 +0200 | <dminuoso> | Not saying that there's people who genuinely prefer stack, but Im not sure that this is the majority |
2021-07-29 14:04:16 +0200 | <merijn> | dminuoso: And they mostly started with it due to FP Complete's beginner writings asserting it is good :p |
2021-07-29 14:04:23 +0200 | <dminuoso> | Sure |
2021-07-29 14:04:34 +0200 | <maerwald> | there are already some users who use ghcup in conjunction with stack and they prefer that over letting stack manage GHC versions |
2021-07-29 14:04:56 +0200 | <drewefenwick[m]> | dminuoso: And they read a tutorial written before Cabal 3 or even Cabal nix-style builds that said that Stack was better |
2021-07-29 14:04:57 +0200 | <merijn> | maerwald: That just strikes me as weird, tbh |
2021-07-29 14:05:08 +0200 | <maerwald> | merijn: well, you save disk space, sorta |
2021-07-29 14:05:16 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-07-29 14:05:17 +0200 | <maerwald> | merijn: e.g. HLS devs always need cabal and stack |
2021-07-29 14:05:21 +0200 | <maerwald> | they have to test with both |
2021-07-29 14:05:26 +0200 | <dminuoso> | As if disk spave is an issue in 2021. :-) |
2021-07-29 14:05:50 +0200 | <maerwald> | yah, no idea |
2021-07-29 14:05:51 +0200 | <dminuoso> | 1TiB in a laptop is a regular thing already |
2021-07-29 14:06:22 +0200 | <dminuoso> | If I was really short on disk space, I wouldn't be writing Haskell to begin with. |
2021-07-29 14:06:35 +0200 | <viluon> | dminuoso: I'm writing Haskell and have a 256 GB SSD |
2021-07-29 14:06:47 +0200 | drewefenwick[m] | Drew[m] |
2021-07-29 14:07:18 +0200 | <viluon> | it is a pain, esp. with multiple local installations of GHC *and* a couple local clones |
2021-07-29 14:07:25 +0200 | <dminuoso> | viluon: Let me guess. Macbook and no interest in throwing away money? :p |
2021-07-29 14:07:34 +0200 | <viluon> | ThinkPad |
2021-07-29 14:07:39 +0200 | <dminuoso> | Curious |
2021-07-29 14:07:54 +0200 | <dminuoso> | Why not buy a 1TiB SSD for a hundred bucks? |
2021-07-29 14:08:20 +0200 | <maerwald> | dminuoso: well, one GHC install is 2GB |
2021-07-29 14:08:24 +0200 | <viluon> | you were right about the "no interest in throwing away money." I also lack the tools for a DIY upgrade though. |
2021-07-29 14:08:41 +0200 | <dminuoso> | Im a thinkpad user.. you dont have a screwdriver? |
2021-07-29 14:08:47 +0200 | <viluon> | nope |
2021-07-29 14:09:32 +0200 | <viluon> | I'd require more than just a screwdriver though, I need a way to transfer my data |
2021-07-29 14:10:23 +0200 | <dminuoso> | Mmm, well you can just buy a USB SATA interface for 5 bucks alongside the SSD. :p |
2021-07-29 14:10:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 14:10:38 +0200 | <dminuoso> | But anyway, not trying to convince you |
2021-07-29 14:10:51 +0200 | <viluon> | I should definitely upgrade, hopefully next month |
2021-07-29 14:10:59 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 14:11:17 +0200 | <viluon> | I suppose I can't just `dd` a mounted partition and expect everything to work though |
2021-07-29 14:11:58 +0200 | <dminuoso> | Well, you can just reboot onto a usb stick, and then `dd` the internal disk to the new SSD connected via the USB SATA interface |
2021-07-29 14:12:04 +0200 | <dminuoso> | Or some such |
2021-07-29 14:12:29 +0200 | <viluon> | true |
2021-07-29 14:12:35 +0200 | <viluon> | maybe I even have a USB stick |
2021-07-29 14:13:13 +0200 | <viluon> | anyway: anecdotal evidence that drive space can still be an issue in 2021 |
2021-07-29 14:13:14 +0200 | <Drew[m]> | The whole moving drive procedure gives me data loss anxiety |
2021-07-29 14:13:24 +0200 | <viluon> | Drew[m]: smae |
2021-07-29 14:13:26 +0200 | <viluon> | same* |
2021-07-29 14:15:40 +0200 | pschorf | (~user@c-73-77-28-188.hsd1.tx.comcast.net) (Remote host closed the connection) |
2021-07-29 14:16:05 +0200 | <Drew[m]> | What if I lose all my loose markdown files containing barely started story ideas and incoherent ramblings about technical topics |
2021-07-29 14:16:20 +0200 | <sshine> | dminuoso, "the majority of stack users use stack for no reason other than they started out with stack and never bothered to consider their choices after the newbie phase." -- I suppose my newbie phase has been 9 years now, but I did set up cabal on CI, and every time I have to bump the version constraints, I'm reminded of why I'm apparently still a noob. :P |
2021-07-29 14:16:40 +0200 | <merijn> | sshine: How so? |
2021-07-29 14:17:05 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 265 seconds) |
2021-07-29 14:17:25 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-29 14:18:18 +0200 | <sshine> | merijn, I'll ping you when it's time to do it again. ;-) I ended up in some weird dependency equation where I couldn't find packages that worked together. |
2021-07-29 14:18:42 +0200 | <yushyin> | viluon: it sure is. you wouldn't believe how often people complain in #latex that they are missing latex package xy and still refuse to just install texlive-full because they don't feel like sacrificing the 4-6GB for it. :D |
2021-07-29 14:19:51 +0200 | <sshine> | dminuoso, or rather: I'm a fan of stackage. and I'm a fan of having a file in my project directory that says which GHC to use, and that that GHC is located somewhere manageable by non-root. that's pretty much why I'm a stack user, I think... |
2021-07-29 14:20:35 +0200 | <viluon> | yushyin: I wish a day will come when package managers and build systems are things of the past and a compilation process only fetches and caches the objects it truly needs, garbage-collecting long unused "dependencies." |
2021-07-29 14:20:35 +0200 | pschorf | (~user@c-73-77-28-188.hsd1.tx.comcast.net) |
2021-07-29 14:20:36 +0200 | <sshine> | dminuoso, I *think* that the moment I put anything besides 'resolver: lts-...' in stack.yaml, I'm sort of screwing myself over. (I learned recently that extra-deps do not propagate.) |
2021-07-29 14:20:50 +0200 | <merijn> | sshine: You can have a file in your directory saying which GHC to use ;) |
2021-07-29 14:21:14 +0200 | <sshine> | merijn, such that 'ghc build' will infer the content of that file? |
2021-07-29 14:21:29 +0200 | <merijn> | sshine: When using ghc manually? |
2021-07-29 14:21:34 +0200 | <merijn> | Then no |
2021-07-29 14:21:41 +0200 | <sshine> | merijn, not necessarily. I'm not bent on calling my wrapper "stack". |
2021-07-29 14:22:03 +0200 | <merijn> | sshine: I mean in the sense that cabal.project already lets you specify arbitrary ghc to use |
2021-07-29 14:22:09 +0200 | <sshine> | merijn, I just think that having a prefix to my build tools is nicer than having something like python's virtualenv where I have to remember to type something before I enter a directory in order to fix PATH. |
2021-07-29 14:22:30 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 14:22:54 +0200 | <maerwald> | One of the reasons I switched from stack to cabal at one workplace was that bumping versions in stack is just incredibly difficult. And nix people might not like this, but: practical software security is mainly just "bump your deps as often as possible". |
2021-07-29 14:22:56 +0200 | <merijn> | sshine: Both cabal and GHC already support multiple parallel installs out-of-the-box (well, of different GHC versions, multiple installs of the same GHC version might give issues, but then you deserve it :p) |
2021-07-29 14:23:00 +0200 | <sshine> | merijn, ah. I don't think I've used cabal.project files. what command would I type to build a project with the GHC specified there? |
2021-07-29 14:23:19 +0200 | <maerwald> | migrating from one major solver to another is just too much work... better update regularly |
2021-07-29 14:23:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 14:23:41 +0200 | <maerwald> | you want to keep the impact low, not get a whole set of surprises when updating the solver |
2021-07-29 14:23:49 +0200 | <maerwald> | you can't do that with stack |
2021-07-29 14:23:51 +0200 | <merijn> | sshine: cabal has a -w flag to specify which compiler to use and the cabal.project file can persist that so you don't have to manually pass it |
2021-07-29 14:23:53 +0200 | <maerwald> | it doesn't support this workflow |
2021-07-29 14:24:15 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 14:24:38 +0200 | <maerwald> | if you don't care about software security, all these things might not matter |
2021-07-29 14:24:59 +0200 | <merijn> | sshine: You can use "cabal configure --with-compiler=path/to/ghc" to persist it |
2021-07-29 14:25:03 +0200 | <sshine> | maerwald, right. I'd rather bump rarely and deal with it then. but I guess there are drawbacks with that. I haven't had to maintain something big in Haskell over a long time. the projects that I've worked on commercially have had few unchanging dependencies and never propagated much back to the ecosystem. |
2021-07-29 14:25:24 +0200 | <merijn> | sshine: Personally I have 4-8 parallel installs of GHC in my user dir (most recent version first in path, so ghc default to that) |
2021-07-29 14:25:46 +0200 | <maerwald> | sshine: I mean... if you use npm and don't update for 6 months |
2021-07-29 14:25:46 +0200 | <merijn> | sshine: Since the bin dirs include version tagged executable for ghc (i.e. ghc-8.2, ghc-9.0, etc) |
2021-07-29 14:25:57 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 245 seconds) |
2021-07-29 14:26:00 +0200 | <maerwald> | you're gonna have a thousand high-risk vulnerabilities |
2021-07-29 14:26:02 +0200 | <merijn> | sshine: So I can just use "cabal -w ghc-8.2" to use a non-default GHC version |
2021-07-29 14:26:11 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-29 14:26:14 +0200 | <maerwald> | *known* ones |
2021-07-29 14:26:23 +0200 | <merijn> | maerwald: Whether that matters depends on the security model |
2021-07-29 14:26:36 +0200 | <merijn> | maerwald: Like, a commandline tool its gonna matter less than a webserver :p |
2021-07-29 14:26:47 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-07-29 14:26:55 +0200 | <maerwald> | what about a blockchain |
2021-07-29 14:26:57 +0200 | <sshine> | merijn, I'll give the cabal.project approach a go the next time I bump my CIs. |
2021-07-29 14:27:20 +0200 | <sshine> | blockchain that depends on arbitrary npm packages deserve whatever they have coming for them. |
2021-07-29 14:27:34 +0200 | <merijn> | sshine: Note that that doesn't install it, though. So that assumes you have all relevant versions of GHC installed on your system |
2021-07-29 14:27:48 +0200 | <sshine> | merijn, sure, okay. |
2021-07-29 14:27:50 +0200 | <merijn> | sshine: otoh, ghcup can fix that for you ;) |
2021-07-29 14:27:54 +0200 | <maerwald> | sshine: lol, no... I mean blockchain depending on haskell |
2021-07-29 14:29:36 +0200 | <sshine> | merijn, yeah, I mean, I understand that it's sliced-and-diced differently; I suppose the big difference is whether or not to maintain package sets, or not. but I've learned now that this evidently also relates to how frequently one maintains dependencies. |
2021-07-29 14:30:11 +0200 | <maerwald> | You'd think PVP was invented exactly for that purpose... so you can move forward freely without such stuff as a fixed package set and then bump major versions occasionally |
2021-07-29 14:30:16 +0200 | <maerwald> | but in practice, PVP failed |
2021-07-29 14:30:32 +0200 | <merijn> | sshine: I have an RSS feed that notifies me when my direct dependencies release out-of-bounds version, so I just bump and test when that happens |
2021-07-29 14:31:03 +0200 | <sshine> | merijn, ok. |
2021-07-29 14:31:59 +0200 | <sshine> | maerwald, because people don't follow the PVP? |
2021-07-29 14:32:02 +0200 | <merijn> | sshine: https://packdeps.haskellers.com/feed?needle=microlens for example |
2021-07-29 14:32:26 +0200 | <merijn> | you can just take that as RSS feed to keep track |
2021-07-29 14:32:29 +0200 | <maerwald> | sshine: hm... maybe. I'm not sure the idea is a good one to begin with. PVP assumes ppl backport bugfixes and security patches. But most don't. |
2021-07-29 14:33:20 +0200 | <maerwald> | In fact, I believe you can do fine without PVP. If you rewrite your entire API, go write a new package. That's what many ecosystem do. Even if it's called foo2 |
2021-07-29 14:33:50 +0200 | <maerwald> | But haskellers tend to constantly experiment with their API |
2021-07-29 14:34:06 +0200 | <sshine> | first-class modules! |
2021-07-29 14:34:15 +0200 | <sshine> | then version can be derived! |
2021-07-29 14:34:17 +0200 | <merijn> | People can get a stable API from me when they pay me >.< |
2021-07-29 14:38:09 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-29 14:38:26 +0200 | <Drew[m]> | I mean recently I encountered a package on Hackage that something appeared to require as a dependency (which actually didn't need it), and the package had no dependency bounds and it failed while building because of an ambiguous occurence error... |
2021-07-29 14:38:28 +0200 | <Drew[m]> | I presume there was a particular set of dependencies the package was originally built under. I have no idea how I discover what they are. |
2021-07-29 14:38:52 +0200 | <merijn> | Drew[m]: Brute force and guess work |
2021-07-29 14:38:57 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-29 14:39:36 +0200 | <merijn> | Drew[m]: There is a contigent of "never specify upperbounds" people on Hackage (with significant overlap with the "you should use stackage to ensure things work!" people) |
2021-07-29 14:39:49 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 14:40:00 +0200 | <Drew[m]> | I know |
2021-07-29 14:40:08 +0200 | <Drew[m]> | I've been thinking about it |
2021-07-29 14:40:28 +0200 | <Drew[m]> | I feel like different people are trying to communicate different things through the bounds |
2021-07-29 14:40:55 +0200 | <merijn> | Drew[m]: This is part of the reason cabal has the new ^>= bounds and allow-newer support |
2021-07-29 14:41:22 +0200 | <Drew[m]> | yeah |
2021-07-29 14:41:37 +0200 | <Drew[m]> | Has it fixed the contention though? |
2021-07-29 14:42:05 +0200 | <merijn> | Can't force people to do the right thing, sadly >.> |
2021-07-29 14:43:41 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:d518:334f:85c4:8d2d) (Quit: WeeChat 2.8) |
2021-07-29 14:43:59 +0200 | <yushyin> | cargo (rust) has done it right. If you specify "1.2.3" as the version, it is implicitly "^1.2.3" which is similar to our ^>=. |
2021-07-29 14:44:17 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-07-29 14:44:55 +0200 | fendor_ | (~fendor@178.165.162.84.wireless.dyn.drei.com) |
2021-07-29 14:45:10 +0200 | <merijn> | yushyin: Yeah, but that's benefit of hindsight |
2021-07-29 14:45:15 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) |
2021-07-29 14:45:36 +0200 | <viluon> | merijn: it is, but it's still a way of forcing people to do the right thing |
2021-07-29 14:45:53 +0200 | <merijn> | viluon: Maybe in cabal-version 4.0 we can make that the new default :p |
2021-07-29 14:46:04 +0200 | <merijn> | And then 20 years from now we can rely on it :p |
2021-07-29 14:46:09 +0200 | <yushyin> | :D |
2021-07-29 14:46:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 14:46:43 +0200 | <merijn> | At least we have our forwards-compat story sorted in cabal files now |
2021-07-29 14:46:44 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 14:46:55 +0200 | <merijn> | That's more than many other tools can say :p |
2021-07-29 14:47:22 +0200 | fendor | (~fendor@178.165.161.179.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2021-07-29 14:47:25 +0200 | <viluon> | the Unison language does it even better in my opinion, content-addressable code means that the issue of naming is essentially trivial. The issue of updating, i.e. replacing one definition with another, persists, but there's no ad-hoc versioning scheme / package manager / build system you have to rely on in order to specify what your code depends on. |
2021-07-29 14:53:55 +0200 | Obo | (~roberto@94.191.137.235.mobile.tre.se) |
2021-07-29 14:56:08 +0200 | oxide | (~lambda@user/oxide) |
2021-07-29 14:56:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 14:57:06 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 14:59:05 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 15:00:17 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 15:00:20 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-07-29 15:00:40 +0200 | fendor_ | fendor |
2021-07-29 15:01:05 +0200 | alx741 | (~alx741@181.196.69.4) |
2021-07-29 15:02:48 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-07-29 15:03:04 +0200 | <maerwald> | what does "1.2.3" being implicitly "^1.2.3" get you when the dependency doesn't actually follow semver |
2021-07-29 15:03:33 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-07-29 15:05:29 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-07-29 15:09:04 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
2021-07-29 15:09:35 +0200 | jolly | (~jolly@208.180.97.158) (Quit: Connection closed) |
2021-07-29 15:14:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 15:14:28 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 15:15:15 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-29 15:16:42 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 15:19:52 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Ping timeout: 256 seconds) |
2021-07-29 15:20:13 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-29 15:21:18 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-07-29 15:21:22 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-07-29 15:21:33 +0200 | img | (~img@user/img) |
2021-07-29 15:22:46 +0200 | <zzz> | i just found out there's a function called zipLazy which is the same as zip "but lazy on the second list". isn't zip lazy by default? |
2021-07-29 15:23:27 +0200 | <Lycurgus> | extra |
2021-07-29 15:24:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 15:24:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 15:25:35 +0200 | <zzz> | it seems to me that it'a not lazy, it's irrefutable on the pattern match for the second list, throwing an error if the first list's length is greater |
2021-07-29 15:25:59 +0200 | <zzz> | how is this useful? |
2021-07-29 15:26:50 +0200 | <boxscape> | zzz: FWIW base docs say `zip is right-lazy: zip [] _|_ = [] |
2021-07-29 15:26:51 +0200 | <boxscape> | which sounds very much like the description of zipLazy |
2021-07-29 15:27:01 +0200 | <boxscape> | I inserted the / accidentally |
2021-07-29 15:27:02 +0200 | <boxscape> | wait |
2021-07-29 15:27:11 +0200 | <boxscape> | I don't know if matrix is displaying this correctly |
2021-07-29 15:27:23 +0200 | <boxscape> | it's supposed to be `zip [] undefined = []`, basically |
2021-07-29 15:27:54 +0200 | <zzz> | so my question is, how is zipLazy different from zip in a useful way? |
2021-07-29 15:28:37 +0200 | <boxscape> | (Oh.. matrix displays | as a | in italic, not a slash, I see) |
2021-07-29 15:28:56 +0200 | <boxscape> | s/matrix/element |
2021-07-29 15:29:21 +0200 | <Drew[m]> | zzz: Say you have two lists and the second one is infinite. With zip you have to somewhat evaluate the second list to get the first element of the zipped list. I believe with this zipLazy you could access all the first elements without evaluating any of the second list |
2021-07-29 15:30:35 +0200 | <zzz> | > map fst $ zip [0..7] [9..] |
2021-07-29 15:30:37 +0200 | <lambdabot> | [0,1,2,3,4,5,6,7] |
2021-07-29 15:31:19 +0200 | <Drew[m]> | I "first element" but I meant "fst value of the first element" |
2021-07-29 15:31:33 +0200 | <Drew[m]> | I said* |
2021-07-29 15:31:36 +0200 | <zzz> | > map fst $ zip [0..7] (undefined : [9..]) |
2021-07-29 15:31:37 +0200 | <lambdabot> | [0,1,2,3,4,5,6,7] |
2021-07-29 15:31:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 15:32:14 +0200 | <Drew[m]> | That could save some work in some circumstances |
2021-07-29 15:32:37 +0200 | <zzz> | maybe i'm not understanding your point, but zip seems to work just fine for that |
2021-07-29 15:33:00 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
2021-07-29 15:33:16 +0200 | <Drew[m]> | Probably because I'm wrong |
2021-07-29 15:33:20 +0200 | Obo | (~roberto@94.191.137.235.mobile.tre.se) (Ping timeout: 252 seconds) |
2021-07-29 15:34:39 +0200 | <Drew[m]> | Oh wait |
2021-07-29 15:34:48 +0200 | <Drew[m]> | Your example still requires evaluating some of the second list |
2021-07-29 15:34:57 +0200 | <Drew[m]> | Namely the `:` constructor |
2021-07-29 15:35:20 +0200 | <zzz> | yes |
2021-07-29 15:35:31 +0200 | <zzz> | when would it be useful not to? |
2021-07-29 15:36:09 +0200 | <zzz> | > map fst $ zip [0..7] undefined |
2021-07-29 15:36:11 +0200 | <lambdabot> | *Exception: Prelude.undefined |
2021-07-29 15:36:13 +0200 | <zzz> | > map fst $ zipLazy [0..7] undefined |
2021-07-29 15:36:15 +0200 | <lambdabot> | error: |
2021-07-29 15:36:15 +0200 | <lambdabot> | Variable not in scope: zipLazy :: [a0] -> t0 -> [(b, b0)] |
2021-07-29 15:36:20 +0200 | <zzz> | > map fst $ Util.zipLazy [0..7] undefined |
2021-07-29 15:36:21 +0200 | <lambdabot> | error: |
2021-07-29 15:36:21 +0200 | <lambdabot> | Not in scope: ‘Util.zipLazy’ |
2021-07-29 15:36:22 +0200 | <lambdabot> | No module named ‘Util’ is imported. |
2021-07-29 15:36:30 +0200 | <zzz> | how do i do this? |
2021-07-29 15:37:04 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 15:37:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-29 15:38:11 +0200 | <zzz> | % map fst $ Util.zipLazy [0..7] undefined |
2021-07-29 15:38:11 +0200 | <yahb> | zzz: ; <interactive>:27:11: error:; Not in scope: `Util.zipLazy'; No module named `Util' is imported. |
2021-07-29 15:38:19 +0200 | <zzz> | oh well |
2021-07-29 15:38:43 +0200 | qbt | (~edun@user/edun) (Ping timeout: 258 seconds) |
2021-07-29 15:39:01 +0200 | <Drew[m]> | zzz: So I'm not sure I've ever encountered such a situation, but imagine a hypothetical situation where you have a list defined by a computation that must do a lot of work just to determine whether the list is empty or not, but for whatever reason you know ahead of time that not only will the list not be empty, it will be longer than the first list you give to `zipLazy`. Under this situation you could avoid having to do that work while still |
2021-07-29 15:39:02 +0200 | <Drew[m]> | being able to extract the fst values of the zipped list |
2021-07-29 15:39:54 +0200 | <zzz> | the point is zipLazy works here but I can't imagine a situation where that's useful |
2021-07-29 15:40:02 +0200 | <zzz> | Drew[m]: zip works fine for that |
2021-07-29 15:40:24 +0200 | Toast52 | (~Toast52@151.192.167.120) |
2021-07-29 15:40:57 +0200 | <zzz> | oh i see now |
2021-07-29 15:41:05 +0200 | <Drew[m]> | You can't access any values of the zipped list with `zip` without first case matching both lists to make sure neither is empty though, right? |
2021-07-29 15:41:20 +0200 | <zzz> | yes i see what you mean |
2021-07-29 15:41:22 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-07-29 15:42:30 +0200 | <zzz> | that is a very weird hypothetical though. if the list is empty you'll end up with an error as soon as you try to evaluate it |
2021-07-29 15:43:00 +0200 | <zzz> | and why would you zip something you have no intention of evaluating? |
2021-07-29 15:43:24 +0200 | <zzz> | but i see now |
2021-07-29 15:43:30 +0200 | <Drew[m]> | I'd love to hear what the situation was that made someone put it in the `ghc` package |
2021-07-29 15:43:57 +0200 | <Drew[m]> | I guess that implies that it's used in GHC somewhere |
2021-07-29 15:44:46 +0200 | <zzz> | there's also a zipWithLazy |
2021-07-29 15:44:49 +0200 | <zzz> | which is scary |
2021-07-29 15:46:17 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-07-29 15:46:48 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-29 15:48:39 +0200 | <Toast52> | actually i got a question |
2021-07-29 15:48:57 +0200 | <Toast52> | often theres some helper function that I realise is in the GHC library |
2021-07-29 15:49:34 +0200 | <Toast52> | e.g. IIRC theres applyN and some others |
2021-07-29 15:49:45 +0200 | Brianmancer | (~Neuromanc@user/briandamag) |
2021-07-29 15:50:24 +0200 | <Toast52> | if I import the GHC library does that inflate my binary with the entire size of GHC |
2021-07-29 15:50:30 +0200 | <geekosaur> | yes |
2021-07-29 15:55:42 +0200 | <Toast52> | right. I figured. thanks a lot! |
2021-07-29 15:56:18 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-29 15:57:16 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-07-29 15:58:49 +0200 | zelmac | (~zelmac@host86-188-117-120.range86-188.btcentralplus.com) |
2021-07-29 16:00:33 +0200 | oni123 | (~oni123@cpe-70-121-244-14.neb.res.rr.com) |
2021-07-29 16:03:24 +0200 | Obo | (~roberto@94.191.137.235.mobile.tre.se) |
2021-07-29 16:03:38 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-07-29 16:05:55 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b95075c335839612ea8d0.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-07-29 16:06:31 +0200 | kuribas | (~user@ptr-25vy0i6v77tuc30f7h8.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-07-29 16:10:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 16:10:24 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 16:10:40 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 16:11:17 +0200 | chomwitt | (~chomwitt@athedsl-32041.home.otenet.gr) |
2021-07-29 16:11:52 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 16:12:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 16:13:49 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-07-29 16:14:01 +0200 | oni123 | (~oni123@cpe-70-121-244-14.neb.res.rr.com) (Quit: Client closed) |
2021-07-29 16:14:48 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-07-29 16:14:56 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 16:14:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 16:15:24 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 16:15:33 +0200 | zebrag | (~chris@user/zebrag) |
2021-07-29 16:15:50 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-29 16:20:32 +0200 | son0p | (~ff@181.136.122.143) |
2021-07-29 16:20:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 16:21:17 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 16:23:37 +0200 | jippiedoe | (~david@84-84-122-154.fixed.kpn.net) |
2021-07-29 16:24:08 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-07-29 16:25:07 +0200 | favonia | (~favonia@user/favonia) |
2021-07-29 16:25:13 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 16:26:23 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 16:26:37 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-07-29 16:27:36 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-29 16:28:20 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-29 16:30:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 16:31:45 +0200 | motle | (~motle@cpc103048-sgyl39-2-0-cust506.18-2.cable.virginm.net) |
2021-07-29 16:31:53 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 16:32:07 +0200 | <motle> | hi, im trying to get some graphics applications running in windows |
2021-07-29 16:32:35 +0200 | <motle> | iv been trying to build gtk or opengl (inc freeglut) |
2021-07-29 16:32:42 +0200 | jippiedoe | (~david@84-84-122-154.fixed.kpn.net) (Remote host closed the connection) |
2021-07-29 16:32:49 +0200 | <motle> | using msys, or ubuntu on wsl |
2021-07-29 16:33:22 +0200 | <motle> | i found a common dependency with lesah, which wont build either for the same reason |
2021-07-29 16:33:40 +0200 | <motle> | it fails at; pacman -S mingw-w64-x86_64-webkitgtk3 |
2021-07-29 16:34:56 +0200 | <motle> | this apparently according to some thread i cant find anymore "no longer works, and has been depreciated" |
2021-07-29 16:35:13 +0200 | <motle> | this seems like it affects most of the haskell graphics ecosystem on windows |
2021-07-29 16:35:39 +0200 | <motle> | does anyone have a currently working windows setup for GUIs or graphics? |
2021-07-29 16:35:58 +0200 | <motle> | leksah* |
2021-07-29 16:36:45 +0200 | <motle> | anyway, that depreciated library is from msys - which was the windows way to build the graphics library dependencies like with unix |
2021-07-29 16:37:05 +0200 | <motle> | not sure whats up with wsl, couldnt fathom the x-forwarding i think... |
2021-07-29 16:37:32 +0200 | <motle> | i think this means cairo is broken on windows too, as well as gloss |
2021-07-29 16:37:40 +0200 | sedeki | (~textual@user/sedeki) |
2021-07-29 16:38:02 +0200 | <motle> | though mostly this problem is encountered when trying to build gtk |
2021-07-29 16:38:06 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-29 16:38:06 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-29 16:38:16 +0200 | <motle> | which on windows i think is totally dead |
2021-07-29 16:39:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 16:39:30 +0200 | <motle> | cant get any of the solutions such as freeglut to work either - probably if anyone has up to date installation instructions for this it might work - considering building from source, but with just putting the dlls it seems to break |
2021-07-29 16:40:18 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 16:42:34 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2021-07-29 16:43:35 +0200 | <Toast52> | does msys link with window's opengl32.dll |
2021-07-29 16:43:53 +0200 | <Toast52> | or does it come with its own set of shared libs |
2021-07-29 16:49:03 +0200 | <Toast52> | I believe ghc on windows is able to locate shared libs on PATH which includes %systemroot%\system32 (where opengl32.dll is located) |
2021-07-29 16:50:24 +0200 | <kritzefitz> | motle, a few week ago I was able to build GTK3 applications based on gi-gtk after installing mingw-w64-x86_64-{pkgconf,gtk3,gobject-introspection}. |
2021-07-29 16:50:59 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 16:51:52 +0200 | sedeki | (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com) |
2021-07-29 16:52:03 +0200 | <motle> | yeah, gobject is what led me to leksah, i thought it would install that for me, since i couldnt get the install to supress the error |
2021-07-29 16:52:23 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-29 16:54:24 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 16:55:07 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 245 seconds) |
2021-07-29 16:57:56 +0200 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
2021-07-29 16:58:40 +0200 | <zava> | writing me a haskell exam tmrw. fuckin monads and some of the types make me head hurt |
2021-07-29 16:58:41 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9d14:637c:254d:7940) |
2021-07-29 16:58:59 +0200 | <motle> | :t (>>) |
2021-07-29 16:59:00 +0200 | <lambdabot> | Monad m => m a -> m b -> m b |
2021-07-29 16:59:04 +0200 | <motle> | :t (>>=) |
2021-07-29 16:59:05 +0200 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
2021-07-29 16:59:14 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-29 16:59:33 +0200 | <zava> | which is also used in parsing |
2021-07-29 16:59:50 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 268 seconds) |
2021-07-29 17:00:08 +0200 | <zava> | I really have no reason to complain. I'll pass |
2021-07-29 17:00:22 +0200 | <zava> | those are the only things that I struggle with |
2021-07-29 17:01:06 +0200 | <zava> | and when I write a function with where and 4 lines of nested helperfunctions and my mate achieves the same with a 2 liner :) |
2021-07-29 17:01:16 +0200 | michalz | (~michalz@185.246.204.62) (Remote host closed the connection) |
2021-07-29 17:02:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 17:02:51 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 17:02:55 +0200 | <kritzefitz> | motle, I don't think I understand your problem. Can you be more specific what GUI toolkit you were trying to build? You say you couldn't use GTK, because you couldn't install <mingw-prefix>-webkitgtk3, but GTK itself doesn't actually need webkit. |
2021-07-29 17:03:18 +0200 | <zava> | \o |
2021-07-29 17:03:21 +0200 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.0) |
2021-07-29 17:05:18 +0200 | sweater2 | (~sweater@206.81.18.26) (Quit: WeeChat 2.8) |
2021-07-29 17:05:38 +0200 | <dsal> | :t (*>) |
2021-07-29 17:05:39 +0200 | <lambdabot> | Applicative f => f a -> f b -> f b |
2021-07-29 17:06:04 +0200 | <dsal> | I should get in the habit of using that more. |
2021-07-29 17:06:35 +0200 | <dminuoso> | Also cute: |
2021-07-29 17:06:41 +0200 | <dminuoso> | % :t (<$) |
2021-07-29 17:06:41 +0200 | <yahb> | dminuoso: Functor f => a -> f b -> f a |
2021-07-29 17:06:51 +0200 | <dminuoso> | Really grown to like that one. |
2021-07-29 17:08:36 +0200 | <dsal> | Yeah. I use these things in parsers, but outside of parsers, I never think to use them. |
2021-07-29 17:09:24 +0200 | <dminuoso> | `() <$` I find more comfortable than `void` which needs an extra import |
2021-07-29 17:09:41 +0200 | <dminuoso> | Also in some custom monads it can be handy |
2021-07-29 17:10:29 +0200 | <dminuoso> | One of our projects has a large compilation monad with various failures (that get promoted to fatal at certain stages). So I regularly do something like: True <$ configErr "this and that failed" |
2021-07-29 17:10:46 +0200 | <dminuoso> | Allowing me to produce some temporary result while setting an eventually fatal error |
2021-07-29 17:11:04 +0200 | <motle> | krizefitz: i was trying to install gobject which leksah had a .bash file to do, but *it* failed because it needed webkitgtk3 |
2021-07-29 17:12:09 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 17:12:15 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 258 seconds) |
2021-07-29 17:12:23 +0200 | averell | (~averell@user/averell) (Quit: .) |
2021-07-29 17:13:26 +0200 | <dsal> | Oh, looks like I use `$>` a lot, but not `<$` hmm... |
2021-07-29 17:14:35 +0200 | <dminuoso> | Guess it depends a bit on the emphasis. |
2021-07-29 17:15:02 +0200 | <dminuoso> | <$ on longer lines immediately shows you the result ahead of the line, with $> I feel like I run out of mental stack space by the time I get to the other side |
2021-07-29 17:16:16 +0200 | <Drew[m]> | motle: From my not very clear understanding of what gobject is, I doubt it requires webkitgtk |
2021-07-29 17:16:28 +0200 | <lechner> | Hi, with JSON.eitherDecode on known JSON data I get: "Error in $: Failed reading: Cannot decode input: Data.Text.Internal.Encoding.decodeUtf8: Invalid UTF-8 stream. Expecting object value at ',' " What does that mean, please? Is that a JSON problem (missing object value) or a UTF-8 encoding problem? Thanks! |
2021-07-29 17:16:32 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
2021-07-29 17:16:57 +0200 | <lechner> | or decoding problem, to be more exact |
2021-07-29 17:17:49 +0200 | peterhil | (~peterhil@mobile-access-5d6aaf-196.dhcp.inet.fi) |
2021-07-29 17:17:51 +0200 | <dminuoso> | I suspect there's some escape character issue |
2021-07-29 17:18:02 +0200 | <lechner> | it happens on all files, though |
2021-07-29 17:18:13 +0200 | <geekosaur> | Drew[m],motle: leksah uses webkitgtk, so it installs it at the same time as gtk. that does not mean gtk itself requires webkit |
2021-07-29 17:18:54 +0200 | <motle> | sure |
2021-07-29 17:19:15 +0200 | <Drew[m]> | Right, and from my research trying to get reflex-dom to work, webkitgtk3 didn't seem like a thing that was available on windows |
2021-07-29 17:19:36 +0200 | <motle> | but i did pacman -S ... gobject-introspection, and it still throws an error |
2021-07-29 17:19:54 +0200 | <motle> | i was trying to get a leksah build to get that to work for me |
2021-07-29 17:19:58 +0200 | <kritzefitz> | motle, what error does it throw? |
2021-07-29 17:20:00 +0200 | Obo | (~roberto@94.191.137.235.mobile.tre.se) (Ping timeout: 256 seconds) |
2021-07-29 17:20:23 +0200 | <motle> | but your right, the depreciated dependency which kills leksah shouldnt actually stop the gtk build, i shall try again |
2021-07-29 17:21:34 +0200 | <motle> | the package gobject version something something required but not found |
2021-07-29 17:22:04 +0200 | <motle> | from stack run on a project with gi-gtk dependencies in the stack yaml |
2021-07-29 17:23:31 +0200 | <kritzefitz> | Stack does not install C dependencies for you. |
2021-07-29 17:23:46 +0200 | <kritzefitz> | You need to install the gobject C library before running stack |
2021-07-29 17:23:58 +0200 | <Drew[m]> | Yeah but it sounds like motle has tried installing that |
2021-07-29 17:24:16 +0200 | <kritzefitz> | Yes, but they never told us, why it didn't work. |
2021-07-29 17:24:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 17:25:06 +0200 | <Drew[m]> | Well I think what they said was ambiguous. Was pacman throwing an error when they tried to install gobject-introspection, or did it succeed and stack threw an error when they tried to use it |
2021-07-29 17:25:07 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 17:25:55 +0200 | <kritzefitz> | motle, maybe you can clarify? Did you run `pacman -S mingw-w64-x86_64-object-introspection`? Did that work? If not, what was the error message? |
2021-07-29 17:25:57 +0200 | <Drew[m]> | Clarification would be handy! |
2021-07-29 17:26:48 +0200 | peterhil | (~peterhil@mobile-access-5d6aaf-196.dhcp.inet.fi) (Ping timeout: 256 seconds) |
2021-07-29 17:27:53 +0200 | <motle> | i think the gobject-introspection install "succeded" but didnt make the lib available, maybe PATH |
2021-07-29 17:28:53 +0200 | <motle> | error: target not found: mingw-w64-x86_64-object-introspection |
2021-07-29 17:28:57 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-07-29 17:29:10 +0200 | <kritzefitz> | You're missing a `g` in front of `object`. |
2021-07-29 17:29:31 +0200 | <motle> | derp, just copy pasted it from the comment |
2021-07-29 17:29:50 +0200 | <kritzefitz> | OOps |
2021-07-29 17:30:22 +0200 | <motle> | hmm, might be building ok now, have to wait a sec |
2021-07-29 17:30:54 +0200 | pe200012_ | (~pe200012@218.107.49.28) (Ping timeout: 272 seconds) |
2021-07-29 17:32:42 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 17:32:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 17:33:57 +0200 | zelmac | (~zelmac@host86-188-117-120.range86-188.btcentralplus.com) (Remote host closed the connection) |
2021-07-29 17:35:44 +0200 | danielam | (~daniel@cpe-67-247-21-112.nyc.res.rr.com) |
2021-07-29 17:37:11 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-07-29 17:38:07 +0200 | agua | (~agua@2804:18:40:39f8:1:0:64c7:dff1) |
2021-07-29 17:39:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 17:39:36 +0200 | danielam | (~daniel@cpe-67-247-21-112.nyc.res.rr.com) (Quit: leaving) |
2021-07-29 17:39:44 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 252 seconds) |
2021-07-29 17:40:07 +0200 | pesada | (~agua@2804:14c:8793:8e2f:3944:8017:7f63:8e28) (Ping timeout: 245 seconds) |
2021-07-29 17:42:36 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 17:43:22 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-07-29 17:43:49 +0200 | yilin1 | (~yilin@2601:400:c100:6330:6b23:fdc1:34d0:ae01) |
2021-07-29 17:44:12 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 272 seconds) |
2021-07-29 17:44:33 +0200 | yilin1 | (~yilin@2601:400:c100:6330:6b23:fdc1:34d0:ae01) (Client Quit) |
2021-07-29 17:46:21 +0200 | motle | (~motle@cpc103048-sgyl39-2-0-cust506.18-2.cable.virginm.net) (Quit: Connection closed) |
2021-07-29 17:46:43 +0200 | <Drew[m]> | if you're going through gi-gtk, I wouldn't trust the windows instructions there to be up to date and good practice |
2021-07-29 17:46:58 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-29 17:47:38 +0200 | pesada | (~agua@2804:14c:8793:8e2f:3944:8017:7f63:8e28) |
2021-07-29 17:50:47 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-07-29 17:51:23 +0200 | agua | (~agua@2804:18:40:39f8:1:0:64c7:dff1) (Ping timeout: 252 seconds) |
2021-07-29 17:51:33 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9d14:637c:254d:7940) (Quit: WeeChat 2.8) |
2021-07-29 17:53:07 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 244 seconds) |
2021-07-29 17:53:23 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-07-29 17:54:43 +0200 | motle | (~motle@cpc103048-sgyl39-2-0-cust506.18-2.cable.virginm.net) |
2021-07-29 17:54:53 +0200 | <motle> | now it complains about; libcairo-gobject2 |
2021-07-29 17:55:09 +0200 | rmoe | (~rmoe@c-71-236-207-44.hsd1.wa.comcast.net) (Ping timeout: 276 seconds) |
2021-07-29 17:55:10 +0200 | <motle> | so i guess that fixed the original gobject issue |
2021-07-29 17:55:38 +0200 | <motle> | ie pacman -S mingw-w64-x86_64-gobject-introspection |
2021-07-29 17:55:39 +0200 | <motle> | worked |
2021-07-29 17:55:43 +0200 | <kritzefitz> | motle, did you also `pacman -S mingw-w32-x86_64-gtk3`? |
2021-07-29 17:56:04 +0200 | <kritzefitz> | That should pull in the rest of the dependencies you need for gi-gtk. |
2021-07-29 17:56:28 +0200 | <kritzefitz> | (assuming you're using gt-gtk version 3.x and not 4.x) |
2021-07-29 17:56:31 +0200 | <motle> | error: target not found: mingw-w32-x86_64-gtk3 |
2021-07-29 17:56:54 +0200 | <kritzefitz> | err, mingw-w64-x86_64-gtk3 |
2021-07-29 17:57:08 +0200 | rmoe | (~rmoe@c-71-236-207-44.hsd1.wa.comcast.net) |
2021-07-29 17:57:27 +0200 | <motle> | yah, that works |
2021-07-29 17:58:32 +0200 | <motle> | ahh, iv just got to get used to putting that prefix on the dependencies normally listed because of msys |
2021-07-29 17:59:22 +0200 | <motle> | still complains about 'libcairo-gobject-2.dll though |
2021-07-29 17:59:32 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-29 18:01:06 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
2021-07-29 18:01:10 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-07-29 18:01:29 +0200 | <kritzefitz> | That sounds like an issue with PATH |
2021-07-29 18:03:30 +0200 | <kritzefitz> | IIRC libcairo-gobject-2.dll should be in you msys environment inside /mingw64/bin or similar. Can you find it there? |
2021-07-29 18:03:49 +0200 | <motle> | i thought that before when it couldnt resolve gobject after gobject-introspect installed |
2021-07-29 18:04:41 +0200 | <kritzefitz> | Yeah, but that was a different error message. When stack complains about not finding a library, its usually because pkg-config can't even find the definition for the file. |
2021-07-29 18:05:10 +0200 | <kritzefitz> | If you get complaints about a .dll, pkg-config probably found the definition, but now the linker can't find the .dll one the PATH. |
2021-07-29 18:06:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 18:06:12 +0200 | <motle> | the only dlls in the bin dir at ../.. in a msys prompt are prefixed by msys- |
2021-07-29 18:06:22 +0200 | <motle> | not the right ones |
2021-07-29 18:07:04 +0200 | <kritzefitz> | Are you sure ../.. is the same as /mingw64? |
2021-07-29 18:07:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-29 18:07:09 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 18:07:30 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
2021-07-29 18:08:04 +0200 | <motle> | C:\msys64\mingw64\bin has the gtk dll |
2021-07-29 18:08:49 +0200 | <kritzefitz> | That sounds about right, but... |
2021-07-29 18:08:59 +0200 | <motle> | aha, and the libcairo-gobject-2.dll |
2021-07-29 18:09:00 +0200 | <kritzefitz> | you're using a system installation of msys? |
2021-07-29 18:09:18 +0200 | <motle> | yeah, i installed stack within it not the other way round |
2021-07-29 18:09:20 +0200 | <motle> | using curl |
2021-07-29 18:09:53 +0200 | <kritzefitz> | Are you sure stack didn't install its own msys environment? It's not exactly straightforward to keep it from doing that. |
2021-07-29 18:11:22 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 268 seconds) |
2021-07-29 18:11:41 +0200 | <motle> | im not sure if its just the windows installer that does that? |
2021-07-29 18:11:56 +0200 | <motle> | the curl option being for the unix environemnt |
2021-07-29 18:12:02 +0200 | <kritzefitz> | Nah, `stack setup` does it much like it does with GHC. |
2021-07-29 18:12:32 +0200 | <motle> | oh yeah fair, probably it has some msys dir somewhere like ghc |
2021-07-29 18:12:49 +0200 | <motle> | but if those are like sandboxed things... |
2021-07-29 18:12:54 +0200 | azeem | (~azeem@176.201.11.200) |
2021-07-29 18:13:04 +0200 | <kritzefitz> | You can check the output of `stack path`. If the items of bin-path point to some obscure location, it's probably using the wrong msys environment. |
2021-07-29 18:13:18 +0200 | <maerwald[m]> | https://docs.haskellstack.org/en/stable/yaml_configuration/#skip-msys |
2021-07-29 18:13:34 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed) |
2021-07-29 18:13:59 +0200 | pavonia | (~user@user/siracusa) |
2021-07-29 18:14:10 +0200 | <motle> | idk i added that directory and started a new msys session and it seems like its building ok now |
2021-07-29 18:14:20 +0200 | <motle> | to the PATH |
2021-07-29 18:14:44 +0200 | <motle> | cant tell if its some intermittent thing like to do with starting the new session |
2021-07-29 18:14:48 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-29 18:14:57 +0200 | <motle> | something like that could be quite confusing! |
2021-07-29 18:15:25 +0200 | <motle> | or running stack several times in a row changing something, idk |
2021-07-29 18:15:36 +0200 | <motle> | seems to be working now anyhow |
2021-07-29 18:15:38 +0200 | <kritzefitz> | If C:\msys64\mingw64\bin is on your path when you start stack, it will probably not remove it, so everything should still work. |
2021-07-29 18:16:04 +0200 | <Drew[m]> | What's fun is that installing msys yourself, installing it through chocolatey, installing it through chocolatey's haskell-dev package, installing it through GHCup and Stack installing it all put things in different locations and some of those methods don't clean up after themselves reliably in my experience. |
2021-07-29 18:16:59 +0200 | <kritzefitz> | But at least in the long run you should consider setting skip-msys and removing stack's installation of msys. Its great for your own sanity, as long as you remember to only call stack from the correct MSYS environment. |
2021-07-29 18:17:55 +0200 | <motle> | yeah, i keep refreshing windows too |
2021-07-29 18:18:14 +0200 | <kritzefitz> | Also: you have to remember to start it from the correct MSYS shell. Last time I installed MSYS, it installed three different “entry points“ (“MSYS2”, “MinGW32”, “MinGW64” IIRC) and each of them have different things on the PATH. |
2021-07-29 18:18:17 +0200 | <maerwald[m]> | Drew: GHCup should clean up properly after itself |
2021-07-29 18:18:42 +0200 | <maerwald[m]> | You don't need to start it from an msys2 shell |
2021-07-29 18:18:42 +0200 | <kritzefitz> | And by default all the mingw-w64 stuff is only on PATH if you start MinGW64. |
2021-07-29 18:19:09 +0200 | ikex1 | (~ash@user/ikex) |
2021-07-29 18:19:26 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 252 seconds) |
2021-07-29 18:19:28 +0200 | <maerwald[m]> | You need these settings: skip-msys, extra-path, extra-include-dirs, extra-lib-dirs |
2021-07-29 18:19:46 +0200 | <kritzefitz> | Yeah, that should work too. |
2021-07-29 18:19:50 +0200 | ikex1 | ikex |
2021-07-29 18:20:01 +0200 | <maerwald[m]> | Then it works from powershell |
2021-07-29 18:20:08 +0200 | <maerwald[m]> | Adjusting PATH has odd side effects on windows |
2021-07-29 18:20:26 +0200 | <motle> | now it just dies without giving any reason |
2021-07-29 18:20:36 +0200 | <kritzefitz> | who dies? stack? |
2021-07-29 18:20:43 +0200 | <motle> | yeah |
2021-07-29 18:21:01 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-07-29 18:21:05 +0200 | <kritzefitz> | What's the exit code? Maybe it's just finished? |
2021-07-29 18:21:13 +0200 | <motle> | Process exited with code: ExitFailure (-1073741515) |
2021-07-29 18:21:21 +0200 | <kritzefitz> | Huh. |
2021-07-29 18:21:39 +0200 | <maerwald[m]> | Try cabal, it doesn't install its own msys2 |
2021-07-29 18:21:41 +0200 | <kritzefitz> | Maybe try re-running? Sometimes the actual error message is buried inside other messages. |
2021-07-29 18:21:50 +0200 | hexfive | (~eric@50.35.83.177) |
2021-07-29 18:21:56 +0200 | <motle> | idk how best to get cabal on a clean msys install |
2021-07-29 18:22:05 +0200 | hexfive | (~eric@50.35.83.177) (Client Quit) |
2021-07-29 18:22:08 +0200 | Toast52 | (~Toast52@151.192.167.120) (Quit: Leaving) |
2021-07-29 18:23:01 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 18:23:32 +0200 | <kritzefitz> | motle, you might need to set XDG_DATA_DIRS=/mingw64/share in the environment. But if that's the case there should be an error message hidden somewhere. |
2021-07-29 18:24:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 18:24:12 +0200 | <kritzefitz> | e.g. `XDG_DATA_DIRS=/mingw64/share stack ...` |
2021-07-29 18:24:59 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 18:25:08 +0200 | <maerwald[m]> | motle: can install cabal with ghcup |
2021-07-29 18:25:13 +0200 | <zzz> | wait, importing a module inflates the binary with the full module? seems trivial to statically check what's not used and strip it away, no? |
2021-07-29 18:25:32 +0200 | <maerwald[m]> | It asks for pre-existent msys2 |
2021-07-29 18:27:03 +0200 | <maerwald[m]> | Don't run stuff from within msys2 |
2021-07-29 18:27:52 +0200 | superstar64 | (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) |
2021-07-29 18:28:25 +0200 | <lechner> | Hi, does a ! strictness indicator in a JSON data type definition make the parsing more strict or more relaxed, please? |
2021-07-29 18:28:26 +0200 | hgolden | (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Quit: Konversation terminated!) |
2021-07-29 18:28:32 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-07-29 18:29:07 +0200 | <motle> | lechner: it ensures its parsed at all |
2021-07-29 18:29:26 +0200 | <lechner> | it is not without? |
2021-07-29 18:29:42 +0200 | <motle> | not if by lazyness its never called, thats what stricness is about |
2021-07-29 18:29:47 +0200 | <motle> | calls it there and then |
2021-07-29 18:29:53 +0200 | <motle> | instead of deffering it to call by use |
2021-07-29 18:30:44 +0200 | <lechner> | where does it go in an array please? [! Constituent] or ![ Constituent ] ? |
2021-07-29 18:30:44 +0200 | <kritzefitz> | motle, are you sure? Because if we're talking about parsing with aeson, it should parse everything strictly to be able to report failures. |
2021-07-29 18:30:50 +0200 | mattil | (~mattilinn@87-92-17-82.bb.dnainternet.fi) |
2021-07-29 18:31:03 +0200 | <motle> | lechner: maybe its only used in pattern bindings? |
2021-07-29 18:31:21 +0200 | <motle> | im not sure no |
2021-07-29 18:31:30 +0200 | <superstar64> | i'm trying to write a traversal for a higher kinded typed. is this possible? https://gist.github.com/Superstar64/d04cce9dd60f931a18868a648ff5b22a |
2021-07-29 18:31:32 +0200 | hgolden | (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) |
2021-07-29 18:31:52 +0200 | <superstar64> | `g λ` doesn't work because e doesn't match with e' |
2021-07-29 18:31:57 +0200 | <kritzefitz> | lechner, ![Foo] works, but probably does not what you want, because it only evaluates until the first `:`. |
2021-07-29 18:32:09 +0200 | <kritzefitz> | lechner, [!Foo] is not valid syntax. |
2021-07-29 18:32:19 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-07-29 18:32:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 18:32:48 +0200 | <kritzefitz> | If you want strict lists, you need a type that is explicitly designed to be a strict list or possibly define it yourself. |
2021-07-29 18:32:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 18:33:03 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-29 18:33:17 +0200 | <kritzefitz> | But I *don't* think strictness annotations should have any effect on JSON parsing. |
2021-07-29 18:33:27 +0200 | <kritzefitz> | So it probably doesn't matter. |
2021-07-29 18:33:39 +0200 | <lechner> | so i have known valid JSON. migrating to Haskell, my definitions are probably off but the error message is not great |
2021-07-29 18:33:41 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 18:33:50 +0200 | <motle> | yeah, idk was thinking lazy IO if it was escapable and needed prompt evaluation or something |
2021-07-29 18:34:14 +0200 | <lechner> | i saw a note one time in a haskell project asking all contributors to use ! |
2021-07-29 18:34:32 +0200 | <motle> | you should have a good reason |
2021-07-29 18:34:39 +0200 | <motle> | never normally needed |
2021-07-29 18:35:27 +0200 | <motle> | really rare times where otherwise something gets dropped in a monadic sequence needing ! cat remember |
2021-07-29 18:36:06 +0200 | <motle> | but like, only encountering actual use cases of ! rarely, so not really seeing why anyone would emphasize its importance |
2021-07-29 18:36:32 +0200 | <lechner> | unfortunately i cannot find it anymore |
2021-07-29 18:36:42 +0200 | <kritzefitz> | There is another case with libraries such as Data.Binary, where the decoding function doesn't check for errors in favour of more laziness. |
2021-07-29 18:36:56 +0200 | <motle> | saw some thing about performant parallel from some london bank in haskell, strict on the spine lazy on the branches i think |
2021-07-29 18:37:33 +0200 | <kritzefitz> | In that case strictness annotations actually make a big difference, because an all-strict structure will throw errors earlier. |
2021-07-29 18:37:42 +0200 | KUrare | (~KUrare@user/kurare) |
2021-07-29 18:38:10 +0200 | KUrare | (~KUrare@user/kurare) (Remote host closed the connection) |
2021-07-29 18:38:11 +0200 | <motle> | ah right, like if it does a bunch of work before calling the next lazy value |
2021-07-29 18:38:22 +0200 | <motle> | in a sequence that will eventually fail or something like that |
2021-07-29 18:38:30 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
2021-07-29 18:39:00 +0200 | <motle> | so you would want to get everything into a pure environemnt first for example to avoid that source of errors |
2021-07-29 18:39:19 +0200 | <motle> | like reading all the values in from files before starting the processing |
2021-07-29 18:39:45 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-29 18:39:53 +0200 | <motle> | so you would want to basically just use ! on the let bound variable capturing it from reading in from IO |
2021-07-29 18:40:26 +0200 | <motle> | and then just have everything else be lazy |
2021-07-29 18:40:33 +0200 | <motle> | idk about this stric list |
2021-07-29 18:40:41 +0200 | <motle> | to bind the functionality into the datatype like that |
2021-07-29 18:41:17 +0200 | <motle> | seems like you would have to have a different reason - like what were you saying, some kind of mapped error check? |
2021-07-29 18:41:25 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 18:41:38 +0200 | <motle> | i guess you could have a safe-strict-constructor |
2021-07-29 18:41:55 +0200 | <motle> | so that it performs all the safety checks to construct it at the same time |
2021-07-29 18:42:24 +0200 | <c_wraith> | as far as I'm concerned, the only reason to put strictness annotations into a constructor is when you need to unpack something of a known type for performance reasons. |
2021-07-29 18:42:25 +0200 | <motle> | or like, a strict fold using the safe constructor? |
2021-07-29 18:43:07 +0200 | <c_wraith> | otherwise it should be a property of functions that use that data and can set their own strictness policies appropriately for that exact use. |
2021-07-29 18:43:14 +0200 | <motle> | but then i dont see why you wouldnt just have a strict traversal with the error checker directly |
2021-07-29 18:43:50 +0200 | <maerwald[m]> | I use StrictData by default and so do many others |
2021-07-29 18:44:05 +0200 | <c_wraith> | StrictData doesn't even solve any interesting problems |
2021-07-29 18:44:15 +0200 | <c_wraith> | All it does is prevent using Haskell |
2021-07-29 18:44:35 +0200 | <motle> | lol, well if your usecase is known finite and totally evaluated |
2021-07-29 18:45:17 +0200 | <maerwald[m]> | No |
2021-07-29 18:45:24 +0200 | <motle> | so thats just like an easy switch to ensure recursive datatypes have everything like map performed strictly/simultaniously? |
2021-07-29 18:45:47 +0200 | <maerwald[m]> | https://github.com/yesodweb/wai/pull/752#issuecomment-501531386 |
2021-07-29 18:46:00 +0200 | <c_wraith> | StrictData is the equivalent of sticking ! on every field in data types defined in modules where it's enabled |
2021-07-29 18:46:30 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 276 seconds) |
2021-07-29 18:46:42 +0200 | <motle> | idk, everything i do is state encoded anyway... |
2021-07-29 18:47:11 +0200 | <c_wraith> | I don't get it. I don't have problems like that comment is talking about, because I make things the correct strictness up-front. |
2021-07-29 18:47:20 +0200 | <motle> | so basically definitely lazy! |
2021-07-29 18:47:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 18:47:29 +0200 | <motle> | (as pottentially infinite as not yet unfolded) |
2021-07-29 18:47:48 +0200 | <c_wraith> | And I still get to do all the things that post ignores with knot-tying |
2021-07-29 18:47:50 +0200 | <motle> | just nyam everything up one at a time like pipes processing |
2021-07-29 18:47:51 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 18:48:06 +0200 | <motle> | + fusion. strictness seems to kill all of that! |
2021-07-29 18:48:19 +0200 | <motle> | no streams... |
2021-07-29 18:48:30 +0200 | <motle> | thats IO scanning out the window |
2021-07-29 18:48:49 +0200 | <motle> | strictly evaluate this stream of market data! |
2021-07-29 18:48:52 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-07-29 18:49:19 +0200 | <motle> | i guess if you have a state encoded IO list though your gona be fine |
2021-07-29 18:49:36 +0200 | <motle> | i mean, the IO should allow stricness to be on by default? idk im confused |
2021-07-29 18:50:02 +0200 | <lechner> | it looks like aeson also offers strict parsers with json' and decode': http://winterland.me/2019/03/05/aeson%27s-mysterious-lazy-parsing/index.html |
2021-07-29 18:50:15 +0200 | <motle> | i still think i need it to be lazy because everythings these partially suspended traversals |
2021-07-29 18:50:21 +0200 | <motle> | yeah thats it |
2021-07-29 18:50:48 +0200 | <motle> | scanning is almost like a zipper, using lazyness at the front of evaluation by tail calls |
2021-07-29 18:51:08 +0200 | <motle> | so you need to "do the work" on a per value basis |
2021-07-29 18:51:31 +0200 | <motle> | and this will happen whenever your unfolding |
2021-07-29 18:51:41 +0200 | <motle> | er, if the unfolds may be infinite |
2021-07-29 18:51:52 +0200 | <motle> | so you cant be using streaming unfolds is basically all i can conclude |
2021-07-29 18:52:12 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) (Quit: Client closed) |
2021-07-29 18:52:50 +0200 | <motle> | id say thats enough to call stric by default unidiomatic to some extent |
2021-07-29 18:52:58 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) |
2021-07-29 18:53:32 +0200 | <motle> | assuming that folding/unfolding lazy lists is what we do |
2021-07-29 18:53:55 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 268 seconds) |
2021-07-29 18:54:03 +0200 | <motle> | i guess the division is between people with finite datatypes or not |
2021-07-29 18:54:28 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-29 18:54:38 +0200 | <motle> | eg a fixed size fluid simulation compared to a live IO interface |
2021-07-29 18:55:17 +0200 | <motle> | its only because of the markets that i ended up with these damn scanners |
2021-07-29 18:55:19 +0200 | <motle> | damn |
2021-07-29 18:55:26 +0200 | <motle> | probably not going to make any money |
2021-07-29 18:55:34 +0200 | <motle> | hope you like scanners everybody!! |
2021-07-29 18:55:35 +0200 | motle | (~motle@cpc103048-sgyl39-2-0-cust506.18-2.cable.virginm.net) (Quit: Connection closed) |
2021-07-29 18:57:13 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 18:57:35 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 18:57:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 18:58:32 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 18:58:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 18:59:59 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 19:00:14 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-07-29 19:00:21 +0200 | chomwitt | (~chomwitt@athedsl-32041.home.otenet.gr) (Ping timeout: 258 seconds) |
2021-07-29 19:01:01 +0200 | econo | (uid147250@user/econo) |
2021-07-29 19:02:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 19:03:25 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 19:03:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-07-29 19:04:43 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) (Quit: Client closed) |
2021-07-29 19:04:52 +0200 | <lechner> | Hi, why does readCreateProcessWithExitCode returns stdout as a String, please? It is the same as [Char], which according to Data.Char are Unicode code points. What if the called program, like all programs, outputs a ByteString that may or may not be UTF-8? Does System.Process attempt to decode? Thanks! |
2021-07-29 19:05:05 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) |
2021-07-29 19:07:41 +0200 | motle | (~motle@cpc103048-sgyl39-2-0-cust506.18-2.cable.virginm.net) |
2021-07-29 19:08:48 +0200 | <motle> | i spent half of last year designing asyncronous scheduling on graph distrbuted computing for these trading robot things! like, years wasted if the only reason is scanners! |
2021-07-29 19:09:56 +0200 | <motle> | had restricted types flowing on the edges of a hierarchical tensor net, was mental |
2021-07-29 19:10:45 +0200 | <motle> | damn AWS sentinals killing the haskell apps |
2021-07-29 19:11:25 +0200 | <motle> | all that just for a persistent net of processes that could start each other up if the sentinal got one of 'em |
2021-07-29 19:12:33 +0200 | <motle> | so yeah - to make something of that, i kind of want to get a programming language at least |
2021-07-29 19:12:44 +0200 | <motle> | its got graphs too... |
2021-07-29 19:12:50 +0200 | <motle> | like how we have lists |
2021-07-29 19:12:58 +0200 | <motle> | and something convolutional |
2021-07-29 19:13:11 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 19:13:17 +0200 | <motle> | extends lenses to pointers? |
2021-07-29 19:13:44 +0200 | <motle> | anyway, the point is about call by use and lazy evaluation i guess |
2021-07-29 19:14:01 +0200 | <motle> | running the program starting information flowing over the edges |
2021-07-29 19:14:14 +0200 | <motle> | so the pointers setting about foraging for nearby data |
2021-07-29 19:14:39 +0200 | <motle> | i guess then you have an elaboration over everything being just tail calls |
2021-07-29 19:14:55 +0200 | <motle> | ie there is other stuff "nearby" in different ways in a graph |
2021-07-29 19:14:59 +0200 | <motle> | than just the tail |
2021-07-29 19:15:18 +0200 | <motle> | so instead of pattern matching cons being the bare currency of the language... |
2021-07-29 19:15:28 +0200 | <motle> | and basically traversals and folds being king |
2021-07-29 19:15:38 +0200 | <motle> | so by suspending traversals on graphs with pointer navigation |
2021-07-29 19:15:54 +0200 | <motle> | idk... something complicated |
2021-07-29 19:16:10 +0200 | <motle> | supposed to be the key part to the heart of the language, i cant get it |
2021-07-29 19:16:59 +0200 | <motle> | anyway, instead of records and complicated lenses via template haskell, everything is done by pointer indexing |
2021-07-29 19:17:09 +0200 | <motle> | some algebra on the index |
2021-07-29 19:17:27 +0200 | <motle> | cant quite get the class system, but anyway... |
2021-07-29 19:18:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 19:18:17 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-29 19:18:22 +0200 | Guest9 | (~Guest9@103.240.170.208) |
2021-07-29 19:18:23 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 19:18:26 +0200 | <motle> | i guess normally "positions" are infact let bound variables, probably enough for now |
2021-07-29 19:18:31 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-07-29 19:19:23 +0200 | <motle> | i guess thats just an artefact of having put edges where there were function arguments |
2021-07-29 19:20:06 +0200 | <motle> | its anoying how it basically just allows recursive programs to be expressed and haskell just does that anyway... |
2021-07-29 19:20:22 +0200 | <motle> | i guess it would be nice to wield the IR directly as a nice graph though... |
2021-07-29 19:20:59 +0200 | <motle> | oh yeah, it was supposed to go in the compiler as like the lowest level after making lists... not sure if would even require a systemF extension |
2021-07-29 19:22:21 +0200 | <motle> | yeah i guess everythings just done with mad big records at the minute, could make it better? |
2021-07-29 19:22:25 +0200 | pgib | (~textual@173.38.117.81) |
2021-07-29 19:23:47 +0200 | <motle> | i dont actually know how term reduction or whatever it is actually happens |
2021-07-29 19:24:14 +0200 | <motle> | like if having a nice graph scafolding would help, instead of having to keep track of all the record name subsets |
2021-07-29 19:25:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 19:25:46 +0200 | <motle> | i guess its not quite the question "why use datatypes at all, just make a big hetrogenous free list", since this handles the added issues about navigation that are introduced |
2021-07-29 19:25:59 +0200 | <motle> | which is probably why we use names for that |
2021-07-29 19:26:18 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 19:26:54 +0200 | <motle> | idk, maybe by the time its some illegible IR it probably doesnt matter what record naming is used |
2021-07-29 19:27:23 +0200 | <motle> | the question is about the ability to make use of a coding approach that also dispensed of records at the top level, in the actual language |
2021-07-29 19:27:57 +0200 | <motle> | you dont need to use the names, you just have to specify the shape which is all done numerically |
2021-07-29 19:28:20 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds) |
2021-07-29 19:28:46 +0200 | <motle> | i mean, i use big 3d grids of numbers all the time, so it would be totally infeasable to have anything other than a numeric record |
2021-07-29 19:29:21 +0200 | <motle> | i guess normally programs are more "structured" in a sense where big datatypes with meaningful constructor names are used |
2021-07-29 19:29:54 +0200 | <Drew[m]> | I'm struggling to follow all this. Are you still talking about haskell or are you comparing something to haskell? |
2021-07-29 19:29:55 +0200 | <motle> | ie how we ended up with this tradition of not really supporting big grids as default datatypes |
2021-07-29 19:30:10 +0200 | <motle> | Drew[m]: its what i have made in haskell |
2021-07-29 19:30:21 +0200 | <motle> | just a bunch of work traversing free hetrogenous extensible things |
2021-07-29 19:30:37 +0200 | <motle> | the point is how close it is to a language fundamenta |
2021-07-29 19:30:41 +0200 | <Clint> | lechner: you might want something like https://hackage.haskell.org/package/process-extras-0.7.4/docs/System-Process-ByteString.html#v:rea… instead |
2021-07-29 19:30:44 +0200 | <motle> | to be comparable to the status of list |
2021-07-29 19:31:06 +0200 | <motle> | and im trying to work out how it would look more well made and built in |
2021-07-29 19:31:23 +0200 | <motle> | seems like cartesian convolutions is the standard example |
2021-07-29 19:31:40 +0200 | <motle> | (needs cycles for the cubes) |
2021-07-29 19:31:50 +0200 | <motle> | graphamagig |
2021-07-29 19:32:12 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 19:33:03 +0200 | <motle> | but yeah, i really want shapes more suited to recursive higher order functions, like map |
2021-07-29 19:33:28 +0200 | <motle> | just to express the program on the graph scafolding and have it evaluate properly with the states all interlocking |
2021-07-29 19:33:30 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-29 19:33:38 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 19:33:42 +0200 | <motle> | er yeah, we have modifiable programs now too, because the states |
2021-07-29 19:34:04 +0200 | <motle> | ie the program can store a magic number that can change between evaluation |
2021-07-29 19:34:57 +0200 | derelict | (~derelict@user/derelict) |
2021-07-29 19:35:08 +0200 | <motle> | so like, lazy lists state unfold, then states all interconected like pipes/conduit, then message passing doing the argument application to the modifiable functions held at the nodes, ie (state function,state value) pairs |
2021-07-29 19:35:22 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-07-29 19:35:27 +0200 | <motle> | because states all connected together in a graph like state encoding a list somehow |
2021-07-29 19:35:56 +0200 | <motle> | and scanning states like mapAcuumL traversal, somehow with the states ending up per node!/// |
2021-07-29 19:36:18 +0200 | <motle> | its about the connectivity of subsequent scans |
2021-07-29 19:36:40 +0200 | <motle> | theres an algebra of function composition with a rewrite rule similar to map . map |
2021-07-29 19:36:42 +0200 | azeem | (~azeem@176.201.11.200) (Read error: Connection reset by peer) |
2021-07-29 19:37:13 +0200 | <motle> | but then not just sequencing them one after the other, because having branching outputs like a scan doing something like unzip |
2021-07-29 19:37:13 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-29 19:37:32 +0200 | <motle> | the program sits still while notionally data is fed subsequent values as inputs |
2021-07-29 19:37:49 +0200 | <motle> | as opposed to the scanner kind of moving along over the list |
2021-07-29 19:38:00 +0200 | <motle> | during traversal with the carried accumulator |
2021-07-29 19:38:47 +0200 | <motle> | just to say something like fold unfold fusion rewrite rules composing on a big graph with zip/unzip style branching |
2021-07-29 19:39:06 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
2021-07-29 19:39:34 +0200 | <motle> | and somehow thats programs on a graph, i guess intrinsically for straming which explains why there all states, and how they then end up modifiable, since they are collectively like a carry traversing over it like a scanner |
2021-07-29 19:39:53 +0200 | <motle> | it kind of scans over the list but demangles it through the branching program |
2021-07-29 19:40:17 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds) |
2021-07-29 19:40:20 +0200 | <motle> | just for streaming i think, but they can output back into themselves, so i think thats how it does recursion too |
2021-07-29 19:41:04 +0200 | <motle> | eg you could just provide initial data and have it unfold data streamingly |
2021-07-29 19:41:47 +0200 | <motle> | or you could also stream data into it while it runs, in sync with the clock of the internal programs evaluation scheduling as specified on the graph as a bunch of simultanious opperations per cycle |
2021-07-29 19:42:42 +0200 | <motle> | i mean, its all just streaming through graphs for recursive programs |
2021-07-29 19:43:03 +0200 | <motle> | (with hopfiled nets as a type restriction!) |
2021-07-29 19:43:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 19:44:15 +0200 | <motle> | not sure if its wrong (or realistic) to ask for help, but anyway... thats what it is |
2021-07-29 19:45:12 +0200 | <lechner> | Clint: thanks! i was already looking into Data.ByteString.Lazy.UTF8.fromString but your solution is much better! |
2021-07-29 19:45:22 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-07-29 19:47:05 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-29 19:47:54 +0200 | <motle> | sorry i was confusing the state which does the unfold to the states on the nodes of the graph scanning over it |
2021-07-29 19:48:50 +0200 | <motle> | thats why theres the clock function which just streams a list of (), to have a small shaped state fo the unfolding state and the rest of the unfold as a graph program scanning over the stream of () |
2021-07-29 19:49:16 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) |
2021-07-29 19:49:28 +0200 | <Drew[m]> | <motle> "not sure if its wrong (or..." <- I feel like I wouldn't expect many people to be able to follow your thoughts to know how to help. Clearly you've been thinking about it a lot but I think you'd need to condense it down to a more concrete question or series of questions. |
2021-07-29 19:49:48 +0200 | <motle> | i mean n terms of getting something implemented |
2021-07-29 19:50:15 +0200 | <Drew[m]> | What do |
2021-07-29 19:50:17 +0200 | <Drew[m]> | oops |
2021-07-29 19:50:23 +0200 | <Drew[m]> | What do you want to implement? |
2021-07-29 19:50:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 19:50:58 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-07-29 19:51:15 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-29 19:51:22 +0200 | <motle> | i guess if i could implement a square grid as a cycle for the data in a covnet and express the net as a fold through layers that are graphs... something like that, it uses the convolutions to do both message parsing and data processing then |
2021-07-29 19:51:42 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 19:51:59 +0200 | <motle> | but that the same structure (the aim of the implementation) be used for both, the graph with the stencil api |
2021-07-29 19:52:29 +0200 | <motle> | the hetrogenaity and polymorphicity are difficult |
2021-07-29 19:53:08 +0200 | <motle> | ends up with type level programs specifying the shape and for the indexing etc |
2021-07-29 19:53:29 +0200 | azeem | (~azeem@176.201.11.200) |
2021-07-29 19:53:45 +0200 | <zzz> | do imported but not used modules contribute to binary size? and i can ask the same for functions inside and outside those modules |
2021-07-29 19:53:52 +0200 | <motle> | i guess the strange thing about passing types over the edges is thinking that they could modify the types at the nodes |
2021-07-29 19:54:21 +0200 | <lechner> | Hi, why does Haskell always assume that with f g x i mean f(g, x) instead of f(g( x )) ? |
2021-07-29 19:54:24 +0200 | <zzz> | s/those/any |
2021-07-29 19:54:28 +0200 | <motle> | ie the types of the functions held in the program, a wierd result of the thing being modifiable i guess |
2021-07-29 19:54:34 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 19:54:49 +0200 | <motle> | really wants to be used for genetic programming though |
2021-07-29 19:55:01 +0200 | <zzz> | lechner: f g x === (f g) x |
2021-07-29 19:55:17 +0200 | <motle> | have a pottential project there with elucidating slightly less common higher order programing patters |
2021-07-29 19:55:25 +0200 | <zzz> | prefix function notation is left associative by default |
2021-07-29 19:55:55 +0200 | <motle> | just cool to have a program that can be modifying itself while it runs i guess |
2021-07-29 19:56:03 +0200 | <lechner> | zzz: somehow that goes against my RPN pbrain |
2021-07-29 19:56:06 +0200 | <motle> | not sure how to handle runtime typechecking though... |
2021-07-29 19:56:35 +0200 | <zzz> | lechner: use `f $ g $ x` then |
2021-07-29 19:56:50 +0200 | <motle> | which would correspond to establishing or removing edges i guess, or changing types of arguments, such as the dimension of subgraph segment they were passing for insertion somewhere or something like that |
2021-07-29 19:57:20 +0200 | <lechner> | zzz: maybe the other way woudn't work. it just seems i need a lot of brackets |
2021-07-29 19:57:26 +0200 | <lechner> | or $ |
2021-07-29 19:57:27 +0200 | <roboguy_> | lechner: wouldn't RPN be x f g? |
2021-07-29 19:58:04 +0200 | <lechner> | roboguy_: you are right |
2021-07-29 19:58:17 +0200 | <lechner> | not sure what i am saying |
2021-07-29 19:58:20 +0200 | <zzz> | :t (&) |
2021-07-29 19:58:22 +0200 | <lambdabot> | a -> (a -> b) -> b |
2021-07-29 19:58:33 +0200 | <zzz> | & = flip ($) |
2021-07-29 19:59:40 +0200 | <motle> | i guess its more difficult than a regular machine learning problem. you cant just compare its outputing a stream of functions - you would want to "regularize" it directly, which would be complicated programs acting on the various types in the graph program, to try to get it to produce eg higher order functions in some order |
2021-07-29 19:59:59 +0200 | <lechner> | it just seems there are more functions with just one argument |
2021-07-29 20:00:03 +0200 | <roboguy_> | lechner: I don't think eta-reduction would work normally if "f g x" meant "f (g x)" |
2021-07-29 20:00:12 +0200 | <lechner> | i ynow |
2021-07-29 20:00:15 +0200 | <lechner> | know |
2021-07-29 20:00:29 +0200 | <lechner> | what is eta please? |
2021-07-29 20:00:37 +0200 | <motle> | like its not exactly straitforwards how to encourage a program to assemble itself in such a way |
2021-07-29 20:01:14 +0200 | <roboguy_> | lechner: for example, eta-reduction allows you to rewrite "f x = g 2 x" as "f = g 2" |
2021-07-29 20:01:56 +0200 | <roboguy_> | eta-expansion is the other direction, which is also fine |
2021-07-29 20:02:08 +0200 | <motle> | i guess if it had some really badass way of examining the functions it was supposed to be reproducing, it could kind of make a way to produce them properly |
2021-07-29 20:02:10 +0200 | <roboguy_> | (if the function takes enough arguments) |
2021-07-29 20:02:25 +0200 | <lechner> | motle: don't lose those thoughts; write them into a word processor instead |
2021-07-29 20:02:42 +0200 | <motle> | that wont make them real like you! |
2021-07-29 20:02:58 +0200 | <lechner> | paper is real |
2021-07-29 20:02:58 +0200 | azeem | (~azeem@176.201.11.200) (Read error: Connection reset by peer) |
2021-07-29 20:03:12 +0200 | <motle> | why you want to limit the audience so? |
2021-07-29 20:03:23 +0200 | <motle> | i mean really impactful i guess |
2021-07-29 20:03:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 20:03:31 +0200 | <motle> | more real |
2021-07-29 20:03:44 +0200 | <motle> | no pressure |
2021-07-29 20:04:02 +0200 | <lechner> | on the contrary, i want to make sure your thoughts (ultimately) get the attention they deserve |
2021-07-29 20:04:12 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-29 20:04:34 +0200 | <motle> | anyway dont we have tunes still here? |
2021-07-29 20:05:17 +0200 | <motle> | lechner: well i heard about the machine learning problem in my first hear classes so i guess similar projects have *some* attention? |
2021-07-29 20:05:26 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-29 20:05:31 +0200 | <motle> | probably makes more sense now though... |
2021-07-29 20:05:44 +0200 | <motle> | not sure how much anyone exept me ever heard of those classes anyway |
2021-07-29 20:06:18 +0200 | <motle> | anyway, i feel like saying something |
2021-07-29 20:06:31 +0200 | <motle> | the point is im not sure i can write it! |
2021-07-29 20:06:42 +0200 | <motle> | this is the barrier, for the asking for help |
2021-07-29 20:06:45 +0200 | <lechner> | roboguy_: yeah i knew something would be off. maybe applying functions partially also breaks |
2021-07-29 20:07:06 +0200 | <lechner> | roboguy_: don't listen to me. i am new |
2021-07-29 20:07:15 +0200 | <motle> | anyway, machine learning problem asside, this graph at the language seems resounding |
2021-07-29 20:07:37 +0200 | <roboguy_> | lechner: no worries! We were all new at some point! |
2021-07-29 20:07:37 +0200 | <motle> | like enough to not just be a total waste of time for anyone to bother with |
2021-07-29 20:08:00 +0200 | <roboguy_> | motle: are you saying that you want to parse something using a neural network? |
2021-07-29 20:08:17 +0200 | <motle> | thats more of a use case for sake of example |
2021-07-29 20:08:30 +0200 | <motle> | the thing is like a net with type abstraction everywhere |
2021-07-29 20:08:42 +0200 | <motle> | ends up like a program representation |
2021-07-29 20:08:49 +0200 | <motle> | wierdly dynamic |
2021-07-29 20:08:52 +0200 | <lechner> | roboguy_: i love haskell though. where can i get my tattoo :) |
2021-07-29 20:09:12 +0200 | superstar64 | (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) (Quit: Leaving) |
2021-07-29 20:09:28 +0200 | <motle> | just for the graph really, it uses the stencil convolution for data and program evaluation ordering |
2021-07-29 20:09:35 +0200 | <roboguy_> | lechner: haha, not sure! |
2021-07-29 20:10:10 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 256 seconds) |
2021-07-29 20:10:21 +0200 | <lechner> | roboguy_: it would be a giant "λ" ! |
2021-07-29 20:10:24 +0200 | <roboguy_> | motle: hmm, how familiar are you with traditional ways to implement those things? |
2021-07-29 20:10:34 +0200 | <motle> | this is why that example |
2021-07-29 20:10:44 +0200 | <motle> | graph, pointer, stencil? (classes) |
2021-07-29 20:11:11 +0200 | <motle> | roboguy_: well, they dont use tails, its all index edge stuff adjacency matrix no good imo |
2021-07-29 20:11:26 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection) |
2021-07-29 20:11:27 +0200 | <motle> | wants proper hetrogenous like |
2021-07-29 20:12:06 +0200 | <roboguy_> | I mean the stuff you want to replace with stencil convolution |
2021-07-29 20:12:10 +0200 | <motle> | you know what i mean, making it all isomorphic to grpahs with hetrogenous list branches with explicated cycles |
2021-07-29 20:12:27 +0200 | <motle> | roboguy: yeah, things like repa |
2021-07-29 20:12:37 +0200 | <motle> | parallel zips iirc |
2021-07-29 20:12:53 +0200 | <motle> | and the indexing on the fast random access containers |
2021-07-29 20:12:56 +0200 | <motle> | something about idiom |
2021-07-29 20:13:10 +0200 | <motle> | i want an actual extensible datatype |
2021-07-29 20:13:21 +0200 | <motle> | the HList cyclic tree |
2021-07-29 20:13:33 +0200 | <motle> | everythings just that anyway |
2021-07-29 20:13:33 +0200 | <lechner> | Hi, will 'show' convert a UTF-8 ByteString into a String with Unicode code points? |
2021-07-29 20:13:36 +0200 | <roboguy_> | hmm, ok then I think I really don't understand, hah. I haven't seen anyone use repa to implement program evaluation |
2021-07-29 20:14:00 +0200 | <[exa]> | lechner: utf will usually get shown as \u1234 or something |
2021-07-29 20:14:01 +0200 | <motle> | lol, stencil convolutions |
2021-07-29 20:14:10 +0200 | <motle> | matrix stuff, linear algebra |
2021-07-29 20:14:17 +0200 | <motle> | tensors like applicative |
2021-07-29 20:14:59 +0200 | <motle> | you would have a faster implementation if it was block diagonal with 0 elsewhere, typical convolution |
2021-07-29 20:15:01 +0200 | <[exa]> | motle: someone talked about implementing similar stuff here a while ago, actually I think he foudn some solution, you might search the logs |
2021-07-29 20:15:19 +0200 | <roboguy_> | motle: Have you seen Conal Elliott's papers on automatic differentiation and generalized convolution? |
2021-07-29 20:15:32 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Ping timeout: 245 seconds) |
2021-07-29 20:15:43 +0200 | <motle> | logs stop on 21.07.29 |
2021-07-29 20:16:05 +0200 | <motle> | roboguy_: i never got AD, but yeah i tried a bunch |
2021-07-29 20:16:24 +0200 | <[exa]> | yeah that's the migration date, there should be a repo linked with older ones |
2021-07-29 20:16:42 +0200 | <roboguy_> | did you see those papers? I think they'd probably help |
2021-07-29 20:17:17 +0200 | <motle> | anyway, its topological locality, so stencil "foraging" does |
2021-07-29 20:17:17 +0200 | <motle> | its more about the neighbour connectivity as per edges |
2021-07-29 20:17:17 +0200 | <motle> | i mean, in terms of "differentiable datatypes" (SPJ) |
2021-07-29 20:17:17 +0200 | <roboguy_> | they're all about implementing those things nicely in Haskell, leveraging the type system |
2021-07-29 20:17:27 +0200 | <motle> | you get multiple derivatives in cartesian grids |
2021-07-29 20:17:27 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-29 20:17:29 +0200 | <roboguy_> | differentiable datatypes are something else entirely |
2021-07-29 20:17:33 +0200 | <motle> | and something messed up with graphs |
2021-07-29 20:17:45 +0200 | <motle> | but its like a helish topological calculus or something |
2021-07-29 20:17:56 +0200 | <motle> | best just stick with "navigating nearby" |
2021-07-29 20:18:02 +0200 | <motle> | pointers is fine |
2021-07-29 20:18:12 +0200 | <motle> | the comonad really |
2021-07-29 20:18:19 +0200 | <motle> | yeah its the navigable pointer comonad |
2021-07-29 20:18:39 +0200 | <motle> | easyer for us than any "differentiability" |
2021-07-29 20:18:45 +0200 | <motle> | just to get at "local" |
2021-07-29 20:18:58 +0200 | <motle> | topology helps but barely |
2021-07-29 20:19:18 +0200 | <motle> | "neighbourhood" |
2021-07-29 20:19:29 +0200 | <motle> | but we just say convolutional stencil |
2021-07-29 20:20:02 +0200 | <motle> | so its like the convolutional capability of graph pointer comonads? |
2021-07-29 20:21:27 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 20:21:27 +0200 | <motle> | roboguy_: yeah i said idk what AD at all |
2021-07-29 20:21:27 +0200 | <motle> | says it speeds up learning, never saw how, gibberish |
2021-07-29 20:21:36 +0200 | <lechner> | wow, that's like james joyce |
2021-07-29 20:21:38 +0200 | <motle> | was doing 0 derivative stochastic learning for ages too |
2021-07-29 20:21:47 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 20:21:53 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 20:22:13 +0200 | <motle> | some things are just genuinely incomprehensible to me for whatever reason and AD was one of those |
2021-07-29 20:22:16 +0200 | <roboguy_> | motle: automatic differentiation essentially allows you to take the derivative of a function written in a programming language |
2021-07-29 20:22:35 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-29 20:22:45 +0200 | <motle> | yeah, which makes also as much sense by tautology |
2021-07-29 20:22:47 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-29 20:22:52 +0200 | <roboguy_> | what |
2021-07-29 20:23:00 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-29 20:23:10 +0200 | <motle> | AD is program differentiation |
2021-07-29 20:23:16 +0200 | <motle> | ok.... so.... |
2021-07-29 20:23:24 +0200 | <motle> | monads are also burritos! |
2021-07-29 20:23:46 +0200 | <motle> | what does it mean to differentiate a program? |
2021-07-29 20:24:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 20:24:04 +0200 | <roboguy_> | I think you are mixing up two things. Like I said, it is unrelated to the datatype derivative thing |
2021-07-29 20:24:14 +0200 | <motle> | thats what its not so... |
2021-07-29 20:24:23 +0200 | <motle> | what is it!? |
2021-07-29 20:24:27 +0200 | <motle> | idk go read about it |
2021-07-29 20:24:31 +0200 | <motle> | i dont care! |
2021-07-29 20:24:33 +0200 | <janus> | motle: do you also use other social media? i wish to subscribe to your newsletter |
2021-07-29 20:24:54 +0200 | <motle> | really i think AD is just sillyness |
2021-07-29 20:25:09 +0200 | <roboguy_> | For example, if you have a function `f x = 2 * sin x`, then there is a function called `diff` that allows `diff f` to be \z -> 2*cos z |
2021-07-29 20:25:15 +0200 | <motle> | noooo |
2021-07-29 20:25:18 +0200 | <motle> | duh |
2021-07-29 20:25:26 +0200 | <motle> | i know how to differentiate after type restriction |
2021-07-29 20:25:33 +0200 | <motle> | absurd |
2021-07-29 20:25:34 +0200 | <roboguy_> | type restriction? |
2021-07-29 20:25:40 +0200 | <motle> | your doubles |
2021-07-29 20:25:51 +0200 | <juri_> | motle: please be a bit kinder. people are trying to be helpful. :) |
2021-07-29 20:25:52 +0200 | <motle> | i can differentiate that no problem |
2021-07-29 20:25:59 +0200 | <motle> | noo, its not a real concept! |
2021-07-29 20:26:05 +0200 | <motle> | they are skirting this! |
2021-07-29 20:26:21 +0200 | <motle> | its layer upon layer of misdirection *on all the layers* |
2021-07-29 20:26:25 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-07-29 20:26:40 +0200 | <roboguy_> | I think I cannot help very much in this discussion, but I hope you can make progress on your project |
2021-07-29 20:26:48 +0200 | <motle> | "oh, you mean regular differentiation, what were you trying to get me to read about?" |
2021-07-29 20:27:10 +0200 | <motle> | a feux thing exists in the notion of AD and its not your fault and im sorry |
2021-07-29 20:27:18 +0200 | <motle> | but im pissed at AD nonetheless |
2021-07-29 20:27:22 +0200 | <roboguy_> | that's weird |
2021-07-29 20:27:26 +0200 | <motle> | yeah! |
2021-07-29 20:27:41 +0200 | Atum__ | (~IRC@user/atum/x-2392232) |
2021-07-29 20:28:05 +0200 | <motle> | if it wasnt a tautological mess i wouldnt be complaining so... |
2021-07-29 20:28:13 +0200 | <roboguy_> | define "tautology" |
2021-07-29 20:28:13 +0200 | spirit_ | (~spirit@171.61.156.55) |
2021-07-29 20:28:28 +0200 | <motle> | tautologies are like this... |
2021-07-29 20:28:47 +0200 | <motle> | er, wait thats actually a good definition, oh wait no its not... argh |
2021-07-29 20:29:08 +0200 | <motle> | idk what that is, seems badly broken |
2021-07-29 20:29:15 +0200 | echoone | (~echoone@188.74.32.13) |
2021-07-29 20:29:19 +0200 | <motle> | dont make theories like that plz! |
2021-07-29 20:29:27 +0200 | <roboguy_> | tautologies are logical propositions of the form "p implies p" |
2021-07-29 20:29:35 +0200 | <lechner> | tautological mess is a contradiction in terms. with a tautology, you have absolute certainty! |
2021-07-29 20:29:44 +0200 | <motle> | its the fundamental construction of a partially specified stylesheet |
2021-07-29 20:29:53 +0200 | <roboguy_> | hm |
2021-07-29 20:30:04 +0200 | <motle> | you just do model extension putting tautologies everywhere and closing things and then adding decoration |
2021-07-29 20:30:07 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
2021-07-29 20:30:17 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-07-29 20:30:26 +0200 | <motle> | and out comes a half baked category theory!! |
2021-07-29 20:30:34 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-07-29 20:30:40 +0200 | <motle> | its a madness, damn ncatlab |
2021-07-29 20:30:41 +0200 | <juri_> | i'm not convinced this is a conversation. |
2021-07-29 20:31:06 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Ping timeout: 250 seconds) |
2021-07-29 20:31:08 +0200 | <motle> | im just retorting to anyone mistakely trying to vex me with mention of AD |
2021-07-29 20:31:20 +0200 | <lechner> | maybe too much caffeine? |
2021-07-29 20:31:34 +0200 | <motle> | maybe too much prescision nudging! |
2021-07-29 20:32:04 +0200 | <Drew[m]> | <motle> "noo, its not a real concept!" <- I don't understand. Sure that example might be easy, but if you're combining a whole bunch of different differentiable functions it becomes not so easy pretty quickly surely. Why make the programmer do the work if we have the power to make machnes do it in at least some cases. |
2021-07-29 20:32:10 +0200 | <motle> | i was *trying* to talk about tolopogical differentiation of datatypes! |
2021-07-29 20:32:35 +0200 | <motle> | which as far as i can tell (.....) is all thats differentiationay about programs!! |
2021-07-29 20:32:54 +0200 | <motle> | i think AD is a misdirection in of itself, quit throwing things |
2021-07-29 20:33:29 +0200 | <motle> | nobody has demonstrated otherwise! the closest anyone can get is invoking the notion of normal differentiation |
2021-07-29 20:33:49 +0200 | <motle> | i have *actual* topological differention with these convolutional neighberhoods on pointer graph thing |
2021-07-29 20:34:01 +0200 | <motle> | none of your rubbish |
2021-07-29 20:34:16 +0200 | Atum__ | (~IRC@user/atum/x-2392232) (Ping timeout: 258 seconds) |
2021-07-29 20:34:51 +0200 | <motle> | even topology would struggle to get that, so programming really helps here |
2021-07-29 20:35:32 +0200 | <Drew[m]> | Whatever concept of differentiation you're talking about, as far as I can tell automatic differentiation is a thing with a community agreed upon meaning and it's a useful thing and I just don't get why you were speaking ill of a useful thing |
2021-07-29 20:35:38 +0200 | <motle> | i just keep trying to get the class hierarchy, think it was pointer, navigate, comonad |
2021-07-29 20:36:33 +0200 | <motle> | Drew[m]: because sometimes when i try to learn things its just to find out if they are enough of a thing to learn about, or if they do what i think they infer they mean they do |
2021-07-29 20:36:50 +0200 | <motle> | i assumed they meant some kind of differentiation *other* than regular differentiation |
2021-07-29 20:36:55 +0200 | <motle> | apparently not |
2021-07-29 20:36:56 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 252 seconds) |
2021-07-29 20:36:57 +0200 | <roboguy_> | I will say that the combativeness makes it difficult to engage in a discussion. |
2021-07-29 20:37:14 +0200 | <motle> | mate, iv been battling this AD thing for ages |
2021-07-29 20:37:35 +0200 | <motle> | its like, a main avenue of not a thing getting at me |
2021-07-29 20:37:41 +0200 | <Drew[m]> | Why would differentiation mean anything other than the normal sense of differentiating a function |
2021-07-29 20:38:01 +0200 | <motle> | well topology! |
2021-07-29 20:38:05 +0200 | <motle> | position in datatype |
2021-07-29 20:38:05 +0200 | <roboguy_> | I have worked with AD a bit myself. I've worked through that paper I mentioned carefully, read some of the references, looked through other implementations, read the followup paper where some similar techniques are connected to a generalized form of convolution |
2021-07-29 20:38:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-07-29 20:38:38 +0200 | <motle> | how so? |
2021-07-29 20:38:46 +0200 | <roboguy_> | but it feels as though you do not want to hear any more about it. so that is that |
2021-07-29 20:38:48 +0200 | <motle> | i thought they werent allowed to be like differentiable datatypes? |
2021-07-29 20:38:52 +0200 | <motle> | nono |
2021-07-29 20:38:55 +0200 | <roboguy_> | you have made up your mined |
2021-07-29 20:38:56 +0200 | <roboguy_> | *mind |
2021-07-29 20:39:06 +0200 | <motle> | its a contradition, now yours seem topological all of a sudden |
2021-07-29 20:39:07 +0200 | <motle> | wft!? |
2021-07-29 20:39:29 +0200 | <motle> | boomerang of some sort |
2021-07-29 20:39:41 +0200 | <motle> | ok cool, so weer talking about the same thing |
2021-07-29 20:39:45 +0200 | <motle> | so stencils! |
2021-07-29 20:39:50 +0200 | <Drew[m]> | What does differentiation of datatypes even mean |
2021-07-29 20:39:58 +0200 | <motle> | zipper for the nav |
2021-07-29 20:40:10 +0200 | <motle> | presented in the SPJ as a suspended traversal |
2021-07-29 20:40:14 +0200 | <motle> | see a primative pointer |
2021-07-29 20:40:21 +0200 | <motle> | now graphs |
2021-07-29 20:40:28 +0200 | <roboguy_> | Drew[m]: http://strictlypositive.org/diff.pdf |
2021-07-29 20:40:28 +0200 | <motle> | nav |
2021-07-29 20:40:55 +0200 | <motle> | yeah that |
2021-07-29 20:40:58 +0200 | <motle> | thats a zipper |
2021-07-29 20:41:04 +0200 | <EvanR> | e.g. derivative of T^2 is 2*T |
2021-07-29 20:41:07 +0200 | <motle> | its a pointer of some kind see? |
2021-07-29 20:41:17 +0200 | <motle> | comonad follows |
2021-07-29 20:41:34 +0200 | <motle> | right so and then we need a class for many such things |
2021-07-29 20:41:50 +0200 | <motle> | and the nav |
2021-07-29 20:42:19 +0200 | <motle> | fine i guess its called AD whatever |
2021-07-29 20:42:33 +0200 | <motle> | but i never got stencils at the go |
2021-07-29 20:42:39 +0200 | <motle> | this is the API |
2021-07-29 20:43:02 +0200 | <motle> | because finite difference gradient approximations of various orders as common stencil uses |
2021-07-29 20:43:15 +0200 | <motle> | its more like, "because thats how differentiation works" |
2021-07-29 20:43:31 +0200 | <motle> | and the topology stuff is because we have places to put data not continuums of it |
2021-07-29 20:44:03 +0200 | <motle> | easyer to explain in programing actually, maths arent coping with it well - its called sheafification over there |
2021-07-29 20:44:09 +0200 | <motle> | stacks |
2021-07-29 20:44:31 +0200 | <motle> | and the heart of the stack sheaf is the topological neigberhood and constructing sections |
2021-07-29 20:44:47 +0200 | <motle> | which i didnt think was called AD... |
2021-07-29 20:45:00 +0200 | <motle> | but yeah, not records for lenses is how it hits here |
2021-07-29 20:45:20 +0200 | <motle> | regular grids as simple type level specifications for demo |
2021-07-29 20:45:32 +0200 | <lechner> | Hi, why do many people dislike 'printf' in favor of 'putStrLn', please? |
2021-07-29 20:45:38 +0200 | <EvanR> | me |
2021-07-29 20:45:57 +0200 | <EvanR> | oh i thought you said who dislikes printf in favor of putStrLn |
2021-07-29 20:46:29 +0200 | <EvanR> | printf has some good options but building the string yourself gives full control |
2021-07-29 20:46:52 +0200 | <lechner> | do you use ++ or <> ? |
2021-07-29 20:47:13 +0200 | <boxscape> | printf also gives you full control, you just need to use %s :P |
2021-07-29 20:47:17 +0200 | <roboguy_> | lechner: I believe there is, in effect, dynamic typing involved with printf |
2021-07-29 20:47:26 +0200 | <roboguy_> | unless I'm misremembering how the format string works |
2021-07-29 20:47:28 +0200 | <EvanR> | ++ or <>... doesn't matter. But concatting a list is another option |
2021-07-29 20:48:37 +0200 | <EvanR> | > concat ["This time is ", format theTime, " sweetheart"] |
2021-07-29 20:48:38 +0200 | <lambdabot> | error: |
2021-07-29 20:48:38 +0200 | <lambdabot> | • Variable not in scope: format :: t0 -> [Char] |
2021-07-29 20:48:38 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2021-07-29 20:48:48 +0200 | <EvanR> | didn't mean to put > |
2021-07-29 20:48:52 +0200 | <roboguy_> | > printf "%s" True |
2021-07-29 20:48:54 +0200 | <lambdabot> | error: |
2021-07-29 20:48:54 +0200 | <lambdabot> | • Could not deduce (PrintfArg Bool) arising from a use of ‘printf’ |
2021-07-29 20:48:54 +0200 | <lambdabot> | from the context: PrintfType t |
2021-07-29 20:49:03 +0200 | <roboguy_> | > printf "%s" (123 :: Int) |
2021-07-29 20:49:05 +0200 | <lambdabot> | error: |
2021-07-29 20:49:05 +0200 | <lambdabot> | • Ambiguous type variable ‘a0’ arising from a use of ‘show_M693588695403... |
2021-07-29 20:49:05 +0200 | <lambdabot> | prevents the constraint ‘(Show a0)’ from being solved. |
2021-07-29 20:49:22 +0200 | <roboguy_> | that's different than what I get in GHCi... |
2021-07-29 20:49:29 +0200 | <EvanR> | > printf "%s" (123 :: Int) :: String |
2021-07-29 20:49:29 +0200 | <roboguy_> | > printf "%s" (123 :: Int) :: IO () |
2021-07-29 20:49:31 +0200 | <lambdabot> | "*Exception: printf: bad formatting char 's' |
2021-07-29 20:49:31 +0200 | <lambdabot> | <IO ()> |
2021-07-29 20:49:37 +0200 | <roboguy_> | ah, you got it EvanR |
2021-07-29 20:49:51 +0200 | <roboguy_> | there are runtime type errors. that's one big reason you could dislike it |
2021-07-29 20:50:06 +0200 | <roboguy_> | also, you could probably improve the interface so that is impossible... |
2021-07-29 20:50:45 +0200 | <EvanR> | stringing together strings is much more conceptually simplee |
2021-07-29 20:50:47 +0200 | <lechner> | my big issue, as a beginner, is that with putStrLn lines get very long, and right now, my style has some serious problems |
2021-07-29 20:51:01 +0200 | <lechner> | i now use a code formatter |
2021-07-29 20:51:01 +0200 | <EvanR> | if printf works then use it |
2021-07-29 20:51:22 +0200 | <roboguy_> | I usually write putStrLn $ "some text " ++ show x ++ " .... " ++ show y ++ ... |
2021-07-29 20:51:23 +0200 | <lechner> | i will have multiple iterations of this program |
2021-07-29 20:51:49 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-07-29 20:51:54 +0200 | <Drew[m]> | roboguy_: I wouldn't be surprised if there's already a library with type-safe formatting template representation |
2021-07-29 20:52:14 +0200 | <roboguy_> | Drew[m]: same. I feel like I've actually seen one, but I don't quite remember |
2021-07-29 20:52:21 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-07-29 20:52:53 +0200 | <lechner> | i also give imperative name to functions. does that condition have a name. is there a cure? |
2021-07-29 20:53:03 +0200 | <EvanR> | wait |
2021-07-29 20:53:03 +0200 | <lechner> | names |
2021-07-29 20:53:11 +0200 | <EvanR> | i didn't even get a runtime type error |
2021-07-29 20:53:16 +0200 | <EvanR> | > printf "%s" (123 :: Int) :: String |
2021-07-29 20:53:17 +0200 | <lambdabot> | "*Exception: printf: bad formatting char 's' |
2021-07-29 20:53:24 +0200 | <EvanR> | oh i see, no closing " |
2021-07-29 20:53:33 +0200 | tput | (~tim@S0106a84e3fe54613.ed.shawcable.net) (Ping timeout: 268 seconds) |
2021-07-29 20:53:39 +0200 | <Drew[m]> | lechner: Er what's an example of an imperative name? |
2021-07-29 20:53:40 +0200 | <roboguy_> | lechner: imperative names? |
2021-07-29 20:53:51 +0200 | <EvanR> | at first i thought it was a horribad way out of the error |
2021-07-29 20:54:25 +0200 | <lechner> | processTask sendProduct updateTool getTool getConfig |
2021-07-29 20:54:29 +0200 | <EvanR> | function names that happen to be a verb? |
2021-07-29 20:54:49 +0200 | tput | (~tim@S0106a84e3fe54613.ed.shawcable.net) |
2021-07-29 20:55:00 +0200 | <Drew[m]> | If `processTask` processes a task I wouldn't be bothered |
2021-07-29 20:55:10 +0200 | <EvanR> | at least it's not the kingdom of nouns |
2021-07-29 20:55:10 +0200 | <roboguy_> | lechner: those sound fine to me |
2021-07-29 20:55:30 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-29 20:55:33 +0200 | <roboguy_> | in fact, probably what I would use (and often see used in other Haskell projects) |
2021-07-29 20:55:42 +0200 | <EvanR> | NounVerber |
2021-07-29 20:55:48 +0200 | mattil | (~mattilinn@87-92-17-82.bb.dnainternet.fi) (Quit: Leaving) |
2021-07-29 20:55:55 +0200 | <Drew[m]> | taskProcessor would upset me |
2021-07-29 20:56:00 +0200 | <lechner> | used as an imperative. i think English uses plain verb as the imperative |
2021-07-29 20:56:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 20:56:31 +0200 | <EvanR> | what language is your program in |
2021-07-29 20:56:39 +0200 | <roboguy_> | oh, "imperative" in the sense of natural languages like English, not the programming language notion? |
2021-07-29 20:56:41 +0200 | <lechner> | Haskell |
2021-07-29 20:56:49 +0200 | <EvanR> | like, not english? |
2021-07-29 20:56:51 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 20:56:51 +0200 | <lechner> | well, English |
2021-07-29 20:57:22 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 272 seconds) |
2021-07-29 20:58:10 +0200 | <lechner> | sorry, like the AD thing with the other fellow earlier i am fighting the remnants of imperative programming in my mind, or so i think |
2021-07-29 20:58:12 +0200 | <EvanR> | haskell is cool for having a variety of grammatical types... nouns, verbs, prepositions |
2021-07-29 20:58:19 +0200 | <Drew[m]> | When you write `processTask task` what are you doing? Processing a task called `task` |
2021-07-29 20:58:19 +0200 | <Drew[m]> | When you write `taskProcessor task` are you task processoring a task? |
2021-07-29 20:58:27 +0200 | <lechner> | yes |
2021-07-29 20:58:42 +0200 | <lechner> | they are all monadic |
2021-07-29 20:58:48 +0200 | <lechner> | but still |
2021-07-29 20:58:49 +0200 | <EvanR> | send task taskProcessor |
2021-07-29 20:59:38 +0200 | qbt | (~edun@user/edun) |
2021-07-29 20:59:50 +0200 | <EvanR> | taskProcessor <- createThingDoer processTask |
2021-07-29 21:00:58 +0200 | <EvanR> | when you get into non IO monads I can see how not using verbs will confuse people |
2021-07-29 21:01:20 +0200 | <EvanR> | in pure code, non verbs seems more natural |
2021-07-29 21:01:25 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-07-29 21:01:31 +0200 | <roboguy_> | lechner: that all seems fine to me. In general, I wouldn't worry as much about "avoiding doing it the imperative way" and focus more on "doing it the Haskell way" |
2021-07-29 21:01:33 +0200 | <roboguy_> | if that makes sense |
2021-07-29 21:02:00 +0200 | <roboguy_> | sometimes the Haskell way involves some imperative-style stuff. Sometimes it does not |
2021-07-29 21:02:34 +0200 | <Drew[m]> | Imo verbs are fine in pure code. I mean we `map` and `filter` and `sum` do we not? |
2021-07-29 21:02:47 +0200 | <lechner> | this is my second Haskell program. it works just like the Perl version, but my style is terrible. i think i use the wrong entry points to separate the parts https://dpaste.org/RGJQ |
2021-07-29 21:02:50 +0200 | <EvanR> | all three of those could be nouns xD |
2021-07-29 21:02:56 +0200 | <roboguy_> | yeah, without verbs in names it would be very confusing |
2021-07-29 21:02:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 21:03:05 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 265 seconds) |
2021-07-29 21:03:06 +0200 | <Drew[m]> | map, mapped, mapping, sum, summed, summing |
2021-07-29 21:03:11 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 21:03:15 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-07-29 21:03:20 +0200 | <EvanR> | it's unclear if map, filter, or sum ought to be construed as verbs or not |
2021-07-29 21:03:22 +0200 | <EvanR> | to me |
2021-07-29 21:03:37 +0200 | <EvanR> | never even thought about it until now lol |
2021-07-29 21:03:55 +0200 | <Drew[m]> | I read `map x y` as "map x (over) y` |
2021-07-29 21:04:07 +0200 | <EvanR> | sure that's one way to think of it |
2021-07-29 21:04:12 +0200 | <Drew[m]> | What about compose |
2021-07-29 21:04:20 +0200 | <Drew[m]> | we don't call it the composer function |
2021-07-29 21:04:32 +0200 | <Drew[m]> | and we don't think of "a compose" |
2021-07-29 21:04:41 +0200 | <EvanR> | in purely math areas, the math really has nothing to do with grammar |
2021-07-29 21:04:51 +0200 | <EvanR> | compose could just be the name of an operator |
2021-07-29 21:05:03 +0200 | <EvanR> | it could have been known as composition |
2021-07-29 21:05:04 +0200 | <deejaytee> | we think of a composition, though |
2021-07-29 21:05:06 +0200 | ddb | (~ddb@2607:5300:61:c67::196) (Ping timeout: 240 seconds) |
2021-07-29 21:05:06 +0200 | <lechner> | haskell can flow well, though |
2021-07-29 21:06:09 +0200 | <lechner> | conditionals are my other problem. i am kind of Either'ed out |
2021-07-29 21:06:50 +0200 | <EvanR> | a functor for example could be seen as an action that sends things from C to D, or the act of lifting arrows so they can act between categories |
2021-07-29 21:07:06 +0200 | <lechner> | plus, i have poor vision and ten indent levels are too much. maybe i should write shorter functions |
2021-07-29 21:07:18 +0200 | <EvanR> | i rarely have more than 1 or 2 indent levels |
2021-07-29 21:07:25 +0200 | <EvanR> | where clauses can help there |
2021-07-29 21:07:28 +0200 | ddb | (~ddb@2607:5300:61:c67::196) |
2021-07-29 21:07:51 +0200 | <lechner> | that may be hint i needed |
2021-07-29 21:07:54 +0200 | <lechner> | the |
2021-07-29 21:08:46 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 21:09:16 +0200 | <Drew[m]> | Yes you can have a filter, a sum and a map but in the context of `map` wouldn't the correct noun be a mapper or mapping? "A map" as a noun makes me think of atlases more than well... a mapping from input to output |
2021-07-29 21:09:18 +0200 | <echoone> | You guys should check out APL. The take the grammar stuff seriously. |
2021-07-29 21:09:24 +0200 | <echoone> | You guys should check out APL. They take the grammar stuff seriously. |
2021-07-29 21:09:35 +0200 | <dsal> | :t get |
2021-07-29 21:09:36 +0200 | <lambdabot> | MonadState s m => m s |
2021-07-29 21:09:48 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 21:10:07 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 21:10:17 +0200 | <dsal> | You don't need `getX` when you have `gets` |
2021-07-29 21:10:19 +0200 | <dsal> | :t gets |
2021-07-29 21:10:20 +0200 | <lambdabot> | MonadState s m => (s -> a) -> m a |
2021-07-29 21:10:33 +0200 | <Drew[m]> | There's also `traverse`, rather than traversal. |
2021-07-29 21:10:35 +0200 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…) |
2021-07-29 21:10:58 +0200 | <dsal> | :t traversed |
2021-07-29 21:11:00 +0200 | <lambdabot> | (Indexable Int p, Traversable f1, Applicative f2) => p a (f2 b) -> f1 a -> f2 (f1 b) |
2021-07-29 21:11:43 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-29 21:11:45 +0200 | <deejaytee> | echoone: that's been a source of difficulty for me in learning J - while at first parts of speech are useful for remembering what does what, it starts to clash later on |
2021-07-29 21:12:14 +0200 | <EvanR> | map seems a bit ambiguous... probably because this is a purely mathematical idea to me |
2021-07-29 21:12:15 +0200 | <deejaytee> | but I suppose it's better than no terminology whatsoever |
2021-07-29 21:12:22 +0200 | <dsal> | I've seen people get hung up on "how do I read this in English?" Such a weird concept. If I could even express my problems in English, I'd probably do that in the first place. |
2021-07-29 21:12:28 +0200 | <EvanR> | math doesn't really verb anything |
2021-07-29 21:12:51 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2) |
2021-07-29 21:12:54 +0200 | <roboguy_> | EvanR: what about "acting on" |
2021-07-29 21:13:07 +0200 | <roboguy_> | or "pulling back along" |
2021-07-29 21:13:19 +0200 | <EvanR> | right, group action. Sounds like a case of math people trying to get inspiration from language, like us |
2021-07-29 21:13:29 +0200 | <EvanR> | pullback definitely |
2021-07-29 21:13:33 +0200 | <EvanR> | it's verby |
2021-07-29 21:13:40 +0200 | <EvanR> | 'a pullback' lol |
2021-07-29 21:14:04 +0200 | <EvanR> | a case of math terms becoming ambiuously part-of-speeched |
2021-07-29 21:14:37 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) (Quit: Client closed) |
2021-07-29 21:14:49 +0200 | <EvanR> | lens gets a lot of help from adjectives |
2021-07-29 21:15:13 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) |
2021-07-29 21:15:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 21:15:27 +0200 | <EvanR> | but group actions, pullbacks, and lenses still aren't "doing" more or less than anything else |
2021-07-29 21:15:43 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 21:15:44 +0200 | <lechner> | Hi, how do I best print each element of an array on a separate line, prepended by a space, please? |
2021-07-29 21:15:48 +0200 | <dsal> | `map` is also a little weird because you can also think of it as just sort of sticking a transformation on list accessors. It doesn't *actually* build a new list after applying your function to every element in the list. |
2021-07-29 21:15:58 +0200 | <dsal> | lechner: mapM_ print thing |
2021-07-29 21:16:17 +0200 | <dsal> | Oh, if you want to add a space, you can stick one in the action there. |
2021-07-29 21:16:35 +0200 | <EvanR> | yes lazy evaluation makes verbing even less applicable, if you wanted to think of verbs causing the compuer to heat up and do things |
2021-07-29 21:16:36 +0200 | <dsal> | mapM_ (\x -> putStr " " >> print x) thing |
2021-07-29 21:16:38 +0200 | <roboguy_> | :t unlines |
2021-07-29 21:16:39 +0200 | <lambdabot> | [String] -> String |
2021-07-29 21:17:26 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-29 21:17:32 +0200 | <EvanR> | verbs <-> do work |
2021-07-29 21:17:35 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-07-29 21:17:45 +0200 | <dsal> | @undo do work |
2021-07-29 21:17:45 +0200 | <lambdabot> | work |
2021-07-29 21:17:50 +0200 | <dsal> | There's no way out! |
2021-07-29 21:17:52 +0200 | <EvanR> | fix error |
2021-07-29 21:18:38 +0200 | finsternis | (~X@23.226.237.192) (Remote host closed the connection) |
2021-07-29 21:19:04 +0200 | echoone | (~echoone@188.74.32.13) (Quit: Client closed) |
2021-07-29 21:19:12 +0200 | <EvanR> | actually this entire train of thought about programming = a bunch of verbs to make stuff 'happen' in a row might be the initial key thing to tell people to forget when starting haskell |
2021-07-29 21:19:22 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-29 21:20:31 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-07-29 21:20:54 +0200 | <dsal> | The intuition starts to break down with infinite lists, but yeah, it's helpful. It's also helpful when you do stuff like `map f . map g`. If you think about the `map` doing something, it suddenly seems expensive. If you think about it just shoving filters on the thing, you won't spend hours trying to make your code more complicated to do what RULEs can do. |
2021-07-29 21:21:20 +0200 | <Drew[m]> | I'm fine with thinking that `map` "maps a function over a list", that it "does stuff" |
2021-07-29 21:21:20 +0200 | <Drew[m]> | It just only does stuff when the stuff is needed. |
2021-07-29 21:21:56 +0200 | <lechner> | that's another point |
2021-07-29 21:21:57 +0200 | <dsal> | Sure. It's not a bad mental model, but it's not the only mental model. :) |
2021-07-29 21:22:25 +0200 | <EvanR> | you can get pretty far in haskell imagining code running by rewriting expressions |
2021-07-29 21:24:16 +0200 | <EvanR> | which is both an act and an expression of 'what this function means' |
2021-07-29 21:24:51 +0200 | <lechner> | dsal: should your lambda above print the array element (which are of type String) in quotes? |
2021-07-29 21:24:59 +0200 | <lechner> | elements |
2021-07-29 21:25:14 +0200 | <dsal> | lechner: Yeah, that's what `print` does. I wasn't sure what the type was. You can use `putStrLn` |
2021-07-29 21:25:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-29 21:25:29 +0200 | <EvanR> | the second thing there makes it easy to see you could reverse it without causing problems |
2021-07-29 21:25:39 +0200 | <dsal> | lechner: It's good to understand what the parts were. :) |
2021-07-29 21:25:53 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-29 21:25:54 +0200 | <EvanR> | imperative programming often involves doing things that can't be reversed |
2021-07-29 21:26:11 +0200 | <EvanR> | e.g. updating arrays |
2021-07-29 21:27:19 +0200 | <maerwald> | so what's the alternative to brick on windows? |
2021-07-29 21:27:44 +0200 | <lechner> | dsal: could i also write mapM_ (\x -> putStrLn $ " " <> x) ? |
2021-07-29 21:30:25 +0200 | shapr | hops |
2021-07-29 21:31:20 +0200 | <[exa]> | lechner: a complimentary bit of compression: `mapM_ (putStrLn . (' ':) )` |
2021-07-29 21:31:37 +0200 | <Drew[m]> | <EvanR> "you can get pretty far in..." <- Isn't that to a degree what STG does? |
2021-07-29 21:31:43 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) (Quit: Client closed) |
2021-07-29 21:32:04 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) |
2021-07-29 21:32:39 +0200 | <dsal> | lechner: I'll allow it. :) |
2021-07-29 21:32:58 +0200 | <EvanR> | you can think of it like that |
2021-07-29 21:33:16 +0200 | <maerwald> | so how do I use this from haskell https://github.com/migueldeicaza/gui.cs |
2021-07-29 21:33:24 +0200 | <dsal> | lechner: There's mapM_ and forM_ -- I think I've used the latter once. |
2021-07-29 21:33:26 +0200 | <dsal> | :t forM_ |
2021-07-29 21:33:27 +0200 | <lambdabot> | (Foldable t, Monad m) => t a -> (a -> m b) -> m () |
2021-07-29 21:33:33 +0200 | ubert | (~Thunderbi@178.165.190.122.wireless.dyn.drei.com) (Ping timeout: 276 seconds) |
2021-07-29 21:33:55 +0200 | bontaq` | (~user@ool-18e47f8d.dyn.optonline.net) |
2021-07-29 21:34:10 +0200 | jneira_ | (~jneira_@28.red-80-28-169.staticip.rima-tde.net) |
2021-07-29 21:34:28 +0200 | <lechner> | [exa]: so this would be my first point-free, but unfortunately I actually have to prepend muliple characters (" - "). Is that possible? |
2021-07-29 21:34:41 +0200 | <dsal> | lechner: Find out! :) |
2021-07-29 21:34:54 +0200 | <lechner> | with cons? |
2021-07-29 21:35:14 +0200 | <dsal> | Understand what it's doing. There's not much magic there. |
2021-07-29 21:35:23 +0200 | <dsal> | :t (' ':) |
2021-07-29 21:35:25 +0200 | <lambdabot> | [Char] -> [Char] |
2021-07-29 21:35:34 +0200 | <dsal> | :t putStrLn . (' ':) |
2021-07-29 21:35:36 +0200 | <lambdabot> | [Char] -> IO () |
2021-07-29 21:36:11 +0200 | <dsal> | Do you understand sections? |
2021-07-29 21:36:18 +0200 | <lechner> | i am doing it wrong |
2021-07-29 21:36:45 +0200 | <dsal> | You *can* use `:` but it'd be a little weird. |
2021-07-29 21:36:47 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 252 seconds) |
2021-07-29 21:37:13 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-29 21:37:14 +0200 | <lechner> | mapM_ (putStrLn . (" - ":)) (Task.inputs task) gives me No instance for (Data.String.IsString Char) arising from literal |
2021-07-29 21:37:42 +0200 | bontaq` | bontaq |
2021-07-29 21:37:43 +0200 | <dsal> | So, taking a step back. |
2021-07-29 21:37:47 +0200 | <dsal> | :t (" - ":) |
2021-07-29 21:37:48 +0200 | <lambdabot> | [[Char]] -> [[Char]] |
2021-07-29 21:38:07 +0200 | <[exa]> | lechner: you confused "" and '', the second is only a single char that can be prepended with : |
2021-07-29 21:38:10 +0200 | <dsal> | I don't think that's what you want. |
2021-07-29 21:38:25 +0200 | <[exa]> | for strings, you need at least (" -" ++) |
2021-07-29 21:38:44 +0200 | <dsal> | @pl \x -> putStrLn $ " " <> x |
2021-07-29 21:38:44 +0200 | <lambdabot> | putStrLn . (" " <>) |
2021-07-29 21:38:54 +0200 | <lechner> | maybe putStr . (" - " ++) ? |
2021-07-29 21:39:06 +0200 | <dsal> | That's not the most egregious point freedom. |
2021-07-29 21:39:14 +0200 | <dsal> | But you need to understand what it's saying. |
2021-07-29 21:39:54 +0200 | <lechner> | i actually wrote that before seeing [exa]'s response |
2021-07-29 21:39:59 +0200 | <dsal> | > (" - " <>) "dash" |
2021-07-29 21:40:00 +0200 | <lambdabot> | " - dash" |
2021-07-29 21:40:24 +0200 | <[exa]> | lechner: np :] |
2021-07-29 21:40:40 +0200 | alx741 | (~alx741@181.196.69.4) (Ping timeout: 256 seconds) |
2021-07-29 21:42:18 +0200 | chomwitt | (~chomwitt@ppp-94-67-203-142.home.otenet.gr) |
2021-07-29 21:42:45 +0200 | <lechner> | so, perhaps to state the obvious: a lambda with one variable is a partially applied function with one degree of freedom remainig, right? (in beginner's parlance) |
2021-07-29 21:43:52 +0200 | <dsal> | I would say it doesn't make sense to call a function partially applied if it has one argument. |
2021-07-29 21:44:20 +0200 | <dsal> | If a function takes two arguments and you supply one, it's partially applied. |
2021-07-29 21:44:56 +0200 | <dsal> | Sections are a way of specifying that a function that takes two arguments is either partially applied in its first or second argument. |
2021-07-29 21:45:42 +0200 | <dsal> | > . ("¡¡¡" <>) . (<> "!!!") $ "It can do both. |
2021-07-29 21:45:44 +0200 | <lambdabot> | <hint>:1:1: error: parse error on input ‘.’ |
2021-07-29 21:45:45 +0200 | <dsal> | > . ("¡¡¡" <>) . (<> "!!!") $ "It can do both." |
2021-07-29 21:45:47 +0200 | <lambdabot> | <hint>:1:1: error: parse error on input ‘.’ |
2021-07-29 21:45:54 +0200 | <dsal> | > ("¡¡¡" <>) . (<> "!!!") $ "It can do both." |
2021-07-29 21:45:56 +0200 | <lambdabot> | "\161\161\161It can do both.!!!" |
2021-07-29 21:45:57 +0200 | <dsal> | Man, I'm not smart today. |
2021-07-29 21:46:00 +0200 | <dsal> | Also, boo. |
2021-07-29 21:46:06 +0200 | <Drew[m]> | <maerwald> "so how do I use this from..." <- I've never done this before so I'm just learning as I go and probably not telling you what you don't already know but according to stack overflow you can call Haskell from C# by just using Haskell's FFI as you would to make Haskell callable from C, and using C#'s FFI as you would to call a C function. I assume the same idea applies in reverse. |
2021-07-29 21:46:20 +0200 | vicfred | (~vicfred@user/vicfred) (Ping timeout: 258 seconds) |
2021-07-29 21:47:10 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 244 seconds) |
2021-07-29 21:47:33 +0200 | <lechner> | wow, my little program is 18 megabytes! is haskell statically lihked like golang? |
2021-07-29 21:47:53 +0200 | <dminuoso> | lechner: Yes and no. |
2021-07-29 21:48:09 +0200 | <dminuoso> | The haskell object files get statically linked in, but native libraries are dynamically linked |
2021-07-29 21:48:43 +0200 | <dminuoso> | lechner: Try setting `split-sections: True` in your ~/.cabal/config, and then also enable executable stripping in the cabal invocation. |
2021-07-29 21:48:50 +0200 | <dsal> | lechner: You just have room to grow! |
2021-07-29 21:48:55 +0200 | <dminuoso> | Note that this will rebuild all transitive dependencies |
2021-07-29 21:49:00 +0200 | <dsal> | If it's 18MB, you should do 18MB worth of stuff in it. |
2021-07-29 21:49:08 +0200 | <dminuoso> | This can easily get the size down to say 1MiB |
2021-07-29 21:49:21 +0200 | <dsal> | Is it rust that prioritized tiny binaries? |
2021-07-29 21:50:07 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
2021-07-29 21:52:28 +0200 | <delYsid> | Whats the "correct" way to use "at" from the Lens package with a Map where I know the key is present? at foo . to fromJust looks weird :-) |
2021-07-29 21:52:53 +0200 | finsternis | (~X@23.226.237.192) |
2021-07-29 21:52:56 +0200 | <dminuoso> | delYsid: Hard to say what "correct" means without knowing your usage pattern. |
2021-07-29 21:53:02 +0200 | <delYsid> | and ^?! doesnt work. |
2021-07-29 21:53:10 +0200 | <dminuoso> | delYsid: But you can use: at foo . _Just |
2021-07-29 21:53:19 +0200 | <dminuoso> | Consider preview to consume this |
2021-07-29 21:53:21 +0200 | alx741 | (~alx741@181.196.69.85) |
2021-07-29 21:53:43 +0200 | <dminuoso> | % import Data.Map qualified as M |
2021-07-29 21:53:43 +0200 | <yahb> | dminuoso: |
2021-07-29 21:54:49 +0200 | burnside_ | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 21:54:49 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-07-29 21:54:52 +0200 | cjay | (cjay@nerdbox.nerd2nerd.org) |
2021-07-29 21:54:54 +0200 | <dminuoso> | % preview (at "foo" . _Just) (M.fromList [("foo", 1), ("bar", 2)]) |
2021-07-29 21:54:55 +0200 | <yahb> | dminuoso: Just 1 |
2021-07-29 21:55:01 +0200 | <dminuoso> | delYsid: If you can read what yahb just said. |
2021-07-29 21:55:35 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-29 21:55:35 +0200 | burnside_ | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-07-29 21:57:27 +0200 | fendor | (~fendor@178.165.162.84.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-07-29 21:57:31 +0200 | <lechner> | dminuoso: stripping is not on by default? https://cabal.readthedocs.io/en/3.4/cabal-project.html#cfg-field-executable-stripping |
2021-07-29 21:58:49 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-07-29 21:58:50 +0200 | <delYsid> | dminuosoBut now the result is a Just again :-) I was joping to get a pure result, since, I know the key must be present... |
2021-07-29 21:59:52 +0200 | <delYsid> | % view (at "foo" . to fromJust) (M.fromList [("foo", 1), ("bar", 2)]) |
2021-07-29 21:59:52 +0200 | <yahb> | delYsid: 1 |
2021-07-29 22:01:47 +0200 | qbt | (~edun@user/edun) (Ping timeout: 245 seconds) |
2021-07-29 22:02:42 +0200 | fendor | (~fendor@178.165.162.84.wireless.dyn.drei.com) |
2021-07-29 22:02:56 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) |
2021-07-29 22:03:09 +0200 | <amesgen[m]> | % M.fromList [("foo", 1), ("bar", 2)] ^?! ix "foo" |
2021-07-29 22:03:09 +0200 | <yahb> | amesgen[m]: 1 |
2021-07-29 22:03:28 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-29 22:03:42 +0200 | <amesgen[m]> | delYsid: ^ this should be about as succinct as it gets |
2021-07-29 22:07:17 +0200 | <lechner> | dsal [exa] dminuoso roboguy_: thanks so much for your help today! |
2021-07-29 22:08:52 +0200 | <roboguy_> | lechner: you're welcome! |
2021-07-29 22:09:46 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 240 seconds) |
2021-07-29 22:10:04 +0200 | <delYsid> | amesgen[m]: Thanks! This is a bit surprising, as I thought ix only worked for arrays and such... So it actually does work for maps! |
2021-07-29 22:10:56 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 244 seconds) |
2021-07-29 22:11:16 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-07-29 22:13:20 +0200 | <amesgen[m]> | delYsid: yeah, there are many instances, even for functions (by application): https://hackage.haskell.org/package/lens-5.0.1/docs/Control-Lens-At.html#t:Ixed |
2021-07-29 22:17:53 +0200 | jeslie0 | (~user@135-23-172-182.cpe.pppoe.ca) |
2021-07-29 22:18:27 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-07-29 22:18:28 +0200 | <delYsid> | k, tnx |
2021-07-29 22:21:25 +0200 | jeslie0 | (~user@135-23-172-182.cpe.pppoe.ca) (Remote host closed the connection) |
2021-07-29 22:24:26 +0200 | Guest90 | (~Guest90@ip98-163-211-112.no.no.cox.net) |
2021-07-29 22:24:40 +0200 | Guest90 | (~Guest90@ip98-163-211-112.no.no.cox.net) (Client Quit) |
2021-07-29 22:25:01 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Changing host) |
2021-07-29 22:25:01 +0200 | Cajun | (~Cajun@user/cajun) |
2021-07-29 22:25:21 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-29 22:26:34 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-29 22:29:34 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2) |
2021-07-29 22:30:21 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-29 22:30:54 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-07-29 22:31:57 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de) |
2021-07-29 22:34:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-29 22:40:30 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-29 22:41:20 +0200 | <maerwald> | sm: following your advice, I updated the FAQ section of the README, so next time I can just link there |
2021-07-29 22:41:36 +0200 | Guest9 | (~Guest9@103.240.170.208) (Quit: Connection closed) |
2021-07-29 22:42:55 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2021-07-29 22:47:47 +0200 | __monty__ | (~toonn@user/toonn) |
2021-07-29 22:48:38 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-29 22:50:26 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-07-29 22:50:27 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-07-29 22:56:45 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 276 seconds) |
2021-07-29 23:08:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-07-29 23:08:46 +0200 | <sm> | maerwald: +1, that's a time saver. https://gitlab.haskell.org/haskell/ghcup-hs#faq |
2021-07-29 23:08:47 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
2021-07-29 23:09:14 +0200 | <maerwald> | sm: also, earlier you asked about goals: https://gitlab.haskell.org/haskell/ghcup-hs#design-goals |
2021-07-29 23:09:23 +0200 | <sm> | sorry to leave abruptly last night, it was 2am here and we were not getting anywhere |
2021-07-29 23:09:46 +0200 | <sm> | As with the reddit answer, I think more work is needed to make this more compelling/clear. And I understand, it's not easy. |
2021-07-29 23:10:02 +0200 | <maerwald> | what needs to be more clear? |
2021-07-29 23:10:59 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-29 23:14:18 +0200 | <sm> | the answer to "Why should I use ghcup over stack?", eg. The answer doesn't quite answer the question, as in eg "because X" or "you shouldn't" or "it's a wrong question because Y". I feel we have a lot of docs like this in the haskell world which don't quite cut to the point, I have lots myself so I'm interested in this kind of writing. As always, just IMHO and you may disagree with any of it. |
2021-07-29 23:15:04 +0200 | <maerwald[m]> | The answer depends on your needs |
2021-07-29 23:15:12 +0200 | <sm> | yes, indeed |
2021-07-29 23:15:28 +0200 | <sm> | exactly so |
2021-07-29 23:15:42 +0200 | agua | (~agua@2804:18:4f:b157:1:0:6976:119) |
2021-07-29 23:16:33 +0200 | <maerwald[m]> | That's why I don't answer, but explain |
2021-07-29 23:17:11 +0200 | <sm> | I'm particularly interested in the needs of newcomers/folks not well versed in the history of haskell tools. Since they are a much bigger group and how we answer them affects haskell's future |
2021-07-29 23:17:47 +0200 | <sm> | I think our explanations are often not the kind they need |
2021-07-29 23:19:12 +0200 | <maerwald[m]> | They are a much bigger group? |
2021-07-29 23:19:39 +0200 | <sm> | and I think the effort of finding a simple clear answer pays off big time. If we can't provide one, that's valuable information |
2021-07-29 23:19:44 +0200 | pesada | (~agua@2804:14c:8793:8e2f:3944:8017:7f63:8e28) (Ping timeout: 252 seconds) |
2021-07-29 23:20:01 +0200 | <maerwald[m]> | I'd guess the question doesn't come from a newcomer, because it already contains misconceptions |
2021-07-29 23:20:11 +0200 | <sm> | "I'm new to this. Why should I choose it over stack?". I take it at face value. |
2021-07-29 23:21:05 +0200 | <maerwald[m]> | "New to ghcup" or "new to haskell"? |
2021-07-29 23:21:22 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 245 seconds) |
2021-07-29 23:21:29 +0200 | <sm> | either, both |
2021-07-29 23:21:42 +0200 | <maerwald[m]> | No idea |
2021-07-29 23:22:17 +0200 | <maerwald[m]> | Anyway, that seems more like a discussion for a download page |
2021-07-29 23:24:04 +0200 | sheepduck | (~sheepduck@user/sheepduck) |
2021-07-29 23:24:22 +0200 | <maerwald[m]> | I don't think "you should use my tool, because" is something I want in any of my readmes |
2021-07-29 23:24:40 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Read error: Connection reset by peer) |
2021-07-29 23:25:19 +0200 | <sm> | you can answer the question without saying that, as in the examples I gave above |
2021-07-29 23:25:27 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) |
2021-07-29 23:26:06 +0200 | <maerwald[m]> | I think the question is answered |
2021-07-29 23:26:24 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-07-29 23:26:40 +0200 | <motle> | can you do my code for me? |
2021-07-29 23:27:24 +0200 | gentauro | (~gentauro@user/gentauro) |
2021-07-29 23:27:29 +0200 | <maerwald[m]> | motle: what do you pay? |
2021-07-29 23:27:38 +0200 | <motle> | salad? |
2021-07-29 23:28:01 +0200 | <maerwald[m]> | With mozzarella? |
2021-07-29 23:28:10 +0200 | <motle> | youd have to, you know, bring your own |
2021-07-29 23:28:38 +0200 | <motle> | dont try just salad, cheapskates |
2021-07-29 23:28:47 +0200 | <motle> | suplements people, |
2021-07-29 23:30:08 +0200 | <maerwald[m]> | Ok, you pay in supplements? |
2021-07-29 23:30:35 +0200 | <motle> | you can have salad, and you can go elsewhere for your suplements |
2021-07-29 23:31:09 +0200 | <maerwald[m]> | I think I'm out :) |
2021-07-29 23:31:10 +0200 | <motle> | idk if this counts as fair trade or what... |
2021-07-29 23:31:18 +0200 | <motle> | yeah me to! |
2021-07-29 23:31:30 +0200 | <motle> | fucking diet! |
2021-07-29 23:31:50 +0200 | <maerwald[m]> | This isn't Haskell Den :p |
2021-07-29 23:32:06 +0200 | <motle> | you were wanting paid |
2021-07-29 23:32:10 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) (Quit: Connection error?!) |
2021-07-29 23:32:16 +0200 | <motle> | i just wanted codezzzz |
2021-07-29 23:32:27 +0200 | <motle> | all my code is defective |
2021-07-29 23:32:36 +0200 | <motle> | its all strewn |
2021-07-29 23:32:56 +0200 | <motle> | i cant unfurl it |
2021-07-29 23:33:30 +0200 | <motle> | its like trying to play a melting guitar |
2021-07-29 23:34:08 +0200 | pesada | (~agua@191.177.175.57) |
2021-07-29 23:34:32 +0200 | <motle> | idk, i think it might have been important for something, i cant tell |
2021-07-29 23:34:41 +0200 | <roboguy_> | motle: sometimes when that happens to me, I start over. Usually I have fresh insight and come up with a new way to structure the code |
2021-07-29 23:34:42 +0200 | neightchan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-07-29 23:35:04 +0200 | <motle> | yeah, i do that, and i see the universe instantly |
2021-07-29 23:35:19 +0200 | <roboguy_> | hmm |
2021-07-29 23:35:33 +0200 | <motle> | and then all my code kind of evaporates |
2021-07-29 23:36:13 +0200 | <motle> | i mean im like, whatt was the oh the huge graph of everything with the polymorphic loopy bp oh god i cant do that |
2021-07-29 23:36:28 +0200 | <motle> | helpf |
2021-07-29 23:37:06 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-07-29 23:37:10 +0200 | <motle> | *points to years of groundwork dashed about the place* |
2021-07-29 23:37:26 +0200 | <motle> | its the thing! |
2021-07-29 23:37:52 +0200 | <motle> | i had various parts of it working at times... |
2021-07-29 23:37:53 +0200 | agua | (~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 252 seconds) |
2021-07-29 23:38:03 +0200 | <motle> | im sure of it! |
2021-07-29 23:38:18 +0200 | dhil | (~dhil@195.213.192.47) (Ping timeout: 240 seconds) |
2021-07-29 23:38:28 +0200 | <motle> | at what point does it self assemble? |
2021-07-29 23:38:45 +0200 | <motle> | i try googling things and it just ends up more disparate! |
2021-07-29 23:39:38 +0200 | aegon | (~mike@174.127.249.180) |
2021-07-29 23:39:43 +0200 | <motle> | i guess left in this state long enough gona try hitting it with a hammer |
2021-07-29 23:39:50 +0200 | <motle> | at some point! |
2021-07-29 23:39:54 +0200 | <aegon> | is there an easy way to host the haddock generated by stack through a stack command, if not what web server do you use |
2021-07-29 23:40:02 +0200 | <aegon> | or what is your favorite method |
2021-07-29 23:40:14 +0200 | agua | (~agua@2804:18:4f:b157:1:0:6976:119) |
2021-07-29 23:40:57 +0200 | pesada | (~agua@191.177.175.57) (Ping timeout: 258 seconds) |
2021-07-29 23:41:09 +0200 | <arkanoid> | I've almost at the end of my "first week with haskell experiment" and it has been a great experience. But I've some high level question for more experienced users and are more on the production side of haskell |
2021-07-29 23:42:07 +0200 | <motle> | iv tried slopping the code back *into* the cup..... |
2021-07-29 23:42:20 +0200 | <motle> | but most of it isnt in the cup... |
2021-07-29 23:42:42 +0200 | <motle> | is this common? |
2021-07-29 23:42:49 +0200 | <Drew[m]> | aegon: You run your own hoogle server with --local to get a version of hoogle that only provides documentation for the actual version of dependencies you're currently compiling with |
2021-07-29 23:43:07 +0200 | son0p- | (~ff@181.136.122.143) (Remote host closed the connection) |
2021-07-29 23:43:07 +0200 | son0p | (~ff@181.136.122.143) (Remote host closed the connection) |
2021-07-29 23:43:15 +0200 | <Drew[m]> | I'm a cabal user but there's probably a `stack hoogle` command, I can't remember |
2021-07-29 23:43:37 +0200 | <motle> | yeah, your right, there was a command for that |
2021-07-29 23:44:15 +0200 | <arkanoid> | one thing that scares me te most in picking up haskell for a serious project is the fragmentation of the haskell packages. I have no feeling of a center where "big and enstablished" libraries/framework revolves around. When do libraries get "blessed" by the community? When do library dies and gets deprecated? |
2021-07-29 23:44:16 +0200 | <Drew[m]> | So you'd want `stack hoogle --local` probably |
2021-07-29 23:44:48 +0200 | <motle> | arkanoid: the fragmentation does not happen in haskell, only at its boarder |
2021-07-29 23:44:59 +0200 | <motle> | siege! |
2021-07-29 23:45:11 +0200 | <deejaytee> | arkanoid: stackage could sort of be construed as a "big and established" ground, though some of the libraries still are on the small side |
2021-07-29 23:45:14 +0200 | <motle> | might complain to brussles |
2021-07-29 23:45:34 +0200 | <dsal> | arkanoid: That's an interesting concern. But for the most part, I grab things that work for me and use them or make my own. |
2021-07-29 23:45:40 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) (Quit: Client closed) |
2021-07-29 23:45:41 +0200 | <motle> | they say we should get on with the graph |
2021-07-29 23:45:45 +0200 | <maerwald[m]> | Lol |
2021-07-29 23:46:02 +0200 | <dsal> | But yeah, stackage ends up filtering out things that aren't maintained well because language changes end up breaking things and they fall out of stackage if people don't update their stuff. |
2021-07-29 23:46:25 +0200 | <dsal> | (I still end up using things that aren't in stackage for a few reasons, though) |
2021-07-29 23:46:25 +0200 | fluffyballoon | (~fluffybal@pat-verona-h.epic.com) |
2021-07-29 23:47:28 +0200 | <motle> | coffee?? |
2021-07-29 23:47:58 +0200 | spirit_ | (~spirit@171.61.156.55) (Quit: Konversation terminated!) |
2021-07-29 23:47:59 +0200 | <yushyin> | i usually just use libraries I need, ask here for opinions (lots of opinions here) and I (try to) avoid certain authors |
2021-07-29 23:48:16 +0200 | <aegon> | Drew[m]: hoogle --server :) |
2021-07-29 23:48:21 +0200 | <aegon> | thanks! |
2021-07-29 23:48:41 +0200 | <Drew[m]> | Remember the `--local`! |
2021-07-29 23:48:43 +0200 | <arkanoid> | I've just searched a library for testing in a stackage LTS distribution, I get more than 30 different libraries for just testing |
2021-07-29 23:49:04 +0200 | <dsal> | That's not a meaningful thing to do, though. What are you expecting to find? |
2021-07-29 23:49:14 +0200 | <dsal> | Something like tasty? |
2021-07-29 23:49:14 +0200 | <motle> | local hoogle server? |
2021-07-29 23:49:23 +0200 | <motle> | wait... |
2021-07-29 23:49:50 +0200 | <motle> | what about mercurial? |
2021-07-29 23:50:13 +0200 | <motle> | ih god my code! such a mess |
2021-07-29 23:50:18 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-07-29 23:50:54 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:5eb1:ed8e:7709:10d6) (Ping timeout: 272 seconds) |
2021-07-29 23:50:55 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Killed (tungsten.libera.chat (Nickname regained by services))) |
2021-07-29 23:51:00 +0200 | deejaytee | (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) |
2021-07-29 23:51:10 +0200 | <motle> | hang on ill just take its jacobian... |
2021-07-29 23:51:33 +0200 | <sm> | aegon: also `stack haddock --open` |
2021-07-29 23:51:36 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:6be3:99e6:cbd0:482d) |
2021-07-29 23:52:42 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-07-29 23:53:10 +0200 | <motle> | harmonic driving version control is whats required. |
2021-07-29 23:53:19 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-07-29 23:53:25 +0200 | <motle> | i think mine crashed... |
2021-07-29 23:53:55 +0200 | <arkanoid> | if I want to put haskell into my toolbelt as production language, it's required to put haskell on the time-to-write-a-program graph. I have a strong feeling that the fragmentation of the libraries is going to make up most of the problems here |
2021-07-29 23:53:56 +0200 | <motle> | i was hoping you might have seen a wheel rolling by... |
2021-07-29 23:54:22 +0200 | <motle> | dont "time to write a program graph" me sunny jim |
2021-07-29 23:54:27 +0200 | <sm> | arkanoid: hackage is a strong central package store, anything intended to be reused appears there. stackage is the rolling series of stable curated subsets of that. Like debian unstable, testing, stable, or similar |
2021-07-29 23:54:39 +0200 | <dsal> | arkanoid: That sounds good. I've had worse problems with library fragmentation in all the other languages I've used. :) |
2021-07-29 23:55:14 +0200 | <sm> | stackage was the answer to "how to I make this reproducible for production". In recent times, cabal.project is another answer |
2021-07-29 23:55:24 +0200 | <motle> | anyway its not representative, i wasnt even sure i was driving tbh |
2021-07-29 23:55:30 +0200 | <dsal> | My stack default template drops out a project with a lib, app, and test suite in tasty with an example quickcheck property I can run immediately. |
2021-07-29 23:56:20 +0200 | <arkanoid> | apart from new languages where the ecosystem is quite small, among the "big and mature" languages I find haskell the one out of a central control. I'm still talking about the ecosystem, not the implementation itself oviously |
2021-07-29 23:57:18 +0200 | <motle> | advice for people starting learning haskell would be something like "start simple, abstract, keep abstracting - ok enough abstracting!! stop already!! gigs of .hs files, no no no... |
2021-07-29 23:57:53 +0200 | <dsal> | arkanoid: I'm not sure what you mean. What makes something like go or java better in this regard? |
2021-07-29 23:58:09 +0200 | <motle> | its at the point where it goes all styrofoam expanding foam you want to put the cup down |
2021-07-29 23:58:31 +0200 | <motle> | if any of the surfaces are solid |
2021-07-29 23:59:00 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-29 23:59:04 +0200 | <dsal> | go ships with an implementation of quickcheck that's objectively bad and they froze the API over a decade ago. heh |
2021-07-29 23:59:34 +0200 | <arkanoid> | go has google that delivers basically what'ever needed to be productive |
2021-07-29 23:59:45 +0200 | deejaytee | Guest5510 |
2021-07-29 23:59:45 +0200 | Guest5510 | (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) (Killed (sodium.libera.chat (Nickname regained by services))) |
2021-07-29 23:59:49 +0200 | <dsal> | The quickcheck thing I just mentioned is a counter argument to that. |
2021-07-29 23:59:50 +0200 | <motle> | google is a huge productivity inhibitor |
2021-07-29 23:59:50 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-07-29 23:59:55 +0200 | <sm> | go, rust etc. ship one blessed set of tools and everyone's on board with that (or so it appears from the outside). haskell isn't like that, in part because of less corporate support |