Wow, this was really a mega-patch! Really amazing, Martin.
I can build "Aphrodite" fine on Linux 2.0.36, but get the same crash
Steve mentioned.
the problem is:
Fatal error: assertion failed, file
/local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/bytecode.c, line 1904, OPAQUEP
(f->instructions)
I looked a bit closer with gdb and what I saw was the following
(please note that I do *not* understand anything of what is going on
here, but maybe this can point Martin to the problem faster):
- optimize_compiled_function is called
- f->instructions is a cons and therefore:
- Ffetch_bytecode is called
- in here the code is fetched, but *not* copied to f->instruction
(see commented line in bytecode.c:2349 ), if I execute this
codeline manually in gdb, everything seems to work.
OK, so this is the obvious patch:
--- src/bytecode.c~ Sat Dec 5 13:02:24 1998
+++ src/bytecode.c Sat Dec 5 15:02:03 1998
@@ -2346,7 +2346,7 @@
ebolify_bytecode_constants (XCDR (tem));
/* VERY IMPORTANT to purecopy here!!!!!
See load_force_doc_string_unwind. */
- /* f->instructions = Fpurecopy (XCAR (tem)); */
+ f->instructions = Fpurecopy (XCAR (tem));
f->constants = Fpurecopy (XCDR (tem));
return function;
}
I recompiled and it seems to work. I'm even sending this mail from it!
Please wait till Martin comments on this, I *really* have no idea what
is going on here -- this is one of my "zero-knowledge patches"! I have
not even read the new stuff in the internals manual.
I just needed an excuse for a break from my work.
HTH
Gunnar
--
Gunnar Evermann
Speech, Vision & Robotics Group
Engineering Department
Cambridge University