On 06.05.2013, at 00:58, Igor Stasenko <siguc...@gmail.com> wrote: > On 5 May 2013 23:59, Max Leske <maxle...@gmail.com> wrote: >> >> On 05.05.2013, at 23:06, Igor Stasenko <siguc...@gmail.com> wrote: >> >>> On 5 May 2013 22:19, Max Leske <maxle...@gmail.com> wrote: >>>> Thanks Igor. >>>> >>>> I wonder if it would be possible instead to simply accept any object and >>>> only use type checks in case of an error? In that case, extra cycles don't >>>> matter. Or would an incompatible object crash the VM? >>>> I hope this doesn't seem like a dumb question, I'm just curious. >>>> >>> err.. im not sure i understand. You either do the type check or you >>> don't, and then get error >>> if you pass wrong object, or crash. There is no 3rd option :) >> >> Yes, that was the idea. Only with the thought of doing the type check for >> the user. Something like this: >> >> [ <perform call without typecheck> ] on: Error do: [ :e | (type >> isKindOf: expected) >> ifTrue: [ NBCalloutFailed signal: 'expected…' ] >> ifFalse: [ e pass ] ]. >> >> But that's only cool if possible without more VM crashes. >> >>> We can, however, introduce an option so you can turn strict type check >>> on/off , >>> or turn it off completely. >> >> That's a pretty cool idea actually. What about extending that idea: >> 1. replace current typecheck with an #isKindOf: check >> 2. add option to turn typecheck on / off. >> >> Then we'd have great feedback during development and would still be fast in >> production by disabling the typecheck. What do you think? >> > > I will add the option. But default will be same like now e.g. strict > obj class == class. >
Ok, cool. > > Btw, what stops you from implementing own marshaller with semantics you want? > > In your case, make subclass of NBExternalObjectType, override methods there. > Then to make your code use new marshaller, if you use MyClass in > function signature e.g.: > > nbCall: #(void foo( MyClass param) ) > > create a > MyClass class>>asNBExternalType: method, > which will answer an instance of your new marshaller. > (same what NBExternalObject does). Thanks for the advice. I'll do that. > > -- > Best regards, > Igor Stasenko. >