Commit Graph

13143 Commits

Author SHA1 Message Date
regis@google.com 76a765b72f Simplify parsing of 'new' operator.
Fix checking of default factory type parameters (add new tests).
Start cleanup of class resolution code in parser and finalizer.
Review URL: https://chromiumcodereview.appspot.com//9290065

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3632 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-26 23:50:29 +00:00
cshapiro@google.com 9869598950 Fix a build break caused by an new execution test that cannot run on ARM.
Review URL: https://chromiumcodereview.appspot.com//9169073

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3614 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-26 03:36:04 +00:00
cshapiro@google.com 569ef3c044 Add ByteArray interface and provide internal and external implementations.
The new ByteArray interface supersedes the ByteBuffer type which allowed
only external data storage.  This type has been removed and replaced by
the more flexible ByteArray with a default implementation that stores its
elements on the managed heap.

Review URL: https://chromiumcodereview.appspot.com//9195031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3613 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-26 02:42:08 +00:00
ngeoffray@google.com b12ed463bd Change error message (and not the internal method names) to report 'final field' instead of 'const field'.
Review URL: https://chromiumcodereview.appspot.com//9117025

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3592 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-25 08:09:47 +00:00
regis@google.com 54bf52428d Allow the list of type parameters in the default factory clause to be omitted.
Review URL: https://chromiumcodereview.appspot.com//9169032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3587 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-25 01:30:14 +00:00
regis@google.com f9e785eb29 Remove support for obsolete syntax of factory methods and default classes.
Review URL: https://chromiumcodereview.appspot.com//9285031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3578 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 22:37:45 +00:00
turnidge@google.com 0c9f177bf0 Don't access a message after it has been enqueued. It may be deleted
at that point.
Review URL: https://chromiumcodereview.appspot.com//9288001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3576 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 22:02:53 +00:00
hausner@google.com 0071e91d16 Any time now...
Review URL: https://chromiumcodereview.appspot.com//9283043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3575 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 21:51:04 +00:00
hausner@google.com a64a696ca9 If at first you don't succeed...
Review URL: https://chromiumcodereview.appspot.com//9117051

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3574 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 21:46:40 +00:00
hausner@google.com dd0f8f0d21 Appease picky linux gcc.
Review URL: https://chromiumcodereview.appspot.com//9285030

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3573 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 21:38:56 +00:00
hausner@google.com f4dee306e5 Fix local variable info in debugger stack trace.
Review URL: https://chromiumcodereview.appspot.com//9117042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3572 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 21:33:40 +00:00
hausner@google.com 02d59f08ba Add functions to list library and script urls in an isolate.
Review URL: https://chromiumcodereview.appspot.com//9117015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3571 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 21:33:04 +00:00
iposva@google.com 9e8666ce55 - Avoid running into an unimplemented and add more debugging help.
Review URL: https://chromiumcodereview.appspot.com//9212059

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3565 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 20:24:12 +00:00
turnidge@google.com 8920623dc5 OOB messages and general message refactor.
(1)
No longer give embedders direct access to inter-isolate messages.
Instead, keep these messages in an internal queue and rely on the
embedder only to provide notifications.  This simplifies the api in
numerous ways:

 - post message callback drops parameters and becomes message notify callback.
 - close port callback goes away
 - Dart_Message type goes away
 - Dart_HandleMessage gets a simpler signature

Updated the custom_isolate_test to show what use of the new apis looks like.

(2)
Begin to add support for out-of-band (OOB) messages.  These messages
supercede regular messages in the queue.  We will attempt to deliver
these messages even while code is running, by using the isolate
interrupt mechanism.  These messages are not user-visible.  They will
be used by the runtime internally to implement things like reflection.

Renamed PortMessage to Message.

Refactored message sending apis in PortMap and Isolate.

Modified MessageQueue to be aware of multiple priorities.

Modify Dart_HandleMessage to process multiple OOB messages
Review URL: https://chromiumcodereview.appspot.com//9182001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3562 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 19:31:01 +00:00
ager@google.com 4efd1f98fa Split dart:builtin into dart:builtin and dart:io.
- dart:builtin is implicitly imported.
- dart:io has to be explicitly imported.

I will update the macos and windows stable test binaries when we
are happy with the solution.

