erikd (Erik de Castro Lopo)
User

Projects

User does not belong to any projects.

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Saturday

  • Clear sailing ahead.

Badges

User Since
Jun 19 2014, 10:41 PM (144 w, 6 d)
Availability
Available

Recent Activity

Yesterday

erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.
  • More OSX fixes.
Wed, Mar 29, 5:04 AM
erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.

*Rebase against master.

  • Fix another OSX build issue.
Wed, Mar 29, 2:21 AM

Tue, Mar 28

erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.
  • Rebase against master.
  • Fix OS X build.
Tue, Mar 28, 4:29 AM

Mon, Mar 27

erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.

Improve consistency.

Mon, Mar 27, 1:50 PM
erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.
  • Fix T8103 test.
  • Rebase against master.
Mon, Mar 27, 5:57 AM

Sun, Mar 26

erikd added a comment to D3278: Enable new warning for fragile/incorrect CPP #if usage.

If I revert the changes to includes/stg/MachRegs.h and the changes to rts/ghc.mk, mk/wranings.mk (to disable the warnings) it builds fine and passes the T8103 test.

Sun, Mar 26, 4:45 AM
erikd added a comment to D3358: base: Implement bit casts between word and float types.

@simonmar Does this seem right to you?

stg_word64ToDoublezh(I64 w)
{
    D_ d;
    P_ ptr;
Sun, Mar 26, 1:31 AM

Tue, Mar 21

erikd added a comment to D3278: Enable new warning for fragile/incorrect CPP #if usage.

I've tacked down which file is causing that test failure, but still haven't figured out why.

Tue, Mar 21, 3:28 PM

Mon, Mar 20

erikd added inline comments to D3358: base: Implement bit casts between word and float types.
Mon, Mar 20, 3:07 AM
erikd added a comment to D3358: base: Implement bit casts between word and float types.

This seems horribly inefficient.

Mon, Mar 20, 3:05 AM

Sun, Mar 19

erikd added inline comments to D3358: base: Implement bit casts between word and float types.
Sun, Mar 19, 5:50 PM
erikd planned changes to D3358: base: Implement bit casts between word and float types.

The 32 bit code path needs work.

Sun, Mar 19, 3:07 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.
  • Actually get CMM working at least on x86_64.
  • Still looking at fixing x86.
Sun, Mar 19, 3:06 PM
erikd accepted D3367: config.mk.in: Add bzip, gzip, and xz executable names to be overridden.

LGTM!

Sun, Mar 19, 3:05 PM
erikd added a comment to D3358: base: Implement bit casts between word and float types.

The CMM version does actually work for everything except Word64 <--> Double on 32 bit systems (hardly surprising).

Sun, Mar 19, 4:18 AM

Sat, Mar 18

erikd added a comment to D3365: Beef up CMM tests.

Its failing to build because llvm-3.9 is not installed.

Sat, Mar 18, 11:21 PM
erikd created D3365: Beef up CMM tests.
Sat, Mar 18, 9:21 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.
  • Add comments about CMM solution to this problem and why it doesn't currently work.
  • Rebase against master.
Sat, Mar 18, 2:51 AM
erikd updated the summary of D3358: base: Implement bit casts between word and float types.
Sat, Mar 18, 2:16 AM
erikd added a comment to D3358: base: Implement bit casts between word and float types.

Raised https://ghc.haskell.org/trac/ghc/ticket/13442 . Going back to the newByteArray solution for now to prevent this turning into a massive yak shave.

Sat, Mar 18, 2:05 AM
erikd planned changes to D3358: base: Implement bit casts between word and float types.
Sat, Mar 18, 1:14 AM
erikd added a comment to D3358: base: Implement bit casts between word and float types.

I had the CMM code working external to GHC and when I tried to move it to rts (where all the other CMM files seem to be) I get the following CMM lint error:

Cmm lint error:
 in basic block c5
   in assignment: 
     _c2::F64 = I64[Sp + -1 * 8];
     Reg ty: F64
     Rhs ty: I64

The code in question is:

c5: // global
    I64[Sp + -1 * 8] = _c1::I64;
    _c2::F64 = I64[Sp + -1 * 8];

I've not dealt with CMM much before. The linter seems to be complaining about an I64 stack location being assigned to an F64 register? Is there a way to override this?

Sat, Mar 18, 1:14 AM

Fri, Mar 17

erikd added a comment to D3358: base: Implement bit casts between word and float types.

@rwbarton yes, the F_ needs to be D_ for Double but otherwise it seems to work. Worth investigating more.

Fri, Mar 17, 9:11 PM
erikd added a comment to D3358: base: Implement bit casts between word and float types.

It almost seems like it would be easier to implement these in cmm; and more efficient too as you could transfer via the stack rather than allocating a ByteArray.

Fri, Mar 17, 6:02 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.

Still more tweaking of comments.

Fri, Mar 17, 5:53 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.

Improve comments as per @duncan's suggestion.

Fri, Mar 17, 5:35 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.
  • Remove block of empty lines
Fri, Mar 17, 5:21 AM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.
  • Add trac ticket number.
Fri, Mar 17, 4:57 AM
erikd created D3358: base: Implement bit casts between word and float types.
Fri, Mar 17, 4:53 AM
erikd committed rGHCbc21ea0ac849: GHC.Word: Move Read instances to GHC.Read (authored by erikd).
GHC.Word: Move Read instances to GHC.Read
Fri, Mar 17, 3:31 AM
erikd closed D3353: GHC.Word: Move Read instances to GHC.Read by committing rGHCbc21ea0ac849: GHC.Word: Move Read instances to GHC.Read.
Fri, Mar 17, 3:31 AM

Thu, Mar 16

erikd abandoned D3055: WIP Add HeapView functionality.

There's a lot of work to be done on this and I can't see myself finding the time.

Thu, Mar 16, 4:35 PM
erikd added a comment to D3353: GHC.Word: Move Read instances to GHC.Read.

Working on Trac ticket Trac #4092 and therefore need to import GHC.Word in in GHC.Float. Doing so resulted in cyclic imports. Moving the Read instances for the Word* types to GHC.Read breaks this cyclic import.

Thu, Mar 16, 2:10 PM
erikd created D3353: GHC.Word: Move Read instances to GHC.Read.
Thu, Mar 16, 2:06 PM
erikd requested changes to D3352: Replace opt and llc with clang.

You get clang as part of the llvm suite (http://releases.llvm.org/download.html) it is often broken into clang and tools, as you do not necessarily need the tools, unless you want to do something very specific.

Thu, Mar 16, 4:26 AM
erikd added a comment to D3352: Replace opt and llc with clang.

What are the reasons to prefer opt and llc over clang for you?

Thu, Mar 16, 3:23 AM
erikd added a comment to D3351: Don’t force gold on me..

And yes, these lines prevent cross compilation to android.

Thu, Mar 16, 3:22 AM
erikd requested changes to D3351: Don’t force gold on me..

Have you tested that on Arm Linux? For a long time BFD ld was broken on both 32 and 63 bit Arm. If BFD ld has been fixed we probably need a version check on it.

Thu, Mar 16, 3:10 AM
erikd added a comment to D3352: Replace opt and llc with clang.

Currently, I can build GHC on say Arm/Linux with ghc, gcc, opt and llc. That is specifically, *without* clang.

Thu, Mar 16, 2:37 AM

Wed, Mar 15

erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.
  • Rebase against master
  • Fix minor formatting issue @bgamari noticed.
Wed, Mar 15, 3:25 AM

Mon, Mar 6

erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.

Fix some compile errors

Mon, Mar 6, 1:50 AM

Sat, Mar 4

erikd added a comment to D3278: Enable new warning for fragile/incorrect CPP #if usage.

@angerman If that was the only inconsistency in the GHC code base it would be well worth the effort to make it consistent. Furthermore, I think having coding requirements that are not backed up by either the compiler or linting tools is a waste of time. Happy to defer to others if their opinions differ from mine.

Sat, Mar 4, 7:49 PM
erikd created D3278: Enable new warning for fragile/incorrect CPP #if usage.
Sat, Mar 4, 6:11 PM

Feb 24 2017

erikd requested changes to D3149: configure: detect whether -lpthreads is necessary for pthreads.

Code looks good but its failing on Phab.

Feb 24 2017, 7:49 PM
erikd accepted D3149: configure: detect whether -lpthreads is necessary for pthreads.
Feb 24 2017, 7:49 PM

Feb 18 2017

erikd requested changes to D3149: configure: detect whether -lpthreads is necessary for pthreads.
Feb 18 2017, 12:28 AM

Feb 12 2017

erikd accepted D3129: Typecast covers entire expression to fix format warning..
Feb 12 2017, 6:45 AM

Feb 11 2017

erikd added inline comments to D3055: WIP Add HeapView functionality.
Feb 11 2017, 6:48 PM

Feb 9 2017

erikd added inline comments to D3055: WIP Add HeapView functionality.
Feb 9 2017, 1:19 AM

Feb 4 2017

erikd accepted D3074: Fix comment (old file names) in includes/.

LGTM!

Feb 4 2017, 4:11 AM

Feb 3 2017

erikd updated the diff for D3055: WIP Add HeapView functionality.
  • Rename package to ghc-heap
Feb 3 2017, 2:34 AM

Feb 2 2017

erikd retitled D3055: WIP Add HeapView functionality from Add HeapView functionality to WIP Add HeapView functionality.
Feb 2 2017, 2:32 PM
erikd updated the diff for D3055: WIP Add HeapView functionality.
  • Rebase against master
  • Use GHC version in cabal file
  • Move HeapView.h header file to includes/rts/storage/
  • Fix build issue
Feb 2 2017, 1:08 AM

Feb 1 2017

erikd added a comment to D3055: WIP Add HeapView functionality.

We need to add comments in Closure.h, ClosureFlags.c, and ClosureTypes.h reminding contributors to update this file. Perhaps we should be generating all of these files.

Feb 1 2017, 4:00 PM
erikd added a comment to D3055: WIP Add HeapView functionality.

@nomeata Currently this code depends on transformers (for the Storable instances). They can't really be made external without resorting to orphan instances in the external library.

Feb 1 2017, 3:56 PM
erikd updated subscribers of D3055: WIP Add HeapView functionality.

From a discussion on irc:

Feb 1 2017, 3:49 PM
erikd added a comment to D3055: WIP Add HeapView functionality.

@nomeata What do you thing of moving the haskell definition of those types to a different file (say GHC.Exts.HeapView.Closures`) and then generating that file automatically from Closure.h? Doing it this way means no test is needed.

Feb 1 2017, 2:05 PM
erikd added a comment to D3055: WIP Add HeapView functionality.

@Phyx Pretty sure all of the functionality in that header is available via the Haskell module. If that's the case, do you still think it should be public?

Feb 1 2017, 1:32 PM
erikd updated D3055: WIP Add HeapView functionality.
Feb 1 2017, 4:28 AM
erikd added a comment to D3055: WIP Add HeapView functionality.

Not sure if this is the best way to add this. Happy to get advice on improvements.

Feb 1 2017, 4:24 AM
erikd retitled D3055: WIP Add HeapView functionality from to Add HeapView functionality.
Feb 1 2017, 4:22 AM

Jan 29 2017

erikd committed rGHC2e4cd2ec44cc: heapview: Clean up language pragmas (authored by erikd).
heapview: Clean up language pragmas
Jan 29 2017, 3:53 AM
erikd committed rGHC159483539527: heapview: Make constructor fields strict (authored by erikd).
heapview: Make constructor fields strict
Jan 29 2017, 3:53 AM
erikd committed rGHC01c4b2566ae2: heapview: Move HeadView.hs to GHC.Exts (authored by erikd).
heapview: Move HeadView.hs to GHC.Exts
Jan 29 2017, 3:53 AM
erikd committed rGHCeb6cf2a5f811: heapview: Rename `tipe` to `cltype` (authored by erikd).
heapview: Rename `tipe` to `cltype`
Jan 29 2017, 3:53 AM
erikd committed rGHC05c47562053e: heapview: Strip back API (authored by erikd).
heapview: Strip back API
Jan 29 2017, 3:53 AM
erikd committed rGHC9d765cc94fd4: Add tests for heapview (authored by erikd).
Add tests for heapview
Jan 29 2017, 3:53 AM
erikd committed rGHC09c4bb8bd311: heapview.cabal: Remove un-needed dependencies (authored by erikd).
heapview.cabal: Remove un-needed dependencies
Jan 29 2017, 3:53 AM
erikd committed rGHCa089b38012ad: ghc.mk: Add heapview library (authored by erikd).
ghc.mk: Add heapview library
Jan 29 2017, 3:53 AM
erikd committed rGHCf7d3d6a88cfe: Add the heapview library (authored by erikd).
Add the heapview library
Jan 29 2017, 3:53 AM
erikd committed rGHC6a03eac3d9f8: Add RTS support for GHC.HeapView functionality (authored by erikd).
Add RTS support for GHC.HeapView functionality
Jan 29 2017, 3:53 AM
erikd committed rGHC39c5fdc14218: Fix deprecation warnings from containers (authored by erikd).
Fix deprecation warnings from containers
Jan 29 2017, 3:53 AM

Jan 28 2017

erikd added a comment to D3036: Fix deprecation warnings from containers.

Test T4029 was failing before this commit.

Jan 28 2017, 12:47 AM
erikd retitled D3036: Fix deprecation warnings from containers from to Fix deprecation warnings from containers.
Jan 28 2017, 12:46 AM

Jan 27 2017

erikd added a comment to D2999: base: Improve Prelude.read error message.

I've run the stats tests and the only failure is "T4029" which says:

max_bytes_used value is too high:
    Expected    T4029(ghci) max_bytes_used: 21670448 +/-5%
    Lower bound T4029(ghci) max_bytes_used: 20586925 
    Upper bound T4029(ghci) max_bytes_used: 22753971 
    Actual      T4029(ghci) max_bytes_used: 27932072 
    Deviation   T4029(ghci) max_bytes_used:     28.9 %
peak_megabytes_allocated value is too high:
    Expected    T4029(ghci) peak_megabytes_allocated: 71 +/-10%
    Lower bound T4029(ghci) peak_megabytes_allocated: 63 
    Upper bound T4029(ghci) peak_megabytes_allocated: 79 
    Actual      T4029(ghci) peak_megabytes_allocated: 91 
    Deviation   T4029(ghci) peak_megabytes_allocated: 28.2 %
*** unexpected stat test failure for T4029(ghci)

It turns out that this test fails on current git HEAD (2af38b065b506c) without my patch.

Jan 27 2017, 5:33 PM

Jan 25 2017

erikd added a comment to D2999: base: Improve Prelude.read error message.

I have some time to look at this tomorrow.

Jan 25 2017, 5:34 AM

Jan 22 2017

erikd added a comment to D2999: base: Improve Prelude.read error message.

@ezyang Is msgtail an improved name?

Jan 22 2017, 2:19 PM

Jan 21 2017

erikd updated the diff for D2999: base: Improve Prelude.read error message.
  • Simplify error message as suggested by @gridaphobe.
  • Update/improve test.
  • Accept test output.
Jan 21 2017, 8:42 PM
erikd added a comment to D2999: base: Improve Prelude.read error message.

Or maybe we could leave pfail as it is and add pfailMsg which provides more diagnostic info. Its still far more surgery than this trivial Sunday morning patch.

Jan 21 2017, 8:22 PM
erikd added a comment to D2999: base: Improve Prelude.read error message.

@RyanGlScott Yes, good idea. Tests would make this better.

Jan 21 2017, 8:14 PM
erikd retitled D2999: base: Improve Prelude.read error message from to base: Improve Prelude.read error message.
Jan 21 2017, 5:50 PM

Jan 17 2017

erikd accepted D2973: PPC NCG: Implement callish prim ops.

This looks ok to me, but I can't currently built it cause my PowerPC machine is busted.

Jan 17 2017, 3:51 AM

Jan 16 2017

erikd accepted D2981: Add missing test files for T13082..
Jan 16 2017, 1:21 AM
erikd accepted D2980: Unbreak libGHCi by adding missing symbol..

LGTM! The harbormaster build failure seems to be unrelated to this.

Jan 16 2017, 1:20 AM

Jan 15 2017

erikd committed rGHC9d67f04d4892: LLVM: Tweak TBAA metadata codegen (authored by erikd).
LLVM: Tweak TBAA metadata codegen
Jan 15 2017, 1:18 PM
erikd closed D2975: LLVM: Tweak TBAA metadata codegen by committing rGHC9d67f04d4892: LLVM: Tweak TBAA metadata codegen.
Jan 15 2017, 1:18 PM

Jan 14 2017

erikd added a comment to D2975: LLVM: Tweak TBAA metadata codegen.

@DemiMarie I see them now, but since those failures occur when testing the optasm way, my LLVM changes cannot be responsible.

Jan 14 2017, 11:05 PM
erikd added a comment to D2975: LLVM: Tweak TBAA metadata codegen.

I see the T12234 failure, but where is the other one?

Jan 14 2017, 9:02 PM
erikd added a reviewer for D2975: LLVM: Tweak TBAA metadata codegen: DemiMarie.
Jan 14 2017, 8:23 PM
erikd added a comment to D2975: LLVM: Tweak TBAA metadata codegen.

Harbormaster got one unexpected stat failure on test T12234 which seems totally unrelated to my change.

Jan 14 2017, 7:31 PM
erikd retitled D2975: LLVM: Tweak TBAA metadata codegen from to LLVM: Tweak TBAA metadata codegen.
Jan 14 2017, 4:46 PM

Jan 7 2017

erikd committed rGHC7b317effd59f: TH: Add Trustworthy language pragma (authored by erikd).
TH: Add Trustworthy language pragma
Jan 7 2017, 6:19 PM
erikd closed D2546: TH: Add Trustworthy language pragma by committing rGHC7b317effd59f: TH: Add Trustworthy language pragma.
Jan 7 2017, 6:19 PM

Jan 6 2017

erikd added a comment to D2546: TH: Add Trustworthy language pragma.

I'm ok with this as it is.

Jan 6 2017, 5:24 PM
erikd added a comment to D2546: TH: Add Trustworthy language pragma.

Thanks for reminding me about this @RyanGlScott !

Jan 6 2017, 2:53 AM
erikd updated the diff for D2546: TH: Add Trustworthy language pragma.
  • Rebase against master
  • Accept test output (which may not be correct)
Jan 6 2017, 2:53 AM

Jan 3 2017

erikd accepted D2911: -dead_strip is now the default on Darwin.

LGTM!

Jan 3 2017, 1:37 AM

Jan 2 2017

erikd added a reviewer for D2911: -dead_strip is now the default on Darwin: erikd.
Jan 2 2017, 1:35 PM

Dec 11 2016

erikd accepted D2823: Don't have CPP macros expanding to 'defined'..

LGTM!

Dec 11 2016, 12:09 AM

Dec 9 2016

erikd added a comment to D2812: rts/PosixSource.h: Define __USE_MINGW_ANSI_STDIO on Windows.

LGTM!

Dec 9 2016, 1:20 AM