Newest at the top
2025-01-17 08:14:50 +0100 | tromp | (~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 +0100 | merijn | (~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 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 07:59:16 +0100 | ft | (~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 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2025-01-17 07:54:24 +0100 | acidjnk | (~acidjnk@p200300d6e7283f5200259c07642d77ab.dip0.t-ipconnect.de) acidjnk |
2025-01-17 07:52:39 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-01-17 07:51:57 +0100 | CiaoSen | (~Jura@2a05:5800:2e9:c100:ca4b:d6ff:fec1:99da) CiaoSen |
2025-01-17 07:48:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 07:45:12 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-01-17 07:41:48 +0100 | <homo> | ideally some group would fork hugs and modernize it, as it has ugly practices of the past, take Monad class for example, there is no MonadFail class and fail is part of Monad class |
2025-01-17 07:39:25 +0100 | <homo> | MHSPrelude.hs and MiniPrelude.hs |
2025-01-17 07:38:59 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-01-17 07:37:39 +0100 | <haskellbridge> | <Bowuigi> Wdym "within wrapper"? |
2025-01-17 07:37:37 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2025-01-17 07:36:23 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-01-17 07:35:46 +0100 | <homo> | after runtime is fixed it'll be perfect time for cosmetic changes |
2025-01-17 07:35:21 +0100 | <homo> | anyway, it doesn't really matter as I got entire microhs to compile and my current problem is runtime error |
2025-01-17 07:34:24 +0100 | <homo> | Bowuigi unfortunately it works that way only within wrapper :( |
2025-01-17 07:33:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 07:27:18 +0100 | alp | (~alp@2001:861:8ca0:4940:8a73:f3f6:adcb:ed3) (Ping timeout: 276 seconds) |
2025-01-17 07:27:01 +0100 | euleritian | (~euleritia@dynamic-176-006-139-051.176.6.pool.telefonica.de) |
2025-01-17 07:25:14 +0100 | euleritian | (~euleritia@77.23.250.232) (Ping timeout: 260 seconds) |
2025-01-17 07:24:38 +0100 | res0nat0r0844909 | (~Fletch@falcon.whatbox.ca) (Quit: Ping timeout (120 seconds)) |
2025-01-17 07:22:37 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2025-01-17 07:20:51 +0100 | <Leary> | (the other option is to just use `<|>` on `Maybe`) |
2025-01-17 07:19:24 +0100 | <Leary> | jle`: `Data.Monoid.First` exists for a reason; `Maybe . Data.Semigroup.First` can't just stop at the first `Just`. |
2025-01-17 07:18:03 +0100 | <haskellbridge> | <Bowuigi> homo just provide a wrapper that exports the safe parts of Hugs.Prelude and overimport just in case, that's the best option I can think of rn |
2025-01-17 07:17:42 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 07:14:58 +0100 | _xor | (~xor@ip-66-42-132-175.dynamic.fuse.net) _xor |
2025-01-17 07:12:43 +0100 | _xor | (~xor@ip-66-42-132-175.dynamic.fuse.net) (Quit: Ping timeout (120 seconds)) |
2025-01-17 07:10:34 +0100 | <jle`> | i'm even doing x <> (y <> ...) the good way |
2025-01-17 07:10:08 +0100 | <jle`> | i guess it just compiles better? i would have expected them to end up being the same |
2025-01-17 07:09:52 +0100 | <jle`> | and using Endo . const . Just |
2025-01-17 07:09:42 +0100 | <jle`> | (and applying the second to Nothing) |
2025-01-17 07:09:28 +0100 | <jle`> | huh kind of funny but (<>) for Maybe (First a) seems to be slower than (<>) for Endo (Maybe a) |
2025-01-17 07:07:15 +0100 | alp | (~alp@2001:861:8ca0:4940:8a73:f3f6:adcb:ed3) |
2025-01-17 07:07:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2025-01-17 07:05:56 +0100 | euleritian | (~euleritia@77.23.250.232) |