[#35631] [Ruby 1.9 - Bug #4558][Open] TestSocket#test_closed_read fails after r31230 — Tomoyuki Chikanaga <redmine@...>

23 messages 2011/04/06

[#35632] [Ruby 1.9 - Bug #4559][Open] Proc#== does not match the documented behaviour — Adam Prescott <redmine@...>

13 messages 2011/04/06

[#35637] [Ruby 1.9 - Bug #4561][Open] 1.9.2 requires parentheses around argument of method call in an array, where 1.8.7 did not — Dave Schweisguth <redmine@...>

9 messages 2011/04/07

[#35666] caching of the ancestor chain — Xavier Noria <fxn@...>

Why does Ruby cache the ancestors chain? I mean, not why the implementation implies that, but why it works that way conceptually.

9 messages 2011/04/09

[#35734] [Ruby 1.9 - Feature #4574][Open] Numeric#within — redmine@...

16 messages 2011/04/13

[#35753] [Ruby 1.9 - Bug #4576][Open] Range#step miss the last value, if end-exclusive and has float number — redmine@...

61 messages 2011/04/14
[#39566] [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Marc-Andre Lafortune <ruby-core@...> 2011/09/15

[#39590] [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Marc-Andre Lafortune <ruby-core@...> 2011/09/16

[#39593] Re: [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Tanaka Akira <akr@...> 2011/09/16

2011/9/17 Marc-Andre Lafortune <ruby-core@marc-andre.ca>:

[#39608] Re: [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Masahiro TANAKA <masa16.tanaka@...> 2011/09/17

I have not been watching ruby-core, but let me give a comment for this issue.

[#35765] [Ruby 1.9 - Bug #4579][Open] SecureRandom + OpenSSL may repeat with fork — redmine@...

27 messages 2011/04/15

[#35866] [Ruby 1.9 - Bug #4603][Open] lib/csv.rb: when the :encoding parameter is not provided, the encoding of CSV data is treated as ASCII-8BIT — yu nobuoka <nobuoka@...>

13 messages 2011/04/24

[#35879] [Ruby 1.9 - Bug #4610][Open] Proc#curry behavior is inconsistent with lambdas containing default argument values — Joshua Ballanco <jballanc@...>

11 messages 2011/04/25

[#35883] [Ruby 1.9 - Bug #4611][Open] [BUG] Segementation fault reported — Deryl Doucette <me@...>

15 messages 2011/04/25

[#35895] [Ruby 1.9 - Feature #4614][Open] [RFC/PATCH] thread_pthread.c: lower RUBY_STACK_MIN_LIMIT to 64K — Eric Wong <normalperson@...>

10 messages 2011/04/25

[ruby-core:35607] [Ruby 1.9 - Bug #4500][Closed] warning: implicit declaration of function 'fdatasync' for OS X

From: Motohiro KOSAKI <kosaki.motohiro@...>
Date: 2011-04-04 10:07:26 UTC
List: ruby-core #35607
Issue #4500 has been updated by Motohiro KOSAKI.

Status changed from Assigned to Closed


----------------------------------------
Bug #4500: warning: implicit declaration of function 'fdatasync' for OS X
http://redmine.ruby-lang.org/issues/4500

Author: Benoit Daloze
Status: Closed
Priority: Normal
Assignee: Motohiro KOSAKI
Category: build
Target version: 1.9.x
ruby -v: ruby 1.9.3dev (2011-03-01 trunk 31001) [x86_64-darwin10.6.0]


While compiling ruby, this warning appears on OS X:

compiling io.c
io.c: In function 'rb_io_fdatasync':
io.c:1433: warning: implicit declaration of function 'fdatasync'

This is a regression caused by the revert (r30821) of r30725: configure.in: Mac OS X wrongly reports it has fdatasync(3).

While fdatasync is defined, there is no header for it.
Apparently, it works as expected:

 fh = File.open('test.txt', 'w')
 fh.write('DATA')
 fh.fdatasync # if this line is commented, nothing is written to the file
 exit!

But I think we should not trust functions without prototype.
So I propose the following patch, which also document the behavior of IO#fdatasync accordingly to r30762.

 diff --git a/configure.in b/configure.in
 index 01e59f9..8a4e97e 100644
 --- a/configure.in
 +++ b/configure.in
 @@ -940,6 +940,7 @@ AS_CASE(["$target_os"],
  		fi
  		ac_cv_type_getgroups=gid_t # getgroups() on Rosetta fills garbage
  		ac_cv_lib_crypt_crypt=no
 +		ac_cv_func_fdatasync=no # Mac OS X wrongly reports it has fdatasync()
                  AC_CACHE_CHECK(for broken crypt with 8bit chars, rb_cv_broken_crypt,
                      [AC_TRY_RUN([
  #include <stdio.h>
 diff --git a/io.c b/io.c
 index 064d1a2..e5241b3 100644
 --- a/io.c
 +++ b/io.c
 @@ -1414,8 +1414,8 @@ rb_io_fsync(VALUE io)
   *
   *  Immediately writes all buffered data in <em>ios</em> to disk.
   *
 - *  <code>NotImplementedError</code> is raised
 - *  if the underlying operating system does not support <em>fdatasync(2)</em>.
 + *  If the underlying operating system does not support <em>fdatasync(2)</em>,
 + *  <code>IO#fsync</code> is called instead (which might raise a <code>NotImplementedError</code>).
   */
  
  static VALUE



-- 
http://redmine.ruby-lang.org

In This Thread

Prev Next