Re: PMC: addConCt and newtypes bottom info

2023-10-27 Thread Sebastian Graf
relevant in `generateInhabitingPatterns` for warning messages, but there we eagerly instantiate through NTs anyway. So by all means, open an MR for your change. Good work! Sebastian -- Originalnachricht -- Von: "Rodrigo Mesquita" An: "Sebastian Graf" Cc: "

Re: Reinstallable - base

2023-10-20 Thread Sebastian Graf
Hi, Thanks, Ben, that sounds very interesting. Allow me to provide the following perspective. It seems that those `*-internal` packages take the role of a static library's symbol table in the absence of a fixed ABI: It allows clients (such as `base` and `template-haskell`) to link against fixed,

RFC Or patterns syntax: (p1 | p2) vs. (p1; p2)

2023-07-24 Thread Sebastian Graf
Hi devs, I would like to invite you to provide arguments for or against the Or patterns syntax RFC `(p1; p2)` vs. `(p1 | p2)` over at this GH issue . *In particular, `(p1 | p2)` has a small lead over `(p1; p2)`*, but the latter will steal

Minutes of Sunday's meeting of the "Staged Working Group"

2023-06-13 Thread Sebastian Graf
Hi GHC devs, On Sunday I realised that there were many different people around at ZuriHac that are very knowledgeable about staged metaprogramming and macro systems (outside GHC, even). I really want a good staged metaprogramming story in Haskell (but don't know much about it or what I could

Re: Trouble building GHC

2023-05-31 Thread Sebastian Graf
hat the > flake provides. > On 5/31/23 10:13, Sebastian Graf wrote: > > Hi Lyle, > > I'm sorry that you have so much trouble in getting your first build done. > The Classes.hi issue sounds like something I had experienced in the past, > but I'm not having it at the moment. >

Re: Trouble building GHC

2023-05-31 Thread Sebastian Graf
Hi Lyle, I'm sorry that you have so much trouble in getting your first build done. The Classes.hi issue sounds like something I had experienced in the past, but I'm not having it at the moment. Are you also using symlinks by any chance? Then it is very likely that you have been bitten by

Re[2]: Help! Can't build HEAD

2023-03-15 Thread Sebastian Graf
Hi Simon, I had that very issue a few days ago, but saw this thread too late. For me it was enough to cd into utils/hpc and do a `git checkout .`. Sebastian -- Originalnachricht -- Von: "Simon Peyton Jones" An: "Sam Derbyshire" Cc: "Sam Derbyshire" ; "GHC developers" Gesendet:

Re: Status of Stream Fusion?

2022-11-14 Thread Sebastian Graf
han existing algorithms for > both higher order unification and higher order matching. > > I’ll do some experiments with the rule matcher. > > Cheers, > Jaro > > > On 14 Nov 2022, at 14:03, Sebastian Graf wrote: > > > > > I believe the reason that th

Re: Status of Stream Fusion?

2022-11-14 Thread Sebastian Graf
> I believe the reason that this is easier than higher order matching in general because it is restricted to applications of unification variables to locally bound variables. Indeed, it is easier to confine oneself to the pattern fragment. I think that's entirely the point of pattern unification:

Re: Status of Stream Fusion?

2022-11-14 Thread Sebastian Graf
ve one of the main remaining problems is the fusion of > ‘concatMap’. Is that really the only thing? > > Secondly, I would like to know what has already been tried. I know > Sebastian Graf has spent a lot of effort trying to get SpecConstr to work > on lambda arguments without success.

Re: Pushing to nofib

2022-09-27 Thread Sebastian Graf
Hi Simon, Similar to the policy for the main GHC repo, you have to push to a wip/ branch (or your personal fork) and then open a MR against the NoFib repo. Fortunately, the quality requirements for NoFib aren't high and it's likely your MR can be merged instantly. Cheers, Sebastian --

Re: ambiguous record field (but not *that* kind of ambiguous record field)

2022-05-16 Thread Sebastian Graf
Hi Richard, I'm not sure if I'm missing something, but my adolescent naivety in frontend matters would try to reach for https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0155-type-lambda.rst#motivation and write MkRec { field = \@a -> ... } and I hope that will do the

Markup language/convention for Notes?

2022-04-13 Thread Sebastian Graf
Hi Devs, When writing Notes, I find myself using markdown-inspired or haddock-inspired features. The reason is that I keep telling myself > In 5 years time, we'll surely have an automated tool that renders Notes referenced under the cursor in a popup in our IDE And I might not be

Re: Release Updates - 9.4.1 and 9.2.3

2022-04-06 Thread Sebastian Graf
Hi Matthew, Depending on whether https://gitlab.haskell.org/ghc/ghc/-/issues/21229 is deemed a blocker for 9.4 (I'd say it is, but YMMV), we should include https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7788 in the list. Perhaps we should make it dependent on whether !7788 is ready to merge

Re[2]: Avoiding `OtherCon []` unfoldings, restoring definitions from unfoldings

2022-04-05 Thread Sebastian Graf
Top-level data structures tend to get OtherCon [] unfoldings when they are marked NOINLINE. KindRep bindings are one particular example, and they appear quite often, too. Why are KindReps are NOINLINE? Because (from Note [Grand plan for Typeable]) The KindReps can unfortunately get

Re[2]: How to exploit ./hadrian/ghci to find errors quickly?

2022-01-29 Thread Sebastian Graf
Great! Glad I could help. FWIW, if I have strange HLS bugs, I mostly restart it (if it had worked before) or delete .hie-bios, where HLS stores its build results. HLS builds the same stuff as what hadrian/ghci needs to build. The former puts it in .hie-bios, the latter in ... .hadrian-ghci?

Re: How to exploit ./hadrian/ghci to find errors quickly?

2022-01-28 Thread Sebastian Graf
This is the typical use case for a language server. I have haskell-language-server installed and use it extensively on GHC for stuff like jump to definition and immediate compilation feedback. There's also "jump to next error" if you want that. Installation was pretty trivial for me, just

Re[4]: Strictness/demand info for a Name

2022-01-13 Thread Sebastian Graf
rrano Mena" An: "Sebastian Graf" Cc: "GHC developers" ; "Matthew Pickering" Gesendet: 13.01.2022 16:43:50 Betreff: Re: Re[2]: Strictness/demand info for a Name Thanks for the pointers! :) Knowing this, let me maybe rephrase my question: is it possible t

Re[2]: Strictness/demand info for a Name

2022-01-13 Thread Sebastian Graf
Yes, Matt is right. `dmdSigInfo` describes the how a function Id uses its arguments and free variables, whereas `demandInfo` describes how a (local, mostly) Id is used. Note that if you wanted to go beyond type-checking, you could probably run the analysis on the desugaring of the current

Re[4]: Transparently hooking into the STG stack to validate an escape analysis

2021-12-17 Thread Sebastian Graf
(Moving the conversation off the list.) -- Originalnachricht -- Von: "Csaba Hruska" An: "Sebastian Graf" Cc: "ghc-devs" ; "Sebastian Scheper" Gesendet: 16.12.2021 18:22:30 Betreff: Re: Re[2]: Transparently hooking into the STG stack t

Re[2]: Transparently hooking into the STG stack to validate an escape analysis

2021-12-16 Thread Sebastian Graf
d I are more familiar with the code base? Thanks for sticking with the project and doing all the hard work that can build upon! Sebastian -- Originalnachricht -- Von: "Csaba Hruska" An: "Sebastian Graf" Cc: "ghc-devs" ; "Sebastian Scheper" G

Re: Alternatives for representing a reverse postorder numbering

2021-12-09 Thread Sebastian Graf
FWIW, performance of IntMap could be even better if we had mutable fields and a transient (one with freeze/thaw conversion) interface. We'd need a GHC with https://github.com/ghc-proposals/ghc-proposals/pull/8/files for that, though... I think we could also speed up substitution by using a

Transparently hooking into the STG stack to validate an escape analysis

2021-12-08 Thread Sebastian Graf
Hi Devs, my master's student Sebastian and I (also Sebastian :)) are working on an escape analysis in STG, see https://gitlab.haskell.org/ghc/ghc/-/issues/16891#note_347903. We have a prototype for the escape analysis that we want to validate/exploit now. The original plan was to write the

Re: [EXTERNAL] can GHC generate an irreducible control-flow graph? If so, how?

2021-11-22 Thread Sebastian Graf
An alternative would be to mark both functions as NOINLINE, which the Simplifier will adhere to. You might also want to have `countA` and `countB` close over a local variable in order for them not to be floated to the top-level. If top-level bindings aren't an issue for you, you could simply use

Re[2]: Case split uncovered patterns in warnings or not?

2021-11-10 Thread Sebastian Graf
_) False (integer-gmp-1.0.3.0:GHC.Integer.Type.Jn# _) | 4 | foo True i = i | ^^^ - Oleg On 9.11.2021 15.17, Sebastian Graf wrote: Hi Devs, In https://gitlab.haskell.org/ghc/ghc/-/issues/20642 we saw that GHC >= 8.10 outputs pattern match warnings a

Re[2]: Case split uncovered patterns in warnings or not?

2021-11-09 Thread Sebastian Graf
Von: "Richard Eisenberg" An: "Sebastian Graf" Cc: "ghc-devs" Gesendet: 10.11.2021 04:44:50 Betreff: Re: Case split uncovered patterns in warnings or not? Maybe the answer should depend on whether the scrutinee has already been forced. The new output ("

Case split uncovered patterns in warnings or not?

2021-11-09 Thread Sebastian Graf
Hi Devs, In https://gitlab.haskell.org/ghc/ghc/-/issues/20642 we saw that GHC >= 8.10 outputs pattern match warnings a little differently than it used to. Example from there: {-# OPTIONS_GHC -Wincomplete-uni-patterns #-}foo :: [a] -> [a]foo [] = []foo xs = ys where (_, ys@(_:_)) = splitAt 0

Re: Optics?

2021-10-04 Thread Sebastian Graf
Hi Alan, hi Vlad, Yes, one thing that is nice about van Laarhoven lenses is that you don't actually need to depend on anything if all you want is export lenses in your API. We have also discussed using a small lens library in the past, in https://gitlab.haskell.org/ghc/ghc/-/issues/18693. The

Re: Documenting GHC: blogs, wiki pages, Notes, Haddocks, etc

2021-09-14 Thread Sebastian Graf
> This should produce a free section that is not linked to any exported item. > I see you're already using them though, so maybe I am understanding > something else? > Le 14/09/2021 à 16:00, Sebastian Graf a écrit : > > Hi, > > I've been using Haddock's named chunks feat

Re: Documenting GHC: blogs, wiki pages, Notes, Haddocks, etc

2021-09-14 Thread Sebastian Graf
Hi, I've been using Haddock's named chunks feature too when writing the docs for selective lambda lifting. This is the result: https://hackage.haskell.org/package/ghc-8.10.2/docs/StgLiftLams.html, and this is how the source code looks:

Re: Potential improvement in compacting GC

2021-09-02 Thread Sebastian Graf
Hey Ömer, Just in case you are wondering whether you are talking into the void: you aren't! Keep the good suggestions coming, someone will eventually be able to get around to implementing them! Thanks for your write-ups. Cheers, Sebastian Von: ghc-devs im

Re[2]: GHC and the future of Freenode

2021-06-16 Thread Sebastian Graf
Re: memory usage: I get that people don't like bloated Electron clients when they already run a browser instance, but fortunately, Element doesn't need to be run as a standalone app (*). Well, except when you want to search encrypted history. But then you're out of luck with irccloud, too...

Re: GHC and the future of Freenode

2021-05-19 Thread Sebastian Graf
Hi, As one of those contributors that is already using the Matrix-to-freenode-IRC bridge through http://element.io/, I'd prefer moving to Matrix. And *if* we commit to a move, I suggest we don't move to another IRC server. That leaves Zulip vs. Matrix, both of which I'd be fine with. For

Re: Coding style: Using StandaloneKindSignatures in GHC

2021-05-18 Thread Sebastian Graf
Hi Baldur, I'd be fine with declaring a SAKS whenever I'd need to specify a kind signature anyway. But so far I never needed to specify a kind in the data types or type synonyms I declare. I'd say that providing SAKS for types like `OrdList` or `State` where kinds are inferred just fine is

Re: simple Haskell help needed on #19746

2021-04-27 Thread Sebastian Graf
Hi Richard, Maybe I lack a bit of context, but I don't see why you wouldn't choose (3). Extending the lexer/parser will yield a declarative specification of what exactly constitutes a GHC_OPTIONS pragma (albeit in a language that isn't Haskell) and should be more efficient than `reads`, even if

Re: instance {Semigroup, Monoid} (Bag a) ?

2021-04-14 Thread Sebastian Graf
Hi Richard, I've been guilty of slipping in similar instances myself. In fact, I like OrdList better than Bag precisely because it has more instances and thus a far better interface. Not being able to see whether mempty denotes a Bag should be as simple as a mouse hover with HLS set up. So a +99

Re: How does GHC implement layout?

2021-04-05 Thread Sebastian Graf
Hi Alexis, Hi Iavor, I'm afraid I'm not particularly acquainted with how GHC implements indentation-sensitive parsing, but I really like the way in which this book frames the problem. If you look at the preview for the first chapter, you'll notice

Re: Multiple versions of happy

2021-03-30 Thread Sebastian Graf
Hi Simon, According to the configure script, you can use the HAPPY env variable. e.g. $ HAPPY=/full/path/to/happy ./configure Hope that helps. Cheers, Sebastian Am Di., 30. März 2021 um 15:19 Uhr schrieb Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org>: > What’s the approved mechanism

Re: Type inference of singular matches on GADTs

2021-03-28 Thread Sebastian Graf
Hi Alexis, If you really want to get by without type annotations, then Viktor's pattern synonym suggestion really is your best option! Note that pattern HNil :: HList '[]; pattern HNil = HNil_ Does not actually declare an HNil that is completely synonymous with HNil_, but it changes the

Re: Pattern matching desugaring regression? Re: [Haskell-cafe] Why does my module take so long to compile?

2021-03-28 Thread Sebastian Graf
Hi Troels, Sorry to hear GHC 9 didn't fix your problems! Yes, please open an issue. Optimising for specific usage patterns might be feasible, although note that most often it's not the exhaustivity check that is causing problems, but the check for overlapping patterns. At the moment the checker

Re: Type inference of singular matches on GADTs

2021-03-22 Thread Sebastian Graf
Cale made me aware of the fact that the "Type applications in patterns" proposal had already been implemented. See https://gitlab.haskell.org/ghc/ghc/-/issues/19577 where I adapt Alexis' use case into a test case that I'd like to see compiling. Am Sa., 20. März 2021 um 15:45 Uhr schrieb

Re: Type inference of singular matches on GADTs

2021-03-20 Thread Sebastian Graf
Hi Alexis, The following works and will have inferred type `Int`: > bar = foo (\(HNil :: HList '[]) -> 42) I'd really like it if we could write > bar2 = foo (\(HNil @'[]) -> 42) though, even if you write out the constructor type with explicit constraints and forall's. E.g. by using a

Re: On CI

2021-03-18 Thread Sebastian Graf
To be clear: All performance tests that run as part of CI measure allocations only. No wall clock time. Those measurements are (mostly) deterministic and reproducible between compiles of the same worktree and not impacted by thermal issues/hardware at all. Am Do., 18. März 2021 um 18:09 Uhr

Re: On CI

2021-03-17 Thread Sebastian Graf
Re: Performance drift: I opened https://gitlab.haskell.org/ghc/ghc/-/issues/17658 a while ago with an idea of how to measure drift a bit better. It's basically an automatically checked version of "Ben stares at performance reports every two weeks and sees that T9872 has regressed by 10% since 9.0"

Re: GHC 9.1?

2021-03-01 Thread Sebastian Graf
Hi, I generally would like +0.1 steps, but mostly because it causes less head-scratching to everyone new to Haskell. Basically the same argument as Richard says. I can't comment on how far head.hackage (or any tool relies) on odd version numbers, I certainly never have. Given that it's all

Re: On CI

2021-02-19 Thread Sebastian Graf
Recompilation avoidance I think in order to cache more in CI, we first have to invest some time in fixing recompilation avoidance in our bootstrapped build system. I just tested on a hadrian perf ticky build: Adding one line of *comment* in the compiler causes - a (pretty slow, yet

Re: On CI

2021-02-17 Thread Sebastian Graf
Hi Moritz, I, too, had my gripes with CI turnaround times in the past. Here's a somewhat radical proposal: - Run "full-build" stage builds only on Marge MRs. Then we can assign to Marge much earlier, but probably have to do a bit more of (manual) bisecting of spoiled Marge batches.

Re: Pattern matching desugaring regression? Re: [Haskell-cafe] Why does my module take so long to compile?

2021-02-15 Thread Sebastian Graf
Hi, I'm not sure I see all the context of the conversation, but it is entirely possible that code with many local constraints regresses the pattern-match checker (which is accounted to Desugaring in the profile emitted by -v2), I'm afraid. That simply has to do with the fact that we now actually

Re: Plan for GHC 9.2

2021-02-11 Thread Sebastian Graf
Hi, Since my hopes of finally merging Nested CPR have recently been crushed again, I hope that we can include the implementation of the UnliftedDatatypes extension (proposal , implementation

Re: GHC Reading Guide

2021-02-05 Thread Sebastian Graf
Hi Takenobu, thanks for updating that resource! I know that it was helpful to a couple of students of mine to get a big picture of GHC. I don't have anything to add. There are quite a few more -ddump-* flags for the different Core passes, but I don't think it's interesting to list all of them on

Re: Plan for GHC 9.2

2021-02-04 Thread Sebastian Graf
Hi Ben, Since part of the changes of https://gitlab.haskell.org/ghc/ghc/-/issues/14422 are already merged into master (e.g. we ignore the "type signature" part of a COMPLETE sig now, because there is nothing to disambiguate), it would be good if we merged the solution outlined in

Re: Benchmarking experiences: Cabal test vs compiling nofib/spectral/simple/Main.hs

2021-01-23 Thread Sebastian Graf
Hi Andreas, I similarly benchmark compiler performance by compiling Cabal, but only occasionally. I mostly trust ghc/alloc metrics in CI and check Cabal when I think there's something afoot and/or want to measure runtime, not only allocations. I'm inclined to think that for my purposes (testing

Re: presentation: Next-gen Haskell Compilation Techniques

2021-01-10 Thread Sebastian Graf
Hi Csaba, Thanks for your presentation, that's a nice high-level overview of what you're up to. A few thoughts: - Whole-program optimization sounds great, but also very ambitious, given the amount of code GHC generates today. I'd be amazed to see advances in that area, though, and your

Re: can't get raw logs -- server down?

2020-12-24 Thread Sebastian Graf
Hi Richard, I can access the log just fine. In case you still can't, here it is (at least for a few days): https://1drv.ms/u/s!AvWV1ZpCBdeckIF5-Stx7QZ0gWiUKg?e=NYjO2H Hope that helps. Merry Christmas :) Sebastian Am Do., 24. Dez. 2020 um 17:38 Uhr schrieb Richard Eisenberg <

Re: Nested constructed product results?

2020-12-15 Thread Sebastian Graf
Hi Alexis, that's a very interesting example you have there! So far, what we referred to as Nested CPR concerned unboxing for returned nested *records*, e.g., the `annotation` field in your example. That's what I try to exploit in !1866 ,

Re: Hadrian: Error "cannot find -lHSrts-1.0_thr_l" when linking ghc executable.

2020-11-25 Thread Sebastian Graf
Oh, nevermind. See the comments on https://gitlab.haskell.org/ghc/ghc/-/commit/fc644b1a643128041cfec25db84e417851e28bab. Apparently, master really is broken in devel2 flavour! Am Mi., 25. Nov. 2020 um 10:38 Uhr schrieb Sebastian Graf < sgraf1...@gmail.com>: > Hi Roland, > > Si

Re: Hadrian: Error "cannot find -lHSrts-1.0_thr_l" when linking ghc executable.

2020-11-25 Thread Sebastian Graf
Hi Roland, Since you mention an RTS variant with an _l suffix (for eventlog), I suspect that you may have to (reboot? and) reconfigure after https://gitlab.haskell.org/ghc/ghc/-/issues/18948 and https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4448. Does that help? Cheers, Sebastian Am Mi.,

Re: Restricted sums in BoxedRep

2020-10-14 Thread Sebastian Graf
I believe Simon told me once that NULL pointers in places we assume BoxedRep things are not an option, because the GC assumes it is free to follow that pointer. It won't check if it's NULL or not. That's also the reason why we lower `LitRubbish` (which we use for absent BoxedRep literals) as `()`

Re: Parser depends on DynFlags, depends on Hooks, depends on TcM, DsM, ...

2020-09-10 Thread Sebastian Graf
it/469fe6133646df5568c9486de2202124cb734242 > [2] > https://gitlab.haskell.org/ghc/ghc/-/wikis/Errors-as-(structured)-values > [3] > https://gitlab.haskell.org/hsyl20/ghc/-/blob/hsyl20/dynflags/parser/compiler/GHC/Parser/Errors.hs > [4] > https://gitlab.haskell.org/hsyl20/

Parser depends on DynFlags, depends on Hooks, depends on TcM, DsM, ...

2020-09-10 Thread Sebastian Graf
Hey Sylvain, In https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3971 I had to fight once more with the transitive dependency set of the parser, the minimality of which is crucial for ghc-lib-parser and tested by the CountParserDeps test. I

Re: COMPLETE pragmas

2020-09-03 Thread Sebastian Graf
, Sebastian Am Di., 1. Sept. 2020 um 22:09 Uhr schrieb Joachim Breitner < m...@joachim-breitner.de>: > Am Dienstag, den 01.09.2020, 10:11 +0200 schrieb Sebastian Graf: > > > 2.) Another scenario that I'd really love to see supported with > > > COMPLETE pragmas is a way

Re: Implicit reboxing of unboxed tuple in let-patterns

2020-09-03 Thread Sebastian Graf
Hi, Right now, there is one rule: if the type of any variable bound in the > pattern is unlifted, then the pattern is an unlifter-var pattern and is > strict. > I think the intuition I followed so far was "bindings with unlifted *RHS* are strict". So if I take a program in a strict language with

Re: COMPLETE pragmas

2020-09-01 Thread Sebastian Graf
always at least one >> pattern synonym (which would be a reasonable restriction), so I guess you >> can look at the pattern-match as a whole and use the pattern synonym to >> find the relevant COMPLETE set(s). >> >> Thanks for taking a look! >> Richard >>

Re: COMPLETE pragmas

2020-08-31 Thread Sebastian Graf
Hi Richard, Am Mo., 31. Aug. 2020 um 21:30 Uhr schrieb Richard Eisenberg < r...@richarde.dev>: > Hi Sebastian, > > I enjoyed your presentation last week at ICFP! > Thank you :) I'm glad you liked it! This thread ( >

Re: Fusing loops by specializing on functions with SpecConstr?

2020-04-05 Thread Sebastian Graf
> > That’s it. These two rules alone are enough to eliminate the redundant > tupling. Now the optimized version of `mapMaybeSF` is beautiful! > Beautiful indeed! That's wonderful to hear. Good luck messing about with your FRP framework! Sebastian Am Sa., 4. Apr. 2020 um 03:45 Uhr schrieb Alexis

Re: Fusing loops by specializing on functions with SpecConstr?

2020-04-01 Thread Sebastian Graf
he implementation. - An even simpler thing would be to somehow use `Void#` (which should have been named `Unit#`), but I think that doesn't work due to runtime rep polymorphism restrictions. I think there is lots that can be done to tune this idea. Am Mi., 1. Apr. 2020 um 01:16 Uhr schr

Re: Fusing loops by specializing on functions with SpecConstr?

2020-03-31 Thread Sebastian Graf
gt; add1rec = SF (\a -> let !b = a+1 in (b,add1rec)) > add1 = SF (\a -> let !b = a+1 in (b,add1rec)) > > > Yes, I was playing with the idea at one point of some kind of RULE that > inserts GHC.Magic.inline on the specialized RHS. That way the programmer > could ask for the

Re: Fusing loops by specializing on functions with SpecConstr?

2020-03-31 Thread Sebastian Graf
hand, perhaps even in FRP source > code: > > add1rec = SF (\a -> let !b = a+1 in (b,add1rec)) > > add1 = SF (\a -> let !b = a+1 in (b,add1rec)) > > > > Simon > > > > *From:* ghc-devs *On Behalf Of *Sebastian > Graf > *Sent:* 29 March 2020 15:34 &

Re: DataCon tag value convention

2020-02-12 Thread Sebastian Graf
You probably couldn't do pointer tagging anymore, which is probably a substantial performance loss. Am Mi., 12. Feb. 2020 um 19:58 Uhr schrieb Csaba Hruska < csaba.hru...@gmail.com>: > Hello, > > In

Re: Residency profiles

2020-01-23 Thread Sebastian Graf
introduce non-determinism otherwise. Sampling rate can be controlled with `-A`, much like `-F1` (but it's still faster for some reason). Am Mo., 10. Dez. 2018 um 09:11 Uhr schrieb Simon Marlow : > https://phabricator.haskell.org/D5428 > > > On Sun, 9 Dec 2018 at 10:12, Sebastian Graf wrote

Re: is Unlifted Type == Primitive Type?

2020-01-20 Thread Sebastian Graf
Hi Csaba, Yes, boxed unlifted ADTs are supported by code-gen, or at least the fix for codegen to deal with it is [rather simple]( https://gitlab.haskell.org/ghc/ghc/commit/fc4e2a03ebb40e2268ec0deb9833ec82bd2d7bee ). Hope that helps. Sebastian Am Mo., 20. Jan. 2020 um 11:13 Uhr schrieb Csaba

Re: Handling source locations in HsSyn via TTG

2019-10-30 Thread Sebastian Graf
> I would like to submit a solution E, which is just a variant of D (or a meshing together of D and B), but may have different pros and cons. I like this conceptually: No `WrapL`/`WrapX`/`XWrap`/`XRec` (the trouble to find a fitting name already suggests that it's maybe a little too general a

Re: Simplifier bug fixed in GHC 8.8.1?

2019-10-28 Thread Sebastian Graf
Hi Alexis, I think the fact that it looks like it's fixed is only a coincidence. See https://gitlab.haskell.org/ghc/ghc/issues/17409, where I go into a bit more detail. Cheers Sebastian Am Mo., 28. Okt. 2019 um 07:16 Uhr schrieb Alexis King < lexi.lam...@gmail.com>: > Hi all, > > I have an odd

Re: Urgent: git problem

2019-10-23 Thread Sebastian Graf
Hi, Some googling turned up this SO thread https://stackoverflow.com/a/43253320/388010 Does that help? Cheers Sebastian Am Mi., 23. Okt. 2019 um 17:22 Uhr schrieb Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org>: > Aieee! All my GHC repos are failing with this. As a result I can’t >

Re: How to navigate around the source tree?

2019-10-23 Thread Sebastian Graf
FWIW, I'm using VSCode's fuzzy file search with Ctrl+P (and vim's equivalent) rather successfully. Just tried it for Hs/Utils.hs by typing 'hsutils.hs'. It didn't turn up as the first result in VSCode, but it in vim. Am Mi., 23. Okt. 2019 um 14:27 Uhr schrieb Matthew Pickering <

Re: Should coercion binders (arguments or binders in patterns) be TyVars?

2019-10-06 Thread Sebastian Graf
Hi Ömer, I'm not sure if there's a case in GHC (yet, because newtype coercions are zero-cost), but coercions in general (as introduced for example in Types and Programming Languages) can carry computational content and thus can't be erased. Think of a hypothetical coercion `co :: Int ~ Double`;

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Sebastian Graf
. 2019 um 22:38 Uhr schrieb Shayne Fletcher < shayne.fletc...@daml.com>: > Hi Sebastian, > > On Mon, Sep 16, 2019 at 5:23 PM Sebastian Graf > wrote: > >> Hi Shayne, >> >> Sorry to hear that! We didn't consider modularity at all and I would be >> happy to t

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Sebastian Graf
Cheers, > > Matt > > On Mon, Sep 16, 2019 at 10:38 PM Shayne Fletcher via ghc-devs > wrote: > > > > Hi Sebastian, > > > > On Mon, Sep 16, 2019 at 5:23 PM Sebastian Graf > wrote: > >> > >> Hi Shayne, > >> > >> S

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-16 Thread Sebastian Graf
Hi Shayne, Sorry to hear that! We didn't consider modularity at all and I would be happy to try to refactor in a way that would allow `ghc-lib-parser` to be properly separated again. I'm fairly certain that I didn't directly touch anything parser related, but apparently the new cyclic import of

Re: eqType modulo associated types?

2019-09-16 Thread Sebastian Graf
Hi Conal, I've had success with `FamInstEnv.topNormaliseType` in the past. `eqType` doesn't take `FamInstEnvs`, so I'm pretty sure it can't look through family instances by itself. Cheers, Sebastian Am Mo., 16. Sept. 2019 um 02:38 Uhr schrieb Conal Elliott : > It looks to me like `eqType`

Re: GHC: Policy on -O flags?

2019-08-27 Thread Sebastian Graf
Hi, I used to think that the policy for being eligible for -O1 is that C must be non-positive, e.g. that the compile times don't suffer at all. Everything beyond that (well, given that R is positive) should be -O2 only. There's precedent at least for Late Lambda Lifting (which is only run for

Re: Linker error when adding a new source file

2019-08-23 Thread Sebastian Graf
Ah, you already tried a clean build. Nevermind... Am Fr., 23. Aug. 2019 um 17:14 Uhr schrieb Sebastian Graf < sgraf1...@gmail.com>: > I recently experienced this when rebasing. Have you tried a clean build? > `rm -rf _build` was enough for me, IIRC. > > Am Fr., 23. Aug. 2019 um

Re: Linker error when adding a new source file

2019-08-23 Thread Sebastian Graf
I recently experienced this when rebasing. Have you tried a clean build? `rm -rf _build` was enough for me, IIRC. Am Fr., 23. Aug. 2019 um 17:08 Uhr schrieb Brandon Allbery < allber...@gmail.com>: > From the looks of it, you're building with a bootstrap compiler (stage 0). > Does the build

Re: PseudoOps in primops.txt.pp

2019-08-11 Thread Sebastian Graf
ion) seems to be the whole point about having the compiler be aware of these special identifiers. So, for a concrete question: What are the reasons that we don't make i.e. `lazy` a PseudoOp? Am So., 11. Aug. 2019 um 12:42 Uhr schrieb Sebastian Graf < sgraf1...@gmail.com>: > Hey fellow devs, >

PseudoOps in primops.txt.pp

2019-08-11 Thread Sebastian Graf
Hey fellow devs, While implementing new PseudoOps, a couple of questions popped up: 1. What are PseudoOps? When do we want to declare one? There doesn't seem to be any documentation around them. I only figured out that I probably want a PseudoOp by comparing to PrimOps I thought would

Re: Try haskell-ide-engine on GHC!

2019-07-26 Thread Sebastian Graf
Hey all, What can I say, after few hours of on and off tinkering I got it to work! The hover information is incredibly helpful, as is jump to definition. It works even in modules with type and name errors! The error information not so much (yet), at least not compared to the shorter feedback loop

Re: a better workflow?

2019-07-24 Thread Sebastian Graf
I found that git worktree works rather well, even with submodules (well, mostly. Even if it doesn't for some reason, you can still update and init the submodules manually, losing sharing in the process). See https://stackoverflow.com/a/31872051, in particular the GitHub links to `wtas` alias. I

Re: Workflow question (changing codegen)

2019-06-30 Thread Sebastian Graf
Re: git worktree: That's the workflow I'm currently using. It has its problems with submodules, see https://stackoverflow.com/questions/31871888/what-goes-wrong-when-using-git-worktree-with-git-submodules. But you can make it work with this git alias from the first answer:

Re: Near-daily "Remote mirror update failed" e-mails from GitLab

2019-04-15 Thread Sebastian Graf
Hey, sorry, I'm a little late to respond. I didn't push to GitHub, at least not consciously. Let me know if you find that I screwed up somewhere. Cheers, Sebastian Von: Ben Gamari Gesendet: Samstag, April 6, 2019 8:28 PM An: Ryan Scott; Sebastian Graf Cc

Re: Scaling back CI (for now)?

2019-02-02 Thread Sebastian Graf
Hi, Am Sa., 2. Feb. 2019 um 16:09 Uhr schrieb Matthew Pickering < matthewtpicker...@gmail.com>: > > All the other flavours should be run once the commit reaches master. > > Thoughts? > That's even better than my idea of only running them as nightlies. In favor! > Cheers, > > Matt >

Re: [ANNOUNCE] You should try Hadrian

2019-01-29 Thread Sebastian Graf
Side note: On my Windows my machine, where I use the environment provided by `stack exec --no-ghc-package-path bash`, I have to do `bash -c 'pushd . && . /etc/profile && popd && ./configure --enable-tarballs-autodownload'` or something along those lines for some time now (probably since the boot

Re: Better perf

2018-12-14 Thread Sebastian Graf
Hey, when going through Simon-nofib-notes, I stumbled over this thread from March 2017, when I hadn't yet subscribed to this list: https://mail.haskell.org/pipermail/ghc-devs/2017-March/013887.html. Joachim and Simon were trying to pin-point seemingly random regressions and improvements of ~5% to

Re: Residency profiles

2018-12-09 Thread Sebastian Graf
n Thu, 6 Dec 2018 at 16:21, Sebastian Graf wrote: > >> Hey, >> >> thanks, all! Measuring with `-A1M -F1` delivers much more reliable >> residency numbers. >> `-F` doesn't seem to be documented. From reading `rts/RtsFlags.c` and >> `rts/sm/GC.c` I gather t

Re: Residency profiles

2018-12-06 Thread Sebastian Graf
Hey, thanks, all! Measuring with `-A1M -F1` delivers much more reliable residency numbers. `-F` doesn't seem to be documented. From reading `rts/RtsFlags.c` and `rts/sm/GC.c` I gather that it's the factor by which to multiply the number of live bytes by to get the new old gen size? So

Re: perf.haskell.org functional again

2018-11-30 Thread Sebastian Graf
parallelism would probably interleave outputs of different rules, giving nofib-analyse a hard time. Greetings Sebastian Am Mo., 30. Okt. 2017 um 00:14 Uhr schrieb Joachim Breitner < m...@joachim-breitner.de>: > Hi, > > Am Sonntag, den 29.10.2017, 23:58 +0100 schrieb Sebasti

Re: Understanding UniqSupply

2018-07-23 Thread Sebastian Graf
uldn't really make much of a difference, so what >is the motivation for that? > > I think this is unimportant. I.e. it should be fine to change it. > > > >1. Judging from SimplCore, we probably want to `splitUniqSupply` after >each iteration/transformation, either through

Functor, Foldable and Traversable for Expr

2018-06-18 Thread Sebastian Graf
Hi everyone, I'm repeatedly wondering why there are no `Functor`, `Foldable` and `Traversable` instances for `Expr`. Is this just by lack of motive? I could help there: I was looking for a function that would tell me if an expression mentions `makeStatic`. After spending some minutes searching

Re: Curious demand in a function parameter

2018-03-25 Thread Sebastian Graf
Hey, the problem is with eta-expansion in this case, I believe, or rather the lack there-of. Your recursive `f` is always bottoming out, which makes GHC not want to eta-expand the RealWorld# parameter (Note [State hack and bottoming functions] in CoreArity.hs is probably related). If you change

Re: An idea for a different style of metaprogramming evaluation using the optimiser

2018-02-27 Thread Sebastian Graf
Hey Matt, cool idea! Also it looks like such a tool could 'solve' stream fusion: https://ghc.haskell.org/trac/ghc/ticket/915#comment:52 Greetings Sebastian 2018-02-27 18:01 GMT+01:00 Joachim Breitner : > Hi, > > something like this would be great. I don’t have a sense

Re: How to load & parse an HI (interface) file?

2017-12-03 Thread Sebastian Graf
Hey, there's this relatively recent thread on finding instances of a type class: https://mail.haskell.org/pipermail/ghc-devs/2017-May/014217.html I'm sorry, but I couldn't find a better archive for ghc-devs. Enjoy Sebastian On Sun, Dec 3, 2017 at 3:43 AM, Brandon Allbery

  1   2   >