/
ChangeLog
7638 lines (4784 loc) · 251 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 4 23:26:22 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* include/ruby/win32.h: fix macro name for VC runtime version,
RT_VER is only in Makefile.
Fri Sep 4 17:46:17 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* doc/contributing.rdoc: fix configuration option.
[ci skip] [fix GH-1009]
Fri Sep 4 04:46:54 2015 Koichi Sasada <ko1@atdot.net>
* iseq.c (iseq_memsize): functions for wrapper object should have
iseqw_ prefix.
Thu Sep 3 21:12:12 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/cgi/session.rb (create_new_id): use SHA512 instead of MD5.
pointed out by SARWAR JAHAN.
Thu Sep 3 20:29:18 2015 Koichi Sasada <ko1@atdot.net>
* gc.c (rb_raw_obj_info): iseq->body->location.first_lineno is Fixnum.
Thu Sep 3 17:54:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_eval.c (raise_method_missing): "names" should be singular.
pointed out by Filip Bartuzi.
Thu Sep 3 17:50:09 2015 Koichi Sasada <ko1@atdot.net>
* gc.c (rb_raw_obj_info): should support IMEMO/iseq.
Thu Sep 3 10:07:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_eval.c (raise_method_missing): refine error messages when a
symbol is not given. [Fix GH-1013]
Wed Sep 2 18:49:55 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* ext/psych/*: merge psych master(8737e5b). It contains following fixes.
https://github.com/tenderlove/psych/pull/242
https://github.com/tenderlove/psych/pull/246 [ruby-list:50219]
* test/psych/*: ditto.
Wed Sep 2 18:04:13 2015 Koichi Sasada <ko1@atdot.net>
* vm_insnhelper.h (GET_PC_COUNT): remove unused macro.
Wed Sep 2 17:18:37 2015 Chris Schneider <chris@christopher-schneider.com>
* process.c (proc_detach): [DOC] fix typo "intent" as "intend" in
rdoc. [Fix GH-1011]
Wed Sep 2 16:58:21 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* file.c (rb_realpath_internal): use filesystem encoding if the
argument is in ASCII encodings.
* win32/file.c (rb_readlink): needs the result encoding.
Tue Sep 1 18:37:15 2015 Koichi Sasada <ko1@atdot.net>
* test/thread/test_queue.rb: catch up last commit.
Tue Sep 1 18:16:32 2015 Koichi Sasada <ko1@atdot.net>
* thread_sync.c (queue_do_close): ignore multiple close to allow
multiple producers.
https://bugs.ruby-lang.org/issues/10600#note-14
Tue Sep 1 18:06:26 2015 Koichi Sasada <ko1@atdot.net>
* thread_tools.c: rename thread_tools.c to thread_sync.c.
Mon Aug 31 17:04:45 2015 Koichi Sasada <ko1@atdot.net>
* class.c (move_refined_method): should insert a write barrier
from an original class to a created (cloned) method entry.
* test/ruby/test_refinement.rb: add a test.
Sun Aug 30 02:42:22 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_ssl_method_tab): Only add SSLv3 support
if the SSL library supports it. Thanks Kurt Roeckx <kurt@roeckx.be>
[Bug #11376]
* ext/openssl/extconf.rb: check for SSLv3 support in the SSL
implementation.
* test/openssl/test_ssl.rb (class OpenSSL): Skip tests that need SSLv3
if there is no support.
Fri Aug 28 16:05:09 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* lib/rdoc/*: Update rdoc master(cfffed5)
https://github.com/rdoc/rdoc/pull/337
https://github.com/rdoc/rdoc/pull/367
Fri Aug 28 10:16:20 2015 Koichi Sasada <ko1@atdot.net>
* vm.c (hook_before_rewind): prevent kicking :return event while
finishing vm_exec func because invoke_block_from_c() kick a :return
event for bmethods.
[Bug #11492]
* test/ruby/test_settracefunc.rb: add a test.
Thu Aug 27 18:05:42 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* lib/webrick/server.rb: use IO::NULL instead of '/dev/null'
* test/ruby/test_string.rb: ditto.
Thu Aug 27 15:24:57 2015 Koichi Sasada <ko1@atdot.net>
* compile.c (iseq_set_sequence): rename variable names
to make it readable.
Thu Aug 27 07:45:34 2015 Koichi Sasada <ko1@atdot.net>
* thread_tools.c: add Queue#close(exception=false) and
SizedQueue#close(exception=false).
[Feature #10600]
Trying to deq from a closed empty queue return nil
if exception parameter equals to false (default).
If exception parameter is truthy, it raises
ClosedQueueError (< StopIteration).
ClosedQueueError inherits StopIteration so that you can write:
loop{ e = q.deq; (using e) }
Trying to close a closed queue raises ClosedQueueError.
Blocking threads to wait deq for Queue and SizedQueue will be
restarted immediately by returning nil (exception=false) or
raising a ClosedQueueError (exception=true).
Blocking threads to wait enq for SizedQueue will be
restarted by raising a ClosedQueueError immediately.
The above specification is not proposed specification, so that
we need to continue discussion to conclude specification this
method.
* test/thread/test_queue.rb: add tests originally written by
John Anderson and modify detailed behavior.
Wed Aug 26 10:52:02 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* re.c (rb_memsearch_wchar, rb_memsearch_qchar): test matching
till the end of string. [ruby-core:70592] [Bug #11488]
* test/ruby/test_m17n.rb (test_include?, tet_index): add tests by
Tom Stuart.
Wed Aug 26 09:26:00 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* id_table.c (list_table_extend, hash_table_extend): remove C99
features. [ruby-dev:49239] [Bug #11487]
Tue Aug 25 06:34:43 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/win32.c (w32_symlink): implement symlink().
Mon Aug 24 16:01:19 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* encoding.c (rb_locale_encindex): find encoding index without
making a string object every time. [ruby-core:58160] [Bug #9080]
Sat Aug 22 15:43:12 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_eval.c (check_funcall_failed, check_funcall_missing): cache
results of respond_to? and respond_to_missing?, and search a
public method only for compatibility with rb_respond_to.
Sat Aug 22 08:23:32 2015 Koichi Sasada <ko1@atdot.net>
* ext/thread/thread.c: move definitions of Queue, SizedQueue
and ConditionalVariables to thread_tools.c. In other words,
such classes are built-in.
[Feature #8919]
At first, I planned to embed only a Queue class.
However, rubygems requires 'thread.rb' (rubygems are
required at first, when launch MRI without --disable-gems).
So most of people require 'thread.rb' as an embedded library.
Now, ext/thread/thread.c is empty, only for a dummy for
compatibility.
* thread.c: move a definition of Mutex class to thread_tools.c.
And define Mutex class under Thread (so now Mutex is Thread::Mutex).
Because other thread related classes are also defined under Thread.
We remain ::Mutex as Thread::Mutex. Only an inspect result is changed.
* common.mk: add dependency from thread.o to thread_tools.c.
Sat Aug 22 05:31:37 2015 Koichi Sasada <ko1@atdot.net>
* vm_opts.h, iseq.c, iseq.h: add compile option to force frozen
string literals.
[Feature #11473]
This addition is not specification change, but to try frozen
string literal world discussed on [Feature #11473].
You can try frozen string literal world using this magical line:
RubyVM::InstructionSequence.compile_option =
{frozen_string_literal: true}
Note that this is a global compilation option, so that you need to
compile another script like that:
p 'foo'.frozen? #=> false
RubyVM::InstructionSequence.compile_option =
{frozen_string_literal: true}
p 'foo'.frozen? #=> false, because this line is already compiled.
p eval("'foo'.frozen?") #=> true
Details:
* String literals are deduped by rb_fstring().
* Dynamic string literals ("...#{xyz}...") is now only frozen,
not deduped. Maybe you have other ideas.
Now, please do not use this option on your productions :)
Of course, current specification can be changed.
* compile.c: ditto.
* test/ruby/test_iseq.rb: add a test.
Sat Aug 22 02:53:12 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/psych/*: update to Psych 2.0.14
* test/psych/*: ditto
Fri Aug 21 19:58:48 2015 Koichi Sasada <ko1@atdot.net>
* ext/objspace/objspace.c: add a new method ObjectSpace.count_symbols.
[Feature #11158]
* symbol.c (rb_sym_immortal_count): added to count immortal symbols.
* symbol.h: ditto.
* test/objspace/test_objspace.rb: add a test for this method.
* NEWS: describe about this method.
Fri Aug 21 19:48:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/Makefile.sub ($(LIBRUBY_SO)): needs additional libraries
for extension libraries to link statically.
[ruby-core:70499] [Feature #9018]
Fri Aug 21 18:49:22 2015 Koichi Sasada <ko1@atdot.net>
* include/ruby/ruby.h, cont.c, vm_trace.c: add a new event
fiber_switch. We need more discussion about this feature
so that I don't write it on NEWS.
[Feature #11348]
* test/ruby/test_settracefunc.rb: add tests.
Fri Aug 21 17:32:42 2015 Koichi Sasada <ko1@atdot.net>
* vm_insnhelper.c (vm_invoke_block): we should not expect ci->argc is
stable after invoking a block. [Bug #11451]
* test/ruby/test_yield.rb: add a test. This test script is given by
Alex Dowad.
Fri Aug 21 06:35:50 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* test/openssl/test_ssl_session.rb: Fix tests so that they take in to
account OpenSSL installations that have SSLv3 disabled by default.
Thanks Jeremy Evans <code@jeremyevans.net> for the patches.
[Bug #11366] [Bug #11367]
Thu Aug 20 22:19:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_method.c (basic_obj_respond_to): call respond_to_missing?
only when redefined. [ruby-core:70460] [Bug #11465]
Thu Aug 20 14:13:27 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_eval.c (check_funcall_respond_to): share the behavior with
rb_obj_respond_to. [ruby-core:70460] [Bug #11465]
* vm_method.c (vm_respond_to): extract from rb_obj_respond_to and
merge r39881.
Thu Aug 20 08:53:09 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_method.c (rb_obj_respond_to): reuse found method entry
instead of searching same entry repeatedly.
Thu Aug 20 08:31:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* dir.c (replace_real_basename), win32/win32.c (opendir_internal):
check reparse point tags and treat supported tags only as
symbolic links. [ruby-core:70454] [Bug #11462]
Wed Aug 19 23:59:28 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): add OP_ALL to
existing options rather than just setting it. Some vendors apply
custom patches to their versions of OpenSSL that set default values
for options. This commit respects the custom patches they've
applied.
* test/openssl/test_ssl.rb (class OpenSSL): check that OP_ALL has been
added to the options.
Wed Aug 19 23:55:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* process.c (rb_f_spawn): [DOC] elaborate environment variable
values. [ruby-core:70456] [Bug #11463]
Wed Aug 19 23:48:06 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/win32.c (winnt_lstat): check reparse point tags and treat
supported tags only as symbolic links.
[ruby-core:70454] [Bug #11462]
Tue Aug 18 20:05:49 2015 NARUSE, Yui <naruse@ruby-lang.org>
* thread_pthread.c (reserve_stack): ensure the memory is really
allocated. [Bug #11457]
Tue Aug 18 17:19:21 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (IS_BEG): include labeled argument state, which was
EXPR_LABELARG. [ruby-dev:49221] [Bug #11456]
Tue Aug 18 16:16:21 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* include/ruby/ruby.h (RClass): define only in C, `__attribute__`
between `struct` and the name can't compile with g++.
[ruby-core:70297] [Bug #11426]
Mon Aug 17 20:56:36 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y: fix syntax error at do-block after a conditional
operator. separate label-allowed and after-a-label states from
others as bit flags. [ruby-dev:48790] [Bug #10653]
Mon Aug 17 11:57:36 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (rb_io_each_codepoint): raise an exception at incomplete
character before EOF when conversion takes place. [Bug #11444]
Sun Aug 16 17:33:45 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* gems/bundled_gems: update latest version of bundled gems.
It includes minitest-5.8.0 and test-unit 3.1.3.
Sun Aug 16 17:24:10 2015 Kazuki Tsujimoto <kazuki@callcc.net>
* gc.c (gc_mark_children): check if RCLASS_EXT is valid
before marking. This fixes the following test failure
introduced in r51126:
make test-all TESTOPTS='--gc-stress ruby/test_refinement.rb'
Sat Aug 15 10:51:08 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/win32/lib/win32/registry.rb (API#SetValue): data size should
be in bytes, not in chars. [ruby-core:70365] [Bug #11439]
Sat Aug 15 10:15:20 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (rb_io_each_codepoint): read more data when read partially.
[ruby-core:70379] [Bug #11444]
Sat Aug 15 04:33:39 2015 Eric Wong <e@80x24.org>
* hash.c (any_hash): skip rb_objid_hash for static syms
(rb_num_hash_start): extract from rb_ident_hash
(rb_objid_hash): call rb_num_hash_start
(rb_ident_hash): ditto
[ruby-core:70181] [Feature #11405]
Sat Aug 15 04:16:13 2015 Eric Wong <e@80x24.org>
* iseq.c (rb_iseq_mark): reduce NULL checks
Fri Aug 14 18:50:57 2015 Eric Wong <e@80x24.org>
* method.h (METHOD_ENTRY_VISI_SET): cast visi to int
(METHOD_ENTRY_FLAGS_SET): ditto
Fri Aug 14 18:43:11 2015 Eric Wong <e@80x24.org>
* process.c (close_unless_reserved): add extra check
(dup2_with_divert): remove
(redirect_dup2): use dup2 without divert
(before_exec_non_async_signal_safe): adjust call + comment
(rb_f_exec): stop timer thread for all OSes
(rb_exec_without_timer_thread): remove
* eval.c (ruby_cleanup): adjust call
* thread.c (rb_thread_stop_timer_thread): always close pipes
* thread_pthread.c (struct timer_thread_pipe): add writing field,
mark owner_process volatile for signal handlers
(rb_thread_wakeup_timer_thread_fd): check valid FD
(rb_thread_wakeup_timer_thread): set writing flag to prevent close
(rb_thread_wakeup_timer_thread_low): ditto
(CLOSE_INVALIDATE): new macro
(close_invalidate): new function
(close_communication_pipe): removed
(setup_communication_pipe_internal): make errors non-fatal
(setup_communication_pipe): ditto
(thread_timer): close reading ends inside timer thread
(rb_thread_create_timer_thread): make errors non-fatal
(native_stop_timer_thread): close write ends only, always,
wait for signal handlers to finish
(rb_divert_reserved_fd): remove
* thread_win32.c (native_stop_timer_thread): adjust (untested)
(rb_divert_reserved_fd): remove
* vm_core.h: adjust prototype
[ruby-core:70386] [Bug #11336]
Fri Aug 14 18:40:43 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/win32/lib/win32/registry.rb (API#SetValue): add terminator
size, not 1 byte. [ruby-core:70365] [Bug #11439]
Thu Aug 13 22:49:42 2015 Juanito Fatas <katehuang0320@gmail.com>
* lib/timeout.rb (Timeout#timeout): freeze a string message to
reduce string allocations. [Fix GH-996]
Thu Aug 13 17:42:34 2015 Koichi Sasada <ko1@atdot.net>
* vm_core.h (rb_call_info_kw_arg_bytes): move the definition
to iseq.h because this function is shared with iseq.c and compile.c.
Thu Aug 13 14:36:31 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* object.c (rb_num_to_dbl): move from num2dbl_with_to_f in math.c.
Thu Aug 13 09:01:25 2015 Eric Wong <e@80x24.org>
* load.c (features_index_add): avoid repeat calculation
Wed Aug 12 21:57:31 2015 Koichi Sasada <ko1@atdot.net>
* id_table.c: IMPL() macro accept op as _opname instead of opname
because jemalloc seems to replace the word `free' to `je_free'.
Wed Aug 12 21:51:11 2015 Koichi Sasada <ko1@atdot.net>
* id_table.c (mix_id_table_insert): fix memory leak.
Wed Aug 12 21:17:38 2015 Eric Wong <e@80x24.org>
* iseq.c (iseq_memsize): reimplement for wrapper
(param_keyword_size): extracted from iseq_memsize
(iseqw_mark): new mark function
(iseqw_data_type): new data type
(iseqw_new): wrap as iseqw_data_type
(iseqw_check): adjust for wrapper
(Init_ISeq): remove iseqw_iseq_key initialization
* test/objspace/test_objspace.rb: new test
[ruby-core:70344] [Feature #11435]
Wed Aug 12 21:15:27 2015 Eric Wong <e@80x24.org>
* vm_core.h (rb_call_info_kw_arg_bytes): extract from compile.c
* compile.c (iseq_build_callinfo_from_hash): use above function
Wed Aug 12 18:00:17 2015 Koichi Sasada <ko1@atdot.net>
* class.c (move_refined_method): same as the last commit.
Wed Aug 12 17:57:53 2015 Koichi Sasada <ko1@atdot.net>
* class.c, gc.c vm.c: use ID_TABLE_* instead of ST_*
(such as ST_CONTINUE) for enum rb_id_table_iterator_result.
Wed Aug 12 17:05:36 2015 Koichi Sasada <ko1@atdot.net>
* id_table.h: introduce ID key table.
[Feature #11420]
This table only manage ID->VALUE table to reduce overhead of st.
Some functions prefixed rb_id_table_* are provided.
* id_table.c: implement rb_id_table_*.
There are several algorithms to implement it.
Now, there are roughly 4 types:
* st
* array
* hash (implemented by Yura Sokolov)
* mix of array and hash
The macro ID_TABLE_IMPL can choose implementation.
You can see detailes about them at the head of id_table.c.
At the default, I choose 34 (mix of list and hash).
This is not final decision.
Please report your suitable parameters or
your data structure.
* symbol.c: introduce rb_id_serial_t and rb_id_to_serial()
to represent ID by serial number.
* internal.h: use id_table for method tables.
* class.c, gc.c, marshal.c, vm.c, vm_method.c: ditto.
Wed Aug 12 05:19:11 2015 Eric Wong <e@80x24.org>
* parse.y (rb_parser_compile_cstr): remove volatile arg
(rb_parser_compile_string): ditto
(rb_parser_compile_file): ditto
(rb_parser_compile_string_path): ditto
(rb_parser_compile_file_path): ditto
[ruby-core:70323] [Misc #11431]
Tue Aug 11 22:59:57 2015 Tanaka Akira <akr@fsij.org>
* numeric.c (Init_Numeric): Fix document for Float::MIN and
Float::EPSILON.
Tue Aug 11 15:22:31 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* include/ruby/ruby.h (ALLOCV_N): check integer overflow, as well
as ruby_xmalloc2. pointed out by Paul <pawlkt AT gmail.com>.
Tue Aug 11 14:57:09 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* array.c (rb_ary_repeated_permutation): fix buffer size, ALLOCV_N
already multiplies element size.
Tue Aug 11 12:13:20 2015 Jeremy Evans <merch-redmine@jeremyevans.net>
* test/openssl/test_ssl.rb: Fix LocalJumpErrors being raised
in OpenSSL tests. [ruby-core:70020][Bug #11368]
Tue Aug 11 11:54:13 2015 Alexey Lipnyagov <liptonshmidt@gmail.com>
* string.c: Fix documentation for String#slice
[ruby-core:70298][Bug #11427]
Tue Aug 11 11:53:28 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (superclass): make superclass rule optional and allow
any contents without a terminator. [EXPERIMENTAL]
Tue Aug 11 10:58:42 2015 Juanito Fatas <juanitofatas@gmail.com>
* string.c: [DOC] Make #end_with? example doc symmetry
with #start_with? [fix GH-992][ci skip]
Tue Aug 11 10:51:19 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* test/ruby/test_array.rb: Add test for `Array#flatten` with level 1
[fix GH-986] Patch @yui-knk
Tue Aug 11 10:48:16 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* enum.c: added doc for Enumerable#zip
[fix GH-985] Patch by @yui-knk
* test/ruby/test_enum.rb: added tests for Enumerable#zip
[fix GH-985] Patch @yui-knk
Tue Aug 11 10:33:26 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* vm_method.c: typo fix [fix GH-993][ci skip] Patch by @0x0dea
* test/ruby/test_refinement.rb: ditto.
Sun Aug 9 14:15:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm.c (Init_vm_objects, rb_vm_fstring_table): use frozen_strings
table in rb_vm_t. [ruby-core:70274] [Bug #11423]
Sat Aug 8 03:59:51 2015 Zachary Scott <zzak@ruby-lang.org>
* object.c: [DOC] Improve grammar for Module#===
Patch by @SkyBirdSoar in documenting-ruby/ruby#52:
https://github.com/documenting-ruby/ruby/pull/52
Sat Aug 8 03:39:33 2015 Zachary Scott <zzak@ruby-lang.org>
* hash.c: [DOC] Improve description of symbol key syntax
Patch by Raphael Das Gupta in documenting-ruby/ruby#51:
https://github.com/documenting-ruby/ruby/pull/51
Fri Aug 7 21:04:19 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (parser_params): turn in_def and in_single into bit
flags and reduce the size by 2-words.
* parse.y (parser_params): remove redundant prefixes.
* parse.y (yylex): non-pure parser has not been supported since
merger of ripper. change argument types from void pointers.
Fri Aug 7 17:07:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* proc.c (method_super_method): uncallable method entry does not
have the defined class, use the owner instead.
[ruby-core:70254] [Bug #11419]
* test/ruby/test_method.rb (test_super_method_unbound): add test
by Akira Matsuda.
Thu Aug 6 10:49:57 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* node.c (rb_alloc_tmp_buffer): round up the size and check the
range.
* ruby_atomic.h (ATOMIC_VALUE_EXCHANGE, ATOMIC_VALUE_CAS): add
atomic operations for VALUE.
Thu Aug 6 08:15:49 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move
SSLSocket#sysclose to Ruby.
* ext/openssl/ossl_ssl.c (ossl_ssl_close): ditto
Thu Aug 6 07:57:21 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move nonblock
enable to SSLSocket#initialize and remove Nonblock module.
Thu Aug 6 07:53:47 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move
OpenSSL::SSL::SSLSocket#initialize to Ruby.
* ext/openssl/ossl_ssl.c: ditto
Thu Aug 6 02:25:31 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* node.c (rb_alloc_tmp_buffer): use NODE_ALLOCA to mark locations
like as builtin alloca. [ruby-core:70251] [Bug #11418]
Wed Aug 5 14:37:55 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* transcode.c (rb_econv_open0): rb_econv_t::source_encoding_name
and rb_econv_t::destination_encoding_name should refer static
strings always or NULL. [ruby-core:70247] [Bug #11416]
Tue Aug 4 16:53:43 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): extract callback
lookup to private Ruby methods. This means we can keep the default
DH callback logic hidden from consumers. Also, since the SSLSocket
always has a context, we can remove conditionals about that
instance.
* ext/openssl/ossl_ssl.c: move callback lookup methods to private Ruby
methods.
Tue Aug 4 16:40:26 2015 Koichi Sasada <ko1@atdot.net>
* test/ruby/test_module.rb: should not expect a method table ordering.
[Feature #11414]
Tue Aug 04 15:30:04 2015 Koichi Sasada <ko1@atdot.net>
* proc.c (rb_block_clear_env_self): clear by Qfalse instead of Qnil.
[Bug #11409]
* test/ruby/test_eval.rb: add tests for this issue,
written by @0x0dea.
https://github.com/ruby/ruby/pull/988
Tue Aug 4 12:12:14 2015 Eric Wong <e@80x24.org>
* variable.c: wrap long lines
Tue Aug 4 09:32:30 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* proc.c: Removing duplicate doc [fix GH-987][ci skip]
Patch by @ronakjangir47
Tue Aug 4 09:21:58 2015 Richard Schneeman <richard.schneeman+foo@gmail.com>
* doc/contributing.rdoc: fixed wrong instructions with OS X
[fix GH-989][ci skip] Patch by @schneems
Mon Aug 3 10:08:33 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* re.c (rb_memsearch): should match only char boundaries in wide
character encodings. [ruby-core:70220] [Bug #11413]
Sun Aug 2 07:01:17 2015 Eric Wong <e@80x24.org>
* ext/openssl/lib/openssl/buffering.rb (gets):
avoid comparing fixnum with nil
* test/openssl/test_pair.rb: test gets with limit when EOF is hit
Thanks to Bar Hofesh <bar.hofesh@safe-t.com> for the bug report
and testing.
[ruby-core:70149] [Bug #11400]
Sat Aug 1 17:13:15 2015 Kazuki Tsujimoto <kazuki@callcc.net>
* lib/net/http/response.rb (Net::HTTPResponse::Inflater#finish):
fix a bug that empty gzipped response body causes Zlib::BufError.
[ruby-core:68846] [Bug #11058]
* test/net/http/test_httpresponse.rb: tests for the above.
Sat Aug 1 17:05:18 2015 Kazuki Tsujimoto <kazuki@callcc.net>
* lib/net/http/response.rb (Net::HTTPResponse#inflater):
fix TypeError. An exception object might be nil.
[ruby-core:68846] [Bug #11058]
Sat Aug 1 09:09:46 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): Implement
SSLContext#options and options= using SSL_CTX_set_options and
SSL_CTX_get_options. This reduces the number of ivars we need and
simplifies `ossl_sslctx_setup`.
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): Default `options`
to SSL_OP_ALL
Sat Aug 1 06:54:36 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (Init_ossl_ssl): OpenSSL declares these
constants as longs, so we should follow that and use LONG2NUM.
http://git.io/vOqxD
Sat Aug 1 04:06:29 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_call_tmp_dh_callback): change callback
to return the Ruby dh (or ecdh) object that the caller cares about
instead of doing rb_iv_get / set to communicate. This means we can
remove an rb_iv_get call, and only use the set calls for their
intended purpose (to prevent the object from being GC'd).
* ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto
* ext/openssl/ossl_ssl.c (ossl_call_tmp_ecdh_callback): ditto
* ext/openssl/ossl_ssl.c (ossl_tmp_ecdh_callback): ditto
Sat Aug 1 03:49:31 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_call_tmp_dh_callback): Similarly to the
tmp_ecdh_callback, the SSLSocket instance always holds a reference
to the SSLContext object (it's always set in `initialize`). The
SSLContext holds a reference to the tmp_dh_callback. Ask the
context for the callback instead of storing the callback in two
places.
Sat Aug 1 03:43:10 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_call_tmp_dh_callback): create an array
and use `rb_apply` to clean up calls to `rb_protect`.
* ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto
Sat Aug 1 03:27:12 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_call_tmp_ecdh_callback): The SSL socket
always holds a reference to the SSLContext object, which will have
the callback object. Ask the context for the callback instead of
storing the callback in two places.
Sat Aug 1 03:14:07 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): convert
`tmp_dh_callback` to Ruby, and call it when setting up an SSL
connection. This allows us to move the "default" behavior to the
reader method.
* ext/openssl/ossl_ssl.c: call the tmp_dh_callback instead of
accessing the SSLContext's internals.
Fri Jul 31 23:34:27 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* .travis.yml: update libssl before running tests.
Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for figuring out the
travis settings!
Fri Jul 31 21:34:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* load.c (rb_require_internal): use rb_load_internal0 not to raise
a exception to be caught.
Thu Jul 30 13:19:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* variable.c (rb_const_get_0): warn deprecated constant reference.
* variable.c (rb_mod_deprecate_constant): mark constants to be
warned as deprecated. [Feature #11398]
Thu Jul 30 11:53:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* thread.c (rb_thread_s_handle_interrupt): make identity hash, to
compare masking classes just by their IDs.
Thu Jul 30 11:52:55 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* load.c (rb_load_internal0): stop separating exits at loading
from exits from execution. TAG_FATAL is the only case that
`errinfo` is a Fixnum, and should continue to exit by JUMP_TAG
but not raising as an ordinary exception.
[ruby-core:70169] [Bug #11404]
Thu Jul 30 10:42:27 2015 Alex Dowad <alexinbeijing@gmail.com>
* load.c (rb_load_internal0): extra check before returning
TAG_RAISE when a non-local transfer of control happens while
loading and parsing a Ruby source file.
[ruby-core:70169] [Bug #11404]
Thu Jul 30 08:48:42 2015 Eric Wong <e@80x24.org>
* st.c (find_entry): constify st_table*
(find_packed_index_from): ditto
(find_packed_index): ditto
(get_keys): ditto
(get_values): ditto
Thu Jul 30 04:29:25 2015 Eric Wong <e@80x24.org>
* benchmark/bm_hash_aref_dsym.rb: new benchmark
* benchmark/bm_hash_aref_dsym_long.rb: ditto
* benchmark/bm_hash_aref_fix.rb: ditto
Wed Jul 29 21:38:41 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* hash.c (any_hash), symbol.c (dsymbol_alloc): fix dynamic symbol
hash value by restricting in Fixnum range, that is `long`.
Wed Jul 29 17:25:46 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* hash.c (rb_obj_hash): move in order to share with rb_any_hash.
Wed Jul 29 16:00:22 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* string.c (str_buf_cat): consider empty non-embed string case,
not to loop infinitely. [ruby-core:70074] [Bug #11383]
Wed Jul 29 15:25:19 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_eval.c (send_internal): set method_missing_reason before
invoking overriding method_missing method so that the default
method_missing can achieve it properly.
[ruby-core:68515] [Bug #10969]
Wed Jul 29 14:54:16 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* hash.c (rb_sym_hash): return same value as rb_any_hash() of
Symbol. [Bug #9381]
* hash.c (rb_any_hash): fix Float hash. rb_dbl_hash() returns a
Fixnum, but not a long. [Bug #9381]
Wed Jul 29 11:07:10 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* internal.h (LIKELY, UNLIKELY): make a boolean to enforce 1 or 0.
Wed Jul 29 10:44:43 2015 Alex Dowad <alexinbeijing@gmail.com>
* gc.c: document argument passed to finalizer proc.
[fix GH-976][ci skip] Patch by @alexdowad
Wed Jul 29 10:36:58 2015 NARUSE, Yui <naruse@ruby-lang.org>
* io.c (rb_io_extract_modeenc): add option parameter `flags'
to append extra oflags to normal mode.
[Feature #11253] [ruby-core:69539]
Wed Jul 29 04:54:47 2015 Eric Wong <e@80x24.org>
* test/rubygems/test_gem_remote_fetcher.rb: pre-generate test key
[ruby-core:70151] [Bug #11397]
Tue Jul 28 10:32:09 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* internal.h (struct RClass): moved from ruby/ruby.h to hide the
internals.
Tue Jul 28 08:48:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (RUBY_TYPE_ATTRIBUTE): attribute declaration for
types.
Tue Jul 28 07:23:03 2015 Eric Wong <e@80x24.org>
* symbol.h (struct RSymbol): add hashval field
* symbol.c (dsymbol_alloc): setup hashval field once
* hash.c (rb_any_hash): return RSymbol->hashval directly
* common.mk: hash.o depends on symbol.h
Thanks to Bruno Escherl <bruno@escherl.net> for the bug report
[ruby-core:70129] [Bug #11396]
Tue Jul 28 03:26:15 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): raise a more
helpful exception when verifying the peer connection and an
anonymous cipher has been selected. [ruby-core:68330] [Bug #10910]
Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for the patch.
* test/openssl/test_ssl.rb (class OpenSSL): test for change
Mon Jul 27 13:24:11 2015 Koichi Sasada <ko1@atdot.net>
* template/id.h.tmpl (ID2ATTRSET): remove an unused macro.
Mon Jul 27 12:21:15 2015 NAKAMURA Usaku <usa@ruby-lang.org>
* test/openssl/test_ssl.rb: run tests on non-Unix platforms.
Sun Jul 26 19:21:31 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_ssl_alpn_protocol): fix condition
to compile, needs ALPN to be available. [Feature #9390]
Sun Jul 26 11:29:01 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* signal.c (default_handler, Init_signal): discard SIGSYS, ENOSYS
should raise a SystemCallError always instead.
Sun Jul 26 10:26:35 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/ossl_ssl.c (ossl_call_servername_cb): set the ssl context
object returned by the servername callback on to the socket as an
instance variable. If the callback allocated a new context object
and didn't keep a reference to it, it could be GC'd out from under
the socket object.
* test/openssl/test_ssl.rb (class OpenSSL): test for change.
Sun Jul 26 10:07:26 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* test/openssl/test_ssl.rb (class OpenSSL): add test coverage around
OpenSSL::SSL::SSLContext#servername_cb
Sun Jul 26 09:10:32 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* gems/bundled_gems: update latest version of bundled power_assert.
Sun Jul 26 08:49:28 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* test/rubygems/test_gem_remote_fetcher.rb: backport rubygems upstream
change for OpenSSL key length. see detail to
https://github.com/rubygems/rubygems/pull/1290
Sun Jul 26 08:33:03 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/pkey.rb: implement DEFAULT_512 and
DEFAULT_1024 constants in Ruby.
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): Ask PKey for the
default DH callback since it already must check whether openssl has
been compiled with DH support.
* ext/openssl/ossl_pkey_dh.c (OSSL_PKEY_BN): Remove C definitions of
DEFAULT_512 and DEFAULT_1024
* ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): ditto
* test/openssl/test_pkey_dh.rb (class OpenSSL): add test to ensure the
Ruby definitions are the same as the C definitions were.
Sun Jul 26 08:14:59 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): support
specifically setting the tmp_dh_callback to nil.
* ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto
* test/openssl/test_pair.rb (module OpenSSL): add a test
Sun Jul 26 07:47:14 2015 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move the default
tmp_dh_callback Ruby code and set it as a default in `initialize`.
* ext/openssl/ossl_pkey_dh.c (static unsigned char DEFAULT_DH_512_GEN):
move this constant to Ruby.
* ext/openssl/ossl_pkey_dh.c (static unsigned char DEFAULT_DH_1024_GEN):
ditto
* ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): ditto
* ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto
* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): tmp_dh_callback should
always be set, so we can remove this conditional