simonmar (Simon Marlow)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Thursday

  • Clear sailing ahead.

Badges

  • Commit Bits
    Guru Meditation #00000004
    Epic
  • GHC HQ
    Not to be confused with GCHQ
    Legendary
  • My Name is Simon
    Benevolent Leaders of GHC
    Heirloom
User Since
Jun 8 2014, 1:59 AM (146 w, 2 d)
Availability
Available

Recent Activity

Today

simonmar committed rGHCc77551abd42a: Make the test fail if compiled without -threaded (authored by simonmar).
Make the test fail if compiled without -threaded
Tue, Mar 28, 5:33 AM
simonmar closed D3387: Make the test fail if compiled without -threaded by committing rGHCc77551abd42a: Make the test fail if compiled without -threaded.
Tue, Mar 28, 5:32 AM
simonmar committed rGHC074d13eb3b64: Fix #13433 (authored by simonmar).
Fix #13433
Tue, Mar 28, 5:31 AM
simonmar closed D3386: Fix #13433 by committing rGHC074d13eb3b64: Fix #13433.
Tue, Mar 28, 5:31 AM

Yesterday

simonmar created D3387: Make the test fail if compiled without -threaded.
Mon, Mar 27, 10:10 AM
simonmar updated the diff for D3386: Fix #13433.

wibble

Mon, Mar 27, 7:18 AM
simonmar created D3386: Fix #13433.
Mon, Mar 27, 7:16 AM

Mon, Mar 20

simonmar accepted D3362: Fix Windows x86 build.
Mon, Mar 20, 4:13 AM
simonmar requested changes to D3358: base: Implement bit casts between word and float types.

The right way to do this is to add new MachOps and implement them for all the native backends and LLVM. However, that's a lot of work and the Cmm versions are a reasonable second-best. (let's avoid the ByteArray# versions if we can)

Mon, Mar 20, 4:02 AM

Fri, Mar 17

simonmar added a comment to D3269: Deserialize IfaceId more lazily.

IdInfo is already lazy, BTW. Maybe this should just cover the ty and details.

Fri, Mar 17, 9:45 AM

Thu, Mar 16

simonmar accepted D3350: Drop dead code in rts/{Prelude.h,package.conf.in}.

Yep, ok.

Thu, Mar 16, 3:52 AM

Tue, Mar 14

simonmar added a comment to D3336: Mark far fewer primops has_side_effects.

We have the State# token yes, which enforces ordering of operations with respect to each other. So a read following a write will always occur in that order, as enforced by the state token passing.

Tue, Mar 14, 8:45 AM
simonmar added a comment to D3336: Mark far fewer primops has_side_effects.

We should probably have the test case from Trac #3207 in the test suite (I'm not sure why I didn't add it before)

Tue, Mar 14, 5:01 AM
simonmar added a comment to D3336: Mark far fewer primops has_side_effects.

Ugh. No, there's no centralized place that describes these things as far as I know.

Tue, Mar 14, 5:00 AM

Mon, Mar 13

simonmar added a comment to D3336: Mark far fewer primops has_side_effects.

Currently, there's a mismatch between the note on has_side_effects, which

says it should be False for read-only primops, and primops.txt.pp, which
makes it True for these.

Mon, Mar 13, 1:10 PM
simonmar added a comment to D3336: Mark far fewer primops has_side_effects.

What's the rationale here? The commit log is a bit brief :)

Mon, Mar 13, 12:01 PM
simonmar added a comment to D3319: Fix Windows GCC driver.

I don't think I wrote this code, but my guess is that it has to do with proper handling of Ctrl-C. Can we still correctly interrupt compilation during the gcc phase without this?

Mon, Mar 13, 3:47 AM

Thu, Mar 9

simonmar added a comment to D3298: RFC: Always build GHCi libs.

If I understand correctly this is saying that loading the .a is faster than loading the .so?

Thu, Mar 9, 6:50 AM

Wed, Mar 8

simonmar added a comment to D3298: RFC: Always build GHCi libs.

