Граф коммитов

1872 Коммитов

Автор SHA1 Сообщение Дата
Burdette Lamar 26ffda2fd2
[DOC] Enhanced RDoc for some encoding methods (#5598)
In String, treats:

    #b
    #scrub
    #scrub!
    #unicode_normalize
    #unicode_normalize!
    #encode
    #encode!

Also adds a note to IO.new (suggested by @jeremyevans).
2022-02-25 13:12:59 -06:00
Burdette Lamar bec3a1f15a
Enhanced RDoc for io.c (#5573)
Links to options doc added/improved; in particular, new links to new section "Encoding Options" in encoding.rdoc.  Minor inconsistencies ironed out.
2022-02-18 16:17:51 -06:00
Burdette Lamar e9a2b30744
Enhanced RDoc concerning command injection (#5537)
Clarifies security vulnerabilities for commands.

Treats:

    Kernel.system
    Kernel.` (backtick)
    IO.popen
    IO.read
    IO.write
    IO.binread
    IO.binwrite
    IO.readlines
    IO.foreach
2022-02-18 06:46:04 -06:00
Nobuyoshi Nakada 50c972a1ae
[DOC] Simplify operator method references 2022-02-12 12:38:36 +09:00
Peter Zhu f53f49197f [DOC] Replace with IO@Modes 2022-02-07 09:52:06 -05:00
Peter Zhu 9b3115ff64 [DOC] Remove extra period 2022-02-07 09:52:06 -05:00
Peter Zhu a12e2f9aa5 [DOC] Remove extra closing curly bracket 2022-02-07 09:52:06 -05:00
Peter Zhu a32e5e1b97 [DOC] Use RDoc link style for links in the same class/module
I used this regex:

(?<=\[)#(?:class|module)-([A-Za-z]+)-label-([A-Za-z0-9\-\+]+)

And performed a global find & replace for this:

rdoc-ref:$1@$2
2022-02-07 09:52:06 -05:00
Peter Zhu f9a2802bc5 [DOC] Use RDoc link style for links to other classes/modules
I used this regex:

([A-Za-z]+)\.html#(?:class|module)-[A-Za-z]+-label-([A-Za-z0-9\-\+]+)

And performed a global find & replace for this:

rdoc-ref:$1@$2
2022-02-07 09:52:06 -05:00
Peter Zhu ecd469fad0 [DOC] Fix links in documentation for File and IO
Fixes some typos and dead links.
2022-02-07 09:52:06 -05:00
Burdette Lamar 3e6c6c74dd
{DOC] Enhanced RDoc for io.c (#5529)
Changes parameter name from simple opts to open_opts or enc_opts when appropriate; leaves the name unchanged when more than one kind of option is allowed.
2022-02-05 14:05:27 -06:00
Burdette Lamar 06a28ec4d4
[DOC] Enhanced RDoc for io.c (#5527)
Treats:

    IO.binread (abbreviated to be like IO.binwrite).
    IO.write
    IO.binwrite
    IO.copystream
    IO#external_encoding
    IO#internal_encoding
    IO#set_encoding
2022-02-04 16:26:49 -06:00
Burdette Lamar 46f6575157
[DOC] Enhanced RDoc for io.c (#5511)
Treats:

    IO.foreach
    IO.readlines
    IO.read
    IO.binread
2022-02-04 06:55:10 -06:00
Burdette Lamar 99a65e80d5
[DOC] Enhanced RDoc for io.c (#5460)
Treats:

    Kernel#readline
    Kernel#readlines
    Kernel#`cmd`
    IO#advise
    IO.select
    IO#ioctl
    IO#fcntl
    Kernel#syscall
    IO.pipe
2022-01-30 16:17:53 -06:00
Yuta Saito 7ee786388a [wasm] wasm/missing.{c,h}: add missing libc stubs for wasi-libc 2022-01-19 11:19:06 +09:00
Burdette Lamar ab85c5e979
[DOC] Enhanced RDoc for io.c (#5451)
Treats:

    IO#reopen
    IO#printf
    Kernel#printf
    IO#print
    Kernel#print
    IO#putc
    IO.new
    IO#set_encoding_by_bom
    IO.for_fd
2022-01-18 06:25:26 -06:00
Masataka Pocke Kuwabara 28fad7764e Tweak IO documentation for `IO.write('|cmd')` and so on [ci skip] 2022-01-17 00:26:08 +09:00
Burdette Lamar e40f79daa3
Enhanced RDoc for io.c (#5444)
Treated:

    IO#open
    IO#sysopen
    #open
    IO#putc
    IO#puts
    #p
    Kernel#display
2022-01-14 18:33:06 -06:00
Burdette Lamar 6dc4c942a3
File rdoc (#5438)
Treats:

    File introduction
    File.open
    File.new
2022-01-13 18:00:24 -06:00
Burdette Lamar faf79d3a25
Enhanced RDoc for IO.popen (#5430)
* Enhanced RDoc for IO.popen
2022-01-12 17:08:30 -06:00
Burdette Lamar d920535d1b
Enhanced RDoc for IO (#5425)
Treats:

    #pread
    #pwrite
    #binmode
    #binmode?
2022-01-10 17:02:48 -06:00
Burdette Lamar 6931d70e6e
Enhanced RDoc for IO (#5424)
Treats:

    #sysseek
    #syswrite
    #sysread
2022-01-10 15:14:36 -06:00
Burdette Lamar a9dc0c59e3
[DOC] Enhanced RDoc for IO (#5422)
Revises much of the introductory material.

Also treats:

    #close_on_exec
    #close
    #closed?
    #close_read
    #close_write
2022-01-10 12:45:06 -06:00
Samuel Williams 0ca00e2cb7
Move IO write buffer allocation into function. 2022-01-09 00:03:16 +13:00
Burdette Lamar 5ad507d751
Enhanced RDoc for IO (#5402)
Treats:

    #ungetc
    #isatty
    #close_on_exec?
2022-01-06 10:47:51 -06:00
Burdette Lamar 445c055b44
Enhanced RDoc for IO (#5395)
Treats:

    #getc
    #readchar
    #getbyte
    #readbyte
    #ungetbyte
2022-01-05 16:13:06 -06:00
Burdette Lamar 9c15da0fd4
Enhanced RDoc for IO (#5381)
Treats:

    #lineno
    #lineno=
    #readline
    #readlines
    #each_line
    #each_byte
    #each_char
    #each_codepoint
2022-01-04 12:57:45 -06:00
Nobuyoshi Nakada 069cca6f74
Negative RBOOL usage 2022-01-01 17:02:04 +09:00
Samuel Williams 243320d22f
Fix incorrect minimum read length. (#5353) 2022-01-01 20:23:47 +13:00
Burdette Lamar 87c03694e6
Enhanced RDoc for IO (#5367)
Adds sections to class RDoc:

    Lines
        Line Separator
        Line Limit
        Line Number

Revises example text file t.txt to:

    Include paragraphs (separated by double line separator).
    Avoid being too long.

Revises examples that use the changed example file.

There are several other methods that will point to the added sections.
2021-12-30 16:46:24 -06:00
Nobuyoshi Nakada 3238164f9c `ioctl_narg_len` is used only when ioctl(2) is available 2021-12-29 11:40:04 +09:00
Samuel Williams 548c8f5f7a
Prefer to use RTEST when checking result of `rb_io_wait`. (#5341)
* Prefer to use RTEST when checking result of `rb_io_wait`.

* Consistently use false for signifying no events ready.
2021-12-25 02:26:06 +13:00
Nobuyoshi Nakada 4f74153846
Adjust styles [ci skip] 2021-12-24 21:17:27 +09:00
Samuel Williams acfe2f2655
Improvements to `rb_io_wait` return value handling and internal implementation. (#5340) 2021-12-24 23:11:02 +13:00
Burdette Lamar a8f4cc2bfa
[DOC] Enhanced RDoc for IO (#5324)
Treats #gets.
2021-12-23 10:27:10 -06:00
Burdette Lamar 243ecd176d
[DOC] Enhanced RDoc for IO (#5321)
Treats:

    #readpartial
    #read
2021-12-22 14:41:39 -06:00
Nobuyoshi Nakada fdf3996349
Empty and return the buffer if zero size is given [Bug #18421]
In `IO#readpartial` and `IO#read_nonblock`, as well as `IO#read`.
2021-12-22 15:45:59 +09:00
Nobuyoshi Nakada c29c2afafe Refactor setup_narg and extract finish_narg 2021-12-21 13:34:04 +09:00
Burdette Lamar 6ad8cf7071
[DOC] Enhanced RDoc for IO (#5307)
Treated:

    #sync
    #sync=
    #fsync
    #fdatasync
    #fileno
    #pid
    #inspect
    #to_io
2021-12-20 16:28:58 -06:00
Burdette Lamar 3bb6e4f641
[DOC] Enhanced RDoc for IO (#5304)
Treated:

    ::try_convert
    #write
    #<<
    #flush
    #tell
    #seek
    #pos=
    #rewind
    #eof
2021-12-19 22:04:47 -06:00
Burdette Lamar f44367effe
[DOC] Addition to IO introduction (#5299)
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2021-12-19 09:37:06 -06:00
Samuel Williams 42d3231154
Introduce io_result wrapper for passing `[-errno, size]` in VALUE. 2021-12-18 18:19:30 +13:00
Nobuyoshi Nakada b555e659c4
Do not use `fcopyfile` if appending to non-empty file [Bug #18388]
`fcopyfile` appends `src` to `to` and then truncates `to` to it's
original size.
2021-12-05 18:47:02 +09:00
Nobuyoshi Nakada 37cd35aea8 [win32] Transcode input from console [Bug #18353]
On Windows, as the input from console is encoded in the active
code page, convert the input to the internal encoding.
2021-12-01 18:54:26 +09:00
Samuel Williams 51c67ee61a Don't allow `fd == -1` to propagate to system calls. 2021-11-11 13:35:16 +13:00
Nobuyoshi Nakada 46e46eafd4
size_t is not for file size 2021-11-10 16:41:26 +09:00
Samuel Williams 4b89034218 IO::Buffer for scheduler interface. 2021-11-10 19:21:05 +13:00
Peter Zhu aeae6e2842 [Feature #18290] Remove all usages of rb_gc_force_recycle
This commit removes usages of rb_gc_force_recycle since it is a burden
to maintain and makes changes to the GC difficult.
2021-11-08 14:05:54 -05:00
Nobuyoshi Nakada 049e1f8560
Fix typo 2021-10-26 14:43:12 +09:00
Yusuke Endoh 13068ebe32
process.c: Add Process._fork (#5017)
* process.c: Add Process._fork

This API is supposed for application monitoring libraries to hook fork
event.

[Feature #17795]

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2021-10-25 20:47:19 +09:00
Nobuyoshi Nakada 408605aae7 EWOULDBLOCK is always defined since 74ba9c2488 2021-10-24 19:24:50 +09:00
Nobuyoshi Nakada 3d7c92df08 Extract io_again_p to check if EAGAIN or EWOULDBLOCK 2021-10-24 19:24:50 +09:00
Nobuyoshi Nakada 9822ebee5b suppress warnings by parenthesizing unclear expressions 2021-10-24 19:24:50 +09:00
Nobuyoshi Nakada 606e785fa8
Reuse ractor stderr 2021-10-07 19:57:09 +09:00
Nobuyoshi Nakada a706c09fa6
Adjust styles [ci skip] 2021-10-07 19:57:09 +09:00
S.H dc9112cf10
Using NIL_P macro instead of `== Qnil` 2021-10-03 22:34:45 +09:00
Kazuhiro NISHIYAMA e0c6e8c64a
[DOC] Use `unpack1` instead of `unpack(template)[0]` [ci skip] 2021-09-23 09:20:00 +09:00
S-H-GAMELINKS 032534dbdf Using RB_BIGNUM_TYPE_P macro 2021-09-11 09:13:24 +09:00
Lars Kanis 6594623f62 Fix Marshal.dump(closed_io) to raise TypeError and allow encoding on closed IO
Mashalling a closed IO object raised "closed stream (IOError)" before instead of TypeError.
This changes IO#(in|ex)ternal_encoding to still return the encoding even if the underlying FD is closed.

Fixes bug #18077
2021-08-22 10:33:22 +09:00
Nobuyoshi Nakada a8714b83c4
`popen()` is not available on emscripten 2021-08-16 17:00:19 +09:00
Csaba Henk 8df1ace64a Fix ARGF.read(length) short read [Bug #18074] 2021-08-10 11:32:45 +09:00
Samuel Williams 3a8cadcf8f Reduce chance to receive EBADF when closing an IO from another thread. 2021-08-08 22:12:14 +12:00
S.H 378e8cdad6
Using RBOOL macro 2021-08-02 12:06:44 +09:00
Nobuyoshi Nakada 3b52230452
Define functions using rb_wait_for_single_fd [Bug #18046] 2021-08-01 06:49:07 +09:00
Yusuke Endoh eee709595c io.c: Clarify the behavior of `IO.read` when called as `File.read`
Ditto to `IO.binread`, `IO.write`, `IO.binwrite`, `IO.foreach`, and
`IO.readlines`.
2021-07-16 16:10:54 +09:00
Yusuke Endoh 645616c273 process.c: Call rb_thread_atfork in rb_fork_ruby
All occurrences of rb_fork_ruby are followed by a call rb_thread_fork in
the created child process.

This is refactoring and a potential preparation for [Feature #17795].
(rb_fork_ruby may be wrapped by Process._fork_.)
2021-07-15 16:46:08 +09:00
Nobuyoshi Nakada 59ead88563
[DOC] add notes and examples for pipe [ci skip] 2021-06-30 15:45:21 +09:00
Nobuyoshi Nakada 13939d61b4
Check if closed after each yield [Bug #17661] 2021-06-27 11:18:41 +09:00
Nobuyoshi Nakada 6875408583
Introduced RUBY_CRLF_ENVIRONMENT to simplify repeated condition 2021-06-24 13:01:46 +09:00
Samuel Williams fcc6fd23ec Rework `sysread` to use blocking `read_internal_locktmp`. 2021-06-22 22:48:57 +12:00
Samuel Williams 45e65f302b Deprecate and rework old (fd) centric functions. 2021-06-22 22:48:57 +12:00
Samuel Williams 3deb5d7113 Direct io for accept, send, sendmsg, recvfrom, and related methods. 2021-06-22 22:17:53 +12:00
Burdette Lamar c1741df1a1 What's Here for Numeric and Comparable 2021-06-21 10:38:16 -07:00
Nobuyoshi Nakada e4f891ce8d
Adjust styles [ci skip]
* --braces-after-func-def-line
* --dont-cuddle-else
* --procnames-start-lines
* --space-after-for
* --space-after-if
* --space-after-while
2021-06-17 10:13:40 +09:00
Nobuyoshi Nakada f136c1ec80
Removed redundant NUM2IOCTLREQ definition [Bug #17759]
Fix up c2d9967f78.
2021-06-16 13:33:56 +09:00
Nobuyoshi Nakada c2d9967f78 Configure ioctl request argument type [Bug #17759] 2021-06-16 13:17:19 +09:00
Kazuhiro NISHIYAMA 8560f34246
Fix a typo [ci skip] 2021-05-16 00:07:22 +09:00
Nobuyoshi Nakada 2d67027448 Removed missing/dup2.c
This function should be always available, as POSIX-compliant or
Windows platform are required since 1.9.  Also the code in this
file is MT-unsafe.
2021-05-10 15:59:23 +09:00
Burdette Lamar fd3a20348e
What's Here for class IO (#4440)
* What's Here for class IO
2021-05-04 13:59:33 -05:00
Jeremy Evans c809a8cae8 Fix documentation for IO#unget{byte,c}
Fixes [Bug #14400]
2021-05-04 11:23:57 -07:00
Kenichi Kamiya 52fb0a2932 [Doc] Drop signature around removed IO#codepoints
Follow 43b95bafd5
2021-04-05 11:47:42 +09:00
Samuel Williams a9c5c2d614 Check errno before invoking scheduler in `rb_io_wait_readable/writable`.
See <https://bugs.ruby-lang.org/issues/17527> for more details.
2021-03-30 23:16:59 +13:00
S.H 71ba09632b
Remove unneeded declarations 2021-03-20 21:00:29 +09:00
Samuel Williams 5f69a7f604
Expose scheduler as public interface & bug fixes. (#3945)
* Rename `rb_scheduler` to `rb_fiber_scheduler`.

* Use public interface if available.

* Use `rb_check_funcall` where possible.

* Don't use `unblock` unless the fiber was non-blocking.
2021-02-09 19:39:56 +13:00
Nobuyoshi Nakada bf627e518d
Forward keyword arguments to ARGF from global functions 2021-02-08 11:33:53 +09:00
Yusuke Endoh 33fb87cc9c io.c: popen is not available on emscripten 2021-01-23 13:24:06 +09:00
Marcus Stollsteimer 3108ad7bf3 [DOC] Fix grammar: "is same as" -> "is the same as" 2021-01-05 15:13:53 +01:00
Nobuyoshi Nakada ae1cc3fd4e
Made an internal callback function static 2020-12-20 14:29:31 +09:00
Jeremy Evans 05313c914b Use category: :deprecated in warnings that are related to deprecation
Also document that both :deprecated and :experimental are supported
:category option values.

The locations where warnings were marked as deprecation warnings
was previously reviewed by shyouhei.

Comment a couple locations where deprecation warnings should probably
be used but are not currently used because deprecation warning
enablement has not occurred at the time they are called
(RUBY_FREE_MIN, RUBY_HEAP_MIN_SLOTS, -K).

Add assert_deprecated_warn to test assertions.  Use this to simplify
some tests, and fix failing tests after marking some warnings with
deprecated category.
2020-12-18 09:54:11 -08:00
Nobuyoshi Nakada b419f90a8b
Tweaked `Process::Status.wait`
* revert `rb_last_status_set`
* renamed the new function as `rb_process_status_new`
* `rb_process_status_new` always freezes the return value
* marked `Process::Status.wait` as EXPERIMENTAL, as it has not
  been discussed totally yet.
2020-12-09 11:51:57 +09:00
Samuel Williams 2553c5f94a Add support for non-blocking `Process.wait`. 2020-12-09 08:55:35 +13:00
卜部昌平 43b95bafd5
delete deprecated IO-like methods
This commit deletes
{IO,ARGF,StringIO,Zib::GZipReader}#{bytes,chars,lines,codepoints}, which
have been deprecated since c47c095b97.

Note that String also has those methods.  They are neither depreacted
nor deleted because they are not aliases of counterpart each_something.
2020-12-03 12:47:51 +09:00
Koichi Sasada 5e3259ea74 fix public interface
To make some kind of Ractor related extensions, some functions
should be exposed.

* include/ruby/thread_native.h
  * rb_native_mutex_*
  * rb_native_cond_*
* include/ruby/ractor.h
  * RB_OBJ_SHAREABLE_P(obj)
  * rb_ractor_shareable_p(obj)
  * rb_ractor_std*()
  * rb_cRactor

and rm ractor_pub.h
and rename srcdir/ractor.h to srcdir/ractor_core.h
    (to avoid conflict with include/ruby/ractor.h)
2020-11-18 03:52:41 +09:00
Samuel Williams a08ee8330d Rename to `Fiber#set_scheduler`. 2020-11-07 23:39:50 +13:00
Jeremy Evans 58fd54f914 Fix error in update-deps due to tab/space difference 2020-10-28 15:29:05 -07:00
Stefan Stüben 8c2e5bbf58 Don't redefine #rb_intern over and over again 2020-10-21 12:45:18 +09:00
Koichi Sasada 99310e3eb5 Some global variables can be accessed from ractors
Some global variables should be used from non-main Ractors.
[Bug #17268]

```ruby
     # ractor-local (derived from created ractor): debug
     '$DEBUG' => $DEBUG,
     '$-d' => $-d,

     # ractor-local (derived from created ractor): verbose
     '$VERBOSE' => $VERBOSE,
     '$-w' => $-w,
     '$-W' => $-W,
     '$-v' => $-v,

     # process-local (readonly): other commandline parameters
     '$-p' => $-p,
     '$-l' => $-l,
     '$-a' => $-a,

     # process-local (readonly): getpid
     '$$'  => $$,

     # thread local: process result
     '$?'  => $?,

     # scope local: match
     '$~'  => $~.inspect,
     '$&'  => $&,
     '$`'  => $`,
     '$\''  => $',
     '$+'  => $+,
     '$1'  => $1,

     # scope local: last line
     '$_' => $_,

     # scope local: last backtrace
     '$@' => $@,
     '$!' => $!,

     # ractor local: stdin, out, err
     '$stdin'  => $stdin.inspect,
     '$stdout' => $stdout.inspect,
     '$stderr' => $stderr.inspect,
```
2020-10-20 15:38:54 +09:00
Nobuyoshi Nakada fddffa4c7a
Respect the original styles [ci skip] 2020-10-11 11:57:32 +09:00
Samuel Williams f75009c122 Prefer to use `prep_io` for temporary IO instances. 2020-09-17 00:31:04 +12:00
Samuel Williams 026ba68c10 Fix handling of FMODE_PREP. 2020-09-15 22:53:08 +12:00