aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
Commit message (Collapse)AuthorAgeFilesLines
* [DOC] Remove unknown markup or macro [ci skip]Nobuyoshi Nakada2022-10-051-4/+3
| | | | Also remove the ancient word "Windows NT".
* Remove an unused macro [ci skip]Nobuyoshi Nakada2022-10-031-4/+0
|
* [Bug #19034] No runtime check for `utimensat` if unavailableNobuyoshi Nakada2022-10-031-1/+3
|
* [DOC] RDoc changes for IO (#6458)Burdette Lamar2022-10-021-1/+1
| | | | | | Moves Expect library doc into io.c. Changes certain links to local sections, now pointing to sections in doc/io_streams.rdoc. Removes local sections now superseded by sections in doc/io_streams.rdoc.
* Initialize Objective-C classes before fork() for macOS 13Yuta Saito2022-09-261-0/+44
| | | | | | | | | | | | | | | | Since macOS 13, CFString family API used in `rb_str_append_normalized_ospath` may internally use Objective-C classes (`NSTaggedPointerString` and `NSPlaceholderMutableString`) for small strings. On the other hand, Objective-C classes should not be used for the first time in a `fork()`'ed but not `exec()`'ed process. Violations for this rule can result deadlock during class initialization, so Objective-C runtime conservatively crashes on such cases by default. Therefore, we need to use CFString API to initialize Objective-C classes used internally *before* `fork()`. For more details, see https://bugs.ruby-lang.org/issues/18912
* New page IO Streams (#6383)Burdette Lamar2022-09-211-28/+596
| | | This page provides an overview of IO streams. It's meant to be linked to from many other doc spots. In particular it will be linked to from many places in ARGF, File, IO, and StringIO.
* avoid ANYARGS卜部昌平2022-09-211-6/+4
| | | | | Use macro instead of a static functon. This isn't very amusing but doing this wihtout a macro (is possibe but) seems just too much.
* Using is_broken_string functionS-H-GAMELINKS2022-09-101-2/+2
|
* [Bug #5317] Use `rb_off_t` instead of `off_t`Nobuyoshi Nakada2022-09-081-4/+4
| | | | Get rid of the conflict with system-provided small `off_t`.
* [Win32] Remove dead code using `chsize`Nobuyoshi Nakada2022-09-081-40/+4
| | | | | Already using `rb_w32_truncate` and `rb_w32_ftruncate`, and `HAVE_FTRUNCATE` has been added 14 years ago.
* Remove extra semicolons at the top level [ci skip]Nobuyoshi Nakada2022-09-051-3/+3
|
* Fixed by [Bug #18964]Nobuyoshi Nakada2022-08-191-3/+0
|
* rb_str_resize: Only clear coderange on truncationJean Boussier2022-08-181-0/+3
| | | | | If we are expanding the string or only stripping extra capacity then coderange won't change, so clearing it is wasteful.
* Expand tabs [ci skip]Takashi Kokubun2022-07-211-1068/+1068
| | | | [Misc #18891]
* Rename ENCINDEX_ASCII to ENCINDEX_ASCII_8BITJean Boussier2022-07-191-5/+5
| | | | Otherwise it's way too easy to confuse it with US_ASCII.
* Remove no longer used label [ci skip]Nobuyoshi Nakada2022-06-291-3/+0
|
* Check availability of `utimensat` on macOSNobuyoshi Nakada2022-06-271-9/+42
|
* Using is_ascii_string to check encodingS-H-GAMELINKS2022-06-171-1/+1
|
* Fix missing paren [ci skip]Kazuhiro NISHIYAMA2022-05-061-2/+2
|
* File rdoc (#5888)Burdette Lamar2022-05-051-14/+29
| | | | | | | | | Treats: ::pipe? ::symlink? ::socket? ::blockdev? ::chardev?
* Enhanced RDoc for File (#5849)Burdette Lamar2022-04-261-35/+67
| | | | | | | | | | | Treats: #path ::stat ::lstat #lstat ::directory? Also adds section "Example Files" that explains assumptions about example files. I'm using t.txt already, and I'm pretty sure I'll need t.dat (binary data). I don't know whether I'll need t.rus (Russian text).
* [DOC] Use consistent terms [Bug #18680]Nobuyoshi Nakada2022-04-181-3/+3
|
* Return `false` where sticky-bit is not provided [Bug #18734]Nobuyoshi Nakada2022-04-151-1/+1
|
* Use an empty string when building File.expand_pathPeter Zhu2022-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allocating a string of length MAXPATHLEN and then shrinking the string is inefficient when the resulting path is short. Preallocating a large string is also a problem for Variable Width Allocation since we can't easily downsize the capacity. I ran the following benchmark: ```ruby Benchmark.ips do |x| { "empty" => "", "short" => "a/" * 10, "medium" => "a/" * 100, "long" => "a/" * 500 }.each do |name, path| x.report(name) do |times| i = 0 while i < times File.expand_path(path) i += 1 end end end end ``` On this commit: ``` empty 97.486k (± 0.7%) i/s - 492.915k in 5.056507s short 96.026k (± 2.4%) i/s - 486.489k in 5.068966s medium 86.304k (± 1.3%) i/s - 435.336k in 5.045112s long 59.395k (± 1.7%) i/s - 302.175k in 5.089026s ``` On master: ``` empty 94.138k (± 1.4%) i/s - 472.158k in 5.016590s short 92.043k (± 1.4%) i/s - 468.180k in 5.087496s medium 84.910k (± 2.3%) i/s - 425.750k in 5.017007s long 61.503k (± 2.7%) i/s - 309.723k in 5.039429s ```
* Fix formatting of What's Here for File (#5717)Burdette Lamar2022-03-251-93/+93
|
* [DOC] Replace with IO@ModesPeter Zhu2022-02-071-1/+1
|
* [DOC] Use RDoc link style for links in the same class/modulePeter Zhu2022-02-071-4/+4
| | | | | | | | | | 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
* [DOC] Use RDoc link style for links to other classes/modulesPeter Zhu2022-02-071-2/+2
| | | | | | | | | | 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
* [DOC] Fix links in documentation for File and IOPeter Zhu2022-02-071-1/+1
| | | | Fixes some typos and dead links.
* File rdoc (#5438)Burdette Lamar2022-01-131-28/+59
| | | | | | | | Treats: File introduction File.open File.new
* Removed deprecated Dir.exists? and File.exists?Nobuyoshi Nakada2021-12-281-18/+0
|
* Adjust styles [ci skip]Nobuyoshi Nakada2021-12-241-1/+2
|
* Improved exception usage/classes.Samuel Williams2021-12-211-10/+14
|
* size_t is not for file sizeNobuyoshi Nakada2021-11-101-2/+3
|
* IO::Buffer for scheduler interface.Samuel Williams2021-11-101-7/+14
|
* [DOC] Fix indent as single paragraph [ci skip]Nobuyoshi Nakada2021-11-051-1/+1
|
* rb_encoding is already constU.Nakamura2021-10-141-1/+1
| | | | | - this change get rid of a warning of mswin build. see include/ruby/internal/encoding/encoding.h(116)
* rb_group_member: SimplifyNobuyoshi Nakada2021-10-141-20/+4
|
* Fix regression on Solaris after change to use realpath on loaded featuresJeremy Evans2021-10-041-1/+27
| | | | | | | | | | | | | | | | | | | | | | | | After the change to use realpath on loaded features, Solaris CI started failing in test_no_curdir (which tests behavior for running ruby without a working directory). I was able to trace the problem to the following call chain: rb_call_inits->Init_Thread->Init_thread_sync->rb_provide-> get_loaded_features_index->rb_check_realpath->rb_dir_getwd_ospath-> ruby_getcwd This will throw an exception, but because Ruby hasn't been fully initialized at the point the exception is thrown, it just exits with a status of 1. The bug here is that rb_check_realpath should not raise an exception, it should return nil. This bug is hit on Solaris because Solaris uses the realpath emulation instead of native realpath, and the realpath emualation raised instead of returning nil if the mode was RB_REALPATH_CHECK. Use rb_rescue in the realpath emulation if the mode is RB_REALPATH_CHECK, and swallow any exceptions raised and return nil.
* Get rid of unused function warning for `_WIN32`xtkoba2021-10-031-1/+1
|
* Associate the encoding to the found pathNobuyoshi Nakada2021-10-011-0/+4
|
* Refactor and Using RBOOL macroS.H2021-09-151-10/+5
|
* Replace RBOOL macroS-H-GAMELINKS2021-09-051-14/+14
|
* Add stat_time functionS-H-GAMELINKS2021-08-241-6/+9
|
* [DOC] Fix the rdoc for File::Stat#size? [ci skip]Akinori MUSHA2021-08-171-3/+5
|
* Using RBOOL macroS.H2021-08-021-2/+0
|
* Add RBOOL macro and use itS.H2021-07-291-12/+8
|
* What's Here for Numeric and ComparableBurdette Lamar2021-06-211-4/+5
|
* What's Here for class File (#4460)Burdette Lamar2021-05-071-0/+132
| | | What's Here for class File
* Support non-standard `struct stat` [Bug #17793]Nobuyoshi Nakada2021-04-121-0/+16
| | | | | | On 32-bit Android: * `st_dev`/`st_rdev` are not `dev_t` * `st_mode` is not `mode_t`