-
Notifications
You must be signed in to change notification settings - Fork 5.3k
/
ChangeLog
14047 lines (8934 loc) · 469 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
2013-10-11 Eric Hodel <drbrain@segment7.net>
* lib/rake: Update to rake 10.1.0
* bin/rake: ditto.
* test/rake: ditto.
* NEWS: Update NEWS to include rake 10.1.0 and links to release notes.
Sat Oct 12 03:26:04 2013 Koichi Sasada <ko1@atdot.net>
* class.c, variable.c, gc.c (rb_class_tbl): removed.
* vm.c, vm_core.h (rb_vm_add_root_module): added to register as a
defined root module or class.
This guard helps mark miss from defined classes/modules they are
only refered from C's global variables in C-exts.
Basically, it is extension's bug.
Register to hash object VM has.
Marking a hash objects allows generational GC supports.
* gc.c (RGENGC_PRINT_TICK): disable (revert).
Sat Oct 12 03:24:49 2013 Koichi Sasada <ko1@atdot.net>
* vm_method.c (rb_gc_mark_unlinked_live_method_entries):
revert last commit to introduce debug prints.
Fri Oct 11 21:05:19 2013 Koichi Sasada <ko1@atdot.net>
* internal.h, parse.y: use `full_mark' instead of `full_marking'.
Fri Oct 11 20:58:16 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: use terminology `full_mark' instead of `minor_gc'
in mark functions.
Fri Oct 11 20:46:09 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: use __GNUC__ instead of __GCC__.
Fri Oct 11 20:35:59 2013 Koichi Sasada <ko1@atdot.net>
* gc.c, parse.y: support generational Symbol relatetd marking.
Each symbols has String objects respectively to represent
Symbols.
These objects are marked only when:
* full marking
* new symbols are added
This hack reduce symbols (related strings) marking time.
For example, on my Linux environment, the following code
"20_000_000.times{''}"
with 40k symbols (similar symbol number on Rails 3.2.14 app,
@jugyo tells me) boosts, from 7.3sec to 4.2sec.
` * internal.h: change prototype of rb_gc_mark_symbols().
Fri Oct 11 19:27:22 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-electric.el: Import ruby-electric.el 2.0.1 which fixes
a bug and a flaw with auto-end introduced in the revamp.
* ruby-forward-sexp is inappropriate here because it moves the
cursor past the keyword.
* Fix a reversed looking-back check in
ruby-electric--block-beg-keyword-at-point-p.
* Do not add end again if space or return is hit repeatedly
after a block beginning keyword.
Fri Oct 11 18:12:47 2013 Koichi Sasada <ko1@atdot.net>
* ext/objspace/gc_hook.c: prohibit reentrant.
Fri Oct 11 18:11:34 2013 Koichi Sasada <ko1@atdot.net>
* vm_trace.c (rb_postponed_job_flush): fix bit operation.
Fri Oct 11 17:33:24 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-electric.el: Import ruby-electric.el 2.0 from
https://github.com/knu/ruby-electric.el which integrates changes
from another fork by @qoobaa.
* Allow ruby-electric-mode to be disabled by introducing a
dedicated key map. Electric key bindings are now defined in
ruby-electric-mode-map instead of overwriting ruby-mode-map.
* Add ruby-electric-mode-hook.
* Use a remap in binding ruby-electric-delete-backward-char.
* Totally revamp electric keywords and then introduce electric
return. Modifier keywords are now properly detected making
use of ruby-mode's indentation level calculator, and
* block-mid keywords (then, else, elsif, when, rescue and
ensure) also become electric with automatic reindentation.
* Add standarized comments for ELPA integration.
* Fix interaction with smartparens-mode by disabling its end
keyword completion, since ruby-electric has become more clever
at it.
* The custom variable `ruby-electric-keywords` is changed to
`ruby-electric-keywords-alist`, allowing user to fine-grained
configuration.
Fri Oct 11 16:53:28 2013 Koichi Sasada <ko1@atdot.net>
* vm_trace.c (rb_postponed_job_flush): simplify.
Fri Oct 11 03:36:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* thread.c (rb_threadptr_execute_interrupts): flush postponed job only
once at last.
* vm_trace.c (rb_postponed_job_flush): defer calling postponed jobs
registered while flushing to get rid of infinite reentrance of
ObjectSpace.after_gc_start_hook. [ruby-dev:47400] [Bug #8492]
Thu Oct 10 23:04:00 2013 Masaki Matsushita <glass.saga@gmail.com>
* array.c (rb_ary_or): remove unused variables.
Thu Oct 10 23:01:16 2013 Masaki Matsushita <glass.saga@gmail.com>
* array.c (rb_ary_or): use rb_hash_keys().
Thu Oct 10 21:36:16 2013 Masaki Matsushita <glass.saga@gmail.com>
* array.c (rb_ary_compact_bang): use ary_resize_smaller().
Thu Oct 10 17:25:28 2013 Koichi Sasada <ko1@atdot.net>
* vm.c (vm_exec): support :b_return event for "lambda{return}.call".
[Bug #8622]
* test/ruby/test_settracefunc.rb: add a test.
Thu Oct 10 13:52:37 2013 Koichi Sasada <ko1@atdot.net>
* vm_trace.c (postponed_job): use preallocated buffer.
Pre-allocate MAX_POSTPONED_JOB (1024) sized buffer
and use it.
If rb_postponed_job_register() cause overflow, simply it
fails and returns 0.
And maybe rb_postponed_job_register() is signal safe.
* vm_core.h: change data structure.
Thu Oct 10 11:11:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm.c (Init_VM): hide also the singleton class of frozen-core, not
only frozen-core itself.
Thu Oct 10 06:02:08 2013 Koichi Sasada <ko1@atdot.net>
* test/ruby/test_rand.rb: fix r43224. local variable `e' is
no longer available.
Thu Oct 10 00:02:35 2013 Yusuke Endoh <mame@tsg.ne.jp>
* numeric.c (fix_aref): avoid a possible undefined behavior.
1L << 63 on 64-bit platform is undefined, at least, according to
ISO/IEC 9899 (C99) 6.5.7.
Wed Oct 9 23:57:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* object.c (id_for_attr): avoid inadvertent symbol creation.
Wed Oct 9 18:03:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_method.c (rb_attr): preserve encoding of the attribute ID in
error message.
Wed Oct 9 17:40:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* string.c (rb_fstring): because of lazy sweep, str may be unmarked
already and swept at next time, so mark it for the time being.
[ruby-core:57756]
Wed Oct 9 13:53:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* compar.c (cmp_eq): fail if recursion. [ruby-core:57736] [Bug #9003]
* thread.c (rb_exec_recursive_paired_outer): new function which is
combination of paired and outer variants.
Wed Oct 9 09:18:14 2013 Koichi Sasada <ko1@atdot.net>
* include/ruby/debug.h,
vm_backtrace.c (rb_profile_frame_full_label): add new C API
rb_profile_frame_full_label() which returns label with
qualified method name.
Note that in future version of Ruby label() may return
same return value of full_label().
* ext/-test-/debug/profile_frames.c,
test/-ext-/debug/test_profile_frames.rb: fix a test for this change.
Wed Oct 9 00:55:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* load.c (load_lock): display backtrace to $stderr at circular
require.
* vm_backtrace.c (rb_backtrace_print_to): new function to print
backtrace to the given output.
Tue Oct 8 21:03:35 2013 Koichi Sasada <ko1@atdot.net>
* vm_backtrace.c, include/ruby/debug.h: add new APIs
* VALUE rb_profile_frame_method_name(VALUE frame)
* VALUE rb_profile_frame_qualified_method_name(VALUE frame)
* iseq.c (rb_iseq_klass), internal.h: add new internal function
rb_iseq_method_name().
* ext/-test-/debug/profile_frames.c (profile_frames),
test/-ext-/debug/test_profile_frames.rb: add a test.
Tue Oct 8 16:11:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* array.c (rb_ary_uniq): use rb_hash_values(), as well as the case no
block is given.
* internal.h: define rb_hash_values() as internal API.
Tue Oct 8 13:53:21 2013 Masaki Matsushita <glass.saga@gmail.com>
* array.c (rb_ary_uniq): use rb_hash_keys().
* internal.h: define rb_hash_keys() as internal API.
* hash.c (rb_hash_keys): ditto.
Tue Oct 8 10:56:39 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* cont.c: disable FIBER_USE_NATIVE on GNU/Hurd because it doesn't
support a combination getcontext() and threads. Patch by
Gabriele Giacone (1o5g4r8o@gmail.com). [Bug #8990][ruby-core:57685]
Tue Oct 8 05:58:12 2013 Tanaka Akira <akr@fsij.org>
* lib/time.rb (Time.strptime): Time.strptime('0', '%s') returns local
time Time object as Ruby 2.0 and before.
Tue Oct 8 05:40:37 2013 Eric Hodel <drbrain@segment7.net>
* .travis.yml: Rebuild Travis CI's "ruby-head" version on successful
build. Patch by Konstantin Haase. [Fixes GH-417]
https://github.com/ruby/ruby/pull/417
Tue Oct 8 04:28:25 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-mode.el: Use preceding-char/following-char
(returning 0 at BOF/EOF) instead of char-before/char-after
(returning nil at BOF/EOF) to avoid error from char-syntax when
at BOF/EOF.
Tue Oct 8 04:12:45 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-additional.el (ruby-mode-set-encoding): Add a missing
else clause to unbreak with `cp932`, etc.
* misc/ruby-mode.el (ruby-mode-set-encoding): Ditto.
Tue Oct 8 03:57:34 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-additional.el (ruby-mode-set-encoding): Use
`default-buffer-file-coding-system` if the :prefer-utf-8
property is not available.
* misc/ruby-mode.el (ruby-mode-set-encoding): Ditto.
* misc/ruby-additional.el (ruby-encoding-map): Override the
default value.
Tue Oct 8 03:19:19 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-additional.el (ruby-mode-set-encoding): Add support
for `prefer-utf-8` which was introduced in Emacs trunk.
* misc/ruby-additional.el (ruby-encoding-map): Add a mapping from
`japanese-cp932` to `cp932` to fix the problem where saving a
source file written in Shift_JIS twice would end up having
`coding: japanese-cp932` which Ruby could not recognize.
* misc/ruby-additional.el (ruby-mode-set-encoding): Add support
for encodings mapped to nil in `ruby-encoding-map`.
* misc/ruby-additional.el (ruby-encoding-map): Map `us-ascii` and
`utf-8` to nil by default, meaning they need not be explicitly
declared in magic comment.
* misc/ruby-additional.el (ruby-encoding-map): Add type
declaration for better customize UI.
* misc/ruby-mode.el: Ditto for the above.
Tue Oct 8 00:14:53 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-additional.el: Add a standard header and footer,
including (provide 'ruby-additional).
Mon Oct 7 22:52:45 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-electric.el (ruby-electric-space-can-be-expanded-p):
Return nil to avoid "end" insertion when in smartparens-mode
that is configured to insert "end" for the same keyword.
* misc/ruby-electric.el (ruby-electric-keywords): New custom
variable to replace `ruby-electric-simple-keywords-re` with.
Mon Oct 7 22:52:16 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-additional.el: Use preceding-char/following-char
(returning 0 at BOF/EOF) instead of char-before/char-after
(returning nil at BOF/EOF) to avoid error from char-syntax when
at BOF/EOF.
Mon Oct 7 22:45:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* cont.c (FIBER_USE_NATIVE): split long conditions.
Mon Oct 7 20:29:31 2013 Zachary Scott <e@zzak.io>
* lib/time.rb: [DOC] typo in Time.rb overview by @srt32 [Fixes GH-416]
https://github.com/ruby/ruby/pull/416
Mon Oct 7 20:07:20 2013 Tanaka Akira <akr@fsij.org>
* lib/time.rb (Time.strptime): Use :offset.
Patch by Felipe Contreras. [ruby-core:57694]
Mon Oct 7 16:47:27 2013 Koichi Sasada <ko1@atdot.net>
* test/-ext-/debug/test_profile_frames.rb: rename class C to
something long name because one test depends on absence of
class ::C.
Mon Oct 7 16:33:10 2013 Koichi Sasada <ko1@atdot.net>
* ext/-test-/debug/profile_frames.c:
test/-ext-/debug/test_profile_frames.rb: add a test for new C-APIs.
Mon Oct 7 16:12:36 2013 Koichi Sasada <ko1@atdot.net>
* include/ruby/debug.h: add backtrace collecting APIs for profiler.
* int rb_profile_frames(int start, int limit, VALUE *buff, int *lines);
Collect information of frame information.
* VALUE rb_profile_frame_path(VALUE frame);
* VALUE rb_profile_frame_absolute_path(VALUE frame);
* VALUE rb_profile_frame_label(VALUE frame);
* VALUE rb_profile_frame_base_label(VALUE frame);
* VALUE rb_profile_frame_first_lineno(VALUE frame);
* VALUE rb_profile_frame_classpath(VALUE frame);
* VALUE rb_profile_frame_singleton_method_p(VALUE frame);
Get information about each frame.
These APIs are designed for profilers, for example, no object allocation,
and enough information for profilers.
In this version, this API collects only Ruby level frames.
This issue will be fixed after Ruby 2.1.
* vm_backtrace.c: implement above APIs.
* iseq.c (rb_iseq_klass): return local_iseq's class.
Mon Oct 7 14:26:01 2013 Koichi Sasada <ko1@atdot.net>
* proc.c: catch up last commit.
Type of return value of rb_iseq_first_lineno() is now VALUE.
* vm_insnhelper.c (argument_error): ditto.
* vm_method.c (rb_method_entry_make): ditto.
Mon Oct 7 14:07:45 2013 Koichi Sasada <ko1@atdot.net>
* iseq.c, internal.h: change to public (but internal) functions
* VALUE rb_iseq_path(VALUE iseqval);
* VALUE rb_iseq_absolute_path(VALUE iseqval);
* VALUE rb_iseq_label(VALUE iseqval);
* VALUE rb_iseq_base_label(VALUE iseqval);
* VALUE rb_iseq_first_lineno(VALUE iseqval);
And new (temporary) function:
* VALUE rb_iseq_klass(VALUE iseqval);
* iseq.c. vm_core.h (int rb_iseq_first_lineno): remove
function `int rb_iseq_first_lineno(const rb_iseq_t *iseq)'.
Use `VALUE rb_iseq_first_lineno(VALUE iseqval)' instead.
* proc.c. vm_insnhelper.c, vm_method.c: catch up this change.
Sun Oct 6 08:37:39 2013 Zachary Scott <e@zzak.io>
* lib/webrick.rb: [DOC] fix grammar in WEBrick overview [Fixes GH-413]
Based on patch by @chastell https://github.com/ruby/ruby/pull/413
Sat Oct 5 11:21:01 2013 Aaron Pfeifer <aaron.pfeifer@gmail.com>
* thread.c (terminate_atfork_i): fix locking mutexes not unlocked in
forks when not tracked in thread. [ruby-core:55102] [Bug #8433]
Fri Oct 4 19:54:09 2013 Zachary Scott <e@zzak.io>
* ext/dbm/dbm.c: [DOC] Fix wrong constant name in DBM by @edward
[Fixes GH-409] https://github.com/ruby/ruby/pull/409
Fri Oct 4 19:49:42 2013 Aman Gupta <ruby@tmm1.net>
* gc.c: rename heap.free_num as heap.swept_num to clarify meaning and
avoid confusion with objspace_free_num().
Fri Oct 4 19:02:01 2013 Aman Gupta <ruby@tmm1.net>
* gc.c (objspace_free_num): new method for available/free slots on
heap. [ruby-core:57633] [Bug #8983]
* gc.c (gc_stat): change heap_free_num definition to use new method.
* test/ruby/test_gc.rb: test for above.
Fri Oct 4 18:53:42 2013 Aman Gupta <ruby@tmm1.net>
* gc.c: add rb_objspace.limit to keep accurate count of total heap
slots [ruby-core:57633] [Bug #8983]
Fri Oct 4 09:32:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/csv.rb (CSV.foreach): support enumerator. based on a patch by
Hanmac (Hans Mackowiak) at [ruby-core:57643]. [ruby-core:57283]
[Feature #8929]
Thu Oct 3 18:20:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/win32.c (console_emulator_p, constat_handle): disable built-in
console colorizing when console-emulator-like DLL is injected.
[Feature #8201]
Thu Oct 3 18:01:44 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: define gc_profile_record::allocated_size if
CALC_EXACT_MALLOC_SIZE is true.
Thu Oct 3 13:42:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* common.mk (yes-test-sample): use RUNRUBY instead of MINIRUBY to set
runtime library path and run the built ruby. [Bug #8971]
Thu Oct 3 00:17:15 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-additional.el: Properly quote the body. An unquoted
body given to eval-after-load is evaluated immediately!
Wed Oct 2 21:38:30 2013 Yusuke Endoh <mame@tsg.ne.jp>
* ext/socket/ifaddr.c (rsock_getifaddrs): fix possible memory leak.
When a system had no interface, this function used xmalloc for root
but did not return any reference to it. This patch fixes it by
immediately returning an empty array if no interface is found.
Coverity Scan found this bug.
Wed Oct 2 21:37:04 2013 Yusuke Endoh <mame@tsg.ne.jp>
* random.c (make_seed_value): a local array declaration was accessed
out of scope. Coverity Scan found this bug.
Wed Oct 2 18:52:40 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: relax GC condition due to malloc_limit.
* gc.c (GC_MALLOC_LIMIT_MAX): change default value
(256MB -> 512MB) and permit zero to ignore max value.
* gc.c (vm_malloc_increase, vm_xrealloc): do not cause GC on realloc.
* gc.c (gc_before_sweep): change debug messages.
Wed Oct 2 16:26:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (rb_io_close_read): duplex IO should wait its child process
even after close_read.
Wed Oct 2 15:39:13 2013 NARUSE, Yui <naruse@ruby-lang.org>
* vm_core.h: use __has_attribute() instead of __clang__major__ because
clang says "Note that marketing version numbers should not be used
to check for language features, as different vendors use different
numbering schemes. Instead, use the Feature Checking Macros."
http://clang.llvm.org/docs/LanguageExtensions.html
Wed Oct 2 14:19:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (rb_io_close_write): detach tied IO for writing before closing
to get rid of race condition. [ruby-list:49598]
* io.c (rb_io_close_read): keep fptr in write_io to be discarded, to
fix freed pointer access when it is in use by other threads, and get
rid of potential memory/fd leak.
Tue Oct 1 23:44:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
* vm_core.h: use __attribute__((unused)) in UNINITIALIZED_VAR on clang
4.0+ instead of just on 4.2. Clang has supported the unused attribute
since before version 4, so this should be safe.
Tue Oct 1 22:03:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/tempfile.rb (Tempfile#unlink): finalizer is no longer needed
after unlinking. patched by by normalperson (Eric Wong) at
[ruby-core:56521] [Bug #8768]
Tue Oct 1 20:54:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* file.c (stat_new_0): constify.
* file.c (rb_stat_new): constify and export. based on a patch by
Hanmac (Hans Mackowiak) at [ruby-core:53225]. [Feature #8050]
Tue Oct 1 16:03:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* include/ruby/ruby.h (ruby_safe_level_4_warning): needed by extension
libraries which check safe level 4. [ruby-dev:47517] [Bug #8652]
Mon Sep 30 23:14:36 2013 Zachary Scott <e@zzak.io>
* ext/objspace/objspace.c: [DOC] Cleaned up many rdoc formatting
issues and several duplicate grammar bugs.
Mon Sep 30 23:01:01 2013 Zachary Scott <e@zzak.io>
* ext/objspace/object_tracing.c: [DOC] Adjust rdoc formatting and fix
small grammar typo
Mon Sep 30 17:28:39 2013 Koichi Sasada <ko1@atdot.net>
* ext/objspace/object_tracing.c: [DOC] add some notes for
ObjectSpace::trace_object_allocations.
Mon Sep 30 16:46:58 2013 Koichi Sasada <ko1@atdot.net>
* ext/objspace/object_tracing.c: add new 3 methods to control tracing.
* ObjectSpace::trace_object_allocations_start
* ObjectSpace::trace_object_allocations_stop
* ObjectSpace::trace_object_allocations_clear
And some refactoring.
* test/objspace/test_objspace.rb: add a test for new methods.
* NEWS: add a description for new methods.
Mon Sep 30 11:18:04 2013 Koichi Sasada <ko1@atdot.net>
* gc.c (rb_gc_disable): do rest_sweep() before disable GC.
This fix may solve a failure of
TestTracepointObj#test_tracks_objspace_events
[test/-ext-/tracepoint/test_tracepoint.rb:43].
Mon Sep 30 10:40:20 2013 Shugo Maeda <shugo@ruby-lang.org>
* vm_method.c (rb_undef): raise a NameError if the original method
of a refined method is not defined.
* vm_insnhelper.c (rb_method_entry_eq): added NULL check to avoid SEGV.
* test/ruby/test_refinement.rb: related test.
Sun Sep 29 23:45:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (rb_id_attrset, intern_str): allow junk attrset ID for
Struct.
* parse.y (rb_id_attrset): fix inconsistency with literals, allow
ID_ATTRSET and return it itself, but ID_JUNK cannot make ID_ATTRSET.
and raise a NameError instead of rb_bug() for invalid argument.
Sun Sep 29 18:45:05 2013 Kazuki Tsujimoto <kazuki@callcc.net>
* vm_insnhelper.c (vm_callee_setup_arg_complex, vm_yield_setup_block_args):
clear keyword arguments to prevent GC bug which occurs
while marking VM stack.
[ruby-dev:47729] [Bug #8964]
* test/ruby/test_keyword.rb: tests for the above.
Sat Sep 28 23:25:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* math.c (math_log, math_log2, math_log10): fix for Bignum argument.
numbits should be add only when right shifted.
Sat Sep 28 14:30:29 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* test/dl/test_base.rb: {libc, libm} detection now handle GNU/Hurd
correctly. Patch by Gabriele Giacone (1o5g4r8o@gmail.com).
[Bug #8937][ruby-core:57311]
* test/fiddle/helper.rb: ditto.
Sat Sep 28 00:19:41 2013 Shugo Maeda <shugo@ruby-lang.org>
* ext/curses/extconf.rb: check the size of chtype.
* ext/curses/curses.c (NUM2CH, CH2NUM): use proper macros for
the size of chtype.
[ruby-core:56090] [Bug #8659]
Fri Sep 27 18:33:23 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: add two GC tuning environment variables.
RUBY_GC_MALLOC_LIMIT_MAX and RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR.
See r43067 for details.
* gc.c (rb_gc_set_params): refactoring. And change verbose notation.
Mostly duplicated functions get_envparam_int/double is not cool.
Please rewrite it.
* test/ruby/test_gc.rb: fix a test for this change.
Fri Sep 27 17:44:41 2013 Koichi Sasada <ko1@atdot.net>
* gc.c (GC_MALLOC_LIMIT): 8,000,000 -> 8 * 1,024 * 1,024.
Fri Sep 27 17:19:39 2013 Koichi Sasada <ko1@atdot.net>
* gc.c (gc_before_sweep): cast to size_t to suppress warnings.
Fri Sep 27 17:07:55 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: add some fine-grained profiling codes to tuning marking phase.
If you enable RGENGC_PRINT_TICK to 1, then profiling results by RDTSC
(on x86/amd64 environment) are printed at last.
Thanks Yoshii-san.
Fri Sep 27 16:32:27 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: simplify threshold of GC caused by malloc_increase.
Now, malloc_limit is increased/decreased by mysterious logic.
This fix simplify malloc_limit increase/decrease logic such as:
if (malloc_increase > malloc_limit) /* so many malloc */
malloc_limit += malloc_limit * (GC_MALLOC_LIMIT_FACTOR-1);
else
malloc_limit -= malloc_limit * (GC_MALLOC_LIMIT_FACTOR-1)/4;
Default value of GC_MALLOC_LIMIT_FACTOR is 1.8.
malloc_limit is bounded by GC_MALLOC_LIMIT_MAX (256MB by default).
This logic runs at gc_before_sweep(). So there are no effect from
caused by lazy sweep. And we can remove malloc_increase2.
* gc.c (HEAP_MIN_SLOTS, FREE_MIN, HEAP_GROWTH_FACTOR): rename to
GC_HEAP_MIN_SLOTS, GC_FREE_MIN, GC_HEAP_GROWTH_FACTOR respectively.
Check them by `#ifndef' so you can specify these values outside gc.c.
* gc.c (ruby_gc_params_t): add initial_malloc_limit_factor and
initial_malloc_limit_max.
* gc.c (vm_malloc_prepare, vm_xrealloc): use vm_malloc_increase to
add and check malloc_increase.
Fri Sep 27 01:05:00 2013 Zachary Scott <e@zzak.io>
* re.c: [DOC] arguments of Regexp::union receive #to_regexp [Bug #8205]
Fri Sep 27 00:39:27 2013 Zachary Scott <e@zzak.io>
* struct.c: [DOC] grammar of ArgumentError in Struct.new [Bug #8936]
Patch by Prathamesh Sonpatki
Thu Sep 26 22:11:56 2013 Zachary Scott <e@zzak.io>
* ext/bigdecimal/bigdecimal.c: [DOC] several fixes by @chastell
This includes fixing the capitalization of Infinity, return value of
example "BigDecimal.new('NaN') == 0.0", and code style in example.
[Fixes GH-398] https://github.com/ruby/ruby/pull/398
Thu Sep 26 22:08:11 2013 Zachary Scott <e@zzak.io>
* lib/observer.rb: [DOC] syntax improvement in example by @chastell
[Fixes GH-400] https://github.com/ruby/ruby/pull/400
Thu Sep 26 22:03:15 2013 Zachary Scott <e@zzak.io>
* ext/digest/digest.c: [DOC] typo in overview by @chastell
[Fixes GH-399] https://github.com/ruby/ruby/pull/399
Thu Sep 26 22:00:42 2013 Zachary Scott <e@zzak.io>
* ext/openssl/ossl.c: [DOC] typo in example by @zoranzaric
[Fixes GH-401] https://github.com/ruby/ruby/pull/401
Thu Sep 26 21:07:49 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-electric.el (ruby-electric-delete-backward-char): Add
support for smartparens-mode.
* misc/ruby-electric.el (ruby-electric-cua-replace-region-maybe)
(ruby-electric-cua-delete-region-maybe): New functions that
combine `ruby-electric-cua-*-region` with
`ruby-electric-cua-*-region-p`, using a slightly better way to
detect if it is in cua-mode.
Thu Sep 26 16:51:00 2013 Shota Fukumori <her@sorah.jp>
* insns.def (opt_regexpmatch2): Check String#=~ hasn't overridden
before calling rb_reg_match().
* test/ruby/test_string.rb: Test for above.
* vm.c (vm_init_redefined_flag): Add BOP flag for String#=~
[ruby-core:57385] [Bug #8953]
Thu Sep 26 16:43:42 2013 Akinori MUSHA <knu@iDaemons.org>
* misc/ruby-electric.el: Avoid use of the interactive function
`self-insert-command` which fires `post-self-insert-hook` and
`post-command-hook`, to make the ruby-electric commands work
nicely with those minor modes that make use of them to do
similar input assistance, such as electric-pair-mode,
autopair-mode and smartparens-mode.
Thu Sep 26 16:24:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
* insns.def (opt_regexpmatch1): check Regexp#=~ is not defined before
calling rb_reg_match()
* test/ruby/test_regexp.rb: add test
* vm.c (ruby_vm_redefined_flag): change type to short[]
* vm.c (vm_redefinition_check_flag): return REGEXP_REDEFINED_OP_FLAG if
klass == rb_cRegexp
* vm.c (vm_init_redefined_flag): setup BOP flag for Regexp#=~
* vm_insnhelper.h: add REGEXP_REDEFINED_OP_FLAG
[ruby-core:57385] [Bug #8953]
Thu Sep 26 14:46:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* gc.c (mark_locations_array): disable AddressSanitizer. based on a
patch by halfie (Ruby Guy) at [ruby-core:57372].
[ruby-core:56155] [Bug #8680]
Wed Sep 25 17:41:29 2013 Koichi Sasada <ko1@atdot.net>
* README.EXT, README.EXT.ja: remove description of RARRAY_PTR()
and add a caution of accessing internal data structure directly.
Also add a description of rb_ary_store().
[Bug #8399]
Wed Sep 25 17:12:08 2013 Koichi Sasada <ko1@atdot.net>
* include/ruby/ruby.h: rename RARRAY_RAWPTR() to RARRAY_CONST_PTR().
RARRAY_RAWPTR(ary) returns (const VALUE *) type pointer and
usecase of this macro is not acquire raw pointer, but acquire
read-only pointer. So we rename to better name.
RSTRUCT_RAWPTR() is also renamed to RSTRUCT_CONST_PTR()
(I expect that nobody use it).
* array.c, compile.c, cont.c, enumerator.c, gc.c, proc.c, random.c,
string.c, struct.c, thread.c, vm_eval.c, vm_insnhelper.c:
catch up this change.
Wed Sep 25 16:58:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* internal.h (rb_float_value, rb_float_new): move inline functions
from ruby/ruby.h.
* numeric.c (rb_float_value, rb_float_new): define external functions
for extension libraries.
Wed Sep 25 15:37:02 2013 Koichi Sasada <ko1@atdot.net>
* test/rdoc/test_rdoc_generator_darkfish.rb: add a guard for windows.
Wed Sep 25 09:53:11 2013 Eric Hodel <drbrain@segment7.net>
* lib/rubygems: Fix CVE-2013-4363. Miscellaneous minor improvements.
* test/rubygems: Tests for the above.
Tue Sep 24 17:38:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* string.c (rb_str_inspect): get rid of out-of-bound access.
* string.c (rb_str_inspect): when a UTF-16/32 string doesn't have a
BOM, inspect as a dummy encoding string.
Tue Sep 24 17:15:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* enc/encdb.c (ENC_DUMMY_UNICODE): make BOM-encodings dummy.
* encoding.c (enc_autoload): keep dummy encodings dummy.
Tue Sep 24 16:41:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/win32/lib/win32/registry.rb (Win32::Registry#write): data size
is in bytes, not chars. terminators should be placed automatically.
Tue Sep 24 16:39:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/win32/lib/win32/registry.rb (Win32::Registry#each_value): encode
name.
* ext/win32/lib/win32/registry.rb (Win32::Registry#each_key): ditto.
* ext/win32/lib/win32/registry.rb (Win32::Registry#export_string):
encode to locale encoding if default internal is not set.
Tue Sep 24 16:35:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumKey):
size of the name is in WCHARs, not in bytes.
Tue Sep 24 14:07:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
* gc.c (free_method_cache_entry_i): unused function
* gc.c (rb_free_mc_table): ditto
* internal.h (method_cache_entry_t): unused struct
* vm_method.c (verify_method_cache): remove unused variable
* vm_method.c (rb_method_entry): ditto
Tue Sep 24 14:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
* class.c (class_alloc): remove mc_tbl
* gc.c (obj_free): ditto
* internal.h (struct rb_classext_struct): ditto
* method.h (rb_method_entry): remove ent param
* vm_method.c: restore the global method cache. Per class cache tables
turned out to be far too slow.
[ruby-core:57289] [Bug #8930]
Tue Sep 24 12:51:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/win32/lib/win32/registry.rb (Win32::Registry::API): need
Constants.
* ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumValue):
size of the name is in WCHARs, not in bytes.
Mon Sep 23 22:16:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* enc/encdb.c, enc/utf_16_32.h (ENC_DUMMY_UNICODE): Unicode with BOM
must be based on big endian variants, so that actual encodings would
work. [ruby-core:57318] [Bug #8940]
Mon Sep 23 12:11:26 2013 Masaki Matsushita <glass.saga@gmail.com>
* hash.c (env_each_pair): do not call rb_assoc_new() if
it isn't needed.
Mon Sep 23 10:42:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* test/ruby/test_module.rb (TestModule#test_include_toplevel): test
for top level main.include. based on a part of the patch by
kyrylo at [GH-395].
Mon Sep 23 05:07:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* include/ruby/intern.h (rb_ary_cat): move from internal.h, since it
is described in README.EXT.
Sun Sep 22 20:55:20 2013 Kazuki Tsujimoto <kazuki@callcc.net>
* vm_insnhelper.c (vm_make_proc_with_iseq): fix bug message.
This is follow up to changes in r42637.
Sun Sep 22 20:35:38 2013 Kazuki Tsujimoto <kazuki@callcc.net>
* ext/-test-/tracepoint/tracepoint.c (Init_tracepoint): prevent from GC.
Sun Sep 22 19:00:28 2013 Benoit Daloze <eregontp@gmail.com>
* benchmark/bm_app_answer.rb: revert r42990, benchmark scripts should
be self-contained and avoid dependencies, especially such small one.
See https://github.com/ruby/ruby/pull/393#issuecomment-24861301.
Sat Sep 21 20:11:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* process.c (rb_fork_internal): remove cloexec setting on pipes
created by rb_cloexec_pipe. patch by normalperson (Eric Wong) at
[ruby-core:56523]. [Bug #8769]
Sat Sep 21 01:04:25 2013 Zachary Scott <e@zzak.io>
* lib/benchmark.rb: [DOC] grammar of Benchmark#bm [Bug #8888]
Patch by Prathamesh Sonpatki
Sat Sep 21 00:50:02 2013 Zachary Scott <e@zzak.io>
* enumerator.c: [DOC] Enumerator#each arguments documentation [GH-388]
Patch by @kachick https://github.com/ruby/ruby/pull/388
Sat Sep 21 00:49:16 2013 Zachary Scott <e@zzak.io>
* enum.c: [DOC] Enumerable#to_a accepts arguments [GH-388]
Patch by @kachick https://github.com/ruby/ruby/pull/388
Sat Sep 21 00:47:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* string.c (rb_str_conv_enc_opts): make sure to scan coderange to get
rid of unnecessary conversion.
Sat Sep 21 00:21:08 2013 Zachary Scott <e@zzak.io>
* ext/openssl/lib/openssl/ssl.rb: [DOC] Document OpenSSL::SSLServer
Based on a patch by Rafal Lisowski [Bug #8758]
Fri Sep 20 23:54:03 2013 Zachary Scott <e@zzak.io>
* lib/gserver.rb: [DOC] correct gserver.rb license [Bug #8913]
Fri Sep 20 23:48:34 2013 Zachary Scott <e@zzak.io>
* ext/psych/yaml/yaml.h: [DOC] merge upstream typo fix by @GreenGeorge
https://github.com/tenderlove/psych/pull/161
Fri Sep 20 23:37:40 2013 Zachary Scott <e@zzak.io>
* lib/securerandom.rb: [DOC] SecureRandom.hex length argument
[Fixes GH-394] Patch by @avdi https://github.com/ruby/ruby/pull/394
Fri Sep 20 23:34:48 2013 Zachary Scott <e@zzak.io>
* benchmark/bm_app_answer.rb: removed duplicate code [Fixes GH-393]
Patch by @gouravtiwari https://github.com/ruby/ruby/pull/393
Fri Sep 20 23:24:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* common.mk (btest, btest-ruby, test-knownbug): add $(RUN_OPTS) to
ruby to be run, so that tests are runnable before making exts.
* common.mk (test-sample): ditto, and use $(MINIRUBY) as rubytest.rb
does not need extension libraries.
* tool/rubytest.rb: pass $(RUN_OPTS) to testing ruby using --run-opt.
Fri Sep 20 15:01:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (intern_str): sigil only names are junk, at least one
identifier character is needed. [ruby-dev:47723] [Bug #8928]
* parse.y (rb_enc_symname_type): fix out of bound access.
Fri Sep 20 14:14:32 2013 Tanaka Akira <akr@fsij.org>
* ext/-test-/printf/printf.c (printf_test_call): Fix an end of buffer
argument.
Thu Sep 19 16:59:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (lambda): adjust position to the beginning of the block.
Thu Sep 19 16:25:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vsnprintf.c (BSD_vfprintf): initialize cp so that size is 0 in the
commented case. fix an accidental bug at r16716.
Thu Sep 19 14:33:14 2013 Koichi Sasada <ko1@atdot.net>
* NEWS: add a news for r42974.
Thu Sep 19 14:12:02 2013 Koichi Sasada <ko1@atdot.net>
* include/ruby/ruby.h: make Symbol objects frozen.
[Feature #8906]
I want to freeze this good day, too.
* test/ruby/test_eval.rb: catch up this change.
* test/ruby/test_symbol.rb: add a test to check frozen symbols.
Thu Sep 19 09:11:33 2013 Eric Hodel <drbrain@segment7.net>
* NEWS: Update for RDoc 4.1.0.preview.1 and RubyGems 2.2.0.preview.1
Thu Sep 19 08:59:41 2013 Eric Hodel <drbrain@segment7.net>
* lib/rdoc/markdown/literals_1_9.rb: Fix trailing whitespace.
Previously kpeg (which generates this file) added trailing
whitespace, but this bug is now fixed.
* lib/rdoc/markdown.rb: ditto.
Thu Sep 19 08:33:14 2013 Eric Hodel <drbrain@segment7.net>
* lib/rdoc: Update to RDoc 4.1.0.preview.1