angerman (Moritz Angermann)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 11 2014, 7:17 AM (245 w, 1 d)

Recent Activity

Jan 25 2019

angerman added a comment to D5213: Backend plugins.

@angerman, what is the status of this?

Jan 25 2019, 12:54 AM ยท GHC

Dec 19 2018

angerman accepted D5462: Check that libs found by GCC aren't folders.

Right. As part of D4762. That didnโ€™t cover ghci though it seems ;)

Dec 19 2018, 5:57 PM

Dec 6 2018

angerman added a reviewer for D5409: Hadrian: support extra libraries + OSX rpath: Phyx.

Tamar, could you please have a look wrt. to libffi and windows?

Dec 6 2018, 7:30 PM

Dec 4 2018

angerman requested changes to D5409: Hadrian: support extra libraries + OSX rpath.

The ghci ffi guard breaks the build. Without it, this builds for me on macOS in ~40min for the default build.

Dec 4 2018, 7:41 AM

Dec 3 2018

angerman added a comment to D5353: linker: store entire link map and use it..

Seems to build a ghc on macOS.

Dec 3 2018, 8:39 AM
angerman requested changes to D5406: Hadrian: add -no-dead-strip-dylibs for dynamic GHC.

As determined on IRC today, the proper solution here is to likely teach hadrian about extra-libraries as specified in cabal files.
We currently hardcode some of the in hadrian, but should rather read them from the cabal files and fix the cabal files where
they are missing.

Dec 3 2018, 4:12 AM

Dec 2 2018

angerman added a comment to rGHC79d5427e1f9d: Hadrian: support dynamically linking ghc.

So we are looking for libffi as a dependency of ghci, that makes some sense as ghci does reference quite a bit of libffi symbols.

Dec 2 2018, 11:42 PM
angerman added a comment to rGHC79d5427e1f9d: Hadrian: support dynamically linking ghc.

For completeness sake: here's the dead_strip_dylib documentation:

-dead_strip_dylibs
            Remove dylibs that are unreachable by the entry point or exported symbols. That is, suppresses the generation of load command commands for dylibs
            which supplied no symbols during the link. This option should not be used when linking against a dylib which is required at runtime for some indi-
            rect reason such as the dylib has an important initializer.
Dec 2 2018, 11:36 PM
angerman added a comment to rGHC79d5427e1f9d: Hadrian: support dynamically linking ghc.

The question (to me) is: why doesn't ghc reference libffi if it needs it? Or are we bundling libffi just for convenience?

Dec 2 2018, 11:36 PM
angerman added a comment to D5353: linker: store entire link map and use it..

It doesn't build for me; bails out with some rather weird linker errors.
I wouldn't put it past my system to be screwing me over here. I'll have to try in a clean room install again.

Dec 2 2018, 3:57 AM

Nov 28 2018

angerman added a comment to D5353: linker: store entire link map and use it..
In D5353#148465, @Phyx wrote:

@angerman would it be possible for you to check if this compiles for me on MacOS? It's not a platform I have access to. Thanks ๐Ÿ™‚

Nov 28 2018, 11:05 PM

Nov 22 2018

angerman added inline comments to D5371: Hadrian: improve bindist rule.
Nov 22 2018, 8:18 PM
angerman accepted D5371: Hadrian: improve bindist rule.
Nov 22 2018, 8:17 PM

Oct 23 2018

angerman added inline comments to D5254: Fix for T14251 on ARM.
Oct 23 2018, 8:14 PM

Oct 11 2018

angerman commandeered D5213: Backend plugins.
Oct 11 2018, 4:31 AM ยท GHC

Oct 1 2018

angerman accepted D5190: Multiple fixes / improvements for LLVM backend.

LGTM.

Oct 1 2018, 2:01 AM

Sep 26 2018

