This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Wrong type argument in position 1: %S



I've been working on a system which uses Guile to initialize
C++ objects.  I'm trying to move over to guile-1.3 (my typing's
so bad I need readline) but code that worked under 1.2 doesn't
under 1.3.  The function causing the error is a C++ function which
takes a SCM record as it's argument & pulls the record apart and
sets the appropriate C++ values.  Under 1.3 I get the error:

guile> (add-obs  (obs (color 0.5 1.0 0.0)
...                 '(-5 -5) '( 1 -3) '( 2 -1) '(-4 2) 1 "ObsTest" 0.0))
ERROR: In procedure apply in expression (add-obs (obs # # ...)):
ERROR: Wrong type argument in position 1: %S
ABORT: (wrong-type-arg)

I'm not even sure what it means.  My guess is that the record is not
immediate and non-immediates are no longer allowed as C args.
Is this the case?  Or can you still pass anything into C?
What's the right way to do this type of thing?
Are there any quick and nasty hacks around it (-DRECKLESS ??) ?

Any help would be greatly appreciated.

Brad Bowman