-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
8248 lines (5212 loc) · 271 KB
/
ChangeLog
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 Sep 19 05:36:16 2014 Eric Wong <[email protected]>
* NEWS: note --with-jemalloc option [ci skip]
Thu Sep 18 16:26:27 2014 NAKAMURA Usaku <[email protected]>
* test/rubygems/test_gem_commands_setup_command.rb: @ui uses StringIO
as its streams, and Encoding.default_external does not effect to
stringIOs already exist. so, we need to set external_encoding of
@ui.outs directly. this problem (test failure) does not appear in
the environments default_external is us-ascii or utf-8.
Thu Sep 18 15:02:15 2014 NAKAMURA Usaku <[email protected]>
* test/rubygems/test_gem_specification.rb: '/' is not always the root.
Thu Sep 18 09:36:37 2014 Scott Francis <[email protected]>
* vm_method.c (Init_Method): make global method cache size
configurable by environment variable
"RUBY_GLOBAL_METHOD_CACHE_SIZE" [Fix GH-719]
Thu Sep 18 07:03:36 2014 Eric Wong <[email protected]>
* test/-ext-/string/test_modify_expand.rb: increase limit
for {je,tc}malloc [Bug #10236]
Thu Sep 18 06:41:18 2014 Eric Wong <[email protected]>
* ext/zlib/zlib.c (struct gzfile): pack (288 => 272 bytes) on 64-bit
Thu Sep 18 05:44:05 2014 Eric Wong <[email protected]>
* ext/socket/init.c (rsock_connect): refactor for blocking
(wait_connectable): clear error before wait
[Bug #9356]
Wed Sep 17 23:12:36 2014 NARUSE, Yui <[email protected]>
* lib/uri/rfc3986_parser.rb: specify a regexp for :OPAQUE; generic.rb
assumes it is present, and will refuse all values otherwise.
by Matthew Draper <[email protected]>
https://github.com/ruby/ruby/pull/718 fix GH-718
Wed Sep 17 16:22:58 2014 Eric Wong <[email protected]>
* ext/zlib/zlib.c (zlib_mem_alloc): check overflow
Wed Sep 17 11:33:35 2014 Laurent Arnoud <[email protected]>
* test/fiddle/test_import.rb (Fiddle::TestImport#test_sizeof):
added test for long long [fix GH-716]
Wed Sep 17 11:09:21 2014 SHIBATA Hiroshi <[email protected]>
* tool/rbinstall.rb: fixed invalid options with latest rubygems.
https://github.com/rubygems/rubygems/issues/1013
Tue Sep 16 19:19:00 2014 Nobuyoshi Nakada <[email protected]>
* benchmark/bm_app_aobench.rb: update outdated links to the
original program. [ruby-dev:48550] [Feature #10247]
Tue Sep 16 01:06:40 2014 NARUSE, Yui <[email protected]>
* reg*.c: Merge Onigmo 5.15.0 38a870960aa7370051a3544
Mon Sep 15 16:21:10 2014 Eric Wong <[email protected]>
* io.c (struct io_advise_struct): 32 => 24 bytes on 64-bit
* io.c (struct io_internal_writev_struct): 24 => 16 bytes on 64-bit
* process.c (struct waitpid_arg): ditto
Mon Sep 15 10:29:25 2014 Natalie Weizenbaum <[email protected]>
* ext/pathname/lib/pathname.rb (SAME_PATHS):
Pathname#relative_path_from uses String#casecmp to compare strings
on case-insensitive filesystem platforms (e.g., Windows). This can
return nil for strings with different encodings, and the code
previously assumed that it always returned a Fixnum. [Fix GH-713]
Mon Sep 15 09:43:18 2014 Sho Hashimoto <[email protected]>
* ext/fiddle/lib/fiddle/import.rb (Fiddle::Importer#sizeof): fix typo,
SIZEOF_LONG_LON. [Fix GH-714]
Mon Sep 15 08:13:40 2014 Matthew Draper <[email protected]>
* sprintf.c (rb_str_format): rational 'f' format works for more
values. [fix GH-717]
Sun Sep 14 16:57:27 2014 Eric Wong <[email protected]>
* template/vm.inc.tmpl: "insns.c" => "insns.def"
* tool/instruction.rb: typo fix
Sun Sep 14 12:29:52 2014 SHIBATA Hiroshi <[email protected]>
* test/test_tracer.rb: fixed testcase for rubygems update.
Sun Sep 14 12:29:02 2014 SHIBATA Hiroshi <[email protected]>
* lib/rubygems: Update to RubyGems 2.4.1 master(713ab65)
Complete history at:
https://github.com/rubygems/rubygems/blob/master/History.txt#L3-L216
* test/rubygems: ditto.
Sun Sep 14 11:03:24 2014 Aaron Patterson <[email protected]>
* ext/psych/lib/psych.rb: update version
* ext/psych/psych.gemspec: ditto
Sun Sep 14 08:43:37 2014 Eric Wong <[email protected]>
* ccan/container_of/container_of.h (container_of_or_null): added
[ccan 7ec5b8e06b2fd5fa98b1fcde1158c286d2d429d8] (David Gibson)
Sun Sep 14 08:41:44 2014 Eric Wong <[email protected]>
* ccan/list/list.h (list_del_init, list_node_init): new functions
for multiple list_del() calls
[ccan ec8654d94d3c5c47aa5f82698f7e8048c79765b1] (Rusty Russell)
Sat Sep 13 22:19:26 2014 Bernard Potocki <[email protected]>
* hash.c (rb_hash_aset): fix misleading example which may suggest
that Hash.store will return self instead of value - Hash#store
is returning value and update itself, as well as Hash#[]=.
[Fix GH-715]
Sat Sep 13 15:16:31 2014 Eric Wong <[email protected]>
* class.c: use ALLOC(rb_subclass_entry_t)
Sat Sep 13 14:14:00 2014 Eric Wong <[email protected]>
* process.c (free_exec_arg): remove
(memsize_exec_arg): ptr is never NULL
(exec_arg_data_type): use RUBY_TYPED_DEFAULT_FREE
* variable.c (autoload_i_free): remove
(autoload_data_i_type): use RUBY_TYPED_DEFAULT_FREE
(autoload_memsize): ptr is never NULL
* vm_backtrace.c (location_free): remove
(location_mark): ptr is never NULL
(location_data_type): use RUBY_TYPED_DEFAULT_FREE
(backtrace_mark): ditto
(backtrace_free): ditto
Sat Sep 13 13:43:07 2014 Eric Wong <[email protected]>
* doc/NEWS-2.0.0: fix typo for default RUBY_FIBER_MACHINE_STACK_SIZE
[ci skip]
Sat Sep 13 11:16:58 2014 Masaki Suketa <[email protected]>
* ext/win32ole/win32ole_event.c(ev_advise, ole_event_free,
fev_s_allocate, fev_unadvise): avoid segmentation fault when COM
server freed before calling Unadvise from WIN32OLE_EVENT object.
* ext/win32ole/win32ole.c: ditto.
Sat Sep 13 09:47:44 2014 Eric Wong <[email protected]>
* man/ruby.1: use https for *.ruby-lang.org links
Sat Sep 13 06:31:23 2014 Eric Wong <[email protected]>
* vm.c (thread_alloc): remove needless volatile
Sat Sep 13 06:13:55 2014 Eric Wong <[email protected]>
* proc.c (proc_free): remove, use RUBY_TYPED_DEFAULT_FREE
(proc_mark, proc_memsize): remove needless branching
* vm.c (env_free): remove, use RUBY_TYPED_DEFAULT_FREE
(env_mark, env_memsize): remove needless branching
Sat Sep 13 05:52:15 2014 Eric Wong <[email protected]>
* proc.c (rb_proc_alloc): inline and move to vm.c
(rb_proc_wrap): new wrapper function used by rb_proc_alloc
(proc_dup): simplify alloc + copy + wrap operation
[ruby-core:64994]
* vm.c (rb_proc_alloc): new inline function
(rb_vm_make_proc): call rb_proc_alloc
* vm_core.h: remove rb_proc_alloc, add rb_proc_wrap
* benchmark/bm_vm2_newlambda.rb: short test to show difference
Sat Sep 13 04:40:04 2014 Eric Wong <[email protected]>
* process.c (Init_process): subclass Thread as Process::Waiter
(rb_detach_process): use Process::Waiter instead of singleton class
Thanks to headius and nobu. [Bug #10231]
* test/ruby/test_process.rb (test_process_detach): new test
* inits.c (rb_call_inits): call Init_Thread before Init_process to
ensure Process::Waiter may be a subclass of Thread
Fri Sep 12 18:14:28 2014 Eric Wong <[email protected]>
* vm.c (env_alloc): inline to avoid extra zeroing
tiny speedup [ruby-core:64980]
Fri Sep 12 17:13:29 2014 Nobuyoshi Nakada <[email protected]>
* vm_method.c (rb_method_entry_make, remove_method): ditto.
Fri Sep 12 14:39:55 2014 SHIBATA Hiroshi <[email protected]>
* gems/bundled_gems: Upgraded to test-unit-3.0.1 and minitest-5.4.1
Fri Sep 12 06:55:40 2014 Eric Wong <[email protected]>
* string.c (Init_frozen_strings): use st_init_table_with_size
Fri Sep 12 06:15:37 2014 NARUSE, Yui <[email protected]>
* string.c (sym_find): remove Symbol.find because we have Symbol GC now.
https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20140904Japan
If you still want this, request again on Redmine. [Feature #7854]
https://bugs.ruby-lang.org/issues/7854
* ext/-test-/symbol/init.c (sym_find): moved from string.c for tests.
Fri Sep 12 04:24:03 2014 Eric Wong <[email protected]>
* insns.def (once): define and use fake RUNNING_THREAD_ONCE_DONE
pointer to indicate is->once.running_thread is done.
* vm_core.h (iseq_inline_storage_entry): remove done field,
allowing the union to be reduced from 24=>16 bytes on 64-bit
[Feature #10187]
Thu Sep 11 20:10:00 2014 Koichi Sasada <[email protected]>
* vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack.
Thu Sep 11 19:50:57 2014 Koichi Sasada <[email protected]>
* vm.c (rb_vm_register_special_exception): make new function to
make and register special exceptions.
* vm.c (rb_vm_mark): do not need to mark special exceptions
because they are registered by rb_gc_register_mark_object().
* eval.c (Init_eval): use rb_vm_register_special_exception().
* gc.c (Init_GC): ditto.
* proc.c (Init_Proc): ditto.
* thread.c (Init_Thread): ditto.
Thu Sep 11 19:32:30 2014 Koichi Sasada <[email protected]>
* gc.c (rb_gc_mark_values): added.
This function is similar to rb_gc_mark_locations(), but not
conservative.
* internal.h: ditto.
* vm.c (env_mark): use rb_gc_mark_values() because env values should
be Ruby VALUEs.
Thu Sep 11 19:16:39 2014 Koichi Sasada <[email protected]>
* gc.c (gc_mark_ptr): rename to gc_mark_set.
* gc.c (gc_mark): add gc_mark_ptr() to skip is_markable_object()
check. gc_mark_maybe() can use gc_mark_ptr() directly because
passed pointer is checked by is_pointer_to_heap().
Thu Sep 11 18:40:16 2014 SHIBATA Hiroshi <[email protected]>
* .gitignore: ignored temporary files and coverage results.
Thu Sep 11 18:15:30 2014 SHIBATA Hiroshi <[email protected]>
* .gitignore: ignored only simplecov.
* coverage/README: Added coverage docs.
Thu Sep 11 17:25:31 2014 Koichi Sasada <[email protected]>
* include/ruby/ruby.h, gc.c: add new internal events
RUBY_INTERNAL_EVENT_GC_ENTER and
RUBY_INTERNAL_EVENT_GC_EXIT.
When invoking GC process, GC_ENTER event is called.
When exiting from GC process, GC_EXIT event is called.
Incremental GC (incremental marking and lazy sweep) can call
these events many times.
For example (minor marking):
(1) GC_ENTER
- (2) GC_START (minor GC)
(minor marking)
- (3) GC_END_MARK
(start lazy sweep)
(4) GC_EXIT
(ruby process)
(5) GC_ENTER
(lazy sweep)
(6) GC_EXIT
(ruby process)
(... repeat (5), (6))
(7) GC_ENTER
(finish lazy sweep)
- (8) GC_END_SWEEP
(9) GC_EXIT
2nd example (incremental major marking):
(1) GC_ENTER
- (2) GC_START (minor GC)
(start incremental marking)
(3) GC_EXIT
(ruby process)
(4) GC_ENTER
(incremental marking)
(5) GC_EXIT
(ruby process)
(... repeat (4), (5))
(6) GC_ENTER
(finish incremental marking)
- (7) GC_END_MARK
(start lazy sweep)
(8) GC_EXIT
(ruby process)
(9) GC_ENTER
(lazy sweep)
(10) GC_EXIT
(ruby process)
(... repeat (9), (10))
(11) GC_ENTER
(finish lazy marking)
- (12) GC_STOP_SWEEP
(13) GC_EXIT
These internal events enable to measure GC pause time completely.
Thu Sep 11 17:04:54 2014 Eric Wong <[email protected]>
* lib/benchmark.rb: remove CLOCK_MONOTONIC_RAW support
Thanks to Vit Ondruch for reporting the issue on ARM.
[Bug #10202]
Thu Sep 11 14:31:57 2014 Koichi Sasada <[email protected]>
* include/ruby/ruby.h: freeze nil/true/false.
[Feature #8923]
* gc.c (should_be_finalizable): check frozen after checkin FL_ABLE.
* object.c (rb_obj_taint): check
OBJ_TAINTABLE(obj).
* object.c (rb_obj_freeze): remove immediate_frozen_tbl
because all of immediate values are frozen. YAY!
* object.c (rb_obj_frozen_p): ditto.
* test/ruby/test_eval.rb: skip instance_variable_set for
frozen objects.
* test/ruby/test_weakmap.rb: check ArgumentError instead of
RuntimeError.
Thu Sep 11 10:03:16 2014 SHIBATA Hiroshi <[email protected]>
* lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(21b241a)
Wed Sep 10 17:52:25 2014 Koichi Sasada <[email protected]>
* compile.c (rb_vm_addr2insn): rename to rb_vm_insn_addr2insn
to clear what address.
Wed Sep 10 16:22:26 2014 Koichi Sasada <[email protected]>
* test/ruby/test_gc.rb: fix condition.
Wed Sep 10 15:29:46 2014 Eric Wong <[email protected]>
* vm_core.h (rb_call_info_t): ci->flag becomes 32-bit unsigned int
ci->index becomes a 32-bit signed int (from signed long).
Reorder for better packing on 64-bit, giving an 8 byte reduction
from 104 to 96 bytes for each ci.
[Feature #10187]
* compile.c (new_callinfo, setup_args, iseq_compile_each,
iseq_build_from_ary_body): adjust for type changes
* vm_insnhelper.c (vm_getivar): ditto
Wed Sep 10 15:07:35 2014 Eric Wong <[email protected]>
* compile.c (rb_iseq_translate_threaded_code):
modify in-place w/o copy
(rb_vm_addr2insn): new function for debug
(rb_iseq_original_iseq): ditto
(iseq_set_sequence): assign iseq_encoded directly
[Feature #10185]
* vm_core (rb_iseq_t): move original ->iseq to bottom
* iseq.c (iseq_free, iseq_free): adjust for new layout
(rb_iseq_disasm): use original iseq for dump
(iseq_data_to_ary): ditto
(rb_iseq_line_trace_each): ditto
(rb_iseq_build_for_ruby2cext): use iseq_encoded directly
* vm_dump.c (rb_vmdebug_debug_print_pre): use original iseq
Wed Sep 10 15:00:11 2014 Eric Wong <[email protected]>
* time.c (time_mark): remove NULL check
(time_memsize): ditto
(time_free): remove, use RUBY_TYPED_DEFAULT_FREE instead
[Feature #10219]
Wed Sep 10 14:14:57 2014 NAKAMURA Usaku <[email protected]>
* common.mk (encs enc trans libencs libenc libtrans): force to run
enk.mk because common.mk does not know the dependency, but enk.mk
knows. [ruby-dev:48530] [Bug #10220]
Wed Sep 10 11:59:10 2014 Koichi Sasada <[email protected]>
* gc.c (gc_stat): update rdoc.
Wed Sep 10 11:52:08 2014 Koichi Sasada <[email protected]>
* gc.c (gc_stat_internal): rename:
* malloc_increase -> malloc_increase_bytes
* malloc_limit -> malloc_increase_bytes_limit
* oldmalloc_increase -> oldmalloc_increase_bytes
* oldmalloc_limit -> oldmalloc_increase_bytes_limit
ref: [Feature #9924]
Wed Sep 10 11:45:40 2014 Koichi Sasada <[email protected]>
* gc.c (gc_stat_internal): rename `heap_used' to `heap_allocated_pages'.
ref: [Feature #9924]
* test/ruby/test_gc.rb: add constraints test for gc stat information.
Wed Sep 10 11:31:16 2014 Koichi Sasada <[email protected]>
* gc.c (gc_stat_internal): rename:
* remembered_shady_object -> remembered_wb_unprotected_objects
* remembered_shady_object_limit -> remembered_wb_unprotected_objects_limit
* old_object -> old_objects
* old_object_limit -> old_objects_limit
ref: [Feature #9924]
Wed Sep 10 11:12:25 2014 Koichi Sasada <[email protected]>
* gc.c (gc_stat_internal): support:
* total_allocated_pages
* total_freed_pages
ref: [Feature #9924]
Wed Sep 10 10:48:04 2014 Koichi Sasada <[email protected]>
* test/ruby/test_gc.rb: catch up last fix.
Wed Sep 10 10:36:08 2014 Koichi Sasada <[email protected]>
* gc.c (objspace_total_slot): rename objspace_available_slots.
* gc.c (objspace_live_slot, objspace_free_slot): rename
..._slot() to ..._slots().
* gc.c (objspace_free_slot): should subtract heap_pages_final_slots.
* gc.c (gc_stat_internal):
* add `heap_available_slots' field
* rename heap_live_slot to heap_live_slots
* rename heap_free_slot to heap_free_slots
ref: [Feature #9924]
Wed Sep 10 07:22:53 2014 Koichi Sasada <[email protected]>
* gc.c: refactoring for RGENGC_PROFILE > 0.
* rename rb_objspace_t::profile::..._count
to rb_objspace_t::profile::total_..._count
* rename promote_infant_types to promote_types
* gc.c (gc_remember_unprotected): count remembered shady objects here.
Wed Sep 10 03:12:12 2014 CHIKANAGA Tomoyuki <[email protected]>
* gc.c (init_mark_stack): MEMZERO() receive type as 2nd argument instead
of size.
Coverity Scan found this bug.
Tue Sep 9 21:55:39 2014 Masaki Suketa <[email protected]>
* ext/win32ole/sample/excel2.rb: remove some commented-out code.
rotate graph more slowly to see graph clearly.
Tue Sep 9 19:52:33 2014 Koichi Sasada <[email protected]>
* gc.c: rename rb_objspace_t::marked_objects to marked_slots.
* gc.c (gc_marks_start): should be clear first.
* gc.c (gc_marks_start): remembered shady objects are also marked.
* gc.c (gc_stat_internal): add heap_marked_slots.
Tue Sep 9 18:58:48 2014 Koichi Sasada <[email protected]>
* gc.c: rename
* total_allocated_object_num -> total_allocated_objects
* total_allocated_object_num_at_gc_start -> total_allocated_objects_at_gc_start
* total_freed_object_num -> total_freed_objects
* gc.c (gc_stat_internal):
* rename total_allocated_object -> total_allocated_objects
* rename total_freed_object -> total_freed_objects
Tue Sep 9 18:51:36 2014 Koichi Sasada <[email protected]>
* gc.c (gc_stat_internal): fix symbol names
* heap_final_slot -> heap_final_slots
* heap_swept_slot -> heap_swept_slots
Tue Sep 9 18:18:07 2014 Koichi Sasada <[email protected]>
* gc.c (rb_objspace_t::heap_pages): rename field names:
* used -> allocated_pages
* increment -> allocatable_pages
* length -> sorted_length
And remove unused `limit' field.
* gc.c: rename macros:
* heap_pages_used -> heap_allocated_pages
* heap_pages_length -> heap_pages_sorted_length
* heap_pages_increment -> heap_allocatable_pages
* gc.c (gc_stat_internal): fix symbol names
* heap_used -> heap_allocated_pages
* heap_eden_page_length -> heap_eden_pages
* heap_tomb_page_length -> heap_tomb_pages
* heap_increment -> heap_allocatable_pages
* heap_length -> heap_sorted_length
ref: [Feature #9924]
https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing
Yellow color fields in this table are changed.
* test/ruby/test_gc.rb: catch up this change.
Tue Sep 9 14:56:03 2014 Koichi Sasada <[email protected]>
* gc.c: continue layout changing.
newobj_of() also touch:
(4) increment total_allocated_object_num
(5) check hook_events
And gather fields related to marking phase.
Tue Sep 9 14:21:50 2014 Koichi Sasada <[email protected]>
* gc.c: fix layout of rb_objspace_t to improve cache locality.
newobj_of() accesses:
(1) rb_objspace_t::flags
(2) rb_objspace_t::eden_heap::freelist
(3) and rb_objspace_t::eden_heap::free_pages if freelist is NULL.
Tue Sep 9 14:09:36 2014 Koichi Sasada <[email protected]>
* gc.c: move rb_objspace_t::flags::gc_stressful after during_gc
to make accessing both parameters easy.
* gc.c (heap_get_freeobj): add LIKELY() hint.
* gc.c (heap_get_freeobj_from_next_freepage): ditto.
* gc.c (newobj_of): check both parameters at once for exceptional
case.
Tue Sep 9 13:51:32 2014 Koichi Sasada <[email protected]>
* gc.c: add rb_objspace_t::flags::gc_stressful and
ruby_gc_stressful macro.
Rename objspace->gc_stress to objspace->gc_stress_mode.
If objspace->gc_stress_mode is true (!nil and !false) then
ruby_gc_stressful becomes TRUE.
ruby_gc_stressful will speedup newobj_of() slightly.
* gc.c: initialize ruby_gc_stress(full|_mode) by gc_params.gc_stress
even if ENABLE_VM_OBJSPACE is false.
Tue Sep 9 13:05:50 2014 Koichi Sasada <[email protected]>
* gc.c: remove ruby_disable_gc_stress and add ruby_disable_gc
to speed-up newobj_of().
* gc.c (ready_to_gc): check ruby_disable_gc.
* signal.c: use ruby_disable_gc.
Tue Sep 9 12:11:41 2014 Koichi Sasada <[email protected]>
* gc.c: rename gc_stat entries and check stat transition.
Tue Sep 9 12:06:03 2014 Koichi Sasada <[email protected]>
* gc.c (gc_sweep_rest): remove wrong modification of during_gc flag.
Tue Sep 9 11:39:41 2014 Koichi Sasada <[email protected]>
* gc.c: pack boolean values into rb_objspace_t::flags with bit fields
to improve cache locality.
Tue Sep 9 11:11:05 2014 Koichi Sasada <[email protected]>
* test/ruby/test_object.rb: extend timeout.
Tue Sep 9 09:02:07 2014 Nobuyoshi Nakada <[email protected]>
* lib/mkmf.rb (MakeMakefile#pkg_config): append --cflags to also
$CXXFLAGS, as they are often used by C++ compiler.
[ruby-core:54532] [Bug #8315]
Tue Sep 9 07:03:22 2014 Eric Wong <[email protected]>
* compile.c: remove needless SYM2ID <-> ID2SYM conversions
[misc #10207]
Tue Sep 9 05:48:42 2014 Eric Wong <[email protected]>
* symbol.c (rb_intern_cstr_without_pindown): check dsymbol on return
This is not a complete fix for bug 10206, but seems to reduce
that crash and also looks correct.
Tue Sep 9 04:36:24 2014 Eric Wong <[email protected]>
* vm_core.h (rb_env_t): use flexible array
This reduces allocations and speeds up the lambda calculus
fizzbuzz (bm_app_lc_fizzbuzz.rb) benchmark [ruby-core:64858]
* proc.c (get_local_variable_ptr): deconst to adjust for flex array
* vm.c (env_mark, env_free, env_memsize): remove check for env->env
* vm.c (env_alloc): single allocation for flex array
* vm.c (vm_make_env_each): adjust env_alloc call
Mon Sep 8 16:08:22 2014 Koichi Sasada <[email protected]>
* benchmark/bm_app_lc_fizzbuzz.rb: should skip output on benchmark.
Mon Sep 8 16:04:02 2014 Koichi Sasada <[email protected]>
* benchmark/bm_app_lc_fizzbuzz.rb: `answer.to_a' does not return
a string, but an array.
Mon Sep 8 13:18:37 2014 Koichi Sasada <[email protected]>
* benchmark/bm_app_lc_fizzbuzz.rb: added.
This program is described closely in "Understanding Computation"
chapter 6 by Tom Stuart. <http://computationbook.com/>
Japanese translation will be published soon.
<http://www.oreilly.co.jp/books/9784873116976/>
Mon Sep 8 12:01:39 2014 Koichi Sasada <[email protected]>
* gc.c: add incremental GC algorithm. [Feature #10137]
Please refer this ticket for details.
This change also introduces the following changes.
* Remove RGENGC_AGE2_PROMOTION and introduce object age (0 to 3).
Age can be count with FL_PROMOTE0 and FL_PROMOTE1 flags in
RBasic::flags (2 bit). Age == 3 objects become old objects.
* WB_PROTECTED flag in RBasic to WB_UNPROTECTED bitmap.
* LONG_LIVED bitmap to represent living objects while minor GCs
It specifies (1) Old objects and (2) remembered shady objects.
* Introduce rb_objspace_t::marked_objects which counts marked
objects in current marking phase. marking count is needed to
introduce incremental marking.
* rename mark related function and sweep related function to
gc_(marks|sweep)_(start|finish|step|rest|continue).
* rename rgengc_report() to gc_report().
* Add obj_info() function to get cstr of object details.
* Add MEASURE_LINE() macro to measure execution time of specific line.
* and many small fixes.
* include/ruby/ruby.h: add flag USE_RINCGC.
Now USE_RINCGC can be set only with USE_RGENGC.
* include/ruby/ruby.h: introduce FL_PROMOTED0 and add FL_PROMOTED1
to count object age.
* include/ruby/ruby.h: rewrite write barriers for incremental marking.
* debug.c: catch up flag name changes.
* internal.h: add rb_gc_writebarrier_remember() instead of
rb_gc_writebarrier_remember_promoted().
* array.c (ary_memcpy0): use rb_gc_writebarrier_remember().
* array.c (rb_ary_modify): ditto.
* hash.c (rb_hash_keys): ditto.
* hash.c (rb_hash_values): ditto.
* object.c (init_copy): use rb_copy_wb_protected_attribute() because
FL_WB_PROTECTED is moved from RBasic::flags.
* test/objspace/test_objspace.rb: catch up ObjectSpace.dump() changes.
Sun Sep 7 12:47:06 2014 Tanaka Akira <[email protected]>
* process.c: PTHREAD_CANCEL_DISABLE is not defined on Android.
Sat Sep 6 20:59:06 2014 Tanaka Akira <[email protected]>
* process.c (has_privilege): The gid zero is not a privilege.
Sat Sep 6 20:19:16 2014 Tanaka Akira <[email protected]>
* process.c (struct child_handler_disabler_state): cancelstate field
added.
(disable_child_handler_before_fork): Record cancelstate.
(disable_child_handler_fork_parent): Restore cancelstate.
Sat Sep 6 19:27:10 2014 Tanaka Akira <[email protected]>
* process.c (struct child_handler_disabler_state): Defined.
Sat Sep 6 18:31:32 2014 SHIBATA Hiroshi <[email protected]>
* lib/rake.rb, lib/rake/*, test/rake/*: Update latest rake master(e47d023)
Sat Sep 6 16:38:08 2014 Masaki Suketa <[email protected]>
* ext/win32ole/win32ole_variant.c (ole_val2variant_err,
ole_val2variantdata, Init_win32ole_variant): support VT_ERROR
variant with error code. add WIN32OLE_VARIANT::NoParam.
* test/win32ole/test_win32ole_variant.rb(test_c_noparam,
test_vt_error_noparam): ditto.
* ext/win32ole/win32ole.c: ditto.
Sat Sep 6 11:08:52 2014 Nobuyoshi Nakada <[email protected]>
* parse.y (arg_ambiguous_gen): fix warning message, "even" does
not mean the number of spaces here. state the place to put a
space and the operator. [ruby-core:64790] [Bug #10204]
Sat Sep 6 08:44:40 2014 Zachary Scott <[email protected]>
* lib/rdoc/generator/template/darkfish/js/jquery.js: Backport
rdoc/rdoc@74f60fcb04fee1778fe2694d1a0ea6513f8e67b7
Sat Sep 6 08:10:44 2014 Eric Wong <[email protected]>
* test/ruby/test_io.rb (test_readpartial_locktmp): use IO#nonblock=
Old fcntl invocation may drop necessary flags on some platforms.
Sat Sep 6 07:46:51 2014 Eric Wong <[email protected]>
* test/ruby/test_io.rb (test_readpartial_locktmp): avoid EBADF
[ruby-core:64773] [ruby-core:64775]
Sat Sep 6 01:34:31 2014 Tanaka Akira <[email protected]>
* process.c (rb_f_exec): Call before_exec_async_signal_safe and
after_exec_async_signal_safe around rb_exec_async_signal_safe.
(rb_exec_async_signal_safe): Don't call
before_exec_async_signal_safe and after_exec_async_signal_safe.
(rb_exec_without_timer_thread): Call before_exec and
after_exec.
(disable_child_handler_fork_child): Make SIGPIPE handler SIG_DFL.
Sat Sep 6 00:49:41 2014 Tanaka Akira <[email protected]>
* signal.c (ruby_signal): Don't set SA_SIGINFO for SIG_IGN and
SIG_DFL.
Fri Sep 5 21:45:33 2014 Tanaka Akira <[email protected]>
* process.c (disable_child_handler_before_fork): New function.
(disable_child_handler_fork_parent): Ditto.
(disable_child_handler_fork_child): Ditto.
(retry_fork_async_signal_safe): Call above functions to disable
signal handlers in child process.
Fri Sep 5 21:02:54 2014 Tanaka Akira <[email protected]>
* process.c (handle_fork_error): Make try_gc_p argument volatile to
suppress "clobbered" warning.
Fri Sep 5 20:48:06 2014 Tanaka Akira <[email protected]>
* process.c (handle_fork_error): Don't need state_p argument.
Fri Sep 5 20:35:52 2014 Tanaka Akira <[email protected]>
* process.c (has_privilege): Fix a return value.
Fri Sep 5 19:00:40 2014 SHIBATA Hiroshi <[email protected]>
* lib/shellwords.rb: proofreading documentation.
[Bug #10155][ruby-core:64471]
Fri Sep 5 18:34:33 2014 Laurent Arnoud <[email protected]>
* test/csv/test_row.rb: Added some missing tests in CSV.
[fix GH-710]
* test/csv/test_table.rb: ditto.
Fri Sep 5 12:57:52 2014 Tanaka Akira <[email protected]>
* process.c (has_privilege): Refine uid/gid check.
Fri Sep 5 12:40:55 2014 Tanaka Akira <[email protected]>
* configure.in: Check sys/id.h, getuidx and getgidx for AIX.
* process.c (getresuid): Defined for AIX.
(getresgid): Ditto
AIX don't have getresuid/getresgid but getuidx/getgidx.
Fri Sep 5 12:28:21 2014 Tanaka Akira <[email protected]>
* process.c (has_privilege): Fix assignments.
Fri Sep 5 11:10:13 2014 SHIBATA Hiroshi <[email protected]>
* lib/rdoc/generator/pot/po.rb: fixed broken tests for trailing whitespace.
* test/rdoc/test_rdoc_generator_pot.rb: ditto.
* test/rdoc/test_rdoc_generator_pot_po.rb: ditto.
Fri Sep 5 10:41:07 2014 SHIBATA Hiroshi <[email protected]>
* test/rdoc/test_rdoc_rdoc.rb (TestRDocRDoc#test_parse_file_encoding):
typofix.
Fri Sep 5 10:39:14 2014 SHIBATA Hiroshi <[email protected]>
* lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(313287)
Fri Sep 5 06:04:22 2014 Eric Wong <[email protected]>
* vm.c: remove unused USE_THREAD_RECYCLE [misc #10198]
Fri Sep 5 00:29:08 2014 Tanaka Akira <[email protected]>
* configure.in (dirfd): Check function.
* dir.c (dir_fileno): New method.
[ruby-dev:48265] [Feature #9880]
Thu Sep 4 23:39:52 2014 Tanaka Akira <[email protected]>
* process.c (has_privilege): New function.
(retry_fork_async_signal_safe): Don't use vfork() for privileged
process.
* configure.in (getresuid): Check function.
(getresgid): Ditto.
Thu Sep 4 20:22:14 2014 Laurent Arnoud <[email protected]>
* test/pathname/test_pathname.rb: added testcase for Pathname#mountpoint?.
[fix GH-709]
Thu Sep 4 20:09:21 2014 SHIBATA Hiroshi <[email protected]>
* symbian/*: removed Symbian support.
[Feature #10199][ruby-core:64725]
* dln.c: ditto.
* include/ruby/defines.h: ditto.
* thread_pthread.c: ditto.
* vm.c: ditto.
Thu Sep 4 17:44:40 2014 Koichi Sasada <[email protected]>
* dir.c (glob_helper): use #ifdef instead of #if.
gcc's -Wundef option shows warning for undefined macro.
* numeric.c (flo_is_finite_p): ditto.
* vm_dump.c (rb_vmdebug_thread_dump_state): ditto.
* vm_core.h: define VM_DEBUG_VERIFY_METHOD_CACHE to 0.
Thu Sep 4 03:57:46 2014 Eric Wong <[email protected]>
* man/ruby.1: spelling fix ("bellow" => "below") [ci-skip]
Thu Sep 4 03:52:16 2014 Eric Wong <[email protected]>
* man/ruby.1: add trailing slash to URLs [ci-skip]
Wed Sep 3 19:10:28 2014 Tanaka Akira <[email protected]>
* process.c (before_fork_ruby): Renamed from before_fork.
(after_fork_ruby): Renamed from after_fork.
Wed Sep 3 18:56:05 2014 Tanaka Akira <[email protected]>
* process.c (forked_child): Removed.
Wed Sep 3 16:56:07 2014 Nobuyoshi Nakada <[email protected]>
* object.c (rb_obj_copy_ivar): allocate no memory for empty
instance variables. [ruby-core:64700] [Bug #10191]
Wed Sep 3 12:05:17 2014 Tanaka Akira <[email protected]>
* process.c (retry_fork_async_signal_safe): Use vfork() if available.
vfork() is still faster than fork() especially when the parent
process uses big memory.
ruby -rbenchmark -e 'a = "a" * 1_000_000_000; puts Benchmark.measure { system("true") }'
fork: 0.000000 0.010000 0.010000 ( 0.014968)
vfork: 0.000000 0.000000 0.000000 ( 0.000912)
on Debian sid.
Wed Sep 3 11:33:08 2014 SHIBATA Hiroshi <[email protected]>
* test/openssl/test_pkey_rsa.rb (OpenSSL#test_sign_verify_memory_leak):
added timeout into testcase for low performance environment.
[Bug #9984][ruby-core:63367]
Wed Sep 3 07:50:15 2014 Tanaka Akira <[email protected]>
* configure.in: Use AC_FUNC_FORK.
* io.c: Use HAVE_WORKING_FORK instead of HAVE_FORK.
* process.c: Ditto.
Wed Sep 3 00:12:44 2014 Tanaka Akira <[email protected]>
* process.c (retry_fork_async_signal_safe): Don't return on in child
process.
Tue Sep 2 23:47:35 2014 Tanaka Akira <[email protected]>
* process.c (retry_fork_async_signal_safe): Specialized version of
retry_fork respect to rb_fork_async_signal_safe.
(retry_fork_ruby): Specialized version of retry_fork respect to
rb_fork_ruby.
(rb_fork_ruby): Removed.
Tue Sep 2 23:26:26 2014 Tanaka Akira <[email protected]>
* process.c (send_child_error): Simplified.
(recv_child_error): Ditto.
Tue Sep 2 22:56:25 2014 Tanaka Akira <[email protected]>
* process.c (rb_fork_async_signal_safe): Inline rb_fork_internal.
(rb_fork_ruby): Ditto.
(rb_fork_internal): Removed.
(chfunc_protect): Removed.
Tue Sep 2 22:43:52 2014 Tanaka Akira <[email protected]>
* test/ruby/test_io.rb (test_new_with_block): Set autoclose to avoid
EBADF.
Tue Sep 2 22:01:51 2014 Kouhei Sutou <[email protected]>
* Makefile.in (update-coverage): Remove a never executed line.
Tue Sep 2 19:48:26 2014 Tanaka Akira <[email protected]>
* process.c (handle_fork_error): Extracted from retry_fork.
Tue Sep 2 17:02:53 2014 Vit Ondruch <[email protected]>
* tool/rbinstall.rb: fixed error of local installation.
[Bug #10192][ruby-core:64702]
Tue Sep 2 16:58:03 2014 SHIBATA Hiroshi <[email protected]>
* test/runner.rb: reporting test coverage for test-all with COVERAGE env.
[Feature #10189][ruby-core:64681][fix GH-708]
* Makefile.in: added task for coverage report.
* common.mk: added definition of forked simplecov url.
* .gitignore: ignored coverage directory.