-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog-2.1.0
18060 lines (11477 loc) · 604 KB
/
ChangeLog-2.1.0
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
Fri Dec 20 17:52:50 2013 Koichi Sasada <[email protected]>
* vm_method.c: check definition of
GLOBAL_METHOD_CACHE_SIZE and GLOBAL_METHOD_CACHE_MASK.
Fri Dec 20 17:03:10 2013 Koichi Sasada <[email protected]>
* include/ruby/ruby.h: rename OBJ_WRITE and OBJ_WRITTEN into
RB_OBJ_WRITE and RB_OBJ_WRITTEN.
* array.c, class.c, compile.c, hash.c, internal.h, iseq.c,
proc.c, process.c, re.c, string.c, variable.c, vm.c,
vm_eval.c, vm_insnhelper.c, vm_insnhelper.h,
vm_method.c: catch up this change.
Fri Dec 20 16:01:35 2013 Koichi Sasada <[email protected]>
* include/ruby/ruby.h: add a comment for WB interfaces.
Fri Dec 20 16:00:52 2013 Nobuyoshi Nakada <[email protected]>
* configure.in: DLDFLAGS is defined in --with-opt-dir handler, so
${DLDFLAGS=} does not work now. use RUBY_APPEND_OPTIONS instead.
[ruby-dev:47855] [Bug #9256]
Fri Dec 20 14:19:12 2013 NARUSE, Yui <[email protected]>
* configure.in (AC_ARG_WITH): use withval directly.
fix failure on FreeBSD.
http://fb32.rubyci.org/~chkbuild/ruby-trunk/log/20131217T070301Z.diff.html.gz
Fri Dec 20 14:00:01 2013 Aman Gupta <[email protected]>
* include/ruby/ruby.h (struct RClass): add super, remove iv_index_tbl.
since RCLASS_SUPER() is commonly used inside while loops, we move it
back inside struct RClass to improve cache hits. this provides a
small improvement (1%) in hotspots like rb_obj_is_kind_of()
* internal.h (struct rb_classext_struct): remove super, add
iv_index_table
* internal.h (RCLASS_SUPER): update for new location
* internal.h (RCLASS_SET_SUPER): ditto
* internal.h (RCLASS_IV_INDEX_TBL): ditto
* object.c (rb_class_get_superclass): ditto
* include/ruby/backward/classext.h (RCLASS_SUPER): ditto
Fri Dec 20 07:07:35 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master 03d6ae7. Changes include:
* Fixed typos.
* Relaxed Gem.ruby test for ruby packagers that do not use `ruby`.
* test/rubygems: ditto.
Thu Dec 19 14:03:04 2013 Koichi Sasada <[email protected]>
* gc.c (heap_get_freeobj): improve hot path performance.
* gc.c (heap_get_freeobj_from_next_freepage): replace with
heap_get_freepage(). It returns freeobj instead of freepage.
This is not on hot path.
Thu Dec 19 12:05:17 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master af60443. Changes include:
* Improved speed of `gem install --ignore-dependencies`.
* Open read-write for exclusive flock. [ruby-trunk - Bug #9257]
* Remove specification before install to prevent infinite loop.
Thu Dec 19 11:23:49 2013 Aman Gupta <[email protected]>
* vm_insnhelper.c (vm_call_iseq_setup_normal): simple for loop
condition optimization. this area shows up as a hotspot in VM
profiles.
Thu Dec 19 10:50:13 2013 Koichi Sasada <[email protected]>
* gc.c (newobj_of): don't need to RBASIC_SET_CLASS() which includes WB
here because created obj is always YOUNG/INFANT.
Thu Dec 19 10:48:37 2013 Koichi Sasada <[email protected]>
* benchmark/gc/gcbench.rb: check GC::OPTS availability
for not MRI 2.1.0.
Thu Dec 19 03:10:30 2013 Aman Gupta <[email protected]>
* gc.c (heap_get_freeobj): remove redundant assignment. heap->freelist
is set after the while() loop already.
Thu Dec 19 01:54:30 2013 Koichi Sasada <[email protected]>
* test/runner.rb: fix commit miss on r44278.
Thu Dec 19 00:26:11 2013 Koichi Sasada <[email protected]>
* gc.c (garbage_collect_body): lazy_sweep setting should work
without USE_RGENGC.
Wed Dec 18 23:31:04 2013 Koichi Sasada <[email protected]>
* gc.c (gc_profile_dump_major_reason): fix this function because major_reason
can be OR of multiple reasons.
* gc.c (gc_profile_dump_on): ditto.
Wed Dec 18 17:03:00 2013 Koichi Sasada <[email protected]>
* gc.c (gc_profile_record_get): should return an empty array
when profiling is active.
Wed Dec 18 16:49:40 2013 Koichi Sasada <[email protected]>
* gc.c (gc_profile_clear, gc_profile_enable): remove rest_sweep().
* gc.c: check objspace->profile.current_record before inserting
profiling record by new macro gc_prof_enabled().
Wed Dec 18 14:32:06 2013 Koichi Sasada <[email protected]>
* vm_exec.h (VM_DEBUG_STACKOVERFLOW): added.
disable stack overflow check for every stack pushing as default.
* vm_exec.c (vm_stack_overflow_for_insn): ditto.
Wed Dec 18 10:00:22 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master d8f12e2. This increases the
speed of `gem install --ignore-dependencies` which helps bundler
tests.
* test/rubygems: ditto.
Wed Dec 18 09:00:17 2013 Koichi Sasada <[email protected]>
* test/ruby/test_gc.rb (test_expand_heap): allow +/-1 diff.
Tue Dec 17 23:44:15 2013 Kazuki Tsujimoto <[email protected]>
* test/ruby/test_io.rb: fix duplicated test name.
Tue Dec 17 20:15:00 2013 Nobuyoshi Nakada <[email protected]>
* hash.c (rb_hash_reject): revert to deprecated behavior, with
warnings, due to compatibility for HashWithDifferentAccess.
[ruby-core:59154] [Bug #9223]
Tue Dec 17 17:30:56 2013 Akinori MUSHA <[email protected]>
* misc/ruby-electric.el: Import version 2.1.1 from
https://github.com/knu/ruby-electric.el.
* ruby-electric-delete-backward-char: Enable support for number
prefix.
* ruby-electric-curlies: Fix electric operation after an open
curly.
Tue Dec 17 16:19:09 2013 Nobuyoshi Nakada <[email protected]>
* vm_trace.c (rb_postponed_job_flush): isolate exceptions in
postponed jobs and restore outer ones. based on a patch by
tarui. [ruby-core:58652] [Bug #9168]
Tue Dec 17 10:48:04 2013 Aman Gupta <[email protected]>
* configure.in (RUBY_DTRACE_POSTPROCESS): Fix compatibility with
systemtap on linux. stap requires `dtrace -G` post-processing, but
the dtrace compatibility wrapper is very strict about probes.d
syntax.
Tue Dec 17 05:18:17 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master 1c5f4b3. Allows rubygems
repackagers to disable backward-compatible shared gem directory
behavior.
* test/rubygems: ditto.
Tue Dec 17 05:14:35 2013 Eric Hodel <[email protected]>
* NEWS (RDoc): Update version number so I don't have to change it
for the final release.
Mon Dec 16 19:19:19 2013 Koichi Sasada <[email protected]>
* gc.c (rb_objspace_markable_object_p): should check special_const_p
first (by is_markable_object()).
Mon Dec 16 19:12:54 2013 Koichi Sasada <[email protected]>
* ext/objspace/objspace.c (reachable_object_from_root_i): use
compare_by_identity hash to avoid hash modify problem
during iteration.
[Bug #9252]
* ext/objspace/objspace.c (reachable_objects_from_root): ditto.
Mon Dec 16 18:16:28 2013 Koichi Sasada <[email protected]>
* gc.c (gc_verify_internal_consistency): should not use
rb_objspace_each_objects() because it call rest_sweep().
Mon Dec 16 18:07:30 2013 Koichi Sasada <[email protected]>
* gc.c (rb_objspace_markable_object_p): fix last commit (build error).
Mon Dec 16 18:04:28 2013 Koichi Sasada <[email protected]>
* gc.c (rb_objspace_markable_object_p): it should be live objects.
Mon Dec 16 18:00:51 2013 Koichi Sasada <[email protected]>
* gc.c (rb_objspace_each_objects): should not clear dont_lazy_sweep
flag in nested case.
Mon Dec 16 16:40:35 2013 Koichi Sasada <[email protected]>
* vm_method.c (rb_method_entry_make): fix WB miss.
Note that rb_method_entry_t::klass is not constified.
We may constify this field.
* test/ruby/test_alias.rb: add a test.
Mon Dec 16 14:14:22 2013 Koichi Sasada <[email protected]>
* gc.c: use gc_verify_internal_consistency() instead of
gc_check_before_marks_i() for check consistency
on RGENGC_CHECK_MODE >= 2.
Mon Dec 16 14:01:48 2013 NARUSE, Yui <[email protected]>
* process.c (make_clock_result): add :second as a unit for
Process.clock_gettime.
Mon Dec 16 13:10:54 2013 Koichi Sasada <[email protected]>
* gc.c: introduce GC.verify_internal_consistency method to verify GC
internal data structure.
Now this method only checks generation (old/young) consistency.
Mon Dec 16 11:49:26 2013 Aman Gupta <[email protected]>
* gc.c (gc_info_decode): Fix build errors when compiled with
RGENGC_ESTIMATE_OLDMALLOC=0
* gc.c (objspace_malloc_increase): ditto
Sun Dec 15 13:38:29 2013 Koichi Sasada <[email protected]>
* ext/objspace/objspace.c (reachable_object_from_root_i):
reachable objects should not include categories and
category_objects because it is noisy information.
In fact, objects created after calling
ObjectSpace.reachable_objects_from_root should not be included
as a returning hash objects. Currently, mswin64 platform has a
problem because of this behavior. Should we trace new objects?
Sun Dec 15 07:09:28 2013 Eric Hodel <[email protected]>
* lib/rdoc: Update to RDoc master 263a9e5. This improves the
accessibility of the search box.
Sat Dec 14 17:39:00 2013 Nobuyoshi Nakada <[email protected]>
* vm_insnhelper.c (vm_callee_setup_arg_complex): count post
arguments as mandatory arguments. [ruby-core:57706] [Bug #8993]
* vm_insnhelper.c (vm_yield_setup_block_args): ditto.
Sat Dec 14 16:26:46 2013 Nobuyoshi Nakada <[email protected]>
* configure.in (rubylibprefix): replace exec_prefix as well as
bindir and libdir. a patch by kimuraw (Wataru Kimura) at
[ruby-dev:47852]. [Bug #9160]
Sat Dec 14 14:42:53 2013 Nobuyoshi Nakada <[email protected]>
* lib/logger.rb (lock_shift_log): no need to rotate the log file
if it has been rotated by another process. based on the patch
by no6v (Nobuhiro IMAI) in [ruby-core:58620]. [Bug #9133]
Sat Dec 14 13:01:45 2013 Nobuyoshi Nakada <[email protected]>
* proc.c (mnew_from_me): method by respond_to_missing? should be
owned by the original class.
Sat Dec 14 11:55:31 2013 Nobuyoshi Nakada <[email protected]>
* lib/scanf.rb (IO#scanf): fix mistaken use of rescue modifier.
a patch by Mon_Ouie at [ruby-core:52813]. [Bug #7940]
Sat Dec 14 11:44:52 2013 Nobuyoshi Nakada <[email protected]>
* util.c (ruby_qsort): fix potential stack overflow on a large
machine. based on the patch by Conrad Irwin <conrad.irwin AT
gmail.com> at [ruby-core:51816]. [Bug #7772]
Sat Dec 14 11:25:56 2013 Nobuyoshi Nakada <[email protected]>
* object.c (rb_mod_const_defined): support nested class path as
well as const_get. [Feature #7414]
Sat Dec 14 01:31:52 2013 Nobuyoshi Nakada <[email protected]>
* eval.c (rb_rescue2): reuse tags pushed for body proc to protect
rescue proc too.
Sat Dec 14 01:15:51 2013 Masaya Tarui <[email protected]>
* gc.c (wmap_final_func): Bugfix. Should update *value to new pointer.
Sat Dec 14 01:05:46 2013 Tanaka Akira <[email protected]>
* ext/socket/lib/socket.rb: Don't test $! in "ensure" clause because
it may be set before the body.
Reported by ko1 and mrkn. [ruby-core:59088] [Bug #9247]
* lib/cgi/core.rb: Ditto.
* lib/drb/ssl.rb: Ditto.
Sat Dec 14 00:34:31 2013 Naohisa Goto <[email protected]>
* internal.h (ruby_sized_xrealloc2): fix typo introduced in r44117,
which cause compile error on Solaris.
Sat Dec 14 00:22:16 2013 Nobuyoshi Nakada <[email protected]>
* thread.c: (exec_recursive): use rb_catch_protect() instead of
rb_catch_obj() and PUSH_TAG(), and reduce pushing tags and
machine stack usage.
Sat Dec 14 00:18:08 2013 Nobuyoshi Nakada <[email protected]>
* proc.c (mnew_from_me): achieve the original defined_class from
prepended iclass, to fix inherited owner.
* proc.c (method_owner): return the defined class, but not the
class which the method object is created from.
Fri Dec 13 22:29:21 2013 Nobuyoshi Nakada <[email protected]>
* proc.c (method_owner): return the class where alias is defined, not
the class original method is defined.
* vm_method.c (rb_method_entry_make, rb_alias): store the originally
defined class in me. [Bug #7993] [Bug #7842] [Bug #9236]
* vm_method.c (rb_method_entry_get_without_cache): cache included
module but not iclass.
Fri Dec 13 16:27:17 2013 Aman Gupta <[email protected]>
* gc.c (gc_info_decode): Use :major_by=>:nofree as fallback reason
when other trigger conditions are present.
Fri Dec 13 13:25:30 2013 Koichi Sasada <[email protected]>
* error.c: add Exception#backtrace_locations.
Now, there are no setter and independent from Exception#backtrace.
[Feature #8960]
* eval.c (setup_exception): set backtrace locations for `bt_location'
special attribute.
* vm_backtrace.c (rb_backtrace_to_location_ary): added.
* internal.h: ditto.
* test/ruby/test_backtrace.rb: add a test for
Exception#backtrace_locations.
Fri Dec 13 12:01:07 2013 Koichi Sasada <[email protected]>
* gc.c (garbage_collect_body): use rb_bug() and explicit error message
instead of using assert().
[Bug #9222]
Fri Dec 13 11:52:41 2013 Koichi Sasada <[email protected]>
* array.c: fix comment to remove the word "shady".
* variable.c: ditto.
Fri Dec 13 11:33:55 2013 Koichi Sasada <[email protected]>
* gc.c: rename *shady* func/macros.
* RVALUE_RAW_SHADY() -> RVALUE_WB_PROTECTED_RAW()
* RVALUE_SHADY() -> RVALUE_RAW_SHADY()
* rgengc_check_shady() -> rgengc_check_relation().
And fix some messages using "shady" to "non-WB-protected".
Fri Dec 13 10:04:23 2013 Eric Hodel <[email protected]>
* lib/rubygems/request_set/lockfile.rb: Import RubyGems master a8d0669
with a 1.8.7 compatibility fix.
* test/rubygems/test_gem_request_set_lockfile.rb: ditto.
Fri Dec 13 09:50:49 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master ddac51f. Changes:
* Allow override for the shared gem installation directory for
rubygems packagers.
* Lock gem cache files for read and write to improve thread safety.
* Use io/console when available.
* Minor cleanup.
* test/rubygems: ditto.
Fri Dec 13 08:15:31 2013 Aman Gupta <[email protected]>
* class.c (include_modules_at): use RCLASS_M_TBL_WRAPPER for
equality checks. this avoids an unnecessary deference inside a tight
loop, fixing a performance regression from r43973.
* object.c (rb_obj_is_kind_of): ditto.
* object.c (rb_class_inherited_p): ditto.
Wed Dec 13 02:00:00 2013 Kenta Murata <[email protected]>
* ext/bigdecimal/bigdecimal.c (VpSetPTR): fix for limitation of the resulting
precision.
[ruby-core:50269] [Bug #7458]
* test/bigdecimal/test_bigdecimal.rb (test_limit): add tests for the above
change.
Wed Dec 13 01:56:00 2013 Kenta Murata <[email protected]>
* ext/bigdecimal/bigdecimal.c (VpAddAbs): put out a conditional branch from
the inside of while-loop.
* ext/bigdecimal/bigdecimal.c (VpSubAbs): ditto.
Wed Dec 13 01:53:00 2013 Kenta Murata <[email protected]>
* ext/bigdecimal/bigdecimal.c (VPrint): be a static function, support another
dump formats, and add more information of the given bigdecimal.
* ext/bigdecimal/bigdecimal.h: ditto.
Wed Dec 11 16:45:58 2013 Koichi Sasada <[email protected]>
* eval.c (rb_raise_jump): call c_return hook immediately after
popping `raise' frame.
Patches by deivid (David Rodriguez). [Bug #8886]
* test/ruby/test_settracefunc.rb: catch up this fix.
Wed Dec 11 16:01:26 2013 Nobuyoshi Nakada <[email protected]>
* hash.c (rb_hash_reject): return a plain hash, without copying
the class, default value, instance variables, and taintedness.
they had been copied just by accident.
[ruby-core:59045] [Bug #9223]
Wed Dec 11 15:36:15 2013 Aman Gupta <[email protected]>
* compile.c (iseq_specialized_instruction): emit opt_aset instruction
to optimize Hash#[]= and Array#[]= when called with Fixnum argument.
[Bug #9227] [ruby-core:58956]
Wed Dec 11 04:54:03 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master ec8ed22. Notable changes
include:
* Renamed extension_install_dir to extension_dir (backwards
compatible).
* Fixed creation of gem.deps.rb.lock file from
TestGemRequestSet#test_install_from_gemdeps_install_dir
* Fixed a typo and some documentation.
* test/rubygems: ditto.
Wed Dec 11 03:18:08 2013 Marc-Andre Lafortune <[email protected]>
* insns.def: Fix optimization bug of Float#/ [Bug #9238]
Tue Dec 10 23:58:30 2013 Nobuyoshi Nakada <[email protected]>
* ext/date/date_strptime.c (date__strptime_internal): unset
case-insensitive flag for [:alpha:], which already implies both
cases, to get rid of backtrack explosion. [ruby-core:58984]
[Bug #9221]
Tue Dec 10 23:44:42 2013 Nobuyoshi Nakada <[email protected]>
* array.c (rb_ary_hash): add salt to differentiate false and empty
array. [ruby-core:58993] [Bug #9231]
* hash.c (rb_any_hash, rb_hash_hash): ditto.
Tue Dec 10 18:16:09 2013 SHIBATA Hiroshi <[email protected]>
* man/ruby.1: [DOC] Use www.ruby-toolbox.com instead of RAA.
Tue Dec 10 17:21:30 2013 Nobuyoshi Nakada <[email protected]>
* gc.c (wmap_finalize, wmap_aset_update): use simple malloced array
instead of T_ARRAY, to reduce GC pressure.
Tue Dec 10 15:56:48 2013 Aman Gupta <[email protected]>
* gc.c (reflist_add): revert changes from r44109. it is unnecessary
after r44113
* gc.c (allrefs_i): fix whitespace
* gc.c (allrefs_roots_i): fix whitespace
Tue Dec 10 15:46:03 2013 Koichi Sasada <[email protected]>
* gc.c (allrefs_add): push obj only if allrefs table doesn't have
obj.
* gc.c (allrefs_roots_i): ditto.
Tue Dec 10 15:28:10 2013 Koichi Sasada <[email protected]>
* gc.c (RGENGC_CHECK_MODE): separate checkers to different modes.
* 2: enable generational bits check (for debugging)
* 3: enable livness check
* 4: show all references
Tue Dec 10 15:15:37 2013 Koichi Sasada <[email protected]>
* gc.c (gc_marks_check): disable GC during checking and
restore malloc_increase info.
Tue Dec 10 14:41:53 2013 Aman Gupta <[email protected]>
* gc.c (reflist_add): return 0 if reference already exists
* gc.c (allrefs_add): return 1 on newly added references
* gc.c (allrefs_i): follow references to construct complete object
graph. before this patch, RGENGC_CHECK could fail to verify some WB
miss issues. [Bug #9226] [ruby-core:58959]
Tue Dec 10 11:20:56 2013 Aman Gupta <[email protected]>
* ext/objspace/objspace_dump.c (dump_object): include fstring flag on
strings. include gc flags (old, remembered, wb_protected) on all objects.
* ext/objspace/objspace_dump.c (Init_objspace_dump): initialize lazy
IDs before first use.
* gc.c (rb_obj_gc_flags): new function to retrieve object flags
* internal.h (RB_OBJ_GC_FLAGS_MAX): maximum flags allowed for one obj
* test/objspace/test_objspace.rb (test_dump_flags): test for above
* test/objspace/test_objspace.rb (test_trace_object_allocations):
resolve name before dump (for rb_class_path_cached)
Tue Dec 10 07:48:29 2013 Aman Gupta <[email protected]>
* vm_method.c (rb_clear_method_cache_by_class): fire
ruby::method-cache-clear probe on global or klass-level method cache
clear [Bug #9190]
* probes.d (provider ruby): new dtrace probe
* doc/dtrace_probes.rdoc: docs for new probe
* test/dtrace/test_method_cache.rb: test for new probe
Tue Dec 10 06:14:11 2013 Eric Hodel <[email protected]>
* ext/.document: Remove curses from documentable directories.
Tue Dec 10 04:55:36 2013 Zachary Scott <[email protected]>
* ext/openssl/lib/openssl/digest.rb: Deprecate OpenSSL::Digest::Digest
[Fixes GH-446] https://github.com/ruby/ruby/pull/446
Tue Dec 10 00:41:42 2013 Kazuki Tsujimoto <[email protected]>
* ext/thread/thread.c: [DOC] add call-seq alias for Queue#enq, #<<, etc.
* ext/thread/thread.c (Init_thread): use rb_define_alias instead of
rb_alias to document alias.
Mon Dec 9 20:00:00 2013 Charlie Somerville <[email protected]>
* internal.h (RCLASS_SERIAL): Add RCLASS_SERIAL as a convenience
accessor for RCLASS_EXT(klass)->class_serial.
* class.c, vm_insnhelper.c, vm_method.c: Use RCLASS_SERIAL
Mon Dec 9 19:50:00 2013 Charlie Somerville <[email protected]>
* compile.c, insns.def, test/ruby/test_rubyvm.rb, vm.c, vm_core.h,
vm_insnhelper.c, vm_insnhelper.h, vm_method.c: Rename method_serial
to global_method_state and constant_serial to global_constant_state
after discussion with ko1.
Mon Dec 9 18:50:43 2013 Aman Gupta <[email protected]>
* hash.c (rb_hash_replace): fix segv on `{}.replace({})` introduced
in r44060 [Bug #9230] [ruby-core:58991]
* test/ruby/test_hash.rb: regression test for above
Mon Dec 9 18:10:10 2013 Koichi Sasada <[email protected]>
* vm.c (vm_stat): renamed from ruby_vm_stat.
Should not use ruby_ prefix here.
Mon Dec 9 16:13:31 2013 Nobuyoshi Nakada <[email protected]>
* gc.c (wmap_size): add ObjectSpace::WeakMap#size and #length.
Mon Dec 9 15:26:17 2013 Shugo Maeda <[email protected]>
* test/test_curses.rb: removed.
Mon Dec 9 13:36:55 2013 Shugo Maeda <[email protected]>
* ext/curses, sample/curses: removed curses.
* NEWS: added an entry for the above change.
Mon Dec 9 12:26:05 2013 Nobuyoshi Nakada <[email protected]>
* ext/objspace/object_tracing.c (newobj_i): use cached class path
only to get rid object allocation during NEWOBJ hook.
[ruby-core:58853] [Bug #9212]
* variable.c (rb_class_path_cached): returns cached class path
only, without searching and allocating new class path string.
Mon Dec 9 11:14:26 2013 Nobuyoshi Nakada <[email protected]>
* ext/date/date_parse.c (parse_time): unset case-insensitive flag
for [:alpha:], which already implies both cases, to get rid of
backtrack explosion. [ruby-core:58876] [Bug #9221]
Mon Dec 9 08:40:40 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master bf37240. Fixes useless
error message with `gem install -g` with no gem dependencies file.
* test/rubygems: ditto.
Mon Dec 9 04:52:25 2013 Eric Hodel <[email protected]>
* NEWS: Update RubyGems entry with notable features.
Mon Dec 9 04:43:54 2013 Eric Hodel <[email protected]>
* ext/.document: Add syslog/lib and thread/thread.c to documentable
items. [ruby-trunk - Bug #9228]
Mon Dec 9 04:28:50 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master 096db36. Changes include
support for PATH in Gemfile.lock and a typo fix from Akira Matsuda.
* test/rubygems: ditto.
Mon Dec 9 02:10:32 2013 NARUSE, Yui <[email protected]>
* lib/net/http/responses.rb:
Add `HTTPIMUsed`, as it is also supported by rack/rails.
RFC - http://tools.ietf.org/html/rfc3229
by Vipul A M <[email protected]>
https://github.com/ruby/ruby/pull/447 fix GH-447
Sun Dec 8 20:47:35 2013 Nobuyoshi Nakada <[email protected]>
* class.c (rb_get_kwargs): when values is non-null, remove
extracted keywords from the rest keyword argument.
Sun Dec 8 20:26:54 2013 Yutaka Kanemoto <[email protected]>
* common.mk (ruby.imp): avoid circular dependency on AIX
Sun Dec 8 20:21:00 2013 Kenta Murata <[email protected]>
* bigdecimal.c (BigDecimal_coerce): convert a Float to a BigDecimal instead
of converting the receiver to a Float. The reason is there are BigDecimal
instances with precisions that is smaller than the Float's precision.
[ruby-core:58756] [Bug #9192]
* test/bigdecimal/test_bigdecimal.rb: add tests for the above change.
Sun Dec 8 18:28:20 2013 Kazuki Tsujimoto <[email protected]>
* NEWS: [DOC] update NEWS about GC.
Sun Dec 8 17:52:24 2013 Kazuki Tsujimoto <[email protected]>
* object.c: [DOC] document Module#singleton_class?.
Sun Dec 8 16:19:28 2013 Nobuyoshi Nakada <[email protected]>
* class.c (rb_get_kwargs): if optional is negative, unknown
keywords are allowed.
* vm_insnhelper.c (vm_callee_setup_keyword_arg): check unknown
keywords.
Sun Dec 8 14:55:12 2013 Kazuki Tsujimoto <[email protected]>
* array.c (rb_ary_shuffle_bang, rb_ary_sample): rename local variables.
Sun Dec 8 13:59:38 2013 Kazuki Tsujimoto <[email protected]>
* array.c (rb_ary_shuffle_bang, rb_ary_sample): check
unknown keywords.
* test/ruby/test_array.rb (test_shuffle, test_sample): tests for
the above.
Sun Dec 8 13:01:11 2013 Aman Gupta <[email protected]>
* vm.c (ruby_vm_stat): add RubyVM.stat() for access to internal cache
counters. this methods behaves like GC.stat, accepting an optional
hash or symbol argument. [Bug #9190] [ruby-core:58750]
* test/ruby/test_rubyvm.rb: test for new method
Sun Dec 8 11:59:40 2013 Aman Gupta <[email protected]>
* hash.c (rb_hash_replace): add a write barrier to fix GC mark miss on
hashes using Hash#replace [Bug #9226] [ruby-core:58948]
Sun Dec 8 11:21:00 2013 Aman Gupta <[email protected]>
* include/ruby/ruby.h: add RGENGC_WB_PROTECTED_NODE_CREF setting
In a large app, this reduces the size of
remembered_shady_object_count by 80%. [Bug #9225] [ruby-core:58947]
* gc.c (rb_node_newnode): add FL_WB_PROTECTED flag to NODE_CREF
* class.c (rewrite_cref_stack): insert OBJ_WRITE for NODE_CREF
* iseq.c (set_relation): ditto
* iseq.c (rb_iseq_clone): ditto
* vm_eval.c (rb_yield_refine_block): ditto
* vm_insnhelper.c (vm_cref_push): ditto
* vm_insnhelper.h (COPY_CREF): ditto
Sun Dec 8 10:45:05 2013 Aman Gupta <[email protected]>
* hash.c (hash_aset_str): revert r43870 due to performance issue
[Bug #9188] [ruby-core:58730]
* parse.y (assoc): convert literal string hash keys to fstrings
* test/ruby/test_hash.rb (class TestHash): expand test
Sun Dec 8 10:22:38 2013 Aman Gupta <[email protected]>
* parse.y (register_symid_str): use fstrings in symbol table
[Bug #9171] [ruby-core:58656]
* parse.y (rb_id2str): ditto
* string.c (rb_fstring): create frozen_strings on first usage. this
allows rb_fstring() calls from the parser (before cString is created)
* string.c (fstring_set_class_i): set klass on fstrings generated
before cString was defined
* string.c (Init_String): convert frozen_strings table to String
objects after boot
* ext/-test-/symbol/type.c (bug_sym_id2str): expose rb_id2str()
* test/-ext-/symbol/test_type.rb (module Test_Symbol): verify symbol
table entries are fstrings
Sun Dec 8 10:24:20 2013 Eric Hodel <[email protected]>
* lib/rubygems.rb: Update version for upcoming ruby 2.1.0 RC.
Sun Dec 8 10:21:36 2013 Eric Hodel <[email protected]>
* lib/rubygems: Update to RubyGems master 14749ce. This fixes bugs
handling of gem dependencies lockfiles (Gemfile.lock).
* test/rubygems: ditto.
Sun Dec 8 09:40:00 2013 Charlie Somerville <[email protected]>
* array.c (rb_ary_or): use RHASH_TBL_RAW instead of RHASH_TBL
* process.c (rb_execarg_fixup): use RHASH_TBL_RAW and insert write
barriers where appropriate
* vm.c (kwmerge_i): use RHASH_TBL_RAW
* vm.c (HASH_ASET): use rb_hash_aset instead of calling directly into
st_insert
Sat Dec 7 11:15:52 2013 Nobuyoshi Nakada <[email protected]>
* hash.c (rb_hash_reject): copy unrejected elements only to new hash,
so that the change on the original receiver can affect.
[ruby-core:58914] [Bug #9223]
Sat Dec 7 08:25:00 2013 Richo Healey <[email protected]>
* test/ruby/test_struct.rb: Add regression test for question marks and
bangs in struct members. [Closes GH-468]
Fri Dec 6 19:33:39 2013 Nobuyoshi Nakada <[email protected]>
* class.c (rb_extract_keywords, rb_get_kwargs): move from
vm_insnhelper.c.
Fri Dec 6 19:18:02 2013 Koichi Sasada <[email protected]>
* gc.c: change oldmalloc meaning.
Increase oldmalloc_increase with malloc_increase
instead of using obj_memsize_of().
This change will avoid the danger of memory full without major GC.
Fri Dec 6 19:08:48 2013 Koichi Sasada <[email protected]>
* gc.c (atomic_sub_nounderflow): not 0 but val itself.
Fri Dec 6 18:37:11 2013 Koichi Sasada <[email protected]>
* gc.c (rb_objspace_alloc, Init_heap): initialize
oldmalloc_increase_limit at Init_heap.
rb_objspace_alloc() is not called on some platforms.
Fri Dec 6 18:33:39 2013 Koichi Sasada <[email protected]>
* gc.c (garbage_collect_body): bug fix.
initialize after recording.
Fri Dec 6 17:49:46 2013 Koichi Sasada <[email protected]>
* gc.c (atomic_sub_nounderflow): added to simplify atomic sub with
care about underflow.
* gc.c (objspace_malloc_increase): use it.
Fri Dec 6 17:10:44 2013 Nobuyoshi Nakada <[email protected]>
* vm_insnhelper.c (rb_get_kwargs): get keyword argument values from an
option hash, not only checking keys.
* dir.c (dir_initialize): use rb_get_kwargs.
* gc.c (gc_start_internal): ditto.
Fri Dec 6 16:47:45 2013 Nobuyoshi Nakada <[email protected]>
* misc/ruby-mode.el (ruby-brace-to-do-end): split single line block.
* misc/ruby-mode.el (ruby-do-end-to-brace): shrink single line block
to one line.
Fri Dec 6 16:16:30 2013 Koichi Sasada <[email protected]>
* gc.c (gc_start_internal): do not use rb_gc_start() and rb_gc().
Fri Dec 6 15:24:30 2013 Koichi Sasada <[email protected]>
* gc.c (gc_start_internal, rb_gc): do not need
heap_pages_free_unused_pages() here.
It was done in after_sweep().
* gc.c (rb_gc): The reason is now GPR_FLAG_CAPI.
Fri Dec 6 14:05:19 2013 Aman Gupta <[email protected]>
* gc.c (gc_start_internal): GC.start() now accepts two optional
keyword arguments. These can be used to disable full_mark (minor
mark only) or disable immediate_sweep (use lazy sweep). These new
options are useful for benchmarking GC behavior, or performing minor
GC out-of-band.
* test/ruby/test_gc.rb (class TestGc): tests for new options.
Fri Dec 6 11:51:28 2013 SHIBATA Hiroshi <[email protected]>
* lib/erb.rb: [DOC] fix broken link, Use rubygems.org and www.ruby-toolbox.com instead of RAA.
[Bug #9197]
Fri Dec 6 10:50:54 2013 SHIBATA Hiroshi <[email protected]>
* lib/webrick/httprequest.rb: [DOC] Fix broken link of CGI specification by @udzura [fix GH-466]
Thu Dec 6 01:27:00 2013 Kenta Murata <[email protected]>
* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec):
treat 0.0 and -0.0 of floating-point numbers specially for an optimization
and to correctly propagate its signbit to the result.
[Bug #9214] [ruby-core:58858]
* test/bigdecimal/test_bigdecimal.rb: add tests case for the above change.
* test/bigdecimal/test_bigdecimal_util.rb: ditto.
Thu Dec 5 22:18:01 2013 Nobuyoshi Nakada <[email protected]>
* lib/mkmf.rb (configuration): strip destdir part from prefix to get
rid of duplication. a patch by arton at [ruby-core:58859].
[ruby-core:58856] [Bug #9213]
Thu Dec 5 21:53:29 2013 Nobuyoshi Nakada <[email protected]>
* array.c (rb_ary_or): lhs elements are preferred, so should not
replace with rhs elements.
* test/ruby/test_array.rb (test_OR_in_order): import the test failed
by r43969 from rubyspec/core/array/union_spec.rb.
Thu Dec 5 21:05:42 2013 Koichi Sasada <[email protected]>
* gc.c (gc_info_decode): fix to avoid syntax error on VS2012.
Thu Dec 5 19:35:35 2013 Martin Duerst <[email protected]>
* st.c: tweaked comment
Thu Dec 5 19:21:10 2013 Aman Gupta <[email protected]>
* gc.c (struct rb_objspace): rename internal last_collection_flags to
latest_gc_info
* gc.c (gc_latest_collection_info): add GC.latest_gc_info() with similar
behavior to GC.stat()
* gc.c (rb_gc_latest_gc_info): new c-api for above
* gc.c (gc_stat_internal): remove :last_collection_flags from GC.stat
* gc.c (gc_profile_decode_flags): remove GC::Profiler.decode_flags
* include/ruby/intern.h (rb_gc_latest_gc_info): export new c-api
* test/ruby/test_gc.rb (class TestGc): test for new behavior
* NEWS: note about new api
* gc.c (gc_stat_internal): raise TypeError on wrong type
* gc.c (gc_stat): fix error message
Thu Dec 5 18:18:08 2013 Aman Gupta <[email protected]>
* ext/objspace/gc_hook.c: remove this file
* ext/-test-/tracepoint/gc_hook.c: new filename for above
* ext/objspace/objspace.c: remove ObjectSpace.after_gc_start_hook=
* test/objspace/test_objspace.rb: remove test
* test/-ext-/tracepoint/test_tracepoint.rb: add above test for
tracepoint re-entry
Thu Dec 5 17:44:53 2013 Koichi Sasada <[email protected]>
* gc.c: change function names vm_ prefix to objspace_ prefix.
They are objspace_ functionality.
Thu Dec 5 16:11:04 2013 Aman Gupta <[email protected]>
* include/ruby/intern.h: add rb_gc_stat() for access to GC.stat
variables from c-api
* gc.c (rb_gc_stat): new c-api method. accepts either VALUE hash like
GC.stat, or VALUE symbol key and returns size_t directly. the second
form is useful to avoid allocations, i.e. for usage inside
INTERNAL_EVENT_GC tracepoints.
* gc.c (gc_stat): add GC.stat(:key) to return single value instead of hash
* gc.c (gc_stat_internal): helper method to retrieve single or all stat values
* test/ruby/test_gc.rb (class TestGc): test for new behavior
* NEWS: note about this new api
Thu Dec 5 14:40:41 2013 Nobuyoshi Nakada <[email protected]>
* hash.c (rb_hash): revert r43981 and bail out to the outermost frame
when recursion is detected.
Thu Dec 5 13:47:15 2013 Koichi Sasada <[email protected]>
* gc.c (vm_malloc_size): added.
return malloc_usable_size() if possible.
* gc.c (MALLOC_ALLOCATED_SIZE): add new setting macro to enable
GC.allocated_size.
If platform supports `malloc_usable_size()' (or similar one),
GC.allocated_size can be implemented with this function.
Default is 0.
* gc.c (vm_xmalloc, vm_xrealloc, vm_xfree): use vm_malloc_size()
to detect collect allocated size.
* gc.c (vm_malloc_increase): refactoring.
Thu Dec 5 13:19:03 2013 Aman Gupta <[email protected]>
* include/ruby/ruby.h: remove INTERNAL_EVENT_GC_END and replace with
two new events: GC_END_MARK and GC_END_SWEEP
* gc.c (gc_after_sweep): emit GC_END_SWEEP after lazy sweep is done
* gc.c (gc_marks_body): emit GC_END_MARK at end of minor/major mark
* ext/-test-/tracepoint/tracepoint.c (struct tracepoint_track): tests
for new events.
* test/-ext-/tracepoint/test_tracepoint.rb (class TestTracepointObj):
ditto.
* NEWS: remove ObjectSpace.after_gc_*_hook. These are only a sample,
and will be removed before ruby 2.1.
* ext/objspace/gc_hook.c: remove ObjectSpace.after_gc_end_hook=
Thu Dec 5 10:47:56 2013 Nobuyoshi Nakada <[email protected]>
* ruby_atomic.h (ATOMIC_PTR_EXCHANGE): atomic exchange function for
a generic pointer.
Thu Dec 5 10:47:09 2013 Nobuyoshi Nakada <[email protected]>
* gc.c (finalize_deferred): flush all deferred finalizers while other
finalizers can get ready to run newly by lazy sweep.
[ruby-core:58833] [Bug #9205]
Thu Dec 5 09:07:59 2013 Aman Gupta <[email protected]>
* gc.c (ruby_gc_set_params): Accept safe_level argument so GC tuning
settings can be applied before rb_safe_level() is available.