Feed Advanced Search

Fri, Jul 20

simonmar updated the diff for D4991: Fix the GHCi debugger with ApplicativeDo.

Remove irrelevant changes

Fri, Jul 20, 5:22 AM
simonmar updated the Trac tickets for D4991: Fix the GHCi debugger with ApplicativeDo.
Fri, Jul 20, 3:38 AM
simonmar created D4991: Fix the GHCi debugger with ApplicativeDo.
Fri, Jul 20, 3:34 AM

Wed, Jul 18

simonmar accepted D4982: fix osReserveHeapMemory block alignment.

Good catch.

Wed, Jul 18, 2:44 AM
simonmar updated subscribers of D4967: Use a priority queue for Windows delays.

@Phyx should have a look at this. Also, can you run a benchmark? It's easy to make things theoretically faster but practically slower.

Wed, Jul 18, 2:43 AM

Mon, Jul 16

simonmar committed rGHC71f6b18ba365: Fix space leaks (authored by simonmar).
Fix space leaks
Mon, Jul 16, 9:48 AM
simonmar closed D4872: Fix space leaks.
Mon, Jul 16, 9:48 AM
simonmar accepted D4948: Harden fixST.

I don't think noDuplicate# has any well-defined semantics that we can rely on, so I'm not entirely surprised that you found it difficult to use it to fix Lazy ST.

Mon, Jul 16, 4:23 AM
simonmar added a comment to D4889: rts: address trac issue #13165; Specialize hashing at call site rather than in struct..

Just the benchmarks. Could you run the benchmarks in nofib please? See https://ghc.haskell.org/trac/ghc/wiki/Building/RunningNoFib

Mon, Jul 16, 2:34 AM
simonmar added a comment to D4963: Fix gcCAFs().

@bgamari The code is being executed in lots of tests (e.g. threaded1 runs with -debug), it just isn't printing anything because we don't enable +RTS -DG in any tests. We could do that, but it might be sensitive to optimisation and refactoring in library code.

Mon, Jul 16, 2:30 AM
simonmar added a comment to D4964: loadNativeObj: fail if we attempt to load an object that is already loaded.

Note that the dependent diff still needs some revisions, so we can't push this yet.

Mon, Jul 16, 2:27 AM
simonmar added a comment to D4959: driver: don't enable -Bsymbolic on unregisterised targets (Trac #15338).

Note looks good. Thankyou!

Mon, Jul 16, 2:23 AM
simonmar added a comment to D4967: Use a priority queue for Windows delays.

It doesn't look like this compiles.

Mon, Jul 16, 2:09 AM

Fri, Jul 13

simonmar committed rGHCe40eb738bb15: submodule update (authored by simonmar).
submodule update
Fri, Jul 13, 11:36 AM
simonmar added a comment to D4955: Support the GHCi debugger with -fexternal-interpreter.

@bgamari thanks for the review - all done I think.

Fri, Jul 13, 11:29 AM
simonmar updated the diff for D4955: Support the GHCi debugger with -fexternal-interpreter.

address comments; rebase

Fri, Jul 13, 11:28 AM
simonmar added a comment to D4959: driver: don't enable -Bsymbolic on unregisterised targets (Trac #15338).

Ok, but we need to document the assumptions carefully here. I believe this is it:

Fri, Jul 13, 10:54 AM
simonmar accepted D4884: Replace atomicModifyMutVar#.

Core looks good. Would you mind adding tests? (ok to do it in a separate diff)

Fri, Jul 13, 8:03 AM
simonmar accepted D4928: Fix processHeapClosureForDead CONSTR_NOCAF case:.

Yes, looks good to me. I think I was wrong with my comment before - we removed the distinction between static and dynamic constructors (which is why you only see dynamic CONSTR_NOCAFs) - so we'll create a CONSTR_NOCAF for any constructor that has no pointer fields.

Fri, Jul 13, 6:13 AM
simonmar added a comment to D4872: Fix space leaks.

@bgamari what happened to the OSX build here?

Fri, Jul 13, 6:07 AM
simonmar added a dependency for D4964: loadNativeObj: fail if we attempt to load an object that is already loaded: D4263: [RTS] Add loadNativeObj and unloadNativeObj.
Fri, Jul 13, 6:07 AM
simonmar added a dependent revision for D4263: [RTS] Add loadNativeObj and unloadNativeObj: D4964: loadNativeObj: fail if we attempt to load an object that is already loaded.
Fri, Jul 13, 6:07 AM
simonmar created D4964: loadNativeObj: fail if we attempt to load an object that is already loaded.
Fri, Jul 13, 6:07 AM
simonmar committed rGHC3ee7ca1b07eb: Update submodule (authored by simonmar).
Update submodule
Fri, Jul 13, 4:56 AM
simonmar added a reviewer for D4963: Fix gcCAFs(): noamz.
Fri, Jul 13, 4:50 AM
simonmar created D4963: Fix gcCAFs().
Fri, Jul 13, 4:50 AM
simonmar created D4961: Optimise wakeups for STM.
Fri, Jul 13, 4:27 AM
simonmar added a comment to D4956: Fix deadlock between STM and throwTo.