angerman accepted D5185: Fix for recover with -fexternal-interpreter (#15481).

Didn't manage to try it, but LGTM source wise.

Sep 26 2018, 9:03 PM

Sep 16 2018

angerman accepted D3915: Updated PE linker, section alignment and cleanup..

Two minor issues, I'd appreciate to see addressed otherwise LGTM.

Sep 16 2018, 9:00 PM

Jul 30 2018

angerman added a comment to D5021: nub rpaths.

This changes the order of these arguments, does it not? Does the -l not need to come after the -L?

Jul 30 2018, 8:39 PM

Jul 28 2018

angerman created D5021: nub rpaths.
Jul 28 2018, 9:49 PM

Jul 27 2018

angerman updated the diff for D5012: Stop the linker panic.
  • maybe linker
Jul 27 2018, 10:12 PM
angerman accepted D5013: Fix Ar crashing on odd-sized object files (Trac #15396).

Assuming it passes CI. LGTM! Thanks!

Jul 27 2018, 10:42 AM
angerman updated the diff for D5012: Stop the linker panic.
  • Add comment.
Jul 27 2018, 7:58 AM
angerman added a comment to D5012: Stop the linker panic.

From the look of the cited tickets it looks like this is something that really ought to have a test.

Jul 27 2018, 1:04 AM

Jul 26 2018

angerman created D5012: Stop the linker panic.
Jul 26 2018, 9:29 PM

Jul 16 2018

angerman accepted D4969: Fix a major copy'n'paste error in LLVM CodeGen.

LGTM

Jul 16 2018, 3:28 AM
angerman raised a concern with rGHC6243bba73d14: Add 'addWordC#' PrimOp.

I have a concern about the LLVM implementation. using *usub*, while the primop name suggests it should be *uadd*.

Jul 16 2018, 1:51 AM
angerman added inline comments to D4592: Add 'addWordC#' PrimOp.
Jul 16 2018, 1:49 AM

Jun 20 2018

angerman added a comment to D4722: Mark system and internal symbols as private symbols in asm.

@last_g if you do not intend to address LLVM in any way in this patch, does this mean it will potentially render the llvm backend broken? I'm not asking for the same functionality in the LLVM backend, just that we ensure not to break -fllvm.

Jun 20 2018, 1:44 AM

Jun 14 2018

angerman added a comment to D4762: Fix gcc.exe: error: CreateProcess: No such file or directory.
In D4762#133575, @Phyx wrote:

Actually, as of two days ago it's even simpler thanks to https://github.com/gcc-mirror/gcc/commit/39bc186ec4a2109b8572427ab0599973542d9c39

I believe the only thing needed now is to wrap end_outgoing_arg https://github.com/gcc-mirror/gcc/blob/39bc186ec4a2109b8572427ab0599973542d9c39/gcc/gcc.c#L4852 in the two stubs I mentioned above when it's making the call to store_arg. So the patch should be 4 lines.

Jun 14 2018, 5:51 AM

Jun 13 2018

angerman added a comment to D4762: Fix gcc.exe: error: CreateProcess: No such file or directory.

Howdy @Phyx, I actually did try my luck on GHC 7.3; but this ended up being really messy. And then I have no idea how to build gcc/mingw on windows properly.

Jun 13 2018, 8:34 PM

Jun 1 2018

angerman added a comment to D4762: Fix gcc.exe: error: CreateProcess: No such file or directory.
In D4762#131532, @Phyx wrote:

I think this shouldn't be added for a number of reasons, among others:

  • You're now going to do several I/O calls extra for each compilation. This can be very expensive, especially on filesystems like NTFS that are slow for small file copies. Things get even worse for large files, and cross disk copies. E.g. For my my temp directory is on another disk. So I will always incur a large hit. The larger the library the larger the silent new wait time. If you don't think this is a problem, it is. This is why things like thin archives were invented for C compilers. And file copies with Directory always go through the GHC I/O manager. In other words, they are slow and there's no way the OS can ever optimize them.
Jun 1 2018, 11:00 PM
angerman added a reviewer for D4762: Fix gcc.exe: error: CreateProcess: No such file or directory: Phyx.
Jun 1 2018, 12:40 AM

May 31 2018

angerman created D4762: Fix gcc.exe: error: CreateProcess: No such file or directory.
May 31 2018, 11:46 PM

May 26 2018

angerman updated the diff for D4436: 8.5: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
  • rebase
May 26 2018, 5:59 AM
angerman added a comment to D4730: Add local @function symbols for the code entries.

Note that while we have the fix in LLVM, the result only works with the llvm-ng backend, not with the stock llvm backend due to the excessive use of aliases in the stock backend, which confuses LLVM's entry-point logic.

May 26 2018, 5:53 AM
angerman requested changes to D4730: Add local @function symbols for the code entries.
May 26 2018, 5:42 AM

May 23 2018

angerman added a comment to D4722: Mark system and internal symbols as private symbols in asm.

As @simonmar noted, the LLVM part is missing, I don't see any fundamental reasons why the LLVM backend could not support the same.
Similar to the -ffunction-sections question:

  • has this been tested on macOS with -dead_strip, which uses the .subsections_via_symbols directive?
  • The lack of symbols as @simonmar noted, is concerning to me as well, and I'm in the same boat, not making the connect with D4713 yet. Could you provide the same Perf-list without the D4713 interaction?
May 23 2018, 5:50 AM

May 20 2018

angerman created D4714: dead strip dylibs on macOS.
May 20 2018, 5:13 PM

May 16 2018

angerman accepted D4695: Extract hard-coded LLVM opt flags into a file.

LGTM. Maybe see the comments.

May 16 2018, 2:14 AM

May 12 2018

angerman accepted D4689: Emit info-level log message when package envs are loaded.

LGTM.

May 12 2018, 11:18 PM

Apr 3 2018

angerman added a comment to D4553: fix #14972; make `searchForLibUsingGcc` verify it returns a file, if gcc claims it found one..
In D4553#126335, @Phyx wrote:

I don't really understand this fix, under what circumstances would GCC return a file that doesn't exist?

The whole point of --print-file-name is to print what would be used for linking. The driver code in GCC already attempt to open the file for reading and would only then return it if the file exists and has the right permissions (so it's a stronger check than what is being done here).

https://github.com/gcc-mirror/gcc/blob/331e56ed8e4ac1adca1e1ecfcd1220f9aaf8673a/gcc/gcc.c#L2758

It would a bit pointless for it to return something the linker couldn't use as that would just error out.

So I'm trying to understand how GCC can find a file for reading yet ghci cant?

Apr 3 2018, 10:24 PM

Apr 2 2018

angerman requested review of D4553: fix #14972; make `searchForLibUsingGcc` verify it returns a file, if gcc claims it found one..
Apr 2 2018, 11:54 PM

Apr 1 2018

angerman accepted D4552: Move gmp/config.mk.in to config.mk.in, fix #14972.

Related: D4553 tries to address (3).

Apr 1 2018, 5:52 AM

Mar 31 2018

angerman accepted D4549: testsuite: allow accepting of fine grained results [skip ci].

hump. LGTM.

Mar 31 2018, 5:55 AM

Mar 25 2018

angerman planned changes to D4436: 8.5: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.

At this point we are waiting on the Hadrian patch to go upstream, then we can merge this.

Mar 25 2018, 9:59 PM
angerman added a comment to D3608: Extend the Quasi Monad.

Any update on this?

Mar 25 2018, 9:59 PM

Mar 19 2018

angerman accepted D4513: Support iOS variants elsewhere when configuring.

LGTM.

Mar 19 2018, 9:45 PM

Mar 6 2018

angerman created D4473: add CCX=$(CXX) to integer-gmp.
Mar 6 2018, 12:18 AM

Mar 5 2018

angerman added a comment to D4467: `--via-asm` only for windows targets.

@trofi you might want to still try --via-asm with https://github.com/haskell/hsc2hs/pull/8. It might be faster, as we do not need to do the binary search for constants.
Ideally we'd also extend it to compute all constants in one go, instead of computing each on their own.

Mar 5 2018, 7:24 PM
angerman accepted D4217: Support adding objects from TH.

Ok, let's do this in 8.6.

Mar 5 2018, 7:22 PM
angerman created D4467: `--via-asm` only for windows targets.
Mar 5 2018, 3:40 AM
angerman updated the diff for D4436: 8.5: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
  • rebase
Mar 5 2018, 1:26 AM

Mar 4 2018

angerman abandoned D4438: 8.4: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.

won't make it in 8.4 anymore.

Mar 4 2018, 8:54 PM

Mar 3 2018

angerman added inline comments to D4439: Compile with `--via-asm` when cross compiling..
Mar 3 2018, 5:17 AM

Mar 2 2018

angerman added a comment to D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).

... and the windows build is green!

Mar 2 2018, 11:58 PM
angerman updated the diff for D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
  • Adds hvr's fix
Mar 2 2018, 6:14 PM
angerman updated the diff for D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
  • Windows, are we friends now?
Mar 2 2018, 2:25 AM

Mar 1 2018

angerman updated the diff for D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
  • add .buildinfo from dist/build into bindist-list
Mar 1 2018, 4:07 AM

Feb 28 2018

angerman updated the diff for D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
  • fix .buildinfo lookup for bindist
Feb 28 2018, 8:21 PM
angerman added inline comments to D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
Feb 28 2018, 8:27 AM
angerman updated the diff for D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
  • in-place is the worst
Feb 28 2018, 8:26 AM

Feb 27 2018

angerman added a comment to D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).

for the record:

make[1]: *** [utils/check-ppr/dist-install/build/Main.dyn_o] Segmentation fault: 11
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [utils/check-api-annotations/dist-install/build/Main.dyn_o] Segmentation fault: 11
make[1]: *** [utils/ghctags/dist-install/build/Main.dyn_o] Segmentation fault: 11
make: *** [all] Error 2
Feb 27 2018, 2:15 AM
angerman updated the diff for D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
  • fix
Feb 27 2018, 1:55 AM
angerman added a comment to D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).