R=iposva@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//9254026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3537 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 07:36:59 +00:00
regis@google.com ed9d7a399f Optimize parsing of qualified identifiers.
Review URL: https://chromiumcodereview.appspot.com//9271023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3509 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-23 19:56:35 +00:00
hausner@google.com 595cb76374 Implement deletion of breakpoints
- deletion of breakpoints
- better cleanup of debugger resources
Review URL: https://chromiumcodereview.appspot.com//9271008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3470 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-20 22:10:59 +00:00
asiva@google.com bf1b2bbeb9 Improve compile times for swarm application startup
- Avoid creation of getter/setter symbol when all we need to do is a lookup
- Add LookupGetterFunction/LookupSetterFunction to avoid having to create the getter name/setter name before doing a lookup
Review URL: https://chromiumcodereview.appspot.com//9265021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3453 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-20 00:55:39 +00:00
hausner@google.com ffa4950202 Fix compiler stats timer code
Account for recursive start/stop of timer. This has probably been broken since the beginning, but was only caught now after Siva added an assert in timer code.
Review URL: https://chromiumcodereview.appspot.com//9150040

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3443 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-19 18:52:08 +00:00
ager@google.com 32c84843af Fix a couple of isolate-related memory leaks that show up a lot in valgrind output.
R=hausner@google.com,iposva@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//9150031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3442 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-19 18:33:32 +00:00
regis@google.com 5b1da9fc27 Skip qualified identifiers that are part of ignored types.
Review URL: https://chromiumcodereview.appspot.com//9150036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3441 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-19 18:31:55 +00:00
asiva@google.com dad0f5c843 Improve compilation times for swarm application startup.
- Avoid multiple calls to LookupFunction and LookupField once for static and once for dynamic.
Review URL: https://chromiumcodereview.appspot.com//9252033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3423 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-19 01:50:32 +00:00
hausner@google.com aaf01d801a Fix named parameter function calls
Issue 1199
Review URL: https://chromiumcodereview.appspot.com//9252027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3422 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-19 00:51:39 +00:00
hausner@google.com 3ebdf081ca Set breakpoint at url, line number
Add debugger functionality to set breakpoint at given url and line number.
Review URL: https://chromiumcodereview.appspot.com//9240014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3420 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 23:15:56 +00:00
regis@google.com 9993072ff2 Simplify integer arithmetic code.
Optimize Mint multiplication in 32-bit mode.
Review URL: https://chromiumcodereview.appspot.com//9112050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3417 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 22:00:40 +00:00
turnidge@google.com e62f34ce77 Give isolates names to be used during debugging.
Implement --trace_isolates.

-------------

Sample output of --trace_isolates for the CrossIsolateMessageTest:

[+] Starting isolate:
    isolate:    CrossIsolateMessageTest.dart/main-7112
[+] Starting isolate:
    isolate:    CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
[+] Starting isolate:
    isolate:    CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/main-7112
    reply_port: 7117
    dest:       CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
    dest_port:  7115
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
    reply_port: 7118
    dest:       CrossIsolateMessageTest.dart/main-7112
    dest_port:  7117
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/main-7112
    reply_port: 7119
    dest:       CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
    dest_port:  7114
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
    reply_port: 7120
    dest:       CrossIsolateMessageTest.dart/main-7112
    dest_port:  7119
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/main-7112
    reply_port: 0
    dest:       CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
    dest_port:  7120
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
    reply_port: 0
    dest:       CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
    dest_port:  7118
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
    reply_port: 0
    dest:       CrossIsolateMessageTest.dart/main-7112
    dest_port:  7116
[>] Posting message:
    source:     CrossIsolateMessageTest.dart/main-7112
    reply_port: 0
    dest:       CrossIsolateMessageTest.dart/main-7112
    dest_port:  7113
[-] Stopping isolate:
    isolate:    CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
[-] Stopping isolate:
    isolate:    CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
[-] Stopping isolate:
    isolate:    CrossIsolateMessageTest.dart/main-7112
Review URL: https://chromiumcodereview.appspot.com//9242035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3416 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 21:46:27 +00:00
asiva@google.com 806f6ddc62 Improve function compilation times for swarm application startup.
- Add a String::Equals(const String& str) method.
- Pass in isolate parameter if present for some handle creation functions.
Review URL: https://chromiumcodereview.appspot.com//9232017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3413 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 20:10:18 +00:00
regis@google.com 366695d347 Ignore parsed types of local variables in unchecked mode and replace them with
the Dynamic type.
Review URL: https://chromiumcodereview.appspot.com//9232016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3404 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 18:08:04 +00:00
hausner@google.com 600c0e4570 Report error on duplicate supertypes
Report error if the same type appears more than once in the implements
or extends list.
Review URL: https://chromiumcodereview.appspot.com//9252001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3403 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 17:58:05 +00:00
asiva@google.com f17a00e9ac Use special allocation functions for object creation while deserializing from a full snapshot in order to avoid the following:
- unnecessary initialization of objects with null
- avoid handle creation
Review URL: https://chromiumcodereview.appspot.com//9139067

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3380 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 00:20:17 +00:00
regis@google.com d573d5437d Enable remaining execution tests on x64.
Review URL: https://chromiumcodereview.appspot.com//9242025

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3376 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-17 22:52:54 +00:00
hausner@google.com a9f221ebc2 Improve error message for some unresolved identifiers
Review URL: https://chromiumcodereview.appspot.com//9246001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3368 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-17 21:16:27 +00:00
turnidge@google.com 53ba5c402e Make the "sticky error" an Error instead of a String.
I do this in preparation for using the sticky error to implement
isolate unwinding.
Review URL: https://chromiumcodereview.appspot.com//9186058

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3367 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-17 19:54:02 +00:00
asiva@google.com 8eb4b8cdf8 - Account for the possibility of timer objects being nested.
- Time library and source loading
Review URL: https://chromiumcodereview.appspot.com//9228007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3365 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-17 18:29:54 +00:00
sgjesse@google.com 68d10e1568 Move Mutex and Monitor from vm/ to platform/
The tests are still in runtime/vm/thread_test.cc.

