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.

User Details

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

Recent Activity

Wed, Jun 7

erikd accepted D3630: Fix a lost-wakeup bug in BLACKHOLE handling (#13751).
Wed, Jun 7, 5:10 PM
erikd added inline comments to D3630: Fix a lost-wakeup bug in BLACKHOLE handling (#13751).
Wed, Jun 7, 6:59 AM

Sat, May 27

erikd updated the summary of D3365: Beef up CMM tests.
Sat, May 27, 4:20 AM
erikd updated the diff for D3365: Beef up CMM tests.

Fix it.

Sat, May 27, 4:13 AM

Fri, May 26

erikd committed rGHC52fe138ef7fb: user-guide: Add since annotation for -Wcpp-undef (authored by erikd).
user-guide: Add since annotation for -Wcpp-undef
Fri, May 26, 11:55 PM
erikd closed D3612: user-guide: Add since annotation for -Wcpp-undef by committing rGHC52fe138ef7fb: user-guide: Add since annotation for -Wcpp-undef.
Fri, May 26, 11:55 PM
erikd created D3612: user-guide: Add since annotation for -Wcpp-undef.
Fri, May 26, 5:00 AM

May 17 2017

erikd accepted D3591: Bump to LLVM 4.0.
May 17 2017, 7:46 PM

May 15 2017

erikd added a comment to D3574: Add libffi via submodule.

So when libffi eventually does have a new release will we still need the new dependency libtldl-dev to build GHC?

May 15 2017, 3:46 PM

May 14 2017

erikd accepted D3583: rts/linker/ElfTypes.h: restore powerps (and others) support.
May 14 2017, 5:42 AM
erikd added a comment to D3583: rts/linker/ElfTypes.h: restore powerps (and others) support.

LGTM if it validates.

May 14 2017, 5:42 AM
erikd added a comment to D3574: Add libffi via submodule.

*If* we add this, it should only be a temporary measure. It should never be part of the source distribution and the source distribution should *always* work with a recent *release* version.

May 14 2017, 5:05 AM

May 1 2017

erikd planned changes to D3365: Beef up CMM tests.

Bah, still not right. Probably too tired. Will fix tomorrow.

May 1 2017, 6:11 AM
erikd updated the diff for D3365: Beef up CMM tests.

Drop redundant -dcmm-lint

May 1 2017, 5:58 AM
erikd added a comment to D3365: Beef up CMM tests.

@rwbarton Ack. Will fix!

May 1 2017, 3:09 AM

Apr 30 2017

erikd accepted D3512: PPC NCG: Lower MO_*_Fabs as PowerPC fabs instruction.

LGTM!

Apr 30 2017, 6:01 AM

Apr 23 2017

erikd accepted D3481: compiler/cmm/PprC.hs: constify labels in .rodata.
Apr 23 2017, 3:17 PM

Apr 22 2017

erikd accepted D3485: Prefer #if defined to #ifdef.
Apr 22 2017, 11:00 PM
erikd accepted D3486: rts: Fix "ASSERT ("s.

Yay!

Apr 22 2017, 4:55 PM

Apr 21 2017

erikd added a comment to D3481: compiler/cmm/PprC.hs: constify labels in .rodata.

The Windows build error is a phab build bot error unrelated to this code.

Apr 21 2017, 9:12 PM
erikd added a comment to D3482: cpp: Use #pragma once instead of #ifndef guards.

Really like the idea of this patch but it doesn't build yet.

Apr 21 2017, 9:08 PM
erikd accepted D3480: Fix build on DragonflyBSD.

Should the linter complain about lines that have not been changed?

Apr 21 2017, 2:59 AM

Apr 15 2017

erikd updated the diff for D3365: Beef up CMM tests.

Rebase against master.

Apr 15 2017, 4:25 PM

Apr 12 2017

erikd accepted D3423: arc-linters: Add linting of #ifdef x and #if defined x.

I don't really do Python, but I applied the patch and ran the linter against some existing files.

Apr 12 2017, 12:06 AM

Apr 11 2017

erikd updated the diff for D3358: base: Implement bit casts between word and float types.

Move CMM code to base library as requested.

Apr 11 2017, 3:27 AM

Apr 10 2017

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

Tested on x86/linux and x86_64/linux. Maybe @trofi or someone could test on other architectures.

Apr 10 2017, 7:17 AM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.

Improve the test.

Apr 10 2017, 7:16 AM
erikd added a comment to D3358: base: Implement bit casts between word and float types.

I'd be happier if we had some more decent tests, that would be less likely to pass under a completely broken implementation.

Apr 10 2017, 3:57 AM

Apr 9 2017

erikd updated the diff for D3358: base: Implement bit casts between word and float types.

Fix typos in comments.
Use %lobits32.

Apr 9 2017, 7:15 AM

Apr 7 2017

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

This patch is mainly about making sure the CCM tests get run with the LLVM backend. For instance, running make test TEST="T7574" before my patch:

=====> T7574(normal) 1 of 1 [0, 0, 0]
cd "./codeGen/should_compile/T7574.run" &&  "/home/erikd/Git/ghc-upstream/inplace/test   spaces/ghc-stage2" -c T7574.cmm -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output   -no-hs-main
Apr 7 2017, 5:20 PM
erikd updated the diff for D3365: Beef up CMM tests.

Fix email address

Apr 7 2017, 5:11 AM
erikd updated the diff for D3365: Beef up CMM tests.

Rebase against master.

Apr 7 2017, 5:11 AM

Apr 6 2017

erikd committed rGHCb5f6a937b2d4: Update .mailmap [skip ci] (authored by erikd).
Update .mailmap [skip ci]
Apr 6 2017, 6:45 AM

Apr 4 2017

erikd planned changes to D3358: base: Implement bit casts between word and float types.
Apr 4 2017, 4:43 PM
erikd requested review of D3358: base: Implement bit casts between word and float types.
Apr 4 2017, 4:42 PM
erikd planned changes to D3358: base: Implement bit casts between word and float types.
Apr 4 2017, 4:19 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.
  • Remove last vestigaes of Haskell land allocation method.
  • Comments.
Apr 4 2017, 4:19 PM
erikd committed rGHC7e340c2bbf4a: Enable new warning for fragile/incorrect CPP #if usage (authored by erikd).
Enable new warning for fragile/incorrect CPP #if usage
Apr 4 2017, 2:56 PM
erikd closed D3278: Enable new warning for fragile/incorrect CPP #if usage by committing rGHC7e340c2bbf4a: Enable new warning for fragile/incorrect CPP #if usage.
Apr 4 2017, 2:56 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.

Fix Windows by adding needed symbols to RTS_SYMBOLS. Thanks @Phyx !

Apr 4 2017, 6:37 AM
erikd updated subscribers of D3358: base: Implement bit casts between word and float types.

The Linux build failure seems totally unrelated to this patch, but the Windows one very definitely is this patch. @Phyx Any clue what's going on here?

Apr 4 2017, 4:35 AM
erikd edited reviewers for D3358: base: Implement bit casts between word and float types, added: trofi; removed: austin, hvr.
Apr 4 2017, 3:19 AM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.

Make it actually work

Apr 4 2017, 3:16 AM

Apr 3 2017

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

Rebase against master

Apr 3 2017, 9:38 PM

Apr 1 2017

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

This finally seems to be ready to go.

Apr 1 2017, 8:22 PM
erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.

Yet more OS X fixes.

Apr 1 2017, 5:55 AM

Mar 31 2017

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

Yet more OS X fixes.

Mar 31 2017, 4:58 PM

Mar 29 2017

erikd updated the diff for D3278: Enable new warning for fragile/incorrect CPP #if usage.
  • More OSX fixes.
Mar 29 2017, 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.
Mar 29 2017, 2:21 AM

Mar 28 2017

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

Mar 27 2017

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

Improve consistency.

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

Mar 26 2017

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.

Mar 26 2017, 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;
Mar 26 2017, 1:31 AM

Mar 21 2017

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

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

Mar 21 2017, 3:28 PM

Mar 20 2017

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

This seems horribly inefficient.

Mar 20 2017, 3:05 AM

Mar 19 2017

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

The 32 bit code path needs work.

Mar 19 2017, 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.
Mar 19 2017, 3:06 PM
erikd accepted D3367: config.mk.in: Add bzip, gzip, and xz executable names to be overridden.

LGTM!

Mar 19 2017, 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).

Mar 19 2017, 4:18 AM

Mar 18 2017

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

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

Mar 18 2017, 11:21 PM
erikd created D3365: Beef up CMM tests.
Mar 18 2017, 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.
Mar 18 2017, 2:51 AM
erikd updated the summary of D3358: base: Implement bit casts between word and float types.
Mar 18 2017, 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.

Mar 18 2017, 2:05 AM
erikd planned changes to D3358: base: Implement bit casts between word and float types.
Mar 18 2017, 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?

Mar 18 2017, 1:14 AM

Mar 17 2017

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.

Mar 17 2017, 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.

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

Still more tweaking of comments.

Mar 17 2017, 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.

Mar 17 2017, 5:35 PM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.
  • Remove block of empty lines
Mar 17 2017, 5:21 AM
erikd updated the diff for D3358: base: Implement bit casts between word and float types.
  • Add trac ticket number.
Mar 17 2017, 4:57 AM
erikd created D3358: base: Implement bit casts between word and float types.
Mar 17 2017, 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
Mar 17 2017, 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.
Mar 17 2017, 3:31 AM

Mar 16 2017

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.

Mar 16 2017, 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 into GHC.Float. Doing so resulted in cyclic imports. Moving the Read instances for the Word* types to GHC.Read breaks this cyclic import.

Mar 16 2017, 2:10 PM
erikd created D3353: GHC.Word: Move Read instances to GHC.Read.
Mar 16 2017, 2:06 PM
erikd requested changes to D3352: Clean up opt and llc.

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.

Mar 16 2017, 4:26 AM
erikd added a comment to D3352: Clean up opt and llc.

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

Mar 16 2017, 3:23 AM
erikd added a comment to D3351: Do not hardcode the specific linker to use.

And yes, these lines prevent cross compilation to android.

Mar 16 2017, 3:22 AM
erikd requested changes to D3351: Do not hardcode the specific linker to use.

Have you tested that on Arm64 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.

Mar 16 2017, 3:10 AM
erikd added a comment to D3352: Clean up opt and llc.

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

Mar 16 2017, 2:37 AM

Mar 15 2017

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

Mar 6 2017

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

Fix some compile errors

Mar 6 2017, 1:50 AM

Mar 4 2017

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.

Mar 4 2017, 7:49 PM
erikd created D3278: Enable new warning for fragile/incorrect CPP #if usage.
Mar 4 2017, 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