It seems to be 80MB on disk, which comparing to an unpacked binary dist I have lying around (8.0.1) looks to be about 7%.

Wed, Mar 8, 9:13 AM
simonmar updated the diff for D3298: RFC: Always build GHCi libs.
  • Simplify; the way I was doing this was wrong
  • Don't build a GHCi lib for the GHC package
Wed, Mar 8, 9:08 AM
simonmar planned changes to D3298: RFC: Always build GHCi libs.

Good point about the GHC package. The logic is here: https://phabricator.haskell.org/diffusion/GHC/browse/master/compiler/ghc.mk;8e053700f9357c1b9030c406130062795ae5015c$603-611

Wed, Mar 8, 8:56 AM
simonmar created D3298: RFC: Always build GHCi libs.
Wed, Mar 8, 7:35 AM

Mon, Mar 6

simonmar accepted D3233: Enter iserv-proxy.

Ok, thanks for taking the time to explain the rationale for the design. I understand that things are evolving, my main concern is that we should be careful to capture the rationale in such a way that someone reading the code in the future can understand the constraints on the design - so preferably include Notes that explain why things are the way they are (in particular why we need to parse messages in the proxy), or use wiki pages with links from the code.

Mon, Mar 6, 3:59 AM
simonmar added a comment to D3278: Enable new warning for fragile/incorrect CPP #if usage.

I don't think I ever use #if defined X, and I prefer #if defined(X) over #ifdef. But if we're moving towards having configuration symbols be always defined, it doesn't really matter. I agree with @erikd that whatever style is agreed on should be automatically linted.

Mon, Mar 6, 2:43 AM

Thu, Mar 2

simonmar added inline comments to D3239: rts linker: Introduce MachOTypes.
Thu, Mar 2, 3:07 AM
simonmar added a comment to D3244: Change catch# demand signature.

What effect did this have on nofib?

