Newest at the top
2025-01-17 06:48:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 06:46:14 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-01-17 06:43:28 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-01-17 06:37:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2025-01-17 06:35:47 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-01-17 06:34:48 +0100 | <homo> | I don't think it's a good idea to port microhs base without adjusting hugsbase first, and it might be necessary to also adjust hugs interpreter itself before adjusting hugsbase |
2025-01-17 06:30:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 06:30:35 +0100 | <homo> | reading the source code of hugs a lot of modules from base package already use primitives from hugsbase package, but that is not enough to shut name clashes |
2025-01-17 06:26:27 +0100 | <homo> | Bowuigi anyway, those name clashes are very persistent, you either have to use qualified imports or to explicitly shut up Hugs.Prelude, but you don't want to explicitly shut up Hugs.Prelude because code read by ghc and microhs will not compile |
2025-01-17 06:21:13 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-01-17 06:20:09 +0100 | <homo> | also keep in mind libraries that hugs uses are the same libraries that ghc used 20 years ago, so if someone decides to fork hugs, there is a lot of tedious work to keep libraries up-to-date |
2025-01-17 06:20:00 +0100 | michalz | (~michalz@185.246.207.215) |
2025-01-17 06:19:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2025-01-17 06:16:35 +0100 | <homo> | it already reuses some of microhs base library to avoid code duplication, I'd say it's just tedious to patch every individual module, and some modules are extremely tedious because of language extensions |
2025-01-17 06:15:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 06:14:56 +0100 | <haskellbridge> | <Bowuigi> That's so odd, why did they do that. How feasible is porting the microhs base library to Hugs? Using Hugs primitives, ofc |
2025-01-17 06:14:09 +0100 | <homo> | s/it/Hugs.Prelude/ |
2025-01-17 06:13:52 +0100 | <homo> | it also clashes with Data.Foldable and Data.Functor |
2025-01-17 06:13:23 +0100 | <homo> | Hugs.Prelude also clashes with Control.Exception |
2025-01-17 06:12:39 +0100 | <haskellbridge> | <Bowuigi> Diff is your friend here, any changes will stand out |
2025-01-17 06:12:27 +0100 | <homo> | Bowuigi for example, System.IO.Error clashes with Control.Exception |
2025-01-17 06:09:44 +0100 | <homo> | thanks for idea, but I don't remember if I did something else besides removing forall from instance |
2025-01-17 06:08:50 +0100 | <haskellbridge> | <Bowuigi> Also which name clashes? The lack of applicative and functor operators is annoying but that can be solved easily |
2025-01-17 06:08:06 +0100 | dnerdhm^ | (~dnerdhm@108.192.66.114) |
2025-01-17 06:08:05 +0100 | dsrt^ | (~dsrt@108.192.66.114) |
2025-01-17 06:07:49 +0100 | <haskellbridge> | <Bowuigi> Also play with Hugs' options, some may help with the recursion issues you're having |
2025-01-17 06:05:52 +0100 | <haskellbridge> | <Bowuigi> I have no experience with yacc sadly, but some sed/awk could fix your instance forall issues. Just keep the original code around and at build time run a script that replaces "instance forall [^\.]." by just "instance", you don't have to remove them by hand |
2025-01-17 06:05:02 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2025-01-17 06:04:34 +0100 | nschoe | (~nschoe@82-65-202-30.subs.proxad.net) nschoe |
2025-01-17 06:04:28 +0100 | <homo> | another big pain is not just that hugs's libraries are old, there are a lot of annoying name clashes and I have no idea which names to prefer and which to avoid in bootstrap process |
2025-01-17 06:03:52 +0100 | <haskellbridge> | <Bowuigi> Huh? Never seen it crash due to that |
2025-01-17 06:03:18 +0100 | nschoe | (~nschoe@82-65-202-30.subs.proxad.net) (Ping timeout: 245 seconds) |
2025-01-17 06:03:11 +0100 | <homo> | what really needs upgrade in hugs is its memory management, it crashes in deep recursions, making it tricky to have working bootstrap |
2025-01-17 06:02:34 +0100 | <homo> | Bowuigi if you have experience with yacc, there are a lot of syntactic things that you might be able fix to avoid patching so much of microhs's code, but otherwise my interest in hugs is just to have small language to bootstrap bigger language |
2025-01-17 06:01:54 +0100 | web22 | (~00000000@91.sub-75-246-239.myvzw.com) (Client Quit) |
2025-01-17 06:00:32 +0100 | <homo> | hi |
2025-01-17 06:00:17 +0100 | <haskellbridge> | <maerwald> Hi homo |
2025-01-17 06:00:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-17 05:59:20 +0100 | <homo> | I have no experience with yacc and I already failed patching hugs's src/parser.y to support BangPatterns, so instead in my patch I created function "hugsBang" for both hugs, ghc and microhs because I don't want to remove optimization that bang patterns brings |
2025-01-17 05:58:48 +0100 | web22 | (~00000000@91.sub-75-246-239.myvzw.com) |
2025-01-17 05:57:42 +0100 | <haskellbridge> | <Bowuigi> re:microhs-hugs homo ^ |
2025-01-17 05:57:14 +0100 | <haskellbridge> | <Bowuigi> Oh, would it be possible to patch Hugs to allow that? It should just ignore it because the behaviour is the same |
2025-01-17 05:56:38 +0100 | <haskellbridge> | <Bowuigi> re:depTypeExp Oh you don't even need the f, "newtype E = E { unE :: forall r. (forall a. a -> r) -> r }" is a simpler example of this bug |
2025-01-17 05:56:17 +0100 | <homo> | from his own words that is, Lennart said in his presentation that he is lazy |
2025-01-17 05:55:38 +0100 | <homo> | Bowuigi microhs requires "forall" in all declarations because Lennart is lazy to make it optional, so I have 2 copies of same code, first copy is read by hugs and second copy is read by mhs, it's absolutely the same duplicated code |
2025-01-17 05:53:56 +0100 | <haskellbridge> | <Bowuigi> homo Oh I haven't seen that syntax before, Haskell already quantifies variables there so maybe it is a limitation of something else in the bootstrap chain? |
2025-01-17 05:53:24 +0100 | Square2 | (~Square4@user/square) Square |
2025-01-17 05:53:03 +0100 | <haskellbridge> | <Bowuigi> Oh also the depTypeExp issue happens with every System F omega encoded existential, so "newtype Exists f = Ex { unEx :: forall r. (forall a. (f a -> r) -> r) }" is the smallest example of this bug I can think of |
2025-01-17 05:52:33 +0100 | <homo> | Bowuigi for example "data State s a = S (s -> (a, s)); instance forall s . Functor (State s) where" is where I have to remove forall: "data State s a = S (s -> (a, s)); instance Functor (State s) where" |
2025-01-17 05:49:59 +0100 | <haskellbridge> | <Bowuigi> Do you mean something like QuantifiedInstances , like, having "forall a. Eq (f a)" or something like that? |