diff --git a/NEWS b/NEWS index e81a2959..0a380ee2 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,22 @@ = RubyMotion 2.15 = + * 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. + * 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 + 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 = 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 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 f9f00a09..28da0e99 100644 --- a/lib/motion/project/xcode_config.rb +++ b/lib/motion/project/xcode_config.rb @@ -345,17 +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 - extra_flags = begin - case platform - when "MacOSX" - '--64-bit' - else - (OSX_VERSION >= 10.7 && sdk_version < '7.0') ? '--no-64-bit' : '' - end - 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')}' #{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 diff --git a/vm b/vm index f29c79cc..ad2b699e 160000 --- a/vm +++ b/vm @@ -1 +1 @@ -Subproject commit f29c79cc506a910a0016ab8c5b5c470cea40cecd +Subproject commit ad2b699ef2155b86c866e5d157609696ff0812ab