diff --git a/ChangeLog b/ChangeLog index a6fb1e71ed..73cdbcd986 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sun Jul 20 12:41:53 2014 Eric Wong + + * include/ruby/io.h (rb_io_t): shrink to 200 bytes from 216 on 64-bit + This puts us within 8 bytes of being three cache lines instead of + four lines on x86-64. This breaks the ABI. + [Feature #10050] + Sun Jul 20 12:36:46 2014 Eric Wong * include/ruby/oniguruma.h (struct re_pattern_buffer): shrink to 448 diff --git a/include/ruby/io.h b/include/ruby/io.h index 4ecd4d0b46..bdde9844e2 100644 --- a/include/ruby/io.h +++ b/include/ruby/io.h @@ -59,8 +59,8 @@ typedef struct { } rb_io_buffer_t; typedef struct rb_io_t { - int fd; /* file descriptor */ FILE *stdio_file; /* stdio ptr for read/write if available */ + int fd; /* file descriptor */ int mode; /* mode flags: FMODE_XXXs */ rb_pid_t pid; /* child's pid (for pipes) */ int lineno; /* number of lines read */ @@ -89,9 +89,9 @@ typedef struct rb_io_t { rb_econv_t *writeconv; VALUE writeconv_asciicompat; + int writeconv_initialized; int writeconv_pre_ecflags; VALUE writeconv_pre_ecopts; - int writeconv_initialized; VALUE write_lock; } rb_io_t;