2025/01/17

Newest at the top

2025-01-17 08:58:13 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-17 08:57:42 +0100 <hololeap> data SomeException = forall e. (Exception e, HasExceptionContext) => SomeException e
2025-01-17 08:56:50 +0100 <hololeap> SomeException in Control.Exceptions is a newtype wrapper that uses the ExistentialQuantification language extension to allow it to wrap any type that's part of the Exception class
2025-01-17 08:55:18 +0100housemate(~housemate@146.70.66.228) housemate
2025-01-17 08:55:13 +0100euleritian(~euleritia@77.23.250.232)
2025-01-17 08:54:56 +0100euleritian(~euleritia@dynamic-176-006-139-051.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-01-17 08:54:46 +0100housemate(~housemate@146.70.66.228) (Remote host closed the connection)
2025-01-17 08:54:33 +0100euleritian(~euleritia@dynamic-176-006-139-051.176.6.pool.telefonica.de)
2025-01-17 08:54:16 +0100euleritian(~euleritia@dynamic-176-006-139-051.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-01-17 08:53:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-17 08:53:24 +0100housemate(~housemate@146.70.66.228) housemate
2025-01-17 08:53:23 +0100 <homo> hm, grepping source code of both microhs and hugs I think I know what throws exception
2025-01-17 08:52:14 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds)
2025-01-17 08:49:40 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-01-17 08:45:57 +0100mange(~user@user/mange) (Ping timeout: 276 seconds)
2025-01-17 08:44:44 +0100 <hololeap> just ignore it if it's not relevant
2025-01-17 08:44:39 +0100 <homo> for async I remember go has some context and instead of throwing exception you simply send message over channel (CSP-style concurrency), wonder if that can simplify things in haskell
2025-01-17 08:44:14 +0100 <hololeap> sorry, I wasn't following the whole conversation
2025-01-17 08:43:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2025-01-17 08:42:40 +0100 <homo> hololeap thanks, it's not clear where Dynamic is used though
2025-01-17 08:41:09 +0100 <homo> Bowuigi because you said I can't skip implementing SomeExpection as Dynamic and throwDyn/catchDyn
2025-01-17 08:38:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-17 08:34:32 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-01-17 08:31:24 +0100vanishingideal(~vanishing@user/vanishingideal) (Remote host closed the connection)
2025-01-17 08:29:06 +0100 <haskellbridge> <Bowuigi> That part is correct
2025-01-17 08:28:55 +0100 <haskellbridge> <Bowuigi> Why would it give a compile time error then?
2025-01-17 08:27:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-17 08:24:27 +0100 <homo> yes, I said so earlier
2025-01-17 08:24:05 +0100 <haskellbridge> <Bowuigi> Exception is a datatype in hugs
2025-01-17 08:23:57 +0100iteratee(~kyle@162.218.222.207)
2025-01-17 08:23:26 +0100iteratee(~kyle@162.218.222.207) (Read error: Connection reset by peer)
2025-01-17 08:23:08 +0100ColinRobinson(~juan@user/JuanDaugherty) (Quit: ColinRobinson)
2025-01-17 08:20:56 +0100 <homo> Bowuigi if that's so it's a puzzle how comes hugs doesn't throw compile-time error because of alias "type SomeException = Exception"
2025-01-17 08:20:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-17 08:14:50 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2025-01-17 08:12:13 +0100 <haskellbridge> <Bowuigi> It's also glue code you can't skip because both exception handling systems are very different
2025-01-17 08:10:30 +0100 <haskellbridge> <Bowuigi> You should be able to create a version of SomeException on Hugs and use throwDyn/catchDyn for flow control, not sure how hard would that be tho
2025-01-17 08:10:23 +0100 <hololeap> homo: there's a decent blog post about ghc exception handling here: https://tech.fpcomplete.com/blog/2018/04/async-exception-handling-haskell/
2025-01-17 08:09:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-17 08:09:12 +0100 <haskellbridge> <Bowuigi> Most of what I know about exceptions comes from reading the source+docs of the two base libraries and the source of smalltt, which uses custom exceptions
2025-01-17 08:07:26 +0100 <homo> I really have no experience with neither of those
2025-01-17 08:06:15 +0100 <haskellbridge> <Bowuigi> Exceptions in Hugs are the built-in, Haskell ones, so custom exception systems built on top of SomeException won't work
2025-01-17 08:05:11 +0100 <haskellbridge> <Bowuigi> As the name implies, they use Dynamic instead of an Exception typeclass
2025-01-17 08:04:37 +0100 <haskellbridge> <Bowuigi> The Hugs equivalent to the modern exception system is "throwDyn" and "catchDyn"
2025-01-17 08:04:05 +0100 <haskellbridge> <Bowuigi> Oh yeah the exception system changed somewhere down the line
2025-01-17 08:02:31 +0100 <homo> but microhs is so fantastic at reporting where that error is coming from that I can't figure out what to do
2025-01-17 08:00:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-17 07:59:16 +0100ft(~ft@p4fc2a354.dip0.t-ipconnect.de) (Quit: leaving)
2025-01-17 07:58:30 +0100 <homo> Bowuigi anyway, that runtime error is an exception raised by microhs, there is also a significant difference that in hugs it's "data Exception = ..." while in microhs it's "class Exception e where", furthermore because of name clashes I have no idea from which module to import "catch" and "try", and I am lucky that "type SomeException = Exception" even works
2025-01-17 07:56:23 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)