[macruby-changes] [2764] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Thu Oct 8 01:54:25 PDT 2009
Revision: 2764
http://trac.macosforge.org/projects/ruby/changeset/2764
Author: lsansonetti at apple.com
Date: 2009-10-08 01:54:21 -0700 (Thu, 08 Oct 2009)
Log Message:
-----------
revert r2762 which seems to introduce AOT compilation regressions
Revision Links:
--------------
http://trac.macosforge.org/projects/ruby/changeset/2762
Modified Paths:
--------------
MacRuby/trunk/compiler.cpp
MacRuby/trunk/compiler.h
Modified: MacRuby/trunk/compiler.cpp
===================================================================
--- MacRuby/trunk/compiler.cpp 2009-10-08 08:38:52 UTC (rev 2763)
+++ MacRuby/trunk/compiler.cpp 2009-10-08 08:54:21 UTC (rev 2764)
@@ -58,7 +58,6 @@
return_from_block_ids = 0;
ensure_pn = NULL;
current_scope = NULL;
- class_declaration = false;
dispatcherFunc = NULL;
fastPlusFunc = NULL;
@@ -2986,8 +2985,7 @@
{
rb_vm_arity_t arity = rb_vm_node_arity(node);
const int nargs = bb == NULL ? 0 : arity.real;
- const bool has_dvars = current_block && current_mid == 0 && !class_declaration;
- class_declaration = false;
+ const bool has_dvars = current_block && current_mid == 0;
// Get dynamic vars.
if (has_dvars && node->nd_tbl != NULL) {
@@ -3876,6 +3874,11 @@
NODE *body = node->nd_body;
if (body != NULL) {
assert(nd_type(body) == NODE_SCOPE);
+ ID *tbl = body->nd_tbl;
+ if (tbl != NULL) {
+ const int args_count = (int)tbl[0];
+ compile_lvars(&tbl[args_count + 1]);
+ }
if (body->nd_body != NULL) {
Value *old_self = current_self;
current_self = classVal;
@@ -3886,12 +3889,7 @@
GlobalValue::InternalLinkage, nilVal, "");
bool old_current_module = current_module;
- bool old_current_block_chain = current_block_chain;
- bool old_dynamic_class = dynamic_class;
- current_block_chain = false;
- dynamic_class = false;
-
std::map<ID, Value *> old_ivar_slots_cache
= ivar_slots_cache;
ivar_slots_cache.clear();
@@ -3901,18 +3899,11 @@
current_module = nd_type(node) == NODE_MODULE;
compile_set_current_scope(classVal, publicScope);
+ bool old_dynamic_class = dynamic_class;
+ dynamic_class = false;
- DEBUG_LEVEL_INC();
- class_declaration = true;
- Value *val = compile_node(body);
- Function *f = cast<Function>(val);
- DEBUG_LEVEL_DEC();
+ Value *val = compile_node(body->nd_body);
- std::vector<Value *> params;
- params.push_back(classVal);
- params.push_back(compile_const_pointer(NULL));
- val = compile_protected_call(f, params);
-
dynamic_class = old_dynamic_class;
compile_set_current_scope(classVal, defaultScope);
@@ -3922,7 +3913,6 @@
current_self = old_self;
current_opened_class = old_class;
current_module = old_current_module;
- current_block_chain = old_current_block_chain;
ivar_slots_cache = old_ivar_slots_cache;
Modified: MacRuby/trunk/compiler.h
===================================================================
--- MacRuby/trunk/compiler.h 2009-10-08 08:38:52 UTC (rev 2763)
+++ MacRuby/trunk/compiler.h 2009-10-08 08:54:21 UTC (rev 2764)
@@ -132,7 +132,6 @@
int return_from_block_ids;
PHINode *ensure_pn;
RoxorScope *current_scope;
- bool class_declaration;
Function *dispatcherFunc;
Function *fastPlusFunc;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091008/d585a085/attachment.html>
More information about the macruby-changes
mailing list