ghc-cvs-snapshot with wxHaskell
Simon Marlow
simonmar at microsoft.com
Tue Feb 15 08:15:41 EST 2005
Grab the STABLE snapshot after tonight's build, or get it directly from
CVS (checkout the tag ghc-6-4-branch).
Cheers,
Simon
On 15 February 2005 13:05, Patrick Scheibe wrote:
> Hi Simon,
>
> thank you for having a look at this. I will test it and I hope can
> compile wxHaskell tonight.
>
> Where is the fixed version of the ghc? Is it one of the stable night
> releases or should I make a update of the developer cvs tree of ghc??
>
> Cheers
> Patrick
>
> On Tuesday 15 February 2005 12:25, Simon Marlow wrote:
>> Thanks this looks like a bug that was introduced recently. Now
>> fixed.
>>
>> Cheers,
>> Simon
>>
>> On 08 February 2005 11:43, Patrick Scheibe wrote:
>>> Hi,
>>>
>>>> Could you tell us what command line was supposed to generate the
>>>> Map.d.in or Map.d file? It may be a bug, there were a few changes
>>>> in the driver recently.
>>>>
>>>> Cheers,
>>>> Simon
>>>
>>> I hope I can help you. It would be better Daan would have a look,
>>> because it is his code and he knows exactly what he has done.
>>>
>>> If I understand the things right, then the following call does the
>>> depency check.
>>>
>>> make-hs-deps =$(HC) $(2) $(3) -M -optdep-f -optdep$(basename
>>> $(1)).d.in && \ sed -e 's|$(basename
>>> $(2))|$(basename $(1))|' -e 's|\.hi|\.o|g' $(basename $ (1)).d.in >
>>> $(basename $(1)).d && \ $(call
>>> silent-remove-file,$(basename $(1)).d.in)
>>>
>>> I think the important thing you want to know is that ghc is called
>>> with the -M option!? Here is a comment I found in the Makefile. It
>>> is probably usefull:
>>>
>>> <comment>
>>> # Dependencies are handled (almost) automatically: no need for
>>> "make depend" :-) #
>>> # Makefile implementation notes:
>>> #
>>> # The dependency (.d) files are generated together with object files
>>> using # the compiler -M switch. Such dependency file is later
>>> processed # by sed to prepend the proper directory to the target and
>>> to move it # into the proper (imports) directory. The way dependency
>>> files are handled # was 'discovered' by Tom Tromey, and described by
>>> Paul Smith, # see "advanced auto-dependency generation" at:
>>> # "http://make.paulandlesley.org/autodep.html"
>>> #
>>> # (Unfortunately, there are situations where this method doesn't
>>> work for Haskell # modules -- but these situations are exteremely
>>> rare in practice, nothing that # can't be solved by a "make clean;
>>> make" command. I believe that in the end # this method is much
>>> more robust than "make depend".) # # We use a single makefile in
>>> order to correctly resolve dependencies # between the different
>>> projects -- a recursive make fails to do that, # see "recursive
>>> make considered harmfull" at: #
>>> "http://www.tip.net.au/~millerp/rmch/recu-make-cons-harm.html" #
>>> (We might use include files in the future to split this file in
>>> smaller chunks.) # # We don't use implicit rules (i.e. "%.o: %.c")
>>> as the VPATH mechanism can't # deal with modules with the same name
>>> in different directories :-( # # We edit (sed) the haskell
>>> dependency files to change dependencies on .hi # files to .o files.
>>> We just disregard .hi files and assume they are always # generated
>>> together with the .o file. This allows us to leave out the implicit
>>> # rule for interface files ("%.hi: %.o"). </comment>
>>>
>>> I sent a copy to Daan and hope he joins the discussion and/or it him
>>> fixing the problem without much expenditure of time.
>>>
>>> Cheers
>>> Patrick
>>>
>>>> On 07 February 2005 19:28, Patrick Scheibe wrote:
>>>>> It seems that there are changes in the OpenGl library during the
>>>>> last month. So I decided to load a really young cvs version of the
>>>>> ghc (ghc-6.5.20050206-src.tar.bz2). The compilation works fine.
>>>>>
>>>>> My Problem is, that I also need the wxHaskell library. This
>>>>> compilation fails with the message:
>>>>>
>>>>> <wxoutput>
>>>>> ghc -c wxdirect/src/Map.hs -o out/wxdirect/Map.o -ohi
>>>>> out/wxdirect/Map.hi -odir out/wxdirect/ -package parsec
>>>>> -iout/wxdirect sed: kann out/wxdirect/Map.d.in nicht lesen: Datei
>>>>> oder Verzeichnis nicht gefunden make: *** [out/wxdirect/Map.o]
>>>>> Fehler 2 </wxoutput>
>>>>>
>>>>> The third line is german and means "sed: unable to read
>>>>> out/wxdirect/Map.d.in: File not found".
>>>>> This or an almost similar error appears when I use the cvs
>>>>> version of wxhaskell.
>>>>>
>>>>> I'm also in contact with Daan Leijen, the main developer of
>>>>> wxHaskell. He said:
>>>>>
>>>>> <daan>
>>>>> Darn, it seems that ghc changed its options or something. My
>>>>> makefile generates dependency files (".d" files) using ghc. Since
>>>>> "sed" can't find the file, it is either not generated or it is put
>>>>> at the wrong directory. Can you look around in your file system if
>>>>> there is a Map.d or Map.d.in file somewhere around (maybe
>>>>> Map.hs.d.in ?) I guess it is still in the source directory
>>>>> instead of the out/... directory.
More information about the Glasgow-haskell-users
mailing list