[SCM] supercollider/master: Imported Upstream version 3.4.3
danstowell-guest at users.alioth.debian.org
danstowell-guest at users.alioth.debian.org
Fri Apr 15 21:24:08 UTC 2011
The following commit has been merged in the master branch:
commit dc463ddbcf7f908f6b23ea79ebe9637701287773
Author: Dan Stowell <danstowell at users.sourceforge.net>
Date: Fri Apr 15 13:08:35 2011 +0100
Imported Upstream version 3.4.3
diff --git a/VERSION b/VERSION
index 2d54055..a46bb9d 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-3.4.2
-classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".2";
+3.4.3
+classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".3";
diff --git a/common/SConstruct b/common/SConstruct
index 0b049de..76908d0 100644
--- a/common/SConstruct
+++ b/common/SConstruct
@@ -817,14 +817,14 @@ libscsynthEnv = serverEnv.Clone(
PKGCONFIG_LIBS = ['-lscsynth'],
# PKGCONFIG_LIBS_PRIVATE = ['-lm', '-lpthread', '-ldl'],
PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/server'],
- SHLIBSUFFIX='.so.1.0.0',
- LIBSUFFIXES=['.so.1.0.0']
+ SHLIBSUFFIX='.so.1',
+ LIBSUFFIXES=['.so.1']
)
if PLATFORM == 'linux':
libscsynthEnv.Append(
- LINKFLAGS = ['-Wl,-soname,libscsynth.so.1.0.0'])
+ LINKFLAGS = ['-Wl,-soname,libscsynth.so.1'])
# create local symlink for linker to follow (not installed)
- libscsynthEnv.Command('build/libscsynth.so', 'build/libscsynth.so.1.0.0', make_local_symlink, chdir=1)
+ libscsynthEnv.Command('build/libscsynth.so', 'build/libscsynth.so.1', make_local_symlink, chdir=1)
libscsynthSources = Split('''
Source/server/Rendezvous.cpp
@@ -855,7 +855,7 @@ scsynthSources = ['Source/server/scsynth_main.cpp']
libscsynth = libscsynthEnv.SharedLibrary('build/scsynth', libscsynthSources)
env.Alias('install-programs', env.Install(lib_dir(INSTALL_PREFIX), [libscsynth]))
-env.Alias('install-programs', env.Command(lib_dir(INSTALL_PREFIX) + '/libscsynth.so', lib_dir(INSTALL_PREFIX) + '/libscsynth.so.1.0.0', make_local_symlink, chdir=1))
+env.Alias('install-programs', env.Command(lib_dir(INSTALL_PREFIX) + '/libscsynth.so', lib_dir(INSTALL_PREFIX) + '/libscsynth.so.1', make_local_symlink, chdir=1))
libscsynthStaticSources = libscsynthSources + make_static_objects(serverEnv, commonSources, "_libscsynthStatic");
libscsynthStatic = serverEnv.StaticLibrary('build/scsynth', libscsynthStaticSources)
@@ -1064,18 +1064,18 @@ libsclangEnv = langEnv.Clone(
PKGCONFIG_REQUIRES = make_pkgconfig_requires(libraries['sndfile']) + ['libscsynth'],
PKGCONFIG_LIBS = ['-lsclang'],
PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/lang', '-I${includedir}/server'],
- SHLIBSUFFIX='.so.1.0.0',
- LIBSUFFIXES=['.so.1.0.0']
+ SHLIBSUFFIX='.so.1',
+ LIBSUFFIXES=['.so.1']
)
if PLATFORM == 'linux':
libsclangEnv.Append(
- LINKFLAGS = ['-Wl,-soname,libsclang.so.1.0.0'])
+ LINKFLAGS = ['-Wl,-soname,libsclang.so.1'])
# create local symlink for linker to follow (not installed)
- libsclangEnv.Command('build/libsclang.so', 'build/libsclang.so.1.0.0', make_local_symlink, chdir=1)
- Requires('build/libsclang.so.1.0.0', 'build/libscsynth.so')
+ libsclangEnv.Command('build/libsclang.so', 'build/libsclang.so.1', make_local_symlink, chdir=1)
+ Requires('build/libsclang.so.1', 'build/libscsynth.so')
# required libraries
-merge_lib_info(langEnv, libraries['sndfile'])
+merge_lib_info(libsclangEnv, libraries['sndfile'])
libsclangSources = Split('''
Source/lang/LangSource/AdvancingAllocPool.cpp
@@ -1125,11 +1125,11 @@ Source/common/fftlib.c
''')
if env['LANG']:
- merge_lib_info(langEnv, libraries['libicu'])
+ merge_lib_info(libsclangEnv, libraries['libicu'])
# optional features
if features['midiapi']:
- merge_lib_info(langEnv, libraries['midiapi'])
+ merge_lib_info(libsclangEnv, libraries['midiapi'])
if features['midiapi'] == 'CoreMIDI':
libsclangSources += ['Source/lang/LangPrimSource/SC_CoreMIDI.cpp']
else:
@@ -1139,7 +1139,7 @@ else:
libsclangSources += ['Source/lang/LangPrimSource/SC_AlsaMIDI.cpp']
if PLATFORM == 'darwin':
- langEnv.Append(
+ libsclangEnv.Append(
CPPPATH = ['#Source/lang/LangPrimSource/HID_Utilities',
'#Source/lang/LangPrimSource/WiiMote_OSX'],
LINKFLAGS = '-framework Carbon -framework IOKit -framework IOBluetooth'
@@ -1161,15 +1161,15 @@ if PLATFORM == 'linux':
# HAVE_LID does the right thing in SC_LID.cpp source
libsclangSources += ['Source/lang/LangPrimSource/SC_LID.cpp']
if features['wii']:
- langEnv.Append(CPPDEFINES = 'HAVE_WII')
- langEnv.Append(LINKFLAGS = '-lcwiid')
+ libsclangEnv.Append(CPPDEFINES = 'HAVE_WII')
+ libsclangEnv.Append(LINKFLAGS = '-lcwiid')
#langEnv.Append(LINKFLAGS = '-lbluetooth')
#langEnv.Append(CPPPATH = '-I/usr/local/include/libcwiimote-0.4.0/libcwiimote/' ) #FIXME: to proper include directory
if features['lid']:
- langEnv.Append(CPPDEFINES = 'HAVE_LID')
+ libsclangEnv.Append(CPPDEFINES = 'HAVE_LID')
if PLATFORM == 'darwin':
- langEnv.Append(CPPDEFINES = 'HAVE_SPEECH')
+ libsclangEnv.Append(CPPDEFINES = 'HAVE_SPEECH')
libsclangSources += ['Source/lang/LangPrimSource/SC_Speech.cpp']
sclangSources = ['Source/lang/LangSource/cmdLineFuncs.cpp']
@@ -1177,7 +1177,7 @@ sclangSources = ['Source/lang/LangSource/cmdLineFuncs.cpp']
if env['LANG']:
libsclang = libsclangEnv.SharedLibrary('build/sclang', libsclangSources)
env.Alias('install-bin', env.Install(lib_dir(INSTALL_PREFIX), [libsclang]))
- env.Alias('install-bin', env.Command(lib_dir(INSTALL_PREFIX) + '/libsclang.so', lib_dir(INSTALL_PREFIX) + '/libsclang.so.1.0.0', make_local_symlink, chdir=1))
+ env.Alias('install-bin', env.Command(lib_dir(INSTALL_PREFIX) + '/libsclang.so', lib_dir(INSTALL_PREFIX) + '/libsclang.so.1', make_local_symlink, chdir=1))
if PLATFORM == 'darwin':
sclangLibs = ['scsynth', 'sclang']
else:
diff --git a/common/build/SCClassLibrary/Common/Audio/Env.sc b/common/build/SCClassLibrary/Common/Audio/Env.sc
index eb06b74..d07c131 100644
--- a/common/build/SCClassLibrary/Common/Audio/Env.sc
+++ b/common/build/SCClassLibrary/Common/Audio/Env.sc
@@ -77,7 +77,7 @@ Env {
}
asPseg {
- var c = if(curves.isSequenceableCollection.not) { curves } { Pseq(curves) };
+ var c = if(curves.isSequenceableCollection.not) { curves } { Pseq(curves, inf) };
^Pseg(Pseq(levels), Pseq(times ++ [1.0]), c) // last time is a dummy
}
diff --git a/common/build/SCClassLibrary/Common/Core/Kernel.sc b/common/build/SCClassLibrary/Common/Core/Kernel.sc
index 9ff3509..b50d467 100644
--- a/common/build/SCClassLibrary/Common/Core/Kernel.sc
+++ b/common/build/SCClassLibrary/Common/Core/Kernel.sc
@@ -56,15 +56,28 @@ Class {
},{ ^nil });
}
findRespondingMethodFor { arg methodName;
- var class, method;
- class = this;
- while ({class.notNil && (class != Class)}, {
- method = class.findMethod(methodName);
- if (method.notNil, { ^method });
- class = class.superclass;
- });
+ this.superclassesDo { arg class;
+ var method = class.findMethod(methodName);
+ method !? { ^method };
+ };
+ ^nil
+ }
+ findOverriddenMethod { arg methodName;
+ if(this.findMethod(methodName).isNil) { ^nil };
+ this.superclass.superclassesDo { arg class;
+ var method = class.findMethod(methodName);
+ if(method.notNil) { ^method }
+ };
^nil
}
+ superclassesDo { arg function;
+ var class = this;
+ while ({ class.notNil and: { class != Class} }) {
+ function.value(class);
+ class = class.superclass;
+ }
+ }
+
dumpByteCodes { arg methodName;
var meth;
meth = this.findMethod(methodName);
@@ -151,11 +164,8 @@ Class {
^list
}
superclasses {
- var list, class;
- class = this;
- while ({ class = class.superclass; class.notNil },{
- list = list.add(class)
- });
+ var list;
+ this.superclass.superclassesDo { arg class; list = list.add(class) }
^list
}
@@ -214,6 +224,7 @@ Process {
var string, class, method, words;
string = interpreter.cmdLine;
if (string.includes($:), {
+ string.removeAllSuchThat(_.isSpace);
words = string.delimit({ arg c; c == $: });
class = words.at(0).asSymbol.asClass;
if (class.notNil, {
@@ -235,6 +246,7 @@ Process {
var string, class, method, words;
string = interpreter.cmdLine;
if (string.includes($:), {
+ string.removeAllSuchThat(_.isSpace);
words = string.delimit({ arg c; c == $: });
class = words.at(0).asSymbol.asClass;
if (class.notNil, {
diff --git a/common/build/SCClassLibrary/Common/Files/File.sc b/common/build/SCClassLibrary/Common/Files/File.sc
index 98f0570..d23888f 100644
--- a/common/build/SCClassLibrary/Common/Files/File.sc
+++ b/common/build/SCClassLibrary/Common/Files/File.sc
@@ -41,6 +41,7 @@ File : UnixFILE {
close { // close the file
// the GC will not call this for you
this.prClose;
+ fileptr = nil;
openFiles.remove(this);
}
length { // returns the length of the file
@@ -123,6 +124,7 @@ Pipe : UnixFILE {
close {
this.prClose;
+ fileptr = nil;
openFiles.remove(this);
}
diff --git a/common/build/SCClassLibrary/Common/GUI/Model.sc b/common/build/SCClassLibrary/Common/GUI/Model.sc
index 5898abf..e1b0bdb 100644
--- a/common/build/SCClassLibrary/Common/GUI/Model.sc
+++ b/common/build/SCClassLibrary/Common/GUI/Model.sc
@@ -92,9 +92,9 @@ NotificationCenter {
});
}
*registerOneShot { arg object,message,listener,action;
- registrations.put(object,message,listener,
- {
- action.value;
+ ^this.register(object, message, listener,
+ { |... args|
+ action.valueArray(args);
this.unregister(object,message,listener)
})
}
diff --git a/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc b/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc
index 12dc49b..1bfa5c8 100644
--- a/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc
+++ b/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc
@@ -616,9 +616,11 @@ ClassBrowser {
// of the new state environment
// might be nil unless subclass also implements
extraValuesDict: (methodViewIndex: {
- ~methodArray.detectIndex({ |item|
- item.name == prevMethod.name
- })
+ if(prevMethod.isNil) { 0 } {
+ ~methodArray.detectIndex({ |item|
+ item.name == prevMethod.name
+ })
+ };
}));
},
navigateToCurrentClassAction: {
diff --git a/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc b/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc
index 677cf88..2ce6f45 100644
--- a/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc
+++ b/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc
@@ -12,21 +12,21 @@ EventStreamCleanup {
}
addFunction { |event, function |
- if(event.respondsTo(\keysValuesDo)) {
+ if(event.isKindOf(Dictionary)) {
functions = functions.add(function);
event[\addToCleanup] = event[\addToCleanup].add(function);
};
}
addNodeCleanup { |event, function |
- if(event.respondsTo(\keysValuesDo)) {
+ if(event.isKindOf(Dictionary)) {
functions = functions.add(function);
event[\addToNodeCleanup] = event[\addToNodeCleanup].add(function);
};
}
update { | event |
- if(event.respondsTo(\keysValuesDo)) {
+ if(event.isKindOf(Dictionary)) {
functions = functions.addAll(event[\addToNodeCleanup]);
functions = functions.addAll(event[\addToCleanup]);
functions = functions.removeAll(event[\removeFromCleanup]);
@@ -35,7 +35,7 @@ EventStreamCleanup {
}
exit { | event, freeNodes = true |
- if(event.respondsTo(\keysValuesDo)) {
+ if(event.isKindOf(Dictionary)) {
this.update(event);
functions.do(_.value(freeNodes) );
event[\removeFromCleanup] = event[\removeFromCleanup].addAll(functions);
diff --git a/common/build/SCClassLibrary/DefaultLibrary/Main.sc b/common/build/SCClassLibrary/DefaultLibrary/Main.sc
index da35282..48b5cc2 100644
--- a/common/build/SCClassLibrary/DefaultLibrary/Main.sc
+++ b/common/build/SCClassLibrary/DefaultLibrary/Main.sc
@@ -1,7 +1,7 @@
Main : Process {
// do not change the next lines manually:
//==== replace with new version from bash script ====
-classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".2";
+classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".3";
//==== end replace ====
var <platform, argv;
diff --git a/editors/scel/sc/EmacsDocument.sc b/editors/scel/sc/EmacsDocument.sc
index 6aa20de..e0ca652 100644
--- a/editors/scel/sc/EmacsDocument.sc
+++ b/editors/scel/sc/EmacsDocument.sc
@@ -21,7 +21,7 @@ EmacsDocument
classvar documentMap, <>current;
var <>sceld;
var title, path;
- var dataptr;
+ var <dataptr;
var <isEdited, <isListener, <envir;
*initClass {
diff --git a/editors/scel/sc/ScelDocument.sc b/editors/scel/sc/ScelDocument.sc
index 575e9c5..dc16280 100644
--- a/editors/scel/sc/ScelDocument.sc
+++ b/editors/scel/sc/ScelDocument.sc
@@ -295,6 +295,8 @@ ScelDocument : Document{
^this.string( rangestart, rangesize );
}
+ dataptr { ^thisdoc.tryPerform(\dataptr) }
+
// not implemented:
selectRange { arg start=0, length=0; }
background_ {arg color, rangestart= -1, rangesize = 0;
--
supercollider packaging
More information about the pkg-multimedia-commits
mailing list