forked from ruby/ruby
-
Notifications
You must be signed in to change notification settings - Fork 118
/
ChangeLog
8077 lines (5050 loc) · 266 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
Wed Sep 23 01:11:28 2015 Zachary Scott <[email protected]>
* ext/openssl/*: Remove svn commit id macros to make sync easier
Tue Sep 22 04:20:01 2015 Masatoshi SEKI <[email protected]>
* test/drb/test_drb.rb: Run Rinda/DRb tests on localhost. [Fix GH-1027]
patch by voxik.
* test/rinda/test_rinda.rb: ditto
Mon Sep 21 20:53:39 2015 tbpgr <[email protected]>
* test/win32ole/test_win32ole_event.rb: fix typo.
swbemsink_avairable? => swbemsink_available? [Fix GH-1025]
Sun Sep 20 10:07:35 2015 Anton Davydov <[email protected]>
* cont.c (rb_callcc): [DOC] append continuations example accros
methods. [Fix GH-1026]
Sun Sep 20 03:20:21 2015 Koichi Sasada <[email protected]>
* iseq.c (rb_iseq_free): free rb_iseq_t::body::cc_entries.
Sun Sep 20 02:46:34 2015 Koichi Sasada <[email protected]>
* vm_core.h: split rb_call_info_t into several structs.
* rb_call_info (ci) has compiled fixed information.
* if ci->flag & VM_CALL_KWARG, then rb_call_info is
also rb_call_info_with_kwarg. This technique reduce one word
for major rb_call_info data.
* rb_calling_info has temporary data (argc, blockptr, recv).
for each method dispatch. This data is allocated only on
machine stack.
* rb_call_cache is for inline method cache.
Before this patch, only rb_call_info_t data is passed.
After this patch, above three structs are passed.
This patch improves:
* data locarity (rb_call_info is now read-only data).
* reduce memory consumption (rb_call_info_with_kwarg,
rb_calling_info).
* compile.c: use above data.
* insns.def: ditto.
* iseq.c: ditto.
* vm_args.c: ditto.
* vm_eval.c: ditto.
* vm_insnhelper.c: ditto.
* vm_insnhelper.h: ditto.
* iseq.h: add iseq_compile_data::ci_index and
iseq_compile_data::ci_kw_indx.
* tool/instruction.rb: introduce TS_CALLCACHE operand type.
Sun Sep 20 02:18:10 2015 Tanaka Akira <[email protected]>
* test/lib/envutil.rb: mkfifo command based File.mkfifo method
definition removed.
Fri Sep 18 20:11:11 2015 Nobuyoshi Nakada <[email protected]>
* file.c (rb_file_s_mkfifo): implement File.mkfifo.
[Feature #11536]
Fri Sep 18 16:56:19 2015 Shugo Maeda <[email protected]>
* NEWS: add Net::FTP#mlst and Net::FTP#mlsd.
Fri Sep 18 07:39:22 2015 Aaron Patterson <[email protected]>
* ext/objspace/objspace_dump.c (obj_type): add IMEMO types to the heap
dump information.
Thu Sep 17 22:33:07 2015 SHIBATA Hiroshi <[email protected]>
* common.mk: fix command error with outside builddir.
Thu Sep 17 17:42:09 2015 SHIBATA Hiroshi <[email protected]>
* common.mk: separated test for test-framework from test-all task.
They should be invoke at first before tests of test-all.
Thu Sep 17 12:05:54 2015 KOSAKI Motohiro <[email protected]>
* test/ruby/test_dir.rb (TestDir#test_fileno): s/?x/"x"/. Don't
use tricky code, please.
Wed Sep 16 20:49:56 2015 Masaki Suketa <[email protected]>
* encindex.h: fix typo of last #endif comment. [ci skip]
Wed Sep 16 20:39:26 2015 Nobuyoshi Nakada <[email protected]>
* variable.c (set_const_visibility): fail if the class/module is
frozen. [ruby-core:70828] [Bug #11532]
Wed Sep 16 17:16:43 2015 Nobuyoshi Nakada <[email protected]>
* vm_core.h (ENABLE_VM_OBJSPACE): enable per-VM object space on
Windows by default, as rb_w32_sysinit() no longer depends on
ruby_xmalloc.
Wed Sep 16 15:08:17 2015 Akinori MUSHA <[email protected]>
* doc/syntax/literals.rdoc (Strings): [DOC] Revise the character
literal part.
Wed Sep 16 14:55:33 2015 Akinori MUSHA <[email protected]>
* doc/syntax/literals.rdoc (Strings): [DOC] Document the full list
of supported escape sequences in string literals.
Wed Sep 16 14:49:58 2015 Nobuyoshi Nakada <[email protected]>
* string.c (rb_str_setbyte): keep the code range as possible.
Wed Sep 16 13:23:48 2015 NAKAMURA Usaku <[email protected]>
* doc/syntax/literals.rdoc (Strings): mention about ?a literal.
Wed Sep 16 12:06:53 2015 KOSAKI Motohiro <[email protected]>
* dir.c (glob_helper): check pathtype once again by lstat(2) if
dp->d_type is DT_UNKNOWN. XFS may return DT_UNKNOWN.
Wed Sep 16 03:49:19 2015 KOSAKI Motohiro <[email protected]>
* test/ruby/test_thread.rb (TestThread#test_mutex_synchronize):
insert waste loop for invoking preemptive thread context switch.
[Bug #11496]
Tue Sep 15 19:38:55 2015 Nobuyoshi Nakada <[email protected]>
* gc.c (rb_objspace_alloc, rb_objspace_free): define always
regardless ENABLE_VM_OBJSPACE, and free heap pages.
Tue Sep 15 15:15:41 2015 Nobuyoshi Nakada <[email protected]>
* win32/win32.c (rb_w32_sysinit, rb_w32_readdir): compare by
encoding index to get rid of encoding initialization before VM
object space allocation.
* dir.c (fundamental_encoding_p, push_glob): compare by encoding
index immediately.
* enc/{ascii,us_ascii,utf_8}.c: set encoding indexes of
fundamental built-in encodings so that usable as well as
allocated rb_encoding before rb_enc_init().
* encindex.h: separate encoding index constants from internal.h.
Tue Sep 15 13:13:13 2015 Nobuyoshi Nakada <[email protected]>
* array.c (rb_ary_sort_bang, rb_ary_sort): [DOC] correct block
return values, which may be a negative or positive integer, not
only -1 or +1.
Tue Sep 15 12:49:10 2015 Jason Barnabe <[email protected]>
* array.c (rb_ary_sort_bang, rb_ary_sort): [DOC] Correct
description of array sort block return values. And also fix up
the grammar a bit. [Fix GH-1020]
Tue Sep 15 12:44:32 2015 Nobuyoshi Nakada <[email protected]>
* util.c (ruby_qsort): use BSD-style qsort_r if available.
Mon Sep 14 19:26:34 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (parse_mlsx_entry): parse pathnames including
space correctly.
Mon Sep 14 11:12:10 2015 Anton Davydov <[email protected]>
* lib/racc/rdoc/grammar.en.rdoc: [DOC] fix typo, "convertion" to
"conversion". [Fix GH-1016]
Sun Sep 13 11:03:13 2015 Nobuyoshi Nakada <[email protected]>
* include/ruby/ruby.h: prefix RUBY or RB to global symbols to get
rid of name conflicts with other headers.
* include/ruby/encoding.h, include/ruby/intern.h: ditto.
Sun Sep 13 09:38:51 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (size, modify, create, type, unique, perm, lang,
media_type, charset): new methods to return standard facts.
Sat Sep 12 19:43:49 2015 Koichi Sasada <[email protected]>
* vm_insnhelper.c (vm_call_iseq_setup_normal): do not clear local
variables here. vm_push_frame() clears.
* vm_insnhelper.c (vm_call_iseq_setup_tailcall): ditto.
* vm_insnhelper.c (vm_push_frame): move check code to
vm_check_frame().
Reorder initialization timing to reuse same values (sp).
* compile.c (rb_iseq_compile_node): use
iseq_set_exception_local_table() for ISEQ_TYPE_DEFINED_GUARD.
Sat Sep 12 23:06:51 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (file?, directory?, appendable?, creatable?,
deletable?, enterable?, renamable?, listable?, directory_makable?,
purgeable?, readable?, writable?): new methods.
Sat Sep 12 21:27:22 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (FACT_PARSERS): support system dependent facts
UNIX.mode, UNIX.owner, UNIX.group, UNIX.ctime, and UNIX.atime.
Sat Sep 12 19:08:58 2015 Nobuyoshi Nakada <[email protected]>
* win32/win32.c (rb_w32_dup2): should return the new fd on
success, while msvcrt returns 0 wrongly.
Sat Sep 12 18:14:11 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (parse_mlsx_entry, mlst) raise an FTPProtoError
when parsing failed.
Sat Sep 12 18:00:35 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (TIME_PARSER): use "Z" instead of "+00:00" to
get UTC time. Thanks, Wilson Bilkovich.
Sat Sep 12 17:55:24 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (mlst, mlsd): support new commands MLST and MLSD
specified in RFC 3659.
Sat Sep 12 16:14:31 2015 SHIBATA Hiroshi <[email protected]>
* file.c: access()/eaccess() wrapping methods check more than just uid.
[fix GH-1007][ci skip] Patch by @eam
Sat Sep 12 16:07:01 2015 SHIBATA Hiroshi <[email protected]>
* README.md: improve markdown rendering for readability.
[fix GH-1015][ci skip] Patch by @Matrixbirds
Sat Sep 12 14:30:03 2015 Nobuyoshi Nakada <[email protected]>
* process.c (save_redirect_fd): make saved FDs close-on-exec not
to be inherited.
* process.c (run_exec_dup2): restore close-on-exec flags too.
* win32/win32.c (fcntl): implement F_GETFD, F_SETFD, and
F_DUPFD_CLOEXEC.
Sat Sep 12 05:35:24 2015 Eric Wong <[email protected]>
* rational.c (string_to_r_strict): preserve encoding in exception
Fri Sep 11 20:23:35 2015 Koichi Sasada <[email protected]>
* vm_core.h: remove rb_call_info_t::aux.opt_pc.
* vm_insnhelper.c: introduce shortcut functions for opt_pc == 0
because opt_pc is always 0 on shortcut function.
Fri Sep 11 17:49:36 2015 Koichi Sasada <[email protected]>
* iseq.c: disable ISeq.load. It enabled accidentally at r51794.
Fri Sep 11 11:15:12 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (size, mdtm, system): parse responses according to
RFC 959 and 3659, where reply codes must be followed by SP.
* lib/net/ftp.rb (system): remove LF from the return value.
Thu Sep 10 22:48:49 2015 Nobuyoshi Nakada <[email protected]>
* parse.y (literal_concat_gen, evstr2dstr_gen): keep literal
encoding beginning with an interpolation same as the source file
encoding. [ruby-core:70703] [Bug #11519]
Thu Sep 10 22:15:51 2015 Joe Rafaniello <[email protected]>
* process.c (rb_f_spawn): Be more specific regarding "other
values" by having "non-zero positive integers" Add nil, the
default value, as a possible value and what it means.
Try to use more consistent language.
[Fix GH-1008]
Thu Sep 10 15:16:02 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (getmultiline): refactor.
Thu Sep 10 12:17:28 2015 Nobuyoshi Nakada <[email protected]>
* compile.c (iseq_build_from_ary_body): register cdhash to the
iseq constant body instead of compile time mark array, not to
get GCed. [ruby-core:70708] [Feature #8543]
Wed Sep 9 18:16:14 2015 NAKAMURA Usaku <[email protected]>
* lib/rubygems/stub_specification.rb (Gem::StubSpecification#data):
should not change the value of $. when `require`ing gems.
this fixed test failures introduced by r51813.
Wed Sep 9 16:55:45 2015 NAKAMURA Usaku <[email protected]>
* ruby.c (usage, enable_option, disable_option, process_options): new
option `--disable-did_you_mean`.
* gem_prelude.rb: now requires did_you_mean gem by default if available.
Wed Sep 9 13:38:56 2015 Nobuyoshi Nakada <[email protected]>
* tool/extlibs.rb (do_patch): let "patch" command change the
working directory and open the patch file there, instead of
spawn options, so that proper error message will be shown by the
command not just "chdir" or "open".
Wed Sep 9 11:33:05 2015 NAKAMURA Usaku <[email protected]>
* common.mk (update-gems): use BASERUBY instead of RUNRUBY.
Wed Sep 9 11:08:59 2015 Zachary Scott <[email protected]>
* lib/delegate.rb: Remove backtrace cleaning for delegated methods
This patch was provided by Rafael Franca and greatly improves
performance when an exception is raised. [Bug #11461]
Wed Sep 9 10:05:41 2015 SHIBATA Hiroshi <[email protected]>
* test/rubygems/test_config.rb: fix broken tests for Windows platform.
Wed Sep 9 07:46:32 2015 SHIBATA Hiroshi <[email protected]>
* lib/rubygems: Update to RubyGems HEAD(fe61e4c112).
this version contains new feature that warn invalid SPDX license
identifiers. https://github.com/rubygems/rubygems/pull/1249
and #1032, #1023, #1332, #1328, #1306, #1321, #1324
* test/rubygems: ditto.
Tue Sep 8 23:17:36 2015 Yuki Nishijima <[email protected]>
* gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0.beta2.
Tue Sep 8 23:09:28 2015 Nobuyoshi Nakada <[email protected]>
* io.c (rb_io_s_popen): do not wait the child process during being
killed. [ruby-core:70671] [Bug #11510]
Tue Sep 8 22:18:04 2015 NAKAMURA Usaku <[email protected]>
* gems/bundled_gems: revert because ruby trunk never be able to install
the did_you_mean gem. retry after enough test.
Tue Sep 8 21:48:22 2015 Yuki Nishijima <[email protected]>
* gems/bundled_gems: Automatically install the did_you_mean gem
as a bundled gem. [Feature #11252]
Tue Sep 8 17:17:48 2015 Koichi Sasada <[email protected]>
* vm_core.h: remove rb_call_info_t::blockiseq.
* insns.def (send, invokesuper): pass blockiseq explicitly.
* compile.c: catch up this fix.
* iseq.c: ditto.
* vm_args.c: ditto.
* iseq.c (ISEQ_MINOR_VERSION): 2->3 because instruction spec was
changed.
Tue Sep 8 15:01:19 2015 Shugo Maeda <[email protected]>
* lib/net/ftp.rb (list): fetch all the lines before yielding a block
to allow other commands in the block. [Feature #11454]
Patched by Srikanth Shreenivas.
Tue Sep 8 12:05:00 2015 NAKAMURA Usaku <[email protected]>
* win32/win32.c (rb_w32_read_reparse_point): return correct required
buffer size for IO_REPARSE_TAG_MOUNT_POINT.
Tue Sep 8 00:14:43 2015 Nobuyoshi Nakada <[email protected]>
* process.c (rb_execarg_parent_start1): raise with the target path
name when open() failed.
Mon Sep 7 23:45:28 2015 Nobuyoshi Nakada <[email protected]>
* process.c (rb_exec_fail): raise with the target directory name
when chdir() failed. pointed out by sorah.
Mon Sep 7 22:05:28 2015 Nobuyoshi Nakada <[email protected]>
* win32/win32.c (insert): should use plain strdup() instead of
ruby_strdup() at startup time, and plain free()ed in cmdglob().
Mon Sep 7 16:49:30 2015 Nobuyoshi Nakada <[email protected]>
* vm_core.h (rb_vm_struct): define objspace always regardless
ENABLE_VM_OBJSPACE.
Mon Sep 7 15:54:58 2015 Nobuyoshi Nakada <[email protected]>
* ruby_atomic.h (ATOMIC_VALUE_CAS): fix typo.
TODO: make arguments of all CAS macros consistent.
Sun Sep 6 16:07:22 2015 Eric Wong <[email protected]>
* ccan/list/list.h: suppress unused argument warnings
[ccan commit 6aaca17e07588997417a73fac19dcf0ff17ed81b]
Sat Sep 5 11:39:52 2015 Nobuyoshi Nakada <[email protected]>
* lib/rss/rss.rb (Time#w3cdtf): fix zero-trimmed width of fraction
digits. [ruby-core:70667] [Bug #11509]
Sat Sep 5 08:28:58 2015 Nobuyoshi Nakada <[email protected]>
* hash.c (rb_hash_equal, rb_hash_eql): [DOC] the orders of each
hashes are not compared. [Bug #11508]
Fri Sep 4 23:26:22 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* doc/contributing.rdoc: fix configuration option.
[ci skip] [fix GH-1009]
Fri Sep 4 04:46:54 2015 Koichi Sasada <[email protected]>
* iseq.c (iseq_memsize): functions for wrapper object should have
iseqw_ prefix.
Thu Sep 3 21:12:12 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* gc.c (rb_raw_obj_info): iseq->body->location.first_lineno is Fixnum.
Thu Sep 3 17:54:26 2015 Nobuyoshi Nakada <[email protected]>
* vm_eval.c (raise_method_missing): "names" should be singular.
pointed out by Filip Bartuzi.
Thu Sep 3 17:50:09 2015 Koichi Sasada <[email protected]>
* gc.c (rb_raw_obj_info): should support IMEMO/iseq.
Thu Sep 3 10:07:49 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* vm_insnhelper.h (GET_PC_COUNT): remove unused macro.
Wed Sep 2 17:18:37 2015 Chris Schneider <[email protected]>
* process.c (proc_detach): [DOC] fix typo "intent" as "intend" in
rdoc. [Fix GH-1011]
Wed Sep 2 16:58:21 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* test/thread/test_queue.rb: catch up last commit.
Tue Sep 1 18:16:32 2015 Koichi Sasada <[email protected]>
* 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 <[email protected]>
* thread_tools.c: rename thread_tools.c to thread_sync.c.
Mon Aug 31 17:04:45 2015 Koichi Sasada <[email protected]>
* 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 <[email protected]>
* ext/openssl/ossl_ssl.c (ossl_ssl_method_tab): Only add SSLv3 support
if the SSL library supports it. Thanks Kurt Roeckx <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* compile.c (iseq_set_sequence): rename variable names
to make it readable.
Thu Aug 27 07:45:34 2015 Koichi Sasada <[email protected]>
* 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 <[email protected]>
* 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?, test_index): add tests by
Tom Stuart.
Wed Aug 26 09:26:00 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* win32/win32.c (w32_symlink): implement symlink().
Mon Aug 24 16:01:19 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* ext/psych/*: update to Psych 2.0.14
* test/psych/*: ditto
Fri Aug 21 19:58:48 2015 Koichi Sasada <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]> for the patches.
[Bug #11366] [Bug #11367]
Thu Aug 20 22:19:17 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* process.c (rb_f_spawn): [DOC] elaborate environment variable
values. [ruby-core:70456] [Bug #11463]
Wed Aug 19 23:48:06 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* thread_pthread.c (reserve_stack): ensure the memory is really
allocated. [Bug #11457]
Tue Aug 18 17:19:21 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* iseq.c (rb_iseq_mark): reduce NULL checks
Fri Aug 14 18:50:57 2015 Eric Wong <[email protected]>
* method.h (METHOD_ENTRY_VISI_SET): cast visi to int
(METHOD_ENTRY_FLAGS_SET): ditto
Fri Aug 14 18:43:11 2015 Eric Wong <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* object.c (rb_num_to_dbl): move from num2dbl_with_to_f in math.c.
Thu Aug 13 09:01:25 2015 Eric Wong <[email protected]>
* load.c (features_index_add): avoid repeat calculation
Wed Aug 12 21:57:31 2015 Koichi Sasada <[email protected]>
* 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 <[email protected]>
* id_table.c (mix_id_table_insert): fix memory leak.
Wed Aug 12 21:17:38 2015 Eric Wong <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* class.c (move_refined_method): same as the last commit.
Wed Aug 12 17:57:53 2015 Koichi Sasada <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* numeric.c (Init_Numeric): Fix document for Float::MIN and
Float::EPSILON.
Tue Aug 11 15:22:31 2015 Nobuyoshi Nakada <[email protected]>
* 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 <[email protected]>
* array.c (rb_ary_repeated_permutation): fix buffer size, ALLOCV_N
already multiplies element size.
Tue Aug 11 12:13:20 2015 Jeremy Evans <[email protected]>
* 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 <[email protected]>
* string.c: Fix documentation for String#slice
[ruby-core:70298][Bug #11427]
Tue Aug 11 11:53:28 2015 Nobuyoshi Nakada <[email protected]>
* parse.y (superclass): make superclass rule optional and allow
any contents without a terminator. [EXPERIMENTAL]
Tue Aug 11 10:58:42 2015 Juanito Fatas <[email protected]>