rwbarton (Reid Barton)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Tuesday

  • Clear sailing ahead.

Badges

User Since
Jun 6 2014, 12:32 PM (146 w, 2 d)
Availability
Available

Recent Activity

Thu, Mar 23

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

Sun, Mar 19

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.

Sun, Mar 19, 6:00 PM
rwbarton created D3368: Recompile if -fhpc is added or removed (#11798).
Sun, Mar 19, 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...

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

Sun, Mar 19, 11:54 AM

Sat, Mar 18

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 :(

Sat, Mar 18, 5:44 PM

Fri, Mar 17

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

I was imagining doing something like

#include "Cmm.h"
Fri, Mar 17, 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.

Fri, Mar 17, 5:56 PM
rwbarton created D3359: x86 nativeGen: Fix test with mask in range [128,255] (#13425).
Fri, Mar 17, 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).

Fri, Mar 17, 11:55 AM

Mon, Mar 13

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.

Mon, Mar 13, 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.

Mon, Mar 13, 10:01 AM

Sat, Mar 11

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.

Sat, Mar 11, 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?

Sat, Mar 11, 10:43 AM

Wed, Mar 8

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.

Wed, Mar 8, 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.

Wed, Mar 8, 2:55 PM
rwbarton committed rGHCfdb594ed3286: Comments only [ci skip] (authored by rwbarton).
Comments only [ci skip]
Wed, Mar 8, 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?

Wed, Mar 8, 8:40 AM
rwbarton added inline comments to D3290: Make LLVM output robust to -dead_strip on mach-o platforms.
Wed, Mar 8, 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.

Wed, Mar 8, 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).

Wed, Mar 8, 7:19 AM

Tue, Mar 7

rwbarton updated the summary of D3290: Make LLVM output robust to -dead_strip on mach-o platforms.
Tue, Mar 7, 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.
Tue, Mar 7, 8:31 AM

Mon, Mar 6

rwbarton added inline comments to D3280: Allow compilation of C/C++/ObjC/ObjC++ files with module from TH.
Mon, Mar 6, 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).

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

Sun, Mar 5

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

Sat, Mar 4

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

Fri, Mar 3

rwbarton abandoned D3266: Update test completesig04.

Abandoning in favor of D3270.

