Path: news.cs.au.dk!news.net.uni-c.dk!uninett.no!news.maxwell.syr.edu!dca1-hub1.news.digex.net!digex!skynet.be!poster!not-for-mail From: Jean-Louis Leroy Newsgroups: comp.lang.beta Subject: Sif crashes on this Date: Sun, 13 Dec 1998 15:47:28 +0100 Organization: Starfleet Lines: 165 Message-ID: Reply-To: jll@skynet.be NNTP-Posting-Host: dialup578.brussels2.skynet.be Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news1.skynet.be 913559884 19219 195.238.25.66 (13 Dec 1998 14:38:04 GMT) X-Complaints-To: abuse@skynet.be NNTP-Posting-Date: 13 Dec 1998 14:38:04 GMT X-Newsreader: Virtual Access by Ashmount Research Ltd, http://www.ashmount.com Xref: news.cs.au.dk comp.lang.beta:11750 Hello, I'm trying to figure out the BETA equivalent of calling a function through a pointer. I don't have the BETA book yet, and the tutorials don't seem to address the question. While playing around I discovered that attempting to compile: ORIGIN '~beta/basiclib/v1.6/betaenv'; -- program: Descriptor -- (# fun: (# exit 666 #); fptr: ##fun; f1: fun (# exit 1 #); f2: (# exit 2 #) do f1##->fptr## #) ...as the body of a new program crashes Sif with the following message: Sif - Mjolner Browser and Editor version 5.2(0) nti integrated with BETA Compiler version 5.3(4) Calling BETA compiler ------------------------------------------------------------------------------- No qua-check warnings and .lst file Target machine type nti(ms) Building dependency graph for: 'k:\beta\start\fptr\fptr' ... Translating fragments ... Bind fragments in: 'k:\beta\start\fptr\fptr'Code generation DescRef is null! Fatal error f1 I compiled from the command line, and the compiler crashed as well. Here's the resulting beta.dump file: Beta execution aborted: Reference is none. Call chain: (nti) item putText# in ~beta/betaast/v5.2/private/indeximpl -- outputStream#output# in ~beta/betaast/v5.2/private/indeximpl item <*> in ~beta/pretty/v5.2/private/token -- Output# in ~beta/pretty/v5.2/private/token item in ~beta/pretty/v5.2/private/token -- Token# in ~beta/pretty/v5.2/private/token item in ~beta/pretty/v5.2/private/printer -- Viewer# in ~beta/pretty/v5.2/astviewer item in ~beta/pretty/v5.2/private/scanner -- SCANNER-~ in ~beta/pretty/v5.2/private/scanner item in ~beta/pretty/v5.2/private/scanner -- SCANNER-~ in ~beta/pretty/v5.2/private/scanner item in ~beta/pretty/v5.2/private/unparser -- Viewer# in ~beta/pretty/v5.2/astviewer item in ~beta/pretty/v5.2/private/ppimpl -- present# in ~beta/pretty/v5.2/astviewer item in ~beta/pretty/v5.2/astviewer -- Viewer# in ~beta/pretty/v5.2/astviewer item in ~beta/betaast/v5.2/private/indeximpl -- prettyPrinter# in ~beta/betaast/v5.2/index item in ~beta/betaast/v5.2/index -- *astInterface# in ~beta/compiler/control/systembody item in ~beta/compiler/control/systembody -- compiler# in ~beta/compiler/control/system item in ~beta/compiler/checker/semattbody -- SEMATT-~ in ~beta/compiler/checker/sematt item strucRef# in ~beta/compiler/checker/sematt -- *EvCase# in ~beta/compiler/synthesizer/evbody item in ~beta/compiler/checker/semattbody -- *EvCase# in ~beta/compiler/synthesizer/evbody item * in ~beta/compiler/checker/sematt -- SEMATT-~ in ~beta/compiler/checker/sematt item in ~beta/compiler/synthesizer/evbody -- ExpEval# in ~beta/compiler/synthesizer/synthlib item in ~beta/compiler/synthesizer/synthlib -- EvalHandler# in ~beta/compiler/synthesizer/synthlib item binEv# in ~beta/compiler/synthesizer/evbody -- *EvCase# in ~beta/compiler/synthesizer/evbody item in ~beta/compiler/checker/semattbody -- *EvCase# in ~beta/compiler/synthesizer/evbody item * in ~beta/compiler/checker/sematt -- SEMATT-~ in ~beta/compiler/checker/sematt item in ~beta/compiler/synthesizer/evbody -- GenEval# in ~beta/compiler/synthesizer/synthlib item in ~beta/compiler/synthesizer/synthlib -- EvalHandler# in ~beta/compiler/synthesizer/synthlib item <*> in ~beta/compiler/synthesizer/dobody -- *scanList# in ~beta/compiler/synthesizer/dobody item <*>scanList# in ~beta/compiler/synthesizer/dobody -- Scan# in ~beta/compiler/synthesizer/dobody item in ~beta/compiler/synthesizer/dobody -- * in ~beta/compiler/synthesizer/dobody item <*> in ~beta/compiler/synthesizer/dobody -- GenDo# in ~beta/compiler/synthesizer/genlib item in ~beta/compiler/synthesizer/dobody -- theGen# in ~beta/compiler/synthesizer/synthesizer item in ~beta/compiler/synthesizer/genlib -- theGen# in ~beta/compiler/synthesizer/synthesizer item in ~beta/compiler/synthesizer/gdbody -- GenDesc# in ~beta/compiler/synthesizer/synthesizer item in ~beta/compiler/synthesizer/synthesizer -- theGen# in ~beta/compiler/synthesizer/synthesizer item in ~beta/compiler/synthesizer/synthesizer -- SYNTHESIZER-~ in ~beta/compiler/synthesizer/synthesizer item in ~beta/compiler/synthesizer/synthesizer -- Synthesizer# in ~beta/compiler/control/system item in ~beta/compiler/control/system -- compiler# in ~beta/compiler/control/system item in ~beta/compiler/control/translate_controlbody -- xcontroller#ScanNonCompiled#scanner# in ~beta/compiler/control/translate item <*> in ~beta/compiler/control/translate_controlbody -- Translate#translate# in ~beta/compiler/control/translate item translate# in ~beta/compiler/control/translate_controlbody -- xcontroller#ScanNonCompiled#scanner# in ~beta/compiler/control/translate item Translate# in ~beta/dependency/v1.3/private/scannoncompiledbody -- *controller# in ~beta/dependency/v1.3/private/scannoncompiledbody item <*>ScanAndClear# in ~beta/dependency/v1.3/private/controlbody -- TransList#SimpleList# in ~beta/dependency/v1.3/private/dependencybody item in ~beta/dependency/v1.3/private/controlbody -- *controller# in ~beta/dependency/v1.3/private/scannoncompiledbody item * in ~beta/dependency/v1.3/private/dependencybody -- xcontroller#ScanNonCompiled#scanner# in ~beta/compiler/control/translate item xcontroller#scanner# in ~beta/dependency/v1.3/private/scannoncompiledbody -- depGraph#DependencyGraph# in ~beta/compiler/control/translate item in ~beta/compiler/control/translatebody -- TRANSLATE-~ in ~beta/compiler/control/translate item in ~beta/compiler/control/translate -- compiler# in ~beta/compiler/control/system item in ~beta/compiler/control/systembody -- *translate# in ~beta/compiler/control/interactive item * in ~beta/compiler/control/system -- compiler# in ~beta/compiler/control/system item in ~beta/compiler/control/interactive -- interactiveCompiler# in ~beta/compiler/control/interactive item in ~beta/compiler/control/interactive -- PROGRAM-~SystemEnv#SysHead# in ~beta/compiler/beta comp SystemEnv#SysHead# in ~beta/compiler/beta -- BETAENV-~ in ~beta/basiclib/v1.6/betaenv item realValue# in ~beta/basiclib/v1.6/private/basicsystemenvbody -- BASICSYSTEMENVPRIVATE-~ in ~beta/basiclib/v1.6/private/basicsystemenvbody item <*>cycle# in ~beta/basiclib/v1.6/private/systemenv_ntbody -- BASICSCHEDULER-~ in ~beta/basiclib/v1.6/private/systemenv_ntbody comp in ~beta/basiclib/v1.6/private/systemenv_ntbody -- PROGRAM-~SystemEnv#SysHead# in ~beta/compiler/beta basic component in ~beta/basiclib/v1.6/betaenv Legend: <> BTW, what's the solution to my original problem? Jean-Louis Leroy http://ourworld.compuserve.com/homepages/jl_leroy/