Commit Graph

59 Commits

Author SHA1 Message Date
turnidge@google.com 9cbae35238 Don't allow OS::SNPrint or OS::VSNPrint to return negative values.
If we encounter conditions that would have caused vsnprintf to return
a negative value, then something pretty wild is going on.  We choose
to terminate the vm when this occurs.

This fixes security bug 1745.
Review URL: https://chromiumcodereview.appspot.com//10696165

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9558 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-11 17:54:24 +00:00
turnidge@google.com 22fb45f640 Implement method and variable reflection in dart:mirrors.
Review URL: https://chromiumcodereview.appspot.com//10687004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9493 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-09 23:57:08 +00:00
cshapiro@google.com 00b6963338 Fix some warnings in the core library identified by the static analyzer.
This foray uncovered a latent bug in the byte array view constructor and
its use of default arguments.  That bug has been corrected and new tests
have been added to the test suite.

BUG=2136

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9013 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 04:27:57 +00:00
turnidge@google.com 312702a5ac Second local mirrors CL.
Implement a few chunks of new mirror functionality.  Many changes, notably:

- Added currentIsolateMirror() to provide non-async access to the
  local isolate mirror.

- Added mirrorOf(o) to provide access to local instance mirrors.

- Fleshed out InstanceMirror, InterfaceMirror, and LibraryMirror to
  various degrees.

- Added the MirroredError hierarchy, which lets the user handle Dart
  errors of various sorts from invocation, etc.

- Introduce lazy resolvers for interface mirrors and library mirrors.
  These allow us to build the self-referential library/interface
  hierarchy without going mad.

- Added better toStrings all around.

- Extended the isolate_mirror_local_test to cover new functionality.

Other changes that were required or seemed prudent:

- Exposed the error hierarchy to the embedder.  They need to be able
  to distinguish different error types in some situations.  Improved
  the documetation around error handles and error propagation.

- Added new functions to the dart embedding api as required.  Added
  tests for all new dart api functions.
Review URL: https://chromiumcodereview.appspot.com//10538043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8575 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 21:07:49 +00:00
vsm@google.com 129369184a Skip failing test on DRT
TBR=turnidge

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8139 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 05:08:40 +00:00
turnidge@google.com ec36e02c28 Remove the partially completed code for remote IsolateMirrors and
replace it with the beginnings of a local (same isolate) IsolateMirror
implementation.

Removed old mirror tests and added two new mirror tests.

Even though mirrors.cc is part of the vm, I chose to implement most of
it using the dart embedding interface instead of our internal
interfaces because the embedding interface was more convenient.
mirrors.cc is basically all new in this CL -- don't pay any attention
to diffs for that file.

Added dart embedding functions required for the functionality in this
CL: Dart_DebugName, Dart_GetNativeInstanceFieldCount,
Dart_RootLibrary, Dart_RegisteredLibraryUrls, and Dart_LibraryName.

Extended or modified some existing dart api functions, primarily to
make them propagate error handles properly.

Added tests for new dart embedding api functionality.

Added the ability to determine if a port is local to the current isolate.

