gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] Re: Axiom on Windows


From: Camm Maguire
Subject: Re: [Gcl-devel] Re: Axiom on Windows
Date: 21 Jun 2004 17:23:24 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings!

"Mike Thomas" <address@hidden> writes:

> Hi everyone.
> 
> I've taken another step towards solving part of the Windows Axiom
> "make-databases" problem.  The trace is below.
> 
> There are really two problems here I think, first, the invalid? returns from
> (probe-file "./") and (namestring nil) and second, the seg-fault further on
> which I have yet to trace, but which seems like a rerun of previous crashes
> during error conditions on Windows - (si::chdir "NIL") normally just gives:
> 
> ===========================================================================
> >(si:chdir "NIL")
> 
> Error in EVAL [or a callee]: Can't change the current directory to "NIL".
> 
> Fast links are on: do (use-fast-links nil) for debugging
> Broken at SYSTEM:CHDIR.  Type :H for Help.
>  1 (Abort) Return to top level.
> ===========================================================================
> 
> but in the case shown below there is a disaster.
> 
> SO:
> 
> The "localdatabase" line in the trace below runs as follows:
> 
>   (localdatabase nil
>      (list (list '|dir| (namestring (probe-file "./")) ))
>      'make-database)
> 
> (probe-file "./") on Windows GCL *(CLtL1) gives nil which is, I think,
> invalid.  LispWorks gives the current working directory which I believe
> would be the correct result - or perhaps "./"?
> 
> Likewise, (namestring nil) returns the string "nil" which I also think is
> invalid - LispWorks raises an error which, again, I think would be the
> correct response.
> 
> Paul - What do you think these functions should do?
> 
> Camm - What happens on Linux with these items?

>(namestring nil)

"NIL"

>(probe-file "./")

#p"/fix/k/camm/gcl/gcl-2.6.2pre/"

>

I suspect the probe-file -- would be great if you could track this
down when time permits.

>      - This also potentially raises the issue of getting the current
>        directory again on Windows, which I recently side-stepped in the
>        interest of expediency.  In fact, Windows offers a lovely function
>        which avoids the hypothetically mallocing getcwd(), namely:
>               DWORD GetCurrentDirectory(
>                      DWORD nBufferLength,
>                      LPTSTR lpBuffer
>               );
>        it uses a passed in buffer as you can see.  I intend to use this
> function
>        in 2.7.0 as required (for the purposes of Axiom's GCL source tree we
>        can just provide a patch as currenly happens).

Great!  Do you know if getwd can malloc in our usage?

Take care,

> 
> Michael Koehne - don't even think about saying "I told you so."!!!
> 
> Cheers
> 
> Mike Thomas.
> 
> 
> Tracing:
> 
> (1) ->  )lisp (trace make-databases)
> 
> Value = (MAKE-DATABASES)
> (1) ->  )lisp (trace make-database)
> 
> Value = (MAKE-DATABASE)
> (1) ->  )lisp (trace localdatabase)
> 
> Value = (LOCALDATABASE)
> (1) ->  )lisp (si::use-fast-links nil)
> 
> Value = NIL
> (1) -> )lisp (make-databases "" nil)
> 
>   1> (MAKE-DATABASES "" NIL)
>     2> (MAKE-DATABASE :OPERATIONALIST NIL :NILADIC T)
>     <2 (MAKE-DATABASE #S(DATABASE ABBREVIATION NIL ANCESTORS NIL CONSTRUCTOR
> NIL
>  CONSTRUCTORCATEGORY NIL CONSTRUCTORKIND NIL CONSTRUCTORMODEMAP NIL COSIG
> NIL DE
> FAULTDOMAIN NIL MODEMAPS NIL NILADIC T OBJECT NIL OPERATIONALIST NIL
> DOCUMENTATI
> ON NIL CONSTRUCTORFORM NIL ATTRIBUTES NIL PREDICATES NIL SOURCEFILE NIL
> PARENTS
> NIL USERS NIL DEPENDENTS NIL SPARE NIL))
>     2> (MAKE-DATABASE :OPERATIONALIST NIL :CONSTRUCTORKIND |domain|)
>     <2 (MAKE-DATABASE #S(DATABASE ABBREVIATION NIL ANCESTORS NIL CONSTRUCTOR
> NIL
>  CONSTRUCTORCATEGORY NIL CONSTRUCTORKIND |domain| CONSTRUCTORMODEMAP NIL
> COSIG N
> IL DEFAULTDOMAIN NIL MODEMAPS NIL NILADIC NIL OBJECT NIL OPERATIONALIST NIL
> DOCU
> MENTATION NIL CONSTRUCTORFORM NIL ATTRIBUTES NIL PREDICATES NIL SOURCEFILE
> NIL P
> ARENTS NIL USERS NIL DEPENDENTS NIL SPARE NIL))
>     2> (MAKE-DATABASE :OPERATIONALIST NIL :CONSTRUCTORKIND |domain|)
>     <2 (MAKE-DATABASE #S(DATABASE ABBREVIATION NIL ANCESTORS NIL CONSTRUCTOR
> NIL
>  CONSTRUCTORCATEGORY NIL CONSTRUCTORKIND |domain| CONSTRUCTORMODEMAP NIL
> COSIG N
> IL DEFAULTDOMAIN NIL MODEMAPS NIL NILADIC NIL OBJECT NIL OPERATIONALIST NIL
> DOCU
> MENTATION NIL CONSTRUCTORFORM NIL ATTRIBUTES NIL PREDICATES NIL SOURCEFILE
> NIL P
> ARENTS NIL USERS NIL DEPENDENTS NIL SPARE NIL))
>     2> (MAKE-DATABASE :OPERATIONALIST NIL :CONSTRUCTORKIND |domain|)
>     <2 (MAKE-DATABASE #S(DATABASE ABBREVIATION NIL ANCESTORS NIL CONSTRUCTOR
> NIL
>  CONSTRUCTORCATEGORY NIL CONSTRUCTORKIND |domain| CONSTRUCTORMODEMAP NIL
> COSIG N
> IL DEFAULTDOMAIN NIL MODEMAPS NIL NILADIC NIL OBJECT NIL OPERATIONALIST NIL
> DOCU
> MENTATION NIL CONSTRUCTORFORM NIL ATTRIBUTES NIL PREDICATES NIL SOURCEFILE
> NIL P
> ARENTS NIL USERS NIL DEPENDENTS NIL SPARE NIL))
>     2> (MAKE-DATABASE :OPERATIONALIST NIL :CONSTRUCTORKIND |domain|)
>     <2 (MAKE-DATABASE #S(DATABASE ABBREVIATION NIL ANCESTORS NIL CONSTRUCTOR
> NIL
>  CONSTRUCTORCATEGORY NIL CONSTRUCTORKIND |domain| CONSTRUCTORMODEMAP NIL
> COSIG N
> IL DEFAULTDOMAIN NIL MODEMAPS NIL NILADIC NIL OBJECT NIL OPERATIONALIST NIL
> DOCU
> MENTATION NIL CONSTRUCTORFORM NIL ATTRIBUTES NIL PREDICATES NIL SOURCEFILE
> NIL P
> ARENTS NIL USERS NIL DEPENDENTS NIL SPARE NIL))
>     2> (LOCALDATABASE NIL ((|dir| "NIL")) MAKE-DATABASE)
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x00458e91 in equal (x=0x0, y=0x103da7e0) at predicate.c:496
> 496             if ((t = type_of(x)) != type_of(y))
> (gdb) bt
> #0  0x00458e91 in equal (x=0x0, y=0x103da7e0) at predicate.c:496
> #1  0x1051cb72 in ?? ()
> 
> 
> 
> 
> | -----Original Message-----
> | From: address@hidden
> | [mailto:address@hidden
> | Behalf Of Mike Thomas
> | Sent: Wednesday, 9 June 2004 6:09 PM
> | To: Camm Maguire
> | Cc: address@hidden Org; Root; address@hidden; Bill Page
> | Subject: RE: [Gcl-devel] Re: Axiom on Windows
> |
> |
> | Hi Camm/Tim.
> |
> | | It looks like the 'nil' you find below is either that supplied as an
> | | argument above or results from the missing environment.  In any case,
> | | should this persist, it would be helpful (for someone, not you
> | | hopefully, you overworked soul!) to repeat the below with
> | | (si::use-fast-links nil)
> |
> | I should have thought to try that sorry (gdb further down):
> |
> | Here is a Windows command prompt session in which I switch off
> | C:\Documents and Settings\miketh>set AXIOM=c:\cvs\head\axiom\mnt\windows
> |
> | C:\Documents and Settings\miketh>path
> | c:\cvs\head\axiom\mnt\windows\bin;%path%
> |
> | C:\Documents and Settings\miketh>AXIOMsys.exe
> | GCL (GNU Common Lisp)  2.6.2 CLtL1   Jun  8 2004 13:12:41
> | Source License: LGPL(gcl,gmp), GPL(unexec,bfd)
> | Binary License:  GPL due to GPL'ed components: (UNEXEC)
> | Modifications of this banner must retain notice of a compatible license
> | Dedicated to the memory of W. Schelter
> |
> | Use (help) to get some basic information on how to use GCL.
> |                         AXIOM Computer Algebra System
> |                 Version of Tuesday June 8, 2004 at 13:25:54
> | ------------------------------------------------------------------
> | ----------
> | -
> |    Issue )copyright to view copyright notices.
> |    Issue )summary for a summary of useful system commands.
> |    Issue )quit to leave AXIOM and return to shell.
> | ------------------------------------------------------------------
> | ----------
> | -
> |
> | (1) -> )lisp (si::use-fast-links nil)
> |
> | Value = NIL
> | (1) -> )lisp (make-databases "" nil)
> |
> | Error: Caught fatal error [memory may be damaged]
> | Error signalled by |SATURNSAYERRORLY|.
> | Broken at SYSTEM::BREAK-LEVEL.  Type :H for Help.
> | BOOT>>:bt
> |
> | #0   APPLY {loc0=#<compiled-function
> | system:universal-error-handler>,loc1=:error,loc2=nil,l...} [ihs=32]
> | #1   APPLY {loc0=#<compiled-function
> | system:universal-error-handler>,loc1=:error,loc2=nil,l...} [ihs=31]
> | #2   LAMBDA {} [ihs=28]
> | #3   pushSatOutput
> | {loc0=|line|,loc1=#<OBJNULL>,loc2=#<OBJNULL>,loc3=#<OBJNULL>,loc4=
> | #<OBJNULL>
> | ,loc...} [ihs=27]
> | #4   saturnSayErrorly {errorlabel="System error",msg=("   " "Can't change
> | the current directory to \"N...} [ihs=26]
> | #5   sayErrorly {errorlabel="System error",msg=("   " "Can't change the
> | current directory to \"N...} [ihs=25]
> | #6   errorSupervisor1 {loc0=|SystemError|,loc1="Can't change the current
> | directory to \"NIL\".",loc2=|...} [ihs=24]
> | #7   errorSupervisor {loc0=|SystemError|,loc1="Can't change the current
> | directory to \"NIL\"."} [ihs=23]
> | #8   systemError {g160176="Can't change the current directory to
> | \"NIL\"."}
> | [ihs=22]
> | #9   LAMBDA {"NIL"=nil,} [ihs=15]
> | #10   CHDIR
> | {loc0="NIL",loc1=:error,loc2=nil,loc3=localdatabase,loc4="",loc5="Can't
> | change t...} [ihs=14]
> | #11   LOCALDATABASE {filelist=nil,options=((|dir|
> | "NIL")),make-database?=make-database,loc3="NIL",fi...} [ihs=13]
> | #12   MAKE-DATABASES {ext="",g170243=nil,g170208=""} [ihs=12]
> | #13   nplisp {loc0=nil,loc1=nil,loc2=nil,loc3=#<compiled-function
> | make-databases>} [ihs=11]
> | #14   handleNoParseCommands {unab=|lisp|,string="lisp (make-databases \"\"
> | nil)",loc2=(|lisp| |pquit| |quit|...} [ihs=10
> | ]
> | #15   doSystemCommand {string="lisp (make-databases \"\" nil)",line="lisp
> | (make-databases \"\" nil)"} [ihs=9]
> | #16   ExecuteInterpSystemCommand {string=")lisp (make-databases \"\"
> | nil)",loc1=0} [ihs=8]
> | #17   ncloopCommand {line=")lisp (make-databases \"\"
> | nil)",n=1,loc2=1,loc3=(")lisp (si::use-fast-li...} [ihs=7]
> | #18   RESTART {} [ihs=6]
> | #19   TOP-LEVEL
> | {loc0=nil,loc1=0,loc2=0,loc3=nil,loc4=nil,loc5=nil,loc6=nil,loc7="
> | c:/cvs/hea
> | d/ax...} [ihs=5]
> | #20   FUNCALL {loc0=#<compiled-function system:top-level>} [ihs=4]
> | NIL
> | BOOT>>
> |
> | ==================================================================
> | ==========
> | =====
> | So you are right - it is the niul passed in as an argument being
> | treated as
> | a string?
> |
> | And with gdb:
> |
> |
> | ==================================================================
> | ==========
> | =====
> | $ gdb ./mnt/windows/bin/AXIOMsys.exe
> | GNU gdb 6.0
> | Copyright 2003 Free Software Foundation, Inc.
> | GDB is free software, covered by the GNU General Public License,
> | and you are
> | welcome to change it and/or distribute copies of it under certain
> | conditions.
> | Type "show copying" to see the conditions.
> | There is absolutely no warranty for GDB.  Type "show warranty"
> | for details.
> | This GDB was configured as "i686-pc-mingw32"...
> | (gdb) r
> | Starting program: c:\cvs\head\axiom/./mnt/windows/bin/AXIOMsys.exe
> | GCL (GNU Common Lisp)  2.6.2 CLtL1   Jun  8 2004 13:12:41
> | Source License: LGPL(gcl,gmp), GPL(unexec,bfd)
> | Binary License:  GPL due to GPL'ed components: (UNEXEC)
> | Modifications of this banner must retain notice of a compatible license
> | Dedicated to the memory of W. Schelter
> |
> | Use (help) to get some basic information on how to use GCL.
> |                         AXIOM Computer Algebra System
> |                 Version of Tuesday June 8, 2004 at 13:25:54
> | ------------------------------------------------------------------
> | ----------
> | -
> |    Issue )copyright to view copyright notices.
> |    Issue )summary for a summary of useful system commands.
> |    Issue )quit to leave AXIOM and return to shell.
> | ------------------------------------------------------------------
> | ----------
> | -
> |
> | (1) -> )lisp (make-databases "" nil)
> |
> | Program received signal SIGSEGV, Segmentation fault.
> | 0x0045e2ad in equal (x=0x0, y=0x103d945c) at predicate.c:496
> | 496             if ((t = type_of(x)) != type_of(y))
> | (gdb) bt
> | #0  0x0045e2ad in equal (x=0x0, y=0x103d945c) at predicate.c:496
> | #1  0x104fdbed in ?? ()
> | (gdb)
> | ==================================================================
> | ==========
> | =====
> |
> | Late for the train as usual.
> |
> | Cheers
> |
> | Mike Thomas.
> 
> 
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]