Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(456)

Issue 379353003: Implement Evaluate without creating new classes. (Closed)

Created:
6 years, 5 months ago by rmacnak
Modified:
6 years, 5 months ago
Reviewers:
siva, hausner
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Implement Evaluate without creating temp classes by storing an eval function's script in the function's data field. This means Evaluate doesn't burn through CIDs, mitigating the problem where class table entries are treated as strong references. More generally the whole tangle of objects created during eval is collectable, and running eval in a loop doesn't lead to heap growth. http://dartbug.com/18284 R=hausner@google.com Committed: https://code.google.com/p/dart/source/detail?r=38140

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Total comments: 5

Patch Set 5 : #

Patch Set 6 : #

Total comments: 11

Patch Set 7 : #

Patch Set 8 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+161 lines, -59 lines) Patch
M runtime/vm/compiler_test.cc View 1 2 3 4 1 chunk +33 lines, -0 lines 0 comments Download
M runtime/vm/debugger_api_impl_test.cc View 1 2 3 4 5 6 1 chunk +39 lines, -0 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 5 6 7 2 chunks +6 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 5 6 7 7 chunks +83 lines, -59 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
rmacnak
6 years, 5 months ago (2014-07-10 18:37:47 UTC) #1
hausner
Nice idea to eliminate all the clutter that the old solution allocated as side effects. ...
6 years, 5 months ago (2014-07-10 20:12:34 UTC) #2
hausner
One more comment. https://codereview.chromium.org/379353003/diff/60001/tests/lib/mirrors/eval_cid_exhaustion_test.dart File tests/lib/mirrors/eval_cid_exhaustion_test.dart (right): https://codereview.chromium.org/379353003/diff/60001/tests/lib/mirrors/eval_cid_exhaustion_test.dart#newcode8 tests/lib/mirrors/eval_cid_exhaustion_test.dart:8: const classTableSize = 1 << 16; ...
6 years, 5 months ago (2014-07-10 20:17:43 UTC) #3
rmacnak
Removed kEvalFunction kind and instead testing whether the data field is a Script. Replaced the ...
6 years, 5 months ago (2014-07-10 22:26:21 UTC) #4
hausner
LGTM w/comments. https://codereview.chromium.org/379353003/diff/100001/runtime/vm/debugger_api_impl_test.cc File runtime/vm/debugger_api_impl_test.cc (right): https://codereview.chromium.org/379353003/diff/100001/runtime/vm/debugger_api_impl_test.cc#newcode2008 runtime/vm/debugger_api_impl_test.cc:2008: // This library deliberately declares no top-level ...
6 years, 5 months ago (2014-07-10 22:57:27 UTC) #5
rmacnak
https://codereview.chromium.org/379353003/diff/100001/runtime/vm/debugger_api_impl_test.cc File runtime/vm/debugger_api_impl_test.cc (right): https://codereview.chromium.org/379353003/diff/100001/runtime/vm/debugger_api_impl_test.cc#newcode2008 runtime/vm/debugger_api_impl_test.cc:2008: // This library deliberately declares no top-level variables or ...
6 years, 5 months ago (2014-07-10 23:17:38 UTC) #6
rmacnak
6 years, 5 months ago (2014-07-10 23:23:05 UTC) #7
Message was sent while issue was closed.
Committed patchset #8 manually as r38140 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698