2024/12/28

Newest at the top

2024-12-28 02:05:27 +0100euleritian(~euleritia@dynamic-176-006-141-001.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-28 02:03:11 +0100 <haskellbridge> <Bowuigi> "tr'd xs = go xs "" where go [] = id; go ('!':xs) = go xs; go (x:xs) = (x:) . go xs"
2024-12-28 01:59:50 +0100 <haskellbridge> <Bowuigi> geekosaur it might be faster to use a Cayley-ish abstraction
2024-12-28 01:57:58 +0100 <homo> sed s/!//g
2024-12-28 01:57:21 +0100 <geekosaur> faster wouuld be to prepend to ys and reverse it at the end
2024-12-28 01:57:06 +0100 <geekosaur> tr'd xs = go xs "" where go [] ys = ys; go ('!':xs) ys = go xs ys; go (x:xs) = go xs (ys ++ [x])
2024-12-28 01:56:26 +0100Sisyphean(~Sisyphean@user/Sisyphean) Sisyphean
2024-12-28 01:56:23 +0100 <homo> this is why I'm trying to figure out how to add bangpatterns to hugs instead of removing every ! from microhs's code
2024-12-28 01:56:01 +0100 <c_wraith> you could always use seq directly.
2024-12-28 01:55:38 +0100 <geekosaur> uh, no
2024-12-28 01:55:33 +0100 <homo> Bowuigi I don't want to do that because bangpatterns are very important for optimization, they might even prevent hugs from segfaulting
2024-12-28 01:55:07 +0100Sisyphean(~Sisyphean@user/Sisyphean) (Read error: Connection reset by peer)
2024-12-28 01:54:57 +0100 <geekosaur> tr'd [] = []; tr'd ('!':xs) = tr'd xs
2024-12-28 01:54:35 +0100 <homo> speaking of smaller, https://github.com/blynn/compiler is an interesting quest where minimal compiler written in C compiles tiny subset of haskell, so next compiler is written in that tiny subset to implement bigger subset, then another compiler is written in bigger subset...
2024-12-28 01:53:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-28 01:52:59 +0100 <haskellbridge> <Bowuigi> "tr -d '!'" on Linux/POSIX
2024-12-28 01:52:35 +0100 <haskellbridge> <Bowuigi> Hmmm would a simple text replacement command deleting every ! work?
2024-12-28 01:51:42 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 276 seconds)
2024-12-28 01:49:14 +0100 <homo> microhs is the only hope to bootstrap ghc, as unfortunately ghc maintainers have no interest to make ghc buildable with smaller haskell implementations :(
2024-12-28 01:48:46 +0100 <haskellbridge> <Bowuigi> A similar thing can be done at the type level, tho it doesn't look like that
2024-12-28 01:48:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-28 01:48:09 +0100 <haskellbridge> <Bowuigi> Because that's a term level function, not a type level one
2024-12-28 01:46:16 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2024-12-28 01:45:40 +0100Sisyphean(~Sisyphean@user/Sisyphean) Sisyphean
2024-12-28 01:45:30 +0100 <homo> last (xs ++ [x]) = x
2024-12-28 01:44:56 +0100 <homo> it's interesting how only haskell's type-system is logic programming, but functional patterns like in curry language are impossible
2024-12-28 01:44:35 +0100IamPyu(~IamPyu@user/IamPyu) (Client Quit)
2024-12-28 01:44:05 +0100sprotte24(~sprotte24@p200300d16f4a7c0031dcae6904c3663c.dip0.t-ipconnect.de) (Quit: Leaving)
2024-12-28 01:43:54 +0100 <geekosaur> ignoring FFI and hierarchical modules, which were widely supported and (semi-)official extensions
2024-12-28 01:43:29 +0100 <homo> npk patterns, a simulation of logical programming
2024-12-28 01:43:07 +0100 <geekosaur> not very; 2010 only added like two things to H98 (and removed one)
2024-12-28 01:42:44 +0100 <homo> it's interesting how much of haskell2010 hugs supports
2024-12-28 01:42:19 +0100 <homo> all other extensions that microhs requires are already (partially?) supported by hugs, so there is hope to get better implementation than hugs bootstrappable
2024-12-28 01:41:47 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) euandreh
2024-12-28 01:41:37 +0100 <haskellbridge> <Bowuigi> Oh it has fundeps https://www.haskell.org/hugs/pages/hugsman/exts.html
2024-12-28 01:41:26 +0100 <homo> I want to bootstrap microhs from hugs and it requires bangpatterns, I would rather not remove bangpatterns from microhs's source
2024-12-28 01:41:25 +0100 <monochrom> Oh, bang pattern is a cross-cutting concern, yeah.
2024-12-28 01:41:00 +0100IamPyu(~IamPyu@user/IamPyu) IamPyu
2024-12-28 01:41:00 +0100IamPyu(~IamPyu@static209-34-105-235.r.rev.accesscomm.ca) (Changing host)
2024-12-28 01:41:00 +0100IamPyu(~IamPyu@static209-34-105-235.r.rev.accesscomm.ca)
2024-12-28 01:40:51 +0100 <homo> it is hard for me to understand source code of hugs, I am trying to patch src/parser.y in order to add bangpatterns, but it appears I cannot add them in one short line :(
2024-12-28 01:40:45 +0100 <geekosaur> (well, you can also do it with associated type families, but Hugs definitely doesn't have those)
2024-12-28 01:40:15 +0100 <geekosaur> pretty sure it had both MPTC and fundeps (which are pretty much mandatory to make MPTC usable)
2024-12-28 01:39:41 +0100 <haskellbridge> <Bowuigi> I don't remember Hugs having fundeps, lemme check
2024-12-28 01:39:28 +0100 <haskellbridge> <Bowuigi> I think it is related to MPTC and overlapping instances
2024-12-28 01:39:05 +0100 <geekosaur> they're more or less prolog in haskell's type system
2024-12-28 01:38:49 +0100 <geekosaur> wouldn't have been related to functional dependencies, would it?
2024-12-28 01:38:42 +0100 <Zenen> [rationality intensifies]
2024-12-28 01:38:24 +0100 <homo> prolog implemented in haskell...
2024-12-28 01:38:17 +0100 <homo> while digging hugs's source code, I was surprised to find it contains implementation of prolog