[#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:35602] [Ruby 1.9 - Bug #4500][Assigned] warning: implicit declaration of function 'fdatasync' for OS X

From: Motohiro KOSAKI <kosaki.motohiro@...>
Date: 2011-04-03 12:33:48 UTC
List: ruby-core #35602
Issue #4500 has been updated by Motohiro KOSAKI.

Status changed from Open to Assigned
Assignee set to Motohiro KOSAKI

To be honest, I'm not sure Apple's system function support policy. But I'm sure your suggestions were right in past. Then, I'll commit this proposal as is.

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

Author: Benoit Daloze
Status: Assigned
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