|
|
last edited 17 years ago by kratt6 |
1 2 3 | ||
Editor:
Time: 2007/11/17 23:02:11 GMT-8 |
||
Note: $# |
changed: - From Page,Bill Tue Jan 25 10:25:24 -0600 2005 From: Page, Bill Date: Tue, 25 Jan 2005 10:25:24 -0600 Subject: (new) protected-symbol-warn called with (NIL) Message-ID: <68207C39878CC54695B4E7A1D58E098124DD8A@CORPORATEEX> -----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. From BillPage Tue Jan 25 10:26:52 -0600 2005 From: Bill Page Date: Tue, 25 Jan 2005 10:26:52 -0600 Subject: property change Message-ID: <20050125102652-0600@page.axiom-developer.org> Category: => Axiom Interpreter Severity: => normal Status: => open From BillPage Tue Jan 25 11:07:17 -0600 2005 From: Bill Page Date: Tue, 25 Jan 2005 11:07:17 -0600 Subject: nocompil.lisp.pamphlet Message-ID: <20050125110717-0600@page.axiom-developer.org> 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. From TimDaly Sun Feb 13 12:32:49 -0600 2005 From: Tim Daly Date: Sun, 13 Feb 2005 12:32:49 -0600 Subject: #+:ccl protected-symbol-warn msg Message-ID: <20050213123249-0600@page.axiom-developer.org> Status: open => pending (next release) From unknown Tue Mar 8 07:18:58 -0600 2005 From: Date: Tue, 08 Mar 2005 07:18:58 -0600 Subject: property change Message-ID: <20050308071858-0600@page.axiom-developer.org> From unknown Fri Mar 18 14:23:53 -0600 2005 From: Date: Fri, 18 Mar 2005 14:23:53 -0600 Subject: property change Message-ID: <20050318142353-0600@page.axiom-developer.org> Status: pending (next release) => closed From unknown Thu Sep 14 09:19:39 -0500 2006 From: unknown Date: Thu, 14 Sep 2006 09:19:39 -0500 Subject: $# Message-ID: <20060914091939-0500@wiki.axiom-developer.org> Category: Axiom Interpreter => Aldor Standalone Compiler Severity: normal => wishlist Status: closed => pending (next release)
------------------------------------------------------------ (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)