I just tried to build sclang following the directions on the wiki. The directions seem to be seriously outdated and flawed in several respects, including calling for the editing of several files which no longer seem to exist. I'll post the output of my attempt to run the executable at the end of this post.
So I've tried two different methods described on the wiki, using scons and using XCode, both of which failed. This seems like a bit of a problem, especially if someone new (without the commitment of a long-time user) would like to get sclang running on OS X.
Could someone post clear instructions on how to compile SC with sclang using scons or XCode if they have managed to do so? Also, please post the version of XCode you are using (My failed attempt used 2.4.1) the OS (ex. 10.4.11) and whether you are using a PPC or Intel mac.
It seems that getting a reliable and simple method of compiling with the sclang executable available for peruzal on the wiki, in the how-to page of the sourceforge page or even, perhaps preferably, in the OS X README, is a must as more and more people I talk to seem a little dissatisfied with the current Interpreter.
Thoughts?
Thanks,
-S
Waz:/Applications/Audio_Applications/SuperCollider3/build scott$ ./sclang
init_OSC
compiling class library..
NumPrimitives = 551
compiling dir: '/Applications/Audio_Applications/SuperCollider3/build/SCClassLibrary'
compiling dir: '/Library/Application Support/SuperCollider/Extensions'
compiling dir: '/Users/scott/Library/Application Support/SuperCollider/Extensions'
pass 1 done
Extension overwriting SimpleNumber:asTimeString
in file '/Library/Application Support/SuperCollider/Extensions/ljpclasses/classes/LJP Classes/Extensions/SimpleNumber-asTimeString.sc'.
Original method in file '/Common/Math/SimpleNumber.sc'.
WARNING: FunctionDef contains variable declarations and so will not be inlined.
in file '/Users/scott/Library/Application Support/SuperCollider/Extensions/quarks/NonRT/batchNRT/batchNRT.sc'
line 93 char 14:
var psfr;? // Please ignore SC's warning about not inlining this function.
psfr = SoundFile.new;
-----------------------------------
numentries = 1124454 / 18350124 = 0.061
Method Table Size 9205632 bytes
Number of Method Selectors 5738
Number of Classes 3198
big table size 73400496
Number of Symbols 14287
Byte Code Size 500140
compiled 565 files in 4.92 seconds
compile done
// History.logFolder: /Users/scott/Library/Application Support/SuperCollider/HistoryLogs
Class tree inited in 0.18 seconds
ERROR: A primitive was not bound. 0 550
Instance of Method { (0175CDF0, gc=01, fmt=00, flg=11, set=04)
instance variables [15]
raw1 : Float 3.885846e-318 00000000 000C0048
raw2 : Float 5.56268497783366e-309 00040000 04000304
code : instance of Int8Array (0175CF30, size=4, set=1)
selectors : nil
constants : nil
prototypeFrame : instance of Array (0175CEE0, size=4, set=2)
context : nil
argNames : instance of SymbolArray (0175CEA0, size=4, set=1)
varNames : nil
sourceCode : nil
ownerClass : class SCView (01713D70)
name : Symbol 'prInit'
primitiveName : Symbol '_SCView_New'
filenameSymbol : Symbol '/Applications/Audio_Applications/SuperCollider3/build/SCClassLibrary/Common/GUI/Base/SCView.sc'
charPos : Integer 6387
}
ERROR: Primitive 'none' failed.
Failed.
RECEIVER:
nil
CALL STACK:
MethodError:reportError 0166AE30
arg this = <instance of PrimitiveFailedError>
Nil:handleError 0166AEF0
arg this = nil
arg error = <instance of PrimitiveFailedError>
Thread:handleError 0166AE90
arg this = <instance of Thread>
arg error = <instance of PrimitiveFailedError>
Object:throw 0166ADD0
arg this = <instance of PrimitiveFailedError>
Object:primitiveFailed 0166AD70
arg this = nil
SCView:init 0166AD10
arg this = <instance of SCTopView>
arg argParent = nil
arg argBounds = <instance of Rect>
SCContainerView:init 0166ACB0
arg this = <instance of SCTopView>
arg argParent = nil
arg argBounds = <instance of Rect>
SCWindow:initSCWindow 016AA430
arg this = <instance of SCWindow>
arg argName = "internal server"
arg argBounds = <instance of Rect>
arg resizable = false
arg border = true
arg scroll = false
Server:makeGui 01621CB0
arg this = <instance of Server>
arg w = nil
var active = nil
var booter = nil
var killer = nil
var makeDefault = nil
var running = nil
var booting = nil
var stopped = nil
var bundling = nil
var recorder = nil
var scoper = nil
var countsViews = nil
var ctlr = nil
var dumping = false
var label = "internal server"
var gui = class CocoaGUI
var font = <instance of Font>
var volumeNum = nil
Server:makeWindow 0166AA70
arg this = <instance of Server>
arg w = nil
OSXPlatform:startup 01716400
arg this = <instance of OSXPlatform>
Main:startup 017163A0
arg this = <instance of Main>
ERROR: A primitive was not bound. 0 550
Instance of Method { (02095980, gc=01, fmt=00, flg=11, set=04)
instance variables [15]
raw1 : Float 3.885727e-318 00000000 000C0030
raw2 : Float 1.390671244457466e-309 00010000 01000001
code : instance of Int8Array (02095A30, size=1, set=1)
selectors : nil
constants : nil
prototypeFrame : instance of Array (013A6FC0, size=1, set=1)
context : nil
argNames : instance of SymbolArray (013A7000, size=1, set=1)
varNames : nil
sourceCode : nil
ownerClass : class Meta_CocoaDocument (02091B70)
name : Symbol 'prGetIndexOfListener'
primitiveName : Symbol '_TextWindow_GetIndexOfListener'
filenameSymbol : Symbol '/Applications/Audio_Applications/SuperCollider3/build/SCClassLibrary/Platform/osx/CocoaDocument.sc'
charPos : Integer 3010
}
ERROR: Primitive '_BasicAt' failed.
Index not an Integer
RECEIVER:
Instance of Array { (016AAC90, gc=20, fmt=01, flg=00, set=00)
indexed slots [0]
}
CALL STACK:
MethodError:reportError 013CAC50
arg this = <instance of PrimitiveFailedError>
Nil:handleError 013CABF0
arg this = nil
arg error = <instance of PrimitiveFailedError>
Thread:handleError 013CAB90
arg this = <instance of Thread>
arg error = <instance of PrimitiveFailedError>
Thread:handleError 013CAB30
arg this = <instance of Routine>
arg error = <instance of PrimitiveFailedError>
Object:throw 013CAAD0
arg this = <instance of PrimitiveFailedError>
Object:primitiveFailed 013CAA70
arg this = [*0]
< FunctionDef in Method Meta_CocoaDocument:startup > (no arguments or variables)
Routine:prStart 0166AAD0
arg this = <instance of Routine>
arg inval = 4.991427843
scacinto wrote:
Hi all,
I've recently become dissatisfied with the supercollider interpreter (for a number of reasons including no line numbers, no auto syntax highlighting, open windows all over causing headaches, etc.) and would like to be able to work with the sclang executable instead via another text editor. I've attempted to build the executable from the source using scons but get a host of errors. Has anyone had success building the executable from source on a MacIntel with Leopard? The error (if you care) is as follows.
...Source/lang/LangPrimSource/PyrSched.cpp: In function 'void syncOSCOffsetWithTimeOfDay()':
Source/lang/LangPrimSource/PyrSched.cpp:290: error: 'gettimeofday' was not declared in this scope
scons: *** [Source/lang/LangPrimSource/PyrSched.os] Error 1
scons: building terminated because of errors.
If I edit out this section and try again, other files pop up with errors.
I know there are instructions on the wiki for ways to build from source using XCode, and other means, but the instructions are rather cryptic, and some didn't work for me at all. Is there an easy (practical) way to do this that doesn't require hours of reading/editing?
Another question. Has anyone tried the text-editor Smultron? It has a number of nice features, from auto syntax highlighting to auto line numbering, in-window (quicklook) document opening so all docs are contained within a single window, one need only click one to access it. It has multiple view support and some other niceties. It can execute scripts, inline posts, etc. It seems like one could easily script this program to work like SCVim and get some of the features missing in the interpreter.
I would love to hear what people are thinking about the current UI Interpreter and their workarounds for working with the sclang executable with other programs.
Thanks,
- Scott
______________________________
Scott Petersen
Assistant Director, YalMusT
Music Technology Specialist
Department of Music
Yale University, New Haven, CT 06511
United States