[#98098] [Ruby master Feature#16824] Follow RubyGems naming conventions for the stdlib — shannonskipper@...

Issue #16824 has been reported by shan (Shannon Skipper).

14 messages 2020/05/01

[#98147] [Ruby master Feature#16832] Use #name rather than #inspect to build "uninitialized constant" error messages — jean.boussier@...

Issue #16832 has been reported by byroot (Jean Boussier).

20 messages 2020/05/06

[#98174] [Ruby master Bug#16837] Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions? — takashikkbn@...

Issue #16837 has been reported by k0kubun (Takashi Kokubun).

10 messages 2020/05/07

[#98241] [Ruby master Bug#16845] Building Ruby with old existing system Ruby results in make error with ./tool/file2lastrev.rb — erik@...

Issue #16845 has been reported by ErikSwan (Erik Swan).

7 messages 2020/05/09

[#98256] [Ruby master Feature#16847] Cache instruction sequences by default — jean.boussier@...

Issue #16847 has been reported by byroot (Jean Boussier).

16 messages 2020/05/11

[#98257] [Ruby master Feature#16848] Allow callables in $LOAD_PATH — jean.boussier@...

Issue #16848 has been reported by byroot (Jean Boussier).

27 messages 2020/05/11

[#98318] [Ruby master Bug#16853] calling bla(hash, **kw) with a string-based hash passes the strings into **kw (worked < 2.7) — sylvain.joyeux@...4x.org

Issue #16853 has been reported by sylvain.joyeux (Sylvain Joyeux).

12 messages 2020/05/13

[#98355] [Ruby master Bug#16889] TracePoint.enable { ... } also activates the TracePoint for other threads, even outside the block — eregontp@...

Issue #16889 has been reported by Eregon (Benoit Daloze).

16 messages 2020/05/14

[#98363] [Ruby master Feature#16891] Restore Positional Argument to Keyword Conversion — merch-redmine@...

Issue #16891 has been reported by jeremyevans0 (Jeremy Evans).

23 messages 2020/05/14

[#98371] [Ruby master Feature#16894] Integer division for Ruby 3 — andrew@...

Issue #16894 has been reported by ankane (Andrew Kane).

18 messages 2020/05/15

[#98391] [Ruby master Bug#16896] MakeMakefile methods should be private — eregontp@...

Issue #16896 has been reported by Eregon (Benoit Daloze).

10 messages 2020/05/15

[#98396] [Ruby master Feature#16897] Can a Ruby 3.0 compatible general purpose memoizer be written in such a way that it matches Ruby 2 performance? — sam.saffron@...

Issue #16897 has been reported by sam.saffron (Sam Saffron).

25 messages 2020/05/16

[#98453] [Ruby master Bug#16904] rubygems: psych: superclass mismatch for class Mark (TypeError) — jaruga@...

Issue #16904 has been reported by jaruga (Jun Aruga).

18 messages 2020/05/20

[#98486] [Ruby master Bug#16908] Strange behaviour of Hash#shift when used with `default_proc`. — samuel@...

Issue #16908 has been reported by ioquatix (Samuel Williams).

14 messages 2020/05/23

[#98569] [Ruby master Bug#16921] s390x: ramdom test failures for timeout or segmentation fault — jaruga@...

Issue #16921 has been reported by jaruga (Jun Aruga).

9 messages 2020/05/29

[#98599] [Ruby master Bug#16926] Kernel#require does not load a feature twice when $LOAD_PATH has been modified spec fails only on 2.7 — eregontp@...

Issue #16926 has been reported by Eregon (Benoit Daloze).

12 messages 2020/05/31

[ruby-core:98391] [Ruby master Bug#16896] MakeMakefile methods should be private

From: eregontp@...
Date: 2020-05-15 19:38:06 UTC
List: ruby-core #98391
Issue #16896 has been reported by Eregon (Benoit Daloze).

----------------------------------------
Bug #16896: MakeMakefile methods should be private
https://bugs.ruby-lang.org/issues/16896

* Author: Eregon (Benoit Daloze)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Right they are public, and since mkmf.rb does `include MakeMakefile` it defines a lot of public methods on all objects.

```
$ ruby -e 'a=1.public_methods; require "mkmf"; b=1.public_methods; puts (b-a).sort'
append_cflags
append_cppflags
append_ldflags
append_library
arg_config
cc_command
cc_config
check_signedness
check_sizeof
checking_for
checking_message
configuration
conftest_source
convertible_int
cpp_command
cpp_include
create_header
create_makefile
create_tmpsrc
depend_rules
dir_config
dummy_makefile
each_compile_rules
egrep_cpp
enable_config
find_executable
find_executable0
find_header
find_library
find_type
have_const
have_devel?
have_framework
have_func
have_header
have_library
have_macro
have_struct_member
have_type
have_typeof?
have_var
init_mkmf
install_dirs
install_files
install_rb
libpath_env
libpathflag
link_command
link_config
log_src
macro_defined?
map_dir
merge_libs
message
mkintpath
mkmf_failed
modified?
pkg_config
relative_from
scalar_ptr_type?
scalar_type?
split_libs
timestamp_file
try_cflags
try_compile
try_const
try_constant
try_cpp
try_cppflags
try_do
try_func
try_header
try_ldflags
try_link
try_link0
try_run
try_signedness
try_static_assert
try_type
try_var
typedef_expr
what_type?
winsep
with_cflags
with_config
with_cppflags
with_destdir
with_ldflags
with_werror
xpopen
xsystem
```

Since I expect all those methods are called without a receiver, I think they could be private.
Thoughts?

The current situation makes extconf.rb brittle to method name conflicts.
One real bug caused by this is FFI doesn't work when mkmf is required (filed as https://github.com/ffi/ffi/issues/776):
```
$ ruby -rmkmf -rffi -e 'module A; class A < FFI::Struct; layout :a, :int; end; end' |& cat
/home/eregon/.rubies/ruby-2.7.1/lib/ruby/2.7.0/mkmf.rb:1270:in `find_type': wrong number of arguments (given 1, expected 2+) (ArgumentError)
	from /home/eregon/.rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/ffi-1.12.2/lib/ffi/struct.rb:271:in `find_type'
	from /home/eregon/.rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/ffi-1.12.2/lib/ffi/struct.rb:265:in `find_field_type'
	from /home/eregon/.rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/ffi-1.12.2/lib/ffi/struct.rb:305:in `array_layout'
	from /home/eregon/.rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/ffi-1.12.2/lib/ffi/struct.rb:217:in `layout'
	from -e:1:in `<class:A>'
	from -e:1:in `<module:A>'
	from -e:1:in `<main>'
```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next