forked from ruby/ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
5070 lines (3187 loc) · 172 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
Mon May 23 15:52:07 2016 NAKAMURA Usaku <[email protected]>
* ext/bigdecimal/bigdecimal.c (isfinite): isfinite does not always
exist. fixed build error on Windows itroduced at r55123.
Mon May 23 13:19:41 2016 Nobuyoshi Nakada <[email protected]>
* include/ruby/ruby.h (rb_scan_args0): make compile error if the
format is wrong or does not match with the variable argument
length if possible.
Mon May 23 12:47:09 2016 Nobuyoshi Nakada <[email protected]>
* include/ruby/ruby.h (rb_scan_args0): raise fatal error if
variable argument length does not match, it is a bug in the code
which uses rb_scan_args, not a runtime error.
Mon May 23 12:30:29 2016 Nobuyoshi Nakada <[email protected]>
* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
non-finite float values not to raise FloatDomainError.
[ruby-core:75682] [Bug #12414]
Mon May 23 12:21:18 2016 NARUSE, Yui <[email protected]>
* array.c (rb_ary_fill): suppress warnings: 'item' may be used
uninitialized in this function
Mon May 23 07:41:49 2016 Eric Wong <[email protected]>
* dir.c (dir_close): update RDoc for 2.3 #close change
[ruby-core:75679] [Bug #12413]
Sun May 22 20:01:21 2016 Masatoshi SEKI <[email protected]>
* lib/drb/timeridconv.rb: use finalizer trick instead of thread.
* test/drb/ut_timerholder.rb: ditto.
Sun May 22 17:25:18 2016 Martin Duerst <[email protected]>
* test/ruby/enc/test_case_options.rb: adjust test class name
to match file name
Sun May 22 17:24:07 2016 Martin Duerst <[email protected]>
* rename test/ruby/enc/test_casing_options.rb to test_case_options.rb
for consistency
Sun May 22 17:06:55 2016 Nobuyoshi Nakada <[email protected]>
* transcode.c (enc_arg, str_transcode_enc_args, econv_args):
remove volatile, and add GC guards in callers.
[ruby-core:75664] [Bug #12411]
Sun May 22 16:27:00 2016 Nobuyoshi Nakada <[email protected]>
* ext/-test-/integer/core_ext.c: move testutil/integer.c.
* test/lib/-test-/integer.rb: extract implementation details from
test/unit/assertions.rb. [Bug #12408]
Sun May 22 14:57:43 2016 Martin Duerst <[email protected]>
* include/ruby/oniguruma.h: Extend OnigEncodingTypeDefine to define a
new encoding primitive 'case_map' for case mapping
* enc/utf-8.c, utf_16be/le.c, utf_32be/le.c:
add onigenc_unicode_case_map as case_map primitive
* enc/ascii.c, big5.c, cp949.c, emacs_mule.c, euc_jp/kr/tw.c, gb18030.c,
gbk.c, iso_8859_1/2/3/4/5/6/7/8/9/10/11/13/14/15/16.c, koi8_r/u.c,
shift_jis.c, us_ascii.c, windows_1250/1251/1252.c:
add onigenc_not_support_case_map as case_map primitive
Sun May 22 14:45:45 2016 Martin Duerst <[email protected]>
* regenc.h/c: Define new function onigenc_not_support_case_map
Sun May 22 12:14:06 2016 NARUSE, Yui <[email protected]>
* include/ruby/ruby.h (rb_scan_args): use original rb_scan_args
when fmt is dynamic.
Sun May 22 11:41:12 2016 NARUSE, Yui <[email protected]>
* class.c (rb_scan_args): moved to bottom of the file to make the
effect of `#undef rb_scan_args` the minimum.
* include/ruby/ruby.h (rb_scan_args): overwrite only if GCC and
optimized. Visual C++ 14 or later can compile it but make it
conservative.
Sat May 21 22:45:50 2016 NAKAMURA Usaku <[email protected]>
* include/ruby/ruby.h (rb_scan_args): don't use ALWAYS_INLINE with
`inline`. if gcc needs this duplication, do in ALWAYS_INLINE macro.
Sat May 21 21:11:56 2016 NARUSE, Yui <[email protected]>
* include/ruby/ruby.h (rb_scan_args): use __VA_ARGS__ instead of
va_arg to allow compilers optimize more aggressive.
https://gustedt.wordpress.com/2011/07/10/avoid-writing-va_arg-functions/
rb_scan_args is now expected to be statically resolved.
Sun May 22 02:41:52 2016 NARUSE, Yui <[email protected]>
* ext/zlib/zlib.c: remove hacky macro introduced at r30437.
* ext/zlib/zlib.c (gzfile_make_header): cast as long (instead of int).
* ext/zlib/zlib.c (gzfile_make_footer): ditto.
Sat May 21 21:07:18 2016 NARUSE, Yui <[email protected]>
* configure.in (ALWAYS_INLINE): force compilers the function inlined.
Sat May 21 16:16:03 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl_ssl.c (ossl_ssl_stop): Don't free the SSL struct
here. Since some methods such as SSLSocket#connect releases GVL,
there is a chance of use after free if we free the SSL from another
thread. SSLSocket#stop was documented as "prepares it for another
connection" so this is a slightly incompatible change. However when
this sentence was added (r30090, Add toplevel documentation for
OpenSSL, 2010-12-06), it didn't actually. The current behavior is
from r40304 (Correct shutdown behavior w.r.t GC., 2013-04-15).
[ruby-core:74978] [Bug #12292]
* ext/openssl/lib/openssl/ssl.rb (sysclose): Update doc.
* test/openssl/test_ssl.rb: Test this.
Sat May 21 14:41:14 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl.c: [DOC] Fix SSL client example. The variable name
was wrong. Patch by Andreas Tiefenthaler <[email protected]> (@pxlpnk).
[GH ruby/openssl#32]
Sat May 21 14:25:38 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl_pkey_ec.c: rename PKey::EC#private_key? and
#public_key? to #private? and #public? for consistency with other
PKey types. Old names remain as alias. [ruby-core:45541] [Bug #6567]
* test/openssl/test_pkey_ec.rb (test_check_key): check private? and
public? works correctly.
Sat May 21 12:40:36 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/lib/openssl/buffering.rb (read_nonblock, readpartial):
Remove impossible EOFError raise. Patch by Zach Anker
<[email protected]>. [GH ruby/openssl#23]
Sat May 21 11:18:42 2016 Evgeni Golov <[email protected]>
* lib/ipaddr.rb: [DOC] fix documentation of IN6MASK to mention
IPv6. [Fix GH-1349]
Sat May 21 11:12:53 2016 Dan Martinez <[email protected]>
* io.c (Init_IO): [DOC] define dummy ARGF instead of ARGF.class to
re-enable the generation of ARGF documentation. [Fix GH-1358]
Sat May 21 11:07:29 2016 0x01f7 <[email protected]>
* doc/syntax/methods.rdoc (Method Names): add proper closing tag.
[Fix GH-1356]
Sat May 21 09:26:28 2016 Nobuyoshi Nakada <[email protected]>
* configure.in (RUBY_CHECK_SETJMP): fix missing macro definition
for the configured result. fix up r55021.
Sat May 21 00:36:32 2016 Nobuyoshi Nakada <[email protected]>
* process.c (rb_execarg_commandline): build command line string
from argument vector in rb_execarg.
[ruby-core:75611] [Bug #12398]
Fri May 20 23:25:42 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl.c (ossl_pem_passwd_value): Added. Convert the
argument to String with StringValue() and validate the length is in
4..PEM_BUFSIZE. PEM_BUFSIZE is a macro defined in OpenSSL headers.
(ossl_pem_passwd_cb): When reading/writing encrypted PEM format, we
used to pass the password to PEM_def_callback() directly but it was
problematic. It is not NUL character safe. And surprisingly, it
silently truncates the password to 1024 bytes. [GH ruby/openssl#51]
* ext/openssl/ossl.h: Add function prototype declaration of newly
added ossl_pem_passwd_value().
* ext/openssl/ossl_pkey.c (ossl_pkey_new_from_data): Use
ossl_pem_passwd_value() to validate the password String.
* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize, ossl_dsa_export):
ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize,
ossl_ec_key_to_string): ditto.
* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize, ossl_rsa_export):
ditto.
* test/openssl/test_pkey_{dsa,ec,rsa}.rb: test this.
Fri May 20 23:45:53 2016 Naohisa Goto <[email protected]>
* id_table.c (list_id_table_init): When unaligned word access is
prohibited and sizeof(VALUE) is 8 (64-bit machines),
capa should always be even number for 8-byte word alignment
of the values of a table. This code assumes that sizeof(ID) is 4,
sizeof(VALUE) is 8, and xmalloc() returns 8-byte aligned memory.
This fixes bus error on 64-bit SPARC Solaris 10.
[Bug #12406][ruby-dev:49631]
Fri May 20 22:30:09 2016 Naohisa Goto <[email protected]>
* symbol.h (rb_id2sym): Use HAVE_BUILTIN___BUILTIN_CONSTANT_P
Fri May 20 22:19:00 2016 Kazuhiro NISHIYAMA <[email protected]>
* ext/date/date_core.c: [DOC] fix typos.
[fix GH-1360] patched by @soundasleep
Fri May 20 21:26:58 2016 Naohisa Goto <[email protected]>
* include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK):
macros for skipping __extension__ on non-GCC compilers.
* eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of
__extension__ because __extension__ is a GNU extension.
Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x.
[Bug #12397] [ruby-dev:49629].
* internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
* include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
* include/ruby/intern.h (rb_str_new, rb_str_new_cstr,
rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr,
rb_usascii_str_new_cstr, rb_utf8_str_new_cstr,
rb_external_str_new_cstr, rb_locale_str_new_cstr,
rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto
Fri May 20 21:17:13 2016 Nobuyoshi Nakada <[email protected]>
* ext/win32ole/win32ole.c (fole_missing): make substring or dup to
share the content if possible.
Fri May 20 19:48:48 2016 Nobuyoshi Nakada <[email protected]>
* internal.h (NEW_PARTIAL_MEMO_FOR): shrink buffer array not to
mark non-VALUE fields. fix check_rvalue_consistency abort with
RGENGC_CHECK_MODE=2.
* internal.h (NEW_CMP_OPT_MEMO): exclude struct cmp_opt_data from
the valid array range.
* enum.c (slicewhen_i): exclude inverted too.
Thu May 19 21:21:57 2016 Kazuhiro NISHIYAMA <[email protected]>
* re.c (rb_reg_match_m_p): [DOC] fix return value in rdoc.
* test/ruby/test_regexp.rb (TestRegexp#test_match_p): add some
tests from document.
Thu May 19 13:22:44 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl.c (Init_openssl): register an ex_data index for
X509_STORE and X509_STORE_CTX respectively. Since they don't share
the ex_data index registry, we can't use the same index.
(ossl_verify_cb): use the the correct index.
* ext/openssl/ossl_ssl.c (ossl_ssl_verify_callback): ditto.
* ext/openssl/ossl_x509store.c (ossl_x509store_set_vfy_cb): ditto.
(ossl_x509stctx_verify): ditto.
* ext/openssl/ossl.h (void ossl_clear_error): add extern declarations
of ossl_store_{ctx_,}ex_verify_cb_idx.
* ext/openssl/openssl_missing.c: remove X509_STORE_set_ex_data and
X509_STORE_get_ex_data.
* ext/openssl/openssl_missing.h: implement X509_STORE_get_ex_data,
X509_STORE_set_ex_data and X509_STORE_get_ex_new_index as macros.
Thu May 19 13:11:35 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): check that the
argument is an OpenSSL::ASN1::Data before converting to ASN1_TYPE.
This fixes SEGV on OpenSSL::X509::Attribute#value=(non-asn1-value).
* test/openssl/test_x509attr.rb: add tests for OpenSSL::X509::Attribute.
Thu May 19 12:10:10 2016 Nobuyoshi Nakada <[email protected]>
* re.c (rb_reg_match_m_p): fix match against empty string.
rb_str_offset returns the end when the position exceeds the
length. fix the range parameter of onig_search.
[ruby-core:75604] [Bug #12394]
Thu May 19 11:37:36 2016 Nobuyoshi Nakada <[email protected]>
* re.c (rb_reg_match_m_p): should return false if no match, as the
document says. [Feature #8110]
Thu May 19 00:17:01 2016 NARUSE, Yui <[email protected]>
* re.c (reg_names_iter): specify capacify
Wed May 18 21:29:59 2016 NAKAMURA Usaku <[email protected]>
* thread.c (recursive_list_access): a object id may be a Bignum. so,
the list must be a objhash, instead of a identhash.
this fixes many test errors on mswin64 CI.
Wed May 18 19:33:54 2016 NARUSE, Yui <[email protected]>
* re.c (rb_reg_match_m_p): Introduce Regexp#match?, which returns
bool and doesn't save backref.
Wed May 18 16:52:03 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): pop errors
leaked by PKCS12_parse(). This is a bug in OpenSSL, which exists
in the versions before the version 1.0.0t, 1.0.1p, 1.0.2d.
Wed May 18 16:04:54 2016 Nobuyoshi Nakada <[email protected]>
* tool/downloader.rb (Downloader::RubyGems.download): verify gems
only if RubyGems is 2.4 or later. old RubyGems fails to verify
almost all of bundled gems.
Wed May 18 14:52:38 2016 Nobuyoshi Nakada <[email protected]>
* string.c (rb_str_modify_expand): check integer overflow.
[ruby-core:75592] [Bug #12390]
Wed May 18 13:11:44 2016 NARUSE, Yui <[email protected]>
* re.c (match_ary_subseq): get subseq of match array without creating
temporary array.
* re.c (match_ary_aref): get element(s) of match array without creating
temporary array.
* re.c (match_aref): Use match_ary_subseq with handling irregulars.
* re.c (match_values_at): Use match_ary_aref.
Wed May 18 13:03:07 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl_x509cert.c (ossl_x509_verify): X509_verify()
family may put errors on 0 return (0 means verification failure).
Clear OpenSSL error queue before return to Ruby. Since the queue is
thread global, remaining errors in the queue can cause an unexpected
error in the next OpenSSL operation. [ruby-core:48284] [Bug #7215]
* ext/openssl/ossl_x509crl.c (ossl_x509crl_verify): ditto.
* ext/openssl/ossl_x509req.c (ossl_x509req_verify): ditto.
* ext/openssl/ossl_x509store.c (ossl_x509stctx_verify): ditto.
* ext/openssl/ossl_pkey_dh.c (dh_generate): clear the OpenSSL error
queue before re-raising exception.
* ext/openssl/ossl_pkey_dsa.c (dsa_generate): ditto.
* ext/openssl/ossl_pkey_rsa.c (rsa_generate): ditto.
* ext/openssl/ossl_ssl.c (ossl_start_ssl): ditto.
* test/openssl: check that OpenSSL.errors is empty every time after
running a test case.
Wed May 18 12:07:42 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl.c (ossl_clear_error): Extracted from
ossl_make_error(). This prints errors in the OpenSSL error queue if
OpenSSL.debug is true, and clears the queue.
(ossl_make_error): use ossl_clear_error().
* ext/openssl/ossl.h: add prototype declaration of ossl_make_error().
(OSSL_BIO_reset) use ossl_clear_error() to clear the queue. Clearing
silently makes debugging difficult.
* ext/openssl/ossl_engine.c (ossl_engine_s_by_id): ditto.
* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): ditto.
* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_verify): ditto.
* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize): ditto.
(ossl_ec_group_initialize): ditto.
* ext/openssl/ossl_ssl.c (ossl_ssl_shutdown): ditto.
Wed May 18 11:53:49 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl_pkey_ec.c (ossl_ec_point_mul): Validate the
arguments before passing to EC_POINT(s)_mul(). Add description of this
method. [ruby-core:65152] [Bug #10268]
* test/openssl/test_pkey_ec.rb (test_ec_point_mul): Test that
OpenSSL::PKey::EC::Point#mul works.
Wed May 18 11:19:59 2016 Kazuki Yamaguchi <[email protected]>
* ext/openssl/ossl_bn.c (try_convert_to_bnptr): Extracted from
GetBNPtr(). This doesn't raise exception but returns NULL on error.
(GetBNPtr): Raise TypeError if conversion fails.
(ossl_bn_eq): Implement BN#==.
(ossl_bn_eql): #eql? should not raise TypeError even if the argument
is not compatible with BN.
(ossl_bn_hash): Implement BN#hash.
* ext/openssl/ossl_bn.c (Init_ossl_bn): Define #== and #hash.
* test/openssl/test_bn.rb: Test BN#eql?, #== and #hash
Wed May 18 10:17:41 2016 Nobuyoshi Nakada <[email protected]>
* include/ruby/ruby.h (RB_INTEGER_TYPE_P): new macro and
underlying inline function to check if the object is an
Integer (Fixnum or Bignum).
Wed May 18 09:52:00 2016 Kenta Murata <[email protected]>
* enum.c (enum_sum, hash_sum, hash_sum_i, enum_sum_i, sum_iter):
Optimize for hashes when each method isn't redefined.
Wed May 18 09:14:00 2016 Kenta Murata <[email protected]>
* enum.c (enum_sum, int_range_sum): Extract int_range_sum from
enum_sum.
Wed May 18 03:16:06 2016 Nobuyoshi Nakada <[email protected]>
* re.c (match_values_at): fix regression at r55036.
MatchData#values_at accepts Range.
Wed May 18 02:02:58 2016 NARUSE, Yui <[email protected]>
* re.c (match_aref): remove useless condition and call rb_fix2int.
rb_reg_nth_match handles negative index.
Wed May 18 01:57:43 2016 NARUSE, Yui <[email protected]>
* re.c (match_values_at): MatchData#values_at supports named captures
[Feature #9179]
* re.c (namev_to_backref_number): separated.
Wed May 18 00:05:00 2016 Kenta Murata <[email protected]>
* enum.c (enum_sum): Optimize for a range from int to int.
* test/ruby/test_enum.rb (test_range_sum): Move from test_range.rb,
and add assertions for some conditions.
* test/ruby/test_enum.rb (test_hash_sum): Move from test_hash.rb.
* test/ruby/test_hash.rb, test/ruby/test_range.rb: Remove test_sum.
Tue May 17 23:08:00 2016 Kenta Murata <[email protected]>
* enum.c (enum_sum): [DOC] Write documentation.
Tue May 17 22:53:00 2016 Kenta Murata <[email protected]>
* enum.c (enum_sum): Implement Enumerable#sum.
* test/ruby/test_enum.rb (test_sum): Test sum for Enumerable.
* test/ruby/test_hash.rb (test_sum): Test sum for Hash.
* test/ruby/test_range.rb (test_sum): Test sum for Range.
Tue May 17 22:11:41 2016 Tanaka Akira <[email protected]>
* object.c, numeric.c, enum.c, ext/-test-/bignum/mul.c,
lib/rexml/quickpath.rb, lib/rexml/text.rb, lib/rexml/xpath_parser.rb,
lib/rubygems/specification.rb, lib/uri/generic.rb,
bootstraptest/test_eval.rb, basictest/test.rb,
test/-ext-/bignum/test_big2str.rb, test/-ext-/bignum/test_div.rb,
test/-ext-/bignum/test_mul.rb, test/-ext-/bignum/test_str2big.rb,
test/csv/test_data_converters.rb, test/date/test_date.rb,
test/json/test_json_generate.rb, test/minitest/test_minitest_mock.rb,
test/openssl/test_cipher.rb, test/rexml/test_jaxen.rb,
test/ruby/test_array.rb, test/ruby/test_basicinstructions.rb,
test/ruby/test_bignum.rb, test/ruby/test_case.rb,
test/ruby/test_class.rb, test/ruby/test_complex.rb,
test/ruby/test_enum.rb, test/ruby/test_eval.rb,
test/ruby/test_iseq.rb, test/ruby/test_literal.rb,
test/ruby/test_math.rb, test/ruby/test_module.rb,
test/ruby/test_numeric.rb, test/ruby/test_range.rb,
test/ruby/test_rational.rb, test/ruby/test_refinement.rb,
test/ruby/test_rubyvm.rb, test/ruby/test_struct.rb,
test/ruby/test_variable.rb, test/rubygems/test_gem_specification.rb,
test/thread/test_queue.rb: Use Integer instead of Fixnum and Bignum.
Tue May 17 15:26:10 2016 Tanaka Akira <[email protected]>
* [Feature #12005] Unify Fixnum and Bignum into Integer
* include/ruby/ruby.h (rb_class_of): Return rb_cInteger for fixnums.
* insns.def (INTEGER_REDEFINED_OP_FLAG): Unified from
FIXNUM_REDEFINED_OP_FLAG and BIGNUM_REDEFINED_OP_FLAG.
* vm_core.h: Ditto.
* vm_insnhelper.c (opt_eq_func): Use INTEGER_REDEFINED_OP_FLAG instead
of FIXNUM_REDEFINED_OP_FLAG.
* vm.c (vm_redefinition_check_flag): Use rb_cInteger instead of
rb_cFixnum and rb_cBignum.
(C): Use Integer instead of Fixnum and Bignum.
* numeric.c (fix_succ): Removed.
(Init_Numeric): Define Fixnum as Integer.
* bignum.c (bignew): Use rb_cInteger instead of rb_cBignum.
(rb_int_coerce): replaced from rb_big_coerce and return fixnums
as-is.
(Init_Bignum): Define Bignum as Integer.
Don't define ===.
* error.c (builtin_class_name): Return "Integer" for fixnums.
* sprintf.c (ruby__sfvextra): Use rb_cInteger instead of rb_cFixnum.
* ext/-test-/testutil: New directory to test.
Currently it provides utilities for fixnum and bignum.
* ext/json/generator/generator.c: Define mInteger_to_json.
* lib/mathn.rb (Fixnum#/): Redefinition removed.
Tue May 17 11:58:58 2016 Nobuyoshi Nakada <[email protected]>
* configure.in (RUBY_CHECK_BUILTIN_SETJMP): declare t as NORETURN
to suppress warnings by -Wsuggest-attribute=noreturn.
[ruby-core:75510] [Bug #12383]
Tue May 17 10:40:18 2016 Nobuyoshi Nakada <[email protected]>
* configure.in (RUBY_CHECK_SETJMP): needs the header and proper
arguments for builtin setjmp functions.
Mon May 16 20:00:30 2016 Martin Duerst <[email protected]>
* enc/unicode.h: Additional uses of ONIG_CASE_MAPPING compilation switch
Mon May 16 19:46:33 2016 Martin Duerst <[email protected]>
* include/ruby/oniguruma.h: Introducing ONIG_CASE_MAPPING compilation
switch
* include/ruby/oniguruma.h, enc/unicode.h: Using ONIG_CASE_MAPPING
compilation switch
Mon May 16 19:29:31 2016 SHIBATA Hiroshi <[email protected]>
* gems/bundled_gems: Update xmlrpc-0.1.1. xmlrpc-0.1.0 didn't allow
to install on 2.4.0dev.
Mon May 16 13:28:59 2016 Nobuyoshi Nakada <[email protected]>
* configure.in (FUNC_STDCALL, FUNC_CDECL, FUNC_FASTCALL): set
macro names explicitly to the old names, which are accidentally
changed at r54985, for backward compatibilities.
fiddle also depends on these names to fallback to ANSI names.
[ruby-core:75494] [Bug #12377]
Mon May 16 11:39:02 2016 SHIBATA Hiroshi <[email protected]>
* lib/xmlrpc.rb, lib/xmlrpc/*, test/xmlrpc: XMLRPC is bundled gem
on Ruby 2.4. It is extracted to https://github.com/ruby/xmlrpc
[Feature #12160][ruby-core:74239]
* gems/bundled_gems: ditto.
Mon May 16 06:06:21 2016 Eric Wong <[email protected]>
* proc.c: fix RDoc of Proc#===/call/yield/[]
[Bug #12332]
Sun May 15 20:55:31 2016 Masatoshi SEKI <[email protected]>
* lib/drb/timeridconv.rb: don't use keeper thread. [Bug #12342]
* test/drb/ut_timerholder.rb: ditto.
Sun May 15 16:15:25 2016 NARUSE, Yui <[email protected]>
* array.c (rb_ary_entry): extract rb_ary_elt to organize if-conditions
and check whether is embedded at once.
Sun May 15 10:57:26 2016 Nobuyoshi Nakada <[email protected]>
* vm_insnhelper.c (vm_get_ev_const): warn deprecated constant even
in the class context. [ruby-core:75505] [Bug #12382]
Sun May 15 03:13:01 2016 NARUSE, Yui <[email protected]>
* iseq.h (struct iseq_compile_data): use struct rb_id_table
instead of st_table.
* iseq.c (prepare_iseq_build): don't allocate ivar_cache_table
until it has at least one element.
* iseq.c (compile_data_free): free ivar_cache_table only if it
is allocated.
* compile.c (get_ivar_ic_value): allocate if the table is not
allocated yet.
Sat May 14 09:04:34 2016 Nobuyoshi Nakada <[email protected]>
* lib/mkmf.rb (pkg_config): use xsystem consistently to set up
library path environment variable as well as latter pkg-config
calls. [ruby-dev:49619] [Bug #12379]
Sat May 14 00:16:54 2016 Nobuyoshi Nakada <[email protected]>
* random.c (make_seed_value): append leading-zero-guard and get
rid of making a local copy of the seed.
Fri May 13 08:46:42 2016 cremno <[email protected]>
* NEWS: drop FreeBSD < 4 support. [Fix GH-1339]
The most recent version affected by this is 3.5 and was released
in 2000.
https://www.freebsd.org/releases/3.5R/announce.html
https://en.wikipedia.org/wiki/History_of_FreeBSD#Version_history
Fri May 13 03:12:09 2016 NARUSE, Yui <[email protected]>
* include/ruby/defines.h (GCC_VERSION_SINCE): moved from internal.h.
Fri May 13 03:11:20 2016 NARUSE, Yui <[email protected]>
* configure.in (__builtin_constant_p): check.
* internal.h: Use HAVE_BUILTIN___BUILTIN_CONSTANT_P
Fri May 13 03:10:39 2016 NARUSE, Yui <[email protected]>
* configure.in: use alternative keyword
to avoid macros conflicts with them.
Thu May 12 01:54:08 2016 Nobuyoshi Nakada <[email protected]>
* lib/mkmf.rb (try_func): get rid of conflict of declarations of
main(). checking local symbol reference does not make sense.
Thu May 12 00:18:19 2016 NAKAMURA Usaku <[email protected]>
* win32/Makefile.sub (HAVE_QSORT_S): use qsort_s only for Visual Studio
2012 or later, because VS2010 seems to causes a SEGV in
test/ruby/test_enum.rb.
Wed May 11 23:59:47 2016 Masaya Tarui <[email protected]>
* vm_insnhelper.c (vm_getivar): describe fast-path explicit
(compiler friendly). [Bug #12274].
Wed May 11 21:30:07 2016 Masaya Tarui <[email protected]>
* compile.c (iseq_compile_each): share InlineCache during same
instance variable accesses. Reducing memory consumption,
rising cache hit rate and rising branch prediction hit rate
are expected. A part of [Bug #12274].
* iseq.h (struct iseq_compile_data): introduce instance
variable IC table for sharing.
* iseq.c (prepare_iseq_build, compile_data_free):
construct/destruct above table.
Wed May 11 17:18:53 2016 Nobuyoshi Nakada <[email protected]>
* util.c (ruby_qsort): use qsort_s if available, for Microsoft
Visual Studio 2005 (msvcr80.dll) and mingw.
Wed May 11 10:33:26 2016 Marcus Stollsteimer <[email protected]>
* COPYING: Remove trailing-whitespaces.
[ci skip][fix GH-1348]
Tue May 10 21:05:45 2016 Benoit Daloze <[email protected]>
* insns.def (defineclass): Also raise an error when redeclaring the
superclass of a class as Object and it has another superclass.
[Bug #12367] [ruby-core:75446]
* test/ruby/test_class.rb: test for above.
Tue May 10 14:57:09 2016 Nobuyoshi Nakada <[email protected]>
* random.c (obj_random_bytes): base on bytes method instead of
rand method, not to call toplevel rand method.
Tue May 10 13:07:28 2016 NARUSE, Yui <[email protected]>
* configure.in (-fexcess-precision=standard): before r54895 -std=c99
is specified and it implied -fexcess-precision=standard.
Now with -std=gnu99, it should be explicitly specified.
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Mon May 9 10:51:59 2016 Nobuyoshi Nakada <[email protected]>
* thread.c (rb_thread_atfork_internal): move th to an argument.
* thread.c (rb_thread_atfork): do not repeat GET_THREAD().
Mon May 9 10:46:36 2016 Nobuyoshi Nakada <[email protected]>
* thread.c (rb_thread_atfork, rb_thread_atfork_before_exec): do
nothing unless working fork is available.
* thread_sync.c (rb_mutex_abandon_all): define only if working
fork is available.
* thread_sync.c (rb_mutex_abandon_keeping_mutexes): ditto.
* thread_sync.c (rb_mutex_abandon_locking_mutex): ditto.
* thread_win32.c (gvl_init): never used.
Mon May 9 07:18:06 2016 NAKAMURA Usaku <[email protected]>
* include/ruby/{defines,ruby}.h: need to define function attributes
alternatives in defines.h instead of ruby.h, because they are used
in oniguruma.h and the header used without including ruby.h at
encoding library sources.
Mon May 9 06:30:12 2016 NAKAMURA Usaku <[email protected]>
* include/ruby/ruby.h (CONSTFUNC, PUREFUNC): fixed build errors on
non-gcc build environments introduced at r54952.
Mon May 9 02:51:51 2016 NARUSE, Yui <[email protected]>
* gc.c (rb_gc_unprotect_logging): throw rb_memerror when it cannot
allocate memory. This is pointed out by Facebook's Infer.
* gc.c (gc_prof_setup_new_record): ditto.
* regparse.c (parse_regexp): ditto.
* util.c (MALLOC): use xmalloc and xfree like above.
Mon May 9 02:39:16 2016 NARUSE, Yui <[email protected]>
* configure.in: check function attribute const and pure,
and define CONSTFUNC and PUREFUNC if available.
Note that I don't add those options as default because
it still shows many false-positive (it seems not to consider
longjmp).
* vm_eval.c (stack_check): get rb_thread_t* as an argument
to avoid duplicate call of GET_THREAD().
Sun May 8 21:01:14 2016 NARUSE, Yui <[email protected]>
* ext/openssl/extconf.rb: assume it doesn't have SSLv2 related
functions when OPENSSL_NO_SSL2 is defined.
Usually openssl's header and the library (libssl) have the same
set of functions, but on some environment the library has functions
whose headers doesn't declare. (openssl/opensslconf.h and libssl.so
aren't be synchronized)
To detect such case explicitly check feature macro and remove
related functions.
Sun May 8 18:51:33 2016 Nobuyoshi Nakada <[email protected]>
* file.c (rb_home_dir_of): return the default home path if the
user name is the current user name, on platforms where struct
pwd is not supported. a temporary measure against
[Bug #12226].
Sun May 8 08:51:38 2016 NARUSE, Yui <[email protected]>
* configure.in: add -Wsuggest-attribute=format and suppress warnings.
Sun May 8 08:31:03 2016 NARUSE, Yui <[email protected]>
* configure.in: add -Wsuggest-attribute=noreturn and suppress warnings.
Sun May 8 08:19:16 2016 NARUSE, Yui <[email protected]>
* configure.in: add -Werror=implicit-int to avoid missing type of
function declaration.
Sat May 7 22:22:37 2016 SHIBATA Hiroshi <[email protected]>
* lib/webrick/ssl.rb: Accept string value for SSLCertName. It is used
to invoke ssl server with command line.
[fix GH-1329] Patch by @kerlin
* test/webrick/test_ssl_server.rb: Added test for GH-1329
Sat May 7 21:55:12 2016 SHIBATA Hiroshi <[email protected]>
* test/webrick/test_ssl_server.rb: Added basic test for `webrick/ssl`
Sat May 7 16:22:13 2016 Nobuyoshi Nakada <[email protected]>
* random.c (int_pair_to_real_inclusive): optimize to multiply
without Bignum.
Sat May 7 07:58:02 2016 Nobuyoshi Nakada <[email protected]>
* process.c (rb_exec_getargs): honor the expected argument types
over the conversion method. the basic language functionality
should be robust. [ruby-core:75388] [Bug #12355]
Fri May 6 08:16:26 2016 David Silva <[email protected]>
* enum.c (enum_find): [DOC] add more examples to the documentation
of Enumerable#detect, to show that it equals to Enumerable#find.
[Fix GH-1340]
Thu May 5 18:08:31 2016 Yuichiro Kaneko <[email protected]>
* test/ruby/test_complexrational.rb: Remove duplicated raise.
Thu May 5 14:41:05 2016 Yuichiro Kaneko <[email protected]>
* string.c (rb_str_sub): Fix a special match variable name.
[ci skip]
Thu May 5 12:22:17 2016 Nobuyoshi Nakada <[email protected]>
* vm_eval.c (rb_eval_cmd, rb_catch_obj): use TH_JUMP_TAG with the
same rb_thread_t used for TH_PUSH_TAG, instead of JUMP_TAG with
the current thread global variable.
Thu May 5 10:49:33 2016 Nobuyoshi Nakada <[email protected]>
* random.c (fill_random_bytes_syscall): use arc4random_buf if
available.
Wed May 4 23:13:58 2016 Yuichiro Kaneko <[email protected]>
* numeric.c (fix_plus): Remove rb_nucomp_add prototype
declaration.
* numeric.c (fix_mul): Remove rb_nucomp_mul prototype
declaration.
* internal.h (rb_nucomp_add, rb_nucomp_mul): add prototype
declarations.
Wed May 4 18:38:00 2016 Kazuki Tsujimoto <[email protected]>
* lib/net/http/header.rb (Net::HTTPHeader#{each_header,each_name,
each_capitalized_name,each_value,each_capitalized}): Return
sized enumerators.
* test/net/http/test_httpheader.rb: add test for above.
Wed May 4 17:53:15 2016 Kazuki Tsujimoto <[email protected]>
* lib/set.rb (Set#{delete_if,keep_if,collect!,reject!,select!,classify,divide},
SortedSet#{delete_if,keep_if}): Return sized enumerators.
* test/test_set.rb: add test for above.
Tue May 3 23:25:48 2016 Kazuhiro NISHIYAMA <[email protected]>
* numeric.c: [DOC] Update result of 123456789 ** -2.
[ruby-dev:49606] [Bug #12339]
Tue May 3 23:13:16 2016 Yuichiro Kaneko <[email protected]>
* internal.h (RCOMPLEX_SET_IMAG): undef RCOMPLEX_SET_IMAG
instead of duplicated undef RCOMPLEX_SET_REAL.
Tue May 3 22:55:07 2016 Yuichiro Kaneko <[email protected]>
* complex.c (rb_complex_set_imag): Fix to properly set imag
of complex.
Tue May 3 22:19:55 2016 NARUSE, Yui <[email protected]>
* configure.in (warnflags): use -std=gnu99 instead of
-std=iso9899:1999. [Feature #12336]
Tue May 3 22:10:09 2016 NARUSE, Yui <[email protected]>
* string.c (count_utf8_lead_bytes_with_word): Use __builtin_popcount
only if it can use SSE 4.2 POPCNT whose latency is 3 cycle.
* internal.h (rb_popcount64): use __builtin_popcountll because now
it is in fast path.
Tue May 3 14:19:18 2016 Nobuyoshi Nakada <[email protected]>
* parse.y (new_if_gen): set newline flag to NODE_IF to trace all
if/elsif statements. [ruby-core:67720] [Bug #10763]
Tue May 3 05:35:54 2016 Eric Wong <[email protected]>
* process.c (disable_child_handler_fork_child):
initialize handler for SIGPIPE for !POSIX_SIGNAL
Mon May 2 23:03:42 2016 NAKAMURA Usaku <[email protected]>
* win32/win32.c, include/ruby/win32.h (rb_w32_utruncate): implements new
truncate alternative which accepts UTF-8 path.
* file.c (truncate): use above function.
[Bug #12340]
Mon May 2 20:59:21 2016 NARUSE, Yui <[email protected]>
* re.c (str_coderange): to avoid function call when the string already
has coderange information.
* re.c (rb_reg_prepare_enc): add shortcut path when the regexp has
the same encoding of given string.
* re.c (rb_reg_prepare_re): avoid duplicated allocation of
onig_errmsg_buffer.
Mon May 2 12:34:52 2016 Tanaka Akira <[email protected]>
* test/ruby/test_refinement.rb (test_inspect): Use Integer instead of
Fixnum.
Mon May 2 06:58:38 2016 Tanaka Akira <[email protected]>
* complex.c: Don't refer rb_cFixnum and rb_cBignum.
(k_fixnum_p): Use FIXNUM_P.
(k_bignum_p): Use RB_TYPE_P.
Mon May 2 01:27:59 2016 Tanaka Akira <[email protected]>
* test/ruby/test_numeric.rb (test_step): Use Integer::FIXNUM_MAX.
Mon May 2 01:15:01 2016 Tanaka Akira <[email protected]>
* test/ruby/test_module.rb (test_name): Use Integer instead of Fixnum.
Mon May 2 01:00:04 2016 Tanaka Akira <[email protected]>
* test/lib/test/unit/assertions.rb (assert_fixnum): Defined.
(assert_bignum): Defined.
* test/ruby/test_bignum.rb: Use assert_bignum.
* test/ruby/test_integer_comb.rb: Use assert_fixnum and assert_bignum.
* test/ruby/test_optimization.rb: Ditto.
Mon May 2 00:41:53 2016 Tanaka Akira <[email protected]>
* vm_trace.c (recalc_remove_ruby_vm_event_flags): Add a cast to
avoid signed integer overflow.
Mon May 2 00:06:04 2016 Tanaka Akira <[email protected]>
* test/lib/envutil.rb: Define Integer::{FIXNUM_MIN,FIXNUM_MAX}.
* test/ruby/test_bignum.rb: Use Integer::{FIXNUM_MIN,FIXNUM_MAX}.
* test/ruby/test_bignum.rb: Ditto.
* test/ruby/test_integer_comb.rb: Ditto.
* test/ruby/test_marshal.rb: Ditto.
* test/ruby/test_optimization.rb: Ditto.
Sun May 1 23:59:59 2016 Kenta Murata <[email protected]>
* array.c (rb_ary_sum): fix for mathn
* test/ruby/test_array.rb (test_sum): ditto.
Sun May 1 23:51:54 2016 NAKAMURA Usaku <[email protected]>
* test/lib/test/unit.rb (Options#non_options): fixed wrong regexp.
if both positives and negatives were specified, positives had to
be specified from the beginning.
Sun May 1 21:00:07 2016 NAKAMURA Usaku <[email protected]>
* win32/win32.c: drop Win2K support.
Sun May 1 20:39:47 2016 NAKAMURA Usaku <[email protected]>
* cont.c, hash.c, random.c, win32/win32.c: cleanup some Win9x/ME/NT4
support leftovers.
[fix GH-1328] patched by @cremno