* win32/setup.mak (verconf.mk): split release date into year,
month, and day.
* common.mk (RUBY_RELEASE_DATE): move from Makefile.in to share
with win32/setup.mak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: add a rule for explicit.o.
* configure.in: detect explicit_bzero and memset_s.
* include/ruby/missing.h: add explicit_bzero.
* random.c (init_randomseed): use explicit_bzero() instead of
memset(). memset could be eliminated by compiler optimization.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: update dependency of string.o to id.h for r52479.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (incs): remove extra slash before
vm_call_iseq_optimized.inc. as nmake vpath syntax includes a
separator, don't append it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm_call_iseq_setup_normal_0start() is simple, however it has
some loops/conditions depends on ISeq::param.size and
ISeq::local_size (in vm_push_frame(), inlined into this function).
There are many simple methods which has a few parameters and local
variables. So that this patch introduces several special functions
generated in vm_call_iseq_optimized.inc by
tool/mk_call_iseq_optimized.rb.
This script makes
vm_call_iseq_setup_normal_0start_Xparams_Ylocals()
where X is 0 to 3 and Y is 1 to 6 (as current setting).
In this case, X * Y = 24 functions are created.
These functions creates fast method dispatch by inlining
vm_push_frame() with immediate params/locals sizes.
On my laptop, we can have the following results.
vm2_method* 1.083 (8.3% faster)
vm2_poly_method* 0.961 (3.4% slower)
It shows 8.3% faster for inner loop method dispatch (hit inline
cache), but 3.4% slower when inline cache miss because we need
to find a suitable call handler.
* common.mk: add a rule for vm_call_iseq_optimized.inc.
* tool/mk_call_iseq_optimized.rb: added.
* vm.c: include vm_call_iseq_optimized.inc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (showflags): do not show flags from recursive make.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Even if S_ISREG() is true, the file may be file on FUSE filesystem
or something. We can't assume O_NONBLOCK is safe.
Moreover, we should wait if the path is point to FIFO. That's
FIFO semantics. GVL should be transparent from ruby script.
Thus, just reopen without O_NONBLOCK for filling the requirements.
[Bug #11060][Bug #11559]
* ruby.c (loadopen_func): new for the above.
* file.c (ruby_is_fd_loadable): new. for checks loadable file type
of not.
* file.c (rb_file_load_ok): use ruby_is_fd_loadble()
* internal.h: add ruby_is_fd_loadble()
* common.mk: now, ruby.o depend on thread.h.
* test/ruby/test_require.rb
(TestRequire#test_loading_fifo_threading_success): new test.
This test successful case that loading from FIFO.
* test/ruby/test_require.rb
(TestRequire#test_loading_fifo_threading_raise): rename from
test_loading_fifo_threading. You souldn't rescue an exception
if you test raise or not.
Moreover, this case should be caught IOError because load(FIFO)
should be blocked until given any input.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* file.c (rb_file_load_ok): open in non-blocking mode withoout
releasing GVL. don't care about others than regular files and
directories. [ruby-dev:49272] [Bug #11559]
* ruby.c (load_file_internal): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (check): separate test-testframework from test-all
only when building check.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (test-almost): rename target to test other than
test-frameworks.
* defs/gmake.mk (test-almost): run after test-testframework.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (check): separate test-testframework and test-all.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Version for character normalization data from 7.0.0 to 8.0.0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: clear environment variables for GEM paths to get rid
of searching unexpected gems. fix failures on travis-ci.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enc/{ascii,us_ascii,utf_8}.c: set encoding indexes of
fundamental built-in encodings so that usable as well as
allocated rb_encoding before rb_enc_init().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encindex.h: separate encoding index constants from internal.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (yes-test-ruby): apply excluding options as well as
"test".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_reparse): read reparse point in a dynamic
buffer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
and ConditionalVariables to thread_tools.c. In other wowrds,
such classes are built-in.
[Feature #8919]
At first, I planned to embed only a Queue class.
However, rubygems requires 'thread.rb' (rubygems are
required at first, when launch MRI without --disable-gems).
So most of people require 'thread.rb' as an embedded library.
Now, ext/thread/thread.c is empty, only for a dummy for
compatibility.
* thread.c: move a definition of Mutex class to thread_tools.c.
And define Mutex class under Thread (so now Mutex is Thread::Mutex).
Because other thread related classes are also defined under Thread.
We remain ::Mutex as Thread::Mutex. Only an inspect result is changed.
* common.mk: add dependency from thread.o to thraed_tools.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[Feature #11420]
This table only manage ID->VALUE table to reduce overhead of st.
Some functions prefixed rb_id_table_* are provided.
* id_table.c: implement rb_id_table_*.
There are several algorithms to implement it.
Now, there are roughly 4 types:
* st
* array
* hash (implemented by Yura Sokolov)
* mix of array and hash
The macro ID_TABLE_IMPL can choose implementation.
You can see detailes about them at the head of id_table.c.
At the default, I choose 34 (mix of list and hash).
This is not final decision.
Please report your suitable parameters or
your data structure.
* symbol.c: introduce rb_id_serial_t and rb_id_to_serial()
to represent ID by serial number.
* internal.h: use id_table for method tables.
* class.c, gc.c, marshal.c, vm.c, vm_method.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (getifaddrs): use ruby_strdup instead of
combination ruby_xmalloc, lstrlen and lstrcpy.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (PHONY): should not depend on any real files, not to
make those dependencies inadvertently.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk ($(arch)-fake.rb): read from STDIN instead of creating
version.i, to get rid of conflict with tool/update-deps.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This speeds up the hash function for dynamic symbols.
[ruby-core:70129] [Bug #11396], nearly up to Ruby 2.1 levels
Power-of-two hash sizing [Feature #9425] speeds up cases where we
have a good hash, but this means we can no longer hide behind weak
hashes. Unfortunately, object IDs do not hash well, but we may
use the extra space in the RSymbol struct to memoize the hash value.
Further optimizations should be possible. For now, the st.c APIs
force us to calculate rb_str_hash redundantly at dsym registration.
* symbol.h (struct RSymbol): add hashval field
* symbol.c (dsymbol_alloc): setup hashval field once
* hash.c (rb_any_hash): return RSymbol->hashval directly
* common.mk: hash.o depends on symbol.h
Thanks to Bruno Escherl <bruno@escherl.net> for the bug report
[ruby-core:70129] [Bug #11396]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (distclean-local): clean preludes in the build
diretory, not by realclean.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (clean, distclean): clean local files before platform
directory, some files may exist there.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: fix macro name, exec but not EXEC. pointed by
@nagachika.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c (fill_random_bytes_syscall): try getrandom system call
on Linux if supported by the kernel.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ENC_MK): reorder $(ENCS) before the target file name,
as enc/make_encmake.rb ignores any arguments after the target.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-man-date): update last date in man pages.
* tool/vcs.rb (VCS#modified): returns last modified time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk, tool/mkconfig.rb: check the running ruby version in
rbconfig.rb with the program version, as RUBY_VERSION has never
been affected by --with-ruby-version option.
[ruby-core:68639] [Bug #11002]
* configure.in (LIBRUBY_DLDFLAGS): compatibility_version must be
valid version numbers, not an arbitrary string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (enc.mk): use BOOTSTRAPRUBY since enc/make_encmake.rb
should not depend on recent versions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/ripper/ripper.c, ext/rbconfig/sizeof/sizes.c):
strip autogenerated dependencies which have invalid syntax in
other than nmake.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (verconf.h): use BOOTSTRAPRUBY as generic_erb.rb and
the template are not dependent on built-in constants.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
and related functions from node.h to internal.h.
* variable.c: remove unused include pragma.
* common.mk: remove unused dependency.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (MINIOBJS): no longer need dmyenc.o.
* miniinit.c (Init_enc): declare minimum built-in encodings so
that these Encoding constants will be available in miniruby.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (fake.rb): generate from same template on all
platforms including win32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/mkconfig.rb: use arguments instead of built-in constants
to work without fake.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (test-rubyspec): use fake script to set header
directories.
* template/fake.rb.in (RUBYOPT): set -r option to propagate to
forked processes.
* tool/fake.rb (prehook): set rubyarchhdrdir too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (TESTOPTS): initialize by the environment variable
RUBY_TESTOPTS, which is prefixed to get rid of conflict.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ENC_TRANS_D): prefix by "." to clarify that timestamp
file for build directory is under the build directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (LIBRUBY_SO): make symbols for static IDs which
begin with ruby_static_id_ local too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
in common.mk (in which OBJ is defined) because of Makefile include
and parse order. This partly reverts r49419.
[ruby-dev:48849] [Bug #10808]
* Makefile.in (ruby-glommed.o): ditto.
* Makefile.in (ruby-glommed.o): remove excess $(DTRACE_OBJ) because
it is included in $(OBJS) since r49451.
* Makefile.in (probes.o): should depend on $(DTRACE_DEPENDENT_OBJS)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (COMMONOBJS): include $(DTRACE_OBJ) which is necessary
for $(DTRACE_DEPENDENT_OBJS).
* configure.in (RUBY_DTRACE_POSTPROCESS): separate whether dtrace
is needed to genearate probes.o and whether it modifies input
object files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (clean): clean local at last, and remove enc/trans.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (VPATH, NEWLINE_C), common.mk (common-srcs): make
and use newline.c under enc/trans directory, not toplevel. no
longer search enc directory implicitly.
* configure.in, enc/Makefile.in (BUILTIN_ENCS, BUILTIN_TRANSES):
prefix respective directory names to builtin encodings and
transcoder source names.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (unicode.o): fix unicode header locations, so that the
rule for name2ctype.h works.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (extract-gems): extract gem files to install them even
if zlib is not available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/make-snapshot: use srcdir as checked out working directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (html): target to generate HTML form documentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (verconf.h): so depends on verconf.mk, which
is rebuilt by setup.mak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/json/parser/parser.c): sometimes need for local
development.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (prelude.c): no longer depends on miniruby, since not
depending on rbconfig.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Since they depend on $(PREP) which is miniruby, they are rebuilt
after miniruby is built, even if tarball contains them.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
It is not used now.
* common.mk: prelude.c and golf_prelude.c doesn't depend on rbconfig.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-gems): remove old version gems after
successfully downloaded.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (verconf.h): update only when changed to reduce
unnecessary recompiling loadpath.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/ripper/ripper.c): use $(PWD) for Unix,
$(MAKEDIR) for Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/ripper/ripper.c): fix dependencies for the case
to make ripper.y and id.h under the build directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/ripper/ripper.c): VPATH is always ../.. from
ext/ripper.
* ext/ripper/depend (.y.c): VPATH is not needed for an
intermediate file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-gems): use ims=nil option.
* tool/downloader.rb (Downloader.download): show the message if no
need to download in verbose mode.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (PRELUDE_SCRIPTS): since tool/generic_erb.rb searches
files in VPATH, srcdir prefix is not needed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/unicode_normalize/tables.rb: commit not to download and
convert Unicode data files every time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (lib/unicode_normalize/tables.rb): should depend on
Unicode data files only when downloading.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/prelude.c.tmpl: move from tool/compile_prelude.rb and
expand by generic_erb.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Moreover its error "make[1]: *** No rule to make target
`lib/unicode_normalize/tables.rb', needed by `srcs-lib'. Stop." is not
a good error message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
keyword arguments/parameters and a splat argument.
[Feature #10440] (Details are described in this ticket)
Most of complex part is moved to vm_args.c.
Now, ISeq#to_a does not catch up new instruction format.
* vm_core.h: change iseq data structures.
* introduce rb_call_info_kw_arg_t to represent keyword arguments.
* add rb_call_info_t::kw_arg.
* rename rb_iseq_t::arg_post_len to rb_iseq_t::arg_post_num.
* rename rb_iseq_t::arg_keywords to arg_keyword_num.
* rename rb_iseq_t::arg_keyword to rb_iseq_t::arg_keyword_bits.
to represent keyword bitmap parameter index.
This bitmap parameter shows that which keyword parameters are given
or not given (0 for given).
It is refered by `checkkeyword' instruction described bellow.
* rename rb_iseq_t::arg_keyword_check to rb_iseq_t::arg_keyword_rest
to represent keyword rest parameter index.
* add rb_iseq_t::arg_keyword_default_values to represent default
keyword values.
* rename VM_CALL_ARGS_SKIP_SETUP to VM_CALL_ARGS_SIMPLE
to represent
(ci->flag & (SPLAT|BLOCKARG)) &&
ci->blockiseq == NULL &&
ci->kw_arg == NULL.
* vm_insnhelper.c, vm_args.c: rewrite with refactoring.
* rewrite splat argument code.
* rewrite keyword arguments/parameters code.
* merge method and block parameter fitting code into one code base.
* vm.c, vm_eval.c: catch up these changes.
* compile.c (new_callinfo): callinfo requires kw_arg parameter.
* compile.c (compile_array_): check the last argument Hash object or
not. If Hash object and all keys are Symbol literals, they are
compiled to keyword arguments.
* insns.def (checkkeyword): add new instruction.
This instruction check the availability of corresponding keyword.
For example, a method "def foo k1: 'v1'; end" is cimpiled to the
following instructions.
0000 checkkeyword 2, 0 # check k1 is given.
0003 branchif 9 # if given, jump to address #9
0005 putstring "v1"
0007 setlocal_OP__WC__0 3 # k1 = 'v1'
0009 trace 8
0011 putnil
0012 trace 16
0014 leave
* insns.def (opt_send_simple): removed and add new instruction
"opt_send_without_block".
* parse.y (new_args_tail_gen): reorder variables.
Before this patch, a method "def foo(k1: 1, kr1:, k2: 2, **krest, &b)"
has parameter variables "k1, kr1, k2, &b, internal_id, krest",
but this patch reorders to "kr1, k1, k2, internal_id, krest, &b".
(locate a block variable at last)
* parse.y (vtable_pop): added.
This function remove latest `n' variables from vtable.
* iseq.c: catch up iseq data changes.
* proc.c: ditto.
* class.c (keyword_error): export as rb_keyword_error().
* common.mk: depend vm_args.c for vm.o.
* hash.c (rb_hash_has_key): export.
* internal.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (EXT_SRCS): remove dl/callback which has been removed
at r48217.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (.unicode-tables.time): needs Unicode files always,
and should update after downloading these files.
[ruby-core:66026] [Bug #10461]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (UPDATE_LIBRARIES): separate autogenerated library
script from downloaded data files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: download Unicode files into separate directory for the
version.
* tool/downloader.rb (Downloader::Unicode.download): strip version
directory.
* tool/downloader.rb (Downloader.download): strip directory name
if download directory is given.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/unicode_norm_gen.tmpl: use generic_erb.rb to update if
changed and manage timestamp, so that source tree on read-only
filesystem works.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (.update-unicode.time): timestamp not to download same
files twice at one build. [Bug #10415]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-unicode): invert dependency to run every times.
[ruby-core:65842] [Bug #10415]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ALWAYS_UPDATE_UNICODE): comment to how to force
always update Unicode data files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (UNICODE_FILES): revert the rule that Unicode data
files depend on downloader target, and add missing dependency of
lib/unicode_normalize/tables.rb
* common.mk (after-configure): removed as srcdir should be
read-only after update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-unicode): remove -e option to force update
every builds.
* tool/downloader.rb (Downloader.download): return if ims is nil
and target file is existing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (lib/unicode_normalize/tables.rb): run at top srcdir.
* tool/unicode_norm_gen.rb: add -input and -output options to set
InputDataDir and OuputDataDir respectively.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-unicode): use downloaded files if existing,
not to require network connection always.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This rule still needs to be integrated into the overall make process.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-gems): chdir to the target directory and then
add the tool directory to load paths, for older BASERUBY.
[Bug #10372][ruby-core:65630]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-config_files): update only non-existing files,
and get rid of trying to download existing files every time.
gitweb does not send Last-Modified header.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/downloader.rb (Downloader): split particular sites from the
main class.
* tool/downloader.rb (Downloader.download): show messages if
verbose mode.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
enk.mk because common.mk does not know the dependency, but enk.mk
knows. [ruby-dev:48530] [Bug #10220]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (clean-platform): use $(NULL) as portabile null device
name instead of hard coded /dev/null for the portability.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e