This does however cause my stage2 ghc to segfault, and I have no idea why...

Feb 27 2018, 1:51 AM
angerman created D4453: 8.4: bump cabal to 2.2 (with ghc-cabal).
Feb 27 2018, 1:50 AM

Feb 23 2018

angerman created D4443: Adds *-cross-ncg flavour..
Feb 23 2018, 1:17 AM
angerman updated the diff for D4430: Various Windows / Cross Compile to Windows fixes.
  • rebase
  • drop flavour change
Feb 23 2018, 1:13 AM

Feb 22 2018

angerman added a comment to D4430: Various Windows / Cross Compile to Windows fixes.

Can you add some notes regarding this cross-compilation configuration to the wiki?

At this point, this almost works out of the box. If you have the mingw64 toolchain in $PATH, ./boot && ./configure --target=x86_64-w64-mingw32 && make -j after setting mk/build.mk appropriately will "just work" (assuming the hsc2hs patch).

Feb 22 2018, 7:33 PM
angerman updated the summary of D4439: Compile with `--via-asm` when cross compiling..
Feb 22 2018, 8:10 AM
angerman updated the summary of D4430: Various Windows / Cross Compile to Windows fixes.
Feb 22 2018, 8:09 AM
angerman created D4439: Compile with `--via-asm` when cross compiling..
Feb 22 2018, 8:08 AM
angerman updated the diff for D4430: Various Windows / Cross Compile to Windows fixes.
  • drop hsc2hs related changes. (end up in a different diff: D4439)
