rwbarton (Reid Barton)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Sunday

  • Clear sailing ahead.

User Details

User Since
Jun 6 2014, 12:32 PM (159 w, 6 h)
Availability
Available

Recent Activity

Wed, May 31

rwbarton requested changes to D3352: Clean up opt and llc.

We should not just force PIC on all LLVM users.

Wed, May 31, 8:13 AM

May 15 2017

rwbarton requested changes to D3589: Add support for producing position-indepedent executables.

I'm confused about whether the new flag is to be named -fPIE, -PIE or -pie.

May 15 2017, 5:09 PM
rwbarton added a comment to D3574: Add libffi via submodule.
In D3574#101948, @erikd wrote:

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

No we won't.

You are confused about the difference between using libffi from git (which will be missing auto-generated files and m4 macros) and a libffi tarball whcih should include auto-generated files and m4 macros.

May 15 2017, 5:08 PM
rwbarton 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, 9:46 AM
rwbarton added a comment to D3574: Add libffi via submodule.

That's helpful but wasn't what I wanted to know about. What's this stuff about libtool?

May 15 2017, 9:46 AM
rwbarton added a comment to D3574: Add libffi via submodule.

I hear something about a new dependency. What is it and why is it needed?

May 15 2017, 9:09 AM

May 12 2017

rwbarton added inline comments to D3549: Render \t as 8 spaces in caret diagnostics.
May 12 2017, 5:53 PM
rwbarton added a comment to D3576: base: Explicitly mark Data.Either.{left,right} as INLINABLE.

As I just wrote on Trac #13689, I don't think that issue is really "about" rights. It strikes me as a bug that these definitions do not get unfoldings by default; and that bug could affect many similar definitions in user programs.

May 12 2017, 11:07 AM

May 8 2017

rwbarton requested changes to D3549: Render \t as 8 spaces in caret diagnostics.
May 8 2017, 5:08 PM

May 3 2017

rwbarton added a comment to D3529: Speed up unsafeInterleaveIO.

I still don't understand what's going on here but if the aim is to save allocating 2 words per unsafeInterleaveIO then let's not do it.

May 3 2017, 1:43 PM
rwbarton requested changes to D3529: Speed up unsafeInterleaveIO.

In any case this code is incomprehensible as written.

May 3 2017, 1:34 PM
rwbarton added inline comments to D3529: Speed up unsafeInterleaveIO.
May 3 2017, 11:59 AM

May 2 2017

rwbarton added inline comments to D3518: Add an Eq instance for UniqSet.
May 2 2017, 11:03 PM

May 1 2017

rwbarton added a comment to D3515: Implement sequential name lookup properly.

This looks like a good example of when not to use Monoid, but at least some description of what the meaning of the monoid operation is would be a good thing.

May 1 2017, 12:54 PM
rwbarton added inline comments to D3518: Add an Eq instance for UniqSet.
May 1 2017, 10:58 AM
rwbarton updated the diff for D3516: Avoid excessive space usage from unfoldings in CoreTidy.
  • Reduce perf numbers
May 1 2017, 1:20 AM
rwbarton accepted rGHC0a6c257de5c2: -dead_strip is now the default on Darwin.

See ensuing discussion at Trac #13378.

May 1 2017, 12:27 AM

Apr 30 2017

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

OK, well, it's still the case that -dcmm-lint is on for all tests by default so there is no need to add it to particular tests.

Apr 30 2017, 11:50 PM
rwbarton added a comment to D3375: Experimentally run ST in a fake world.

I realize this is kind of inconvenient to change, but I would be happier if we just called this thing stWorld#, runST#, etc. rather than having to remember the trivia that fakeWorld# is used for ST.

Apr 30 2017, 11:50 PM
rwbarton accepted rGHC18ac80ff729e: tidyType: Rename variables of nested forall at once.

Thanks Joachim!

Apr 30 2017, 11:35 PM
rwbarton added a comment to D3290: Make LLVM output robust to -dead_strip on mach-o platforms.