Ah, I was actually going to revise this to try to make it more efficient. Not to worry, I should remember to set it to Plan Changes next time.

Fri, Jul 13, 3:17 AM

Thu, Jul 12

simonmar added inline comments to D4884: Replace atomicModifyMutVar#.
Thu, Jul 12, 2:25 AM
simonmar added a comment to D4884: Replace atomicModifyMutVar#.

For atomicSwapMutVar# it looks like we don't have the right primitive in Cmm yet, namely %xchg. I suppose we could defer that for a separate diff?

Thu, Jul 12, 2:25 AM
simonmar accepted D4957: Minor refactoring in CmmUtils.mkLiveness.

Huh, I wonder how that happened :)

Thu, Jul 12, 2:14 AM

Wed, Jul 11

simonmar created D4956: Fix deadlock between STM and throwTo.
Wed, Jul 11, 11:01 AM
simonmar updated the diff for D4955: Support the GHCi debugger with -fexternal-interpreter.

fix various minor wibbles

Wed, Jul 11, 9:36 AM
simonmar created D4955: Support the GHCi debugger with -fexternal-interpreter.
Wed, Jul 11, 9:02 AM

Tue, Jul 10

simonmar added inline comments to D4263: [RTS] Add loadNativeObj and unloadNativeObj.
Tue, Jul 10, 11:18 AM
simonmar added inline comments to D4722: Mark system and internal symbols as private symbols in asm.
Tue, Jul 10, 9:14 AM
simonmar updated the diff for D4872: Fix space leaks.

Rebase + update T1969 stats

Tue, Jul 10, 8:29 AM
simonmar added a comment to D4948: Harden fixST.

Can you add a test please?

Tue, Jul 10, 5:53 AM

Fri, Jul 6

simonmar added a comment to D4889: rts: address trac issue #13165; Specialize hashing at call site rather than in struct..

-rwxr-xr-x 1 crazycolorz5 users 18216 Jun 28 21:07 original_ghc
-rwxr-xr-x 1 crazycolorz5 users 18656 Jun 28 21:07 test
As you can see, there's about a 400 byte increase. I'm still unsure how much other compilation options make an effect.

Fri, Jul 6, 9:41 AM
simonmar added a comment to D4263: [RTS] Add loadNativeObj and unloadNativeObj.

Hey @niteria, do you plan to finish this or shall we take it over?

Fri, Jul 6, 3:33 AM

Sat, Jun 30

simonmar added a comment to D4905: Don't lock the MVar closure on tryReadMVar.

I have vague memories that I thought about this and didn't think it would be safe to remove the lock, but silly me I didn't leave a comment.

Sat, Jun 30, 9:02 AM

Wed, Jun 27

simonmar accepted D4893: Document SRT scavenging behavior of scavenge_block() and scavenge_one().
Wed, Jun 27, 6:58 AM
simonmar added a comment to D4900: GC: remove unused field, fix gen spinlock alignment.

So the padding is not there for alignment, it's there for cache line separation. I requested changes because I think this diff might be a regression (but this is complicated, different CPUs have different cache line sizes, and it's likely quite hard to measure the difference)

Wed, Jun 27, 5:01 AM
simonmar accepted D4901: Add ghc-prim as dependency to ghc-bin.

Thankyou!

Wed, Jun 27, 5:01 AM
simonmar requested changes to D4899: Reimplement Control.Concurrent.Chan.

Requesting changes to this bit :)

Wed, Jun 27, 3:45 AM
simonmar requested changes to D4900: GC: remove unused field, fix gen spinlock alignment.

The purpose of the padding is to ensure that sync is on a different cache line from some of the other fields, otherwise one thread spinning on the lock will interfere with other threads modifying other fields of the struct.

Wed, Jun 27, 3:44 AM
simonmar added inline comments to D4892: Show addresses of live objects in GHCi leak check.
Wed, Jun 27, 3:44 AM

Mon, Jun 25

simonmar added inline comments to D4886: Don't allocate in atomicWriteIORef.
Mon, Jun 25, 1:28 PM
simonmar added a comment to D4892: Show addresses of live objects in GHCi leak check.

Cool :)

Mon, Jun 25, 1:05 PM
simonmar added inline comments to D4893: Document SRT scavenging behavior of scavenge_block() and scavenge_one().
Mon, Jun 25, 1:05 PM
simonmar added a comment to D4887: Implement atomicWriteIORef primitively.

