simonmar (Simon Marlow)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Friday

  • 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 (141 w, 3 d)
Availability
Available

Recent Activity

Today

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

fix OS X

Wed, Feb 22, 5:07 AM

Yesterday

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!

Tue, Feb 21, 10:41 AM
simonmar updated the diff for D3136: Add -fwhole-archive-hs-libs.
  • Add a test
  • Suggest -rdynamic in the docs
Tue, Feb 21, 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?

Tue, Feb 21, 10:15 AM
simonmar added inline comments to rGHC526c3af1dc98: Use MD5 checksums for recompilation checking (fixes #1372, #1959).
Tue, Feb 21, 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.

Tue, Feb 21, 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.

Tue, Feb 21, 6:00 AM

Mon, Feb 20

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

LGTM

Mon, Feb 20, 2:39 AM

Wed, Feb 15

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

fix OS X

Wed, Feb 15, 4:29 AM

Tue, Feb 14

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

Mon, Feb 13

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

Sat, Feb 11

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!

Sat, Feb 11, 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.
Sat, Feb 11, 3:31 AM

Fri, Feb 10

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

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

Fri, Feb 10, 2:27 PM

Thu, Feb 9

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

Fine modulo one wibble below.

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

Thu, Feb 2

simonmar added inline comments to rGHC03a9ff01812a: [project @ 2005-10-21 14:02:17 by simonmar] Big re-hash of the threaded/SMP….
Thu, Feb 2, 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#?

Thu, Feb 2, 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?

Thu, Feb 2, 2:18 AM

Wed, Feb 1

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

butwhy

Wed, Feb 1, 3:47 AM
simonmar created Image Macro "butwhy".
Wed, Feb 1, 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.

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

Fri, Jan 27

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

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

Fri, Jan 27, 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?

Fri, Jan 27, 2:38 PM

Thu, Jan 26

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?

Thu, Jan 26, 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.

Thu, Jan 26, 8:10 AM

Wed, Jan 25

simonmar added inline comments to D3012: Generalize the type of runRW.
Wed, Jan 25, 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.

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

set the flag too

Wed, Jan 25, 8:17 AM
simonmar retitled D3020: Fatal if we try to reinitialize the RTS from to Fatal if we try to reinitialize the RTS.
Wed, Jan 25, 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

Jan 10 2017

simonmar accepted D2926: event manager: Don't worry if attempt to wake dead manager fails.

Yes, this is probably fine

Jan 10 2017, 10:11 AM
simonmar added a comment to D2948: Expose purgeObj in ObjLink.

nice!

Jan 10 2017, 7:53 AM

Jan 9 2017

simonmar requested changes to D2934: Abstract over the way eventlogs are flushed.

Looks nice! Just a few changes requested below.

Jan 9 2017, 9:43 AM
simonmar added inline comments to D2941: Fix abort and import lib search on Windows.
Jan 9 2017, 2:47 AM
simonmar accepted D2944: Clean up RTS Linker Windows..

Only skimmed the patch, but it looks sensible to me.

Jan 9 2017, 2:35 AM

Jan 6 2017

simonmar committed rGHC3a18baff06ab: More fixes for #5654 (authored by simonmar).
More fixes for #5654
Jan 6 2017, 9:53 AM

Jan 4 2017

simonmar added a comment to D2605: Allow top-level string literals in Core (#8472).

The GHCi changes look fine, so I'm happy with this once @simonpj's latest CSE suggestion is addressed.

Jan 4 2017, 11:15 AM
simonmar added a comment to D2902: Add atomicReadIntOffAddr# primop.
In D2902#84822, @shlevy wrote:

I'm fine with a barrier solution as well, should I switch to that?

Jan 4 2017, 11:07 AM
simonmar added a comment to D2902: Add atomicReadIntOffAddr# primop.

Why do we want this rather than having generic barrier primops? If we added a few barriers instead, we'd have fewer primops I think. There's already the MO_WriteBarrier MachOp, which doesn't have a corresponding Haskell-level primop, but it could.

Jan 4 2017, 5:53 AM

Dec 21 2016

simonmar added a comment to D1259: Don't inline String literals or CallStacks.

Are the nofib results in the summary still valid? A 15% reduction in binary size would be amazing.

Dec 21 2016, 4:12 AM
simonmar accepted D2790: Throw an exception on heap overflow.

Yes, I think this should be fine now, just one suggestion below.

Dec 21 2016, 3:16 AM

Dec 19 2016

simonmar added a comment to D2738: Cmm: Add support for undefined unwinding statements.

Does this mean we can't unwind past an stg_stack_underflow_frame? That would be sad! The next stack chunk is pointed to by the frame, so it should be easy enough to unwind, I'd have thought.

Dec 19 2016, 10:26 AM
simonmar accepted D2846: Support for abi-depends for computing shadowing..

This all looks fine to me. I like the two-stage merging followed by validation, I like the reverse dependency index to speed up the recursive removal., and I like the more informative error messages.

Dec 19 2016, 10:20 AM
simonmar requested changes to D2605: Allow top-level string literals in Core (#8472).

GHCi changes are still pending here (see https://phabricator.haskell.org/D2605#79832)

Dec 19 2016, 6:03 AM
simonmar added inline comments to rGHC4905b83a2d44: Remote GHCi, -fexternal-interpreter.
Dec 19 2016, 4:55 AM
simonmar accepted D2839: Ditch static flags.

OK by me once it passes validate.

Dec 19 2016, 4:45 AM
simonmar requested changes to D2790: Throw an exception on heap overflow.

We'll need another change: currently stats are only collected when +RTS -T is on, so we'll need to collect stats unconditionally. I don't think there's any reason not to.

Dec 19 2016, 3:01 AM

Dec 16 2016

simonmar retitled D2869: Run some tests with -fexternal-interpreter -prof from to Run some tests with -fexternal-interpreter -prof.
Dec 16 2016, 2:36 PM
simonmar retitled D2868: Fix bug in previous fix for #5654 from to Fix bug in previous fix for #5654.
Dec 16 2016, 2:32 PM
simonmar accepted D2863: CLabel: Kill redundant UnitId argument from labelDynamic.

I'm sad that we need the module name here and not just the package name, but if you follow it through it's due to Trac #8696. I still think we should do something more clever though, it's a silly reason to lose an important optimisation.

Dec 16 2016, 10:42 AM
simonmar accepted D2864: Make up a module name for c-- files.

howToAccessLabel only cares about the package (or at least it should, there's something strange going on with HpcTickLabels, but I'm sure it doesn't affect Cmm compilation).

Dec 16 2016, 10:36 AM

Dec 15 2016

simonmar added inline comments to rGHC4905b83a2d44: Remote GHCi, -fexternal-interpreter.
Dec 15 2016, 9:42 AM
simonmar added a comment to D2804: Fix cost-centre-stacks bug (#5654).

It shouldn't have any effect on profiled builds, because we're not running any profiled code, only compiling it. Or perhaps I misunderstood the question?

Dec 15 2016, 4:31 AM
simonmar requested changes to D2850: users_guide: Document the -qa RTS flag.

This is already documented: https://phabricator.haskell.org/diffusion/GHC/browse/master/docs/users_guide/using-concurrent.rst;52c5e55348170f27f5ef1cb010c4c96ab4aa47cc$153-165

Dec 15 2016, 4:26 AM

Dec 14 2016

simonmar added inline comments to D2826: Allow use of the external interpreter in stage1..
Dec 14 2016, 6:39 AM
simonmar added inline comments to D2826: Allow use of the external interpreter in stage1..
Dec 14 2016, 5:16 AM
simonmar created Image Macro "whatkindofsorceryisthis".
Dec 14 2016, 5:14 AM
simonmar requested changes to D2790: Throw an exception on heap overflow.

I think we need to change the way the grace works, see below.

Dec 14 2016, 5:06 AM
simonmar requested changes to D2839: Ditch static flags.

Looks like a step in the right direction, thanks for doing this.

Dec 14 2016, 4:22 AM
simonmar added a comment to D2844: UniqSupply: Use full range of machine word.

Looks ok to me, I think @niteria probably has thoughts.

Dec 14 2016, 2:06 AM

Dec 13 2016

simonmar added a comment to D2826: Allow use of the external interpreter in stage1..

@RyanGlScott sorry, the reason is that we have instance Binary ExitCode in libraries/ghci (which requires Generic ExitCode), and our binary package doesn't have Binary ExitCode. Maybe we need to update binary?

Dec 13 2016, 8:34 AM
simonmar added a comment to D2826: Allow use of the external interpreter in stage1..

Maybe because we derive Generic first for the outer type and that requires Generic ExitCode?

Dec 13 2016, 8:23 AM
simonmar added a comment to D2826: Allow use of the external interpreter in stage1..

@RyanGlScott we derive Binary for lots of things, here's where we use ExitCode: https://phabricator.haskell.org/diffusion/GHC/browse/master/libraries/ghci/GHCi/Message.hs;24f6bec94411aa6c39a2c94ce5154ffe96ae330f$351

Dec 13 2016, 8:10 AM
simonmar added a comment to D2804: Fix cost-centre-stacks bug (#5654).

Your example:

Dec 13 2016, 7:57 AM
simonmar accepted D2813: base: Make raw buffer IO operations more strict.

Seems reasonable.

Dec 13 2016, 7:41 AM
simonmar accepted D2819: Reset FPU precision back to MSVCRT defaults.

Ugh, I remember working on this before, when I wrote the X86_INIT_FPU stuff, it's all horrible.

Dec 13 2016, 6:31 AM
simonmar accepted D2837: procPointAnalysis doesn't need UniqSM.

ok!

Dec 13 2016, 6:05 AM
simonmar added a comment to D2826: Allow use of the external interpreter in stage1..

Yes we'll need to relax the lower bound to make this compile. The requirement is to compile with the past two major releases, which for master means 7.10+.

Dec 13 2016, 5:48 AM

Dec 12 2016

simonmar accepted D2825: Fix Win32 x86 build validation after D2756.

oops

Dec 12 2016, 6:16 AM