[Ecls-list] Some MinGW patches etc.
Samium Gromoff
_deepfire at feelingofgreen.ru
Wed Sep 29 16:06:54 UTC 2010
Juan,
I have some patches in my ECL git tree, among which are:
- some MinGW fixes,
- a revert of a float-related crasher,
- a src/Makefile.in improvement.
With these patches, I was able to build ECL with latest mingw-get-inst
(version 20100910).
Apropos the revert (which is an obviously improper fix, but a proper one
is way out of my competence area) -- the commit
655809781a6c2df3fc8b040d8be01f05177e31ec was making ecl_min bust the
stack during the build, like this:
^ ^
| 32394 more calls to ratio_to_double |
....
#32394 0x004453e9 in ratio_to_double (num=<value optimized out>,
den=<value optimized out>) at d:/usr/src/ecl/src/c/number.d:759
#32395 0x004453e9 in ratio_to_double (num=<value optimized out>,
den=<value optimized out>) at d:/usr/src/ecl/src/c/number.d:759
#32396 0x0044d3d2 in make_float (num=0x117c400, exp=<value optimized out>,
exp_char=<value optimized out>, sign=1)
at d:/usr/src/ecl/src/c/reader/parse_number.d:105
#32397 0x004171dc in ecl_read_object_with_delimiter (in=<value optimized out>,
delimiter=6, flags=0, a=<value optimized out>) at d:/usr/src/ecl/src/c/read.d:364
#32398 0x004172c3 in do_read_delimited_list (d=41, in=0x109bfa0, proper_list=0)
at d:/usr/src/ecl/src/c/read.d:1431
#32399 0x004173b5 in left_parenthesis_reader (in=0x109bfa0, character=0xa2)
at d:/usr/src/ecl/src/c/read.d:443
#32400 0x0041a252 in ecl_apply_from_stack_frame (frame=0x22d530, x=0xdc36e0)
at d:/usr/src/ecl/src/c/eval.d:52
#32401 0x0041a3a0 in cl_funcall (narg=<value optimized out>, function=0xdc36e0)
at d:/usr/src/ecl/src/c/eval.d:129
#32402 0x00416f3b in ecl_read_object_with_delimiter (in=0x109bfa0, delimiter=-1,
flags=0, a=<value optimized out>) at d:/usr/src/ecl/src/c/read.d:202
#32403 0x004186b3 in cl_read (narg=4) at d:/usr/src/ecl/src/c/read.d:1383
#32404 0x00452391 in APPLY (n=4, fn=0x418658 <cl_read>, x=0xe00048)
at d:/usr/src/ecl/src/c/apply.d:29
#32405 0x00449483 in ecl_interpret (frame=0x22d894, env=0x1, bytecodes=0x1079de8)
at d:/usr/src/ecl/src/c/interpreter.d:499
And yet, one issue remains:
$ ls /d/usr/src/ecl-bin
Copyright cmp.asd ecl.dll libdefsystem.a sb-bsd-sockets.asd
LGPL cmp.fas ecl.exe librt.a sb-bsd-sockets.fas
TAGS defsystem.asd ecl_min.exe libsb-bsd-sockets.a share
asdf.fas defsystem.fas help.doc libsockets.a sockets.asd
build-stamp dpp.exe libasdf.a prebuilt-asdf.asd sockets.fas
bytecmp.asd ecl libbytecmp.a rt.asd ucd.dat
bytecmp.fas ecl-config libcmp.a rt.fas
$ /d/usr/src/ecl-bin/ecl.exe
ECL (Embeddable Common-Lisp) 10.7.1
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.
Top level in: #<process SI:TOP-LEVEL 00a90fc0>.
> (require :Asdf)
Module error: Don't know how to REQUIRE ASDF.
Available restarts:
1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (REQUIRE :ASDF)] In: #<process SI:TOP-LEVEL 00a90fc0>.
>> :b
Backtrace:
> SI:BYTECODES [Evaluation of: (REQUIRE :ASDF)]
> si:bytecodes [Evaluation of: (si:top-level)]
Still, loading them manually works just fine:
> (load "d:/usr/src/ecl-bin/cmp.fas")
;;; Loading "d:/usr/src/ecl-bin/cmp.fas"
#P"d:/usr/src/ecl-bin/cmp.fas"
> (load "d:/usr/src/ecl-bin/asdf.fas")
;;; Loading "d:/usr/src/ecl-bin/asdf.fas"
#P"d:/usr/src/ecl-bin/asdf.fas"
>
A couple strategically-placed FORMAT statements in src/lsp/module.lsp
revealed that the system's *MODULE-PROVIDER-FUNCTIONS* member serving
REQUIRE suffers from NAMESTRING's misrendering of logical pathnames:
(namestring #P"SYS:ASDF") => "SYS:ASDF"
--
regards,
Samium Gromoff
--
"Actually I made up the term 'object-oriented', and I can tell you I
did not have C++ in mind." - Alan Kay (OOPSLA 1997 Keynote)
More information about the ecl-devel
mailing list