Well you should still somehow get a ,be to the underlying gambit repl to check. Anyhow probably what's happening is that
(define-class my-object Object ((= object-id :initializer get-next-global-id)))
is interpreted by Gambit as three expressions in each other, and it starts evaluating the inner-most, so what you see down there is a complaint that object-id and :initializer are unbound - which is projected as the value #!unbound - which is indeed not a number.
This in turn probably happens because you didn't include Meroon ['s sources] into your Scheme environment (in this case: your sourcecode file) prior to using Meroon functionality (i.e. define-class etc.) .
Brgds
2011/7/9 Roger Wilson misterrogerwilson@gmail.com
Hi,
Thanks for the help, I'll try and clarify. I'm actually using Swank rather than a REPL.
If I run my app, connect to it with Slime and evaluate the code below using 'slime-eval-region' then I can create instances of the my-object class using (instantiate my-object), and each object has a unique object-id. I was happy with that during the early stage of development. Now I'm trying to speed things up so I've put the code below in a scm file, I generate C code with 'gsc -link my_file.scm' and compile and link it in with my (OS X) app. However when the Gambit setup function is called in my app I get the error.....
*** ERROR IN | object| -- (Argument 1) NUMBER expected (= #!unbound #!unbound 'get-next-global-id)
How can I convince Meroon to run the 'get-next-global-id ' function to generate an object-id each time I instantiate an object in the same way as when I was developing interactively?
Roger.
On Sat, Jul 9, 2011 at 9:07 AM, Mikael mikael.rcv@gmail.com wrote:
Hi,
As for the error you encountered, can you please do ,be in the REPL to see exactly what it is that failed.
Regarding how to make it work with a compiled file, can you please clarify what you mean by making it to work with a compiled file - i.e., what is it you are trying to achieve, and what part of it is it that you don't get to work currently?
Brgds, Mikael
2011/7/9 Roger Wilson misterrogerwilson@gmail.com
Hi,
I have a basic Scheme question.
The following works as intended from my Swank REPL. How do I make it work with a compiled file? I'm trying to create a Meroon object that has an automatically created unique id each time one is created.
(define *global-id* 0) (define (get-next-global-id) (let ((current-global-id *global-id*)) (set! *global-id* (+ *global-id* 1)) current-global-id))
(define-class my-object Object ((= object-id :initializer get-next-global-id)))
When the Gambit setup function runs I get the error....
*** ERROR IN | object| -- (Argument 1) NUMBER expected (= #!unbound #!unbound 'get-next-global-id)
Roger. _______________________________________________ Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list