-
Notifications
You must be signed in to change notification settings - Fork 152
/
NEWS
3027 lines (2811 loc) · 170 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 4.17 =
* Fixed some memory leaks in REPL.
* [iOS] RubyMotion Starter now targets iOS 10.2.
* [iOS] Got rid of warning message when building iOS extensions for the
device.
* [watchOS] Added support watchOS complications in the watch app template.
* [watchOS] Fixed a bug where image assets could not be used in watchOS
extensions.
* [Android] Fixed a problem where a build error would be triggered if
`app.name' included uncommon characters.
Thanks to Hwee-Boon Yar for the patch (pull request #248).
* [Android] Improve build time slightly for emulator.
= RubyMotion 4.16 =
* Introduced the `filter' option to `rake spec', which can be used to filter
the specs that should be run using a regex.
Example: rake spec filter="can retrieve users"
Thanks to Pablo Alcalde for the patch (pull request #246).
* [iOS, OSX, watchOS, tvOS] Added support for Xcode 8.2 beta.
* [iOS, OSX, watchOS, tvOS] Fixed a bug where 3rd-party libraries could not
be built with `rake build'.
* [iOS, OSX, watchOS, tvOS] Fixed a bug which it would cause a compile error
with 32bit app when a method which returns a structure value was called if
the structure has only one float field.
* [iOS, OSX, watchOS] Fixed an error when compiling 32-bit binary when
compiling a Ruby method which overrides an Objective-C method which returns
a structure value.
* [iOS, watchOS, tvOS] Fixed a bug where `eval()' was available in
application code.
* [iOS, tvOS] Fixed a bug in `motion device-console' and `rake device' when
some devices are connected via USB.
* [tvOS, watchOS] Fixed a bug where `rake clean' wouldn't remove the build
directories in 3rd-party libraries.
* [iOS] Fixed a regression where ibtool would cause an error if extension and
container app has storyboard files.
* [iOS] Fixed a problem in `rake profile template="..."'.
* [iOS] Fixed an issue when running specs where if a view was not found using
the helper method `view(label)' it would not be included in the error count.
Thanks to Pablo Alcalde for the patch (pull request #244).
* [iOS] Fixed an issue where an extension's Gemfile was not being
automatically installed when compiling its parent application.
* [iOS] Fixed an issue where the wrong extension bundle could be copied to
the resulting app if there was no change to the extension between builds.
* [tvOS] Fixed a problem which it could not submit app to AppStore.
* [watchOS] Removed watchOS v1 (WatchKit extension) app because to submitted
to the App Store must be apps built with the watchOS 2 SDK or later.
Please use 'ios-watch-app' template for WatchOS apps.
* [watchOS] Changed default deployment target value to latest SDK version. If
you need, please specify deployment target using `app.deployment_target' in
Rakefile of watchOS app.
* [watchOS] Fixed a problem which debug log wouldn't be displayed properly
with `rake watch'.
* [watchOS] Fixed a problem which `rake ib' on watchOS app project causes an
error if customized a deployment target.
* [watchOS] Fixed a trivial problem in `rake watch skip_build=true'.
* [watchOS] Fixed a bug which a structure value couldn't be passed into a
method as the argument and couldn't be retrieved from method as returned
value (such as MKCoordinateRegion/NSRange value).
* [watchOS] Got rid of warning messages when compiling Ruby files for device.
* [OSX] Fixed a problem which it wouldn't be able to compile OS X app without
installing Xcode command line tools.
* [OSX] Fixed a bug where `rake profile:templates' displayed the invalid
instruments templates.
* [Android] Updated Android NDK to android-ndk-r13b version. Please update
the Android NDK toolchain by using `motion android-setup' command.
* [Android] Fixed a compilation error if the same Ruby subclass of a Java
class was defined in two different files.
= RubyMotion 4.15 =
* `motion update` command will exit with code 0 if there is no update.
* [iOS, OSX, watchOS, tvOS] Added better support for Xcode 8.1.
* [iOS, OSX, watchOS, tvOS] Fixed a bug that could cause a deadlock if `eval'
was evaluated in the REPL.
* [iOS, OSX, tvOS] Fixed a bug where the wrong Boxed object would be returned
from an Objective-C method if structure declaration has a float type in
last member.
* [iOS, OSX, tvOS] Fixed a bug where the wrong Boxed object would be returned
from an Objective-C method if structure declaration has a float array type.
* [iOS, watchOS] Fixed a bug where it wouldn't resolve framework dependencies
in iOS extension, iOS framework and WatchKit extension for watchOS projects.
* [iOS, tvOS] Improved error description when deploying an app to a device.
* [iOS, tvOS] Fixed a problem where it wouldn't display log messages in
device with `rake device' and `motion device-console'.
* [iOS, tvOS] Fixed a buffer overflow bug when handling device log messages
with `rake device' and `motion device-console'.
* [iOS, tvOS] Fixed a problem where `rake crashlog:device' wouldn't display
the crash log from device since iOS/tvOS 10.
* [iOS, tvOS] Fixed a bug where Exception#bactrace would not show the proper
line number in backtrace messages on device.
* [iOS] RubyMotion Starter now targets iOS 10.1.
* [iOS] Fixed the templates for notification-content and notification-service
extensions.
* [iOS] Fixed a problem where an app could not be run on device if Wi-Fi sync
option was enabled in the Summary of iTunes device backup configuration.
* [iOS] Fixed a bug where custom debug commands (ex. `pro', `pri') would not
work on device.
* [iOS] Fixed a problem where the debugger would not automatically run an app
on a device with `rake device debug=1'.
* [iOS] Fixed a problem where an app could not be launched on iOS Simulator
with Xcode 7.2 or below.
* [iOS, tvOS, watchOS, Android] Fixed a problem where an app on the device
will continue running when terminate REPL with ^C.
* [watchOS] Fixed a bug where the MapKit framework in WatchKit extension was
not being imported by default.
* [watchOS] Fixed a bug which `rake watch display=regular|compact' would not
launch proper watchOS simulator.
* [OSX] Fixed crash when launching document-based applications via rake.
* [OSX, watchOS, Android] Fixed a bug where REPL won't be terminated with ^D.
* [Android] Added support for API 25 (experimental).
* [Android] Updated Android NDK to android-ndk-r13 version. Please update the
Android NDK toolchain by using `motion android-setup' command.
* [Android] Added String#== method.
= RubyMotion 4.14 =
* The toolchain has been upgraded to LLVM 3.8 for all platforms for Xcode 8.
* [iOS, OSX, watchOS, tvOS] Added better support for Xcode 8.
* [iOS, OSX, watchOS, tvOS] Added support for iOS 10.1, watchOS 3.1. You will
need Xcode 8.1 (beta) for these.
* [iOS, OSX, watchOS, tvOS] Fixed a bug where it would trigger an assertion
when it will call an objective-c method which has long method signature.
* [iOS, OSX, watchOS, tvOS] Fixed a bug where structure value cannot be
received as an argument at Ruby method if the method would be called from
objective-c.
* [iOS, OSX, watchOS, tvOS] Fixed a buffer overflow bug in where launching
the debugger.
* [iOS, OSX, watchOS, tvOS] Fixed a problem which cannot build the app which
uses 3rd-party libraries if you have used Ruby which was installed by rvm.
* [iOS] RubyMotion Starter now targets iOS 10.0.
* [iOS] Added support for iOS 10 extensions. To see the list of supported
extensions run `motion create'.
* [iOS] Fixed a regression which can't launch an app on Simulator in Xcode
if it would switch Xcode path using `app.xcode_path'.
* [iOS] Extension targets will now have the same `app.version` and
`app.short_version` as their containing apps by default.
* [Android] Updated Android NDK to android-ndk-r12b version. Please update
the Android NDK toolchain by using `motion android-setup' command.
* [Android] Dropped API 8 supporting.
= RubyMotion 4.13 =
* [iOS, OSX, watchOS, tvOS] Added better support for Xcode 8 beta.
* [iOS, OSX, watchOS, tvOS] Fixed a bug where ENV#inspect would always be an
empty hash.
* [iOS, tvOS] Fixed a bug where SIM_STDOUT_PATH/SIM_STDERR_PATH do not work
if the path of the project contained spaces.
* [iOS] Fixed an issue where apps would sometimes fail to install in the iOS
simulator.
* [OSX] Dropped support for OS X 10.7 and 10.8.
* [OSX] Removed debug log which would be displayed with (command + mouse over).
* [OSX] Fixed REPL connection for sandboxed apps.
* [OSX] Fixed an issue where deployment target would be incorrectly set when
running on OS X 10.12 and using Xcode 7.
* [watchOS] Removed debug log which would be displayed in REPL.
* [Android] Added `undef' method.
* [Android] Added BigDecimal and ENV.
* [Android] Added Kernel.{Array, String, Integer, Float} methods.
* [Android] Added Kernel#<=> and Fixnum#quo methods.
* [Android] Added String#upto method.
* [Android] Added Symbol#{slice, size} methods.
* [Android] Added Object#remove_instance_variable method.
* [Android] Changed base class of Time to java.util.Calendar instead of
java.util.Date to handle time zone properly.
* [Android] Added Time.{mktime, local, utc, gm} methods.
* [Android] Added Time#{zone, yday, gmtoff, gmt_offset, utc_offset, getgm,
getutc, gmtime, utc, localtime, getlocal, nsec, subsec, tv_sec, tv_usec,
tv_nsec, utc?, gmt?, sunday?, monday?, tuesday?, wednesday?, thursday?,
friday?, saturday?, isdst, dst?} methods.
* [Android] Added Module#{remove_method, const_defined?, remove_const,
remove_class_variable} methods.
* [Android] Fixed various issues in Module#{to_s, alias_method, undef_method}
to conform to the Ruby specifications.
* [Android] Fixed various issues in Kernel#sleep and Range#{each, include?,
member?, ===} to conform to the Ruby specifications.
* [Android] Fixed a bug where Module#ancestors would cause a crash on Module.
= RubyMotion 4.12 =
* [iOS, OSX, watchOS, tvOS] Added support for iOS 10, tvOS 10, watchOS 3
and macOS 10.12 (experimental). You will need Xcode 8 (beta) for these.
* [tvOS, watchOS] Got rid of warning messages when compiling Ruby files.
* [iOS, OSX, watchOS, tvOS] Added BigDecimal#{dup, clone} to fix an error in
duplication.
* [iOS, OSX, watchOS, tvOS] Fixed a use-after-free bug when resolving cycle
references in Hash objects.
* [iOS, OSX, watchOS, tvOS] Fixed a use-after-free bug in String#<< method.
* [iOS, OSX, watchOS, tvOS] Fixed a use-after-free bug on 32-bit environment
when invoking an expression in an overridden `dealloc' method.
* [iOS, OSX, watchOS, tvOS] Fixed a buffer overrun bug when creating a
Regexp literal.
* [iOS, OSX, watchOS, tvOS] Fixed a buffer overrun bug when raising an
exception.
* [iOS, OSX, watchOS, tvOS] Fixed a buffer overrun bug when searching a
word in String methods.
* [iOS, OSX, watchOS, tvOS] Fixed a buffer overrun bug in String#%.
* [iOS, OSX, watchOS, tvOS] Fixed a buffer overflow bug in Bignum#to_s.
* [iOS, OSX, watchOS, tvOS] Improved dispatcher performance. ~25% faster.
* [iOS, OSX, watchOS, tvOS] Improved performance when creating instances.
~15% faster.
* [iOS, OSX, watchOS, tvOS] Improved `new' performance in Proc and Pure Ruby
class which does not inherit a Cocoa class. ~2 times faster.
* [iOS, OSX, watchOS, tvOS] Improved Hash#{each, each_pair} performance.
7 times faster.
* [tvOS] Fixed an issue where it cannot search provisioning profile created by
Xcode for tvOS app.
* [iOS, OSX, watchOS, tvOS] Fixed an issue where dSYM files would not be
created if the executable was linked but no .rb file was compiled.
* [Android] Improved performance with 3 new features: literal fixnums,
optimized arithmetic selectors, and instance variable cache. To get
an advantage of these optimizations you only need to recompile your app.
* [Android] Improved compilation speed by using incremental DEX file builds.
* [Android] Improved compiling time for development by non-optimization.
* [Android] Improved `app.vendor_project' to now support a `:filter` value,
which can be set as an Array of regexp patterns, and be used to determine
which classes of a framework should be covered in the `.bridgesupport' file
(useful when vendoring a huge library and only needing a few classes).
* [Android] Updated Android NDK to android-ndk-r11c and SDK package version.
Please update the Android NDK toolchain by using `motion android-setup'.
* [Android] Got rid of warning messages when creating the `libpayload.so'
library, which appeared with the new Android NDK.
* [Android] Fixed a use-after-free bug when calling block methods.
* [Android] Fixed a bug where pure Ruby methods could not be overridden.
* [Android] Fixed various issues in Fixnum#!= to conform to the Ruby
specifications.
* [Android] Fixed various issues in Array.new and Array#{<<, concat, insert,
initialize, +, replace, values_at, inspect, to_s, <=>, zip, flatten,
flatten!} to conform to the Ruby specifications.
* [Android] Fixed various issues in Hash.[] and Hash#{inspect, to_s} to
conform to the Ruby specifications.
* [Android] Fixed various issues in Enumerable#{count, find_index, member?,
include?, select, find_all, first} to conform to the Ruby specifications.
* [Android] Fixed various issues in Time.at and Time#{+, -, usec} to conform
to the Ruby specifications.
* [Android] Fixed various issues in String#{chop, reverse, reverse!, strip,
strip!, rstrip, rstrip!} to conform to the Ruby specifications.
* [Android] Fixed various issues in `return', `break', Proc.new, Kernel#send
and Bignum methods to conform to the Ruby specifications.
* [Android] Changed default CPU architecture to `armv7' from `armv5te' in
order to avoid `java.lang.OutOfMemoryError: PushLocalFrame' which would
happen on some devices when launching an app.
* [Android] Fixed a bug where it would cause a crash when passing many
arguments into Array#{unshift, insert, values_at}.
* [Android] Fixed a bug where it would cause a crash if Array object has
many elements with Hash#delete_if.
* [Android] Fixed a bug which it would cause a crash if Hash object has many
elements with Array#{-, &, |, uniq, uniq!}.
* [Android] Fixed a bug which `return' does not return a value immediately at
Proc block.
* [Android] Fixed a bug where compiler would crash with splat arguments in
`case/when' expressions.
* [Android] Fixed a bug when vendoring a .jar file that includes a lot of
classes (ex. the latest version of Google Play Services).
* [Android] Added support for API 24 (experimental).
* [Android] Added Java JDK 8 supporting.
* [Android] Added Array#{assoc, rassoc, fetch, fill, rotate, rotate!, sort,
sort!, sort_by!, sample, shuffle, shuffle!} methods.
* [Android] Added Array.try_convert, String.try_convert, Hash.try_convert and
Array.[] methods.
* [Android] Added Hash#flatten method.
* [Android] Added String#{each_byte, bytes, bytesize} methods.
* [Android] Added Bignum#{coerce, div, size, remainder, fdiv, quo, magnitude}
methods.
* [Android] Added Enumerable#{sort, sort_by, zip} methods.
* [Android] Added Time#{sec, min, hour, day, mday, mon, month, year, wday,
ctime, asctime} methods.
* [Android] Added GC.start method.
* [Android] Added Kernel#set_vm_debug_logs(boolean) to enable or disable debug
logs programmatically.
* [Android] Added including Comparable module into String and Time class.
= RubyMotion 4.11 =
* The toolchain has been upgraded to LLVM 3.7 for all platforms.
* [Android] Updated Android NDK to android-ndk-r11 version. Please update
the Android NDK toolchain by using `motion android-setup' command.
* [Android] Fixed a bug where Java interfaces that extend an interface
(ex. `android.text.TextWatcher') would not be available in Ruby.
* [iOS] RubyMotion Starter now targets iOS 9.3.
* [iOS, watchOS] Fixed an issue where codesigning causes error with
"cannot read entitlement data" with WatchOS app, Extensions and Frameworks
after updated rake to 11.0.1+.
Thanks to Taylor for the patch (pull request #241).
= RubyMotion 4.10 =
* [Android] RubyMotion Starter now targets API 23.
* [Android] Added ScriptError, SyntaxError and StopIteration.
* [Android] Added Fixnum#{**, div, fdiv, truncate, coerce, magnitude} methods.
* [Android] Added Float#{**, coerce, div, fdiv, quo, nan?, infinite?, finite?}
methods.
* [Android] Added Float::{ROUNDS, RADIX, MANT_DIG, DIG, MIN_EXP, MAX_EXP,
MIN_10_EXP, MAX_10_EXP, MIN, MAX, EPSILON, INFINITY, NAN} constants.
* [Android] Added Bignum#** method.
* [Android] Added Regexp.{new, compile, quote, escape, last_match} methods.
* [Android] Added Regexp::{IGNORECASE, EXTENDED, MULTILINE} constants.
* [Android] Added MatchData#{eql?, ==} methods.
* [Android] Added Range#{first, last, cover?} methods.
* [Android] Added Enumerable#{take_while, drop_while} methods.
* [Android] Added Object#{object_id, __id__} methods.
* [Android] Added Kernel.#loop method.
* [Android] Fixed an issue in `motion android-setup' which it wouldn't accept
relative directory path in `--directory' option.
* [Android] Fixed an issue where Module#{const_set, class_variable_get,
class_variable_set, class_variable_defined?, instance_variable_get,
instance_variable_set, instance_variable_defined?, attr, attr_reader,
attr_writer, attr_accessor} would accept invalid names.
* [Android] Fixed various issues in String#{index, rindex, split, []=, chomp,
to_i, rjust, each_line, scan, sub, gsub, +} to conform to the Ruby
specifications.
* [Android] Fixed various issues in Array#{[]=, flatten} to conform to the
Ruby specifications.
* [Android] Fixed various issues in Hash#{[], []=, merge, store, has_value?,
replace} to conform to the Ruby specifications.
* [Android] Fixed various issues in Regexp#{match, =~} to conform to the Ruby
specifications.
* [Android] Fixed various issues in MatchData#{[], regexp, length} to conform
to the Ruby specifications.
* [Android] Fixed a bug when dispatching a polymorphic method given an
Array argument, when the version that expects a Java array would be called
instead of the version that expects a java.util.List.
* [Android] Fixed a bug when re-opening a class that was previously defined
where the build system would generate an incorrect Java class.
* [Android] Fixed an issue that could cause compilation error when invoking
`aapt' and using newer versions of support packages with an older Android
api version.
* [iOS, OSX, tvOS] Fixed issue where the REPL would not auto insert the
suggested autocompletion result.
* [iOS] Added better support for Xcode 7.3 beta in order to get rid of
warning messaged when compiling apps for the device.
* Fixed a bug where objects would not be converted with #to_ary when yield.
* Fixed various issues in Proc#call to conform to the Ruby specifications.
= RubyMotion 4.9 =
* [Android] Added Comparable module.
* [Android] Added Array#{-, &, |, <=>, to_ary, uniq, uniq!, cycle} methods.
* [Android] Added Kernel#{enum_for, to_enum} methods.
* [Android] Added Enumerator#{with_index, with_object, each_with_index,
each_with_object} methods.
* [Android] Added Enumerable#{cycle, reject, take, drop} methods.
* [Android] Added Module#{include?, class_variable_get, class_variable_set,
class_variable_defined?, module_eval, class_eval} methods.
* [Android] Added Object#define_singleton_method method.
* [Android] Fixed a bug where overriding a pure Ruby method would cause a
crash.
* [Android] Fixed a bug where a compile error would happen when trying to use
the back-reference syntax of a regular expression.
* [Android] Fixed a bug where an app couldn't launch on an arm64 device
(ie. Nexus 9).
* [Android] Fixed a bug where evaluating expression on REPL would trigger a
crash on an arm64 device.
* [Android] Fixed a bug in Time#strftime where local time wasn't used.
* [Android] Fixed a memory leak in Enumerator objects.
* [Android] Fixed a crash if `nil' would be passed into methods as index
arguments.
* [Android] Fixed a crash if `nil' would be passed into Java methods as
char/byte/short/long/float/double/array type argument.
* [Android] Fixed a bug where constants defined in modules that were mixed
in couldn't be looked up.
* [Android] Fixed Module#module_function to honor arguments.
* [iOS] Fixed an issue where iOS Simulator cannot be launched with Xcode 7.3
beta.
* [iOS] Fixed an issue where some UI tests using the `tap' method could fail
after a cold start-up of the iOS simulator.
* [iOS] Fixed a bug where MIDIClientCreate() would trigger a crash on 32-bit.
* [iOS, OSX, watchOS, tvOS] Fixed a bug where exceptions raised from a Ruby
file main scope would not be properly symbolicated.
* [iOS, OSX, watchOS, tvOS] Fixed a bug where it wouldn't catch Objective-C
exception which BigDecimal will raise.
* [iOS, OSX, watchOS, tvOS] Fixed a memory leak in Object#instance_eval.
* [iOS, OSX, watchOS, tvOS] Fixed a memory leak in Enumerable#zip.
= RubyMotion 4.8 =
* [iOS, tvOS, watchOS] Added support for iOS 9.3, watchOS 2.2 and tvOS 9.2
(beta). Latest Xcode is needed.
* [iOS, OSX, tvOS, watchOS] Fixed an issue where certain vector types like
'vector_float3' used in frameworks like SpriteKit, SceneKit and GameplayKit
could not be used.
* [iOS] Fixed a problem where ibtool would cause an error if extension and
container app have storyboard files.
* [watchOS] Fixed a bug where it would trigger a crash when it calls a method
which takes with a block (like Array#each{|item| .... }).
* [watchOS] Fixed a problem where it would fail to upload the app to iTunes
Store.
* [watchOS] Fixed a bug where it would return a broken value when the method
or function returns a small structure (like NSRange or CGRect).
* [android] Fixed a bug where armv5te binary would cause a crash for device.
= RubyMotion 4.7 =
* Fixed a regression in where RubyMotion compiler causes a crash with
`rake archive:distribution' if app has the unreachable local variables.
* Fixed a bug in safe navigation operator which could not work as expected
with block call.
* [Android] Added Hash.[] (ex. `Hash[1,2,3,4]').
* [Android] Fixed a bug where pure Java exceptions would not be catched in a
"begin;rescue" block.
* [watchOS] Fixed a bug where it could not deploy app into device.
* [watchOS] Improve watchOS simulator launcher to be able to check exception
message easily.
* [tvOS] Fixed a bug where it will cause a crash if it would call the method
which handle the CFType value.
* [tvOS] Fixed an issue where distribution builds would not contain correct
embedded bitcode.
* [iOS, tvOS] Fixed a problem where it would fail launching application with
"Simulator session started with error" message.
* [iOS, OSX, tvOS, watchOS] Fixed a regression in where Dispatch.once did not
work correctly with `rake archive:distribution'.
* [iOS, OSX, tvOS, watchOS] Improved performance where creating Objective-C
selectors internally. Ex, Object#{send, respond_to?} is now ~20% faster.
* [iOS, OSX, tvOS, watchOS] Added to support Range object as argument in
Kernel#rand and Random#rand for CRuby compatibility.
* [iOS, OSX, tvOS, watchOS] Improved performance in where creating Time
object by Time.{now, new}. ~30% faster.
* [iOS, OSX, tvOS, watchOS] Improved performance in where generating Symbol
object. Ex, String#to_sym is now ~10% faster.
* [iOS, OSX, tvOS, watchOS] Improved performance in #length and #size method
in Array/Hash/String. ~70% faster.
* [iOS, OSX, tvOS, watchOS] Improved creating Range literal performance.
~40% faster.
= RubyMotion 4.6 =
* The toolchain has been upgraded to LLVM 3.6 for all platforms.
* Introduced safe navigation operator `&.' as experimental.
* Fixed a bug where operator assignment (like `obj[idx] ||= expr') returns
wrong result.
* [iOS, OSX, tvOS, watchOS] Optimized recursive calling. 3 times faster.
* [Android] Optimized the app executable size when a project has too many
Ruby source files, by removing unnecessary internal code.
* [Android] Updated Android NDK to android-ndk-r10e version. Please update
the Android NDK toolchain by using `motion android-setup' command.
* [Android] Fixed a bug in `motion android-setup' which couldn't update the
NDK if `~/.rubymotion-android/ndk' existed.
* [Android] Fixed a regression when creating non-Java and Enumerator objects.
* [Android] Added the StandardError exception class.
* [Android] Added Exception#message.
* [Android] Fixed a bug where calling from Ruby code Ruby methods overriding
Java methods would use the Java implementation of said method instead of
the Ruby one.
* [Android] Fixed a bug where certain Exception subclasses could not be
properly instantiated and raised.
* [Android] Fixed a bug in Object#send where the current block would not be
propagated to the target method.
* [Android] Fixed a bug where redefining a Ruby method in a class would not
overwrite previous implementations of said method.
* [Android] Fixed a bug where Java classes inheriting from templates
(generics) would not be available in Ruby.
* [Android] Apps now use the Material Design theme by default if targeting
API 21 or newer.
* [watchOS] Added support to embed bitcode.
* [tvOS] Fixed a crash when an exception would be raised from the REPL.
* [iOS, OSX, tvOS, watchOS] Fixed a bug where BigDecimal#to_s would return
an unexpected string.
* [iOS, OSX, tvOS, watchOS] Added `:' and `::' modifier in Time#strftime().
* [iOS, OSX] Fixed a bug where it could not copy resource files properly from
the resources directory if it contained `resources' as the directory name,
like `resources-XXX'. Thanks to Hwee-Boon Yar for the patch (pull request
#233).
* [iOS] Fixed a bug where `rake spec:device' would not show the spec logs.
* [OSX] Fixed a bug that caused apps built in release mode to be unable to
rescue exceptions.
* [tvOS] Fixed a bug where 3rd-party libraries could not be built.
* [tvOS] Fixed a bug where some UIKit constants (ex.
`UILayoutPriorityDefaultHigh') could not be used from Ruby.
= RubyMotion 4.5 =
* [tvOS] Added device deployment support. Apple TV apps can now be deployed
on your Apple TV and also be submitted to the App Store.
* [iOS] Added support for iOS 9.2 (beta). Latest Xcode is needed. RubyMotion
Starter now targets iOS 9.1 (stable).
* [iOS] Fixed a bug where `XXXCreateXXX()' or `XXXCopyXXX()' APIs might
cause a crash with double free.
* [watchOS] Fixed a bug where device builds were not working.
* [iOS, OSX] Fixed a bug where the `foo?' shortcut could not be used for
`isFoo' if it accepted an argument.
* [iOS, OSX] Fixed an error when generating dSYM files when the executable
name contained a '%' character.
* [iOS, OSX] Fixed an error when generating .bridgesupport compiler files
when the process would abort when trying to increase the number of shell
files that can be opened.
* [Android] Added support for arm64-v8a / aarch64 (experimental).
* [Android] Added Array#zip.
* [Android] Added String#{ljust,rjust,center}.
* [Android] Added Fixnum methods to java.lang.{Short,Long} objects.
* [Android] Added Float methods to java.lang.Float objects.
* [Android] Fixed Array.new to behave like CRuby.
* [Android] Fixed a bug where the runtime would sometimes crash if a Java
exception was raised.
* [Android] Fixed a bug when the runtime would call the wrong Java method if
it had multiple implementations and if the one that should have been called
was accepting a Java string object.
= RubyMotion 4.4 =
* [iOS, OSX] Improved the startup time of the compiler by 70% when using a
deployment target much older than the SDK version, by only loading
BridgeSupport files for that SDK version.
* [iOS] Fixed a problem where watchOS 1.0 apps could not be installed on an
Apple Watch device.
* [iOS] Fixed a bug where line numbers were not properly symbolicated in
exceptions raised in an iOS 9 app.
* [iOS] Silenced a warning when starting the simulator with Xcode 7.
* [Android] Added Proc.new.
* [Android] Added Numeric#{pred,succ,next}.
* [Android] Added Module#define_method.
* [Android] Added Time#strftime.
* [Android] Set the last expression evaluated in the REPL as the `_'
local variable.
* [Android] Fixed a bug where sending `==' to nil could cause a VM crash.
* [Android] Fixed a bug in `String#to_i' when `-1' would be returned instead
of large numbers (Bignum).
* [Android] Fixed a bug where certain builtin selectors (ex. `#===' or `#~=')
would crash the REPL.
* [Android] Fixed a bug where calling a block that has variadic arguments
(ex. `lambda { |*a| ... }') could cause a runtime crash.
= RubyMotion 4.3 =
* Dropped support for OSX 10.8 as development environment. Please use OSX
10.9 or higher.
* [iOS, OSX] Solved an issue where certain constants in the enums
NSLayoutPriority* and UILayoutPriority* could not be used.
* [iOS, OSX] Solved a bug introduced in version 4.1 where an array would not
correctly return its contents when called from Objective-C in some cases.
This manifested in UIView#addConstraints not adding certain constraints.
* [iOS, OSX] Fixed a problem which it would raise an exception in generating
BridgeSupport file for 3rd-party library.
The exception is "Received exception: addFile: Couldn't lookup file: ...".
* [iOS] Fixed a bug where watchkit apps would have an incorrect identifier.
* [OSX] Using the OSX 10.11 SDK requires running on OSX 10.11. An error will
be printed if you try to use it in OSX 10.10 or lower.
* [Android] Fixed a crash that would happen when trying to access a local
variable that was created from the value of another local variable whose
value changed after.
= RubyMotion 4.2 =
* [iOS] Fixed a regression which cannot use UIInterfaceOrientationIsLandscape
in iOS 8.2 or below.
* [OSX] Make code signing to all embedded frameworks. Thanks to digitalMoksha
for the patch (pull request #232).
* [Android] Added support for API 23 final (and removed MNC version).
= RubyMotion 4.1 =
* [tvOS] Added initial support for Apple TV (simulator only). To create a new
tvOS app, run 'motion create mytvapp --template=tvos'. (Xcode 7.1 is
required).
* [iOS, OSX] Improved iOS 9 and OS X 10.11 support by fixing some wrong data
types in BridgeSupport.
* [iOS, OSX] Fixed a problem which would cause duplicated symbols error when
using Flurry sdk.
* [iOS, OSX] Improved performance when converting Ruby Array to NSArray
object. ~20% faster.
* [iOS, OSX] Improved performance in Array#{flatten, uniq, &}.
* [iOS] Fixed a problem where it cannot pass Array object as WeakRef into
NSArray.arrayWithArray argument with iOS 9.
* [iOS] Fixed a problem where it couldnt launch Instruments.app with Xcode 7
with `rake profile'.
* [iOS] Fixed a problem which it couldnt upload app which was built with
Xcode 7 to iTunes store.
* [Android] Fixed a bug where String object could not be used as argument for
Object#{instance_variable_get, instance_variable_set,
instance_variable_defined?} and Module#{attr, attr_accessor, attr_reader,
attr_writer}.
* [Android] Fixed a regression where assigning values to dynamic (block)
variables could lead to a runtime Java VM crash.
* [Android] Fixed a bug which String#gsub will trigger a crash when regular
expression would not be matched.
* [Android] Fixed a bug which Array#[start, length]= would trigger a crash
when it will erase many elements in receiver object.
* [Android] Added Module#const_set.
* [Android] Added Symbol#{id2name, intern, empty?, match, <=>, casecmp,
upcase, downcase, swapcase, capitalize, []}.
= RubyMotion 4.0 =
* Support for watchOS 2.0 (beta). Apple Watch apps can now use native APIs.
To create a new watchOS app run `motion create my_watch_app
--template=ios-watch-app'. Then configure your iOS application by adding:
`app.target 'path/to/MyWatchOS2App', :watchapp`
* Fixed a bug where `motion' command would cause an error with Ruby 1.8 which
is bundled in OS X 10.8.
* Improved `motion create' to automatically load templates from RubyMotion
gems. For this to happen, the gem has to provide a value for the
`rubymotion_template_dir' spec metadata key, which should be the name of
the directory (relative to the gem) where the templates are located.
* [iOS] Fixed a problem where codesigning would fail on a shared framework
when using `rake device' with Xcode 7.
* [iOS] Fixed a problem where a crash would happen when using a framework
added in iOS 9.
* [OSX] Fixed a problem where framework depencencies would not be properly
built when compiling an app for OS X 10.11.
* [iOS, OSX] Improved iOS 9 and OS X 10.11 support for APIs with a updated
version of the BridgeSupport files generator.
* [iOS, OSX] Fixed a bug which `begin/rescue' syntax would trigger a crash
in distributed app.
* [Android] Fixes an issue when subclassing a nested Java class.
* [Android] Fixed a regression which would trigger a crash when calling
certain methods with a block.
= RubyMotion 3.14 =
* [iOS] Improved iOS 9 ARM64 support.
* [iOS] Fixed a problem where apps could not compile/link for iOS 9.
* [iOS] Fixed a problem where `rake debug=1' could not launch the debugger
with Xcode 7.
* [iOS, OSX] Fixed a bug where it would cause `Permission denied' error if
resource files have read-only permission only when they will be copied into
app bundle.
* [Android] Added support for `def' expressions in the REPL.
* [Android] Fixed build when `--trace' is passed to Rake.
* [Android] Fixed a bug where passing blocks to methods in a loop could
overflow the Android VM with too many global references.
= RubyMotion 3.13 =
* [iOS, OSX] Added support for iOS 9 and OS X 10.11 (experimental). To
target these, you will need Xcode 7 (beta). NOTE: If you can't launch your
app on a device running iOS 9, manually trust your certificate by going to
Settings > General > Profiles and selecting your certificate. Also, arm64
is not supported with Xcode 7 at this point, so you will have to remove it
from app.archs['iPhoneOS'] when doing device builds.
* [iOS, OSX] Fixed a bug where certain C structures could not be passed to a
Ruby block from Objective-C code.
* [iOS, OSX] Fixed a bug where broken value would be received when a
Objective-C method returns a small structure on i386 architecture.
* [iOS] Updated Watchkit templates. If your watch app crashes on launch, try
replacing the "initWithContext" methods with "awakeWithContext".
* [Android] Improved compilation time by introduced parallel compiling for
Java files and faster compiling (like iOS/OS X).
* [Android] Fixed a bug where Time#- would not return value with millisecond
precision.
* [Android] Added Time#to_f.
= RubyMotion 3.12 =
* [Android] Added support for Android M (experimental). To target it, set
`app.api_version' to `MNC'.
* [Android] Improved Object#raise to accept an exception class or instance.
* [Android, iOS, OSX] Introduced a new experimental file dependency resolver.
If you have any file dependency manually specified in the Rakefile, the new
resolver should make those unnecessary. To try it, set the environmental
variable "experimental_dependency" (e.g. 'rake experimental_dependency=1').
The new resolver will become the default in a future release.
* [iOS] Fixed "duplicate symbol" error when it would build app for iOS device
using Xcode 6.2.
* [iOS] Fixed a bug where the latest version of the Facebook iOS SDK would
not compile correctly.
* [iOS, OSX] Improved compilation time for projects that have many source
files. 2~ times faster.
= RubyMotion 3.11 =
* [iOS] Fixed a bug which UIInterfaceOrientation would cause link error when
specify iOS 8.2 or below as deployment target.
* [iOS, OSX] Improved floating precision for 64-bit environment.
* [iOS] Fixed a regression where the exception could not be handled on i386
iOS simulator.
* [iOS] Fixed a bug where watch apps could be rejected with iTunes Connect.
Thanks to digitalfx for the patch (pull request #213 and #214).
* [iOS] Fixed a bug where watch apps could not installed to iPad devices.
Thanks to digitalfx for the patch (pull request #215).
* [iOS] Fixed a bug where watch apps were not able to localize.
* [iOS, OSX] Fixed a bug where some GLKit structures could not be created.
* [iOS] Fixed a bug where some GLKit structures could not be created.
* [iOS] Added support for enterprise certificate profiles. Thanks James
Daniels for the patch. (pull request #64)
* [iOS, OSX] Fixed a crash when generating ctags.
* [iOS, OSX] Fixed a bug where it could not pass a pointer of structure into
into Ruby Block from Objective-C.
* [OSX] Fixed a bug where GLKit inline functions could not be used on OS X.
* [Android] Added Kernel#{block_given?,iterator?}.
* [Android] Added Integer#upto.
* [Android] Ruby arrays are now converted to the correct primitive Java array
type when passed as an argument to a Java method in Android 5.0.
* [Android] Fixed a bug where refering to the current exception in a rescue
block would trigger a crash at runtime.
* [Android] Fixed a bug in the REPL where Java package paths could not be
properly evaluated.
* [Android] Fixed a bug where Java classes could not be re-opened.
* [Android] Fixed a bug where classes defined inside modules would not be
exposed to Java. Caveat: the module must be provided when declaring the
class (ex. `class MyModule::MyActivity < Android::App::Activity').
* [Android] Fixed a bug where the compiler would emit Java method definitions
for methods defined in classes not present in the current class' super
class chain.
* [Android] Fixed a bug where app.vendor_project with `:native' pointing to
an array of paths for different architecture libraries would not work.
= RubyMotion 3.10 =
* [Android] Fixed typo in android.rb template which breaks incremental builds.
Thanks to Darin Wilson for the patch (pull request #210).
* [Android] Fixed `rake {emulator,device} debug=1' for multi-arch projects.
* [Android] Added Module#const_get.
* [Android] Fixed a bug where calling a Java method that returned a large
non-Object Java array would crash the runtime by creating a JVM stack
overflow.
* [Android] Fixed a bug when calling the super version of a Java method,
where it would fail if the current stack trace included a super Java call
of the same method name but of a different class.
* [Android] Fixed a bug where #initialize methods would not be honored when
defined in superclasses.
* [Android] Fixed a bug where an assertion would happen when trying to
resolve a Java class at runtime.
* [Android] Fixed a bug where a crash would happen when changing the value
of a local variable that previously contained a reference to a constant
literal (ex. symbol).
* [iOS] Added support for iOS 8.4 (beta).
* [iOS] Fixed a wrong in Watch app templete which notification handler should
invoke `call' method for Proc handler object. Thanks to Dave Shapiro for
the patch (pull request #207).
* [iOS] Fixed a bug which it would be trigger a crash when large structures
(like CMTime) will be passed into Objective-C methods/funtions on ARM64.
* [iOS] Fixed a bug which it would be trigger a crash when it will call
NSDecimalNumber#decimalValue method on ARM64.
* [iOS] Fixed a bug which UIInterfaceOrientation would cause link error when
specify iOS 8.2 or below as deployment target.
* [iOS, OSX] Fixed a bug where small structures with only float members could
not be passed/returned in a 64-bit environment.
= RubyMotion 3.9 =
* [Android] Projects now support multiple architectures. The `app.arch'
variable is replaced by `app.archs' which takes an array of architectures.
By default, we still build for arm 32-bit only.
* [Android] Added x86 (Intel 32-bit) support. This is mainly used to run
apps in faster emulators (such as Genymotion). To build for x86, simply
edit your project's Rakefile to add the architecture (app.archs << 'x86').
* [Android] Added the `app.optional_features' to let users specify optional
features in the manifest file.
* [Android] Make sure all Ruby file paths are flattened into single Array.
Thanks to Darin Wilson for the patch (pull request #189).
* [iOS, OSX] The Ruby runtimes have been rebuilt with Xcode 6.3 final.
* [iOS] Fixed ARM64 issues introduced since Xcode 6.3 final.
* [iOS] Fixed a bug where the REPL would crash when using an old simulator.
* [iOS] Fixed a bug where the value of `app.version' and `app.short_version'
between the container and watch apps were not synchronized when submitting
to iTunes Connect. Thanks to digitalfx for the patch (pull request #205).
* [iOS] Fixed a bug where watch apps could not be submitted to iTunes Connect.
* [iOS] Fixed a bug where satch apps would not follow the deployment target
of the host app.
* [iOS] Fixed a bug where `rake watch' would not launch the watch app when
using Xcode 6.3 stable.
* [iOS] Fixed a bug where dSYM files were embeded even if the app was built
with release mode if app has extensions.
* [OSX] Fixed a bug where app would crash when running tests if the UIDevice
class is defined.
* [iOS, OSX] Fixed a bug where small structures with only float members could
not be passed/returned in a 64-bit environment.
= RubyMotion 3.8 =
* The toolchain has been upgrated to LLVM 3.5.
* [Android] Added the `motion android-setup' command which downloads and
installs the Android SDK and NDK automatically. Run the
`motion android-setup --help' command for more information.
* [Android] Added 'app.support_libraries' option in the Rakefile, which is an
array containing the names of Android support libraries to be included in
your app E.g.:
app.support_libraries << 'google-play-services'
app.support_libraries << 'android-support-v4'
* [Android] Added support for API level 22. Removed support for very old
versions of Android that are no longer supported in the SDK.
* [Android] Added support to generate Ctags file via the `rake ctags' task.
* [Android] Fixed a bug where classes.dex would not be re-generated when a
resource file was changed. Thanks Eito Katagiri for the patch.
* [Android] Fixed a bug where running specs would crash.
* [iOS] Fix a bug where a build error would happen when building a project
for ARM 64-bit using Xcode 6.3 Beta.
* [iOS, OSX] Fixed the build system to not recompile `.strings' files on
every build.
* [iOS, OSX] Fixed a bug where `rake profile' could not launch Instruments.app
when it will specify Instruments template with Xcode 6.2.
* [iOS] Fixed a bug where `rake background_fetch=true' would not work with
with Xcode 6.2.
* [iOS, OSX] Fixed the build system to print a warning if a framework included
in the Rakefile does not have a corresponding .bridgesupport file (e.g. it
has been mispelled).
* [iOS, OSX] Fixed the build system to not delete '.storyboardc' files if the
corresponding '.storyboard' file does not exist.
* [iOS, OSX] Fixed a rare case where gdb would be used instead of LLDB when
running in debug mode.
= RubyMotion 3.7 =
* Fixed a bug where the `motion' command would not work as expected if Ruby
was installed with rbenv/RVM.
* [iOS] Fix a bug where the build system would not detect the properties of
the running simulator if it existed with a different version of iOS.
* [iOS] Fixed a bug where a WatchKit app would not launch on the simulator
if it was built with x86_64 (64-bit Intel) only.
* [iOS, OSX] Improved the symbolication of exception backtraces. Backtraces
are now properly symbolicated when running on the device. This is done by
parsing the dSYM bundle at runtime. For this to work, in development mode,
the dSYM will be embedded within the application bundle. (This is disabled
in release mode). You can control this setting with the `app.embed_dsym'
variable in the project's Rakefile.
* [iOS, OSX] Improved performance when creating empty Hash objects.
~2 times faster.
* [iOS, OSX] Improved performance when creating very small Array objects.
~30% faster.
* [iOS, OSX] Bridgesupport files for vendor projects are now generated in the
common build directory (~/Library/Rubymotion/build). This fixes a problem
when vendoring the Reveal framework.
* [iOS, OSX] Added a feature to disable capturing view (command key + moving
mouse over) in iOS simulator or OS X app. To enable/disable capturing view,
run `enable_capture' or `disable_capture' commands in REPL. If you want to
disable capturing before the application is launched, you can set the
DISABLE_CAPTURE environment variable when you will run the `rake' command.
(ex. `$ rake DISABLE_CAPTURE=1').
* [Android] The runtime is now using the GNU C++ stdlib for better internal
support and also upcoming new features.
* [Android] Improved compilation time, compiling multiple files in parallel.
* [Android] Support for defining manual file dependencies via
'app.files_dependencies'.
* [Android] Added Module#module_function.
* [Android] Added Symbol#to_sym.
* [Android] Added Time#usec.
* [Android] Object#send now accepts strings.
* [Android] Improved Kernel#rand to accept ranges (of fixnums and floats).
* [Android] Fixed a bug where undefined local variables or methods returned
false instead of raising an exception.
* [Android] Fixed a bug where Java getter/setter shortcuts would sometimes
not work.
* [Android] Fixed a bug where a crash would happen when running a spec with
a lot of test cases.
* [Android] Fixed memory leaks when symbolicating an exception backtrace.
= RubyMotion 3.6 =
* [iOS] Added support for iOS 8.3. Xcode 6.3 beta is required.
* [iOS, OSX] Fixed a bug where the build would fail when using Xcode 5.
* [iOS] Fixed a bug where WatchKit applications could not be launched with
Xcode 6.2 beta 5.
* [iOS] Fixed a bug where device log wouldn't be displayed with `rake device'
if `CFBundleName' property was changed.
* [Android] Improved the build time of projects, by not compiling the
internal bitcode of Ruby files that have not changed.
* [Android] Added Math module.
* [Android] Added Time#{+, -}.
* [Android] Added Hash#{default, default=, default_proc, default_proc=}.
* [Android] Added String#{[]=, slice!, chop, chop!, chomp, chomp!, sub, sub!,
gsub, gsub!, split}.
* [Android] Improved Float#to_s, String#[], Array#{[]=, values_at} for CRuby
compatibility.
* [Android] Improved Hash#{shift, replace} for CRuby compatibility.
* [Android] Fixed a build error in a Bundler environment.
* [Android] Fixed a bug where Array#[] would crash when returning a large
array.
* [Android] Fixed a bug where Array#delete would crash when removing a lot of
elements.
* [Android] Fixed a bug where Array#[start, length]= would crash when
providing a large start position.
* [Android] Fixed a bug where Array#pop(number) would crash when specifying
a large number.
* [Android] Fixed a bug where Array#flatten would crash when used on a large
array.
* [Android] Fixed a bug where String#scan would crash if many elements would
be matched.
* [Android] Fixed a bug where String#scan returned the wrong value if the
Regexp group would be passed as argument.
* [Android] Fixed a bug where attempting to retrieve a Java field on an
inner Java class would always return null/zero on Android 21 / ART,
apparently due to a JNI regression (we added a workaround).
= RubyMotion 3.5 =
* [iOS, OSX] Fixed a regression introduced by the previous release where the
REPL would not work.
= RubyMotion 3.4 =
* [iOS] Fixed a bug where iOS 8 extensions and their host app could not have
different deployment_target values.
* [iOS] Fixed a bug where an incorrect architecture would be chosen when
debugging on a device. Now defaults to the device architecture.
* [iOS, OSX] Fixed a bug where small structure types couldn't be returned
from Objective-C methods in 64-bit.
* [Android] Added Bundler support to the project template.
* [Android] Added the `app.theme' Rakefile variable to set up the theme of
the app. The default value is `Theme.Holo'.
* [Android] Added Array#{flatten, flatten!, slice, slice!}.
* [Android] Added Enumerable#{reverse_each, each_with_object, each_entry,
each_slice, each_cons, collect, map, count, find, detect, grep, find_index,
flat_map, collect_concat, partition, group_by, first, all?, any?, one?,
none?, min, max, minmax, min_by, max_by, minmax_by, member?, include?}.
* [Android] Improved Array#[] for CRuby compatibility.
* [Android] Disabled internal/debug VM logs since they impact launch time and
general performance. If you want to set them back on (for debugging), the
`app.vm_debug_logs' variable can be set to `true'.
* [Android] Fixed a bug where Fixnum#* would cause a runtime crash if the
receiver was zero.
* [Android] Fixed a bug where an `ensure' statement would cause the project
to fail to build, due to a linking error.
* [Android] Fixed a bug in the Java method dispatcher where it would fail
to call methods returning arrays of non-object types (ex. the `getBytes'
method of java.lang.String).
* [Android] Fixed a bug where trying to set/assign a value to a Java object
field would cause a NoMethodError.
* [Android] Fixed Enumerable#{each_with_index, select} to return an Enumerator
when if no block is given.
* [Android] Fixed a bug where Enumerable methods would be taken in priority
over Hash methods (ex. `select'), due to the fact that the module was
included in the wrong class.
* [Android] Fixed a bug where the use of the `break' keyword inside a block
would cause a compilation crash.
* [Android] Fixed a bug in the spec framework where the `main_activity'
helper method would only work as expected in the first spec file, and
return nil in other spec files.
= 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 =