
#13366: addCStub doesn't allow control over compiler flags or source file file -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bitonic Type: bug | Status: new Priority: high | Milestone: 8.2.1 Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bitonic): The situation is that right now `addCStubs` streams content to the same file that is used for Haskell-from-C exports and `capi` calls, which I think is very fragile. This file includes imports and CPP macros outside the control of the person using `addCStub`, and thus code using `addCStub` might very well break if we change how that file is generated of simply if the C code conflicts with the content that is already in the stubs file. Moreover, if we want to add multi-language support, we needed to generate multiple files anyway. So me, rwbarton, and bgamari concluded that it would be better to just let the user emit an arbitrary number of files that will be compiled and linked with the current module. This is well-suited to `inline-c` since we can collect all the stubs and emit them at once with `addModFinalizer`. Hopefully this makes the motivation for the change clearer. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13366#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler