Граф коммитов

8 Коммитов

Автор SHA1 Сообщение Дата
charliesome 07ac58747f * compile.c (iseq_compile_each): emit opt_str_freeze if the #freeze
method is called on a static string literal with no arguments.

* defs/id.def (firstline): add freeze so idFreeze is available

* insns.def (opt_str_freeze): add opt_str_freeze instruction which
  pushes a frozen string literal without allocating a new object if
  String#freeze is not overriden

* string.c (Init_String): define String#freeze

* vm.c (vm_init_redefined_flag): define BOP_FREEZE on String class as
  a basic operation

* vm_insnhelper.h: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-09 21:17:06 +00:00
nobu 97982e823f id.def: predefined IDs
* defs/id.def: add more predefined IDs used in core.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-02 07:54:17 +00:00
nobu 9644f9b572 proc.c: use predefined IDs
* defs/id.def (predefined): add "idProc".
* proc.c (mnew, mproc, mlambda): use predefined IDs.
* vm.c (Init_VM): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-01 02:38:44 +00:00
naruse 8654730aa8 * def/id.def: use split(/^/) instead of String#lines to support
Ruby 1.8.5 as BASERUBY.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-27 22:08:41 +00:00
nobu 94a4bc0ef4 id.h.tmpl: ID2ATTRSET
* template/id.h.tmpl (ID2ATTRSET): compile time constant macro for
  ID_ATTRSET.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-21 07:38:11 +00:00
nobu 2edcf87c1c id.def: check duplication
* defs/id.def (KeywordError): check duplication.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-21 07:38:07 +00:00
nobu 298694a2fd id.def: other scope ID
* defs/id.def: support for other scope IDs,
  ID_{INSTANCE,GLOBAL,CONST,CLASS}.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-21 07:38:03 +00:00
nobu 28ee4c2966 id.c: generate
* common.mk, defs/id.def, template/id.c.tmpl: generate id.c as well as id.h.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-04 17:36:19 +00:00