unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* built with SCM_DEBUG=1 lately?
@ 2005-06-24  2:50 Ken Raeburn
  0 siblings, 0 replies; 5+ messages in thread
From: Ken Raeburn @ 2005-06-24  2:50 UTC (permalink / raw)


I was running into some problems with free() reporting unaligned 
pointers on my mac laptop, and decided to try switching on more 
debugging options.  I tried building with SCM_DEBUG=1, and several 
files needed tweaking.  Mostly in minor ways, due to -Werror -- %d for 
long values, stuff like that.  I'll send out a patch soon.

But after I got guile building again, it died with this error in the 
snarf step (first message is my added instrumentation).

../../source/libguile/throw.c:626: non-pair accessed with SCM_CDR: 
x=312960 x->car=50d7f
Non-pair accessed with SCM_C[AD]R: `#<winder 312960>?

   for (wind_goal = scm_i_dynwinds ();
        !scm_is_eq (SCM_CDAR (wind_goal), jmpbuf);    <<<----
        wind_goal = SCM_CDR (wind_goal))
     ;

So it's got a cons cell, but the car of the cons cell is not a plain 
cons cell but a "winder" smob object.  Perhaps the equivalent of 
WINDER_PROC or WINDER_DATA is what's desired here?

Ken


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread
* Re: built with SCM_DEBUG=1 lately?
@ 2005-07-01  6:18 Ken Raeburn
  2005-07-11 23:55 ` Kevin Ryde
  0 siblings, 1 reply; 5+ messages in thread
From: Ken Raeburn @ 2005-07-01  6:18 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 464 bytes --]


The attached patch allows me to compile after configuring with
CPPFLAGS=-DSCM_DEBUG.  The build still dies in the snarf phase, as I
described a few days ago.

Ken


2005-07-01  Ken Raeburn  <raeburn@raeburn.org>

	* eval.c (s_scm_dbg_make_iloc): Fix spelling of SCM_IFRAMEMAX and
	SCM_IDISTMAX.  Cast scm_to_unsigned_integer result down to
	scm_t_bits.

	* pairs.c (scm_error_pair_access): Use scm_from_locale_string
	instead of the discouraged scm_makfrom0str.


[-- Attachment #2: guile patch for SCM_DEBUG=1 compilation --]
[-- Type: application/octet-stream, Size: 1344 bytes --]

Index: eval.c
===================================================================
RCS file: /cvsroot/guile/guile/guile-core/libguile/eval.c,v
retrieving revision 1.397
diff -p -u -r1.397 eval.c
--- eval.c	6 Jun 2005 18:49:55 -0000	1.397
+++ eval.c	1 Jul 2005 06:09:59 -0000
@@ -372,8 +372,8 @@ SCM_DEFINE (scm_dbg_make_iloc, "dbg-make
 	    "offset @var{binding} and the cdr flag @var{cdrp}.")
 #define FUNC_NAME s_scm_dbg_make_iloc
 {
-  return SCM_MAKE_ILOC (scm_to_unsigned_integer (frame, 0, SCM_IFRAME_MAX),
-			scm_to_unsigned_integer (binding, 0, SCM_IDIST_MAX),
+  return SCM_MAKE_ILOC ((scm_t_bits) scm_to_unsigned_integer (frame, 0, SCM_IFRAMEMAX),
+			(scm_t_bits) scm_to_unsigned_integer (binding, 0, SCM_IDISTMAX),
 			scm_is_true (cdrp));
 }
 #undef FUNC_NAME
Index: pairs.c
===================================================================
RCS file: /cvsroot/guile/guile/guile-core/libguile/pairs.c,v
retrieving revision 1.37
diff -p -u -r1.37 pairs.c
--- pairs.c	23 May 2005 19:57:21 -0000	1.37
+++ pairs.c	1 Jul 2005 06:09:59 -0000
@@ -36,7 +36,7 @@
 void scm_error_pair_access (SCM non_pair)
 {
   static unsigned int running = 0;
-  SCM message = scm_makfrom0str ("Non-pair accessed with SCM_C[AD]R: `~S´\n");
+  SCM message = scm_from_locale_string ("Non-pair accessed with SCM_C[AD]R: `~S´\n");
 
   if (!running)
     {

[-- Attachment #3: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread
* Re: built with SCM_DEBUG=1 lately?
@ 2005-07-01  6:44 Ken Raeburn
  2005-07-12  0:53 ` Kevin Ryde
  0 siblings, 1 reply; 5+ messages in thread
From: Ken Raeburn @ 2005-07-01  6:44 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 818 bytes --]


(BTW, I should've mentioned in my earlier mail tonight that the patch
got me past compilation failures on Linux; my original report
complaining of some format string problems was on a Mac laptop, where
I haven't tried the build again.)

>From the comments, it looks like the list returned by scm_i_dynwinds
can have both cons cells and smob objects in it, like the winder
object that was keeping the snarf step from working for me.

This patch causes the SCM_CDAR invocation to be applied only if the
SCM_CAR is a pair.

BTW, under SCM_DEBUG=1 it'd be nice if SCM_SMOB_OBJECT*,
SCM_SMOB_DATA*, etc, would check that the passed object is a smob.  I
don't think that's happening.

Ken


2005-07-01  Ken Raeburn  <raeburn@raeburn.org>

	* throw.c (scm_ithrow): Only use SCM_CDAR if SCM_CAR is known to
	be a cons cell.


[-- Attachment #2: patch for throw.c to not run SCM_CDR on non-pairs --]
[-- Type: application/octet-stream, Size: 609 bytes --]

Index: throw.c
===================================================================
RCS file: /cvsroot/guile/guile/guile-core/libguile/throw.c,v
retrieving revision 1.107
diff -p -u -r1.107 throw.c
--- throw.c	23 May 2005 19:57:21 -0000	1.107
+++ throw.c	1 Jul 2005 06:41:31 -0000
@@ -623,7 +623,8 @@ scm_ithrow (SCM key, SCM args, int noret
   jmpbuf = SCM_CDR (dynpair);
   
   for (wind_goal = scm_i_dynwinds ();
-       !scm_is_eq (SCM_CDAR (wind_goal), jmpbuf);
+       !(scm_is_pair (SCM_CAR (wind_goal))
+	 && scm_is_eq (SCM_CDAR (wind_goal), jmpbuf));
        wind_goal = SCM_CDR (wind_goal))
     ;
 

[-- Attachment #3: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-07-12  0:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-24  2:50 built with SCM_DEBUG=1 lately? Ken Raeburn
  -- strict thread matches above, loose matches on Subject: below --
2005-07-01  6:18 Ken Raeburn
2005-07-11 23:55 ` Kevin Ryde
2005-07-01  6:44 Ken Raeburn
2005-07-12  0:53 ` Kevin Ryde

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).