logo       

RE: GHCi bug - the impossible happened loading FranTk with ghc-6.0 on : msg#00081

lang.haskell.glasgow.bugs

Subject: RE: GHCi bug - the impossible happened loading FranTk with ghc-6.0 on Win32

Simon

The underlying problem is that no one is maintaining FranTk at the
moment. Perhaps you'd like to?

Anyway, FranTk seems to use an un-documented (and therefore unreliable)
hook into GHC's RTS. When you use GHCi to load systems that link to RTS
hooks, the dynamic linker's symbol table must be initialised to include
those symbols. So the 'solution' here is to add 'run_queue_hd' to the
RTS_SYMBOLS in ghc/rts/Linker.c. You'll need to build GHC from source
do to this.

Longer term, it'd be a good plan to see just what FranTk wants to know
here, and what API the RTS should expose to support it.

Admittedly, ghci dies with a rather unhelpful message

Simon


| -----Original Message-----
| From: Meurig Sage [mailto:msage@xxxxxxxxxxxxxxxxx]
| Sent: 12 June 2003 16:26
| To: Simon Peyton-Jones
| Cc: Meurig Sage
| Subject: Re: GHCi bug - the impossible happened loading FranTk with
ghc-6.0 on Win32
|
| Hi Simon
|
...
|
| That being said as far as I remember:
| FranTk contains the following function which attempts to check whether
there
| are any other threads waiting to be scheduled. If there are none then
it
| blocks waiting for more user input events, if there are any then it
simply
| queries the user input event queue and returns immediately. This makes
use
| of a variable run_queue_hd exported by Schedule.h (I think) in the ghc
| run-time system. When I was working on this in ghc-5.0x ghc compiled
ghc
| code provided access to this variable but ghc-i did not. Not sure what
Simon
| Marlow has done to this since.
|
| Hope this helps
|
| The function that does the check is the following one in
| FranTk/TclHaskellSrc/TclCompatibilityGhcSupportsConcurrency.hs.
|
|
| isOnlyProcess :: IO Bool
| isOnlyProcess = fmap toBool $ _casm_ ``%r = run_queue_hd ==
END_TSO_QUEUE;''
| where
| toBool :: Int -> Bool
| toBool 0 = False
| toBool _ = True
|
| Meurig
|
| ----- Original Message -----
| From: "Simon Peyton-Jones" <simonpj@xxxxxxxxxxxxx>
| To: "Meurig Sage" <meurig@xxxxxxxxxxxxx>
| Sent: Thursday, June 12, 2003 2:13 PM
| Subject: FW: GHCi bug - the impossible happened loading FranTk with
ghc-6.0
| on Win32
|
|
| Hi Meurig
|
| Are you still around? Do you remember what the issue is here? We
| havn't the foggiest idea
|
| Simon
|
| -----Original Message-----
| From: glasgow-haskell-bugs-admin@xxxxxxxxxxx
| [mailto:glasgow-haskell-bugs-admin@xxxxxxxxxxx] On Behalf Of Guest,
| Simon
| Sent: 12 June 2003 09:12
| To: glasgow-haskell-bugs@xxxxxxxxxxx
| Subject: GHCi bug - the impossible happened loading FranTk with
ghc-6.0
| on Win32
|
| I can use FranTk with GHC-6.0 on Windows XP just fine in some
| configurations.
| It's OK when compiling with GHC. It's also OK with GHCi when using
| FranTk with no concurrency.
|
| However, when trying to load a concurrency enabled FranTk into GHCi, I
| get "the impossible happened".
|
| I tried the workaround for the other GHCi bug, but this apparently
| different, as shown below.
|
| Full disclosure requires me to highlight the following text from the
| FranTk makefile:
|
| # Ununcomment this line to support concurrency.
| # This support does NOT work with ghci. It does not currently export
| # the special run_head_queue variable. Will allegedly
| # be fixed in a future version of ghc.
|
| # this version supports concurrency
| SUPPORTCONCURRENCY = TclCompatibilityGhcSupportsConcurrency.hs
|
| Is it simply that this hasn't been fixed yet? (I'm not sure what
| symptoms are "expected".)
| I'd very much like to be able to use FranTk with concurrency. Any
| chance of a fix?
|
| cheers,
| Simon
|
| ------------
| sjg-pc$ ghci
| ___ ___ _
| / _ \ /\ /\/ __(_)
| / /_\// /_/ / / | | GHC Interactive, version 6.0, for Haskell
98.
| / /_\\/ __ / /___| | http://www.haskell.org/ghc/
| \____/\/ /_/\____/|_| Type :? for help.
|
| Loading package base ... linking ... done.
| Loading package lang ... linking ... done.
| Loading package text ... linking ... done.
| Prelude> :t GHC.Err.error
| GHC.Err.error :: forall a. [Char] -> a
| Prelude> :set -package FranTk
| Loading package concurrent ... linking ... done.
| Loading package haskell98 ... linking ... done.
| Loading package util ... linking ... done.
| Loading package data ... linking ... done.
| Loading package FranTk ... linking ...
| \\pinkgin\redrum_disk2\sjg\software\I686-~$5\ghc\latest\bin\ghc.exe:
| panic! (the `impossible' happened, GHC version 6.0):
| can't load package `FranTk'
|
| Please report it as a compiler bug to
glasgow-haskell-bugs@xxxxxxxxxxx,
| or http://sourceforge.net/projects/ghc/.
|
| --
| Registered Office: Roke Manor Research Ltd, Siemens House, Oldbury,
| Bracknell,
| Berkshire. RG12 8FZ
|
| The information contained in this e-mail and any attachments is
| confidential to
| Roke Manor Research Ltd and must not be passed to any third party
| without
| permission. This communication is for information only and shall not
| create or
| change any contractual relationship.
|
| _______________________________________________
| Glasgow-haskell-bugs mailing list
| Glasgow-haskell-bugs@xxxxxxxxxxx
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
|
|
|


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise