2026/04/03

Newest at the top

2026-04-03 02:45:00 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-03 02:45:00 +0000arandombit(~arandombi@2a02:2455:8656:7100:cd4b:38a2:fba4:622b) (Changing host)
2026-04-03 02:45:00 +0000arandombit(~arandombi@2a02:2455:8656:7100:cd4b:38a2:fba4:622b)
2026-04-03 02:44:56 +0000 <mesaoptimizer> ... sorry, that was for davean
2026-04-03 02:44:47 +0000 <mesaoptimizer> EvanR: I disagree about that claim when in a cognitively adverserial environment
2026-04-03 02:44:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-03 02:44:02 +0000 <davean> Yah the obligation is on you to actually think clearly about it.
2026-04-03 02:43:57 +0000 <EvanR> (there's a lot in there that is haskell specific, but as far as groundbreaking insights maybe not many)
2026-04-03 02:43:23 +0000 <EvanR> otherwise don't bother
2026-04-03 02:43:17 +0000 <EvanR> ok if you're going to analyze the article then yeah maybe read it
2026-04-03 02:42:58 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 248 seconds)
2026-04-03 02:42:56 +0000 <mesaoptimizer> so it still stands. It is not specific to Haskell.
2026-04-03 02:42:30 +0000 <mesaoptimizer> Leary: perhaps I misused the word, but my point was about semantic safety, in the sense of Benjamin Pierce's definition in TAPL
2026-04-03 02:42:19 +0000 <EvanR> as you wish
2026-04-03 02:41:16 +0000 <mesaoptimizer> EvanR: not fully, of course. I imagine maybe the author wrote a bunch of bullet points up and then used an LLM to expand upon it. But all right, I'll give the essay another shot and continue reading it
2026-04-03 02:40:40 +0000 <Leary> mesaoptimizer: You expect wrong; people use 'pure' just to mean 'pure'; there's no implicit /by construction/.
2026-04-03 02:40:38 +0000 <EvanR> none it seems especially controversial either
2026-04-03 02:40:25 +0000 <EvanR> tales from tech
2026-04-03 02:40:19 +0000 <EvanR> we've seen reports like this for years
2026-04-03 02:40:00 +0000 <mesaoptimizer> my conclusion is that the essay above is generated using a SOTA LLM, and therefore is adverserially generated to seem insightful, but actually be dangerously wasteful of human time
2026-04-03 02:39:57 +0000 <EvanR> it's classic "dev speak"
2026-04-03 02:39:47 +0000 <EvanR> that article isn't LLM style at all
2026-04-03 02:39:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-03 02:39:19 +0000 <mesaoptimizer> I accept the existence of parts of a language that are delineated such that they do not have semantic safety in terms of abstractions that protect you from the underlying computational substrate
2026-04-03 02:39:18 +0000 <davean> geekosaur: About unsafe stuff
2026-04-03 02:38:46 +0000 <geekosaur> since neither compiler can give you static guarantees, it's on you as programmer using unsafe features to prove that you are actually using them safely
2026-04-03 02:38:40 +0000 <mesaoptimizer> no I get that
2026-04-03 02:37:48 +0000 <geekosaur> this is no different from https://doc.rust-lang.org/book/ch20-01-unsafe-rust.html
2026-04-03 02:37:00 +0000 <mesaoptimizer> reminds me of LLM-generated text, which has triggered similar confusion and dicussion between I and a few of my acquaintances in the past, related to type theory and semantics. I guess its best I abandon reading this essay.
2026-04-03 02:36:39 +0000abbies(~abbies@tilde.guru) (Client Quit)
2026-04-03 02:35:44 +0000 <mesaoptimizer> geekosaur: yeah that is now my current interpretation of it. it does seem quite confusing though
2026-04-03 02:35:05 +0000 <mesaoptimizer> If you say something is pure, I expect that the language *guarantees* the semantics of it being pure, with the exception of the expression using, say, `unsafePerformIO`. Ergo, you cannot call those functions as those where 'the boundary cannot be violated' -- you already broke the semantic safety guarantees!
2026-04-03 02:35:03 +0000 <geekosaur> given what you quoted, I think it's just making the point that, if you know what you're doing, you can hide known-safe uses of unsafe operations inside pure functions
2026-04-03 02:35:01 +0000rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) (Remote host closed the connection)
2026-04-03 02:34:50 +0000abbies(~abbies@tilde.guru)
2026-04-03 02:33:31 +0000 <mesaoptimizer> c_wraith: it seems like it is accurate for runST, if the type system itself guarantees semantic safety, yes. I do think that the claim is almost deliberately confusing when applied to any expression that contains an `unsafe*` expression though.
2026-04-03 02:28:32 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-04-03 02:24:59 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2026-04-03 02:24:17 +0000merijn(~merijn@62.45.136.136) merijn
2026-04-03 02:22:12 +0000squid64(~user@fsf/member/squid64) (Ping timeout: 255 seconds)
2026-04-03 02:17:54 +0000zzz(~zero@user/zero) zero
2026-04-03 02:13:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-04-03 02:10:53 +0000 <EvanR> maybe mesaoptimizer wants to see also SafeHaskell
2026-04-03 02:08:54 +0000 <monochrom> So even sophomores can understand that the negation of "all usages of unsafePerformIO are safe" is not "all usages of unsafePerformIO are unsafe".
2026-04-03 02:08:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-03 02:08:43 +0000zzz(~zero@user/zero) (Ping timeout: 264 seconds)
2026-04-03 02:07:24 +0000 <monochrom> I will start with a conversation I overheard. Two 1st-year students were at a cafe discussing logic homework. The homework question was "what is the negation of: everyone wears glasses?". The students first said "is it: no one wears glasses?" But within 10 seconds, "no, that's not right".
2026-04-03 01:57:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-03 01:56:14 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-04-03 01:53:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn