* template/configure-ext.mk.tmpl (EXTMK_ARGS): add MINIRUBY for
cross-compling, which is used in extmk.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (clean-ext): separate clean-up of makefiles and
timestamps, and clean-up of subdirectories under ext and gems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* How to enable this feature?
* define USE_DEBUG_COUNTER as 1.
* you can disable to output the result with
RUBY_DEBUG_COUNTER_DISABLE environment variable
even if USE_DEBUG_COUNTER == 1.
* How to add new counter?
* add COUNTER(<name>) line on debug_counter.h.
* include "debug_counter.h"
* insert RB_DEBUG_COUNTER_INC(<name>) line on your favorite place.
* counter output example:
[RUBY_DEBUG_COUNTER] mc_inline_hit 999
[RUBY_DEBUG_COUNTER] mc_inline_miss 3
[RUBY_DEBUG_COUNTER] mc_global_hit 23
[RUBY_DEBUG_COUNTER] mc_global_miss 273
[RUBY_DEBUG_COUNTER] mc_global_state_miss 3
[RUBY_DEBUG_COUNTER] mc_class_serial_miss 0
[RUBY_DEBUG_COUNTER] mc_cme_complement 0
[RUBY_DEBUG_COUNTER] mc_cme_complement_hit 0
[RUBY_DEBUG_COUNTER] mc_search_super 1384
[RUBY_DEBUG_COUNTER] ivar_get_hit 0
[RUBY_DEBUG_COUNTER] ivar_get_miss 0
[RUBY_DEBUG_COUNTER] ivar_set_hit 0
[RUBY_DEBUG_COUNTER] ivar_set_miss 0
[RUBY_DEBUG_COUNTER] ivar_get 431
[RUBY_DEBUG_COUNTER] ivar_set 465
* mc_... is related to method caching.
* ivar_... is related to instance variable accesses.
* compare with dtrace/system tap features, there are completely
no performacne penalties when it is disabled.
* This feature is supported only on __GNUC__ compilers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (mflags): pass make flags to sub-makes, for nmake
which cannot pass them by the environment variable.
* defs/gmake.mk (mflags): filter out -j option for sub-makes.
* template/exts.mk.tmpl (MFLAGS): extract MFLAGS from sub extmk
files for nmake.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
It is unnecessary to pass MFLAGS to sub-makes, because it is
evaluated implicitly if set by make. GNU make 4.2 sets both of
-jN and --jobserver-auth (or --jobserver-fds in older versions)
options which conflict. And it is useless for command line macros
since Microsoft NMAKE does not set them.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/exts.mk.tmpl: use `cd` then `make` instead of `make -C`
when not GNU make.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/configure-ext.mk.tmpl: embed MINIRUBY and SCRIPT_ARGS
to get rid of quoting problems of nmake.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (EXT_MK): use double-quotes and remove SCRIPT_ARGS
which contains both types of quotes.
* template/configure-ext.mk.tmpl (all): use single-quotes for MAKE
which is set by nmake and contains spaces in the path. do not
use SCRIPT_ARGS.
* template/exts.mk.tmpl (all, static): separate dependency lines,
not to become a default target unintentionally.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/configure-ext.mk: configure each directories underneath ext
in parallel.
* template/exts.mk.tmpl: then collect the results.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* meta character \X matches Unicode 9.0.0 characters with some workarounds
for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences.
[Feature #12831] [ruby-core:77586]
The term "character" can have many meanings bytes, codepoints, combined
characters, and so on. "grapheme cluster" is highest one of such words,
which means user-perceived characters.
Unicode Standard Annex #29 UNICODE TEXT SEGMENTATION specifies how to
handle grapheme clusters (extended grapheme cluster).
But some specs aren't updated to current situation because Unicode Emoji
is rapidly extended without well definition.
It breaks the precondition of UTR#29 "Grapheme cluster boundaries can be
easily tested by looking at immediately adjacent characters". (the
sentence will be removed in the next version)
Though some of its detail are described in Unicode Technical Report #51
UNICODE EMOJI but it is not merged into UTR#29 yet.
http://unicode.org/reports/tr29/http://unicode.org/reports/tr51/http://unicode.org/Public/emoji/4.0/
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* unicode/9.0.0/casefold.h, name2ctype.h, unicode/data/9.0.0:
new directories/files for Unicode version 9.0.0
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (timestamp_file): separate timestamp files for each
architectures.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (PRELUDE_C): remove unnecessary dependents, which are
not included directly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/make-snapshot (package): propagate UNICODE_VERSION to make
snapshot from the parent make.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk, enc/depend (casefold.h, name2ctype.h): move to
unicode data directory per version.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (INCFLAGS): move from Makefile.in.
* win32/Makefile.sub (XCFLAGS): missing directory is not
neccessary as an include path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk, enc/Makefile.in: moved timestamp files for
directories under the specific directory, to get rid of match
with files under the source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk, enc/Makefile.in: moved timestamp files for
directories under the specific directory, to get rid of match
with files under the source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (incs): prefix to enc/unicode/name2ctype.h and
enc/jis/props.h for nmake.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (enc/unicode/name2ctype.h): remove stale recipe,
which did not support Unicode age properties.
* common.mk (enc/unicode/name2ctype.h): update by --header option
of tool/enc-unicode.rb. enc/unicode/name2ctype.kwd file has not
been used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (enc/unicode/name2ctype.kwd): rule to create from
Unicode data files, used only when the target does not exist.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/gen_dummy_probes.rb: remove include and conditional
directives from probes.dmyh which are removed by preprocessing.
* common.mk: remove unnecessary dependencies on vm_opts.h via
probes.dmyh.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (.unicode-tables.time): move from the top source
directory to the unicode source data directory which contains
its version number.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (lib/unicode_normalize/tables.rb): should not depend
on Unicode data files unless ALWAYS_UPDATE_UNICODE=yes, to get
rid of downloading Unicode data unnecessary. [ruby-dev:49681]
* common.mk (enc/unicode/casefold.h): update Unicode files in a
sub-make, not to let the header depend on the files always.
* enc/unicode/case-folding.rb: if gperf is not usable, assume the
existing file is OK.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (enc/unicode/casefold.h): update Unicode files in a
sub-make, not to let the header depend on the files always.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (lib/unicode_normalize/tables.rb): should not depend
on Unicode data files unless ALWAYS_UPDATE_UNICODE=yes, to get
rid of downloading Unicode data unnecessary. [ruby-dev:49681]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (build-ext), ext/extmk.rb: use variable EXTENCS
different than ENCOBJS, to get rid of circular dependency.
build libencs when linking encodings statically.
[ruby-core:75618] [Bug #12401]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/mkconfig.rb: provide Unicode Version information as
RbConfig::CONFIG['UNICODE_VERSION'].
[ruby-core:75845] [Feature #12460]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: win32/ifchange.bat does not support input from stdin.
also needs quotes to escape an equal sign.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (RBCONFIG): use ifchange tool to see if the content is
changed and update the timestamp file.
* tool/mkconfig.rb: remove ifchange features.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (zonetabl.h): fix typo.
* ext/date/zonetab.list: remove forward declaration which may be
conflict with the later definition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* defs/gmake.mk (missing/des_tables.c): move the recipe from
common.mk. this is less common.
* missing/crypt.c (init_des): if des_tables.c is empty, initialize
DES tables at runtime.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* missing/crypt.h (struct crypt_data): remove unnecessary member
"initialized".
* missing/crypt.c (des_setkey_r): nothing to be initialized in
crypt_data.
* configure.in (struct crypt_data): check for "initialized" in
struct crypt_data, which may be only in glibc, and isn't on AIX
at least.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: revert r55237. replace crypt, not crypt_r, and
check if crypt is broken more.
* missing/crypt.c: move crypt_r.c
* string.c (rb_str_crypt): use crypt_r if provided by the system.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (string.o): now depends on crypt.h for crypt_r and
struct crypt_data.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* strftime.c (rb_strftime_with_timespec): append formatted results
to the given string with expanding, and also deal with NUL chars.
* strftime.c (rb_strftime, rb_strftime_timespec): return formatted
string, not the length put in the given buffer.
* time.c (rb_strftime_alloc): no longer needs to retry with
reallocating buffers.
* time.c (time_strftime): no longer needs to split by NUL chars.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (TEST_EXCLUDES, EXCLUDE_TESTFRAMEWORK): use full spell
long option.
* cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL): suppress path name
conversions by msys2. [ruby-dev:49525] [Bug #12199]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/lib/test/unit.rb (Options#non_options): make regexp name
options prefixed with "!" negative filters.
* common.mk (TEST_EXCLUDES): use negative filter to exclude memory
leak tests. -x option excludes test files, not test methods.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk, tool/mkconfig.rb: set cross_compiling option from
Makefile, but not from rbconfig.rb, which is just going to be
created by this command.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
some CI systems don't have gperf. Creation of enc/unicode/casefold.h
is now possible with make unicode-up. This is intended as a temporary measure.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enc/unicode.c: Added shortening macros for enc/unicode/casefold.h
* enc/unicode/case-folding.rb: Fixed file encoding for CaseFolding.txt
to ASCII-8BIT (should fix some ci errors). Clarified usage. Created
class MapItem. Partially implemented class CaseMapping.
(with Kimihito Matsui)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-bundled_gems): to update version numbers in
gems/bundled_gems file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
it more reliable (including additional fix not in r53633) [Bug #12007]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/rbconfig/sizeof/sizes.c): separate the dependency
with VPATH and the command, get rid of weird VPATH behavior of
nmake.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (probes.dmyh): separate the dependency and the
command, get rid of weird VPATH behavior of nmake.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* error.c (rb_assert_failure): assertion with stack dump.
* ruby_assert.h (RUBY_ASSERT): new header for the assertion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-config_files): move back from Makefile.in,
needs to be here for .travis.yml.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e