Fri, Mar 3, 10:21 AM
rwbarton created D3269: Deserialize IfaceId more lazily.
Fri, Mar 3, 7:20 AM
rwbarton created D3268: Comments only, in CSE (#13340).
Fri, Mar 3, 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!

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

Thu, Mar 2

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?

Thu, Mar 2, 3:48 PM
rwbarton added a comment to D3258: Bump bytes allocated for T12234.

But the actual number (line 982) was not changed.

Thu, Mar 2, 3:42 PM
rwbarton requested changes to D3238: Make mmap r+w only during preload for iOS..

You say "While we do not yet enable mmap for ios builds. If we later do, we must not try to mmap r+w+x, on iOS as that clearly fails." Does "not yet" mean even after this entire set of MachO linker-related patches, so this will still be effectively dead code?

Thu, Mar 2, 9:31 AM
rwbarton updated the diff for D3245: Refactor CompleteMatch to contain Names, not type-checked things.
  • Make CompleteMatch field names more descriptive, and add comments
Thu, Mar 2, 9:14 AM
rwbarton updated the diff for D3243: Don't allow orphan COMPLETE pragmas (#13349).

Minor tweaks

Thu, Mar 2, 8:54 AM
rwbarton planned changes to D3245: Refactor CompleteMatch to contain Names, not type-checked things.
Thu, Mar 2, 8:48 AM

Wed, Mar 1

rwbarton added a comment to rGHCd0508ef001e9: When floating, don't box an expression that's okay for speculation (#13338).
In null, @nomeata wrote:

Do you have a grip on the performance regressions?

Benchmark name 	                    previous 	change 	       now 	
nofib/time/fannkuch-redux 	4.706 	+ 11.62% 	5.253 	seconds
nofib/time/k-nucleotide 	        5.323 	+ 4.3% 	        5.552 	seconds
Wed, Mar 1, 1:10 PM
rwbarton planned changes to D3243: Don't allow orphan COMPLETE pragmas (#13349).

Edsko suggests (and I agree) that we ought to describe orphan COMPLETE pragmas as "not supported" rather than "not allowed" (since there's no reason why we couldn't support them, in principle).

Wed, Mar 1, 9:01 AM

Tue, Feb 28

rwbarton added a comment to D3250: Don't float out expressions that are okay for speculation.

Nofib results for D3217 here: https://perf.haskell.org/ghc/#revision/d0508ef001e9c93920f6eb066cab5e79041cb886

Tue, Feb 28, 9:36 PM
rwbarton created D3250: Don't float out expressions that are okay for speculation.
Tue, Feb 28, 9:35 PM
rwbarton added inline comments to D3247: configure: Don't pass GHC's sanitized triple to libraries' configure.
Tue, Feb 28, 6:00 PM
rwbarton created D3245: Refactor CompleteMatch to contain Names, not type-checked things.
Tue, Feb 28, 2:04 PM
rwbarton created D3243: Don't allow orphan COMPLETE pragmas (#13349).
Tue, Feb 28, 11:49 AM
rwbarton added a comment to D3239: rts linker: Introduce MachOTypes.

I think this should actually be squashed into whatever (upcoming?) diff uses the new fields, as it's not really reviewable without, nor does it make much sense to land separately.

Tue, Feb 28, 9:08 AM
rwbarton requested changes to D3189: Change catch# demand signature.

Minor comments.

Tue, Feb 28, 8:05 AM
rwbarton added a comment to D3216: Experimentally make catchException actually strict.

If this is experimental, then what experiment do you plan to do?

Tue, Feb 28, 7:55 AM
rwbarton accepted D3241: iOS: shared objects have .dylib extension..
Tue, Feb 28, 7:49 AM
rwbarton added a comment to D3239: rts linker: Introduce MachOTypes.

Currently this won't build on non-MachO platforms, so I didn't look much past that.

Tue, Feb 28, 7:48 AM
rwbarton requested changes to D3239: rts linker: Introduce MachOTypes.
Tue, Feb 28, 7:47 AM
rwbarton retitled D3239: rts linker: Introduce MachOTypes from Introduce MachOTypes to rts linker: Introduce MachOTypes.
Tue, Feb 28, 7:41 AM
rwbarton requested changes to D3232: iOS - Do *not* build terminfo..

Adding a flag is what D3177 does.

Tue, Feb 28, 7:36 AM
rwbarton added a comment to D3234: Improve documentation for CreateBCOs Message..

Agree with adding a comment here, though this seems a bit verbose to me.

Tue, Feb 28, 7:34 AM
rwbarton added inline comments to D3177: Add flag allowing convenient disabling of terminfo support.
Tue, Feb 28, 7:32 AM
rwbarton added a comment to D3231: Add COMPLETE pragmas for TypeRep and ErrorCall pattern synonyms.

It begins...

Tue, Feb 28, 7:15 AM
rwbarton accepted D3237: Drop copy step from the rts/ghc.mk.

Seems better to me. We have some conditionally empty files like rts/Profiling.c already.

Tue, Feb 28, 7:14 AM
rwbarton added a comment to D3232: iOS - Do *not* build terminfo..

D3177 may be of interest.

Tue, Feb 28, 7:03 AM

Mon, Feb 27

rwbarton added inline comments to D3224: DsBinds: Use Typeable Module binding when desugaring CallStack evidence.
Mon, Feb 27, 3:46 PM
rwbarton added inline comments to D3224: DsBinds: Use Typeable Module binding when desugaring CallStack evidence.
Mon, Feb 27, 3:11 PM
rwbarton added inline comments to D3224: DsBinds: Use Typeable Module binding when desugaring CallStack evidence.
Mon, Feb 27, 3:04 PM
rwbarton updated the diff for D3217: When floating, don't box an expression that's okay for speculation (#13338).
  • Cleanup and comments from Simon
  • More comments and cleanup
Mon, Feb 27, 12:16 PM
rwbarton added a comment to D3217: When floating, don't box an expression that's okay for speculation (#13338).

Oops, git failure, one moment...

Mon, Feb 27, 12:16 PM
rwbarton updated the diff for D3217: When floating, don't box an expression that's okay for speculation (#13338).

More comments and cleanup

Mon, Feb 27, 12:14 PM
rwbarton added a comment to D3217: When floating, don't box an expression that's okay for speculation (#13338).

I did a nofib comparison and no program changed by more than 0.1% in code size or allocations. The machine I ran these on was too noisy for meaningful runtime comparisons. Perhaps perf.haskell.org will eventually build my wip branch...

Mon, Feb 27, 11:39 AM
rwbarton updated the diff for D3217: When floating, don't box an expression that's okay for speculation (#13338).
  • Cleanup and comments from Simon
Mon, Feb 27, 7:45 AM

Sun, Feb 26

rwbarton updated the diff for D3217: When floating, don't box an expression that's okay for speculation (#13338).

Don't float unboxed things to top level (even when okay for speculation)

Sun, Feb 26, 2:04 PM
rwbarton planned changes to D3217: When floating, don't box an expression that's okay for speculation (#13338).
Sun, Feb 26, 1:01 PM
rwbarton updated the diff for D3217: When floating, don't box an expression that's okay for speculation (#13338).

Make sure the test fails by default on old version

Sun, Feb 26, 11:26 AM
rwbarton created D3217: When floating, don't box an expression that's okay for speculation (#13338).
Sun, Feb 26, 11:21 AM
rwbarton accepted D3215: Add testcase for #13340.
Sun, Feb 26, 9:42 AM

Fri, Feb 24

rwbarton updated the diff for D3210: Manually move extra_files for tests T9579_*.

make it a list

Fri, Feb 24, 6:59 PM
rwbarton created D3210: Manually move extra_files for tests T9579_*.
Fri, Feb 24, 6:58 PM
rwbarton added inline comments to D3189: Change catch# demand signature.
Fri, Feb 24, 5:17 PM

Feb 24 2017

rwbarton accepted D3028: Load dependent dlls..
Feb 24 2017, 11:23 AM
rwbarton updated the test plan for D810: Ensure that Literals are in range.
Feb 24 2017, 11:21 AM
rwbarton added a comment to D810: Ensure that Literals are in range.

I believe this is ready to go.

Feb 24 2017, 11:20 AM
rwbarton accepted D3187: build system: Persist CrossCompiling in binary distributions.

Is it explained somewhere obvious which kind of bindist we produce when cross-compiling? In principle it would make sense to be able to build a binary distribution containing either the cross-compiler or the cross-compiled stage 2 compiler. They would need different builds of the various utilities.

Feb 24 2017, 11:16 AM
rwbarton accepted D3188: Bring sanity to openTempFile.

Better than before.

Feb 24 2017, 11:12 AM
rwbarton requested changes to D3177: Add flag allowing convenient disabling of terminfo support.

Other than the above LGTM.

Feb 24 2017, 11:08 AM

Feb 23 2017

rwbarton added a comment to D3136: Add -fwhole-archive-hs-libs.

Seems like -rdynamic and -fwhole-archive-hs-libs are pretty much analogous, though I hesitate to recommend the flag name -rstatic...

Feb 23 2017, 12:47 PM
rwbarton requested changes to D3177: Add flag allowing convenient disabling of terminfo support.
Feb 23 2017, 10:16 AM

Feb 20 2017

rwbarton added a comment to D3164: Use half as much memory when reading interfaces.

@simonmar you added the *2 in 526c3af1dc98987b6949f4df73c0debccf9875bd, do you remember why?

Feb 20 2017, 1:58 PM
rwbarton updated the summary of D3164: Use half as much memory when reading interfaces.
Feb 20 2017, 1:50 PM
rwbarton updated the diff for D3164: Use half as much memory when reading interfaces.

Fix max_bytes_used number

Feb 20 2017, 1:50 PM
rwbarton created D3164: Use half as much memory when reading interfaces.
Feb 20 2017, 1:49 PM
rwbarton accepted D3147: Fix #13287 adding handling of -- to getArgs for Windows..

Looks good, thanks!

Feb 20 2017, 9:14 AM

Feb 19 2017

rwbarton added inline comments to D810: Ensure that Literals are in range.
Feb 19 2017, 6:02 PM
rwbarton added inline comments to D810: Ensure that Literals are in range.
Feb 19 2017, 6:01 PM
rwbarton updated the diff for D810: Ensure that Literals are in range.
  • Rename test D810
  • Only use mkMachIntWrap, etc. where we know it's correct
Feb 19 2017, 5:37 PM

Feb 18 2017

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

neurocyte's Android build scripts make a dummy libpthread.a which I guess must be for this purpose, but this is better.

Feb 18 2017, 12:20 PM
rwbarton added a comment to D3141: testsuite: Move echoing commands in make invocations to VERBOSE=5.

I've never used this echoing feature before (since I didn't know about it), but I have done the same thing manually, so it is useful. The best outcome would be if we could extract the echoed commands separately from the stdout of the test commands, so we could echo them without interfering with checking the test output.

Feb 18 2017, 7:21 AM

Feb 17 2017

rwbarton added a comment to D3143: Correct the nursery size in the gen 1 growth computation (rts: fix trac issue #13288).

Sorry to not have any substantive comment at this time, but please use a more descriptive revision title than "rts: fix trac issue Trac #13288". That title will become the commit title; it's helpful to be able to know what area of the code a commit touches from its title, and the RTS has many parts.

Feb 17 2017, 7:22 AM

Feb 15 2017

rwbarton created D3141: testsuite: Move echoing commands in make invocations to VERBOSE=5.
Feb 15 2017, 7:03 PM
rwbarton created D3140: testsuite: Remove old python version tests.
Feb 15 2017, 7:02 PM