ko1
a3a45fafa3
* vm.c (rb_vm_inc_const_missing_count, ruby_vm_const_missing_count):
...
added.
* vm_insnhelper.h: ditto.
* variable.c (rb_const_get_0), insns.def: Constants should not be
cached if const_missing is called. [ruby-core:21059] [Bug #967 ]
* bootstraptest/test_class.rb: add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-15 15:31:43 +00:00
ko1
f0da2e1657
* vm_insnhelper.c (vm_call_method): use class of method defined
...
instead of receiver's class on bmethod. fixes [ruby-core:20786]
* bootstraptest/test_method.rb: add a test for above.
* vm_insnhelper.c (vm_setup_method): remove unused parameter klass.
* vm_insnhelper.h (CALL_METHOD): ditto.
* insns.def, vm_eval.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-24 11:47:00 +00:00
matz
31b6ea65bb
* include/ruby/ruby.h (DBL2NUM): renamed from DOUBLE2NUM.
...
a patch from Tadashi Saito <shiba at mail2.accsnet.ne.jp>
in [ruby-dev:36102].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-05 18:24:21 +00:00
nobu
f94f8f351e
* configure.in (sizeof ptrdiff_t): check for size of ptrdiff_t.
...
* include/ruby/ruby.h (PRI?PTRDIFF, PRI?SIZE): printf conversion
specifiers for ptrdiff_t and size_t/ssize_t.
* insns.def (leave), marshal.c (long_toobig), transcode.c
(str_transcode), vm_dump.c (control_frame_dump, stack_dump_each),
(debug_print_register, debug_print_pre): t and z length modifiers
are C99.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-12 13:17:29 +00:00
mame
f08581c7b6
* ext/coverage/coverage.c, ext/coverage/extconf.rb: eliminate
...
COVERAGE__ and introduce coverage.so instead. How to measure
coverage: (1) require "coverage.so", (2) require or load Ruby source
file, and (3) Coverage.result will return the same hash as COVERAGE__.
[ruby-dev:35324]
* thread.c (rb_enable_coverages): start coverage measurement by using
rb_add_event_hook.
* thread.c (rb_get_coverages): returns current results of coverage
measurement.
* include/ruby/intern.h: add prototype for above two functions.
* vm_core.h, vm.c: add field of coverages to rb_vm_t.
* insns.def (trace): remove special handling for COVERAGE__.
* iseq.c (prepare_iseq_build): switch COVERAGE__ to
rb_get_coverages().
* parse.y (coverage): ditto.
* thread.c (clear_coverage): ditto.
* lib/coverage.rb: use coverage.so instead of COVERAGE__.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-03 12:55:12 +00:00
ko1
9a61579c16
* compile.h, insns.def: reduce insn operand of "trace".
...
* include/ruby/ruby.h: add RUBY_EVENT_COVERAGE event.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 18:13:22 +00:00
usa
6d625e4b6e
* insns.def (trace): C99ism.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 16:59:20 +00:00
mame
5874de95e8
* Add coverage measurement constant COVERAGE__. This constant is not
...
for casual use. Usage: (1) assign {} to COVERAGE__, (2) require or
load Ruby source file, and (3) COVERAGE__["sourcefilepath"] will
return an array whose elements represent number of executions per
line of source code.
* vm_core.h: add field of coverage array to iseq.
* iseq.c (prepare_iseq_build): ditto.
* insns.def (trace): update coverage array.
* parse.y (coverage): create and initialize coverage array.
* compile.h (ADD_TRACE): add trace instruction to update covearge
array.
* thread.c (clear_coverage): delete coverage array when forking.
Otherwise, double count of coverage may occur.
* lib/coverage.rb: sample coverage measurement tool.
* error.c: distinguish explicitly between parse_in_eval and
mild_compile_error.
* load.c: ditto.
* vm_eval.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 16:55:30 +00:00
ko1
807fbd6940
* compile.c, vm.c, insns.def: call FrozenCore.set_postexe method
...
instead to use "postexe" insn.
* id.c, id.h: add a prepared id for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 12:19:00 +00:00
ko1
eb33f91cb7
* compile.c, insns.def, vm.c, vm_core.h: remove some insns
...
(undef, alias, definemethod).
Call RubyVM::FrozenCore's singleton method instead.
Add "putiseq" and "putspecialobject" instructions.
* id.c, id.h: add ids for above.
* tool/parse.rb: "VM" no longer exists. Use RubyVM instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 03:05:58 +00:00
ko1
9e324fdd3e
* vm.c, eval_intern.h (PASS_PASSED_BLOCK):
...
set a VM_FRAME_FLAG_PASSED flag to skip this frame when
searching ruby-level-cfp.
* eval.c, eval_intern.h, proc.c: fix to check cfp. if there is
no valid ruby-level-cfp, cause RuntimeError exception.
[ruby-dev:34128]
* vm_core.h, vm_evalbody.c, vm.c, vm_dump.c, vm_insnhelper.c,
insns.def: rename FRAME_MAGIC_* to VM_FRAME_MAGIC_*.
* KNOWNBUGS.rb, bootstraptest/test*.rb: move solved bugs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-10 21:46:43 +00:00
naruse
9256f94d9a
* insns.def (DEFINE_INSN): subtract of pointers is ptrdiff_t.
...
this is not int on 64bit system.
* vm_dump.c (control_frame_dump): ditto.
* vm_dump.c (stack_dump_each): ditto.
* vm_dump.c (debug_print_register): ditto.
* vm_dump.c (debug_print_pre): ditto.
* transcode.c (str_transcode): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-01 03:23:50 +00:00
nobu
075530a685
* suppress warnings with -Wwrite-string.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-31 09:28:20 +00:00
ko1
9832ab3663
* insns.def (opt_gt|ge|lt|le): use values directly to compare.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-22 17:31:15 +00:00
akr
dc217e2d25
* insns.def (newhash): fix a variable definition: "const k".
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-22 03:52:22 +00:00
ko1
4c094940aa
* insns.def, vm_insnhelper.c: specify "const".
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-21 15:18:15 +00:00
ko1
385f0e8af6
* vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling.
...
VM value stack frame of block contains cref information.
(dfp[-1] points CREF)
* compile.c, eval_intern.h, eval_method.c, load.c, proc.c,
vm_dump.h, vm_core.h: ditto.
* include/ruby/ruby.h, gc.c: remove T_VALUES because of above
changes.
* bootstraptest/test_eval.rb, test_knownbug.rb: move solved test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-19 03:08:50 +00:00
ko1
5e4edb43a2
* insns.def: add a "putcbase" instruction.
...
* compile.c, insns.def: fix to use putcbase instruction for
class search. Qundef should not be used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-14 02:31:28 +00:00
matz
837c76bd7b
* compile.c (iseq_compile_each): should call compile_cpath() for
...
modules as well. [ruby-dev:34585]
* insns.def (defineclass): add undef handling.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-05 15:01:42 +00:00
matz
6b1924b176
* insns.def (defineclass): was using wrong variable. [ruby-dev:34592]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-05 14:51:02 +00:00
matz
a823fc5d8b
* compile.c (compile_cpath): use Qundef to denote cbase lookup.
...
* insns.def (defineclass): Qudef is passed for cbase.
* insns.def (setconstant): ditto.
* vm_insnhelper.c (vm_check_if_namespace): use rb_inspect()
instead of rb_obj_as_string() for better description.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-05 02:27:29 +00:00
nobu
ccf20a6d3f
* insns.def (defineclass): check if cbase is a class or a module.
...
[ruby-core:16118]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-03 10:59:44 +00:00
nobu
b81a66d1ef
* eval.c (ruby_exec_node): no thread starts inside iseq compilation.
...
* eval.c (rb_f_raise): skip current control frame. [ruby-core:15589]
* insns.def (opt_div): raise as the ordinary method. [ruby-core:15589]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-19 02:14:14 +00:00
usa
fe923029df
* insns.def: sorry, remove debug code.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-05 15:57:32 +00:00
usa
ba6e0752b0
* insns.def (adjuststack): never use INC_SP with minus value because
...
some compilers cannot deal it collectly. use DEC_SP instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-05 15:54:33 +00:00
akr
d5c8ad5359
* insns.def (toregexp): generate a regexp from strings instead of one
...
string.
* re.c (rb_reg_new_ary): defined for toregexp. it concatenates
strings after each string is preprocessed.
* compile.c (compile_dstr_fragments): split from compile_dstr.
(compile_dstr): call compile_dstr_fragments.
(compile_dregx): defined for dynamic regexp.
(iseq_compile_each): use compile_dregx for dynamic regexp.
[ruby-dev:33400]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-29 08:03:51 +00:00
ko1
13b5b22ae6
* compile.c, compile.h: fix stack pointer issues.
...
calculate correct stack depth at compile time.
* insns.def (emptstack): remove it and add a new insn "adjuststack".
* bootstraptest/test_knownbug.rb: move/remove fixed test.
* bootstraptest/test_syntax.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-25 18:02:01 +00:00
mame
ea5aa33504
* insns.def (expandarray): fix stack inc.
...
* bootstraptest/test_knownbug.rb, test_massign.rb: move a fixed test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-23 17:17:23 +00:00
akr
6cdef2dc7e
* $Date$ keyword removed to avoid inclusion of locale dependent
...
string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
nobu
8638ee26e7
* include/ruby/intern.h, re.c (rb_reg_new): keep interface same as
...
1.8. [ruby-core:14583]
* include/ruby/intern.h, re.c (rb_reg_new_str): renamed, and defines
HAVE_RB_REG_NEW_STR macro to tell if it is available.
* include/ruby/encoding.h (rb_enc_reg_new): added.
* insns.def (toregexp), marshal.c (r_object0): use rb_reg_new_str().
* re.c (rb_reg_regcomp, rb_reg_s_union): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-04 16:30:33 +00:00
ko1
314bef7ef1
* insnhelper.ci, vm.c, vm_core.h: change interface of
...
vm_invoke_block() to specify block ptr. [ruby-talk:266422]
* cont.c, eval_jump.ci, insns.def, proc.c, signal.c, thread.c:
apply above change.
* bootstraptest/test_knownbug.rb: move fixed bug.
* bootstraptest/test_block.rb: ditto. and add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-20 07:07:35 +00:00
ko1
cd84310864
* compile.c, insnhelper.ci, insns.def, object.c, vm.c, vm.h:
...
optimize !@, != method invocation.
* id.c, id.h: ditto.
* bootstraptest/test_syntax.rb: add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-18 12:07:51 +00:00
matz
2bbffcd6a4
* insns.def (concatarray, splatarray): use to_a instead of
...
to_splat.
* insnhelper.ci (caller_setup_args): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-01 05:20:06 +00:00
ko1
b0986a8f82
* compile.c, insns.def: change return value of "defined?"
...
for $&, $1, ... . If such variables are defined,
return "global-variable".
* test/ruby/test_defined.rb: add tests.
* bootstraptest/test_syntax.rb: fix a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-27 04:43:54 +00:00
ko1
1152eef81d
* insns.def: fix typo.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-27 02:56:15 +00:00
ko1
329484693a
* insns.def, compile.c: fix to allow dsym for alias/undef.
...
[ruby-dev:32355]
* bootstraptest/test_method.rb: add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-27 01:02:30 +00:00
matz
691df99d6a
* test/ruby/test_eval.rb (TestEval::test_instance_eval_cvar):
...
updated not to modify class variable of Object class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-26 01:31:20 +00:00
matz
c227d3feb3
* insnhelper.ci (vm_search_normal_superclass): rename function.
...
* insnhelper.ci (vm_search_superclass): ditto.
* proc.c (struct METHOD): rename rklass -> rclass.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-22 01:17:52 +00:00
ko1
d907cbc81d
* blockinlining.c, compile.c, compile.h, debug.c, debug.h,
...
id.c, insnhelper.h, insns.def, thread.c, thread_pthread.ci,
thread_pthread.h, thread_win32.ci, thread_win32.h, vm.h,
vm_dump.c, vm_evalbody.ci, vm_opts.h: fix comments and
copyright year.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-13 22:13:04 +00:00
ko1
25c0cb981a
* include/ruby/ruby.h: introduce 2 macros:
...
RFLOAT_VALUE(v), DOUBLE2NUM(dbl).
Rename RFloat#value -> RFloat#double_value.
Do not touch RFloat#double_value directly.
* bignum.c, insns.def, marshal.c, math.c, numeric.c, object.c,
pack.c, parse.y, process.c, random.c, sprintf.c, string.c,
time.c: apply above changes.
* ext/dl/mkcallback.rb, ext/json/ext/generator/generator.c:
ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-13 16:00:53 +00:00
ko1
3c78d621e6
* insns.def (opt_eq): fix to use rb_str_equal().
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-07 06:49:38 +00:00
nobu
6845578c92
* insns.def (opt_eq): get rid of gcc bug.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-06 05:32:37 +00:00
akr
5c0e68c39c
* include/ruby/intern.h: export rb_ivar_foreach.
...
* include/ruby/ruby.h: modify struct RObject and RClass for optimizing
T_OBJECT space. [ruby-dev:31853]
(ROBJECT_LEN, ROBJECT_PTR)
(RCLASS_IV_TBL, RCLASS_M_TBL, RCLASS_SUPER, RCLASS_IV_INDEX_TBL)
(RMODULE_IV_TBL, RMODULE_M_TBL, RMODULE_SUPER): abstract accessor
defined.
* variable.c: support the modified RObject and RClass.
* object.c: ditto.
* class.c: ditto.
* gc.c: ditto.
* marshal.c: ditto.
* eval_method.ci: use the abstract accessor.
* insns.def: ditto.
* proc.c: ditto.
* struct.c: ditto.
* eval.c: ditto.
* error.c: ditto.
* vm.c: ditto.
* insnhelper.ci: ditto.
* ext/digest/digest.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-28 06:21:46 +00:00
nobu
94a0db11e7
* encoding.c (rb_enc_check): check for ASCII-compatibilities.
...
* parse.y (parser_tokadd_string, parser_parse_string,
parser_here_document, parser_yylex): set encoding to US-ASCII.
* parse.y (rb_enc_symname_p): check if valid with encoding.
* parse.y (rb_intern3): let symbols have encoding.
* string.c (rb_str_hash): add encoding index.
* string.c (rb_str_comparable, rb_str_equal, rb_str_eql): check if
compatible encoding.
* string.c (sym_inspect): made encoding aware.
* insns.def (opt_eq): compare with encoding.
* include/ruby/encoding.h (rb_enc_asciicompat): check if ASCII
compatible.
* include/ruby/encoding.h (rb_enc_get_index): added prototype.
* include/ruby/intern.h (rb_str_comparable, rb_str_equal): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-26 09:39:08 +00:00
akr
2a4c4f7b0c
* include/ruby/intern.h: declare rb_hash_tbl.
...
* include/ruby/ruby.h (RHash): delay st_table allocation.
rename tbl field to ntbl to detect direct reference to the st_table
as a compile error.
(RHASH_TBL): abstract accessor defined.
(RHASH_ITER_LEV): ditto.
(RHASH_IFNONE): ditto.
(RHASH_SIZE): ditto.
(RHASH_EMPTY_P): ditto.
* hash.c: delay st_table allocation.
* gc.c: replace tbl by ntbl.
* array.c: replace direct field accessor by abstract field accessor
such as RHASH(hash)->tbl to RHASH_TBL(hash).
* marshal.c: ditto.
* insns.def: ditto.
* ext/iconv/iconv.c: ditto.
* ext/json/ext/generator/generator.c: ditto.
* ext/json/ext/parser/parser.c: ditto.
* ext/syck/rubyext.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-29 23:12:21 +00:00
ko1
5ba27573a0
* string.c, include/ruby/intern.h: export rb_str_length().
...
* insns.def: use rb_str_lengt() in opt_length.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 08:54:29 +00:00
matz
a25fbe3b3e
* encoding.c: provide basic features for M17N.
...
* parse.y: encoding aware parsing.
* parse.y (pragma_encoding): encoding specification pragma.
* parse.y (rb_intern3): encoding specified symbols.
* string.c (rb_str_length): length based on characters.
for older behavior, bytesize method added.
* string.c (rb_str_index_m): index based on characters. rindex as
well.
* string.c (succ_char): encoding aware succeeding string.
* string.c (rb_str_reverse): reverse based on characters.
* string.c (rb_str_inspect): encoding aware string description.
* string.c (rb_str_upcase_bang): encoding aware case conversion.
downcase, capitalize, swapcase as well.
* string.c (rb_str_tr_bang): tr based on characters. delete,
squeeze, tr_s, count as well.
* string.c (rb_str_split_m): split based on characters.
* string.c (rb_str_each_line): encoding aware each_line.
* string.c (rb_str_each_char): added. iteration based on
characters.
* string.c (rb_str_strip_bang): encoding aware whitespace
stripping. lstrip, rstrip as well.
* string.c (rb_str_justify): encoding aware justifying (ljust,
rjust, center).
* string.c (str_encoding): get encoding attribute from a string.
* re.c (rb_reg_initialize): encoding aware regular expression
* sprintf.c (rb_str_format): formatting (i.e. length count) based
on characters.
* io.c (rb_io_getc): getc to return one-character string.
for older behavior, getbyte method added.
* ext/stringio/stringio.c (strio_getc): ditto.
* io.c (rb_io_ungetc): allow pushing arbitrary string at the
current reading point.
* ext/stringio/stringio.c (strio_ungetc): ditto.
* ext/strscan/strscan.c: encoding support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:29:39 +00:00
ko1
e39eb9dab5
* compile.c, insns.def, parse.y: fix massign order. This change
...
causes performance problem. Try vm1_swap benchmark.
[ruby-dev:31522]
* insns.def, insnhelper.ci: move process body of expandarray insn to
vm_expandarray().
* bootstraptest/test_knownbug.rb, bootstraptest/test_massign.rb:
move a solved test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-23 07:10:56 +00:00
ko1
e7c3478261
* insns.def (throw): insert a RUBY_VM_CHECK_INTS(). [ruby-dev:31361]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 16:24:18 +00:00
ko1
b1c5d848f8
* vm_dump.c (debug_print_pre): fix to show control frame count.
...
* insns.def (opt_call_c_function): fix operand type.
* lib/vm/instruction.rb: ditto.
* insnhelper.ci (vm_push_frame, vm_pop_frame): fix to show
control stack status on if VMDEBUG == 2.
* vm.h: add a comment about VMDEBUG.
* iseq.c (find_prev_line_no): fix to skip bug report if
line is not found.
* lib/vm/instruction.rb: fix to use build_string() on
source code generators.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-12 19:09:15 +00:00