2024/11/06

Newest at the top

2024-11-06 20:32:32 +0100 <haskellbridge> <Morj> Rust for example specifically has poisoned state to combat panics during inter-thread communication. But with lazyness, exceptions (and poison) can come out any time
2024-11-06 20:30:58 +0100 <haskellbridge> <Morj> Or maybe I misunderstood you. I also have on my mind a problem that Control.Concurrent.Async.waitCatch, and you get a Right x, x can still contain a bottom
2024-11-06 20:30:49 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-11-06 20:30:42 +0100 <geekosaur> I think they are, mostly?
2024-11-06 20:30:24 +0100 <Inst> how would you spawn the async thread in pure code?
2024-11-06 20:29:52 +0100 <haskellbridge> <Morj> Exceptions with forkIO are already not rethrown though?
2024-11-06 20:27:46 +0100 <EvanR> each thread being a microcosm of programming principle
2024-11-06 20:27:31 +0100 <EvanR> but you can file this pattern away under "process pattern"
2024-11-06 20:27:07 +0100 <EvanR> a counter example is you spawned an async thread which may succeed or may crash in whatever unknown way, but you don't want the supervisor thread to crash because of it
2024-11-06 20:27:04 +0100 <geekosaur> lol
2024-11-06 20:26:54 +0100 <sclv> do _not_ turn on automated zfs snapshots for /var/log everyone!
2024-11-06 20:26:03 +0100CoolMa7(~CoolMa7@95.91.137.87) (Quit: My Mac has gone to sleep. ZZZzzz…)
2024-11-06 20:25:39 +0100 <EvanR> provable
2024-11-06 20:25:39 +0100 <statusbot6> Status update: The hackage outage has been traced to a misconfigured zfs snapshot configuration resulting in full disk. This is fixed and hackage is operational again. -- http://status.haskell.org/pages/incident/537c07b0cf1fad5830000093/672bb063281978053cb3d85e
2024-11-06 20:25:25 +0100 <haskellbridge> <Morj> Ughh I had a counterexample for consensus but now I think you're right
2024-11-06 20:25:14 +0100 <Inst> but the absence of effects besides memory and computation, etc, is just really liberating, as well as a "by default" implementation
2024-11-06 20:25:13 +0100 <EvanR> ideally you don't have any for whatever provably reason
2024-11-06 20:24:39 +0100 <EvanR> that is basically the consensus, no one should be catching pure errors
2024-11-06 20:24:14 +0100 <Inst> iirc clean with uniqueness types
2024-11-06 20:24:13 +0100 <haskellbridge> <Morj> It would be ideal if there was a consensus to use errors in pure code like panics in rust, but
2024-11-06 20:24:02 +0100 <Inst> 0 `div` 0
2024-11-06 20:24:00 +0100 <EvanR> haskell solved it several ways historically, but that doesn't mean "it's solved" in general, unless haskell is the only pure functional language ever
2024-11-06 20:23:17 +0100 <Inst> IO type is nice enough, although you can imagine better alternatives (effects imo should be handled within the language as a feature, not as a product of lambda calculus)
2024-11-06 20:23:13 +0100 <haskellbridge> <Morj> Error handling - not really. Exceptions in pure code are a pain if you really want to handle them
2024-11-06 20:22:47 +0100 <Inst> but aren't those mostly solved in modern Haskell?
2024-11-06 20:22:18 +0100 <EvanR> problems like the awkward squad: I/O, error handling, concurrency, and FFI
2024-11-06 20:22:06 +0100 <Inst> not sure whether non-strict can actually include lenient evaluation!
2024-11-06 20:21:58 +0100 <Inst> nonstrict, technically
2024-11-06 20:20:51 +0100 <EvanR> it was basically necessary because of lazyiness
2024-11-06 20:20:43 +0100 <EvanR> that being said purity wasn't an end inof itself
2024-11-06 20:20:23 +0100 <Inst> what new problems?
2024-11-06 20:20:12 +0100 <EvanR> and creates new ones
2024-11-06 20:19:58 +0100 <EvanR> pure or pure-by-default really does solve a lot of things
2024-11-06 20:19:33 +0100 <Inst> and to some extent i'm coming to a realization that FP doesn't make sense without pure-by-default
2024-11-06 20:17:52 +0100 <Inst> Rust, apparently, only has in-program function types via function pointers, not the functions themselves
2024-11-06 20:17:36 +0100 <Inst> just my comment about "purely functional" programming being useful, to eschew the argument, is just that Julia doesn't have function types
2024-11-06 20:16:18 +0100sudden(~cat@user/sudden) sudden
2024-11-06 20:14:38 +0100sudden(~cat@user/sudden) (Ping timeout: 265 seconds)
2024-11-06 20:11:43 +0100 <haskellbridge> <sm> related, https://flora.pm/packages/@hackage/githash is good for git info
2024-11-06 20:09:46 +0100 <haskellbridge> <Morj> At $job we had a script that when doing releases would read version info from several pacakges and prepare it as a haskell module before build
2024-11-06 20:08:18 +0100 <haskellbridge> <Morj> > We provide functionality for reading these numbers from cabal files at both runtime and compile-time :3
2024-11-06 20:07:14 +0100 <haskellbridge> <sm> https://flora.pm/packages/@hackage/package-version I guess
2024-11-06 20:06:00 +0100 <haskellbridge> <sm> Yes, there are ways to get the package version, which I forget
2024-11-06 20:04:52 +0100 <haskellbridge> <Morj> It is a lot better IMO. Still not ideal sadly. Also I liked the old design more ;]
2024-11-06 20:04:40 +0100 <haskellbridge> <sm> setting up a mirror sounds fairly advanced
2024-11-06 20:04:17 +0100 <haskellbridge> <sm> Morj: I hear that. stack's manual is a bit better
2024-11-06 20:04:06 +0100 <haskellbridge> <Morj> Without reading the source files themselves (at build or run time) - no
2024-11-06 20:01:57 +0100ft(~ft@p4fc2a216.dip0.t-ipconnect.de) ft
2024-11-06 20:01:50 +0100 <lxsameer> hey folks, is there any way to get the version number of the project that is set in the cabal file in the haskell code?
2024-11-06 20:00:50 +0100 <haskellbridge> <Morj> Anyway, thanks for advice (=