summaryrefslogtreecommitdiff
path: root/compiler/main/DynamicLoading.hs
Commit message (Collapse)AuthorAgeFilesLines
* Change a few throwGhcException uses to throwGhcExceptionIOIan Lynagh2013-01-301-2/+2
|
* When using a GHC plugin, load its interface file very partially: just enough ↵Daniel Vainsencher2012-12-051-4/+3
| | | | that it can be used, without its rules and instances affecting (and being linked from!) the module being compiled.
* Pass DynFlags down to showSDocIan Lynagh2012-06-121-10/+11
|
* Refactor to replace hscGetModuleExports by hscGetModuleInterfaceSimon Peyton Jones2011-08-031-15/+15
| | | | I also tidied up the interfaces for LoadIface to be a bit simpler
* Fix #5289 (loading libstdc++.so in GHCi), and also fix some otherSimon Marlow2011-08-031-1/+20
| | | | | | | | | | | | | linking scenarios. We weren't searching for .a archives to satisfy -lfoo options on the GHCi command line, for example. I've tidied up the code in this module so that dealing with -l options on the command line is consistent with the handling of extra-libraries for packages. While I was here I moved some stuff out of Linker.hs that didn't seem to belong here: dataConInfoPtrToName (now in new module DebuggerUtils) and lessUnsafeCoerce (now in DynamicLoading, next to its only use)
* Add dynamically-linked plugins (see Trac #3843)Simon Peyton Jones2011-06-161-0/+150
This patch was originally developed by Max Bolingbroke, and worked on further by Austin Seipp. It allows you to write a Core-to-Core pass and have it dynamically linked into an otherwise-unmodified GHC, and run at a place you specify in the Core optimisation pipeline. Main components: - CoreMonad: new types Plugin, PluginPass plus a new constructor CoreDoPluginPass in CoreToDo - SimplCore: stuff to dynamically load any plugins, splice them into the core-to-core pipeline, and invoke them - Move "getCoreToDo :: DynFlags -> [CoreToDo]" which constructs the main core-to-core pipeline from CoreMonad to SimplCore SimplCore is the driver for the optimisation pipeline, and it makes more sense to have the pipeline construction in the driver not in the infrastructure module. - New module DynamicLoading: invoked by SimplCore to load any plugins Some consequential changes in Linker. - New module GhcPlugins: this should be imported by plugin modules; it it not used by GHC itself.