Commit graph

758 commits

Author SHA1 Message Date
yugui
2ea63eebcc merges r20782 from trunk into ruby_1_9_1.
* parse.y (stmt): returns dispatched result.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17 06:18:00 +00:00
yugui
677668eace merges r20781 from trunk into ruby_1_9_1.
* parse.y (primary): also in ripper, saves in_def before restoring.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17 06:17:51 +00:00
yugui
d3ab1b9c27 merges r20770 from trunk into ruby_1_9_1.
* parse.y (block_call): block should not be given to yield.
  [ruby-core:20583]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17 06:17:11 +00:00
yugui
3a3d9ace57 merges r20684 from trunk into ruby_1_9_1.
must be typos.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-13 01:59:26 +00:00
yugui
2e52bda3c8 merges r20593 from trunk into ruby_1_9_1.
* compile.c (iseq_compile_each), gc.c (assign_heap_slot),
  (gc_mark_children), parse.y (vtable_alloc, vtable_free, vtable_add),
  proc.c (proc_to_s), thread.c (terminate_i, rb_thread_terminate_all),
  (thread_start_func_2, blocking_region_begin, blocking_region_end),
  (rb_thread_kill), thread_pthread.c (native_thread_create),
  (ubf_pthread_cond_signal), vm.c (check_env, thread_free), vm_dump.c
  (vm_env_dump_raw, vm_stack_dump_each, vm_thread_dump_state),
  (vm_call0): use void pointer for %p.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-13 01:01:02 +00:00
yugui
bc2c2f915c merges r20469 from trunk into ruby_1_9_1.
* parse.y (expr): keyword_not can continue across newline.
  [ruby-core:20252]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-04 08:54:56 +00:00
mame
c0f168f5db * parse.y (parser_yylex): check EOF explicitly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-28 12:34:13 +00:00
nobu
a26b7a0c82 * parse.y (lambda): need to adjust lpar_beg for both of the parser and
ripper.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-24 18:43:27 +00:00
matz
aed0c718db * parse.y (lambda): need to adjust lpar_beg for ripper as well.
[ruby-dev:36702]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-24 09:08:43 +00:00
matz
e8a71e64a1 * parse.y (f_larglist): should not allow semicolon separated local
variable declarations if formal argument list is not surrounded
  by parentheses, mostly because semicolon outside of parentheses
  appears to terminate the expression.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-22 06:03:12 +00:00
ko1
3337185ed6 * parse.y (arg_concat_gen): concat target node should be NODE_ARRAY.
[ruby-core:19413]
* bootstraptest/test_method.rb: add tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-21 20:45:35 +00:00
matz
d3546e79ae * parse.y (opt_block_arg): allow trailing comma after usual
arguments.  not after block argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-18 11:49:39 +00:00
nobu
b025ce4678 * common.mk (ID_H_TARGET): phony target to update id.h.
* tool/ifchange, win32/ifchange.bat: --timestamp option added.

* tool/generic_erb.rb: --timestamp, --output and --if-change options
  added.

* template/id.h.tmpl: moved from id.h.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-17 10:46:23 +00:00
matz
c196780964 * parse.y (parser_yylex): allow reserved word to be keyword argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-14 00:36:52 +00:00
naruse
20ed75a639 * parse.y (token_info_pop): show source filename. [ruby-dev:36710]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-13 10:13:40 +00:00
nobu
d9fdf58aaa * parse.y (parser_prepare): use utf-8 encoding directly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-11 10:49:56 +00:00
ko1
3f710785f0 * parse.y: optimize 'for' statement when one variable given.
* benchmark/bm_loop_for.rb: added.
* benchmark/bm_loop_times.rb: modified.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-10 19:19:36 +00:00
nobu
4b51662800 * parse.y (comment_at_top): needed for ripper too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-10 13:16:58 +00:00
nobu
a77d088cf6 * parse.y (magic_comment_encoding): warns when ignored.
* parse.y (parser_magic_comment): replaces '-' with '_'.

* parse.y (parser_yylex): allows magic comments indented and the
  second line or later.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-10 10:21:53 +00:00
yugui
c86ce094e2 * include/ruby/ruby.h: embeds the elements of an array into its
struct RArray for # of elements <= 3.

	* array.c: ditto.

	* gc.c (gc_mark_children): following the change of struct RArray.

	* ext/tk/tcltklib.c (ip_ruby_cmp): ditto.

	* parse.y (coverage): ditto.

	* proc.c (curry): ditto.

	* .gdbinit: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-09 05:47:04 +00:00
nobu
9bcbc90605 * parse.y (stmt): returns non zero. [ruby-dev:36633]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-30 07:54:02 +00:00
nobu
9480a18411 * parse.y (token_info_push, token_info_pop): do nothing for evaled
source.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-29 16:02:58 +00:00
nobu
77a9d7c32f * parse.y (primary, brace_block): fix for line number.
* proc.c (rb_proc_location, rb_method_location): new methods
  {Proc,Method,UnboundMethod}#source_location.  [ruby-core:18452]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-26 13:47:01 +00:00
ko1
2e311f6bd5 * include/ruby/node.h, node.h: move node.h from include path.
This change stop to install node.h beacuase of saving ABI
  (node.h will be changed. Extensions should not depends on
  this file).
* blockinlining.c, class.c, compile.c, debug.h, enum.c,
  gc.c, iseq.c, parse.y, ruby.c, signal.c, variable.c,
  vm.c, vm_core.h, vm_dump.c: ditto.
* ext/ripper/depend: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 19:52:31 +00:00
ko1
8cd252ac6f * common.mk: clean up
- remove blockinlining.$(OBJEXT) to built
  - make ENCODING_H_INCLDUES variable (include/ruby/encoding.h)
  - make VM_CORE_H_INCLUDES variable (vm_core.h)
  - simplify rules.
  - make depends rule to output depend status using gcc -MM.
* include/ruby/mvm.h, include/ruby/vm.h: rename mvm.h to vm.h.
* include/ruby.h: ditto.
* load.c: add inclusion explicitly.
* enumerator.c, object.c, parse.y, thread.c, vm_dump.c:
  remove useless inclusion.
* eval_intern.h: cleanup inclusion.
* vm_core.h: rb_thread_t should be defined in this file.
* vm_evalbody.c, vm_exec.c: rename vm_evalbody.c to vm_exec.c.
* vm.h, vm_exec.h: rename vm.h to vm_exec.h.
* insnhelper.h, vm_insnhelper.h: rename insnhelper.h to vm_insnhelper.h.
* vm.c, vm_insnhelper.c, vm_insnhelper.h:
  - rename vm_eval() to vm_exec_core().
  - rename vm_eval_body() to vm_exec().
  - cleanup include order.
* vm_method.c: fix comment.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 00:20:28 +00:00
naruse
cfadd72532 * parse.y: strings which contain only US-ASCII don't force to have
US-ASCII encoding. [ruby-dev:36400]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-19 23:09:33 +00:00
akr
a953d28e3c * include/ruby/oniguruma.h (onigenc_get_prev_char_head): add end
argument.

* include/ruby/encoding.h (rb_enc_prev_char): ditto.

* regenc.c (onigenc_get_prev_char_head): add end argument.

* regparse.c: follow the interface change.

* regexec.c: ditto.

* string.c: ditto.

* parse.y: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-13 18:22:04 +00:00
matz
929e0b91be * parse.y (f_block_optarg): allow default for block parameters as
long as the value is primary.  a patch from Eric Mahurin
  <eric.mahurin at gmail.com> in [ruby-core:16880].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-06 18:39:36 +00:00
matz
05edaf5090 * parse.y (yylex): "1.upto 2 {|i| p i }" should be syntax error.
[ruby-dev:36008]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-06 16:09:43 +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
akr
2eb763857d * parse.y (parser_encoding_name): defined.
(parser_tokadd_mbchar): show encoding in the message of
  "invalid multibyte char" error.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-03 11:02:11 +00:00
nobu
0075a767e5 * parse.y (struct token_info): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-30 09:17:47 +00:00
nobu
a442691c9d * parse.y (token_info_get_column, token_info_has_nonspaces),
(token_info_push, token_info_pop): constified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-30 09:16:38 +00:00
matz
855b594157 * parse.y (token_info_push): -w warns indentation level mismatch.
based on a patch from Yukina Yamano presented at RubyKaigi'07.
  See <http://jp.rubyist.net/RubyKaigi2007/Log0609-LT06.html> and
  <http://www.logic-junction.com/products/rubyend.html> (Japanese).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-30 07:29:41 +00:00