Feb 22 2018, 8:06 AM
angerman retitled D4436: 8.5: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv` from Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv` to 8.5: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
Feb 22 2018, 5:08 AM
angerman retitled D4438: 8.4: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv` from Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv` to 8.4: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
Feb 22 2018, 5:08 AM
angerman created D4438: 8.4: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
Feb 22 2018, 5:06 AM
angerman created D4436: 8.5: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
Feb 22 2018, 3:22 AM

Feb 21 2018

angerman added a comment to D4430: Various Windows / Cross Compile to Windows fixes.

Can you add some notes regarding this cross-compilation configuration to the wiki?

Feb 21 2018, 9:09 AM
angerman added inline comments to D4430: Various Windows / Cross Compile to Windows fixes.
Feb 21 2018, 8:02 AM
angerman created D4430: Various Windows / Cross Compile to Windows fixes.
Feb 21 2018, 7:59 AM

Feb 15 2018

angerman updated the diff for D3608: Extend the Quasi Monad.
  • rebase onto master
Feb 15 2018, 1:59 AM
angerman added a comment to D4377: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.

Aside from stat failures; this builds and validates for me locally.

Feb 15 2018, 1:15 AM
angerman updated the diff for D4377: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
  • rebase
  • fix Makefile
  • adds .gitignore
