|
|
last edited 16 years ago by kratt6 |
1 2 3 | ||
Editor: kratt6
Time: 2007/12/28 15:28:04 GMT-8 |
||
Note: |
added:
From kratt6 Fri Dec 28 15:28:04 -0800 2007
From: kratt6
Date: Fri, 28 Dec 2007 15:28:04 -0800
Subject:
Message-ID: <20071228152804-0800@axiom-wiki.newsynthesis.org>
Status: pending (next release) => rejected
------------------------------------------------------------ (new) protected-symbol-warn called with (NIL) --Page, Bill, Tue, 25 Jan 2005 10:25:24 -0600 -----Original Message----- From: Mike Dewar [mailto:miked@nag.co.uk] Sent: Tuesday, January 25, 2005 10:05 AM To: Bill Page (E-mail) Cc: 'daly@axiom-developer.org'; axiom-developer@nongnu.org Subject: Re: [Axiom-developer] RE: bugs@axiom-developer.org Hi Bill, > That reminds me to ask: What is the origin of the message > > protected-symbol-warn called with (NIL) > > that appears on every error output from Axiom? This looks > like some kind of lisp error to me. Is this supposed to be > there? This is a relic of CCL. In CCL most functions are compiled to byte codes which are interpreted at runtime. However Arthur Norman created a very nice facility for Axiom which allowed us selectively to compile functions to C so that they could be linked into the CCL kernel, which gave quite a welcome performance boost. Since those functions still existed in the (byte-code) libraries the kernel versions had to be flagged as "protected symbols" so that they did not get over-written when the libraries were loaded. We did quite a lot of benchmarking and included quite a broad selection of ex-spad code in the kernel which we shipped. The only downside to this was that some Axiom users quite liked to re-compile "official" library code. So we added a facility to warn users when a kernel function was overwritten, and allow them to force a redefinition (")set kernel warn" and ")set kernel protect" are the relevent incantations IIRC). Quite why this message appears every time you get an error is beyond me, although it may be due to the interaction between the break-loop support we added for the CCL implementation, and GCL's own debugging facilities. Cheers, Mike. property change --Bill Page, Tue, 25 Jan 2005 10:26:52 -0600 Category: => Axiom Interpreter Severity: => normal Status: => open nocompil.lisp.pamphlet --Bill Page, Tue, 25 Jan 2005 11:07:17 -0600 says:: The function **protected-symbol-warn** was added because it is used in **setvart.boot** but apparently is nowhere defined. It is probably primitive to **CCL**. The function **protect-symbols** was added because it is used in **setvart.boot** but apparently is nowhere defined. It is probably primitive to **CCL** However the calls in **setvart.boot** cannot produce the message **protected-symbol-warn** because they have been commented-out. <<gcl-cmpnote>>:: (in-package "BOOT") (defun protected-symbol-warn (&rest arg)) ; (format t "protected-symbol-warn called with ~A~%" arg)) (defun protect-symbols (&rest arg)) ; (format t "protected-symbol-warn called with ~A~%" arg)) ... (defun enable-backtrace (&rest arg) (format t "protected-symbol-warn called with ~A~%" arg)) ----- Perhaps enable-backtrace is what issues the message. What is this really supposed to do? In the case of CCL it seems to be called from **debug.lisp.pamphlet** :: A "resumable" break loop for use in trace etc. Unfortunately this only works for CCL. We need to define a Common Lisp version. For now the function is defined but does nothing. <<interrupt>>= #-:CCL (defun interrupt (&rest ignore)) #+:CCL (defun interrupt (&rest ignore) (prog (prompt ifile ofile u v) (setq ifile (rds *debug-io*)) (setq ofile (wrs *debug-io*)) (setq prompt (setpchar "Break loop (:? for help)> ")) top (setq u (read)) (cond ((equal u ':x) (go exit)) ((equal u ':r) (go resume)) ((equal u ':q) (progn (lisp::enable-backtrace nil) ... This is the only place I can find that would call a function that prints this error message. Could the conditional be somehow ignored? It's a mystery. Also, at least on the Windows version of Axiom:: )set kernel protect on and:: )set kernel warn on seem to be non-functional, i.e.:: )set kernel still shows both in the 'off' state. #+:ccl protected-symbol-warn msg --Tim Daly, Sun, 13 Feb 2005 12:32:49 -0600 Status: open => pending (next release) property change --Tue, 08 Mar 2005 07:18:58 -0600 property change --Fri, 18 Mar 2005 14:23:53 -0600 Status: pending (next release) => closed $# --unknown, Thu, 14 Sep 2006 09:19:39 -0500 Category: Axiom Interpreter => Aldor Standalone Compiler Severity: normal => wishlist Status: closed => pending (next release) ... --kratt6, Fri, 28 Dec 2007 15:15:07 -0800 Category: Aldor Standalone Compiler => Axiom Aldor Interface ... --kratt6, Fri, 28 Dec 2007 15:28:04 -0800 Status: pending (next release) => rejected