2025-03-17 00:04:22 +0100 | <jackdk> | I think he means things like https://www.gnu.org/prep/standards/standards.html#Style-of-Change-Logs |
2025-03-17 00:09:26 +0100 | <mauke> | as usual with gnu, that "standard" is nuts |
2025-03-17 00:10:30 +0100 | <mauke> | and (in practical terms) useless as a changes file |
2025-03-17 00:11:59 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-03-17 00:14:28 +0100 | <davean> | mauke: the other one is https://keepachangelog.com/en/1.1.0/ but usually https://common-changelog.org/ which is what most tools process |
2025-03-17 00:14:35 +0100 | <davean> | As I said I dobut anyone does the GNU one. |
2025-03-17 00:14:38 +0100 | <davean> | It is infact dumb |
2025-03-17 00:15:26 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) MyNetAz |
2025-03-17 00:23:35 +0100 | <mauke> | only one of those specifies a format, and it is incompatible with hackage |
2025-03-17 00:24:36 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 00:28:54 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-17 00:32:36 +0100 | <juri_> | there's also a debian changelog specification, for package changelogs. |
2025-03-17 00:36:47 +0100 | <davean> | Oh from memory I thought that was a specification of the GNU one |
2025-03-17 00:41:10 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 268 seconds) |
2025-03-17 00:43:51 +0100 | SoF | (~skius@user/skius) skius |
2025-03-17 00:46:42 +0100 | <juri_> | it's a bit more specialized. https://manpages.debian.org/testing/dpkg-dev/deb-changelog.5.en.html |
2025-03-17 01:01:39 +0100 | SoF | (~skius@user/skius) (Quit: The Lounge - https://thelounge.chat) |
2025-03-17 01:07:44 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 01:10:20 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 01:12:58 +0100 | SoF | (~skius@user/skius) skius |
2025-03-17 01:15:08 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-03-17 01:24:33 +0100 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 245 seconds) |
2025-03-17 01:26:16 +0100 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |
2025-03-17 01:27:33 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f06309b9617c0b564b2.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2025-03-17 01:28:41 +0100 | sprotte24 | (~sprotte24@p200300d16f093b001519da6143e769d5.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-03-17 01:30:34 +0100 | xatirig | (~xatirig@81.215.239.1) (Quit: xatirig) |
2025-03-17 01:33:51 +0100 | werneta | (~werneta@syn-071-083-160-242.res.spectrum.com) werneta |
2025-03-17 01:41:03 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-03-17 01:44:33 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
2025-03-17 01:48:14 +0100 | fris | (sid7259@id-7259.helmsley.irccloud.com) fris |
2025-03-17 01:56:04 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 01:57:55 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) ezzieyguywuf |
2025-03-17 02:00:11 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-17 02:00:37 +0100 | xff0x | (~xff0x@2405:6580:b080:900:3552:f799:4331:aaa8) (Ping timeout: 248 seconds) |
2025-03-17 02:02:29 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-03-17 02:24:12 +0100 | ftzm7 | (~ftzm@085081035209.dynamic.telenor.dk) ftzm |
2025-03-17 02:26:10 +0100 | ftzm | (~ftzm@085081056141.dynamic.telenor.dk) (Ping timeout: 248 seconds) |
2025-03-17 02:26:10 +0100 | ftzm7 | ftzm |
2025-03-17 02:42:08 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 02:42:09 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) (Remote host closed the connection) |
2025-03-17 02:46:58 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-17 02:48:26 +0100 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-03-17 02:49:01 +0100 | myxos | (~myxos@syn-065-028-251-121.res.spectrum.com) myxokephale |
2025-03-17 02:49:09 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) MyNetAz |
2025-03-17 02:49:20 +0100 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
2025-03-17 02:50:23 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 245 seconds) |
2025-03-17 02:56:09 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-03-17 03:02:56 +0100 | <haskellbridge> | <Liamzee> has anyone tried writing Haskell in braces before, besides SPJ? |
2025-03-17 03:04:49 +0100 | mange | (~user@user/mange) (Ping timeout: 260 seconds) |
2025-03-17 03:08:20 +0100 | mange | (~user@user/mange) mange |
2025-03-17 03:08:46 +0100 | bilegeek | (~bilegeek@2600:1008:b041:b61:4489:3f6f:340a:78f6) bilegeek |
2025-03-17 03:17:32 +0100 | euandreh | (~Thunderbi@189.6.105.228) (Ping timeout: 244 seconds) |
2025-03-17 03:18:54 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-03-17 03:19:25 +0100 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
2025-03-17 03:21:06 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2025-03-17 03:22:27 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-17 03:24:25 +0100 | <haskellbridge> | <Liamzee> there's a point to it, since I like treating Haskell as a scripting language and non-idiomatic Haskell, if you're writing in braces you're implying you're being serious and actually caring about engineering quality. But then again, braces aren't that idiomatic either. |
2025-03-17 03:25:38 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-03-17 03:25:38 +0100 | ljdarj1 | ljdarj |
2025-03-17 03:27:53 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 03:27:53 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) (Remote host closed the connection) |
2025-03-17 03:29:34 +0100 | <haskellbridge> | <dmjio> Well braces automatically get inserted after the layout pass, so you might be saving the layout pass some work. |
2025-03-17 03:29:35 +0100 | <haskellbridge> | Now if you wanted to build your own Haskell compiler that only uses braces you could bypass the layout pass (and dreaded parse-error case) |
2025-03-17 03:31:39 +0100 | <monochrom> | I tried that, but that's only when my editor haskell mode was primitive and couldn't do good indentation without braces. |
2025-03-17 03:32:24 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-03-17 03:32:26 +0100 | <haskellbridge> | <Liamzee> So, there's actually a pragmatic reason to use braces in Haskell, simply to make your code compile less than 1% faster. Got it. |
2025-03-17 03:32:43 +0100 | <monochrom> | I am talking about 20 years ago. |
2025-03-17 03:33:00 +0100 | <monochrom> | Today no editor has an issue. Come on this is 2025 already. |
2025-03-17 03:33:16 +0100 | <monochrom> | And with that, also out with "layout means script kiddies". |
2025-03-17 03:34:42 +0100 | <geekosaur> | the popularity of python for scientific programming shoots that one down anyway |
2025-03-17 03:34:53 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) MyNetAz |
2025-03-17 03:35:23 +0100 | <haskellbridge> | <Liamzee> No, but braces are fully supported by GHC and the Haskell report. Optional braces can be used as a means of expressing... something. |
2025-03-17 03:36:15 +0100 | <haskellbridge> | <Liamzee> I mean, you could use braces to indicate prototyping, but that should slow down prototyping, no? But you could make an alternative argument that significant whitespace is idiomatic in Haskell, and stubbornly insisting on braces means you're doing improper Haskell for pragmatic reasons. |
2025-03-17 03:36:50 +0100 | <geekosaur> | or not so pragmatic |
2025-03-17 03:37:05 +0100 | <geekosaur> | imo they make code harder to read (sorry SPJ) |
2025-03-17 03:37:17 +0100 | <geekosaur> | although even SPJ doesn't use braces religiously |
2025-03-17 03:37:26 +0100 | <monochrom> | You're overthinking it. I quit. |
2025-03-17 03:38:31 +0100 | notdabs | (~Owner@2600:1700:69cf:9000:8c4a:1bad:bb61:8f8d) (Read error: Connection reset by peer) |
2025-03-17 03:38:49 +0100 | <monochrom> | "SPJ wears a blue shirt in his picture. There must be either a category theory reason or a software engineering reason!" |
2025-03-17 03:39:14 +0100 | Square | (~Square@user/square) (Ping timeout: 260 seconds) |
2025-03-17 03:39:52 +0100 | <monochrom> | "blue shirt means blue collar right? but is software engineering blue collar? or is category theory blue collar? or is SPJ a burgeous middle class who pretends to befriend blue collars?" |
2025-03-17 03:40:20 +0100 | <haskellbridge> | <dmjio> I think the braces were just to make the syntax context free, to make happy happy |
2025-03-17 03:40:22 +0100 | <int-e> | (it seems that monochrom knows a lot about overthinking) |
2025-03-17 03:40:35 +0100 | Guest23 | (~Guest23@2601:45:500:5c10:39d7:6224:4126:8f39) |
2025-03-17 03:40:36 +0100 | <haskellbridge> | <Liamzee> No, I'm trying to build a prototype of an Upwork clone (major feature: having the lowest fees attached) in Haskell. One of the plans is to have a team that does prototyping as well as a team that does engineering. This would distinguish whether the code is intended to be kept or needs to be eventually rewritten. |
2025-03-17 03:42:14 +0100 | <int-e> | braces are also nice for lazy code generators... and I seem to recall an account that they have an accessibility benefit in connection with screen readers (which IIUC basically skip whitespace) |
2025-03-17 03:43:46 +0100 | <monochrom> | Yeah mechanical output of Haskell code is vastly simpler with {;}. |
2025-03-17 03:44:13 +0100 | <monochrom> | Although, I have only done the opposite: A Haskell program that outputs Java code. :) |
2025-03-17 03:48:31 +0100 | <monochrom> | I don't think you will have any luck enforcing a black-and-white divide between prototyping and production by any means except... The one single success story I ever heard was with entirely two different languages, matlab for prototyping and C++ for production. |
2025-03-17 03:48:50 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-03-17 03:49:21 +0100 | <EvanR> | haskell code fully braced and semicoloned out could indicate you didn't intend for anyone to actually read your code, in which case they could stop reading if they knew this convention, saving time, or if they just hate it |
2025-03-17 03:50:14 +0100 | <EvanR> | it has the advantage of naturally triggering the stop reading reflex without prior agreement |
2025-03-17 03:51:03 +0100 | <monochrom> | I am happy to read {;} code if it also uses layout (doesn't have to strictly follow Haskell layout rules) to help me. Like, I have been reading C like that all my life already. |
2025-03-17 03:51:12 +0100 | <EvanR> | the parsing stage that inserters semicolons and braces still has to run even if you put them |
2025-03-17 03:51:27 +0100 | <int-e> | { IRC does have that effect `on` people; } |
2025-03-17 03:51:28 +0100 | <EvanR> | so I don't know about the performance narrative there |
2025-03-17 03:54:33 +0100 | <haskellbridge> | <Liamzee> well, thanks for the vote of approval, even if the procedure is different: prototype in braces, be serious in traditional layout |
2025-03-17 03:54:43 +0100 | <int-e> | you can't switch back to layout mode inside explicit braces |
2025-03-17 03:55:13 +0100 | <EvanR> | why is your bait so bad |
2025-03-17 03:55:32 +0100 | <int-e> | but the premise that layout has a noticable cost compared to all the other things that the compiler is doing is quite laughable |
2025-03-17 03:56:42 +0100 | <davean> | lol I find the idea of making prototype code visually distinct amusing |
2025-03-17 03:57:25 +0100 | <geekosaur> | unless you count the different-languages thing |
2025-03-17 03:57:29 +0100 | <haskellbridge> | <Liamzee> also, you're more likely to have juniors and people you trained be more used to braces, so it makes things easier for them to adjust to while simultaneously letting everyone know who wrote it |
2025-03-17 03:57:45 +0100 | <geekosaur> | (as I've mentioned before, I've done that oen as well: Prolog prototype, C production) |
2025-03-17 03:58:08 +0100 | <davean> | Liamzee: How many seconds can you honestly expect it to take for people to convert between braces and indentation style? |
2025-03-17 03:58:25 +0100 | <davean> | If it takes over 600 seconds to get comfortable with one from the other I'd be shocked. |
2025-03-17 03:58:41 +0100 | <davean> | I don't think it took me that long |
2025-03-17 03:58:43 +0100 | <haskellbridge> | <Liamzee> 1, 5 if there's a CLI (I think there already is one) that does so automatically |
2025-03-17 03:59:52 +0100 | <haskellbridge> | <Liamzee> and yeah, there are non-haskellers who regularly exclaim their reason for hating Haskell is significant whitespace |
2025-03-17 04:00:49 +0100 | <geekosaur> | do they say the same about Python? about make? if not, I call BS |
2025-03-17 04:00:52 +0100 | <davean> | I didn't say I liked significant whitespace |
2025-03-17 04:00:56 +0100 | <haskellbridge> | <Liamzee> yes, they did as well |
2025-03-17 04:01:19 +0100 | <int-e> | davean: wdym?! everybody loves significant whitespace!!!1eleven |
2025-03-17 04:01:45 +0100 | <davean> | I have very mixed feelings on significant whitespace. It sure isn't hard to move between though |
2025-03-17 04:02:36 +0100 | <haskellbridge> | <Liamzee> anyways, conclusion: braces and semicolons can be used to mark code within a Haskell codebase, what braced code (use parens for pure functions) means is up to you |
2025-03-17 04:03:11 +0100 | <monochrom> | Economically, I would not hire people who spend time exclaiming things instead of getting things done. Like, are you hiring them for programming or are you hiring them for Fox News? |
2025-03-17 04:03:24 +0100 | bilegeek__ | (~bilegeek@2600:1008:b042:764a:da27:cd1a:86b4:69a4) bilegeek |
2025-03-17 04:04:44 +0100 | bilegeek | (~bilegeek@2600:1008:b041:b61:4489:3f6f:340a:78f6) (Ping timeout: 260 seconds) |
2025-03-17 04:05:16 +0100 | Guest16 | (~Guest16@168.92.227.70) |
2025-03-17 04:05:34 +0100 | <davean> | monochrom: I feel Fox News has gotten a lot done. |
2025-03-17 04:06:19 +0100 | Guest16 | (~Guest16@168.92.227.70) (Client Quit) |
2025-03-17 04:13:56 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 04:14:08 +0100 | Guest23 | (~Guest23@2601:45:500:5c10:39d7:6224:4126:8f39) (Quit: Client closed) |
2025-03-17 04:14:28 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-17 04:14:52 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-17 04:16:30 +0100 | <ski> | "I seem to recall an account that they have an accessibility benefit in connection with screen readers" -- yes, there was a blind user here, years ago, who used curly brackets for Haskell |
2025-03-17 04:17:59 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-17 04:41:45 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds) |
2025-03-17 04:42:14 +0100 | poscat0x04 | (~poscat@user/poscat) poscat |
2025-03-17 04:42:33 +0100 | werneta | (~werneta@syn-071-083-160-242.res.spectrum.com) (Quit: Lost terminal) |
2025-03-17 04:42:45 +0100 | poscat | (~poscat@user/poscat) (Ping timeout: 248 seconds) |
2025-03-17 04:58:55 +0100 | bilegeek__ | (~bilegeek@2600:1008:b042:764a:da27:cd1a:86b4:69a4) (Quit: Leaving) |
2025-03-17 05:00:00 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 05:04:15 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
2025-03-17 05:08:24 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2025-03-17 05:09:27 +0100 | tavare | (~tavare@user/tavare) tavare |
2025-03-17 05:18:30 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-03-17 05:22:29 +0100 | <jackdk> | I think they're easier to define canonical formats for than significant whitespace, and you tend to get better parse errors when you mess up. But I like Haskell enough to put up with significant whitespace. |
2025-03-17 05:27:39 +0100 | tabaqui | (~tabaqui@167.71.80.236) (Ping timeout: 252 seconds) |
2025-03-17 05:31:08 +0100 | <haskellbridge> | <dmjio> Does anybody remember the name of that package, the precursor to HLS, except it was a major RAM hog and would lock up your system. |
2025-03-17 05:40:18 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2025-03-17 05:45:24 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 05:46:20 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-03-17 05:47:58 +0100 | <EvanR> | atom |
2025-03-17 05:48:22 +0100 | <Axman6> | ghcide? |
2025-03-17 05:49:02 +0100 | <haskellbridge> | <dmjio> Axman6: pretty sure it was older than that |
2025-03-17 05:49:11 +0100 | <haskellbridge> | <dmjio> "ghc-mod" ! |
2025-03-17 05:49:16 +0100 | <haskellbridge> | <dmjio> right |
2025-03-17 05:49:26 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-17 05:49:28 +0100 | <haskellbridge> | <dmjio> EvanR: could have been this too tbh |
2025-03-17 05:49:42 +0100 | <haskellbridge> | <dmjio> https://hackage.haskell.org/package/ghc-mod |
2025-03-17 05:49:45 +0100 | <haskellbridge> | <dmjio> this guy |
2025-03-17 05:50:20 +0100 | <monochrom> | Yeah, ghc-mod. |
2025-03-17 05:50:40 +0100 | <NewtonTrendy> | cue moan ad |
2025-03-17 05:50:54 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.5.2) |
2025-03-17 05:51:05 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) (Remote host closed the connection) |
2025-03-17 05:51:07 +0100 | <NewtonTrendy> | who am i kidding i dont know what a monad is |
2025-03-17 05:52:31 +0100 | bilegeek__ | (~bilegeek@2600:1008:b08e:bb9c:6d7d:2bd8:d779:bc6e) bilegeek |
2025-03-17 05:54:40 +0100 | michalz | (~michalz@185.246.207.201) |
2025-03-17 05:55:19 +0100 | <EvanR> | an abstraction. Alternatively the type (env ->) is a monad. So if you know what that is you know what "a monad" is |
2025-03-17 05:56:34 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-03-17 05:58:10 +0100 | <haskellbridge> | <dmjio> NewtonTrendy: Anything that can be made a law-abiding instance of Monad, is a Monad 🤷 |
2025-03-17 05:59:56 +0100 | <NewtonTrendy> | . |
2025-03-17 06:02:20 +0100 | <haskellbridge> | <dmjio> You gotta just trust the laws, lots of things are Monads, that are seemingly different ("Maybe", "[]", "((->) a"), "State") but they all have this one thing in common, they obey the monad laws. L/R identity and associativity |
2025-03-17 06:02:45 +0100 | <haskellbridge> | <dmjio> the intuition comes when you manually write out each instance, that's the "proof" of the law, that's not enforced by the compiler |
2025-03-17 06:03:08 +0100 | <haskellbridge> | <dmjio> there's a good blog post on this https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/ |
2025-03-17 06:03:33 +0100 | <haskellbridge> | <dmjio> You gotta just trust the laws, lots of things are Monads, that are seemingly different ("Maybe", "[]", "((->) a"), "State s") but they all have this one thing in common, they obey the monad laws. L/R identity and associativity |
2025-03-17 06:07:17 +0100 | lol_ | (~lol@96.78.87.197) |
2025-03-17 06:09:30 +0100 | jcarpenter2 | (~lol@2603:3016:1e01:b960:ac5c:b821:dffb:b6c1) (Ping timeout: 276 seconds) |
2025-03-17 06:12:09 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-17 06:12:49 +0100 | raym | (~ray@user/raym) raym |
2025-03-17 06:17:36 +0100 | fris | (sid7259@id-7259.helmsley.irccloud.com) () |
2025-03-17 06:25:32 +0100 | tavare | (~tavare@user/tavare) (Remote host closed the connection) |
2025-03-17 06:31:08 +0100 | wildsalander | (~wildsalan@37-136-163-100.rev.dnainternet.fi) |
2025-03-17 06:31:09 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 06:32:22 +0100 | jcarpenter2 | (~lol@2603:3016:1e01:b960:c0f1:1eb8:93b0:299a) |
2025-03-17 06:32:22 +0100 | harveypwca | (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) HarveyPwca |
2025-03-17 06:32:37 +0100 | dtman34 | (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
2025-03-17 06:32:45 +0100 | dtman34_ | (~dtman34@2601:447:d000:1f5e:5ed:4e8c:420f:e376) dtman34 |
2025-03-17 06:33:08 +0100 | lol_ | (~lol@96.78.87.197) (Ping timeout: 244 seconds) |
2025-03-17 06:34:31 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2025-03-17 06:34:54 +0100 | wildsalander | (~wildsalan@37-136-163-100.rev.dnainternet.fi) (Remote host closed the connection) |
2025-03-17 06:35:04 +0100 | wildsalander | (~wildsalan@37-136-163-100.rev.dnainternet.fi) |
2025-03-17 06:35:25 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-17 06:40:19 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) MyNetAz |
2025-03-17 06:42:02 +0100 | bilegeek__ | (~bilegeek@2600:1008:b08e:bb9c:6d7d:2bd8:d779:bc6e) (Quit: Leaving) |
2025-03-17 07:05:05 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-03-17 07:06:44 +0100 | wildsalander | (~wildsalan@37-136-163-100.rev.dnainternet.fi) (Ping timeout: 260 seconds) |
2025-03-17 07:16:53 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 07:17:34 +0100 | takuan | (~takuan@d8D86B601.access.telenet.be) |
2025-03-17 07:21:09 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-03-17 07:26:21 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds) |
2025-03-17 07:26:34 +0100 | euleritian | (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) |
2025-03-17 07:27:02 +0100 | harveypwca | (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) (Quit: Leaving) |
2025-03-17 07:32:26 +0100 | euleritian | (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-03-17 07:33:00 +0100 | euleritian | (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) |
2025-03-17 07:33:26 +0100 | euleritian | (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-03-17 07:33:44 +0100 | euleritian | (~euleritia@95.90.214.149) |
2025-03-17 07:40:46 +0100 | euleritian | (~euleritia@95.90.214.149) (Read error: Connection reset by peer) |
2025-03-17 07:41:32 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) |
2025-03-17 07:49:36 +0100 | duckworld | (~duckworld@user/duckworld) (Read error: Connection reset by peer) |
2025-03-17 07:52:19 +0100 | duckworld | (~duckworld@user/duckworld) duckworld |
2025-03-17 07:53:24 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds) |
2025-03-17 07:54:19 +0100 | euleritian | (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) |
2025-03-17 07:56:34 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 08:00:03 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-03-17 08:01:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-17 08:01:31 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-03-17 08:09:22 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-03-17 08:13:43 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-03-17 08:13:57 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
2025-03-17 08:15:07 +0100 | Lord_of_Life_ | Lord_of_Life |
2025-03-17 08:25:46 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-03-17 08:31:50 +0100 | wildsalander | (~wildsalan@81-175-155-97.bb.dnainternet.fi) |
2025-03-17 08:32:23 +0100 | rvalue- | (~rvalue@user/rvalue) rvalue |
2025-03-17 08:33:38 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 272 seconds) |
2025-03-17 08:37:01 +0100 | rvalue- | rvalue |
2025-03-17 08:42:17 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 08:42:39 +0100 | ash3en | (~Thunderbi@89.56.182.235) ash3en |
2025-03-17 08:46:39 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-17 08:48:46 +0100 | ash3en | (~Thunderbi@89.56.182.235) (Quit: ash3en) |
2025-03-17 08:50:42 +0100 | ft | (~ft@p508db291.dip0.t-ipconnect.de) (Quit: leaving) |
2025-03-17 08:51:46 +0100 | wildsalander | (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Quit: wildsalander) |
2025-03-17 08:51:52 +0100 | ash3en | (~Thunderbi@89.56.182.235) ash3en |
2025-03-17 08:52:01 +0100 | wildsalander | (~wildsalan@81-175-155-97.bb.dnainternet.fi) |
2025-03-17 09:12:26 +0100 | Guest88 | (~Guest88@88-115-11-210.elisa-laajakaista.fi) |
2025-03-17 09:12:47 +0100 | chele | (~chele@user/chele) chele |
2025-03-17 09:17:43 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-03-17 09:27:41 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 09:28:00 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f06309b9617c0b564b2.dip0.t-ipconnect.de) acidjnk |
2025-03-17 09:29:36 +0100 | ash3en | (~Thunderbi@89.56.182.235) (Quit: ash3en) |
2025-03-17 09:29:48 +0100 | Guest88 | (~Guest88@88-115-11-210.elisa-laajakaista.fi) (Quit: Client closed) |
2025-03-17 09:32:18 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 276 seconds) |
2025-03-17 09:35:09 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) (Remote host closed the connection) |
2025-03-17 09:35:58 +0100 | euleritian | (~euleritia@dynamic-176-006-133-186.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-03-17 09:36:17 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) |
2025-03-17 09:42:09 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) MyNetAz |
2025-03-17 09:45:11 +0100 | alp | (~alp@2001:861:8ca0:4940:9fa:1f3a:663a:c7ca) |
2025-03-17 09:53:08 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 09:55:30 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2025-03-17 09:57:05 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-03-17 09:59:22 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-17 10:13:04 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 10:17:45 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-17 10:18:12 +0100 | euandreh | (~Thunderbi@189.6.105.228) euandreh |
2025-03-17 10:20:55 +0100 | Goodbye_Vincent1 | (cyvahl@freakshells.net) (Quit: Ping timeout (120 seconds)) |
2025-03-17 10:23:36 +0100 | euandreh | (~Thunderbi@189.6.105.228) (Read error: Connection reset by peer) |
2025-03-17 10:23:53 +0100 | euandreh | (~Thunderbi@189.6.105.228) euandreh |
2025-03-17 10:24:17 +0100 | Goodbye_Vincent1 | (cyvahl@freakshells.net) Goodbye_Vincent |
2025-03-17 10:24:36 +0100 | fp | (~Thunderbi@wireless-86-50-140-47.open.aalto.fi) fp |
2025-03-17 10:26:29 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2025-03-17 10:29:09 +0100 | fp | (~Thunderbi@wireless-86-50-140-47.open.aalto.fi) (Ping timeout: 260 seconds) |
2025-03-17 10:29:20 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-03-17 10:30:07 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-03-17 10:31:39 +0100 | fp1 | fp |
2025-03-17 10:34:04 +0100 | vicfred | (~vicfred@user/vicfred) vicfred |
2025-03-17 10:35:17 +0100 | vicfred | (~vicfred@user/vicfred) (Client Quit) |
2025-03-17 10:43:12 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
2025-03-17 10:44:21 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-03-17 10:44:56 +0100 | ash3en | (~Thunderbi@89.56.182.235) ash3en |
2025-03-17 10:50:03 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
2025-03-17 10:52:36 +0100 | ash3en | (~Thunderbi@89.56.182.235) (Quit: ash3en) |
2025-03-17 10:54:27 +0100 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-03-17 10:55:18 +0100 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 246 seconds) |
2025-03-17 10:55:32 +0100 | __monty__ | (~toonn@user/toonn) toonn |
2025-03-17 10:59:29 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 11:03:50 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-03-17 11:04:23 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 11:08:59 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
2025-03-17 11:10:53 +0100 | pabs3 | (~pabs3@user/pabs3) (Killed (lithium.libera.chat (Nickname regained by services))) |
2025-03-17 11:11:20 +0100 | pabs3 | (~pabs3@user/pabs3) pabs3 |
2025-03-17 11:12:39 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
2025-03-17 11:16:55 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-03-17 11:19:33 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds) |
2025-03-17 11:20:26 +0100 | dhil | (~dhil@2a0c:b381:52e:3600:833:1adb:9cb7:e851) dhil |
2025-03-17 11:21:00 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 11:29:24 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
2025-03-17 11:33:48 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-03-17 11:36:22 +0100 | fp | (~Thunderbi@130.233.70.204) fp |
2025-03-17 11:37:52 +0100 | wildsalander | (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Quit: wildsalander) |
2025-03-17 11:44:53 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 11:46:45 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-17 11:49:04 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-17 12:02:01 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2025-03-17 12:02:15 +0100 | <dminuoso> | https://paste.tomsmeding.com/IoR9ZvdL <- GHC complains about no module named 'Main', what am I missing? |
2025-03-17 12:02:59 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2025-03-17 12:03:24 +0100 | <Hecate> | dminuoso: Odin.DNS.PT.Main ≠Main |
2025-03-17 12:04:13 +0100 | <dminuoso> | Yes, so? |
2025-03-17 12:04:40 +0100 | <Hecate> | GHC complains that there is no Main |
2025-03-17 12:05:12 +0100 | <Hecate> | dminuoso: I'm not saying you're wrong for having used `main-is` like that, but I'd try and rename this module to `Main` instead of `Odin.DNS.PT.Main` |
2025-03-17 12:05:42 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 12:06:09 +0100 | <dminuoso> | Okay, so maybe I just misremembered, but with main-is I can only specify the path to the main module, but GHC specifically expects it to have `module Main ...`? |
2025-03-17 12:06:15 +0100 | <int-e> | Hecate: doesn't main-is take a module name rather than a file path |
2025-03-17 12:06:54 +0100 | <dminuoso> | int-e: No, https://cabal.readthedocs.io/en/3.4/cabal-package.html#pkg-field-executable-main-is |
2025-03-17 12:07:09 +0100 | <Hecate> | I'll be honest, I never tried to use a Main that wasn't called `Main` |
2025-03-17 12:07:10 +0100 | <dminuoso> | Which incidentally also explicitly says that the module itself *must* be named "Main" |
2025-03-17 12:07:12 +0100 | <dminuoso> | What a strange requirement. |
2025-03-17 12:07:33 +0100 | <Hecate> | I think it's just the filepath, to distinguish between executables in sub-directories |
2025-03-17 12:07:36 +0100 | <dminuoso> | Im guessing there's some builtin linker assumptions here |
2025-03-17 12:07:40 +0100 | <Hecate> | like app/server/Main and app/client/Main |
2025-03-17 12:10:22 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2025-03-17 12:11:28 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 12:11:31 +0100 | euandreh1 | (~Thunderbi@191.222.53.80) euandreh |
2025-03-17 12:11:43 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 12:12:08 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 272 seconds) |
2025-03-17 12:12:27 +0100 | <int-e> | Ah I believe I got confused by this: https://downloads.haskell.org/ghc/latest/docs/users_guide/phases.html#ghc-flag-main-is-thing |
2025-03-17 12:13:51 +0100 | <int-e> | so you can play with ghc-options, put -main-is there, with the actual fully qualified name of the main function |
2025-03-17 12:14:18 +0100 | euandreh | (~Thunderbi@189.6.105.228) (Ping timeout: 268 seconds) |
2025-03-17 12:14:21 +0100 | euandreh1 | euandreh |
2025-03-17 12:14:22 +0100 | <int-e> | well, I think. didn't test it :) |
2025-03-17 12:14:48 +0100 | <int-e> | I did find https://stackoverflow.com/questions/27591266/telling-cabal-where-the-main-module-is which suggests the same thing |
2025-03-17 12:25:00 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 12:26:32 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9913:8179:fb69:5ee5) |
2025-03-17 12:27:13 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
2025-03-17 12:27:43 +0100 | euleritian | (~euleritia@dynamic-176-006-131-024.176.6.pool.telefonica.de) |
2025-03-17 12:28:59 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) alexherbo2 |
2025-03-17 12:29:52 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 265 seconds) |
2025-03-17 12:30:29 +0100 | euandreh1 | (~Thunderbi@189.6.105.228) euandreh |
2025-03-17 12:31:36 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 12:33:15 +0100 | euandreh | (~Thunderbi@191.222.53.80) (Ping timeout: 244 seconds) |
2025-03-17 12:33:15 +0100 | euandreh1 | euandreh |
2025-03-17 12:35:45 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
2025-03-17 12:35:54 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
2025-03-17 12:36:05 +0100 | fp | (~Thunderbi@130.233.70.204) (Read error: Connection reset by peer) |
2025-03-17 12:37:06 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-03-17 12:39:29 +0100 | krei-se | (~krei-se@tmo-102-19.customers.d1-online.com) (Ping timeout: 248 seconds) |
2025-03-17 12:39:43 +0100 | euleritian | (~euleritia@dynamic-176-006-131-024.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-03-17 12:40:00 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) |
2025-03-17 12:41:45 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-03-17 12:44:13 +0100 | drdo | (~drdo@static.61.197.13.49.clients.your-server.de) (Quit: Oh no...) |
2025-03-17 12:44:35 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Quit: fp) |
2025-03-17 12:45:08 +0100 | krei-se | (~krei-se@tmo-113-205.customers.d1-online.com) krei-se |
2025-03-17 12:47:03 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 245 seconds) |
2025-03-17 12:47:10 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 12:47:21 +0100 | drdo | (~drdo@static.61.197.13.49.clients.your-server.de) drdo |
2025-03-17 12:47:57 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 12:48:11 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 12:52:30 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 276 seconds) |
2025-03-17 12:54:20 +0100 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 252 seconds) |
2025-03-17 12:57:30 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2025-03-17 12:57:58 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) |
2025-03-17 13:03:24 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 13:07:56 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-03-17 13:08:46 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
2025-03-17 13:09:06 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-17 13:13:30 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 268 seconds) |
2025-03-17 13:15:38 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 13:16:05 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 13:17:42 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 13:18:20 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 13:22:41 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-03-17 13:23:05 +0100 | yago | (~yago@2a0c:5a82:1708:200:fc72:593c:e87c:8808) |
2025-03-17 13:28:15 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) (Remote host closed the connection) |
2025-03-17 13:28:44 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) alexherbo2 |
2025-03-17 13:30:36 +0100 | Guest88 | (~Guest88@88-115-11-210.elisa-laajakaista.fi) |
2025-03-17 13:31:24 +0100 | kh0d | (~kh0d@89.216.103.150) |
2025-03-17 13:34:09 +0100 | yago | (~yago@2a0c:5a82:1708:200:fc72:593c:e87c:8808) (Ping timeout: 265 seconds) |
2025-03-17 13:36:11 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.1) |
2025-03-17 13:36:24 +0100 | wildsalander | (~wildsalan@81-175-155-97.bb.dnainternet.fi) |
2025-03-17 13:37:50 +0100 | Leary | (~Leary@user/Leary/x-0910699) (Ping timeout: 244 seconds) |
2025-03-17 13:38:05 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2025-03-17 13:38:09 +0100 | wildsalander | (~wildsalan@81-175-155-97.bb.dnainternet.fi) (Client Quit) |
2025-03-17 13:39:54 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
2025-03-17 13:41:37 +0100 | Leary | (~Leary@user/Leary/x-0910699) Leary |
2025-03-17 13:45:09 +0100 | hellwolf | (~user@7608-b384-c200-0dd1-0f00-4d40-07d0-2001.sta.estpak.ee) (Ping timeout: 248 seconds) |
2025-03-17 13:46:36 +0100 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |
2025-03-17 13:47:37 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-03-17 13:47:53 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2025-03-17 13:48:22 +0100 | hellwolf | (~user@248c-27e0-f032-f250-0f00-4d40-07d0-2001.sta.estpak.ee) hellwolf |
2025-03-17 13:51:48 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-03-17 13:53:29 +0100 | Leary | (~Leary@user/Leary/x-0910699) (Ping timeout: 260 seconds) |
2025-03-17 13:56:57 +0100 | wildsalander | (~wildsalan@81-175-155-97.bb.dnainternet.fi) |
2025-03-17 14:00:26 +0100 | Square2 | (~Square4@user/square) Square |
2025-03-17 14:01:07 +0100 | gentauro | (~gentauro@user/gentauro) gentauro |
2025-03-17 14:01:27 +0100 | yago | (~yago@2a0c:5a82:1708:200:38d6:f25b:ed1e:30bd) |
2025-03-17 14:02:54 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2025-03-17 14:03:10 +0100 | Square2 | (~Square4@user/square) (Client Quit) |
2025-03-17 14:03:57 +0100 | Guest88 | (~Guest88@88-115-11-210.elisa-laajakaista.fi) (Quit: Client closed) |
2025-03-17 14:04:31 +0100 | sprotte24 | (~sprotte24@p200300d16f275800a1de62e3bbd83239.dip0.t-ipconnect.de) |
2025-03-17 14:04:37 +0100 | sprotte24 | (~sprotte24@p200300d16f275800a1de62e3bbd83239.dip0.t-ipconnect.de) (Remote host closed the connection) |
2025-03-17 14:05:02 +0100 | Square | (~Square4@user/square) Square |
2025-03-17 14:05:04 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 14:06:24 +0100 | yago | (~yago@2a0c:5a82:1708:200:38d6:f25b:ed1e:30bd) (Ping timeout: 246 seconds) |
2025-03-17 14:07:20 +0100 | mange | (~user@user/mange) (Quit: Zzz...) |
2025-03-17 14:07:38 +0100 | jespada | (~jespada@2800:a4:2271:8a00:794f:8de1:288a:6fe6) jespada |
2025-03-17 14:09:05 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 14:09:12 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
2025-03-17 14:14:33 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 14:15:00 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 14:20:40 +0100 | ash3en | (~Thunderbi@149.222.145.75) ash3en |
2025-03-17 14:31:25 +0100 | tremon | (~tremon@83.80.159.219) tremon |
2025-03-17 14:43:14 +0100 | ash3en | (~Thunderbi@149.222.145.75) (Ping timeout: 252 seconds) |
2025-03-17 14:46:43 +0100 | ash3en | (~Thunderbi@149.222.145.75) ash3en |
2025-03-17 14:50:48 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 14:55:21 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-03-17 14:56:56 +0100 | ash3en | (~Thunderbi@149.222.145.75) (Quit: ash3en) |
2025-03-17 15:04:58 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 15:05:20 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 15:10:57 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) (Remote host closed the connection) |
2025-03-17 15:11:22 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) alexherbo2 |
2025-03-17 15:20:24 +0100 | pounce | (~pounce@user/cute/pounce) (Ping timeout: 260 seconds) |
2025-03-17 15:21:05 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 15:21:27 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 15:22:20 +0100 | pounce | (~pounce@user/cute/pounce) pounce |
2025-03-17 15:37:51 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 15:38:09 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f06309b9617c0b564b2.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-03-17 15:41:57 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-03-17 15:46:09 +0100 | jespada | (~jespada@2800:a4:2271:8a00:794f:8de1:288a:6fe6) (Ping timeout: 246 seconds) |
2025-03-17 15:48:56 +0100 | jespada | (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) jespada |
2025-03-17 15:57:03 +0100 | kh0d | (~kh0d@89.216.103.150) (Remote host closed the connection) |
2025-03-17 15:57:38 +0100 | kh0d | (~kh0d@89.216.103.150) kh0d |
2025-03-17 15:57:42 +0100 | undermine | (~user@user/undermine) undermine |
2025-03-17 15:59:03 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2025-03-17 15:59:08 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-03-17 16:00:12 +0100 | euleritian | (~euleritia@dynamic-176-006-130-213.176.6.pool.telefonica.de) |
2025-03-17 16:01:38 +0100 | harveypwca | (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) HarveyPwca |
2025-03-17 16:03:30 +0100 | kh0d | (~kh0d@89.216.103.150) (Ping timeout: 265 seconds) |
2025-03-17 16:09:51 +0100 | eron | (~eron@177.45.236.226) lidenbrock |
2025-03-17 16:14:54 +0100 | euleritian | (~euleritia@dynamic-176-006-130-213.176.6.pool.telefonica.de) (Ping timeout: 244 seconds) |
2025-03-17 16:15:28 +0100 | euleritian | (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de) |
2025-03-17 16:20:36 +0100 | ystael | (~ystael@user/ystael) (Quit: Lost terminal) |
2025-03-17 16:22:40 +0100 | eron | (~eron@177.45.236.226) (Quit: Client closed) |
2025-03-17 16:22:40 +0100 | ystael | (~ystael@user/ystael) ystael |
2025-03-17 16:22:55 +0100 | notdabs | (~Owner@2600:1700:69cf:9000:d0f2:9051:9f97:5934) |
2025-03-17 16:23:00 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2025-03-17 16:24:14 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 16:26:06 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 272 seconds) |
2025-03-17 16:28:18 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 245 seconds) |
2025-03-17 16:32:57 +0100 | jespada | (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-03-17 16:33:36 +0100 | kh0d | (~kh0d@212.200.181.159) |
2025-03-17 16:38:23 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 16:40:29 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de) acidjnk |
2025-03-17 16:41:38 +0100 | euleritian | (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-03-17 16:44:02 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) |
2025-03-17 16:47:17 +0100 | sprotte24 | (~sprotte24@p200300d16f275800a1de62e3bbd83239.dip0.t-ipconnect.de) |
2025-03-17 16:49:18 +0100 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
2025-03-17 16:50:28 +0100 | euleritian | (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2025-03-17 16:50:51 +0100 | euleritian | (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de) |
2025-03-17 16:56:19 +0100 | euandreh | (~Thunderbi@189.6.105.228) (Quit: euandreh) |
2025-03-17 16:57:37 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds) |
2025-03-17 16:58:26 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2025-03-17 16:59:18 +0100 | Digit | (~user@user/digit) (Ping timeout: 246 seconds) |
2025-03-17 17:00:53 +0100 | jespada | (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) jespada |
2025-03-17 17:02:35 +0100 | harveypwca | (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) (Quit: Leaving) |
2025-03-17 17:09:01 +0100 | Digitteknohippie | Digit |
2025-03-17 17:09:25 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2025-03-17 17:10:39 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 17:15:17 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-17 17:15:30 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-03-17 17:16:13 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3605-d6c6-743a-eb13-80f6-c84d.rev.sfr.net) (Remote host closed the connection) |
2025-03-17 17:16:44 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2025-03-17 17:18:14 +0100 | kh0d | (~kh0d@212.200.181.159) (Remote host closed the connection) |
2025-03-17 17:19:24 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 17:19:38 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 17:26:40 +0100 | <haskellbridge> | <Liamzee> Axman6: Axman6: ghcide seems an appropriate name. |
2025-03-17 17:27:15 +0100 | <haskellbridge> | <Liamzee> also monochrom: I found the guy who hated OOP with a passion, friedbrice on Reddit. |
2025-03-17 17:28:26 +0100 | <haskellbridge> | <Liamzee> Guessing about his circumstances, I think one possible observation is that if your abstractions are bad, not forcing you into productive natural means of design, you have design patterns, and these can be woefully ad-hoc, experimental, and meaningless. |
2025-03-17 17:30:50 +0100 | jespada | (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-03-17 17:30:54 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-03-17 17:32:58 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2025-03-17 17:34:33 +0100 | <EvanR> | I just thought of the stupidest idea |
2025-03-17 17:35:12 +0100 | <EvanR> | the value of a Char is backed by a word, normally can only be used for codepoints |
2025-03-17 17:35:22 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de) acidjnk |
2025-03-17 17:35:53 +0100 | <EvanR> | but if you wanted to process UTF-8 text without fully decoding it, you could map the 1-4 byte code units to a number and put that number in the Char data, looking like gibberish |
2025-03-17 17:36:52 +0100 | <EvanR> | and later stitch it back together for output |
2025-03-17 17:37:46 +0100 | <EvanR> | ok we have better ways to do that, using Word32 or V4 Word8 |
2025-03-17 17:37:50 +0100 | <EvanR> | but what's the fun in that |
2025-03-17 17:38:45 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2025-03-17 17:47:34 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
2025-03-17 17:48:32 +0100 | <haskellbridge> | <Bowuigi> Uh isn't that what base64 does? |
2025-03-17 17:49:50 +0100 | ski | . o O ( "Let Over Lambda - Lisp Is Not Functional" <https://letoverlambda.com/index.cl/guest/chap5.html#sec_1> ) |
2025-03-17 17:53:47 +0100 | <mauke> | that article looks a bit confused |
2025-03-17 17:54:27 +0100 | <mauke> | for example, perl has both infix operators *and* no¹ restrictions on what you can nest |
2025-03-17 17:54:28 +0100 | <ski> | yes |
2025-03-17 17:54:58 +0100 | <mauke> | ¹) well, some restrictions. but you can arbitrarily nest statements and expressions inside each other |
2025-03-17 17:55:00 +0100 | <ski> | not entirely convinced by the macro argument, either |
2025-03-17 17:55:13 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2025-03-17 17:56:24 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 17:57:19 +0100 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 260 seconds) |
2025-03-17 17:59:49 +0100 | <EvanR> | I read the first chapter and thought it was end of it. But it's that my monitor cuts off the monofilament scrollbar UI on the right |
2025-03-17 18:00:33 +0100 | <ski> | only the first section has that title. the next is about something else |
2025-03-17 18:00:37 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-03-17 18:00:38 +0100 | <mauke> | "Any language that uses infix syntax is reducing the possibilities of its abstractions in many ways." ... yeah, call me when common lisp supports ((f x) y) |
2025-03-17 18:01:16 +0100 | <EvanR> | what a bait and switch, I thought it was going to rail against lisp |
2025-03-17 18:01:25 +0100 | <EvanR> | but it's a lisp weenie! |
2025-03-17 18:01:29 +0100 | target_i | (~target_i@user/target-i/x-6023099) target_i |
2025-03-17 18:01:44 +0100 | <EvanR> | "let over lambda" my ass |
2025-03-17 18:02:17 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-03-17 18:03:52 +0100 | euleritian | (~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-03-17 18:03:56 +0100 | jespada | (~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) jespada |
2025-03-17 18:04:10 +0100 | euleritian | (~euleritia@95.90.214.149) |
2025-03-17 18:05:09 +0100 | <ski> | even without macros, things tend to need to be interpreted in context. `(a,b)' in an expression context, means something else than in a type context. in one context `Foo' could be a module, while in another it could be a type constructor, or a data constructor in yet another. in Lisp-2's, like Common Lisp, `(lambda (list) (list list))' is a procedure constructing a singleton list from its input argument |
2025-03-17 18:05:45 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
2025-03-17 18:07:03 +0100 | euleritian | (~euleritia@95.90.214.149) (Read error: Connection reset by peer) |
2025-03-17 18:07:09 +0100 | <mauke> | in a lisp-6 like perl, sub list($list, @list) { my %list = map +($_ => $list), @list; \%list } is perfectly cromulent code |
2025-03-17 18:07:19 +0100 | <ski> | it's correct that you can't just replace `foo' by its definition in `(bar foo)', if `bar' is a macro, which could lead one to want to use e.g. a different bracket syntax for special forms and macro invokations, than for procedure calls |
2025-03-17 18:07:31 +0100 | <ski> | yes |
2025-03-17 18:07:46 +0100 | euleritian | (~euleritia@95.90.214.149) |
2025-03-17 18:08:25 +0100 | <ski> | (or `$(bar [e| foo |])' or somesuch, perchance) |
2025-03-17 18:08:48 +0100 | <EvanR> | different bracket syntax would disturb the parenthetical purity of the lisp syntax |
2025-03-17 18:08:59 +0100 | <c_wraith> | lisp-6 is something I recognize as a joke (lisp-1 vs lisp-2), but I have no idea if it means something specific |
2025-03-17 18:09:24 +0100 | <ski> | Racket already embraces different brackets, albeit only as a stylistic choice |
2025-03-17 18:09:41 +0100 | <ski> | (and, i think, Clojure too, with semantic difference ?) |
2025-03-17 18:09:55 +0100 | <EvanR> | yes clojure ruins the parenthetical purity |
2025-03-17 18:10:02 +0100 | <mauke> | c_wraith: I'd say it's as much as joke as lisp-2 is |
2025-03-17 18:10:04 +0100 | <ski> | presumably six separate namespaces, c_wraith |
2025-03-17 18:10:09 +0100 | <mauke> | s/ as / a / |
2025-03-17 18:10:29 +0100 | <EvanR> | I'd say it's a much a joke a lisp-2 is xD |
2025-03-17 18:10:39 +0100 | <mauke> | I didn't use /g! |
2025-03-17 18:10:41 +0100 | <EvanR> | oh |
2025-03-17 18:10:52 +0100 | <EvanR> | I'd say it's a much as joke as lisp-2 is |
2025-03-17 18:11:01 +0100 | <mauke> | ok, you got me :-) |
2025-03-17 18:11:37 +0100 | <geekosaur> | parentetical purity was already destroyed by interlisp, that horse escaped the barn a long time ago 😛 |
2025-03-17 18:11:39 +0100 | <mauke> | a perl symbol has several different "slots", including SCALAR, ARRAY, HASH, CODE, IO, and FORMAT |
2025-03-17 18:12:01 +0100 | <mauke> | $foo is a scalar, @foo an array, %foo a hash, etc |
2025-03-17 18:12:26 +0100 | <c_wraith> | Oh, yeah. I just actually got around to reading the code portion and it made a lot more sense. |
2025-03-17 18:12:47 +0100 | <c_wraith> | I mean, except insofar as the way perl uses those contexts makes no sense. |
2025-03-17 18:13:17 +0100 | <haskellbridge> | <Liamzee> afaik lisp is about macro programming, except that macro programming has been demonstrated to be a bad idea in many implementations |
2025-03-17 18:14:03 +0100 | <mauke> | sub STDOUT { "hello" } say STDOUT STDOUT; |
2025-03-17 18:14:10 +0100 | <c_wraith> | I remember basic used sigils to identify the types of variables. But the way in which it did so always made more sense to me. |
2025-03-17 18:15:02 +0100 | <mauke> | in 'say STDOUT STDOUT', the first STDOUT refer to the IO slot, the second to the CODE slot |
2025-03-17 18:15:12 +0100 | <mauke> | which is closer to the way (list list) looks (i.e. no sigils) |
2025-03-17 18:15:52 +0100 | <ski> | may i interest you in our lord and saviour, hygienic macros, Liamzee ? |
2025-03-17 18:16:59 +0100 | <haskellbridge> | <Liamzee> the criticism i read was that abuse of macros leads to dsl / edsl disease, where the codebase is too tightly coupled to its developers |
2025-03-17 18:17:31 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2025-03-17 18:17:47 +0100 | <haskellbridge> | <Liamzee> if ergonomic macros are the point of lisp, it's a very bad sign when lisp programmers state "never use a macro when a function will do" |
2025-03-17 18:17:48 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 18:17:54 +0100 | <c_wraith> | I think a better criticism is the loop macro's existence |
2025-03-17 18:18:03 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 18:18:57 +0100 | ski | would dispute the antecedent of the implication |
2025-03-17 18:19:23 +0100 | <EvanR> | that sometimes a macro would work when a function would work is interesting to me |
2025-03-17 18:19:31 +0100 | euleritian | (~euleritia@95.90.214.149) (Read error: Connection reset by peer) |
2025-03-17 18:19:32 +0100 | <EvanR> | like there is overlap in the ideas somehow |
2025-03-17 18:19:33 +0100 | <haskellbridge> | <Bowuigi> Aren't list/apply semantics the point of lisp? |
2025-03-17 18:20:06 +0100 | euleritian | (~euleritia@95.90.214.149) |
2025-03-17 18:20:10 +0100 | <haskellbridge> | <Bowuigi> That's the reason Lisp could get away with clever macros without more recent staging setup |
2025-03-17 18:20:15 +0100 | <EvanR> | assuming purity, are they both like beta reduction |
2025-03-17 18:20:30 +0100 | <c_wraith> | EvanR: have you never seen old C codebases that use #define for functions because they don't trust the compiler to inline? |
2025-03-17 18:20:48 +0100 | <EvanR> | yes |
2025-03-17 18:21:12 +0100 | <EvanR> | what do you mean "old" xD |
2025-03-17 18:21:36 +0100 | <c_wraith> | that's exactly using macros as functions |
2025-03-17 18:21:59 +0100 | <ski> | but yea, re `loop', see "foof-loop: A Simple, Extensible Scheme Looping Facility" by Riastradh at <https://mumble.net/~campbell/scheme/foof-loop.txt>,<https://mumble.net/~campbell/scheme/foof-loop.scm>, which was inpired by "The Anatomy of a Loop: A Story of Scope and Control" by Olin Shivers in 2005-09 at <https://www.ccs.neu.edu/home/shivers/citations.html#loop> |
2025-03-17 18:22:32 +0100 | <ski> | `foof-loop' is much more "Lispy", than the `loop' in Common Lisp, which could be argued to be "anti-Lispy" |
2025-03-17 18:23:16 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 272 seconds) |
2025-03-17 18:23:48 +0100 | <EvanR> | c_wraith, I can sympathize with equivocating between the choice of function call or macro call, because it seems to achieve the same purpose, and even after all this time I don't instantly see all the differences xD |
2025-03-17 18:23:54 +0100 | <c_wraith> | ski: that first link seems to be a 404 |
2025-03-17 18:24:07 +0100 | <mauke> | (do ((list list (cdr list)) ö_ö |
2025-03-17 18:24:19 +0100 | <c_wraith> | oh. because it's two links and I'm trying to paste both at once |
2025-03-17 18:26:03 +0100 | <EvanR> | do DSLs in haskell avoid Liamzee's criticism because there's a common point of contact usually, the idiomatic haskell types |
2025-03-17 18:27:41 +0100 | <EvanR> | or maybe the DSLs that appear are just saner |
2025-03-17 18:27:49 +0100 | <haskellbridge> | <Liamzee> it's not my criticism, it's just something I picked up from HN; and looking at some older and poorer Haskell codebases, Haskell can suffer from eDSL disease. The important thing is to know it exists and actively attempt to avoid it, and it's easier to do with FP than with more powerful, untyped macros |
2025-03-17 18:28:22 +0100 | <haskellbridge> | <Liamzee> %s/FP/typed FP |
2025-03-17 18:29:14 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 268 seconds) |
2025-03-17 18:29:16 +0100 | <c_wraith> | types at least provide some context. |
2025-03-17 18:29:26 +0100 | <haskellbridge> | <Liamzee> but then again, I'm a pointfree addict, so I have no right to talk |
2025-03-17 18:29:59 +0100 | <c_wraith> | the worst abuses in Haskell are when everything is in a lawless class that happens to work magically until you edit something and then inference fails |
2025-03-17 18:31:13 +0100 | <c_wraith> | see https://hackage.haskell.org/package/BASIC |
2025-03-17 18:31:54 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en |
2025-03-17 18:32:20 +0100 | <mauke> | it's also pretty bad if half of your code is fairly generic functions and all the semantics are at the (invisible) type level |
2025-03-17 18:32:56 +0100 | <EvanR> | invisible types? |
2025-03-17 18:33:05 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Client Quit) |
2025-03-17 18:33:53 +0100 | <mauke> | no one writes (print :: Integer -> IO ()) (((+) :: Integer -> Integer -> Integer) (2 :: Integer) (2 :: Integer) :: Integer) :: IO () |
2025-03-17 18:35:07 +0100 | <haskellbridge> | <Liamzee> iirc now custom type error messages are a thing, but i think part of. the problem with that is that it's hard to anticipate what type errors will result and figure out how to write the error messages for them are |
2025-03-17 18:35:22 +0100 | <mauke> | now imagine print (2 + 2), but instead of adding numbers, it fetches data over HTTP (path and parameters specified at the type level), which is implicitly decoded as CSV, whose format is again specified at the type level |
2025-03-17 18:35:47 +0100 | <haskellbridge> | <Liamzee> i spent an hour (and it's my fault) trying to figure out why a HTML sample in Lucid2 was angering GHC |
2025-03-17 18:35:52 +0100 | <mauke> | and there's streaming and lenses involved |
2025-03-17 18:37:04 +0100 | <ski> | "Yow! LOOP macros are LOOPY!" by foof in 2006-09-06 at <https://groups.google.com/g/comp.lang.scheme/c/DLkZdLw1qGw> is also relevant. (foof is the author of a similar, but not quite identical, looping macro package, named `loopy-loop' <https://wiki.call-cc.org/eggref/4/loopy-loop>, as opposed to `foof-loop' by Riastradh <https://wiki.call-cc.org/eggref/4/loopy-loop>) |
2025-03-17 18:37:29 +0100 | <ski> | this is also related to list comprehensions (e.g. <https://srfi.schemers.org/srfi-42/srfi-42.html>), or the (do)/2 construct in ECLiPSe Prolog <https://eclipseclp.org/doc/tutorial/tutorial025.html>,<https://eclipseclp.org/doc/userman/umsroot023.html>, or enumerators / internal iteration vs. cursors / external iteration <https://okmij.org/ftp/papers/LL3-collections-enumerators.txt> |
2025-03-17 18:38:55 +0100 | <EvanR> | is a loop macro... a macro for doing loops |
2025-03-17 18:39:34 +0100 | ski | would like to have typed macros, to be able to have them by-value, rather than by-name (being able to introduce macros for sub-languages implemented by DSL macros, without having to explicitly make your DSL macros integrate with these macro definitions) |
2025-03-17 18:40:26 +0100 | <ski> | (the "types" here would be the "contexts"/"syntactic categories", like "expression","type","pattern","loop clause",&c.) |
2025-03-17 18:41:32 +0100 | <ski> | a macro for, more composably, doing loops, yes, EvanR |
2025-03-17 18:42:27 +0100 | <ski> | (as opposed to explicitly spelling out your recursions, which (in case of tail recursion at least), amount to the same as programming with `goto's, apart from that you can pass parameters) |
2025-03-17 18:43:08 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-17 18:43:51 +0100 | <ski> | the clauses in list comprehensions (generators, guards, "parallel" vs. sequential composition), in Haskell, form a small looping DSL |
2025-03-17 18:44:56 +0100 | <c_wraith> | and remember that you can't use higher-order functions because macros aren't functions. |
2025-03-17 18:45:44 +0100 | <EvanR> | why isn't the looping macro not a macro but a function |
2025-03-17 18:45:50 +0100 | <c_wraith> | (and if you want your loop body or conditions to involve a macro, they won't work) |
2025-03-17 18:46:15 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2025-03-17 18:47:32 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-17 18:49:16 +0100 | Leary | (~Leary@user/Leary/x-0910699) Leary |
2025-03-17 18:50:27 +0100 | tccq | (~user@user/tccq) tccq |
2025-03-17 18:52:06 +0100 | <ski> | EvanR : why isn't list comprehensions a function ? why isn't `case' a function ? |
2025-03-17 18:53:27 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-17 18:53:45 +0100 | Googulator | (~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) |
2025-03-17 18:53:46 +0100 | <ski> | with macros, you can implement your own variable-binding constructs (such as a `case', e.g. .. there's a Scheme library for this). sometimes, you can just pass a lambda abstraction instead. but sometimes you want a more exotic binding structure, which isn't easily captured in such a way (e.g. the paralell composition in list comprehensions, or the `proc' syntax for Arrows) |
2025-03-17 18:56:12 +0100 | <EvanR> | alternative bindings ok |
2025-03-17 18:56:43 +0100 | <EvanR> | that discriminates functions and macros |
2025-03-17 19:00:35 +0100 | Square2 | (~Square@user/square) Square |
2025-03-17 19:04:26 +0100 | Square | (~Square4@user/square) (Ping timeout: 272 seconds) |
2025-03-17 19:07:34 +0100 | pavonia | (~user@user/siracusa) siracusa |
2025-03-17 19:07:42 +0100 | ft | (~ft@p508db291.dip0.t-ipconnect.de) ft |
2025-03-17 19:12:18 +0100 | stureplan | (22e45d5caf@user/stureplan) stureplan |
2025-03-17 19:13:17 +0100 | <haskellbridge> | <dmjio> Is "ghcup" the preferred way to Haskell these days (for non-nix folk) |
2025-03-17 19:14:01 +0100 | driib318 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2025-03-17 19:14:05 +0100 | <haskellbridge> | <Morj> Yes, absolutely |
2025-03-17 19:14:28 +0100 | <haskellbridge> | <Morj> I actually wonder if people still use stack's --install-ghc |
2025-03-17 19:18:21 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |