[ruby-cvs:69210] normal:r62029 (trunk): ruby/ruby.h: remove unnecessary exports from C-API

normal at ruby-lang.org normal at ruby-lang.org
Thu Jan 25 06:07:15 JST 2018


normal	2018-01-25 06:07:14 +0900 (Thu, 25 Jan 2018)

  New Revision: 62029

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62029

  Log:
    ruby/ruby.h: remove unnecessary exports from C-API
    
    Needlessly exporting can reduce performance locally and increase
    binary size.
    
    Increasing the footprint of our C-API larger is also detrimental
    to our development as it encourages tighter coupling with our
    internals; making it harder for us to preserve compatibility.
    
    If some parts of the core codebase needs access to globals,
    internal.h should be used instead of anything in include/ruby/*.
    
    "Urabe, Shyouhei" <shyouhei at ruby-lang.org> wrote:
    > On Thu, Jan 18, 2018 at 7:33 PM, Eric Wong <normalperson at yhbt.net> wrote:
    > > shyouhei at ruby-lang.org wrote:
    > >>   https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=61908
    > >>
    > >>     export rb_mFConst
    > >
    > > Why are we exporting all these and making the public C-API bigger?
    > > If anything, we should make these static.  Thanks.
    >
    > No concrete reason, except they have already been externed in 2.5.
    > These variables had lacked declarations so far, which resulted in their
    > visibility to be that of extern. The commit is just confirming the status quo.
    >
    > I'm not against to turn them into static.
    
    This reverts changes from r61910, r61909, r61908, r61907, and r61906.
    
    * transcode.c (rb_eUndefinedConversionError): make static
      (rb_eInvalidByteSequenceError): ditto
      (rb_eConverterNotFoundError): ditto
    * process.c (rb_mProcGID, rb_mProcUid, rb_mProcID_Syscall): ditto
    * file.c (rb_mFConst): ditto
    * error.c (rb_mWarning, rb_cWarningBuffer): ditto
    * enumerator.c (rb_cLazy): ditto
      [Misc #14381]

  Modified files:
    trunk/enumerator.c
    trunk/error.c
    trunk/file.c
    trunk/include/ruby/ruby.h
    trunk/process.c
    trunk/transcode.c


More information about the ruby-cvs mailing list