Extended NotImplementedException to accept an optional string
argument.  I wanted to give more descriptive error messages.
Review URL: https://chromiumcodereview.appspot.com//10416050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8117 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 17:07:19 +00:00
turnidge@google.com d28858f799 Skip some tests that are causing trouble on dartium. I am deleting
these tests (and the code they test) entirely in a different CL, so I
don't see the point in fixing them.
Review URL: https://chromiumcodereview.appspot.com//10383310

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7919 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 19:12:44 +00:00
cshapiro@google.com 4ad6942ef1 Fix breakage in the JavaScript compilers.
This change adds a mock "Uint8List" to dart2js, suppresses the new byte
array test on Frog, and renames interface parameters for dartc.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7355 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-05 00:07:25 +00:00
cshapiro@google.com 1472427af8 Revert "Revert "Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays.""
This reverts commit 63480a81fccbde001494dd535cd06a8fa02ed261.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7352 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 23:16:09 +00:00
cshapiro@google.com 3a14326da4 Revert "Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays."
This reverts commit 747dbeaa8f9c0dc1f49d6d6a369c6a3fe2d8b7c9.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7313 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 05:28:10 +00:00
cshapiro@google.com 537010ea16 Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays.
Internal and external representations of each array are provided.  A
single interface type implementing the ByteArray and List interfaces
is shared among the internal and external implementation type.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7311 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 05:12:19 +00:00
asiva@google.com ae552ba870 Fix build break.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7266 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 01:45:31 +00:00
asiva@google.com 601d6ba9e4 Canonicalize the reference_dir also when canonicalizing a path
Review URL: https://chromiumcodereview.appspot.com//10344010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7265 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 01:01:47 +00:00
sigmund@google.com e14efee078 fix vm test configuration to specify vm/cc
Review URL: https://chromiumcodereview.appspot.com//10335002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7254 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 20:35:01 +00:00
sigmund@google.com 6e745950f8 fixes .status of compilers against vm tests.
Review URL: https://chromiumcodereview.appspot.com//10326002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7246 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 16:56:59 +00:00
sigmund@google.com 5b8ad6bfab test rename overhaul: step 14 - vm tests
Review URL: https://chromiumcodereview.appspot.com//10271014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7245 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 16:46:16 +00:00
regis@google.com 7793191032 Check upper bounds of type arguments when allocating objects of a generic type
at run time when they cannot be checked at compile time.
Review URL: https://chromiumcodereview.appspot.com//10280007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7211 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 01:57:22 +00:00
asiva@google.com 13a9d3a9ee Skip dart2js compile all benchmark on windows.
Review URL: https://chromiumcodereview.appspot.com//10288007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7209 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 22:55:37 +00:00
turnidge@google.com 65e8f477f0 Disable failing test on windows.
Review URL: https://chromiumcodereview.appspot.com//10204004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6865 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-23 22:41:45 +00:00
turnidge@google.com 353b66038e Rework mirrors implementation.
(Note that the current mirrors implementation is just a heartbeat
implementation of a single method)

Use native code instead of dart code to do the work.

Use JSON instead of Lists/Maps for commands/responses.

Reenable disabled tests.
Review URL: https://chromiumcodereview.appspot.com//10175011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6864 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-23 22:26:09 +00:00
regis@google.com 3077bcfea8 Make test non vm-specific (cl 9969122 follow up).
Small edits in both vm-specific and non-vm specific versions of the same test.
Review URL: https://chromiumcodereview.appspot.com//9956116

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6149 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-03 21:48:10 +00:00
regis@google.com 6e82698624 Copy vm-specific test to vm-specific location.
A follow-up cl will make the original test non vm-specific.
Review URL: https://chromiumcodereview.appspot.com//9969122

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6143 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-03 19:47:40 +00:00
iposva@google.com 831aa612c7 - Disable isolate mirror tests as they can run into races.
Review URL: https://chromiumcodereview.appspot.com//9689077

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5431 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 19:29:32 +00:00
srdjan@google.com bff9b8a33b Disable another IsolateMirror tests.
Review URL: https://chromiumcodereview.appspot.com//9691052

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5412 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 15:58:19 +00:00
turnidge@google.com 4b56c3d773 Disable flaky test. Bug filed.
Review URL: https://chromiumcodereview.appspot.com//9692029

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5376 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 00:54:16 +00:00
turnidge@google.com ff26341fd6 Heartbeat implementation of dart:mirrors.
Add the skeleton for the dart:mirrors library in all the appropriate
places.  The only thing we can do right now is ask an Isolate for its
debugName.  Add a few tests.
Review URL: https://chromiumcodereview.appspot.com//9420038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5370 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-12 23:51:03 +00:00
kmillikin@google.com 1c06eed2b6 Implement branching control flow in the non-optimizing graph compiler.
Bind a label on block entry, implement branching.

