[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Sc-devel] *** Refactoring of "Document" class *** now committed [cross-platform implications]



Hello Dan

I still am unable to build successfully.
Latest errors below.
Can anyone else reproduce this?

Regards

Tom


ERROR:
throw during error handling!

Instance of DoesNotUnderstandError { (0170F1F0, gc=2C, fmt=00, flg=00, set=03)
  instance variables [5]
    what : Symbol 'DoesNotUnderstandError'
    backtrace : nil
    receiver : nil
    selector : Symbol 'name'
    args : instance of Array (04734F90, size=0, set=0)
}
ERROR: 'nil' should have been implemented by Meta_Document.
RECEIVER:
class Document (049AF360) {
  instance variables [19]
    name : Symbol 'Document'
    nextclass : class DoesNotUnderstandError (05058120)
    superclass : Symbol 'Object'
    subclasses : instance of Array (0177C880, size=2, set=1)
    methods : instance of Array (049AF420, size=91, set=7)
    instVarNames : instance of SymbolArray (049AF850, size=9, set=3)
    classVarNames : instance of SymbolArray (049AF970, size=9, set=3)
    iprototype : instance of Array (049AF8C0, size=9, set=4)
    cprototype : instance of Array (049AF9E0, size=9, set=4)
    constNames : nil
    constValues : nil
    instanceFormat : Integer 0
    instanceFlags : Integer 0
    classIndex : Integer 455
    classFlags : Integer 0
    maxSubclassIndex : Integer 457
filenameSymbol : Symbol '/Users/tom/Applications/SuperCollider3/ build/SCClassLibrary/Common/GUI/Document.sc'
    charPos : Integer 310
    classVarIndex : Integer 38
}
CALL STACK:
	MethodError:reportError   0170EFB0
		arg this = <instance of SubclassResponsibilityError>
	Nil:handleError   0170ED70
		arg this = nil
		arg error = <instance of SubclassResponsibilityError>
	Thread:handleError   0170D3C0
		arg this = <instance of Thread>
		arg error = <instance of SubclassResponsibilityError>
	Object:throw   0170CB20
		arg this = <instance of SubclassResponsibilityError>
	Function:protect   0170CAC0
		arg this = <instance of Function>
		arg handler = <instance of Function>
		var result = <instance of SubclassResponsibilityError>
	Interpreter:executeFile   01734A00
		arg this = <instance of Interpreter>
		arg pathName = "/Users/tom/scwork/startup.rtf"
		arg args = [*0]
		var result = nil
	< FunctionDef in Method Collection:collectAs >   0170CA60
		arg elem = "/Users/tom/scwork/startup.rtf"
		arg i = 0
	ArrayedCollection:do   0170CA00
		arg this = [*1]
		arg function = <instance of Function>
		var i = 0
	Collection:collectAs   04869390
		arg this = [*1]
		arg function = <instance of Function>
		arg class = class Array
		var res = [*0]
	ArrayedCollection:do   0170C9A0
		arg this = [*1]
		arg function = <instance of Function>
		var i = 0
	Platform:loadStartupFiles   0170C940
		arg this = <instance of OSXPlatform>
	OSXPlatform:startup   01733400
		arg this = <instance of OSXPlatform>
	Main:startup   017333A0
		arg this = <instance of Main>



On 18 Nov 2007, at 22:54, Dan Stowell wrote:

Excellent Tom, you get a lollipop for spotting that one.

I forgot to add a file - oops - now added (svn rev 6648). Should fix that.

Dan


2007/11/18, Tom Hall <scth@xxxxxxxxxxx>:
Hello Dan

I'm getting a compile error after updating to revision 6647 on ppc.

Errors as below. Any ideas?

regards

Tom

Class tree inited in 0.12 seconds
ERROR: Message 'implementationClass' not understood.
RECEIVER:
class Document (05355470) {
   instance variables [19]
     name : Symbol 'Document'
     nextclass : class DoesNotUnderstandError (0B98B7A0)
     superclass : Symbol 'Object'
     subclasses : instance of Array (054DD060, size=2, set=1)
     methods : instance of Array (05355530, size=91, set=7)
     instVarNames : instance of SymbolArray (05355960, size=9, set=3)
classVarNames : instance of SymbolArray (05355A80, size=9, set=3)
     iprototype : instance of Array (053559D0, size=9, set=4)
     cprototype : instance of Array (05355AF0, size=9, set=4)
     constNames : nil
     constValues : nil
     instanceFormat : Integer 0
     instanceFlags : Integer 0
     classIndex : Integer 454
     classFlags : Integer 0
     maxSubclassIndex : Integer 456
     filenameSymbol : Symbol '/Users/tom/Applications/SuperCollider3/
build/SCClassLibrary/Common/GUI/Document.sc'
     charPos : Integer 310
     classVarIndex : Integer 38
}
ARGS:
CALL STACK:
        DoesNotUnderstandError:reportError   04BF0E20
                arg this = <instance of DoesNotUnderstandError>
        Nil:handleError   04BF0DC0
                arg this = nil
                arg error = <instance of DoesNotUnderstandError>
        Thread:handleError   04BBEE00
                arg this = <instance of Thread>
                arg error = <instance of DoesNotUnderstandError>
        Object:throw   04BBEAA0
                arg this = <instance of DoesNotUnderstandError>
        Object:doesNotUnderstand   017B5860
                arg this = class Document
                arg selector = 'implementationClass'
                arg args = [*0]
        OSXPlatform:startup   017B5400
                arg this = <instance of OSXPlatform>
        Main:startup   017B53A0
                arg this = <instance of Main>


On 18 Nov 2007, at 19:45, Dan Stowell wrote:

Dear all,

I've now refactored the Document class, as discussed at symposium (svn
rev 6646). I've been running this refactored code for a while and I
believe it to work fine on OSX, but shout if there are any problems.

The cocoa-specific code is now moved into a subclass called
CocoaDocument. However, for platform-neutrality you shouldn't
instantiate that class directly - simply carry on using Document.new
or Document.open or whatever, since those calls should automatically
instantiate the correct class. In theory this means the API hasn't
changed and nothing will break, but that's only theory. Let us know if
anything goes weird.

Linux: I've done nothing to rework the linux documenty classes since I
don't understand them. Hopefully Marije will be able to get it all
working nicely on Linux since this change originated from her and I
think I've done what she said... ;)

Windows: Again, I've done nothing since I can't. The easiest thing to do for windows is probably to take the CocoaDocument class, duplicate
it as "WindowsDocument" or "PsycoDocument" or something, and make
changes as necessary.

Dan

--
http://www.mcld.co.uk
_______________________________________________
Sc-devel mailing list
Sc-devel@xxxxxxxxxxxxxxx
http://www.create.ucsb.edu/mailman/listinfo/sc-devel

________________________________

Dr Tom Hall
Department of Music and Performing Arts
Anglia Ruskin University
East Road, Cambridge CB1 1PT

www.ludions.com
________________________________




_______________________________________________
Sc-devel mailing list
Sc-devel@xxxxxxxxxxxxxxx
http://www.create.ucsb.edu/mailman/listinfo/sc-devel



--
http://www.mcld.co.uk
_______________________________________________
Sc-devel mailing list
Sc-devel@xxxxxxxxxxxxxxx
http://www.create.ucsb.edu/mailman/listinfo/sc-devel

________________________________

Dr Tom Hall
Department of Music and Performing Arts
Anglia Ruskin University
East Road, Cambridge CB1 1PT

www.ludions.com
________________________________