- User Since
- Jun 6 2014, 12:32 PM (146 w, 2 d)
Thu, Mar 23
Sun, Mar 19
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.
This seems to have turned into a mess...
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).
Sat, Mar 18
Yeah, in practice it seems to not be as easy as I hoped :(
Fri, Mar 17
I was imagining doing something like
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.
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).
Mon, Mar 13
What about Trac #3207? The issue there also applies to most of these, but maybe not the thaw/freeze ones.
Sat, Mar 11
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?
Wed, Mar 8
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.
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.
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?
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).
Tue, Mar 7
Mon, Mar 6
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).
Sun, Mar 5
Sat, Mar 4
Fri, Mar 3
Abandoning in favor of D3270.
Hi @ruperthorlick, thanks for your work on these two tickets!
Thu, Mar 2
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?
But the actual number (line 982) was not changed.
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?
- Make CompleteMatch field names more descriptive, and add comments
Wed, Mar 1
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).
Tue, Feb 28
Nofib results for D3217 here: https://perf.haskell.org/ghc/#revision/d0508ef001e9c93920f6eb066cab5e79041cb886
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.
If this is experimental, then what experiment do you plan to do?
Currently this won't build on non-MachO platforms, so I didn't look much past that.
Adding a flag is what D3177 does.
Agree with adding a comment here, though this seems a bit verbose to me.
Seems better to me. We have some conditionally empty files like rts/Profiling.c already.
D3177 may be of interest.
Mon, Feb 27
- Cleanup and comments from Simon
- More comments and cleanup
Oops, git failure, one moment...
More comments and cleanup
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...
- Cleanup and comments from Simon
Sun, Feb 26
Don't float unboxed things to top level (even when okay for speculation)
Make sure the test fails by default on old version
Fri, Feb 24
make it a list
Feb 24 2017
I believe this is ready to go.
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.
Other than the above LGTM.
Feb 23 2017
Seems like -rdynamic and -fwhole-archive-hs-libs are pretty much analogous, though I hesitate to recommend the flag name -rstatic...
Feb 20 2017
Fix max_bytes_used number
Looks good, thanks!
Feb 19 2017
- Rename test D810
- Only use mkMachIntWrap, etc. where we know it's correct
Feb 18 2017
neurocyte's Android build scripts make a dummy libpthread.a which I guess must be for this purpose, but this is better.
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 17 2017
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.