* 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