Hello, on SuperCollider 3.11.1, on arch linux, I tried this:
Platform.startupFiles;
and got the error message quoted below.
Any ideas how to solve this?
Iannis Zannos
ERROR: A primitive was not bound. 0 861
Instance of Method { (0x55e587bd79c0, gc=01, fmt=00, flg=11, set=04)
instance variables [15]
raw1 : Float 0.000000 00000000 0080000C
raw2 : Float 0.000000 00000300 03020003
code : instance of Int8Array (0x55e587bd7d80, size=4, set=2)
selectors : instance of Array (0x55e587bd7cc0, size=1, set=2)
constants : nil
prototypeFrame : instance of Array (0x55e587bd7c00, size=3, set=2)
context : nil
argNames : instance of SymbolArray (0x55e587bd7b40, size=3, set=2)
varNames : nil
sourceCode : nil
ownerClass : instance of Meta_SequenceableCollection (0x55e588036f80, size=19, set=5)
name : Symbol 'prEditDistance'
primitiveName : Symbol '_ArrayLevenshteinDistance'
filenameSymbol : Symbol '/home/iani/Dev/SC/sc-source-iz-workfolder-20200819/SCClassLibrary/Common/Collections/SequenceableCollection.sc'
charPos : Integer 3418
}
ERROR: Message 'prLevenshteinDistance' not understood.
RECEIVER:
nil
ARGS:
nil
nil
PATH: /home/iani/.config/SuperCollider/test.scd
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
Nil:handleError
arg this = nil
arg error = <instance of DoesNotUnderstandError>
Thread:handleError
arg this = <instance of Thread>
arg error = <instance of DoesNotUnderstandError>
Object:throw
arg this = <instance of DoesNotUnderstandError>
Object:doesNotUnderstand
arg this = nil
arg selector = 'prLevenshteinDistance'
arg args = [*2]
< FunctionDef in Method Collection:collectAs >
arg elem = "dependantsdictionary"
arg i = 0
ArrayedCollection:do
arg this = [*399]
arg function = <instance of Function>
var i = 0
Collection:collectAs
arg this = [*399]
arg function = <instance of Function>
arg class = <instance of Meta_Array>
var res = [*0]
DoesNotUnderstandError:init
arg this = <instance of DoesNotUnderstandError>
var methods = [*399]
var methodNames = [*399]
var editDistances = nil
var minIndex = nil
var lowerCaseSelector = "startupfiles"
Object:doesNotUnderstand
arg this = <instance of Meta_Platform>
arg selector = 'startupFiles'
arg args = [*0]
Interpreter:interpretPrintCmdLine
arg this = <instance of Interpreter>
var res = nil
var func = <instance of Function>
var code = "Platform.startupFiles;"
var doc = <instance of ScelDocument>
var ideClass = nil
Process:interpretPrintCmdLine
arg this = <instance of Main>
^^ ERROR: Message 'prLevenshteinDistance' not understood.
RECEIVER: nil
Probably a mismatch between your class library and the sclang binary.
It’s not supported to update only the class library without also updating the binary.
You probably need to rebuild.
hjh
Thank you @jamshark70.
I’ll try to find out how to build on arch from source.
Iannis Zannos
Oh, I apologize, I should have checked the help first.
It’s thisProcess.platform.startupFiles
– it’s an instance method, not a class method, so you can’t access it directly from the class Platform
.
(In Linux, building is the best way to update anyway… so it’s worth it to set up that environment. The Linux readme is thorough about this – I’m not good with build tools but managed to set it up pretty quickly.)
hjh
Thanks indeed, @jamshark70.
thisProcess.platform.startupFiles
works on my arch setup.
I checked http://doc.sccode.org/Classes/Platform.html#-startupFiles
and it is consistent with your instructions, although it needs careful reading.
I tried to get started with building on my arch laptop. The info does list all versions of all required compiler parts and libraries. However, I do not yet know how to find out the versions of libraries. I guess I have to go to the source code and read the README or the headers of some files there. I also could not find out what the initial config/compile/install commands are on the terminal. Finally, I do not know what the compile does to the version already installed, so I am reluctant to try out before learning more about where libraries and binaries are placed.
Another topic related to compiling: On arch, yay offers to install a pulseaudio version, which I am interested in trying out in order to avoid the complications of using jack concurrently with software like web browsers or zoom. But yay failed to compile. So I need to study all this more before addressing this in a different entry on the forum.
Cheers,
Iannis Zannos
hey Iannos, i also use arch.
@jamshark70 arch is one of the few (maybe the only?) linux distributions where there is a package maintainer for SC (David Runge) who updates promptly. on other linux distros the situation is definitely less stable, but on arch building from source is rarely necessary if you just want to use SC. the package is in the community repo, if you have it enabled you can install with pacman -S supercollider
.
you can check package versions with pacman -Q
and pacman -Si
. but you don’t need to find out the versions, because SC generally stays compatible with arch’s rolling release model.
check the linux readme.
if you don’t set CMAKE_INSTALL_PREFIX, then binaries by default go in /usr/bin
, libraries in /usr/lib
, and class files in /usr/share
.
reporting this on the aur page would be best if it is a problem you experience when building with yay/aur. David would be able to help better there since he authors the packages.
2 Likes
Hey, @VIRTUALDOG. Thanks indeed. All this information encourages me to try my own build soon.
Iannis
1 Like
great! happy to help if you run into more issues.