Feb 15 2018, 12:32 AM

Feb 14 2018

angerman updated the diff for D4393: Adds `smp` flag to rts.cabal..
  • rebase
Feb 14 2018, 8:09 PM

Feb 13 2018

angerman updated the diff for D4377: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
  • rebase onto master
Feb 13 2018, 7:59 AM
angerman updated the diff for D4378: adds -latomic to. ghc-prim.
  • adds configure
Feb 13 2018, 7:57 AM
angerman created D4406: Update .cabal files for Cabal 2.1.
Feb 13 2018, 7:49 AM

Feb 12 2018

angerman added a comment to D4378: adds -latomic to. ghc-prim.

I have a working version with the configure script in a local branch.

Feb 12 2018, 8:21 PM

Feb 11 2018

angerman added a comment to D4217: Support adding objects from TH.

@angerman ping!

(Feel free to delay this if you are too busy - like I said, I'm only worried about this being completely forgotten.)

Feb 11 2018, 7:41 PM

Feb 7 2018

angerman updated the diff for D4393: Adds `smp` flag to rts.cabal..
  • update
Feb 7 2018, 12:44 AM
angerman created D4393: Adds `smp` flag to rts.cabal..
Feb 7 2018, 12:43 AM

Feb 6 2018

angerman added a comment to D4378: adds -latomic to. ghc-prim.

Why do we need this?

Feb 6 2018, 9:03 PM
angerman added a comment to D4342: Extended the plugin system to run plugins on the parsed, typechecked representation, splices to be run and interfaces that are loaded. Pre-loading the plugins..

Sorry to be a bit late to the party ๐ŸŽ‰

I believe this plugin approach is a bit different to what I initially wanted to accomplish; my initial
goal was to allow external plugins to be linked in into GHC, and have hooks across the driver
pipeline to swap out/augment phases and/or even reorder the phases. (E.g. the primary idea here
was to implement a different code gen as a plugin; or let a plugin terminate compilation and
accept some intermediate representation as the final result).

As such, I think these constitute two different types of plugins.

For the record, there is a proposal here. However, in general I'm not sure such a general plugin mechanism is desireable; IMHO applications needing such flexibility should just be using the GHC API and write their own frontend.

Can you explain why you think this? Tooling authors have repeatedly explained why it is difficult to use the GHC API. It makes no sense to have to rewrite the whole GHC frontend in order to extract some small piece of information from the end of typechecking.

I believe @bgamari was referring to my type of plugins, not yours @mpickering :-)

Feb 6 2018, 8:51 PM

Feb 5 2018

angerman added a comment to D4342: Extended the plugin system to run plugins on the parsed, typechecked representation, splices to be run and interfaces that are loaded. Pre-loading the plugins..

Sorry to be a bit late to the party ๐ŸŽ‰

Feb 5 2018, 9:33 PM
angerman added a comment to D4378: adds -latomic to. ghc-prim.

@bgamari yey, everything is green... except for Linux which fails with Haddock ๐Ÿ—ก

Feb 5 2018, 9:30 PM
angerman added a comment to D4377: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.

Lovely, haddock is failing... what the hell?

This is a long-standing regression which I have been working to fix but unfortunately have made relatively little progress pinning down. @tdammers has picked up the issue and will hopefully have some progress soon. In the meantime, ignore the failures and I'll validate manually before I merge.

Feb 5 2018, 9:24 PM

Feb 4 2018

angerman added a comment to D4377: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.

Lovely, haddock is failing... what the hell?

Feb 4 2018, 9:17 PM
angerman created D4378: adds -latomic to. ghc-prim.
Feb 4 2018, 8:03 PM
angerman created D4377: Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`.
Feb 4 2018, 8:00 PM

Jan 31 2018

angerman added a comment to D4217: Support adding objects from TH.

@harpocrates, Iโ€™m terribly sorry for letting this languish. Iโ€™m currently bed bound, but will try to give this a try next week. Feel free to ping me next week!

Jan 31 2018, 8:45 PM