mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-04-01 09:31:20 +08:00
1169 lines
67 KiB
Plaintext
1169 lines
67 KiB
Plaintext
= RubyMotion 2.8 =
|
|
|
|
* Added support for iOS 7.0 GM and Xcode 5.0 GM.
|
|
* Added support for building 64-bit iOS apps for iPhone 5S (experimental).
|
|
The toolchain is now able to create x86_64 apps for the simulator and
|
|
arm64 apps for the device. Given the fact that 64-bit iOS has just been
|
|
announced and that many 3rd-party projects have not yet been updated, the
|
|
support is disabled by default. To enable, you can edit your Rakefile and
|
|
set the following lines: app.archs['iPhoneOS'] << 'arm64';
|
|
app.archs['iPhoneSimulator'] << 'x86_64'
|
|
* Improved the compiler to emit assembly instead of LLVM bitcode, which
|
|
results in a significant performance improvement (~3x faster builds).
|
|
* Upgraded the toolchain to LLVM 3.3 and to use clang compilers by default.
|
|
Xcode 4 (llvm-gcc) is no longer required to exist in the file system.
|
|
* Fixed a bug in build system where it could not build an app that was using
|
|
Korean characters in the name.
|
|
* Fixed a bug in the `motion update' command where a non-ASCII character was
|
|
wrongly used in the source code, causing the process to fail in certain
|
|
versions of Ruby. Thanks to Clay Allsopp for the patch (pull request #125).
|
|
* Fixed the compiler to emit debugging (DWARF) annotations for expressions
|
|
that weren't covered before (ex. variables assignments).
|
|
* Fixed a bug where Time#{==, eql?} would return the wrong value when using
|
|
duplicated object from #copy.
|
|
* Fixed a bug in the build system in the `app.vendor_project' method where
|
|
providing custom compiler flags (:cflags => '...') wouldn't work if the
|
|
project was being built twice (ex. `rake build' which builds for both the
|
|
simulator and the device). Thanks to Nick Quaranto for finding the bug.
|
|
* [iOS] Development builds for the device will now compile for the lowest
|
|
architecture possible, in order to create faster builds.
|
|
* [iOS] Fixed a malloc error bug when retrieving a NSDate object from the
|
|
ABRecordCopyValue() function.
|
|
* [iOS] Fixed a bug where methods of the ABPersonViewController,
|
|
ABNewPersonViewController and ABUnknownPersonViewController would cause
|
|
crashes in iOS 7.
|
|
* [iOS] Fixed a bug where the platform/SDK key in Info.plist would indicate
|
|
`iphoneos' even for simulator builds. It has now been changed to
|
|
`iphonesimulator', like Xcode. Thanks to Hwee-Boon Yar for the patch
|
|
(pull request #129).
|
|
* Fixed a bug where template working trees would not be updated upon git pull
|
|
with `motion create [AppName] -template=[git repository path]'.
|
|
Thanks to Jamon Holmgren for the patch (pull request #128).
|
|
|
|
= RubyMotion 2.7 =
|
|
|
|
* Added support for iOS 7.0 Beta 6 and Xcode 5.0 DP 6.
|
|
* Bundler is now integrated in new iOS and OS X projects. A default Gemfile
|
|
will be created and the Rakefile file will require and initialize the
|
|
bundler gem. In case Bundler is not to be found in the Ruby distribution
|
|
that is being used, the build system keeps working as usual.
|
|
* Added the `--cache-version' flag to the `motion update' command which lets
|
|
you keep multiple versions of RubyMotion in your computer. Cached versions
|
|
are installed as `/Library/RubyMotion<XXX>' (where XXX is the version
|
|
number). A project can use an older version of RubyMotion by changing its
|
|
Rakefile to point to `/Library/RubyMotion<XXX>/lib'. The `--force-version'
|
|
flag previously available in `motion update' has been removed.
|
|
* Added the `motion device:console' command to print the logs of the USB
|
|
connected device. New messages will be printed in real-time. Use ^C to
|
|
disconnect from the device.
|
|
* Added the `motion changelog' command to open the NEWS file in the terminal.
|
|
Thanks to Dan Loewenherz for the patch (pull request #107).
|
|
* Added the `String#to_fourcharcode' method which converts the receiver into
|
|
a FourCharCode type (used when doing Carbon/AppleEvent programming). The
|
|
receiver must have exactly 4 characters.
|
|
* Added `*.gem' into .gitignore in gem template.
|
|
* Removed calls from the String/Encoding/Regexp classes to ICU functions that
|
|
Apple has marked as non-public API. As a result, certain operations on
|
|
UTF-32 encodings are not possible anymore, until we figure out a solution.
|
|
* Fixed a memory crasher in Range.new.
|
|
* Fixed a bug in `rake crashlog' where it would fail with a missing
|
|
Shellwords constant, and also when it was not able to locate any crash
|
|
report file.
|
|
* Fixed the wording of the message printed when an application terminates
|
|
with a non-zero status code.
|
|
* Fixed a bug in `rake spec' where it would always return exit(0) status.
|
|
* Fixed the default value of app.short_version to be the same value as in
|
|
app.version. Thanks to Justin Campbell for the patch (pull request #62).
|
|
* Improved the `Boxed#to_a' to recursively send the `#to_a' message on fields
|
|
of the Boxed class (ex: CGRectMake(1, 2, 3, 4).to_a #=> [[1, 2], [3, 4]]).
|
|
* Improved Time class implementation in order to follow Ruby 1.9, so far it
|
|
was based on a Ruby 1.8. This would handle a time that exceeds the value of
|
|
the 32 bit. Added Time#{round, subsec, to_r} methods and changed Time#{new,
|
|
localtime, getlocal} methods to allow the variable arguments.
|
|
* Fixed a minor bug in the cycle detector where it would scan the instance
|
|
variable slots of a pure-Ruby object that have not been initialized yet.
|
|
* Fixed a memory crasher in the REPL that would happen when attempting to
|
|
set the libedit prompt from another thread, leading to a race condition.
|
|
* Fixed a bug, apparently caused by a change in the Objective-C runtime in
|
|
Xcode 5, that would make certain methods (ex. MKAnnotationView#image) not
|
|
returning a proper type at runtime but a pointer to a structure instead.
|
|
* Fixed the build system to make the content of the ARR_CYCLES_DISABLE
|
|
environment variable persistent when distributing an app.
|
|
* [iOS] The `rake device' task will now start the application (without the
|
|
need to attach a debugger). Logs emitted by the app will be redirected in
|
|
the terminal. ^C quits the app. In order to just install the app, the
|
|
`install_only' option can be given (ex. `rake device install_only=1').
|
|
* [iOS] Fixed the REPL/mouse-over functionality when using the simulator in
|
|
retina mode (which is the default when targetting iOS 7).
|
|
* [iOS] Added experimental support for remote debugging with lldb (Xcode 5).
|
|
* [iOS] Added support for the compilation of SpriteKit texture atlas files.
|
|
The build system will now compile directories with the `.atlas' extension
|
|
into one large file inside the app bundle, similar to how Xcode does it.
|
|
* [iOS] Added `:light_content' as new possible value for the
|
|
`app.status_bar_style' Rakefile variable. Thanks to Chris Radford for the
|
|
patch (pull request #116).
|
|
* [iOS] Fixed a bug in `rake debug=1' with Xcode 5 where builtin commands
|
|
(ex. `pro') where not available. We ported the commands from gdb to lldb.
|
|
* [iOS] Fixed a bug where the Accelerate framework was not covered by the
|
|
compiler. Note that the framework is C-only, might be tough to use from
|
|
RubyMotion, and should probably be called in vendored-C code for better
|
|
performance results.
|
|
* [OSX] Added the `app.category' variable which can be used to specify the
|
|
AppStore category. The default value is `utilities'. Thanks to Mark Rickert
|
|
for the patch (pull request #115).
|
|
* [OSX] Fixed the REPL/mouse-over functionality to be able to select views in
|
|
the key window, if the application has multiple windows opened.
|
|
* [OSX] Fixed a bug in Dispatch.once where only the first occurence of the
|
|
call in the code would work as expected.
|
|
* [OSX] Added the `app.codesign_for_development' variable that can be set to
|
|
true to enable codesigning for development builds. The default value for
|
|
this variable is false, and only release builds are codesigned by default.
|
|
|
|
= RubyMotion 2.6 =
|
|
|
|
* Added support for iOS 7.0 Beta 4 and Xcode 5.0 DP 4.
|
|
* Improved the build system so that spec files are also compiled in parallel.
|
|
* Fixed a bug in the cycle detector where it would try scanning objects that
|
|
have already been released. Thanks to Nick Quaranto for the help.
|
|
* Fixed a bug in the cycle detector where instance variables on scanned
|
|
objects would disappear, because of a problem in the WeakRef class.
|
|
* Fixed a bug in `rake crashlog' with application names containing space
|
|
characters. Thanks to Clay Allsopp for the patch (pull request #112).
|
|
* Fixed a bug in the debugger where the debugged process would be terminated
|
|
if ^C was pressed while the app was running.
|
|
* Fixed a bug in the spec framework where a spec that raises a pure
|
|
NSException would cause a runtime error as it would try to send the
|
|
#backtrace message to the object.
|
|
* [iOS] Fixed a bug in the REPL (iOS 7 only) where local variables would not
|
|
be preserved.
|
|
|
|
= RubyMotion 2.5 =
|
|
|
|
* The runtime is now able to detect and break basic circular references
|
|
(when two objects point to themselves). Only objects created from Ruby
|
|
classes (including Objective-C subclasses) are scanned. Cycle detection
|
|
happens when draining the nearest autorelease pool and has a limited number
|
|
of depth iterations, to preserve acceptable runtime performance. To disable
|
|
the cycle detector, set the ARR_CYCLES_DISABLE environment variable to any
|
|
value. To enable debug logging, set the ARR_CYCLES_DEBUG environment
|
|
variable to any value. Many thanks to Joe Noon for pre-testing this feature.
|
|
* Fixed a bug where C-level blocks allocated by the compiler would never be
|
|
released at runtime, as well as the Proc object linked to it. C-level
|
|
blocks are now allocated on the stack, keep a weak-reference to the
|
|
Proc object, and properly implement the Blocks ABI copy/dispose handlers
|
|
to retain/release the associated Proc object when required.
|
|
* The Exception class is now rewritten on top of the NSException class,
|
|
and properly implements its primitive methods. Exceptions are no longer
|
|
being converted. Exception handlers written in Ruby will still catch
|
|
NSException objects by default.
|
|
* Fixed memory leaks in NSMutableArray#{first(n), last(n), pop(n), shift(n)}.
|
|
* Fixed a bug where nested block variables would not be properly synchronized
|
|
if the block terminated early with the `break' or the `return' construct.
|
|
Thanks to Greg Fodor for the report.
|
|
* Fixed a bug where local variables created inside a loop (ex. `while') and
|
|
used inside a nested block would cause the previous value to be released
|
|
twice during the next iteration. Thanks to Daniel Dickison for the report.
|
|
* Fixed Dispatch::*.{sync,async} methods to not catch exceptions inside the
|
|
given blocks, and simply let the process crash naturally.
|
|
* Fixed the build system to not compile default exception handlers in the
|
|
main() entry-point function, as we want the process to crash naturally.
|
|
* Fixed a bug where block variables passed to Dispatch::Queue#async could
|
|
be released twice, leading to a crash.
|
|
* Fixed a bug in the build system where app.deployment_target and
|
|
app.sdk_version were compared as text. Thanks to Andrew Babichev for the
|
|
patch (pull request #108).
|
|
* Changed the `rake simulator' task to print a message when an application
|
|
crashes due to a signal (ex. SIGSEGV) and suggest the user to read the
|
|
crash report file that has been generated by the system.
|
|
* Added the `rake crashlog' task to automatically open the latest crash
|
|
report file that was generated by the system for the current app.
|
|
* Fixed a bug in the REPL where using the <tab> key to enable auto-completion
|
|
could result in a crash due to a missing symbol.
|
|
* Fixed a bug where an object implementing the NSCoding protocol as well as
|
|
#init and #initialize(arg) methods would cause a crash during creation.
|
|
* [iOS] Fixed a warning message from the linker that would be displayed when
|
|
using Xcode 5 to build the app.
|
|
* [iOS] Fixed a bug in the debugger where built-in debug commands weren't
|
|
installed within the simulator.
|
|
* [iOS] Fixed a bug in the build system where an app cmpiled for iOS 5.x
|
|
would immediately crash on the device.
|
|
* [iOS] Fixed a bug where the NSUIntegerMax constant was not properly
|
|
exposed when targeting iOS 7.x.
|
|
|
|
= RubyMotion 2.4 =
|
|
|
|
* Added support for iOS 7.0 Beta 3 and Xcode 5.0 DP 3.
|
|
* Fixed a long-standing set of memory-related bugs related to lambdas.
|
|
Dynamic variables (shared by lambdas and calling scope) are now allocated
|
|
as heap memory inside the Proc data structure. Local variables are properly
|
|
synchronized. Proc objects are properly reclaimed by the system once they
|
|
are no longer used. Changes have been added to both the compiler and the
|
|
runtime.
|
|
* [iOS] Fixed a bug in `rake device' where it could not build an app using
|
|
Xcode 5.x with a deployment target less than iOS 7.0.
|
|
* [iOS] Reduced the size of the Default-568h@2x.png file. Thanks to Gant
|
|
Laborde for the patch (pull request #100).
|
|
* [iOS] Fixed a bug where `rake retina=3.5' would not work with Xcode 5.x.
|
|
* [iOS] Fixed a bug where `rake simulator' would re-launch an iOS 7 simulator
|
|
with Xcode 5.x every time.
|
|
* [OSX] Fixed a bug in the build system where APIs of 3rd-party libraries
|
|
would not be properly handled in 64-bit mode.
|
|
* Fixed a memory crasher when trying to use the old value of an instance
|
|
variable slot as a local variable.
|
|
* Fixed memory leaks in NSMutableArray#insert.
|
|
* Fixed memory leaks when parsing bridgesupport file during compilation.
|
|
* Fixed a bug in NSMutableDictionary#delete where it will cause a crash if it
|
|
would use the result of NSMutableDictionary#delete on the receiver object
|
|
which was created by NSJSONReadingMutableContainers.
|
|
* Fixed a bug where 3rd-party libraries would fail to build if the file path
|
|
of the app contained space characters.
|
|
* Fixed a bug in Kernel#Array() where it would return an incorrected value
|
|
if an NSArray object was passed as argument.
|
|
* Fixed a compiler bug where `not precompiled' errors would sometimes happen
|
|
at runtime when using APIs dealing with BOOL types.
|
|
* Added a block to setup controller in the spec API. Thanks to Katsuyoshi Ito
|
|
for the patch (pull request #104).
|
|
* Fixed the `rake build' task to honor the `keep_temps' environment variable.
|
|
If set, temporary files (such as LLVM bitcode and assembly) will not be
|
|
removed from the build directory. To be used for debugging only.
|
|
|
|
= RubyMotion 2.3 =
|
|
|
|
* Added support for iOS 7.0 Beta 2 and Xcode 5.0 DP 2.
|
|
* Fixed a bug where the `RUBYMOTION_ENV' constant would not be defined before
|
|
executing the main scope of .rb application files, resulting in a const
|
|
lookup error in case the constant was trying to be accessed within a file
|
|
or module scope.
|
|
* [iOS] Fixed a bug where `rake simulator' would open 2 simulator apps at
|
|
the same time, due to the fact that the application name changed between
|
|
Xcode 4.x and Xcode 5.
|
|
* [iOS] Fixed a bug where certain NSObject methods would be missing in the
|
|
Foundation framework compiler file.
|
|
* [iOS] Fixed a warning message from the linker that would be displayed when
|
|
building for iOS 7.0.
|
|
* Fixed a bug in defined?(super) where it would return an incorrect value
|
|
when used from an included module.
|
|
* Improve string interpolation performance. 40% faster.
|
|
* Improve String#delete performance. 5 times faster.
|
|
* Improve Objective-C methods performance in String object. 50% faster.
|
|
* Added `output=colorized' in `rake spec'.
|
|
* Added `skip_build' option to `rake simulator' (iOS) and `rake run' (OSX) to
|
|
to run the program without recompiling (ex. `rake skip_build=1').
|
|
* Added git repository support for templates. (ex. `motion create
|
|
--template=https://github.com/IconoclastLabs/smart-ios.git test').
|
|
Thanks to Gant Laborde and Matt Garrison for the patch (pull request #92).
|
|
* Fixed a build error that was happening with Xcode 3.
|
|
Thanks to Matt Garriott for the patch (pull request #97).
|
|
* Added callback after created controller in spec. Thanks to Katsuyoshi Ito
|
|
for the patch (pull request #96).
|
|
* Fixed the build system to set `spec_mode' before running the `setup' block
|
|
in Rakefile. Thanks to Clay Allsopp for the patch (pull request #84).
|
|
* Added the `app.exclude_from_detect_dependencies' Rakefile variable. Thanks
|
|
to Clay Allsopp for the patch (pull request #81).
|
|
* Fixed a bug in the build system where it would remove `.nib' ressource
|
|
files even corresponding `.xib' files did not exist. Thanks to Kristian for
|
|
the patch (pull request #98).
|
|
* Added back `motion ri' support, which was incidentally removed due to a
|
|
mistake on the build machine.
|
|
|
|
= RubyMotion 2.2 =
|
|
|
|
* Added iOS 7.0 and OS X 10.9 support. Xcode 5.0 DP must be installed and
|
|
activated as the default (using `xcode-select'). Xcode 4.x must remain in
|
|
/Applications/Xcode.app as RubyMotion will still be using it, until we
|
|
properly migrate to the new compilers. You can revert to Xcode 4.x (using
|
|
`xcode-select') for stable development. *WARNING* iOS 7.0 and OS X 10.9
|
|
are Apple confidental and cannot be discussed online. Do not post code
|
|
using the new APIs online.
|
|
|
|
= RubyMotion 2.1 =
|
|
|
|
* Improved the `rake simulator' (iOS) and `rake run' (OSX) tasks to honor the
|
|
`args' environment variable, which can be used to provide command-line
|
|
arguments that will be passed to the app executable when launching.
|
|
(ex. rake simulator args="-com.apple.CoreData.SQLDebug 1").
|
|
* [iOS] Improved `rake archive' to generate a `manifest.plist' file that can
|
|
be used for Ad-Hoc distribution. Added the `app.manifest_assets' Rakefile
|
|
variable which can be set to an array of hashes describing the assets to be
|
|
included in the file. The default is an empty array, and no file is then
|
|
generated. (ex. app.manifest_assets << { :kind => 'software-package',
|
|
:url => 'http://hipbyte.com/foo.ipa' }).
|
|
* [iOS] Fixed `rake simulator' to show a warning message in case the user is
|
|
running tmux without `reattach-to-user-namespace', which is necessary.
|
|
* [iOS] Fixed compilation issues with 6.0 SDK.
|
|
* [OSX] Fixed a bug in `rake debug=1' where the debugger would not properly
|
|
start in case the application name includes a space character.
|
|
* [OSX] Added `rake ctags' task to generate `tags' file.
|
|
* [OSX] Added `rake static' task to create a static .a archive file.
|
|
* [OSX] Added `rake build' task as a shortcut for both `build:development'
|
|
and `build:release'.
|
|
* [OSX] Fixed `rake archive' to honor the content of the `app.entitlements'
|
|
project variable when code-signing the binary.
|
|
* [OSX] Added the `app.embedded_frameworks' Rakefile variable that can
|
|
include paths to 3rd-party frameworks that should be copied in the app
|
|
bundle's 'Frameworks' directory (ex. app.embedded_frameworks +=
|
|
['~/src/MyFramework.framework']). The build system will also fix the
|
|
install name of the executable. The default value is an empty array.
|
|
* [OSX] Fixed `rake archive:distribution' to properly codesign the app
|
|
executable twice, necessary for App Store submissions.
|
|
* [OSX] Fixed the Info.plist file generation to include the minimum OS
|
|
requirement key, necessary for App Store submissions.
|
|
* Fixed a bug in `Dispatch.once' where it would sometimes not yield the block.
|
|
* Fixed the require statement in the `gem' template Rakefile. Thanks to
|
|
Devon Blandin for the patch (pull request #88).
|
|
* Fixed the `iOS' template warning message to print the right library path.
|
|
Thanks to Tom Milewski for the patch (pull request #86).
|
|
* Fixed a bug in `app.files_dependencies' where it would not allow a path
|
|
containing "../" (ex. app.files_dependencies 'foo.rb' => '../bar.rb').
|
|
Thanks to Jeremy Ruppel for the patch (pull request #90).
|
|
* Fixed a bug in `app.vendor_project' to properly set the
|
|
CONFIGURATION_BUILD_DIR variable for non-standard Xcode projects. Thanks to
|
|
Jack Chen for the patch (pull request #94).
|
|
* Fixed `app.vendor_project' with Xcode projects to rebuild the project in
|
|
case a file changed. Thanks for Jack Chen for the idea and initial work.
|
|
* Fixed a bug where the .gitignore file would not be generated anymore when
|
|
creating a new project.
|
|
* Added the .gitignore file into the `gem' template.
|
|
* Added the BasicObject#__id__ method for CRuby compatibility.
|
|
* Fixed a bug in `undef' and Module#remove_method where it would raise an
|
|
'undefined method' error if the method was called before being removing.
|
|
* Fixed a memory bug where an object would be prematurely released if an
|
|
#initXXX method was called right from within #initialize.
|
|
* Fixed a bug in #respond_to? where WeakRef objects would not be properly
|
|
handled.
|
|
* Fixed a bug in detecting file dependencies where it will not detect file
|
|
dependencies if the files contain nested constants.
|
|
|
|
= RubyMotion 2.0 =
|
|
|
|
* Added OSX development support. Use `motion create --template=osx' to create
|
|
an OSX project. Use `rake -T' inside to see the available tasks and
|
|
`rake config' to see the application config variables. RubyMotion OSX apps
|
|
are built for both i386 and x86_64 architectures and can support OSX v10.7
|
|
and v10.8 as deployment targets. Check out the HipByte/RubyMotionSamples
|
|
repository on GitHub for sample code and the devcenter for documentation.
|
|
* Added command-line plugin system, which lets developers extend the
|
|
`/usr/bin/motion' command-line tool with new commands (ex. `motion foo').
|
|
Builtin commands have been extracted as plugins and 3rd-party plugins can
|
|
be created inside the `~/Library/RubyMotion/command' directory.
|
|
* Added a RubyMotion gem project template. Use `motion create --template=gem'
|
|
to create one and check `rake -T' inside to see the available tasks.
|
|
* Added project templates system (usage: `motion create --template=xxx').
|
|
RubyMotion comes with 3 templates: `ios' (default), `osx' and `gem'.
|
|
3rd-party project templates can be created inside the
|
|
`~/Library/RubyMotion/template' directory.
|
|
* Deprecated `require "motion/project"' in project Rakefiles. Existing iOS
|
|
projects should now require `motion/project/template/ios' instead. We
|
|
preserve compatibility for now but please do migrate.
|
|
* Added the `motion account' command to open the license account page.
|
|
* Added the `WeakRef' class to create weak references. Usage is
|
|
`WeakRef.new(obj)' and follows CRuby's WeakRef stdlib class. Passed
|
|
references will not be retained. Use with caution as sending a message
|
|
to a WeakRef object whose reference has been prematurely collected will
|
|
cause a runtime crash. The `WeakRef' class will be replaced by a no-op
|
|
once the runtime is able to deal with cyclic references.
|
|
* Improved the detection of file dependencies to handle absolute paths.
|
|
Thanks to Clay Allsopp for the patch (pull request #82).
|
|
* Improved the build system by using a separate build directory for source
|
|
files that resides outside of the project (ex. gems) in order to reduce
|
|
the compilation time.
|
|
* Fixed a bug where a crash would happen when calling a method defined using
|
|
#define_method that was contained in an extended module or in an inherited
|
|
class that includes a module.
|
|
* Fixed a bug where a crash would happen when trying to override the
|
|
`drawMapRect:zoomScale:inContext:' method in a MKOverlayView subclass.
|
|
* Improve `rake spec' to display an error message if there are no spec files
|
|
in the `spec' project directory.
|
|
* Fixed a bug where trying to set a constant inside another constant that is
|
|
not a Module object would not raise an exception (ex. `A=42; A::B=42').
|
|
* Fixed a bug where Module#include? would not be raising an exception if the
|
|
receiver was not a Module object.
|
|
* Fixed a bug where `return' on a yielded block that used `ensure' would not
|
|
work.
|
|
* Fixed a bug where `catch' and `throw' would not work on an iOS device.
|
|
* Fixed a bug where a crash would happen when using a variadic method from
|
|
the Cocos2D framework.
|
|
* Fixed a bug where a memory leak would happen when creating an object and
|
|
passing an arbitrary expression to the initializer method.
|
|
* Fixed a bug in build system where a "stack level too deep" exception could
|
|
happen.
|
|
* Fixed a bug when detecting file dependencies where classes or modules
|
|
defined using the `XXX::YYY' syntax could not be properly parsed.
|
|
* Fixed a limitation in Struct where creating a struct with more than 10
|
|
fields was not possible. We moved the limit to 100 fields.
|
|
* Fixed a limitation in the dispatcher where dynamically sending a message
|
|
or yielding a block with more than 10 arguments was not possible. We moved
|
|
the limit to 100 arguments.
|
|
* Fixed a bug in the REPL where it would get corrupted when receiving too
|
|
much input from the evaluator (ex. when using auto-completion).
|
|
* Fixed a bug where a compilation error would happen when parsing a
|
|
BridgeSupport structure that included a very large field.
|
|
* Improved the `motion ri' command to honor the $PAGER environment variable.
|
|
* Improved the `app.vendor_project' method to honor the :bridgesupport_cflags
|
|
and :bridgesupport_exceptions options, which will be appropriately passed
|
|
to the BridgeSupport generator. Thanks to Juan Karam for the patch.
|
|
* RubyMotion is one year old! Thanks all for your support.
|
|
|
|
|\ _,,,---,,_
|
|
/,`.-'`' -. ;-;;,_
|
|
|,4- ) )-,_..;\ ( `'-'
|
|
'---''(_/--' `-'\_)
|
|
|
|
= RubyMotion 1.35 =
|
|
|
|
* Added support for string constants defined in 3rd-party header files using
|
|
the macro system (ex. #define MyConstant @"SomeValue").
|
|
* Added the `no_start' option to `rake device debug=1' to let the user attach
|
|
a custom debugger. This is for the RubyMine integration.
|
|
* Fixed a bug in the REPL where the history could not be saved if it included
|
|
UTF-8 characters.
|
|
* Fixed a caching bug in Object#respond_to? which could return true for a
|
|
method that did not exist.
|
|
* Fixed a bug in REPL where an error message was often printed after using the
|
|
`quit' or `exit' command.
|
|
* Fixed a bug where the AVPlayer#currentTime method caused a `{?=qiIq}@:' not
|
|
precompiled' error.
|
|
* Improved `rake spec' error messages to include more details. Thanks to
|
|
Steven Webb for the patch (pull request #68).
|
|
* Improved `rake spec files=...' to make the `_spec' suffix optional. Thanks
|
|
to Dave Lee for the patch (pull request #71).
|
|
* Fixed a bug where using the AudioQueueBuffer structure would cause a crash.
|
|
* Added the `:force_load' option for the `app.vendor_project' Rakefile method.
|
|
This flag has a default value of `true' and can be set of `false' when
|
|
vendoring 3rd-party libraries that include duplicated symbols.
|
|
* Added the Dir#to_path method for CRuby compatibility.
|
|
* Fixed a bug where calling #alias on a new method would cause a crash.
|
|
* Fixed a bug where defining a method with #define_method on a module then
|
|
messaging the method would cause a crash.
|
|
* Fixed a bug where 'rake device debug=1' would cause a crash if the project
|
|
name included UTF-8 characters.
|
|
* Fixed a bug in the build system where framework dependencies would not
|
|
properly be loaded.
|
|
* Fixed a rare bug in the `super' dispatcher.
|
|
|
|
= RubyMotion 1.34 =
|
|
|
|
* Fixed a regression where command + mouse-over would not work in the
|
|
simulator window.
|
|
* Fixed a regression in the build system where updated resource files would
|
|
not be copied.
|
|
|
|
= RubyMotion 1.33 =
|
|
|
|
* Fixed a bug where certain Float object would be losing 2-bits of precision.
|
|
This was happening because the compiler optimized floats to fit in a 30-bit
|
|
data structure. The runtime will now allocate 32-bit floats on the heap
|
|
when they cannot be accurately stored as 30-bit.
|
|
* Added a feature to support multiple resource directories. Introduced the
|
|
`app.resources_dirs' variable which defaults to `['./resources']' and can
|
|
be modified to specify another resource directory to the build system. The
|
|
previous `app.resources_dir' variable is now deprecated.
|
|
* Added a feature to automatically create the `Default-568h@2x.png' file in
|
|
the resources directory during `motion create', in order to support 4-inch
|
|
screens.
|
|
* Fixed a bug in the build system where apps whose names include an UTF-8 or
|
|
UTF8-MAC character would not compile.
|
|
* Fixed a bug in the simulator mouse-over which could not properly select
|
|
views if the iOS simulator was rotated.
|
|
* Fixed a bug where the iOS simulator would not launch on OSX 10.6.
|
|
* Fixed a bug in `NSDate.alloc.init.timeIntervalSince1970' which would cause
|
|
a malloc_error_break error.
|
|
* Fixed memory leaks in NSDate.new and NSDate.alloc.init.
|
|
* Fixed a bug in Dir.entries and Dir.foreach where an exception was always
|
|
raised.
|
|
* Added the NSData#to_s method which is alias for NSData#to_str.
|
|
* Fixed a bug in Hash#delete where the deleted object would be prematurely
|
|
released by the table.
|
|
* Fixed a bug where the iOS simulator would not launch if `app.xcode_dir'
|
|
pointed to a path other than the '/Applications' folder.
|
|
* Fixed a bug where the iOS simulator would be relaunched every time with
|
|
`rake' command.
|
|
|
|
= RubyMotion 1.32 =
|
|
|
|
* Added support for Xcode 4.6 and iOS 6.1 SDK.
|
|
* Improved Array#hash performance.
|
|
* Fixed a bug in IO#closed? and File#closed? where an exception wasn't raised
|
|
if the receiver wasn't initialized.
|
|
* Fixed a bug in IO#gets where a memory heap overrun would be triggered.
|
|
* Fixed a bug in IO#close where it would close the wrong stream when opened
|
|
in both read/write mode by IO#open.
|
|
|
|
= RubyMotion 1.31 =
|
|
|
|
* Fixed a bug in Kernel.sprintf and NSDate.new which would cause a
|
|
malloc_error_break error.
|
|
* Added .sass-cache, .idea and app/pixate_code.rb to the default .gitignore
|
|
file.
|
|
* Fixed memory leaks in Complex and Rational classes.
|
|
* Improved String#{[]=, index} performance when a String object has only
|
|
ASCII code range characters. 5-14 times faster.
|
|
* Improved String#{==, eql?} performance when the length of the strings do
|
|
not match. 15 times faster.
|
|
* Improved String#+ performance by pre-allocating heap memory.
|
|
* Fixed a bug in MatchData where it caused a crash due to an assertion when
|
|
used on an uninitialized MatchData object.
|
|
* Fixex a bug in the automatic dependencies checker where it would cause a
|
|
build error when `app.files' contained a non-flat Array.
|
|
* Improved the automatic dependencies checker in the build system to be way
|
|
faster. Thanks to Yury Korolev for the patch.
|
|
* Fixed a memory crasher that would happen when symbolicating large exception
|
|
backtraces (simulator only). Thanks to Doug Puchalski for the help.
|
|
* Fixed a bug in `rake spec' where an ArgumentError exception would be raised
|
|
when `it' clauses in spec files would not be defined with a block.
|
|
* Improved the `tap' format of `rake spec' to print the number of each test
|
|
instead of the total number, and also a better description.
|
|
|
|
= RubyMotion 1.30 =
|
|
|
|
* Fixed a bug in the build system where it could not detect file dependencies
|
|
using nested classes (ex. `module M; class C' and `class C2 < M::C').
|
|
* Fixed a bug where MapKit annotation pins would disappear, because certain
|
|
Ruby objects (in this case, MKAnnotations) would use a Bignum value as the
|
|
return value of the `hash' method, which would not work properly when used
|
|
within MapKit.
|
|
* Added formatter for RubyMine tests runner. Thanks to Dennis Ushakov for the
|
|
patch.
|
|
* Fixed a bug in Float#hash where (-0.0).hash returned a different value with
|
|
(0.0).hash.
|
|
* Fixed a bug in Float#** and Fixnum#** which would return a Complex object
|
|
when the receiver was a negative value.
|
|
* Fixed a bug in Float#round which would return an inaccurate value.
|
|
* Fixed a bug in Numeric#div which would not call the super `floor' method.
|
|
* Fixed a bug in Range#step where it would return an object of the wrong type
|
|
when a float value was given as range.
|
|
* Fixed a bug in Range#{inspect, eql?, ==, hash} where crashes would happen
|
|
when using cyclic range objects.
|
|
* Fixed a bug in Range#each where it would not work if the receiver was
|
|
created using #to_str for the beginning of the range.
|
|
* Fixed a bug in Range#first(n) where it returned (n + 1) elements.
|
|
* Added the Object#singleton_class method.
|
|
* Fixed a bug in String#upto where it did not return an Enumerator object
|
|
when a block was not given.
|
|
* Fixed a bug in MatchData#[] where it would return a wrong value when a
|
|
negative Fixnum object was passed as the index.
|
|
* Fixed a bug in Regexp#options where it was returning a wrong value.
|
|
* Fixed a bug in Range#{min, max} where it would not evaluate the block.
|
|
* Fixed a bug in {File::Stat, Dir, StructClass}.new where it was crashing.
|
|
* Fixed memory leaks in the following classes: Boxed classes (ex. `CGRect'),
|
|
Pointer, Range and Time.
|
|
* Fixed memory leaks where the following methods would return an object that
|
|
would be leaking: Object#{dup, clone}, Time#{gm, getgm} Time._load,
|
|
Object#enum_for, NSDictionary#{inspect, dup, to_a, keys, values, value_at,
|
|
select, reject, merge}, NSMutableDictionary#{delete_if, select!},
|
|
NSArray#{dup, inspect, [], select, values_at, +, *},
|
|
NSMutableArray#{select!, uniq!}, Pointer.magic_cookie, Boxed#dup.
|
|
* Fixed memory leaks where some internal data in following classes and
|
|
methods would be leaking: Bignum, Random, Symbol, File::Stat, StructClass,
|
|
Dispatch::Queue, Marshal.{dump, load}, Kernel.sprintf, Regexp.{new, quote},
|
|
Hash.new, String#{split, count, delete, tr, tr!, tr_s, tr_s!}, Array#hash,
|
|
Symbol#inspect.
|
|
|
|
= RubyMotion 1.29 =
|
|
|
|
* Fixed a loading error with the ripper library when using Ruby 1.8.
|
|
* Fixed a bug where the files that only contained constants were not detected
|
|
by the file dependencies system.
|
|
* Fixed a bug where cyclic file dependencies would cause a `stack level too
|
|
deep' error.
|
|
* Fixed a bug where detecting file dependencies would cause a build error
|
|
when the list of files would not be given as a flat array.
|
|
|
|
= RubyMotion 1.28 =
|
|
|
|
* Added the `motion ri' command to access to API information on command line.
|
|
Ex: motion ri Dispatch::Queue#sync
|
|
* Improved the build system to detect file dependencies automatically.
|
|
This feature is experimental, if you encounter any problem you can disable
|
|
it by setting `app.detect_dependencies = false' in the Rakefile.
|
|
* Fixed the build system to set a 5 seconds timeout when accessing the
|
|
software updates server. Thanks Nick Quaranto for the patch.
|
|
* Improved `rake simulator' to honor the SIM_STDOUT_PATH, SIM_STDERR_PATH
|
|
and SIM_WAIT_FOR_DEBUGGER environment variables, to respectively set the
|
|
path of the stdout and stderr streams and to tell the simulator launcher
|
|
that it should wait for a debugger before starting the application. These
|
|
variables will be used in the RubyMine integration.
|
|
* Fixed a bug in Dispatch::Object#dispatch_object on iOS versions below 6.0
|
|
* Fixed a bug in NSDictionary#select which always raised an exception.
|
|
* Fixed a bug in String#<< which raised an ArgumentError exception instead of
|
|
RangeError if the given object was is out of range.
|
|
* Fixed a bug in Kernel.catch when no argument was given.
|
|
* Fixed a bug in Kernel.Rational which was not raising a TypeError exception
|
|
if a Symbol object was passed.
|
|
* Fixed a bug in Symbol#clone and Sybmol#dup which didn't raised TypeError
|
|
exceptions.
|
|
* Fixed a bug in Symbol#match and Symbol#=~ which did not properly return
|
|
an index of the beginning match.
|
|
* Fixed a bug in Symbol#succ and Symbol#next which returned a String object.
|
|
* Added the following methods: Complex#rationalize, ENV#select! and
|
|
ENV#keep_if.
|
|
* Fixed a bug in Complex#/ which raised an exception when passed 0.0.
|
|
* Fixed a bug in Complex.rect and Complex.polar which raised an ArgumentError
|
|
exception instead of TypeError when a wrong value was given.
|
|
* Fixed a bug in Regexp.last_match which raised an IndexError exception when
|
|
an index out of the matched range was given.
|
|
* Fixed a bug in ENV#[]= which did not raise an Errno::EINVAL exception if
|
|
the given String object included the '=' character.
|
|
* Fixed an error message in `rake target' when it cannot find iOS simulator.
|
|
* Fixed a bug when using TWTweetComposeViewController's methods on iOS 6.0
|
|
below would trigger a crash at runtime.
|
|
|
|
= RubyMotion 1.27 =
|
|
|
|
* Fixed a bug where NSDecimalNumber.decimalNumberWithDecimal would not work
|
|
since 1.24 in development mode, because of a regression introduced after
|
|
changing the default set of optimization passes.
|
|
* Fixed a bug where the `dispatch_object' method would not return a proper
|
|
value on iOS 6.0, because it wasn't conforming to the new os/object.h
|
|
structure.
|
|
* Fixed a bug in `rake spec' where certain UIAutomation-based methods would
|
|
not be callable because of a regression introduced in the previous update.
|
|
* Fixed a bug in the compiler to compile references to C functions using the
|
|
weak linkage. If the symbol of a C function is not available at runtime,
|
|
the function will not be defined and respond_to? will return false.
|
|
This fixes applications linking against AddressBook.framework on 6.0 and
|
|
making conditional use of the new ABAddressBookCreateWithOptions().
|
|
* Fixed a bug in the runtime where calling `super' in certain methods
|
|
(ex. UISlider's thumbRectForBounds:trackRect:value:) would crash the
|
|
program due to an assertion.
|
|
* Fixed a bug in the compiler where certain structures could be returned as
|
|
an object of the wrong class (ex. MKCoordinateRegion.region returning
|
|
AudioValueRange instead of CLLocationCoordinate2D).
|
|
* Fixed a bug in Object#{dup,clone} where #{initialize_dup,initialize_clone}
|
|
would not be called.
|
|
* Fixed a bug in Object#instance_eval where the receiver object was not
|
|
properly yield to the block.
|
|
* Fixed a bug in Array#== and Marshal.dump where unnecessary private methods
|
|
were being looked up.
|
|
* Fixed a bug in Array#{rotate,rotate!} where it would not raise a TypeError
|
|
exception if nil was given.
|
|
* Fixed Array#{uniq, uniq!} and NSArray#{uniq, uniq!} to support blocks.
|
|
* Fixed a bug in Range#dup where the begin/end values were not copied.
|
|
* Fixed a bug in Range#step which would not behave like Numeric#step if given
|
|
a Float argument.
|
|
* Fixed a bug in String#<< with a codepoint argument where an exception would
|
|
be raised when called on US-ASCII/BINARY strings.
|
|
* Added .DS_Store, temporary files and project files into the default
|
|
.gitignore file. Thanks to Mark Rickert and Eric Summers for the patch.
|
|
|
|
= RubyMotion 1.26 =
|
|
|
|
* Fixed a bug in the build system where the Info.plist file would not be
|
|
generated with the right DT* values when targetting iOS 6.0. This fixes
|
|
AppStore submissions for apps made for the iPhone 5 new retina format.
|
|
* Fixed a bug in the build system when building .bridgesupport files where
|
|
it would fail to process header paths including space characters.
|
|
* Fixed a bug where the `rake static' task would not work with iOS 6.0.
|
|
* Fixed a compiler bug when using the
|
|
`TWTweetComposeViewController#setInitialText' method on iOS 5.1 or below
|
|
would trigger a crash at runtime.
|
|
* Fixed a bug in Pointer#cast! where symbol arguments could not be given to.
|
|
* Fixed a bug where methods that take variable arguments do not call
|
|
the appropriate function if an ArgumentError exception if raised.
|
|
* Fixed a bug where calling super from a #define_method block would fail.
|
|
* Fixed a bug in the compiler when compiling references to C constants which
|
|
might already exist in the kernel module (ex. kCFBooleanTrue).
|
|
* Fixed a bug when starting the simulator with the 'retina=true' option.
|
|
Thanks to Scott Pierce for the patch.
|
|
* Fixed the build system to build vendored Xcode projects into the `.build'
|
|
directory instead of `build', as some projects come with such a directory.
|
|
* Fixed a memory bug when calling `File.open' with a splat Array argument.
|
|
* Fixed a regression introduced in 1.21 which prevented the OCMock framework
|
|
to work, because the dispatcher was performing one additional selector on
|
|
NSProxy-based receivers and OCMock counts the number of messages.
|
|
* Fixed a bug in `rake spec' where the simulator launcher would exit with an
|
|
error status even if the spec suite was successful.
|
|
* Improved Hash#[]= performance when an Array is used for key to use a
|
|
MurmurHash function instead of hashing on the length. 400 times faster.
|
|
* Added the Pointer#value method which is alias for Pointer#[0].
|
|
* Added the `app.framework_search_paths' variable that lets you configure
|
|
the custom framework paths for the project build.
|
|
* Added the `RUBYMOTION_VERSION' Ruby constant at runtime which points to the
|
|
version of RubyMotion, as a String. Cleaned up other RUBY_ constants.
|
|
* Added the `spec:device' Rake task which will run the spec/test suite on the
|
|
device via the debugger.
|
|
|
|
= RubyMotion 1.25 =
|
|
|
|
* Fixed a bug when using Objective-C properties implemented using message
|
|
forwarding (ex. GKMatchRequest's maxPlayers).
|
|
* Fixed a bug in build system where the app.info_plist dictionary would not
|
|
be re-generated if app.info_plist is called before changing other settings
|
|
(ex. app.name).
|
|
* Fixed a bug in the build system where vendored Xcode projects (including
|
|
projects via CocoaPods) would not be built honoring the Rakefile
|
|
app.deployment_target variable.
|
|
* Fixed a bug in the `rake device' debugger task where the debugger would
|
|
fail to attach if the application name includes a space character.
|
|
* Fixed a bug in the build system where a project whose path includes a space
|
|
character would fail to build the second time.
|
|
* Fixed a bug in the runtime where methods defined with `define_method' that
|
|
are either aliased or created via a module inclusion would crash when
|
|
called at runtime.
|
|
* Fixed a bug in the build system where the `get-task-allow' entitlement
|
|
which is set to true by default could not be set to false. Thanks to
|
|
@andreas for the patch.
|
|
* Fixed a bug in `rake simulator' where a stty-related warning would be
|
|
printed in case the task is launched from a process where stdout is not a
|
|
tty. Thanks to Dennis Ushakov for the patch.
|
|
* Fixed a bug in Range's evaluation order, where the beginning part would not
|
|
be evaluated at first (ex. (x = 0)..(x + 1)).
|
|
* Improved the Regexp class to support octal literals and '\[hH]' matchers.
|
|
* Fixed Math.atan2 to follow the Ruby 1.9.3 specs when both arguments are 0.0.
|
|
|
|
= RubyMotion 1.24 =
|
|
|
|
* Added support for the GM version of the iOS 6 SDK.
|
|
* Added support for the iPhone5 architecture (armv7s).
|
|
* Added new values for the `retina' option of `rake simulator': `3.5' (for
|
|
iPhone4) and `4' (for iPhone5). A `true' value will default to `3.5' in
|
|
case the simulator target is lesser than 6.0, otherwise, `4' will be used.
|
|
* Added debugging support (experimental) for both simulator and device.
|
|
Simply set the `debug' parameter to any value to attach the debugger
|
|
(ex. `rake debug=1' for simulator and `rake device debug=1' for device).
|
|
The Ruby code compiles with relevant DWARF metadata and the debugger
|
|
used is gdb. Note that the debugger experience is a work in progress and
|
|
will be significantly improved in future releases.
|
|
Check out http://www.rubymotion.com/developer-center/articles/debugging
|
|
* Fixed the `development' mode to not compile with LLVM optimizations. This
|
|
results in faster compilation times and also better debugging support,
|
|
but the code might run a bit slower. The `release' mode builds with the
|
|
entire optimization passes.
|
|
* Added to the build system the `mode' option which can be used to specify
|
|
the build mode, either `development' (default) or `release'. You can now
|
|
test your app in release mode by using `rake mode=release' for simulator
|
|
and `rake device mode=release' for device.
|
|
* Fixed the build system not to execute the user-defined application setup
|
|
block twice, which is no longer necessary with the new `mode' option.
|
|
* Removed the `archive:development' and `archive:release' tasks which are
|
|
no longer necessary with the new `mode' option.
|
|
* Added the `archive:distribution' task which builds an .ipa with distribution
|
|
settings (certificate, default entitlements, symbols stripped).
|
|
* Fixed `rake spec' to produce an .app bundle that uses a different bundle
|
|
identifier than the regular app. This is necessary in Xcode 4.5 to avoid
|
|
simulator installation issues.
|
|
* Fixed a bug in the simulator launcher when output to stdout would not be
|
|
displayed in case the rake process was piped to another process
|
|
(ex. `rake spec | ...').
|
|
* Added the Dispatch.once method, which wraps the dispatch_once() function,
|
|
that can be useful to implement singletons. Usage: Dispatch.once { ... }.
|
|
* Added support for `define_method'. Like `attr_*', it cannot be used to
|
|
overwrite existing Objective-C methods due to limitations of the compiler.
|
|
* Fixed a bug when converting Bignum objects into 'long long' types.
|
|
* Fixed a bug in the build system where relative source paths pointing to the
|
|
parent directory would not properly be expanded and would trigger build
|
|
failures.
|
|
* Fixed several bugs in String#% related to arguments and precision format.
|
|
* Improved String#[]= performance. 50 times faster.
|
|
* Improved String#length performance with multibyte characters. If String
|
|
includes multibyte characters, its length will be cached and reused.
|
|
500 times faster.
|
|
* Improved String#reverse performance with ASCII-compatible string. 30 times
|
|
faster.
|
|
* Improved Fixnum/Float modulo performance. 2 times faster.
|
|
* Fixed memory leaks in String#{reverse, reverse!}
|
|
* Fixed a bug when calling a method on an uninitialized Regexp object.
|
|
(ex. Regexp.allocate.to_s).
|
|
* Fixed a bug when calling NSArray#flatten(level) with 0.
|
|
* Fixed bugs in NSArray#rindex, NSArray#values_at, NSArray#values_at,
|
|
NSDictionary#values_at and Kernel.#sprintf which could raise uncatchable
|
|
exceptions.
|
|
* Fixed a bug in Dispatch::Source.timer which couldn't handle the
|
|
Dispatch::TIME_FOREVER constant for interval.
|
|
* Fixed a bug in NSArray#delete_if where nil could not be returned if the
|
|
receiver did not change.
|
|
* Added the following methods: NSArray#rotate, NSMutableArray#rotate!,
|
|
NSMutableArray#sort_by!, NSMutableArray#select!, NSMutableArray#keep_if,
|
|
NSMutableDictionary#select!, NSMutableDictionary#keep_if.
|
|
|
|
= RubyMotion 1.23 =
|
|
|
|
* Fixed a bug where conformsToProtocol: would not return true on objects
|
|
implemented in Ruby for protocols using required/optional sections (ex.
|
|
AQGridView).
|
|
* Fixed a bug in the compiler metadata file for the CMSampleBufferRef type
|
|
which would prevent methods accepting this type to be called.
|
|
* Fixed a bug in the runtime where certain classes (ex. Random) would create
|
|
instances released twice, triggering malloc errors later on. Thanks to
|
|
Hugues Lismonde for the detective work.
|
|
* Changed `rake device' to honor the `id' environment variable that can be
|
|
used to specify the ID of the device where the app should be installed.
|
|
This is useful when you have several iOS devices connected on your machine
|
|
and don't want `rake device' to deploy to the first one.
|
|
* Fixed a bug in String#strip where certain multibyte characters would be
|
|
considered as whitespace. Thanks to Watson for the patch.
|
|
* Fixed vendor_project (:static) to create static libraries with an object-
|
|
file index, which is mandatory as of Mountain Lion.
|
|
* Fixed the build system to support nested directories containing xib and
|
|
storyboard files. Patch by Mike Kelley.
|
|
* Fixed a bug in the `tap' method of the `spec/ui' library to properly handle
|
|
the `at' option. Patch by Clay Allsopp and Marc Schwieterman.
|
|
* Added the RuntimeError#nsexception method which, in case the exception
|
|
comes from an Objective-C method, contains the original NSException object.
|
|
This can be useful when you need to access specific NSException-level
|
|
information (such as the `userInfo' dictionary).
|
|
* Fixed a bug where the REPL methods (ex. `sessions') were added on the
|
|
Kernel module, making them available to all objects. This was causing
|
|
collisions (ex. when creating a CoreData `Session' entity).
|
|
* Fixed the build system to pass -fobjc-arc to the linker in case the app
|
|
is built for the 4.3 deployment target. This is necessary so that the ARC
|
|
runtime is properly linked into the app, when vendoring 3rd-party projects
|
|
that are ARC-only (ex. SVPullToRefresh). Patch by Satoshi Ebisawa.
|
|
* Fixed the build system to no longer re-build all .rb files in case the
|
|
project's Rakefile changed.
|
|
|
|
= RubyMotion 1.22 =
|
|
|
|
* This release adds support for iOS 4.3 and 5.0 back which wasn't present in
|
|
1.21 due to a bug in the build system. Sorry folks!
|
|
|
|
= RubyMotion 1.21 =
|
|
|
|
* Fixed a regression in the BridgeSupport generator in Mountain Lion where
|
|
APIs dealing with CFTypeRef would accept or return Pointer objects instead
|
|
of genuine objects.
|
|
* Fixed a bug where C structures starting with a lower-case character could
|
|
potentially be registered more than once in the runtime, leading to weird
|
|
memory issues (ex. many cocos2d structures).
|
|
* Fixed a bug where certain bignums (ex. ALAssetsGroupAll) could not be
|
|
passed as `unsigned int' arguments.
|
|
* Fixed a bug in `rake static' where the static archives would not be created
|
|
with an object-file index, which is now mandatory in Mountain Lion.
|
|
* Fixed a bug in the runtime where Objective-C properties implemented using
|
|
message forwarding could not be called (ex. GKPlayer's alias or playerID).
|
|
|
|
= RubyMotion 1.20 =
|
|
|
|
* Fixed a bug in the runtime where apps compiled for iOS5 calling into APIs
|
|
using certain C typedefs would raise an exception in iOS6 because of an
|
|
ABI incompatibility (introduced by clang's new enumerator_attributes
|
|
extension).
|
|
* Fixed a bug in the runtime where an exception would occur when Objective-C
|
|
code would try to allocate a new instance of a class defined in Ruby using
|
|
the +new method (ex. RestKit).
|
|
* Fixed a memory bug in Hash.[] when a Hash was passed (ex. Hash[a:'a']).
|
|
* Fixed a bug in certain Dispatch APIs when the main Dispatch::Queue object
|
|
was passed causing an ArgumentError exception.
|
|
* Fixed a bug in #public_send where an exception would not be raised if the
|
|
method is marked private.
|
|
* Fixed a bug when preparing blocks for libdispatch where dynamic variables
|
|
could be prematurely collected.
|
|
* Fixed a bug when certain methods implemented using message forwarding
|
|
would not be properly precompiled and would be raising an exception at
|
|
runtime (ex. UITextInputTraits enablesReturnKeyAutomatically).
|
|
* Removed a dyld warning that was printed on stderr when generating the
|
|
backtrace of an exception (dyld: DYLD_ environment variables being ignored
|
|
because...). Mountain Lion only.
|
|
* Fixed the runtime to be able to use Objective-C classes whose names start
|
|
with a lower-case character by capitalizing the name, similar to how C
|
|
constants and enumerations are mapped. (Ex. ICarrousel.new for the
|
|
iCarrousel class).
|
|
* The iOS 6.0 version of the runtime has been recompiled for iOS 6.0 Beta 3.
|
|
|
|
= RubyMotion 1.19 =
|
|
|
|
* Fixed a compiler bug (segfault) that could happen when compiling files
|
|
using C opaque types.
|
|
|
|
= RubyMotion 1.18 =
|
|
|
|
* Fixed a problem introduced in 1.16 that was causing objects returned from
|
|
certain initializers to be autoreleased twice.
|
|
* Added the `motiondir' project variable that can be used to specify the path
|
|
of the RubyMotion distribution (defaults to /Library/RubyMotion/lib).
|
|
Patch by Marc Schwieterman.
|
|
* Added support to test Storyboards in the testing layer. Patch by Marc
|
|
Schwieterman.
|
|
* Added the `--force-version=X' argument to `motion update' which can be used
|
|
to downgrade to a specific version of RubyMotion. This can be useful to
|
|
reduce bugs. Ex: motion update --force-version=1.15
|
|
* Fixed the iOS 6.0 Rakefile to use Xcode 4.5 DP2 by default.
|
|
|
|
= RubyMotion 1.17 =
|
|
|
|
* Removed the Bundler support as it's apparently causing issues on certain
|
|
environments. It will be added back once we figure out the edge cases.
|
|
|
|
= RubyMotion 1.16 =
|
|
|
|
* Fixed a compiler bug in the way certain opaque types in the CoreMIDI
|
|
framework would not properly be handled, causing crashes at runtime.
|
|
* Fixed a regression in the build system where spec files in nested
|
|
directories would not be taken into account. Patch by Marc Schwieterman.
|
|
* Bundler is now optionally required by the build system. If you use bundler,
|
|
you do not need to require it in the project's Rakefile anymore. Patch by
|
|
Vladimir Pouzanov.
|
|
* Disabled exception logging when running in spec mode.
|
|
* Fixed a bunch of memory leaks due to a bug in the compiler that was not
|
|
properly autoreleasing objects returned from overloaded initializers.
|
|
Thanks to Satoshi Ebisawa for the detective work.
|
|
* Fixed a memory bug in Array that was happening when re-allocating the
|
|
storage after a #shift call.
|
|
* Fixed a compiler bug where C or Objective-C APIs returning 32-bit integers
|
|
whose values cannot fix in 30-bits would not be properly converted into
|
|
Bignum types.
|
|
* Fixed a bug in the simulator launcher where iPad projects could be started
|
|
in the iPad simulator but using an iPhone simulator frame.
|
|
* The iOS 6.0 version of the runtime has been recompiled for iOS 6.0 Beta 2.
|
|
|
|
= RubyMotion 1.15 =
|
|
|
|
* Improved the spec framework to leverage UIAutomation's functionality. This
|
|
lets you write functional tests on views and controllers by using the same
|
|
event generators, but in pure Ruby (and not Javascript).
|
|
Check http://www.rubymotion.com/developer-center/articles/testing for more
|
|
information about the new API. Feature contributed by Eloy Duran.
|
|
* Introduced spec helpers. `rake spec' will now honor the files inside the
|
|
`spec/helpers' directory (if it exists) and compile them before the spec
|
|
files.
|
|
* Introduced the `files' option to `rake spec', which can be used to filter
|
|
the spec files that should be run. Filters can be either the basename of
|
|
a spec file or its full path, and are separated by a comma.
|
|
Example: rake spec files=main_spec,kvo_spec,spec/foo_spec.rb
|
|
* Introduced the RUBYMOTION_ENV constant in the runtime which can have one of
|
|
the following string values: 'test', 'development' and 'release'.
|
|
* Introduced the `rake static' task which creates a universal static library
|
|
containing the project's object files and the RubyMotion runtime, which is
|
|
suitable for inclusion in Objective-C/Xcode projects.
|
|
* Introduced weak frameworks support. The `app.weak_frameworks' setting can
|
|
be set to an array of framework names, similar to how `app.frameworks'
|
|
works (ex. app.weak_frameworks += ['Twitter']). Patch by Satoshi Ebisawa.
|
|
* Fixed a bug in the build system where files within symlinks inside of the
|
|
resources directory would not be copied. Patch by Nick Quaranto.
|
|
|
|
= RubyMotion 1.14 =
|
|
|
|
* Fixed a bug in the Struct class where certain instances would be released
|
|
twice and triggering a malloc error.
|
|
* Fixed a bug where aliasing a method generated by attr_* would trigger an
|
|
assertion at runtime when being called.
|
|
* Fixed a bug where calling methods generated by attr_* from Objective-C
|
|
would return NSNull instead of nil in case the attribute is nil.
|
|
* Fixed a bug in the random number generator where the generator would not be
|
|
properly initialized in certain cases (ex. Array#sample), therefore always
|
|
returning the same values.
|
|
* Fixed a bug where using C structures containing bitfields (ex. NSDecimal)
|
|
would trigger an exception at compilation time.
|
|
* Added support for pointers to C strings (needed for glShaderSource()).
|
|
Usage: Pointer.new(:string, n) where n is the number of C strings, then
|
|
simply assign Ruby strings with #[]=.
|
|
* Changed the runtime to log all raised exceptions via NSLog(). This behavior
|
|
can be controlled via the Exception.log_exceptions variable (which is true
|
|
by default, but can be set to false).
|
|
* Introduced new project variables: short_version, background_modes and
|
|
status_bar_style. Patch by Francis Chong.
|
|
|
|
= RubyMotion 1.13 =
|
|
|
|
* Fixed a regression in `rake simulator' introduced by the last update.
|
|
Also, the environment variable used to set the SDK target is renamed to
|
|
`target' (ex. rake target=4.3).
|
|
* Fixed a bug in the build system where certain .rb files would be rebuilt
|
|
every time `rake build' was executed, because the object directory was not
|
|
touched.
|
|
* Fixed a bug in the build system where the RUBYOPT variable would not be
|
|
cleared when calling the gen_bridge_metadata tool, which would cause some
|
|
issues later on. Patch by Satoshi Ebisawa.
|
|
|
|
= RubyMotion 1.12 =
|
|
|
|
* Fixed a bug where sending an `init' message alone (without using `alloc'
|
|
before) would lead to a memory crash. This was possible when overloading
|
|
an initWith* method and doing `self.init' inside.
|
|
* Fixed a bug where performing Objective-C methods that accept CFType objects
|
|
would crash the program (ex. [ABPersonViewController setDisplayedPerson:]).
|
|
* Switched to clang++ to link the executable bits. This fixes linker crashes
|
|
on iOS 6.0.
|
|
* Added `fast' output for `rake spec'. Fixed a bug in the other outputs.
|
|
Patch by Marin Usalj.
|
|
* Improved the build system to let the user specify CPU archs that should be
|
|
used for a certain platform. The `app.archs' method returns a Hash that one
|
|
can tweak. This is so far only useful when you target 4.3 (which is armv6
|
|
and armv7) and want to link with a 3rd-party library that only supports
|
|
armv7 (ex. app.archs['iPhoneOS'] = ['armv7']).
|
|
* Improved `rake simulator' to honor the `deployment_target' environment
|
|
variable (ex. rake deployment_target=4.3). Patch by Satoshi Ebisawa.
|
|
* Fixed a bug in the build system where the compiler would not use the right
|
|
BridgeSupport files when using a lower deployment_target.
|
|
Patch by Satoshi Ebisawa.
|
|
* Fixed the build system to re-link the .app executable in case one of the
|
|
vendored libraries changed.
|
|
* Fixed bugs in both ARM/simulator compilers where structures smaller than
|
|
64 bits would not be following the ABI and causing unexpected behavior in
|
|
certain cases (ex. cocos2d). Thanks to Aaron Hurley for the detective work.
|
|
* Removed Kernel#select as it clashes with a private `select' method defined
|
|
by iOS and triggered when hitting the select button in a paste action.
|
|
Thanks to Francis Chong for the detective work.
|
|
|
|
= RubyMotion 1.11 =
|
|
|
|
* Fixed a bug where the runtime would not allow `nil' to be passed as a
|
|
C-level block argument.
|
|
* Fixed a bug where methods defined by attr_* would abort the program when
|
|
called by Objective-C.
|
|
* Improved `rake spec' to honor the `output' environment variable, which can
|
|
be used to select a different output format. Available formats: spec_dox,
|
|
test_unit, tap and knock (ex. rake spec output=test_unit).
|
|
* Support for the iOS 6.0 Beta 1 SDK can be generated after having installed
|
|
Xcode 4.5 by typing the following command:
|
|
$ cd /Library/RubyMotion/data/6.0; rake update
|
|
|
|
= RubyMotion 1.10 =
|
|
|
|
* Fixed the build system to validate the content of the `app.icons' variable,
|
|
since a wrong value may trigger an "unrecognized selector" exception in
|
|
Application Loader when trying to submit the app to the App Store.
|
|
* Fixed the Rakefile created by `motion create' to include the magic utf8
|
|
comment, as the file may contain multibyte characters and be parsed by
|
|
Ruby 1.9. Patch by @pchw.
|
|
* Fixed a memory bug when using symbols as Hash keys.
|
|
* Exposed iOS 4.3 (or greater) libdispatch APIs.
|
|
* The following NSString methods that used to raise a "does not work on
|
|
NSStrings" exception are no longer defined: byte_size, get_byte, set_byte,
|
|
force_encoding, valid_encoding?, ascii_only?, bytes, each_byte, to_data,
|
|
pointer. This allows the developer to use respond_to?. These methods
|
|
however are available on strings created in Ruby.
|
|
* Fixed a bug in `rake simulator' where the value of `deployment_target'
|
|
would be used as the SDK version, causing a `system_root != nil' assertion
|
|
in some cases.
|
|
* Fixed the compilation of empty symbols (:'').
|
|
* Fixed the generation of .bridgesupport files on Snow Leopard by not
|
|
passing the '--no-64-bit' flag (which was added in Lion).
|
|
* Fixed `motion create' to accept dash or underscore characters in the app
|
|
name. Patch by Mark Villacampa.
|
|
* Added a workaround for an iOS 5.1 bug that causes write(2) to return EBADF
|
|
when writing to stdout. The bug seems to happen on devices not configured
|
|
for development. Writing to stdout (using p/puts) in this scenario becomes
|
|
a no-op.
|
|
* Fixed the simulator launcher to properly propagate exit(2) status codes
|
|
from the simulated app. This fixes `rake spec' to properly exit with 1 in
|
|
case one or more specs failed to run.
|
|
* Fixed the RUBY_ENGINE constant to be 'rubymotion' (was 'macruby' before).
|
|
* Objective-C objects conforming to the NSFastEnumeration protocol can now be
|
|
iterated using the #each method. The method is created on demand on these
|
|
objects.
|
|
* Fixed a bug in the simulator REPL where hitting the Home button would
|
|
trigger an insane CPU usage.
|
|
|
|
= RubyMotion 1.9 =
|
|
|
|
* Fixed a bug in the build system where the paths of vendored libraries
|
|
would not be properly quoted and cause a build failure in case they
|
|
contain space characters.
|
|
* Fixed a bug in the build system where using a lower deployment_target
|
|
version would cause a link error at runtime because the application was
|
|
linking against a framework that does not exist (ex. CoreImage on 4.3).
|
|
* Fixed the `rake spec' task to not move the simulator window to the
|
|
foreground.
|
|
* Fixed a bug in the compiler where APIs accepting pointers to
|
|
CoreFoundation types could not be given Pointer objects of the :object
|
|
type (ex. CFErrorRef*).
|
|
* Added support for CoreAudio (experimental). At the very least, constants
|
|
pointing to four-bytes characters should be properly covered.
|
|
* Fixed a typo in "expected array of %d elements, got %d" exception message
|
|
where the numbers were inverted. Thanks Enrico Thierbach.
|
|
* Fixed a bug in the compiler where compiling strings containing only null
|
|
characters (ex. "\x00") would cause a crash.
|
|
|
|
= RubyMotion 1.8 =
|
|
|
|
* Fixed a bug in the generation of BridgeSupport files for multiple headers
|
|
directories.
|
|
* When building vendored projects, unset environment variables that could
|
|
potentially make the build to fail.
|
|
https://github.com/HipByte/motion-cocoapods/issues/12
|
|
|
|
= RubyMotion 1.7 =
|
|
|
|
* Fixed a bug in the compiler where the proper signature would not be used
|
|
when defining informal protocol methods with CF types as arguments.
|
|
* Fixed iOS constants to be looked up at demand (when being used) and not
|
|
when the app starts, because certain constants are not set until a certain
|
|
API is called (ex: the kAB... constants of the AddressBook framework).
|
|
This change should also speed up a little bit the app starting time.
|
|
* Fixed a bug in the compiler where very long selectors would be truncated
|
|
and causing exceptions later at runtime.
|
|
* Fixed a bug in the compiler where memory-related selectors (alloc, dealloc,
|
|
retain, release, etc.) could not be defined in Ruby.
|
|
* Fixed a bug in the compiler where NSObject instance methods could not be
|
|
called on classes (ex. MyClass.performSelector(...)).
|
|
* Fixed a bug in the build system where vendored 3rd-party APIs dealing with
|
|
types defined in iOS headers could not be used (ex: enums or structs).
|
|
|
|
= RubyMotion 1.6 =
|
|
|
|
* Fixed a regression in the build system introduced by the previous update
|
|
(when compiling .xib files).
|
|
* Fixed the vendoring system to include all source code files. Merged patch
|
|
from https://groups.google.com/d/msg/rubymotion/tPCxSMCA2f4/w2DIHFo2AVAJ
|
|
* Fixed the REPL to not crash if you give it an empty expression.
|
|
|
|
= RubyMotion 1.5 =
|
|
|
|
* Improved the REPL to support multi-line expressions.
|
|
* Fixed a bug when compiling Core Data model files where the `momc' utility
|
|
was not given absolute paths.
|
|
* Removed legacy MacRuby code that was using the private `isaForAutonotifying'
|
|
selector and causing a warning during an App Store submission.
|
|
* Fixed a bug in Enumerable#sort_by that would lead to a crash.
|
|
* Fixed a bug in the REPL where it would not detect the iOS Simulator window
|
|
if certain windows were in front or created later.
|
|
* Fixed a bug in the build system where framework dependencies would not be
|
|
properly handled.
|
|
* Added support for .lproj directories (i18n). Thanks Aaron Hurley.
|
|
* Fixed a bug where objects from pure Ruby classes sent to KVO would not be
|
|
properly handled later (because KVO inserts a new singleton class).
|
|
* Fixed attr_writer to emit KVO notifications (will/didChangeValueForKey).
|
|
|
|
= RubyMotion 1.4 =
|
|
|
|
* Added support for the compilation of .xcdatamodeld and .storyboard resource
|
|
files. Thanks Ian Phillips, Andrew Vega and Michail Pishchagin.
|
|
* Fixed a bug when the build system would fail in case the resources dir does
|
|
not exist. Thanks Watson.
|
|
* Fixed a bug in the Xcode project vendoring code when header files at
|
|
different directory levels would not be properly handled. This also fixes
|
|
the motion-cocoapods gem. Thanks Eloy Duran.
|
|
* Added a way to start the simulator in retina mode by setting the `retina'
|
|
environment variable to `true' (other values will be considered false).
|
|
For example: `rake retina=true'. Thanks Marcin Maciukiewicz for the idea.
|
|
* Fixed an ABI bug in the way we compile Ruby methods overloading Objective-C
|
|
methods returning small C structures that can fit in a 64-bit integer.
|
|
Thanks Kristoph Cichocki-Romanov for the report.
|
|
* Added support for the iOS 4.3 SDK.
|
|
|
|
= RubyMotion 1.3 =
|
|
|
|
* Fixed a bug in format strings with width / precision modifiers.
|
|
* Disabled the automatic loading of motion- gems.
|
|
* Added support for the compilation of Interface Builder resource files.
|
|
.xib files present in the `resources' directory will be compiled to .nib
|
|
files then copied in the app bundle. .nib files are added to the default
|
|
.gitignore and removed during `rake clean'. Thanks Ian Phillips.
|
|
* Improved the `rake device' error message to mention that Wi-Fi sync might
|
|
cause device deployments to fail.
|
|
* Fixed a bug in NSArray#reject where the new array would not be returned.
|
|
|
|
= RubyMotion 1.2 =
|
|
|
|
* Fixed a couple bugs in the project vendoring code that would be triggered
|
|
when using the motion-cocoapods gem. The fixes were merged from the
|
|
https://github.com/HipByte/motion-cocoapods/issues/1 discussion.
|
|
* Fixed codesign bugs in `rake archive:release'.
|
|
* Improved the Xcode detection code by printing a warning message in case
|
|
the user installed a recent Xcode in /Applications that has not been
|
|
set as the default Xcode in the system yet.
|
|
* Fixed a typo in the REPL help message (thanks Mike Clark).
|
|
|
|
= RubyMotion 1.1 =
|
|
|
|
* Fixed `rake device' to print a human-readable error message in case the
|
|
deployment might fail because another process is connected to the device.
|
|
* Fixed a bug in `rake simulator' where view detection would not work on
|
|
non-English desktops (error "Cannot locate the Simulator app").
|
|
Make sure to exit the Simulator app after applying this update.
|
|
|
|
= RubyMotion 1.0 =
|
|
|
|
* First release.
|