Thu, Mar 2, 2:58 AM
simonmar committed rGHCd118807d141a: Document interaction between ApplicativeDo and existentials (#13242) (authored by simonmar).
Document interaction between ApplicativeDo and existentials (#13242)
Thu, Mar 2, 2:35 AM
simonmar closed D3256: Document interaction between ApplicativeDo and existentials (#13242) by committing rGHCd118807d141a: Document interaction between ApplicativeDo and existentials (#13242).
Thu, Mar 2, 2:35 AM

Wed, Mar 1

simonmar added a comment to D3219: Produce KindReps for common kinds in GHC.Types.

Harbourmaster failed, bad base revision for some reason?

Wed, Mar 1, 10:12 AM
simonmar updated the diff for D3136: Add -fwhole-archive-hs-libs.

Suggested fixes for OS X

Wed, Mar 1, 9:31 AM
simonmar created D3256: Document interaction between ApplicativeDo and existentials (#13242).
Wed, Mar 1, 8:48 AM

Tue, Feb 28

simonmar added a comment to D3233: Enter iserv-proxy.

Why does the proxy need to understand the content of messages, rather than just forwarding data in both directions whenever it arrives? In fact, it makes me wonder whether the proxy can't be a script wrapping netcat or something like that. Perhaps the answer to this is the extra SlaveMessage protocol for sending files - but I wouldn't object to making this part of the main protocol, unused in the case of a local server. It's quite confusing that we have these extra messages exchanged between the slave and proxy in certain circumstances.

Tue, Feb 28, 8:08 AM
simonmar updated the summary of D3233: Enter iserv-proxy.
Tue, Feb 28, 7:40 AM
simonmar accepted D3237: Drop copy step from the rts/ghc.mk.

Yes, that looks better.

Tue, Feb 28, 7:17 AM
simonmar accepted D3182: rts: Allow profile output path to be specified on RTS command line.
Tue, Feb 28, 7:06 AM

Feb 25 2017

simonmar accepted D3206: Rename compact to ghc-compact..
Feb 25 2017, 5:33 AM

Feb 23 2017

simonmar accepted D3132: JSON profiler reports.

Sure, why not.

Feb 23 2017, 3:18 AM
simonmar added a comment to D3168: Drop NFData constraint from compact..

A magical type class is a neat idea.

Feb 23 2017, 2:55 AM
simonmar added a comment to D3136: Add -fwhole-archive-hs-libs.

Looks like the test is failing on OS X:

Feb 23 2017, 2:39 AM

Feb 22 2017

simonmar added inline comments to rGHC254bc3357b0d: A much nicer solution for typechecking ApplicativeDo.
Feb 22 2017, 8:26 AM
simonmar updated the diff for D3136: Add -fwhole-archive-hs-libs.

fix OS X

Feb 22 2017, 5:07 AM

Feb 21 2017

simonmar added a comment to D3143: Correct the nursery size in the gen 1 growth computation (rts: fix trac issue #13288).

necessary, but not sufficient perhaps. I look forward to seeing what else you find!

Feb 21 2017, 10:41 AM
simonmar updated the diff for D3136: Add -fwhole-archive-hs-libs.
  • Add a test
  • Suggest -rdynamic in the docs
Feb 21 2017, 10:35 AM
simonmar added a comment to D3136: Add -fwhole-archive-hs-libs.

@bgamari I'd be happy to change the flag name if you can think of anything better. -flink-whole-static-hs-libs maybe?

Feb 21 2017, 10:15 AM
simonmar added inline comments to rGHC526c3af1dc98: Use MD5 checksums for recompilation checking (fixes #1372, #1959).
Feb 21 2017, 9:50 AM
simonmar added a comment to D3167: Simon's early-inline patch, take 2.

Is this a bunch of patches squashed together? Could they be put into separate diffs? It would be nicer to keep the changes separate in the history, and it's not really possible to review this.

Feb 21 2017, 6:05 AM
simonmar accepted D3168: Drop NFData constraint from compact..

Well ok. I did leave it there deliberately, but I agree it's weak.

Feb 21 2017, 6:00 AM

Feb 20 2017

simonmar added a reviewer for D3146: Upgrade UniqSet to a newtype: niteria.
Feb 20 2017, 2:44 AM
simonmar accepted D3143: Correct the nursery size in the gen 1 growth computation (rts: fix trac issue #13288).

LGTM

Feb 20 2017, 2:39 AM

Feb 15 2017

simonmar updated the diff for D3136: Add -fwhole-archive-hs-libs.

fix OS X

Feb 15 2017, 4:29 AM

Feb 14 2017

simonmar created D3136: Add -fwhole-archive-hs-libs.
Feb 14 2017, 9:27 AM

Feb 13 2017

simonmar added inline comments to D3055: WIP Add HeapView functionality.
Feb 13 2017, 2:54 AM

Feb 11 2017

simonmar accepted D3096: rts/Profiling: Kill a few globals and add consts.

Yeah, this code is probably over 20 years old and hasn't had much love since then. Thanks for cleaning it up!

Feb 11 2017, 4:04 AM
simonmar requested changes to D3055: WIP Add HeapView functionality.

In general I support having this, however as it stands there are too many problems.

  • It needs to work for all configurations (TABLES_NEXT_TO_CODE, profiling)
  • There's a great deal of overlap with existing code in other places (the GHCi debugger, GHCi itself, and probably bits of the code generator). If this is being brought into the GHC tree we should at least make some effort to de-dup so that we don't have yet more dependencies on representations.
Feb 11 2017, 3:31 AM

Feb 10 2017

simonmar accepted D3117: bufWrite: Save extra syscall when data fills handle buffer completely..

Yep, LGTM, as long as the IO tests all pass.

Feb 10 2017, 2:27 PM

Feb 9 2017

simonmar accepted D3097: rts/Profiling: Factor out report generation.

Fine modulo one wibble below.

Feb 9 2017, 5:44 AM
simonmar added inline comments to D3063: Never tick primitive string literals.
Feb 9 2017, 5:23 AM

Feb 2 2017

simonmar added inline comments to rGHC03a9ff01812a: [project @ 2005-10-21 14:02:17 by simonmar] Big re-hash of the threaded/SMP….
Feb 2 2017, 2:59 PM
simonmar added a comment to D3038: Attempt to make lazy ST thread safe.

Only had time to take a brief look I'm afraid, but my thought was why can't we pass the State# token that we already have to noDuplicate#, rather than grabbing a new one with runRW#?

Feb 2 2017, 2:35 AM
simonmar added a comment to D2853: Join points.

It looks like this was committed despite the performance regressions in perf/compiler/all.T. What's the plan here?

Feb 2 2017, 2:18 AM

Feb 1 2017

simonmar added a comment to D3052: Extensionalize if-then-else syntax, on by default in H98 and H2010.

butwhy

Feb 1 2017, 3:47 AM
simonmar created Image Macro "butwhy".
Feb 1 2017, 3:46 AM
simonmar added a comment to D2996: WIP – computed gotos in the interpreter.

I'll run make test with the GHCi way both with and without computed gotos and see which takes longer.

Feb 1 2017, 2:36 AM
simonmar accepted D3053: Update output of failing 11223 tests.
Feb 1 2017, 2:32 AM

Jan 27 2017

simonmar added a comment to D3026: Fix ExtraSymbols jump table on Windows..

These two changes would have been better separated, I think.

Jan 27 2017, 2:51 PM
simonmar added a comment to D3028: Load dependent dlls..

I don't have strong opinions on this, but I do remember libstdc++ being a problem in the past. What does this do to the ghcilink003 test?

Jan 27 2017, 2:38 PM

Jan 26 2017

simonmar added a comment to D3012: Generalize the type of runRW.

While you're noodling with lazy ST, maybe I could draw your attention to Trac #11760, just in case you feel like fixing it?

Jan 26 2017, 8:13 AM
simonmar added a comment to D2996: WIP – computed gotos in the interpreter.

I'd still really like to see some measurements, since there's a complexity cost to doing this.

Jan 26 2017, 8:10 AM

Jan 25 2017

simonmar added inline comments to D3012: Generalize the type of runRW.
Jan 25 2017, 10:52 AM
simonmar requested changes to D2741: Generalize CmmUnwind and pass unwind information through NCG.

First pass, I didn't read everything but I have a bunch of questions that should help me understand it. It actually doesn't seem that complicated, it's just plumbing things around, so the main thing for me is being able to understand the data types and the transformations, I think that could be clearer in the comments.

Jan 25 2017, 9:07 AM
simonmar updated the diff for D3020: Fatal if we try to reinitialize the RTS.

set the flag too

Jan 25 2017, 8:17 AM
simonmar retitled D3020: Fatal if we try to reinitialize the RTS from to Fatal if we try to reinitialize the RTS.
Jan 25 2017, 8:15 AM

Jan 23 2017

simonmar added a comment to D2996: WIP – computed gotos in the interpreter.

It replaces a single dispatch point with multiple ones. This improves CPU branch prediction.

Jan 23 2017, 7:27 AM
simonmar added a comment to D2996: WIP – computed gotos in the interpreter.

Have you measured the difference? Did you look at the generated asm to check that it's doing the right thing?

Jan 23 2017, 3:32 AM
simonmar added a comment to D1435: cnf: make use of the striped allocator.

This will need significant reworking, it needs to be rebuilt on top of the support for NUMA in the block allocator. I'd be happy to advise if anyone is excited about reviving it.

Jan 23 2017, 2:59 AM

Jan 19 2017

simonmar updated subscribers of D2981: Add missing test files for T13082..
In D2981#86930, @Phyx wrote:

Hmm the git blame points to e064f501d76c208ddab3c3be551ffe5167d7974f which says

foo*           (simonpj uses foo* for junk files)
Jan 19 2017, 2:49 AM

Jan 18 2017

simonmar added inline comments to D2959: Some 8.2.1 release notes for my stuff.
Jan 18 2017, 2:28 AM
simonmar added a comment to D2903: WIP: Register Allocator Loop Annotations.

I wouldn't want to speculate about how to fix the graph-colouring allocator before we have some concrete evidence about what the problem is.

Jan 18 2017, 2:22 AM

Jan 16 2017

simonmar accepted D2982: Add CBool to Foreign.C.Types.

holyfastbatman

Jan 16 2017, 9:59 AM
simonmar created Image Macro "holyfastbatman".
Jan 16 2017, 9:58 AM
simonmar added a comment to D2903: WIP: Register Allocator Loop Annotations.

@tjakway, are you aware of the outstanding problems with the graph-colouring allocator, in Trac #7679? It would be a shame to do this work if it can't be used due to other unresolved issues.

I was not, thanks very much for pointing that out. I was wondering why I was consistently getting strange benchmarking results... thought I had broken something.

Would something like iterated register coalescing help?

Jan 16 2017, 2:52 AM
simonmar added a comment to D2981: Add missing test files for T13082..

We should fix the .gitignore too, I have no idea why it has foo*

Jan 16 2017, 2:41 AM

Jan 13 2017

simonmar accepted D2972: RtsSymbols: Add purgeObj.
Jan 13 2017, 10:55 AM
simonmar updated the diff for D2959: Some 8.2.1 release notes for my stuff.

address comments

Jan 13 2017, 10:38 AM
simonmar accepted D2971: Always use -Xlinker for -rpath.

LGTM

Jan 13 2017, 7:36 AM
simonmar added a comment to D1259: Don't inline String literals or CallStacks.

Looks like that +20% size increase deserves investigating too.

Jan 13 2017, 6:28 AM
simonmar requested changes to D2743: StgCmmForeign: Emit debug information for safe foreign calls.
Jan 13 2017, 6:11 AM
simonmar accepted D2970: Modify ForeignPtr documentation in light of plusForeignPtr.

Thanks!

Jan 13 2017, 4:53 AM
simonmar updated the diff for D2959: Some 8.2.1 release notes for my stuff.

one more :ghc-flag:

Jan 13 2017, 4:47 AM
simonmar updated the diff for D2959: Some 8.2.1 release notes for my stuff.

address comments

Jan 13 2017, 4:25 AM
simonmar added a comment to D2959: Some 8.2.1 release notes for my stuff.

Thanks for the review @dfeur!

Jan 13 2017, 4:25 AM

Jan 12 2017

simonmar added a comment to D2903: WIP: Register Allocator Loop Annotations.

@tjakway, are you aware of the outstanding problems with the graph-colouring allocator, in Trac #7679? It would be a shame to do this work if it can't be used due to other unresolved issues.

Jan 12 2017, 4:03 AM
simonmar updated the diff for D2959: Some 8.2.1 release notes for my stuff.

address comments

Jan 12 2017, 2:59 AM
simonmar added inline comments to D2934: Abstract over the way eventlogs are flushed.
Jan 12 2017, 2:59 AM
simonmar added inline comments to D2959: Some 8.2.1 release notes for my stuff.
Jan 12 2017, 2:59 AM

Jan 11 2017

simonmar retitled D2959: Some 8.2.1 release notes for my stuff from to Some 8.2.1 release notes for my stuff.
Jan 11 2017, 10:57 AM
simonmar accepted D2955: Bitmap: Use foldl' instead of foldr.

Yup.

Jan 11 2017, 9:28 AM
simonmar accepted D2934: Abstract over the way eventlogs are flushed.

Just a couple of wibbles below

Jan 11 2017, 9:28 AM
simonmar added a comment to D2853: Join points.

The compiler performance regressions are a bit worrying. We should understand those before committing. Perhaps removing the LNE analysis from CoreToStg will help?

Jan 11 2017, 9:00 AM
simonmar added a comment to D2900: base: Add Foreign.ForeignPtr.plusForeignPtr..

Yes, I took a look at this yesterday, I think it's ok. After a bit of thought I realised that plusForeignPtr :: ForeignPtr a -> Int -> ForeignPtr b can't do anything to the finalizer, because it's pure. In the same way that castForeignPtr can't have any effect on the finalizer. But you're probably right that we ought to document it.

Jan 11 2017, 8:39 AM