If the environment variable 'HALIVE_STACK_COMPONENT' is set, its value
will be passed to 'stack ghci' as the component to use. The command
line used to launch 'ghci' is extracted from 'stack' log output, and the
'-package-id=<...>' arguments used to configure the 'DynFlags' passed to
'runGhc'.
This is necessary when the stack package dbs contain multiple packages
that provide the same module. Without it, 'runGhc' will not be able to
know which package should be used to provide the module, producing an
error such as this:
demo/Shader.hs:3:8:
Ambiguous module name ‘Graphics.GL’:
it was found in multiple packages:
gl-0.7.7@gl_8feL1KNX30C7cRvC5KMerD OpenGLRaw-3.0.0.0@OpenG_2ifknuoKtb4Jnk98tmsl6Y
This is very slow, since it has to compile the project with 'ghci' just
to get the arguments -- only to be used to compile it again! But it
does make 'halive' work in situations where, without it, there would
only be failure.
(A proper solution would involve modifying 'stack' to provide this
information more efficiently.)
If the environment variable 'HALIVE_STACK_COMPONENT' is set, its value will be passed to 'stack ghci' as the component to use. The command line used to launch 'ghci' is extracted from 'stack' log output, and the '-package-id=<...>' arguments used to configure the 'DynFlags' passed to 'runGhc'.
This is necessary when the stack package dbs contain multiple packages that provide the same module. Without it, 'runGhc' will not be able to know which package should be used to provide the module, producing an error such as this:
demo/Shader.hs:3:8: Ambiguous module name ‘Graphics.GL’: it was found in multiple packages: gl-0.7.7@gl_8feL1KNX30C7cRvC5KMerD OpenGLRaw-3.0.0.0@OpenG_2ifknuoKtb4Jnk98tmsl6Y
This is very slow, since it has to compile the project with 'ghci' just to get the arguments -- only to be used to compile it again! But it does make 'halive' work in situations where, without it, there would only be failure.
(A proper solution would involve modifying 'stack' to provide this information more efficiently.)