My question on D4886 applies here too - why do we need a loop?

Mon, Jun 25, 3:28 AM
simonmar requested changes to D4889: rts: address trac issue #13165; Specialize hashing at call site rather than in struct..

Seems like a sensible idea. What is the effect on code size?

Mon, Jun 25, 3:26 AM
simonmar added a comment to D4886: Don't allocate in atomicWriteIORef.

A test would be nice.

Mon, Jun 25, 3:16 AM

Sat, Jun 23

simonmar added a comment to D4884: Replace atomicModifyMutVar#.

Ah, that was pretty silly. I opened a GHC proposal for this, but I'm beginning to wonder if that was overkill. https://github.com/ghc-proposals/ghc-proposals/pull/149

Sat, Jun 23, 3:02 AM

Jun 22 2018

simonmar added a comment to D4884: Replace atomicModifyMutVar#.

The commit title and summary don't really tell me what this does - can you say what the goal is here? Is there a ticket?

Jun 22 2018, 9:22 AM

Jun 21 2018

simonmar added a comment to D4881: Rename literal constructors.

That's a lot of bits flipped for no functional changes :) I also wonder whether this is worth it. What is it about the Mach prefix that bothers you?

Jun 21 2018, 1:49 PM
simonmar added a comment to D4872: Fix space leaks.

I'll take a look. On Linux there is only the one test showing an improvement, no failures.

Jun 21 2018, 1:36 PM
simonmar accepted D4875: rts: Abort if timerfd read fails.
Jun 21 2018, 3:33 AM
simonmar added a comment to D4722: Mark system and internal symbols as private symbols in asm.

I think my symbol-ordering question was a red herring. There are three kinds of non-exported top-level definitions:

Jun 21 2018, 2:49 AM

Jun 19 2018

simonmar updated the summary of D4872: Fix space leaks.
Jun 19 2018, 10:23 AM
simonmar created D4873: findPtr: don't search the nursery.
Jun 19 2018, 10:09 AM
simonmar created D4872: Fix space leaks.
Jun 19 2018, 10:09 AM

Jun 18 2018

simonmar added a comment to D4846: rts: Don't keep findPtr symbol alive if not -DDEBUG.

@snowleopard You would also need to give it an empty definition in non-DEBUG configurations.

Jun 18 2018, 3:10 AM

Jun 15 2018

simonmar added a comment to D4846: rts: Don't keep findPtr symbol alive if not -DDEBUG.

We could make findPtr exist for all ways, I think that would be the simplest fix.

Jun 15 2018, 3:09 AM

Jun 14 2018

simonmar added a comment to D4846: rts: Don't keep findPtr symbol alive if not -DDEBUG.

Wait, how does this even work? Is this file processed by CPP? If so, is it processed multiple times for different ways?

Jun 14 2018, 12:40 PM
simonmar accepted D4835: Minor refactoring and docs in selector optimisation.

Yeah, I think that's right. As a word of advice: be very careful with this code, it tends to be a bug farm :)

Jun 14 2018, 3:12 AM
simonmar accepted D4713: Mark code related symbols as @function not @object.

LGTM

Jun 14 2018, 2:57 AM

Jun 13 2018

simonmar added a comment to D4831: Do not skip conc004 in GHCi way.

I'm good with this. If there is still a problem it will be good to find out, and if not, we prevent whatever it was from recurring.

Jun 13 2018, 4:51 AM

Jun 12 2018

simonmar added inline comments to D4835: Minor refactoring and docs in selector optimisation.
Jun 12 2018, 2:24 PM
simonmar added a comment to D4837: UNREG: PprC: add support for of W32 literals.

Does this actually make the build succeed? I thought there was a bigger problem, namely Trac #15237

Jun 12 2018, 2:18 PM
simonmar added inline comments to D4835: Minor refactoring and docs in selector optimisation.
Jun 12 2018, 10:16 AM

Jun 11 2018

simonmar added a comment to D4824: Do not omit T4030 in GHCi mode.

Hmm, I wonder what fixed it!

Jun 11 2018, 3:44 AM

Jun 8 2018

simonmar added a comment to D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....

@Abhiroop thanks for the clarification!

Jun 8 2018, 2:39 PM
simonmar accepted D4781: rts: Use .cfi_{start|end}proc directives.

Ok by me.

Jun 8 2018, 2:27 PM

Jun 7 2018

simonmar accepted D4811: rts: Ignore RLIMIT_AS if it is zero.
Jun 7 2018, 2:01 PM
simonmar added a comment to D4679: RTS: Auto-size the allocation area depending on CPU cache size.

