From 23e132280370912e05f0a050b1a2fa87f184232e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eloy=20Dur=C3=A1n?= Date: Fri, 8 Nov 2013 14:14:42 +0100 Subject: [PATCH 01/11] [BS] Link OSServices to CoreServices. --- data/Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/Rakefile b/data/Rakefile index c501869e..eadda978 100644 --- a/data/Rakefile +++ b/data/Rakefile @@ -110,7 +110,7 @@ task :bridgesupport_files do linked_framework = case framework - when 'CFNetwork', 'LaunchServices', 'Metadata' then 'CoreServices' + when 'CFNetwork', 'LaunchServices', 'Metadata', 'OSServices' then 'CoreServices' when 'ColorSync', 'HIServices' then 'ApplicationServices' else framework end From 07177a86c3154bcf4053f8b6bc733072b6f2d8a7 Mon Sep 17 00:00:00 2001 From: Watson Date: Sat, 9 Nov 2013 13:55:10 +0900 Subject: [PATCH 02/11] sync --- NEWS | 2 ++ vm | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index e81a2959..69281f2f 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ = RubyMotion 2.15 = + * Improved dispatching of shortcut methods (ex foo= is shortcut of setFoo:). + 20 times faster. * [iOS] Fixed a bug where `rake device' would no longer print the application logs from the device. diff --git a/vm b/vm index e97f138d..61d39da1 160000 --- a/vm +++ b/vm @@ -1 +1 @@ -Subproject commit e97f138d342f9b87bc902f56d170cc204d6ef636 +Subproject commit 61d39da1c6ae995cd320114fcc2e0e5b2e2c6b3f From cc6ae79ea134a52bf9383275d0d6e1d7723888f0 Mon Sep 17 00:00:00 2001 From: Watson Date: Sun, 10 Nov 2013 00:59:56 +0900 Subject: [PATCH 03/11] sync --- NEWS | 1 + vm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 69281f2f..b9a34a1d 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,7 @@ * Improved dispatching of shortcut methods (ex foo= is shortcut of setFoo:). 20 times faster. + * Improved Array#concat performance. About 2 times faster. * [iOS] Fixed a bug where `rake device' would no longer print the application logs from the device. diff --git a/vm b/vm index 61d39da1..99a5e73c 160000 --- a/vm +++ b/vm @@ -1 +1 @@ -Subproject commit 61d39da1c6ae995cd320114fcc2e0e5b2e2c6b3f +Subproject commit 99a5e73c2530957371d6697bcd16474fc87c5d2f From 51ac31a777db88250fa1ebdd09eb14da61126a83 Mon Sep 17 00:00:00 2001 From: Watson Date: Mon, 11 Nov 2013 08:05:29 +0900 Subject: [PATCH 04/11] [OSX] fix a bug on OSX platform where compiler flags for iOS are passed when it generates bridgesupport file for vendor library http://hipbyte.myjetbrains.com/youtrack/issue/RM-315 --- lib/motion/project/xcode_config.rb | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/motion/project/xcode_config.rb b/lib/motion/project/xcode_config.rb index f9f00a09..61528563 100644 --- a/lib/motion/project/xcode_config.rb +++ b/lib/motion/project/xcode_config.rb @@ -347,15 +347,14 @@ EOS exceptions = exceptions.map { |x| "\"#{x}\"" }.join(' ') a = sdk_version.scan(/(\d+)\.(\d+)/)[0] sdk_version_headers = ((a[0].to_i * 10000) + (a[1].to_i * 100)).to_s - extra_flags = begin - case platform - when "MacOSX" - '--64-bit' - else - (OSX_VERSION >= 10.7 && sdk_version < '7.0') ? '--no-64-bit' : '' - end + if platform == "MacOSX" + extra_flags = '--64-bit' + require_version = "-mmacosx-version-min=#{sdk_version} -D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=#{sdk_version_headers}" + else + extra_flags = (OSX_VERSION >= 10.7 && sdk_version < '7.0') ? '--no-64-bit' : '' + require_version = "-miphoneos-version-min=#{sdk_version} -D__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__=#{sdk_version_headers}" end - sh "RUBYOPT='' '#{File.join(bindir, 'gen_bridge_metadata')}' --format complete #{extra_flags} --cflags \" #{c_flags} -isysroot \"#{sdk_path}\" -miphoneos-version-min=#{sdk_version} -D__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__=#{sdk_version_headers} -D__STRICT_ANSI__ -I. #{includes.join(' ')}\" #{headers.map { |x| "\"#{x}\"" }.join(' ')} -o \"#{bs_file}\" #{ "-e #{exceptions}" if exceptions.length != 0}" + sh "RUBYOPT='' '#{File.join(bindir, 'gen_bridge_metadata')}' --format complete #{extra_flags} --cflags \" #{c_flags} -isysroot \"#{sdk_path}\" #{require_version} -D__STRICT_ANSI__ -I. #{includes.join(' ')}\" #{headers.map { |x| "\"#{x}\"" }.join(' ')} -o \"#{bs_file}\" #{ "-e #{exceptions}" if exceptions.length != 0}" end def define_global_env_txt From 001368623ae09f12f1f430dd7d1887ee9bd48e44 Mon Sep 17 00:00:00 2001 From: Watson Date: Mon, 11 Nov 2013 08:07:46 +0900 Subject: [PATCH 05/11] add line in NEWS --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index b9a34a1d..4a71f4d8 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ * Improved Array#concat performance. About 2 times faster. * [iOS] Fixed a bug where `rake device' would no longer print the application logs from the device. + * [OSX] Fixed a bug on OSX platform where compiler flags for iOS are passed + when it generates bridgesupport file for vendor library. = RubyMotion 2.14 = From d963c6489d7cb3cdf4161003cc4972b255e4d80f Mon Sep 17 00:00:00 2001 From: Watson Date: Mon, 11 Nov 2013 10:15:34 +0900 Subject: [PATCH 06/11] move special configuration for iOS/OSX platform from gen_bridge_metadata() --- lib/motion/project/template/ios/config.rb | 11 +++++++++++ lib/motion/project/template/osx/config.rb | 10 ++++++++++ lib/motion/project/xcode_config.rb | 11 +---------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/motion/project/template/ios/config.rb b/lib/motion/project/template/ios/config.rb index 21369185..30ea772d 100644 --- a/lib/motion/project/template/ios/config.rb +++ b/lib/motion/project/template/ios/config.rb @@ -178,6 +178,17 @@ module Motion; module Project; ldflags end + def bridgesupport_flags + extra_flags = (OSX_VERSION >= 10.7 && sdk_version < '7.0') ? '--no-64-bit' : '' + "--format complete #{extra_flags}" + end + + def bridgesupport_cflags + a = sdk_version.scan(/(\d+)\.(\d+)/)[0] + sdk_version_headers = ((a[0].to_i * 10000) + (a[1].to_i * 100)).to_s + "-miphoneos-version-min=#{sdk_version} -D__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__=#{sdk_version_headers}" + end + def device_family_int(family) case family when :iphone then 1 diff --git a/lib/motion/project/template/osx/config.rb b/lib/motion/project/template/osx/config.rb index a52aaa16..945b2c85 100644 --- a/lib/motion/project/template/osx/config.rb +++ b/lib/motion/project/template/osx/config.rb @@ -103,6 +103,16 @@ module Motion; module Project; super + " -mmacosx-version-min=#{deployment_target}" end + def bridgesupport_flags + "--format complete --64-bit" + end + + def bridgesupport_cflags + a = sdk_version.scan(/(\d+)\.(\d+)/)[0] + sdk_version_headers = ((a[0].to_i * 10000) + (a[1].to_i * 100)).to_s + "-mmacosx-version-min=#{sdk_version} -D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=#{sdk_version_headers}" + end + def app_bundle_raw(platform) File.join(versionized_build_dir(platform), bundle_name + '.app') end diff --git a/lib/motion/project/xcode_config.rb b/lib/motion/project/xcode_config.rb index 61528563..28da0e99 100644 --- a/lib/motion/project/xcode_config.rb +++ b/lib/motion/project/xcode_config.rb @@ -345,16 +345,7 @@ EOS sdk_path = self.sdk(local_platform) includes = headers.map { |header| "-I'#{File.dirname(header)}'" }.uniq exceptions = exceptions.map { |x| "\"#{x}\"" }.join(' ') - a = sdk_version.scan(/(\d+)\.(\d+)/)[0] - sdk_version_headers = ((a[0].to_i * 10000) + (a[1].to_i * 100)).to_s - if platform == "MacOSX" - extra_flags = '--64-bit' - require_version = "-mmacosx-version-min=#{sdk_version} -D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=#{sdk_version_headers}" - else - extra_flags = (OSX_VERSION >= 10.7 && sdk_version < '7.0') ? '--no-64-bit' : '' - require_version = "-miphoneos-version-min=#{sdk_version} -D__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__=#{sdk_version_headers}" - end - sh "RUBYOPT='' '#{File.join(bindir, 'gen_bridge_metadata')}' --format complete #{extra_flags} --cflags \" #{c_flags} -isysroot \"#{sdk_path}\" #{require_version} -D__STRICT_ANSI__ -I. #{includes.join(' ')}\" #{headers.map { |x| "\"#{x}\"" }.join(' ')} -o \"#{bs_file}\" #{ "-e #{exceptions}" if exceptions.length != 0}" + sh "RUBYOPT='' '#{File.join(bindir, 'gen_bridge_metadata')}' #{bridgesupport_flags} --cflags \" #{c_flags} -isysroot \"#{sdk_path}\" #{bridgesupport_cflags} -D__STRICT_ANSI__ -I. #{includes.join(' ')}\" #{headers.map { |x| "\"#{x}\"" }.join(' ')} -o \"#{bs_file}\" #{ "-e #{exceptions}" if exceptions.length != 0}" end def define_global_env_txt From d0f5d6f63791c44f65d3df05ca2c2af18b0c5d59 Mon Sep 17 00:00:00 2001 From: Watson Date: Mon, 11 Nov 2013 10:22:49 +0900 Subject: [PATCH 07/11] sync --- NEWS | 5 +++++ vm | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 4a71f4d8..745e4370 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,11 @@ * Improved dispatching of shortcut methods (ex foo= is shortcut of setFoo:). 20 times faster. * Improved Array#concat performance. About 2 times faster. + * Improved Array#reverse performance. 2 times faster. + * Improved Array#reverse! performance. 8 times faster. + * Improved Array#rotate performance. 5 times faster. + * Improved Array#rotate! performance. 40 times faster. + * Fixed a bug where Array#rotate! causes a crash in REPL. * [iOS] Fixed a bug where `rake device' would no longer print the application logs from the device. * [OSX] Fixed a bug on OSX platform where compiler flags for iOS are passed diff --git a/vm b/vm index 99a5e73c..2ed7ee12 160000 --- a/vm +++ b/vm @@ -1 +1 @@ -Subproject commit 99a5e73c2530957371d6697bcd16474fc87c5d2f +Subproject commit 2ed7ee127bf8ee3242314d81a18d32204964ed0a From 0fd0612744b7cdd98fccf045e369a9e1dbfb09de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eloy=20Dur=C3=A1n?= Date: Mon, 11 Nov 2013 14:35:43 +0100 Subject: [PATCH 08/11] [OSX] Add bridgesupport metadata for Carbon frameworks. http://hipbyte.myjetbrains.com/youtrack/issue/RM-318 --- NEWS | 1 + data/Rakefile | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 745e4370..30993d47 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,7 @@ logs from the device. * [OSX] Fixed a bug on OSX platform where compiler flags for iOS are passed when it generates bridgesupport file for vendor library. + * [OSX] Add bridgesupport metadata for Carbon frameworks. = RubyMotion 2.14 = diff --git a/data/Rakefile b/data/Rakefile index eadda978..4ce57228 100644 --- a/data/Rakefile +++ b/data/Rakefile @@ -88,7 +88,7 @@ def merge_bridgesupport(base_bridgesupport, merge_brigesupport) } end -EXCLUDED_FRAMEWORKS = ['Kernel', 'System', 'IOKit', 'Carbon', 'Ruby', 'RubyCocoa', 'vecLib'] +EXCLUDED_FRAMEWORKS = ['Kernel', 'System', 'IOKit', 'Ruby', 'RubyCocoa', 'vecLib'] task :bridgesupport_files do platform_dev_path = "#{PLATFORMS_DIR}/MacOSX.platform/Developer" OSX_SDK_VERSIONS.each do |sdk_version| @@ -110,6 +110,7 @@ task :bridgesupport_files do linked_framework = case framework + when 'HIToolbox', 'Ink' then 'Carbon' when 'CFNetwork', 'LaunchServices', 'Metadata', 'OSServices' then 'CoreServices' when 'ColorSync', 'HIServices' then 'ApplicationServices' else framework From edb32b130fbb36ada1f379ffffef5ae27dc49a94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eloy=20Dur=C3=A1n?= Date: Mon, 11 Nov 2013 14:43:05 +0100 Subject: [PATCH 09/11] [NEWS] Add entry about OSServices -> CoreServices fix. --- NEWS | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS b/NEWS index 30993d47..17cedd3c 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ * [OSX] Fixed a bug on OSX platform where compiler flags for iOS are passed when it generates bridgesupport file for vendor library. * [OSX] Add bridgesupport metadata for Carbon frameworks. + * [OSX] Add bridgesupport metadata for OSServices framework. = RubyMotion 2.14 = From c14d8b7ed8fbfd3128565a167d2101354dd4a431 Mon Sep 17 00:00:00 2001 From: Watson Date: Mon, 11 Nov 2013 23:43:25 +0900 Subject: [PATCH 10/11] sync --- NEWS | 2 ++ vm | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 17cedd3c..46e771cb 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,8 @@ * Improved Array#rotate performance. 5 times faster. * Improved Array#rotate! performance. 40 times faster. * Fixed a bug where Array#rotate! causes a crash in REPL. + * Fixed a bug where the objects created by "CFxxxCreate(args)" are not + released. * [iOS] Fixed a bug where `rake device' would no longer print the application logs from the device. * [OSX] Fixed a bug on OSX platform where compiler flags for iOS are passed diff --git a/vm b/vm index 2ed7ee12..c30cacae 160000 --- a/vm +++ b/vm @@ -1 +1 @@ -Subproject commit 2ed7ee127bf8ee3242314d81a18d32204964ed0a +Subproject commit c30cacae4e73875e662ddee962ff23b57268a2a9 From 4fb084d5eaab319039e8efc8b013f3a24fdfb6f4 Mon Sep 17 00:00:00 2001 From: Watson Date: Tue, 12 Nov 2013 16:50:41 +0900 Subject: [PATCH 11/11] sync --- NEWS | 1 + vm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 46e771cb..0a380ee2 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,7 @@ * Improved dispatching of shortcut methods (ex foo= is shortcut of setFoo:). 20 times faster. + * Improved the performance where Fixnum and Float are returned. 20% faster. * Improved Array#concat performance. About 2 times faster. * Improved Array#reverse performance. 2 times faster. * Improved Array#reverse! performance. 8 times faster. diff --git a/vm b/vm index c30cacae..936909b0 160000 --- a/vm +++ b/vm @@ -1 +1 @@ -Subproject commit c30cacae4e73875e662ddee962ff23b57268a2a9 +Subproject commit 936909b030e7e25d60daa20951546b6f766813d9