R=ager@google.com, iposva@google.com

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//9196002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3349 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-17 10:29:24 +00:00
sgjesse@google.com 65896148c9 Move utils.h and utils.cc from runtime/vm to runtime/platform
Moved additional parts of globals.h from vm/ to platform/ to support
types and constants used by utils.*.

R=ager@google.com, iposva@google.com

BUG=
TEST=

Review URL: http://codereview.chromium.org//9209001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3337 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-16 13:23:40 +00:00
sgjesse@google.com bf67f24098 Move assert.h/assert.cc from runtime/vm to runtime/platform
The purpose of this change is twofold:

1. Source in the bin directory can now use the same assertions as
   source in the vm directory. The ASSERT macro used by the code
   in runtime/bin was just defined to use assert from the standard
   C library.
2. Moving other implementation parts from runtime/vm to
   runtime/platform (e.g. classes Monitor and Mutex) for sharing
   between runtime/bin and runtime/vm will be easier as these
   implementations rely on these assertion macros.

Created two gypi files for the platform directory. One for the
headers and one for the source. The source one is only included
when building the VM library and will be present in libdart.a
when the dart executable is linked.

All the code for asserts is still in the dart namespace.

Also re-arranged the order of includes to be alphabetically in
the files touched.

R=ager@google.com, iposva@google.com

BUG=
TEST=

Review URL: http://codereview.chromium.org//9189003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3335 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-16 12:28:10 +00:00
hausner@google.com 6d0e70e334 More parser stuff to handle pseudo keywords as identifiers
More pathological cases.
Review URL: http://codereview.chromium.org//9212018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3318 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-14 00:44:10 +00:00
iposva@google.com d72471512e - More cleanup after the kSAR -> kSHR rename.
Review URL: http://codereview.chromium.org//9212016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3313 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 22:46:32 +00:00
regis@google.com 2d1f63af47 Port a couple more stubs to x64.
Fix integer implementation issues.
Enable all tests on x64.
Review URL: http://codereview.chromium.org//9114054

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3307 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 20:07:54 +00:00
hausner@google.com 197348daa2 Fix frog build
Doesn't handle pseudo kw right.
Review URL: http://codereview.chromium.org//9174011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3305 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 19:41:33 +00:00
hausner@google.com 343dff6255 Proper handling of built-in identifiers
Allow pseudo-keywords (built-in identifiers) as regular identifiers for anything but class names, interface names, typedef names.

Still todo: Update blacklist of class/interface names, disallow pseudo-keywords as type parameter names.
Review URL: http://codereview.chromium.org//9107070

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3303 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 19:24:50 +00:00
iposva@google.com 731616c7d3 - Remove support for ">>>" operator.
Review URL: http://codereview.chromium.org//9203004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3279 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 09:10:48 +00:00
cshapiro@google.com b652a312c1 Rename the VM internal class ByteArray to ByteVector.
Review URL: http://codereview.chromium.org//9139080

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3274 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 01:39:23 +00:00
cshapiro@google.com 917bbbfc39 Provide API support for weak handles and post-mortem finalization.
In addition, this change separates the storage of weak persistent
handles from ordinary persistent handles.  An ordinary persistent
handle now stores no other data than the raw pointer value.

Review URL: http://codereview.chromium.org//9148051

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3273 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 01:23:42 +00:00
asiva@google.com ae72c22830 Create temporary handles in the snapshot object during initialization and use them instead of creating temporary handles in each deserialization function.
Review URL: http://codereview.chromium.org//9166012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3271 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-13 00:38:19 +00:00
turnidge@google.com 5807b0add0 Standardize error printing a bit by moving it to the Error object and
descendants.
Review URL: http://codereview.chromium.org//9148048

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3219 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-12 01:01:46 +00:00
vsm@google.com b06f5be6d8 Build fix for mac/clang
This should get Dartium Mac bots green.

Review URL: http://codereview.chromium.org//9175002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3171 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-11 00:28:26 +00:00
turnidge@google.com 55e33151db Introduce the Error object class in the vm. It represents all of the
things that may go wrong while invoking the dart api.

Here are the four types of error:

- ApiError = the user misused one of the dart apis
- LanguageError = a language-level problem, e.g. compiler error
- UnhandledException = an uncaught exception made its way to the embedder
- UnwindError = a forced isolate interrupt

This cl is the first of a series. I plan to move the point of
creation for LanguageErrors into the Parser, etc. I also plan to move
the longjmp's out of dart_api_impl.cc. I also also plan to implement
UnwindErrors later.

(Copied from Issue 9085031 due to subversion problems)
Review URL: http://codereview.chromium.org//9166016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3168 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-10 21:42:21 +00:00
turnidge@google.com 9ade77d8f5 Comment-only change to track down some svn issues I'm having.
Review URL: http://codereview.chromium.org//9179002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3167 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-10 21:20:03 +00:00