This change also means that in the mean time we get to strip dead code--we just don't get to strip the info tables attached to dead code.

Apr 30 2017, 7:16 PM
rwbarton added a comment to D3514: Revert "Fix #10923 by fingerprinting optimization level.".

Isn't there a workaround in that ticket? The new behavior is sort of logical after all.

Apr 30 2017, 7:09 PM
rwbarton created D3516: Avoid excessive space usage from unfoldings in CoreTidy.
Apr 30 2017, 6:44 PM
rwbarton added a comment to D3514: Revert "Fix #10923 by fingerprinting optimization level.".

Oh, I really liked this change :(

Apr 30 2017, 3:03 PM
rwbarton raised a concern with rGHC18ac80ff729e: tidyType: Rename variables of nested forall at once.
Apr 30 2017, 12:02 AM

Apr 21 2017

rwbarton added a comment to D3483: Speed up core size and core stats.

I don't understand why this would be faster, could you explain?

Apr 21 2017, 4:21 PM

Apr 11 2017

rwbarton added a comment to D3441: Compile modules that are needed by template haskell, even with -fno-code..

I don't know, hopefully asm isn't too bad with optimization disabled. However, I still am a bit concerned about the compiler touching object files despite the user's rather explicit instructions not to. Maybe I am making too much of this issue though.

Apr 11 2017, 3:10 PM
rwbarton requested changes to D3351: Do not hardcode the specific linker to use.

Maybe it's clang on darwin specific?

Apr 11 2017, 3:09 PM
rwbarton added a comment to D3441: Compile modules that are needed by template haskell, even with -fno-code..

I would be inclined to go with HscAsm. Is bytecode that much faster?

Apr 11 2017, 1:56 PM
rwbarton retitled D3444: [linker] Remove dead code (ELF_FUNCTION_DESC) from [linker] Cleanup to [linker] Remove dead code (ELF_FUNCTION_DESC).
Apr 11 2017, 4:58 AM
rwbarton accepted D3444: [linker] Remove dead code (ELF_FUNCTION_DESC).

Looks like this was unused since b49f7dceb6c2d12c89c947fa0f7f7cb935912de3. Guess there's no point keeping it around.

Apr 11 2017, 4:58 AM

Apr 10 2017

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

By the way, you could also just put the cmm file in the base package, and not have to touch the rts at all.

Apr 10 2017, 8:31 AM

Apr 9 2017

rwbarton 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 9 2017, 4:34 PM
rwbarton added a comment to D3375: Experimentally run ST in a fake world.

Is this still pertinent?

Apr 9 2017, 4:31 PM
rwbarton added a comment to D3429: Only build iserv with -threaded if GhcThreaded is set.

Good point. I have not tested that, as I didn't need ghci for what I was doing.

Apr 9 2017, 4:23 PM
rwbarton added a comment to D3432: fix 'make install' for cross-stage2.

Hi @trofi, I've only been half-following this series of commits, but I'm wondering whether there is any documentation on the intended meaning of make install in various configurations, since make install working when crosscompiling is essentially a new feature? Maybe the wiki page for crosscompiling would be a good place?

Apr 9 2017, 4:22 PM
rwbarton retitled D3433: [MachO] Use OBJFORMAT_MACHO. from [MachO] User OBJETFORMAT. to [MachO] Use OBJFORMAT_MACHO..
Apr 9 2017, 3:58 PM
rwbarton accepted D3433: [MachO] Use OBJFORMAT_MACHO..
Apr 9 2017, 3:48 PM

Apr 8 2017

rwbarton added inline comments to D3358: base: Implement bit casts between word and float types.
Apr 8 2017, 11:11 AM

Apr 7 2017

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

My understanding is that

mk/test.mk:TEST_HC_OPTS = -dcore-lint -dcmm-lint -no-user-$(GhcPackageDbFlag) -rtsopts $(EXTRA_HC_OPTS)

should mean that all tests run with -dcmm-lint by default. Does it not work for cmm_src tests?

Apr 7 2017, 7:46 AM
rwbarton added a comment to D3351: Do not hardcode the specific linker to use.

Otherwise this breaks if the used compiler fails to understand this directive. (looking at you clang!)

Apr 7 2017, 7:37 AM

Apr 6 2017

rwbarton added a comment to D3391: Remove Core Lint pass on occurrence analysis output (#13220).
In D3391#97265, @dfeuer wrote:

Do you know why only one test was affected?

Apr 6 2017, 7:16 PM
rwbarton updated the summary of D3429: Only build iserv with -threaded if GhcThreaded is set.
Apr 6 2017, 7:09 PM
rwbarton created D3430: Suggest correct replacement flag name for -dppr-ticks.
Apr 6 2017, 7:03 PM
rwbarton created D3429: Only build iserv with -threaded if GhcThreaded is set.
Apr 6 2017, 7:03 PM
rwbarton created D3428: Remove GhcDynamic (in favor of DYNAMIC_GHC_PROGRAMS).
Apr 6 2017, 6:43 PM
rwbarton retitled D3421: More changes to fix a space leak in the simplifier (#13426) from Add missing change to fix a space leak in the simplifier (#13426) to More changes to fix a space leak in the simplifier (#13426).
Apr 6 2017, 4:05 PM

Apr 5 2017

rwbarton updated the diff for D3421: More changes to fix a space leak in the simplifier (#13426).
  • Add some more seqType calls, and an explanatory Note
Apr 5 2017, 11:47 AM

Apr 4 2017

rwbarton updated the diff for D3421: More changes to fix a space leak in the simplifier (#13426).
  • simplifier: Don't force sc_hole_ty
Apr 4 2017, 9:39 PM
rwbarton added a comment to D3421: More changes to fix a space leak in the simplifier (#13426).

I confirmed this patch still dramatically reduces DynFlags space usage locally (3694 MB total memory in use -> 1033 MB total memory in use).

Apr 4 2017, 4:45 PM
rwbarton requested changes to D3415: Implement {set,clear,complement}BitBigNat primitives.
Apr 4 2017, 4:42 PM
rwbarton created D3421: More changes to fix a space leak in the simplifier (#13426).
Apr 4 2017, 3:38 PM

Mar 30 2017

rwbarton created D3401: Use strict types and folds in CoreStats.
Mar 30 2017, 6:54 PM
rwbarton added a comment to D3400: Stamp out space leaks from demand analysis.

Nope, but feel free. I wasn't looking to get involved with major structural changes to these complicated modules (Demand and DmdAnal). If all the *Dmd types can be made fully strict without causing a significant increase in work then that would be an improvement.

Mar 30 2017, 6:52 PM
rwbarton created D3400: Stamp out space leaks from demand analysis.
Mar 30 2017, 2:26 PM
rwbarton created D3399: Fix space leaks in simplifier (#13426).
Mar 30 2017, 1:42 PM

Mar 28 2017

rwbarton updated the diff for D3391: Remove Core Lint pass on occurrence analysis output (#13220).

Update T10858 numbers

Mar 28 2017, 6:24 PM
rwbarton created D3391: Remove Core Lint pass on occurrence analysis output (#13220).
Mar 28 2017, 4:23 PM

Mar 27 2017

rwbarton added inline comments to D3373: Don't panic on Core Lint warning about levity-polymorphic unsafe coercion.
Mar 27 2017, 11:35 AM
rwbarton updated the Trac tickets for D3373: Don't panic on Core Lint warning about levity-polymorphic unsafe coercion.
Mar 27 2017, 11:35 AM
rwbarton updated the summary of D3373: Don't panic on Core Lint warning about levity-polymorphic unsafe coercion.
Mar 27 2017, 11:35 AM
rwbarton retitled D3373: Don't panic on Core Lint warning about levity-polymorphic unsafe coercion from Fix #13458 to Don't panic on Core Lint warning about levity-polymorphic unsafe coercion.
Mar 27 2017, 11:35 AM

Mar 23 2017

rwbarton accepted D3348: Check TargetPlatform instead of HostPlatform for leading underscore.
Mar 23 2017, 5:33 PM

Mar 19 2017

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

Also, the stack check code I wrote is definitely wrong, and needs to be fixed in a different way for each argument type (Word# or Float# or Double#). I'm not sure exactly what the right form is, and it would be rather difficult to test; indeed I'm not completely sure whether it is even necessary.

Mar 19 2017, 6:00 PM
rwbarton created D3368: Recompile if -fhpc is added or removed (#11798).
Mar 19 2017, 5:54 PM
rwbarton requested changes to D3358: base: Implement bit casts between word and float types.

This seems to have turned into a mess...

Mar 19 2017, 5:21 PM
rwbarton added a comment to D3358: base: Implement bit casts between word and float types.

If Cmm is not a convenient option, it seems to me like even an FFI call to C would be more efficient (no allocation or branches, just a call/ret).

Mar 19 2017, 11:54 AM

Mar 18 2017

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

Yeah, in practice it seems to not be as easy as I hoped :(

Mar 18 2017, 5:44 PM

Mar 17 2017

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

I was imagining doing something like

#include "Cmm.h"
Mar 17 2017, 6:52 PM
rwbarton 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, 5:56 PM
rwbarton created D3359: x86 nativeGen: Fix test with mask in range [128,255] (#13425).
Mar 17 2017, 3:11 PM
rwbarton requested changes to D3348: Check TargetPlatform instead of HostPlatform for leading underscore.

This seems fine to me aside from the confusing comment. Did you mean that the case on HostPlatform gives the wrong result when cross-compiling (which you fixed), or that the AC_RUN_IFELSE gives the wrong result when cross-compiling? AC_RUN_IFELSE doesn't actually run anything when cross-compiling, so either way the new comment is wrong. (See https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Runtime.html).

Mar 17 2017, 11:55 AM

Mar 13 2017

rwbarton added a comment to D3308: Use runRW# to implement unsafeInterleaveIO.
In D3308#95806, @dfeuer wrote:

Second, I figure we may be able to improve it further using a generalization of runRW#. We win generally with runRW# by inlining it, but only in core prep. We should be able to do something similar using a variant that applies a state token we provide.

Mar 13 2017, 10:47 AM
rwbarton added a comment to D3336: Mark far fewer primops has_side_effects.

What about Trac #3207? The issue there also applies to most of these, but maybe not the thaw/freeze ones.

Mar 13 2017, 10:01 AM

Mar 11 2017

rwbarton added a comment to D3308: Use runRW# to implement unsafeInterleaveIO.
In D3308#95782, @dfeuer wrote:

If it's actually wrong, we should be able to add a test to prove that.

Mar 11 2017, 11:19 AM
rwbarton requested changes to D3308: Use runRW# to implement unsafeInterleaveIO.

This is wrong, see https://www.schoolofhaskell.com/user/snoyberg/general-haskell/advanced/evaluation-order-and-state-tokens. Could you add a note that explains this?

Mar 11 2017, 10:43 AM

Mar 8 2017

rwbarton raised a concern with rGHCe901ed1c5d66: configure: Don't pass GHC's sanitized triple to libraries' configure.

This is the first commit with the error on Windows about unix64.S--a file from libffi which, from its name, I would guess we should not be attempting to compile on Windows.

Mar 8 2017, 9:44 PM
rwbarton requested changes to D3299: Fixed QuasiQuotation test and output.

I don't know what these tests were supposed to test, but I'm fairly sure that whatever it was is not reflected by the current test behavior.

Mar 8 2017, 2:55 PM
rwbarton committed rGHCfdb594ed3286: Comments only [ci skip] (authored by rwbarton).
Comments only [ci skip]
Mar 8 2017, 2:45 PM
rwbarton added a comment to D3298: RFC: Always build GHCi libs.

If I understand correctly this would also increase the size of the unpacked binary distribution by a significant amount (maybe 20% by my estimates). Have you measured that yet?

Mar 8 2017, 8:40 AM
rwbarton added inline comments to D3290: Make LLVM output robust to -dead_strip on mach-o platforms.
Mar 8 2017, 8:16 AM
rwbarton added a comment to D3290: Make LLVM output robust to -dead_strip on mach-o platforms.

You don't need .alt_entry any more if you are putting .no_dead_strip on the info tables (it could only be harmful, by causing even more things to stay live).

I fear, I'm not following.

Without the .alt_entry, we don't have a handle on the start of the prefix data.

Mar 8 2017, 8:13 AM
rwbarton added a comment to D3290: Make LLVM output robust to -dead_strip on mach-o platforms.

You don't need .alt_entry any more if you are putting .no_dead_strip on the info tables (it could only be harmful, by causing even more things to stay live).

Mar 8 2017, 7:19 AM

Mar 7 2017

rwbarton updated the summary of D3290: Make LLVM output robust to -dead_strip on mach-o platforms.
Mar 7 2017, 8:38 AM
rwbarton retitled D3290: Make LLVM output robust to -dead_strip on mach-o platforms from Allow -dead_strip on mach-o platforms to Make LLVM output robust to -dead_strip on mach-o platforms.
Mar 7 2017, 8:31 AM

Mar 6 2017

rwbarton added inline comments to D3280: Allow compilation of C/C++/ObjC/ObjC++ files with module from TH.
Mar 6 2017, 8:17 PM
rwbarton added a comment to D3288: primops: Add comment describing type of atomicModifyMutVar#.

We can't use an unboxed tuple because it would require strict evaluation of the updater function (the reason atomicModifyMutVar# can be atomic is that it just builds a thunk).

Mar 6 2017, 3:29 PM
rwbarton accepted D3287: Mangle .subsections_via_symbols away..
Mar 6 2017, 9:22 AM
rwbarton added inline comments to D3287: Mangle .subsections_via_symbols away..
Mar 6 2017, 9:14 AM
rwbarton added inline comments to D3287: Mangle .subsections_via_symbols away..
Mar 6 2017, 9:13 AM

Mar 5 2017

rwbarton requested changes to D3224: DsBinds: Use Typeable Module binding when desugaring CallStack evidence.
Mar 5 2017, 1:55 PM
rwbarton created D3282: llvm backend: Put string constants in .rodata.str.* sections (#13265).
Mar 5 2017, 1:44 PM

Mar 4 2017

rwbarton created D3276: Add SplitSections = NO to build flavors with SplitObjs = NO.
Mar 4 2017, 2:30 PM

Mar 3 2017

rwbarton abandoned D3266: Update test completesig04.

Abandoning in favor of D3270.

Mar 3 2017, 10:21 AM
rwbarton created D3269: Deserialize IfaceId more lazily.
Mar 3 2017, 7:20 AM
rwbarton created D3268: Comments only, in CSE (#13340).
Mar 3 2017, 7:14 AM
rwbarton added a comment to D3267: Fix stderr files for tests T12429 and T12811.

Hi @ruperthorlick, thanks for your work on these two tickets!

Mar 3 2017, 6:59 AM
rwbarton created D3267: Fix stderr files for tests T12429 and T12811.
Mar 3 2017, 6:54 AM
rwbarton created D3266: Update test completesig04.
Mar 3 2017, 6:49 AM

Mar 2 2017

rwbarton added a comment to D3258: Bump bytes allocated for T12234.

Also it's quite unclear from the perf.haskell.org graph what happened here, maybe the Early inline patch number is from a non-rebased version of the patch?

Mar 2 2017, 3:48 PM