forked from HipByte/RubyMotion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
2109 lines (1951 loc) · 120 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
= RubyMotion 3.3 =
* [iOS] Fixed a bug where a WatchKit application could be launched on an iOS
8.1 simulator, which does not actually support WatchKit and would crash.
* [iOS] Fixed a bug where the compiler would no longer emit proper DWARF
metadata for ARM64 due to an Xcode / clang change.
* [iOS] Print an informative error when no simulator devices are configured.
* [iOS, OSX] Fixed a bug where the #== method in a pure Ruby object would
not resolve WeakRef operands.
* [iOS, OSX] Fixed a bug where small structure cannot be passed into
Objective-C funcitons with 64-bit app.
* [iOS, OSX] Fixed a bug where the #kind_of? method in an ImmediateRef would
not compare against the reference object's class.
* [iOS, OSX] Fixed a memory leak in Array#{uniq, uniq!, compact, compact!,
select, select!, keep_if}.
* [iOS] Fixed a bug where it would trigger a crash when Ruby method which has
5 or more arguments will be called from Objective-C code in arm64 device.
* [OSX] Updated Edit menu to include items generated by Xcode. Thanks to
Hwee-Boon Yar for the patch (pull request #187).
* [Android] Introduced app.manifest, which makes it possible to directly
manipulate the contents of the AndroidManifest.xml file from the Rakefile.
Read the documentation in the "Providing Custom Values" section of the
Android Project Management guide on the Rubymotion website. Thanks to
Daniel Brooker for the patch.
* [Android] Added String#{[], slice}.
* [Android] Fixed a bug where projects with an XML file in the 'resources'
directory would not compile correctly.
* [Android] Fixed a bug where Object#instance_eval would crash when targeting
old versions of Android (below 14).
* [Android] Fixed a bug where Ruby methods and blocks where limited by the
number of arguments they could accept.
* [Android] Fixed a bug where Hash would not include Enumerable.
* [Android] Fixed a bug where Ruby Hash methods (ex. #[]) would not be
available on Java *Map objects.
* [Android] Fixed a bug where Hash objects with a default Proc (ex. created
with `Hash.new {}') would not dispatch the Proc when a key isn't found.
* [Android] Fixed a bug where Ruby String methods were not available on
java.lang.String objects.
* [Android] Fixed a bug where passing java.lang.String objects to Ruby
String methods expecting String arguments would cause a runtime crash.
= RubyMotion 3.2 =
* [iOS] Fixed a bug where RubyMotion frameworks could not be loaded due to
required RubyMotion symbols being stripped from application/extension.
* [iOS] Pick-up new certificates prefixed with `iOS` instead of `iPhone`.
* [iOS] Fixed a bug where WatchKit applications did not honor `xcode_dir`.
* [iOS] Fixed a bug where it couldn't debug with `rake device debug=1' on
device. Now, debugging only support `armv7' in `app.archs['iPhoneOS']'.
(i.e. app.archs['iPhoneOS'] = ['armv7'])
* [iOS] Fixed a bug where it could not deploy app to iOS 8.2 beta 3 device.
* [iOS] Fixed a bug where it could not deploy app which contained Watch app.
* [OSX] Fixed a bug where NSString#initWithXXX would trigger a crash by double
free.
* [iOS, OSX] Fixed a bug where the view object wouldn't be released when it
was created by #init(arg) and super() method.
* [iOS, OSX] Fixed a bug where `nil.isEqual(nil)' would not return `true'.
was created by #init(arg) and super() method.
* [iOS, OSX] Fixed a memory leak when invoking blocks with Dispatch::Queue.
* [iOS, OSX] Fixed a bug where Marshal.dump would trigger a crash.
* [Android] Added Bignum#{+@,-@,%,modulo,&,|,^,~,<<,>>,<,<=,>,>=,<=>,abs,
to_i,to_int,to_f}.
* [Android] Added Time#{to_s, to_i, inspect, <, <=, >, >=, <=>, ==, !=} and
Time.at.
* [Android] Improved Fixnum#{%, <=>, &, |, ^, <<, >>} to take a Bignum in
argument.
* [Android] Fixed a bug where gen_bridge_metadata would not detect classes
that implement interfaces.
* [Android] Fixed a bug where gen_bridge_metadata would not work if the user
had java 8.0 installed (`javap' was emitting unrecognized syntax). Thanks
to "Theo" for the detective work and the patch.
* [Android] Fixed a bug where gen_bridge_metadata would emit template
information in class/interface names, which would then break the compiler.
* [Android] Fixed a bug where gen_bridge_metadata would fail to emit proper
list of methods for a class that had a static initializer.
* [Android] Added the `:native' parameter for `app.vendor_project' which can
be used to specify a 3rd-party shared library to include in the app.
Thanks to René Köcher for the patch.
* [Android] Fixed the extra-packages argument to work with multiple packages.
Thanks to Tom Carey for the patch (pull request #185).
= RubyMotion 3.1 =
* [iOS] Fixed an API validation error when submitting an application that
contains an extension.
* [iOS] Fixed a regression that made it impossible to set environment
variables from a host application and propagate them to extensions.
* [iOS] Fixed a regression that made extensions crash at startup.
* [iOS] Fixed a regression where a Info.plist file would be generated
with wrong details for Background Fetch.
* [iOS] Fixed a bug where `rake background_fetch=1' for background fetch
would not work with Xcode 6.x.
* [Android] Added Fixnum#{~,&,|,^,<<,>>,+@,integer?,odd?,even?}.
* [Android] Added Float#+@.
* [Android] Added Bignum#integer?.
* [Android] Fixed Fixnum#times to return an Enumerator when no block is given.
= RubyMotion 3.0 =
* [Android] RubyMotion for Android support has been merged. Please refer to
the pre-release NEWS file for past changes, and check out our developer
guides for more information about this new platform support.
* [iOS] Added support for WatchKit applications.
Add a target to your iOS application by creating a WatchKit project with the
command: `$ motion create MyWatchApp --template=ios-watch-extension` and
then configure your iOS application by adding:
`app.target 'path/to/MyWatchApp', :extension`
Then from the root of your iOS application, *not* the WatchKit application,
invoke `$ rake watch` to build your iOS and WatchKit applications and launch
the WatchKit application on the simulator.
Additional launch options are `type=glance` for Glance applications,
`type=notification payload=path/to/payload.json` for Notification
applications, and `display=regular` or `display=compact` to launch the 42mm
or 38mm Watch displays respectively.
* [iOS] Added support for specifying launch images from asset catalogs.
* Added support for iOS 8.2 (beta). You will need to install an Xcode 6.2
beta to support it.
* [iOS] Fix `rake crashlog:device' crash report symbolication.
* [iOS] Fixed a bug where Bundler wouldn't be used when it will build
Extensions and Frameworks.
* [iOS] Create a `UIViewController`, `UINavigationController`, and `UIWindow`
in the default new application template.
* [OSX] Only build for 64-bit (`x86_64`) by default.
* [iOS] Enabled arm64 support by default for iOS projects.
* [iOS] Honour explicit `device_name` or `target` specified by user.
Specifying both is disallowed, because a device is configured for a
specific SDK.
* [iOS] Fixed a regression where Extension and Frameworks could not build for
the iOS device platform.
* [iOS] Fixed a bug where `rake spec' would return 0 as exit code even if it
failed due to a crash.
* [iOS] Fixed a bug in `rake spec' where #tap and #rotate_device were
causing a crash when ran in 64-bit mode (simulator).
* [iOS] Fixed a bug where all rake task could not be run under the root
directory of Extension or Framework, preventing CocoaPods libraries to be
installed properly.
* [iOS] Fixed a bug where shared frameworks would not be built for 64-bit.
* [iOS] Fixed a bug where it was not possible to customize the Action and
Share extension's icon. The `app.icons' property can now be set in the
extension's Rakefile.
* [iOS] Fixed a bug where extensions could not be built if Bundler was not
installed due to a Pathname dependency.
* [iOS] Added launch images for iPhone 6 and iPhone 6 Plus. Thanks to
Hwee-Boon Yar for the patch (pull request #170).
* [iOS] Fixed the "ERROR ITMS-9000" error when trying to submit an app that
contained extensions. Thanks to Hwee-Boon Yar for patch.
* [iOS] Fixed a bug where the relative path cannot be used in
`app.provisioning_profile'.
* [iOS] Fixed a bug where iPad simulator would not launch app as 64-bit even
if app contains 64-bit binary. Changed default simulator to `iPad Air'.
* Fixed a regression where a link error would be caused in Xcode when trying
to use a static library which was generated by `rake static'.
* Fixed a bug where the wrong Boxed object would be returned from an
Objective-C method.
* Fixed the `motion support' command invocation to print both the stable and
pre-release versions of RubyMotion.
* Fixed a bug where a "Symbol not found" exception would be triggered when
trying to use a constant which was not defined in an older SDK version.
* Fixed a bug which it would not solve framework dependencies in embedded
frameworks.
* Fixed a memory leak when invoking blocks passed to Dispatch::Queue.
* Fixed a bug where `rake profile' could not launch Instruments.app when
being given the Instruments template with Xcode 6.2 Beta.
= RubyMotion 2.38 =
* Optimized the app executable size when a project has too many Ruby source
files, by removing unnecessary internal code. ~30-60% lighter.
* Disabled armv7s support for iOS projects. If you want to add armv7s support
back, simply add the 'armv7s' value to the `app.archs['iPhoneOS']' config
in the project's Rakefile. This architecture is no longer enabled by
default in Xcode.
* Fixed a bug where a compiled Core Data model would be removed when cleaning
when an original `xcdatamodeld' was not available.
* Fixed a bug where in certain circumstances cleaning would try to be
performed when the vendor dir, e.g. `vendor/Pods' did not exist.
* Fixed a few cases where the Yosemite version number was parsed incorrectly.
* Added support for `axel' as an alternative to `curl' when downloading
updates, which supports resuming and uses 10 connections to improve speed.
Axel is available from http://wilmer.gaast.net/main.php/axel.html or can be
installed through Homebrew: `$ brew install axel'.
* Fixed a regression where `rake spec' did not work on OS X platform.
* Fixed a bug where Dispatch.once did not work correctly with x86_64 on
iPhone simulator and i386 on OS X platforms.
* Fixed a bug where `:cflags' for `:static' vendored projects could not
override those set by the toolchain by default. E.g. `-fno-modules'.
* Fixed the `motion --version' command invocation to print both the stable
and pre-release versions of RubyMotion.
* [OSX] Fixed a bug where embedded frameworks would not be codesigned as per
the current requirements for the App Store.
* [iOS] Removed `Symbols not found...' message when app will be deployed into
iOS device if Xcode dumped device symbols into user directory.
* [iOS] Fixed a bug which it could not recognized Provisioning Profile which
is generated with "iOSTeam Provisioning Profile".
* [OSX] Fixed a bug where BigDecimal#inspect would return invalid string on
Yosemite.
= RubyMotion 2.37 =
* Fixed a regression where Dispatch.once did not work correctly when it was
invoked in some points.
* Fixed a bug where the compiler would crash with an assertion message
`[BUG] Object: SubtypeUntil ...' when compiling certain Ruby files.
* Fixed a bug in the compiler when compiling for ARM64 where certain types
would still be emitted with a 32-bit architecture in mind.
* Fixed a bug in the compiler when compiling for ARM64 where certain structs
would not be properly available (such as NSDecimal).
= RubyMotion 2.36 =
* Added ARM64 support (64-bit) for iOS. It is not yet enabled by default for
applications that do not embed Frameworks or App Extensions. In order to
enable it on other builds add the following line to your project's Rakefile:
app.archs['iPhoneOS'] |= ['arm64']
* iOS 4.3 and OS X 10.7 are no longer supported, due to internal changes
that require us to use a newer C++ standard library.
* [iOS] Fixed a bug where the `app.provisioning_profile' setting would not be
configurable in the Rakefile of App Extensions projects.
* Fixed a bug when copying an `ImmediateRef', which isn't needed anyways,
because a tagged pointer can not be duplicated either.
* Fixed a bug where Xcode 6 would cache precompiled headers in a
hidden location and subsequent vendored builds could fail after cleaning.
* Fixed a bug where a failed vendored build could cause subsequent builds to
never actually start.
* Fixed the build system to remove Xcode 6 noise from vendored build output.
* Fixed a bug where the #supportedInterfaceOrientations method would be not
properly included.
* Fixed a race condition bug in the runtime where a crash would occur if
the same Objective-C constant was being resolved at the same time from
different threads.
* Fixed the `motion changelog' command to honor the `--pre' flag, which will
open the pre-release NEWS file instead.
* Fixed the `motion update --pre' command to print a reference to the
`motion changelog --pre' command.
* Improved IO#.read performance to read from files. ~4 times faster.
= RubyMotion 2.35 =
* Added support for iOS 8.1 (beta). You will need to install Xcode 6.1 GM
Seed in order to target it.
* Fixed a bug that could occur when the only available SDKs are newer than the
available BridgeSupport metadata.
* [iOS] Fixed a bug where it would not symbolicate with `rake profile:device`.
The dSYM file path was changed to fix a bug.
* [iOS] Fixed a bug where the RubyMotion shared framework would not update
even if it changed the code in framework.
* [OSX] Fixed a bug that would always cause the REPL to crash.
* Fixed a bug where GLKit functions would trigger a crash when it will run
app on iOS simulator.
= RubyMotion 2.34 =
* All iOS and OS X versions of the runtime have been recompiled with Xcode 6.
* [iOS] Add support for iPhone 6/6+ launch images. Unless explicitely
specified, the Info.plist `UILaunchImages' key is populated from all PNG
files in the resource directories that start with Default. For iPhone 6/6+
use the `-667h' and `-736h' filename modifiers.
* [OSX] Fix a bug that made it impossible to build a OS X app on Yosemite
with Xcode 6 GM, even when targeting 10.9.
* Fixed a bug that ommitted class and protocol methods from the ctags.
Patch by Rakesh BS.
* Improved exception backtrace symbolication performance by ensuring the dSYM
bundle is used when available.
* Improved Enumerable#inject performance. ~40% times faster.
* Fixed a bug that could cause `clang++' to be called with too many arguments
for a shell to handle.
* Fixed a bug that could cause `gen_bridge_metadata' to be called with too
many arguments for a shell (on Yosemite) to handle.
* [OSX] Fixed a bug that made it impossible to use a `NSApplication' subclass.
* [OSX] Fixed a bug where it would trigger a crash when it will evaluates a
expression on REPL on Yosemite.
* [OSX] Fixed a bug where the build directory for 3rd-party library wouldn't
be removed with `rake clean' command.
* [OSX] Fixed a bug where it didn't handle `NSTaggedPointerString' objects
when it configured lower OS X version as deployment target on Yosemite.
* [OSX] Fixed a bug where `rake debug=1' freezes lldb with Xcode 6 GM.
* [iOS] Changed default simulator to 'iPhone 6' which it would be introduced
by Xcode 6 GM.
* Fixed a bug where Instruments didn't launch if it would specify a template
name with "rake profile template='xxx'".
* Fixed a bug where Method#owner will return incorrect owner if the method
in inherited class would be overrided.
* Fixed a bug where wrong method would called when it would include module
which have #viewWillAppear and #viewWillDisappear implementations.
* Fixed a bug where method would not called when it would include some module
which have #viewWillAppear implementations.
* Fixed a bug where #method_missing would receive incorrect arguments after
calling was cached.
* Fixed a bug where the build system would ping the update server for each
target an application project includes.
* Fixed a memory leak which was created when huge splat would be passed into
the methods since second argument.
* Improved Regexp.last_match performance. ~20% faster.
= RubyMotion 2.33 =
* Added support for installing pre-releases of RubyMotion. The
`sudo motion update --pre' command will install a pre-release build in
`/Library/RubyMotionPre'. Currently, the pre-release channel contains
the first beta of RubyMotion for Android. Enjoy! ^_^
= RubyMotion 2.32 =
* The iOS 8.0 and OS X 10.10 versions of the runtime have been recompiled
with Xcode 6 Beta 6.
* [iOS] Depracted rake options `device_family' and `retina' in favor of
`device_name' which takes the name of one of the configured device-sets
found in Xcode -> Window -> Devices or the `simctl' tool (its location can
be found in the message shown when using one of the deprecated options).
* [iOS] Added support for iOS 8 App Extensions. See the `motion create --help'
output for a list of available templates and configure your host application
with the following: `app.target("path/to/extension", :extension)'.
* [iOS] Added support for frameworks that allow you to share code between your
host application and its extensions. Use the `ios-framework' template for
`motion create' and configure your host application with the following:
`app.target("path/to/framework", :framework)'.
* [iOS] Fixed a bug where backtraces could not be symbolicated on the iOS 8
Simulator.
* [iOS] Fixed a bug where the iOS 8 Simulator could not be launched with the
default device config.
* [iOS] Fixed a bug where the iOS 8 Simulator could not be used to select
views in the REPL.
* [iOS] Fixed a bug where the REPL view selection would incorrectly invert the
coordinates for the landscape orientation on iOS 8.
* [iOS] Fixed a bug where "xcodebuild: error:" message would be displayed
when it will configure `app.xcode_dir' for Xcode6 path.
* [iOS] Fixed a bug where Instruments.app does not launch with `rake profile'
on iOS 8.
* [iOS] Fixed a bug where `iPhone 4s / iOS 7' simulator was always launched
if Xcode 6 location path was specified through `app.xcode_dir'.
* [iOS] Fixed a bug in iOS 8 where Hash objects could not be passed as an
object of an NSUserDefaults.
* [iOS] Added `app.embedded_frameworks' configuration to support dynamic
framework on iOS 8.
* Fixed a bug where headers in nested symlinked directories could not be used
with `vendor_project' and an Xcode project.
* Fixed a regression where a crash would happen when calling user defined
method if the same method was already defined in some classes in Apple SDK.
* Fixed a regression where a crash would happen when calling methods after
used a method with variadic arguments.
* Fixed a bug where a "not precompiled" error would happen when calling the
SKPhysicsWorld method which takes with Objective-C Blocks.
* Fixed a bug which superclass method would be called if method was removed
through Module#remove_method.
* Fixed a bug which it would trigger crash when the method for KVO was called.
* Fixed a bug where overrode Time#+ would not be called.
* Fixed a bug which it would trigger random crash when #method_missing will be
called.
* Fixed a bug where it would cause a "Permission denied" error if vendor
library directory was not writable.
* Improved Module#define_method performance. ~3 times faster.
* Improved Object#method_missing performance. ~8 times faster.
* Reduced the app boot time. ~40% faster.
= RubyMotion 2.31 =
* The iOS 8.0 and OS X 10.10 versions of the runtime have been recompiled
with Xcode 6 Beta 4.
* Fixed a regression where a crash would happen when calling methods with
variadic arguments.
* Fixed a bug where Unicode characters outside the BMP of a String object
would not be properly extracted when passed to an Objective-C API.
* Fixed a bug where a "not precompiled" error would happen when calling the
NSURLSessionDownloadTask#cancelByProducingResumeData method.
* Fixed a bug where a crash would happen when trying to override a method that
has `MKOverlayRenderer' arguments (ex. #drawMapRect:zoomScale:inContext:).
* Fixed a bug where trying to retrieve a value from a Hash object using a
key wrapped as a WeakRef would not work as expected.
* [iOS] Fixed a bug where ^C would not terminate the `rake debug=1' debugging
session immediately.
* [iOS] Fixed a bug where custom debug commands (ex. `pro', `pri') would not
work in a remote/device debugging session.
* [iOS] Fixed a bug which user-defined debug commands would not be loaded
in a remote/device debugging session.
= RubyMotion 2.30 =
* The iOS 8.0 and OS X 10.10 versions of the runtime have been recompiled
with Xcode 6 Beta 2.
* Added the `device_name' parameter in order to select iOS 8 simulater device.
You can use "iPhone 4s", "iPhone 5", "iPhone 5s", "iPad 2" ,"iPad Retina",
"iPad Air", "Resizable iPhone" and "Resizable iPad" for device name.
(Ex rake device_name="Resizable iPhone")
* Improved the compiler to optimize the app executable size, by removing
unnecessary internal Objective-C stubs. Apps should be 10-30% lighter,
depending on how much native calls they use.
* Added the BigDecimal#{to_i, to_int, to_f, to_s, coerce, +@, -@, modulo, quo,
power, floor, ceil, round} methods.
* Added the Kernel#BigDecimal method.
* Improved String interpolation performance. ~10% faster.
* Improved the NoMethodError exception message to include the full
Objective-C selector. Also, #method_missing will now receive the full
Objective-C selector as the method name.
* Fixed a bug where spec helpers nested in sub-directories were being
considered spec files instead of helpers. Thanks to Ignacio Piantanida for
the patch.
* Fixed a bug where a crash due to an assertion would be happening when using
#layout on a MIDIPacketList object on iOS 8.
* Fixed a bug where a crash would happen when calling a Objective-C method
supposed to return a block, but instead returning nil.
* Fixed a bug where a crash would happen when a Symbol object was used with
the NSCoding interface methods.
* Fixed a bug where shortcut selectors would not work when the method name
was begining or ending with a number.
* Fixed a bug where the `scrollViewWillEndDragging:withVelocity:
targetContentOffset:' delegate method would not be defined properly.
* Fixed a bug where a crash would happen when a Struct object was used with
the NSCoding interface methods.
* Fixed a bug where the `NSJSONSerialization' interface would return a
BigDecimal object if the `0.0' value was stored in the original JSON data.
* Fixed a bug where dynamically-defined methods would not be removed properly.
* Fixed a bug where typedef parameters would cause a "not precompiled" error.
* [OSX] Fixed the runtime to recognize `NSTaggedPointerString' objects that
were introduced in Yosemite.
* [OSX] Fixed a bug with the `NSManagedObjectModel#entitiesByName' method of
the CoreData framework where it would return an NSDictionary that was not
expected on 10.9.
* [OSX] Fixed a bug where the default value for `app.deployment_target' was
wrong and would cause a build error on an old version of OS X.
* [OSX] Fixed a bug where a "not precompiled" error would happen when
specifying an older version OS X version for `app.deployment_target' when
building on Yosemite.
= RubyMotion 2.29 =
* Added support for Xcode 6 Beta 1 and iOS 8.0 / OS X Yosemite (10.10).
* Fixed a bug where objects removed by Array#delete would not released.
* Fixed a bug where a `not precompiled' error would happen when calling an
alias to an Objective-C method with a C-level block argument.
= RubyMotion 2.28 =
* Added support for `BigDecimal'. This class is implemented on top of
`NSDecimalNumber' and currently adds all the `BigDecimal' operator methods.
It can be passed to APIs that require `NSDecimalNumber *', `NSDecimal', and
pointers to `NSDecimal'.
* Fixed a bug with framework search paths that contain spaces.
* Fixed a bug with Objective-C methods that expect a void-pointer to an object
(`id'/`CFTypeRef') and thus a `Pointer'. The object is now passed as-is.
* Fixed a bug with the CoreMIDI BridgeSupport metadata on platforms that have
64-bit support where the MIDI types would be unavailable.
* Fixed a bug where empty `.strings' files would lead to a build failure.
* Fixed a bug where methods returning NSNotFound would return an incorrect
value to Ruby.
* Fixed a bug where a crash would happen when trying to call a Proc object
generated by Method#to_proc.
* Fixed a bug where an NSNumber object would not be converted to a Ruby
Numeric object in the context of Objective-C Subscripting.
* Fixed a bug where `super' couldn't be used with keyword arguments.
* Fixed a bug where an incorrect cache would be used internally and would
trigger an exception when shortcut selectors were used.
* Fixed a performance issue when deallocating many objects.
* Reduced the app boot time. ~15% faster.
* Improved Object#method_missing performance. ~10% faster.
* Improved performance where creating Objective-C selectors internally.
As an example, Object#{send, respond_to?} is now ~30% faster.
* Improved String interpolation performance. ~10% faster.
= RubyMotion 2.27 =
* Added support for localization `.strings' files which will be compiled as
binary files. Thanks to Hwee-Boon Yar for the patch (pull request #154).
* Added support for `NSLocalizedString' and friends. These are now available
on `Kernel'.
* Added missing AudioUnit bridgesupport metadata.
* Improved the file dependencies detection code to spend less time when
working on a project that has a significant number of dependencies.
Thanks to Ignacio Piantanida for the detective work.
* Fixed a regression introduced in RubyMotion 2.25 that was causing a
build error in environment using Ruby 1.8.
* Fixed a regression introduced in RubyMotion 2.25 that was causing a
`not precompiled' error if the method would handle a BOOL pointer as an
argument.
* Fixed a bug where Boxed subclasses could not be re-opened safely.
* Fixed a bug which shortcut for the method which was implemented on Ruby
would not respond.
= RubyMotion 2.26 =
* Fixed a regression introduced in the previous release that was causing a
crash when checking if a class supports weak references on iOS 6.
= RubyMotion 2.25 =
* Added support for Xcode 5.1 and iOS 7.1 final.
* Added support for OSX 10.6 as deployment target (experimental).
* Improved user feedback by printing a warning when overriding a protocol
method that was previously defined with one of the `attr_*' methods. This
may print false positives.
* Improved `rake ctags' to index the application's .rb files. Thanks to
Hwee-Boon Yar for the patch (pull request #152).
* Improved use of `WeakRef' to raise an exception when trying to create a
weak reference to one of the unsupported classes. For more information, see
`Which classes don’t support weak references?' at http://bit.ly/1iiSOaU.
* Added some introspection support to `ImmediateRef'. It can now report the
actual class, its methods, and a inspect description string.
* Added gemspec call to Gemfile for gem template. Thanks to Mark Rickert for
the patch (pull request #151).
* Fixed a bug where `rake device debug=1' did not work with Xcode 5.1.
* Fixed an error in `rake device debug=1' if it would use UTF-8 as app name.
* Fixed a bug where an application could not be installed and launched on the
Simulator or a device due to the application bundle containing a directory
called `Resources'. This will now fail the build with a descriptive error.
* Fixed a bug where the OS X REPL did not work on 10.7 Lion.
* Fixed a bug where KVC property validation methods defined in Ruby would not
be compiled with the appropriate (Pointer) types.
* Fixed a bug where Ruby methods defined on Objective-C tagged pointer
objects could not call methods on itself.
* [iOS] Made `tap' test helper work with `UISwitch'.
* Fixed a bug where methods with BOOL arguments would not be handled properly.
* Fixed a bug where the cycle detector did not work for Array/Hash objects.
* Fixed a memory leak in Object#{method, public_method, instance_method,
public_instance_method}.
* Fixed a bug where Boxed#copy would cause a crash.
* Fixed a bug where Range#copy would cause a malloc_error_break error.
* Improved Object#instance_variable_set performance. ~20% faster.
* Improved Object#method performance. ~50% faster.
* Improved method dispatcher performance. ~5% faster.
* Improved fine-grained lock performance. ~20% faster.
* Improved memory management performance. ~25% faster.
= RubyMotion 2.24 =
* Fixed a regression introduced by the last build where environments running
versions of Ruby not handling source files as unicode by default would be
broken due to the presence of a unicode character in one of the files.
= RubyMotion 2.23 =
* Added support for objects conforming to the Subscripting interface
(Objective-C Literals).
* Fixed a bug with the `motion activate' CLI command. Thanks to Joffrey
Jaffeux for the patch.
* Fixed a regression when specifying external templates to `motion create'.
* Fixed a bug where WeakRef.new would cause a crash when nil, true, false,
Fixnum or Float objects were passed.
* Fixed a bug where `vendor_project' with `:static' did not reuse `:cflags'
for the BridgeSupport generation.
* Fixed a bug where manually created BridgeSupport metadata files were no
longer being used by the compiler. Now if one exists in the root of the lib
dir, that will be used instead of one in the platform-specific build dir.
* Added temporary files that are sometimes generated by the REPL to the
default `gitignore' file. Thanks to Mark Rickert for the patch (pull
request #150).
* Added support for "value of def-expr" feature (ex. `def foo; end' returns
the `:foo' symbol).
* Fixed a bug where NSDate.distantFuture returns a wrong value.
* Fixed a memory leak when an exception message is created.
* Fixed a bug where the cycle detector would be activated during asynchronous
Dispatch::Queue blocks even if ARR_CYCLES_DISABLE was set.
* Fixed a bug where #send would freeze the app when passed a method name
which accepts a bool if the method would be used with #send only.
* Optimized methods converting implicitely types using #to_str etc.
* Improved String#to_sym performance. ~40% faster.
* Improved performance in dispatcher. ~20% faster.
* Improved performance where allocates internal memory of String objects.
~10% faster.
* Improved performance of methods where accepts Regexp object. ~20% faster.
* Improved String literals performance. ~60% faster.
* Improved String performance where it handles short strings. ~25% faster.
* Improved String#{strip, rstrip, lstrip} performance. ~70% faster.
* Improved String#{[], []=, +, =~} and Array#+ performance. ~20% faster.
* Improved String#{==, !=} performance. ~50% faster.
* Improved String#include? with UTF-8 strings performance. ~15% faster.
* Improved String#{==, <=>}, NSString#== and Hash#== performance if it would
compare other class object. ~8 times faster.
* Improved Time#{+, -} performance. ~25% faster.
* Improved Time#{==, !=, <, <=, >, >=} performance. ~2 times faster.
* Improved Time#+ with float performance. ~80% faster.
* Improved Array#{==, !=} performance. ~25% faster.
* Improved Hash#{==, !=} performance. ~50% faster.
* Improved Range literals performance. ~20% faster.
* [iOS] Fixed a bug with the `flick' UI test helper not working with
`UISwitch' on iOS 7.
* [iOS] Added support for launching an application for background fetch in
the iOS Simulator with the `background_fetch=1' rake option.
* [iOS] No longer query the simulator application for its window metrics when
it is connected to a REPL but not the active application.
* [iOS] Improved the automatic selection of codesign certificates.
* [iOS] Improved error reporting when specifying the rake `target' option
with a version lower than the configured deployment target and when
specifying `retina=false' when targeting iOS 7.
* [OSX] Fixed a bug where the REPL wouldn't work in development mode if the
app is sandboxed.
* [OSX] Removed backtrace symbolication when an application is sandboxed and
print the command to allow the user to symbolicate themselves instead.
* Jim Weirich, 1956 - 2014. Without you I would not exist. Rest in Peace.
= RubyMotion 2.22 =
* Fixed a bug with `vendor_project' and prebuilt libraries, where the
BridgeSupport file could not be created, as the build directory wouldn’t
exist yet.
* Fixed a bug with `vendor_project' and Xcode projects, where the
BridgeSupport files were being searched in the wrong location.
= RubyMotion 2.21 =
* Added reference zeroing to `WeakRef' starting from iOS 5 and OS X 10.7. It
will now raise an exception in case a message is sent after the reference
has been deallocated. Use the `WeakRef#weakref_alive?' method to check if
it has been deallocated or not.
* Improved performance where Array elements would be converted from Ruby to
Objective-C instance. ~10% faster.
* Fixed a bug where incorrect SDK version values were being used in the
Info.plist file resulting in iOS App Store submissions being rejected.
* Fixed a bug where `motion update --cache-version=X' is broken.
* Fixed a bug where vendored Xcode OS X projects were build with the
IPHONEOS_DEPLOYMENT_TARGET option instead of MACOSX_DEPLOYMENT_TARGET.
* Fixed a memory leak where the objects with a cyclic reference would not
be released when used inside an asynchronous Dispatch::Queue.
* Fixed a bug where BridgeSupport files for external projects included via
`vendor_project' were being shared across platform and not removed with
`rake clean'.
= RubyMotion 2.20 =
* Improved command-line interface, e.g. `$ motion create --help' will now no
longer create an application called ‘--help’. This deprecates the interface
for any command plugins and this will fully be removed with RubyMotion v3.
* Added support for loading plugins through RubyGems. Libraries that used to
use `~/Library/RubyMotion' to load commands and/or templates should no
longer do so, but instead add a `lib/motion_plugin.rb' file (see Joybox for
an example). The `~/Library/RubyMotion' is from now on only meant for local
usage, i.e. outside of the scope of a gem.
* Added the Proc#owner method, which returns a reference to the object the
block was created from (the `self' reference).
* Improved Rational performance. ~4 times faster.
* Improved Proc#new performance. 15% faster.
* Improved performance of Range objects created with the literal syntax.
~80% faster.
* Improved Object#inspect performance. ~25% faster.
* Improved Object#!~ performance. ~3 times faster.
* Improved Object#{send, respond_to?} performance. ~30% times faster.
* Improved performance in dispatcher. ~25% faster.
* Improved performance of arithmetic methods with Float objects in 32-bit.
~80% faster.
* Fixed a bug where methods accepting variadic arguments would not be working
as expected when a method of the same signature was used before.
* Fixed a bug in the build system with Ruby 2.1 where an application whose
name contains UTF-8 characters could not be built.
* Fixed a race condition bug in the runtime where a crash would occur if
the same Objective-C constant was being resolved at the same time from
different threads.
* Fixed the runtime to be able to deal with all tagged pointers from the
Objective-C world. For instance, using NSTaggedManagedObjectID would lead
to a runtime crash.
* Fixed a bug where the user defined bang (!) method would be not called.
* Fixed a memory leak when creating compile time constants.
* Fixed a memory leak in Dispatch::Queue.new.
* Fixed a memory leak in Array#shift.
* Fixed a bug where Method#to_proc would not return a lambda block.
* Fixed a bug where CFType structures in AudioToolbox could not be used.
* Fixed a bug which Kernel.raise could not raise an NSException object.
* Fixed a bug where #alias and #respond_to? methods would cause a race
condition.
* Fixed a bug in the compiler that would ignore BridgeSupport enum values if
they only have a 64-bit value.
* Fixed a bug where NSMutableArray#delete_at would immediately release an
object.
* Made `vendor_project' accept glob patterns for the `source_files' option.
* Made BridgeSupport metadata generation for `vendor' projects by default use
the `:cflags` option.
* [iOS] Made the UI test helper search for views from the `keyWindow' instead
of the `current' window that was created specifically for the test. This
makes it easier to interact with modal views such as `UIAlertView'.
* [iOS] Fixed a bug in the build system where a link error would be caused
when building for arm64 with Xcode 5.1. Thanks to Andrew Larssen for the
patch (pull request #146).
* [OSX] Fixed a bug where an NSDate object convered to a Time object would
cause a calculation error.
* [OSX] Fixed the `rake crashlog' task.
* [OSX] Added `external_frameworks' config variable, which is used for
frameworks that are outside of `/System/Library/Frameworks`, but are not
meant to be embedded inside the application.
E.g. `/Library/Frameworks/iTunesLibrary.framework'.
* [OSX] Fixed a bug where method types of NSOpenPanel and NSSavePanel were
not being cached for their private counterparts that are substituted at
runtime in case the application is running in a sandbox.
= RubyMotion 2.19 =
* [iOS] Fixed a regression related to the sim launcher changes for Xcode 5.1
that broke `rake simulator debug=1`.
* [OSX] Fixed a regression where #eval support was not working anymore.
* Improved Hash#{default, shift} when Hash#default_proc returns a block.
2 times faster.
* Improved comparison iterator blocks that return Float objects.
(Ex. Array#sort{|a,b| return float_object }). 2 times faster.
= RubyMotion 2.18 =
* Added the `rake crashlog:device' task which will download crash reports
generated by the app on the device, symbolicate them and save them on the
local file system. The latest generated file will then be automatically
opened in Console.app.
* Improved the terminal output when using `vendor_project` with an Xcode
project so that it matches the build system output. This feature is using
the XCPretty project. Thanks a lot to Marin Usalj and Delisa Mason for it.
* [iOS] Fixed a bug where applications could not be launched on the simulator
when using Xcode 5.1. Due to this change, Xcode 4 is no longer supported.
* [OSX] Fixed a bug where apps generated on i5/i7 machines would fail to run
on older machines (ex. core2) due to the use of a new instruction.
* Fixed a bug where Hash#{[]=, clear, removeObjectForKey} will immediately
release an object.
* Fixed a bug where Array#{delete, clear} will immediately release an object.
* Fixed a bug where Struct#[]= and setter of Struct member will immediately
release an object.
* Fixed a bug where setter of Boxed member will immediately release an object.
* Fixed a bug where Kernel#instance_variable_set will immediately release an
object.
* Fixed a bug in the cycle detector where weak Proc objects would have their
`self' reference scanned, resulting in a double-release crash at runtime.
* Fixed a bug where Kernel#block_given? would not work as expected if a Proc
object was passed as a method argument.
* Fixed a bug in the spec runner app that could cause the test suite to be
started multiple times. Thanks to Jason W. May for the patch (pull request
#145).
* Improved Range.new performance. 20% faster.
* Improved Array#flatten performance. 70% faster.
* Improved Time#strftime performance. ~30% faster.
* Improved Numeric#{div, to_int} performance. 20-60% faster.
* Improved Fixnum#== and Float#== performance when it would compare an object.
2.5-3 times faster.
* Improved Enumerable#grep performance. 2 times faster.
* Improved the build system to compile as many spec files in parallel as
possible.
= RubyMotion 2.17 =
* Added the `Proc#weak!' method which transforms the strong reference to the
block `self' variable into a weak reference. Once the `self' variable is
weakly referenced there is no coming back to a strong reference. This
method can be used to break cyclic references that the cycle detector is
not able to handle yet.
* Defined implementations of NSObject methods, such as `conformsToProtocol:',
that take Ruby semantics into account on all classes created by RubyMotion.
* Fixed a bug in compiler where boxed types would not be properly registered
if a structure was only used for a pointer.
* Fixed the dispatcher to let methods expecting a structure of type A accept
a structure of type B who has the exact same fields signature, as in C
(ex. MKCoordinateRegion and CGRect).
* Added support for dynamic name directory in project templates. Thanks to
Toshiwo for the patch (pull request #144).
* Fixed a bug in NSArray#{take,drop} where nil could be returned instead of
an empty Array object in certain cases.
* Fixed a bug where NSDate objects would be wrongly converted to Time objects.
* Fixed a bug where certain structures of the same signatures could not be
used. (Ex. NSRect and CGRect in a 64-bit OS X app)
* Improved Range.new performance. 20% faster.
* Improved Array performance where finalizes object and expands internal
memory. 15% faster.
* Fixed bugs where ARC's rules related to method names starting with `new` or
containing `copy` or `Copy` where not being followed. This lead to objects
returned from Objective-C methods that matched these rules not being
autoreleased and objects returned from Ruby to Objective-C not being
retained.
* Fixed the runtime to prefix certain kernel symbols we export (ex. selCopy)
in order to avoid clashes at link time with certain 3rd-party libraries.
* Fixed a bug in in the build system where duplicated entries in the
app.resource_dirs array would mess up the resource-copying process.
* Fixed a bug where nested WeakRef objects (WeakRef.new(WeakRef.new(...)))
would not be properly resolved at dispatch time.
* Fixed a bug in {NSObject,Boxed}#== with a WeakRef object operand where said
operand would not be resolved.
* Fixed a compiler bug where `not precompiled' errors when it uses structure
of GLKit framework.
* [iOS] Fix various bugs in the UI test helpers, like `tap`.
* [OSX] Fixed #eval to honor the self binding when evaluating the string.
* [OSX] Introduced the `app.codesign_for_release' variable, which controls
whether code-signing should occur during `rake build:release'. The default
value for this variable is `true'.
= RubyMotion 2.16 =
* Fixed a heap overflow in floating point parsing (CVE-2013-4164).
* Improved Time#{<, >, ==, eql?} performance. 9 times faster.
* Improved the performance when NSDate objects are converted to Time objects.
10 times faster.
* Fixed regression in the REPL that made it impossible to use block local
variables.
= RubyMotion 2.15 =
* Added support for Xcode 5.1 Developer Preview and iOS 7.1 Beta.
* Improved REPL to recognize Simulator at any scale and orientation. The only
unsupported variant at this time is a Simulator window with scroll bars.
* Fixed REPL<->Simulator coordinate translation when run on a Retina Mac.
* Fixed undefined behaviour in REPL such as local variables not being stored.
* 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.
* Improved iterators performance (ex Array#{each, map}). 2-3 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.
* Fixed a bug in dispatcher where #super cannot look up the shortcut method.
(ie #foo=)
* Improve the precision of Float value.
* Raise error if cleaning a build artefact fails.
* [iOS] Fixed and optimized remote debugging (`rake device debug=1').
* [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] Added missing bridgesupport metadata for Carbon, OSServices and
ApplicationServices frameworks.
* [iOS] Deprecated optional block that can be passed to the `tests` method
when making use of the view test helpers. This can be done with normal
`before` filters.
= RubyMotion 2.14 =
* Really fix the inline function problem described in the previous update.
= RubyMotion 2.13 =
* Fixed a bug where the methods which are defined as inline functions in
iOS/OSX framework are not working properly.
* Fixed a bug where using the mouse-over functionality in the REPL would
lead to an internal deadlock and hang the process.
* Fixed a bug in the REPL where the result of evaluated expressions could be
prematurely released before being sent back to the command-line.
* [iOS] Work around an issue where Instruments.app wants an integer
UIDeviceFamily value and App Launcher wants a string.
* [iOS] Fixed a big where the running the REPL in 64-bit mode would result
in an error related to the fact that the REPL library was i386-only.
= RubyMotion 2.12 =
* Added support for OS X Mavericks (10.9). The toolchain is now fully usable
on a Mavericks machine and can also be used to create Mavericks OS X apps.
* Added `profile' rake tasks that launch builds through Instruments.app for
iOS (both simulator and device) and OS X applications. Run a `rake clean'
before using the task on an existing project.
* [OSX] Added optional support for the #eval method. To enable it, you can
set the `app.eval_support' variable to true (default is false). Support
is currently experimental and will increase your application bundle size
by about 28MB.
* Fixed a internal memory leak in the Enumerator object.
* Added support to compile the Objective-C source codes which uses Modules
syntax in `app.vendor_project'.
* Added a custom `gen_bridge_metadata' which enables recursive function
pointer parsing to support Objective-C blocks that yield blocks.
* Added support for functions/methods that return Objective-C blocks by
wrapping those as Proc's.
* Fixed a memory leak when ObjC #initXXX methods will return internal class
object (ex NSMutableData#initWithLength, NSArray#initWithArray).
* Fixed where #new method doesn't work for GLKKit structure.
(ex GLKMatrix2.new, GLKVector2.new).
* Fixed a bug in Array#sample where it would return duplicated elements when
a value greater than self length was passed into argument.
* Fixed a bug where `motion update' might cause an error when it displays the
changelog on OSX 10.9.
* Fixed a compiler bug where it causes a crash with `rake device' when it
overrides the method which has structure as argument.
* [iOS] Fixed a crash when using certain NSIndexPath objects (64-bit only).
* [iOS] Fixed `rake debug=1` on OS X 10.9 not working.
* [iOS] Fixed a bug in the build system where it would generate invalid
values for the UIDeviceFamily key (was using strings instead of integers).
= RubyMotion 2.11 =
* Added the `rake clean:all' task which deletes all build object files
(ex. those in ~/Library/RubyMotion/build). We recommend using that task
before building an App Store submission.
* Added support for Xcode asset catalogs. This can be used to manage all your
image assets in a visual way, including your application’s icons. You can
create and edit a new catalog like so:
$ mkdir resources/Images.xcassets && open -a Xcode resources/Image.xcassets
* Fixed a long standing limitation in the compiler where overriding in Ruby
an Objective-C method that accepts a C-level block was not possible.
* Fixed a regression where `return' from a block would terminate the app.
* Improve the build system to always copy embedded.mobileprovision. Thanks to
Jan Brauer for the patch (pull request #121).
* Fixed a bug where a boxed struct would incorrectly be interpreted as a
object type, leading to the dispatcher not recognizing a signature.
* Fixed a bug where compiled object files of a vendored project were not
actually being cleaned when running `rake clean`.
* Fixed a bug where defining a singleton method on an object inside a method
with named parameters (Objective-C-style selector) would result in that
method being defined in the runtime with a wrong selector.
* Fixed a bug where Range objects created with non-literal begin/end points
would never be released, and therefore leaking memory.
* Added `context` method as `describe` alias in spec. Thanks to Ryo Katsuma
for the patch (pull request #134).
* Fixed a small internal memory leak in the dispatcher when sending the
#method_missing message.
* Fixed a bug in the compiler where providing nil as the value of a C-level
block argument would not actually pass NULL but an empty Block structure
instead. Thanks to Ruben Fonseca for the detective work.
* [iOS] Fixed a bug where device log is wrong filtered with `rake device'
when performed day is 1-9.
* [iOS] Added support to launch the app as 64-bit in simulator.
* [iOS] Fixed where non-retina iPad simulator does not launch as default.
Thanks to Fabio Kuhn for the patch (pull request #133).
* [iOS] Fixed a regression where certain GameKit class properties could not
be used (ex. GKMatchRequest#minPlayers).
* [iOS] Fixed a link error where "ld: framework not found IOKit" is caused
with iOS 7 SDK when it will run `rake device'.
* [OSX] Fixed the wrong default settings of short cut key in menu. Thanks to
Kazuhiro NISHIYAMA for the detective work.
= RubyMotion 2.10 =
* Fixed a critical regression in the compiler where DWARF metadata would not
be generated, causing .dSYM bundles to miss debugging symbols for Ruby
code. The regression was introduced in 2.8. If you submitted apps built
with 2.8 or 2.9 to Apple and need to symbolicate crash reports, you can
rebuild them with 2.10 and use the new .dSYM bundle.
* Fixed a bug where `motion changelog' does not work.
* Fixed a regression introduced in 2.9 that could lead to a compiler crash
when using the GLKit framework.
* Fixed a bug in `rake device' where it could sometimes crashes when
retrieving console logs.
* Fixed a bug in the build system where the build would fail when generating
BridgeSupport metadata if the Xcode path contained a space character.
Thanks to Michal Jirku for the detective work.
* Fixed a warning in the build system when creating a universal static
archive for a vendored project.
* [iOS] Fixed the build system to really not build for 64-bit by default.
* [iOS] Fixed a regression where exceptions could be not rescued in GCD
blocks on device, apparently due to an underlying change in iOS 7.
Thanks to Mark Frawley for the detective work.
* [iOS] Fixed a bug where `rake device' would cause an Assertion Failed when
`app.name' contains non-ascii characters.
= RubyMotion 2.9 =
* Work around what is very likely a bug in the App Store verification
process which would reject RubyMotion apps based on the fact that certain
__builtin__xxx_chk() functions of the C runtime are marked as private API.
These functions are called by the compiler in certain scenarios in order
to detect overflows. So far we know Apple rejects __strlcpy_chk() and
__strlcat_chk() calls, so we removed them from the RubyMotion runtime.
= 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.