Wow, I'm not sure whether this is real but the perf.haskell.org changes are quite remarkable: https://perf.haskell.org/ghc/#compare/875b61ea38aa912d153a30027b51a4f12508bb9a/a98f8a7dd2bae870c45570525182690122666e90.

Jun 7 2018, 11:45 AM

Jun 6 2018

simonmar accepted D4800: Do not scavenge SMALL_MUT_ARR_PTRS_CLEAN in mut_lists.

Nice, I thought we would have to do more than this, but it looks sufficient.

Jun 6 2018, 1:38 PM
simonmar accepted D4798: rts: Fix reference to srt_bitmap in ASSERT in RetainerProfile.
Jun 6 2018, 4:15 AM

Jun 5 2018

simonmar added a comment to D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....

Could we have a little context for this diff please? A descriptive summary would be really great. What problem are you solving? Do you have a test plan and results?

Jun 5 2018, 3:29 PM
simonmar updated subscribers of D4796: Let the simplifier know that seq# forces.

Ok by me, but maybe @simonpj knows a cleaner way to do it.

Jun 5 2018, 2:35 PM
simonmar accepted D4795: rts: Reuse dbl_link_remove in a few places.

Nice.

Jun 5 2018, 6:12 AM
simonmar added a comment to D4789: Force the result of seq#.

The cure seems a bit worse than the disease to me. In exchange for removing a thunk in some rare cases, we get an extra case every time we use evaluate.

Jun 5 2018, 5:21 AM
simonmar added inline comments to D4772: Fix for #15040: Make dtrace enabled GHC work as a bootstrap compiler on FreeBSD.
Jun 5 2018, 5:17 AM
simonmar requested changes to D4794: Remove DIRTY/CLEAN distinction for SMALL_MUT_ARR_PTRS.

Instead of this I think we should respect the CLEAN/DIRTY distinction in scavenge_mutable_list. It's really a bug that we don't do that.

Jun 5 2018, 3:56 AM
simonmar accepted D4784: Rename some mutable closure types for consistency.
Jun 5 2018, 3:50 AM
simonmar added inline comments to D4784: Rename some mutable closure types for consistency.
Jun 5 2018, 3:50 AM

Jun 4 2018

simonmar added inline comments to D4772: Fix for #15040: Make dtrace enabled GHC work as a bootstrap compiler on FreeBSD.
Jun 4 2018, 3:01 AM
simonmar added a comment to D4784: Rename some mutable closure types for consistency.

Yes, this is a good idea, I never liked the 0-suffix naming terminology.

Jun 4 2018, 3:01 AM

Jun 2 2018

simonmar accepted D4754: rts: Query system rlimit for maximum address-space size.

Ok by me if you can get it to validate.

Jun 2 2018, 2:22 AM
simonmar added a comment to D4759: rts: Make LOOKS_LIKE_INFO_PTR a bit more strict.

Might be an idea to do a spot-check on the performance impact of doing this. We don't mind paying for assertions as long as they don't kill performance too much, then we put them behind +RTS -DS.

Jun 2 2018, 2:19 AM
simonmar accepted D4761: vectorise: Put it out of its misery.

Good call.

Jun 2 2018, 1:54 AM

Jun 1 2018

simonmar accepted D4760: rts: Rip out support for STM invariants.

Nice!

Jun 1 2018, 5:06 AM

May 28 2018

simonmar accepted D4740: Check if both branches of an Cmm if have the same target..

Nice!

May 28 2018, 5:41 AM
simonmar accepted D4738: Unmask readMVar in readChan.

Good spot.

May 28 2018, 5:40 AM
simonmar added a comment to D4742: Unpack and simplify QSem.

Could you try a benchmark or two to find out the benefit of this?

May 28 2018, 4:15 AM
simonmar added inline comments to D4734: Update GHC.Stats docs.
May 28 2018, 3:56 AM

May 27 2018

simonmar accepted D4741: Fix validate for GHCi without TABLES_NEXT_TO_CODE.
May 27 2018, 5:31 AM

May 25 2018

simonmar committed rGHCc618732ebb23: isDllName: use Opt_ExternalDynamicRefs, not WayDyn (authored by simonmar).
isDllName: use Opt_ExternalDynamicRefs, not WayDyn
May 25 2018, 4:09 AM
simonmar committed rGHC5b6ef59f9959: Add -fghci-leak-check to check for space leaks (authored by simonmar).
Add -fghci-leak-check to check for space leaks
May 25 2018, 4:09 AM
simonmar added a comment to D4731: UNREG: put SRT into read-only data section.

But SRTs are writable - they have a static link field at the end which is modified by the GC. So I'm confused, how can this work? We should probably fix the declaration to remove the const instead.

May 25 2018, 3:48 AM