ko1
35617676cb * parse.y: remove include pragma for "ruby/intern.h".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-30 01:43:34 +00:00
yugui
d9a1cc2f4e * parse.y (YYSTYPE): struct RVarmap has been no longer
defnied.
  see also r11717 by matz.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-25 05:27:46 +00:00
nobu
dc02325fd8 * include/ruby/encoding.h (rb_enc_ispunct): added.
* common.mk (COMMONOBJS), inits.c (rb_call_inits): id.c is now
  included from parse.c.

* id.c (Init_id), id.h (ruby_method_ids): added IDs used by VM.

* parse.y (global_symbols): added rooms for VM IDs.

* parse.y (rb_intern3, rb_id2str): single puctuation symbol is now
  same as char code.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-14 08:57:07 +00:00
nobu
c710140216 * parse.y (union tmpyystype): no longer needed, since YYSTYPE is
defined in parse.h now.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-14 08:46:23 +00:00
nobu
de0a9f726e * configure.in,parse.y: removed garbage spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-10 03:15:37 +00:00
nobu
8d0fdce468 * parse.y (deferred_nodes, compstmt, arg, fixup_nodes, range_op): fix
up fixnum range literal in conditional as automagical line number
  comparison.  [ruby-core:12124], [ruby-dev:35731]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-04 07:48:52 +00:00
nobu
b951952b40 * parse.y (yylex): 8 and 9 in octal integer should cause compile
error.  [ruby-dev:35729]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-02 06:51:53 +00:00
yugui
20486a7f64 * parse.y (parser_yylex): removed an useless conditional, and magic
comment are ignored unless at the first of line.

* test/ruby/test_m17n.rb (test_magic_comment_vim): added.

* test/ruby/test_m17n.rb (test_magic_comment_at_variaous_positions):
  added.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-01 09:38:50 +00:00
mame
cf08661141 * parse.y (magic_comment_encoding): remove meaningless null check.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-30 16:18:40 +00:00
mame
728b092442 * parse.y (vtable_free): remove meaningless null check.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-30 13:19:34 +00:00
mame
91c07a5ac6 * thread.c (rb_set_coverages, rb_reset_coverages): enable and disable
coverage measurement.

* thread.c (rb_get_coverages): rename and move from vm.c.

* vm.c (rb_vm_get_coverages): ditto.

* iseq.c (prepare_iseq_build): ditto.

* thread.c (clear_coverage): ditto.

* parse.y (coverage): ditto.

* ext/coverage/coverage.c: use above functions, add new method
  Coverage.start and fix rdoc .


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-08 15:13:22 +00:00
mame
caf3933bab * thread.c (rb_enable_coverages): hide coverage array by setting 0 to
klass during measurement.

* parse.y (coverage, yycompile0): ditto.

* iseq.c (prepare_iseq_build): use rb_hash_lookup instead of
  rb_hash_aref.

* thread.c (rb_coverage_result): restore klass of coverage array and
  return it.

* theaad.c (update_coverage): chcek whether its klass is 0.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-08 13:57:06 +00:00
mame
ae3a03eb07 * include/ruby/intern.h: remove prototypes about coverage.
* iseq.c (prepare_iseq_build): add prototype.

* parse.y (coverage): ditto.

* thread.c (clear_coverage): ditto.

* thread.c (update_coverage): use rb_sourceline.

* thread.c (rb_get_coverages): rename and move to vm.c.

* vm.c (rb_vm_get_coverages): ditto.

* ext/coverage/coverage.c: add rdoc.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-03 14:27:43 +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
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
shyouhei
3e69e83a62 * include/ruby/ruby.h (enum ruby_special_consts): ISO C forbids
comma at end of enumerator list

 	* include/ruby/ruby.h (enum ruby_value_type): ditto.

	* eval_intern.h (enum): ditto.

	* vm_core.h (enum rb_thread_status): ditto.

	* parse.y (enum lex_state_e): ditto.

	* parse.y (enum string_type): ditto.

	* process.c (enum): ditto.

	* ruby.c (enum dump_flag_bits): ditto.

	* ruby.c (enum disable_flag_bits): ditto.

	* compile.c (iseq_link_element): ditto

	* debug.c (union): ditto.

	* cont.c (enum context_type): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 08:27:58 +00:00