R=srdjan@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5159 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-08 10:00:26 +00:00
turnidge@google.com 7647d8ff7f Add the vm internal dart tests into the test suite.
Review URL: https://chromiumcodereview.appspot.com//9414032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5113 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 19:43:59 +00:00
mattsh@google.com d8af601ce4 removed unused 'prefix' line from status files
Review URL: https://chromiumcodereview.appspot.com//9621003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5101 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 16:10:57 +00:00
hausner@google.com 4be3dd1f7e Fix debugger stepping on Linux
Missing instance field initialization. Bah!

TBR=regis
Review URL: https://chromiumcodereview.appspot.com//9513005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4721 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-28 19:35:45 +00:00
hausner@google.com 1fae7e102b Disable breakpoint tests until I figure out why they fail on Linux
Review URL: https://chromiumcodereview.appspot.com//9479024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4649 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-27 23:34:53 +00:00
asiva@google.com 26d2689283 Change the generated dart test in CodeIndexTableTest so that it does not induce a deep recursion in the dart code generator.
Review URL: https://chromiumcodereview.appspot.com//9454024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4555 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 23:01:45 +00:00
srdjan@google.com e3c98a5e19 Enable new compiler in x64 mode (bail-out all the time, but we can use automated testing).
Disable CodeIndexTable test inde debug x64. This CL includes a pending CL from Kevin (will wait for it to be submitted).
Review URL: https://chromiumcodereview.appspot.com//9443021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4549 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 19:24:14 +00:00
ager@google.com e92d0eab5a Reimplement Windows Monitors.
Now using an event object per thread which is linked into a list
of waiters for the monitor.

Notify takes the first element of the list and notifies (FIFO order).

Notify all extracts the entire list and notifies each of them. This
avoids the issues with fairness and correctness of the previous version.

The MonitorWaitData object holding the event and a pointer to the
next waiter is stored in thread local storage and lazily initialized.

R=sgjesse@google.com,asiva@google.com
BUG=1614
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4537 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 15:24:18 +00:00
sgjesse@google.com 85e0084bd9 Disable all thread pool tests on Windows
The thread pool is actually implemented on Windows, but the current
monitor implementation has some know issues.

R=ricow@google.com

BUG=dart:1673

TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4208 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-14 08:53:34 +00:00
asiva@google.com d50bbba277 Implement support for specifying string interopolation style variable substitution in the import and source statements.
e.g:
sivamach[runtime]>more /workspace/asiva/expr/test1.dart
#library('test1.dart');
#import('${GOOGLE}$SRC/test2.dart');
#import('$DART/test3.dart');
test1() {
  print("test1");
}
main() {
  test1();
  test2();
  test3();
}
sivamach[runtime]>more /workspace/asiva/expr/src/test2.dart
#library('test2.dart');
#source('$GOOGLE$SRC/test2a.dart');
test2() {
  print("test2");
  test2a();
}
sivamach[runtime]>more /workspace/asiva/expr/src/test2a.dart
test2a() {
  print("test2a");
}
sivamach[runtime]>more /workspace/asiva/expr/src/test3.dart
#library('test3.dart');
#source('test3a.dart');
test3() {
  print("test3");
  test3a();
}
sivamach[runtime]>more /workspace/asiva/expr/src/test3a.dart
test3a() {
  print("test3a");
}

sivamach[runtime]>out/Debug_ia32/dart --import_map=GOOGLE,/workspace/asiva/expr --import_map=SRC,src --import_map=DART,/workspace/asiva/expr/src /workspace/asiva/expr/test1.dart
test1
test2
test2a
test3
test3a
Review URL: https://chromiumcodereview.appspot.com//9359009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4199 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-13 22:50:19 +00:00
whesse@google.com 9f27aa3a69 Remove unused support files for old version of tools/test.py.
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4033 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-08 14:11:42 +00:00
sgjesse@google.com a6071e0880 Thread pool changes
Make one global thread pool instead of a thread pool for each
eventhandler (i.e. isolate).

Also:

* Added handler function for thread pool tasks.
* Added thread pool shutdown.
* Added a simple test.

R=ager@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3079 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-09 07:38:30 +00:00
hausner@google.com 503e2219b8 First part of inspecting local variables
This change introduces variable descriptors that describe the name, stack slot index, and source code stretch in which a variable is valid.

Activation frames in the stack trace now can enumerate the variables that are active in that frame.

Next step: fetch the value of variables from the stack.
Review URL: http://codereview.chromium.org//8992020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2671 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-20 21:40:28 +00:00
asiva@google.com bde808f44b Changes to create an application snapshot which can be layered on top
after an isolate is created and initialized.

Added an option --use_script_snapshot which creates a snapshot of the specified script in an isolate, shuts that down and restarts on a new isolate and loads the script from the snapshot buffer and executes it.
Review URL: http://codereview.chromium.org//8970004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2609 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-20 02:04:24 +00:00
turnidge@google.com 0b833d4977 Add support for interrupting an isolate in the vm. Interrupts are
implemented by extending the existing support for stack overflow
checking in the vm.  When an interrupt is scheduled for an isolate, we
overwrite the isolate's stack limit with a value guaranteed to cause a
stack overflow.

We support multiple kinds of interrupts, encoded in the low bits of
the stack limit.

Add Dart_InterruptIsolate and Dart_InterruptIsolateCallback to the
dart embedding api to allow the embedder to request and handle
interrupts.

Add EXPECT_SUBSTRING(needle, haystack) testing macro.
Review URL: http://codereview.chromium.org//8851008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2529 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-16 18:41:20 +00:00
iposva@google.com 5e1e9534db - Implement the old sweeper.
Review URL: http://codereview.chromium.org//8898034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2485 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-15 22:37:35 +00:00
turnidge@google.com 3b9026f21d If an unhandled exception occurs in Dart_RunLoop, pass it out to the caller.
Review URL: http://codereview.chromium.org//8918028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2438 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-14 18:27:58 +00:00
asiva@google.com 566ff2b3cf Add a tags field to RawObject so that we can tag objects with certain values,
e.g:
- object is canonical
- object was created from snapshot
etc.

Once we have class Ids implemented the current class_ and flags_ words can be
compressed into a single header word.
Review URL: http://codereview.chromium.org//8827016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2211 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-08 00:43:06 +00:00
asiva@google.com 660b5719bf Add test to expose bug in initialization of objects with native fields in the inline allocation stub. The tests are skipped as another CL fixes the bug.
Review URL: http://codereview.chromium.org//8875001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2209 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-08 00:23:21 +00:00
asiva@google.com 7ddd0f0b89 First step towards generation of application script snapshots
- Introduce 3 kinds of snapshots (full, application script and messages)
- Added a dart API function to be used for generating an application snapshot
  and for loading the script from an application snapshot.

Next step is to introduce special handling in the WriteTo and ReadFrom
snapshot functions for 'kind == Snapshot::kScript'
Review URL: http://codereview.chromium.org//8772061

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2105 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-06 00:34:49 +00:00
iposva@google.com 3117f4cbfc - Implement a simple old-generation marker.
Review URL: http://codereview.chromium.org//8761006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1962 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 02:11:40 +00:00
turnidge@google.com 932628e0fd Add Dart API scoping around the call to Dart_HandleMessage. This
allows us to print the error message in the case that there is an uncaught
exception while handling an inter-isolate message.


Add a couple of unit tests that exercise
Dart_RunLoop/Dart_HandleMessage a bit.
Review URL: http://codereview.chromium.org//8659012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1904 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-29 21:41:00 +00:00
ager@google.com 8580aca8f1 Actually add the VM test configuration file.
R=whesse@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1704 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-21 15:45:42 +00:00
ngeoffray@google.com 33ec29bf11 Add a new variable environment for testing, to replace the misusage of 'arch'.
Review URL: http://codereview.chromium.org//8408002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@993 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-01 09:12:55 +00:00