Commit Graph

125 Commits

Author SHA1 Message Date
Zachary Anderson 375322d3ab GN: Add option to build with TSAN
fixes #28216

R=asiva@google.com

Review-Url: https://codereview.chromium.org/2614493002 .
2017-01-03 14:37:27 -08:00
Kasper Lund 53dd819a4c Cleanup the kernel service implementation and avoid printing on the console when no tracing flags are provided.
R=kmillikin@google.com, hausner@google.com
BUG=

Review-Url: https://codereview.chromium.org/2570483003 .
2016-12-13 09:08:10 +01:00
Matthias Hausner f5ab173c77 Add Kernel Isolate, second attempt
To run a script with the Dart->Kernel parser, use the -dfe option:

dart --dfe=runtime/tools/kernel-service.dart  --packages=/src/d2/sdk/.packages  foo.dart

The front end expects a directory named patched_sdk in the build directory (patched_sdk should be a sibling of the directory that contains the dart executable.)

Warning: using a debug build dart executable is very slow. It takes 2 minutes to run Hello World in a debug build, and about 7 seconds in a release build.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2558673002 .
2016-12-07 09:11:16 -08:00
Matthias Hausner 2ea399285a Revert "Add Kernel Isolate"
This reverts commit c9399fc557.

The change broke Dartium and Fuchsia.

BUG=

Review URL: https://codereview.chromium.org/2554953004 .
2016-12-06 14:17:09 -08:00
Matthias Hausner c9399fc557 Add Kernel Isolate
To run a script with the Dart->Kernel parser, use the -dfe option:

dart --dfe=runtime/tools/kernel-service.dart  --packages=/src/d2/sdk/.packages  foo.dart

The front end expects a directory named patched_sdk in the build directory (patched_sdk should be a sibling of the directory that contains the dart executable.)

Warning: using a debug build dart executable is very slow. It takes 2 minutes to run Hello World in a debug build, and about 7 seconds in a release build.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2483373002 .
2016-12-06 12:23:09 -08:00
Zachary Anderson 63cb4565d7 Fuchsia: Adds a script to download the prebuild SDK
The Fuchsia world doesn't run gclient runhooks or use depot_tools so
the advice is to check in a custom script to pull the prebuilt SDK
from google storage.

R=asiva@google.com, phosek@chromium.org, rmacnak@google.com

Review URL: https://codereview.chromium.org/2541123006 .
2016-12-02 13:18:54 -08:00
Jonas Termansen 3676af3168 Ensure consistent file ordering in observatory tarball
R=whesse@google.com
BUG=

Review URL: https://codereview.chromium.org/2545783002 .
2016-12-01 16:01:09 +01:00
Adam Barth 0ea1c155ae Fix the Fuchsia build
Python scripts need to be marked executable to run in the Fuchsia build.

TBR=zra@google.com
2016-10-27 09:59:58 -07:00
Vyacheslav Egorov eb8c24e133 Reland "Merge more Kernel infrastructure from kernel_sdk SDK fork."
R=zra@google.com
BUG=

Review URL: https://codereview.chromium.org/2451623006 .
2016-10-27 10:09:22 +02:00
Vyacheslav Egorov 12968edb9c Revert "Reland "Merge more Kernel infrastructure from kernel_sdk SDK fork.""
This reverts commit 4e7a31262e.

Windows bots are broken now.

R=zra@google.com
BUG=

Review URL: https://codereview.chromium.org/2451893004 .
2016-10-26 17:07:18 +02:00
Vyacheslav Egorov 4e7a31262e Reland "Merge more Kernel infrastructure from kernel_sdk SDK fork."
This relands commit 2fed1c3905 with fixes to ensure that analyzer summaries are correctly created and XARM build does not try to use target binaries on the host.

R=zra@google.com
BUG=

Review URL: https://codereview.chromium.org/2453773002 .
2016-10-26 16:48:28 +02:00
Vyacheslav Egorov cf7ff42e60 Revert "Merge more Kernel infrastructure from kernel_sdk SDK fork."
This reverts commit 2fed1c3905.

SDK builds are failing

TBR=zra@google.com

Review URL: https://codereview.chromium.org/2455593002 .
2016-10-26 13:06:27 +02:00
Vyacheslav Egorov 2fed1c3905 Merge more Kernel infrastructure from kernel_sdk SDK fork.
- bring patched SDK generation scripts and VM patch tweaks that allow VM patch files to be parsed by analyzer front-end;
  Patched SDK is an SDK with all VM patches spliced into it. Kernel compiler is based on the analyzer front-end which does
  not have any patch files support/model so for it to produce Kernel files that match VM we need to generate a such patched SDKs.

- bring test script modifications that allow to test Kernel pipeline

BUG=
R=asiva@google.com, kmillikin@google.com, whesse@google.com, zra@google.com

Review URL: https://codereview.chromium.org/2434123003 .
2016-10-26 13:02:54 +02:00
Siva Annamalai e9bd78fa8e Fix build break, set initial value for msan variable.
R=zra@google.com

Review URL: https://codereview.chromium.org/2388813003 .
2016-10-03 12:45:45 -07:00
Zachary Anderson 44a04f18f9 Use tcmalloc on Linux
Statically linking in the tcmalloc code is enough
to override the built-in malloc. I have this set up to
exclude the code for collecting heap profiles in a
Product build. There's still about a 230KB increase in
binary size, though. I think this isn't a big problem
since right now this is enabled only for server Linux.

product binary size:
before x64: 9569600
after  x64: 9807840
increase: 238240 (2.5%)

before ia32: 9122836
after  ia32: 9360944
increase: 238108 (2.6%)

before mips: 9418680
after  mips: 9640940
increase: 222260 (2.4%)

InitialRSS:
product:
before x64: 6307840
after x64:  7430144
increase: 1122304 (17.8%)

release (--no-profiler)
before x64: 7843840
after x64:  9207808
increase: 1363968 (17.4%)

R=asiva@google.com, whesse@google.com

Review URL: https://codereview.chromium.org/2316813002 .
2016-09-16 08:24:54 -07:00
Zachary Anderson 5475ab6fbb Fuchsia: Builds run_vm_tests and a wrapper program for running it.
This CL adds rules to the GN build for building run_vm_tests for
Fuchsia. It also adds a wrapper program in
//runtime/bin/run_vm_tests_fuchsia.cc and a file containing the
output of 'run_vm_tests --list', //runtime/bin/fuchsia_vm_tests.txt.
The wrapper program and text file make it easier to run the tests
on Fuchsia, and should be able to go away once we are out of the
bootstrapping phase.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2187153003 .
2016-07-28 10:35:25 -07:00
Zachary Anderson 0fae540223 Add runtime/bin/thread_fuchsia that binds to fuchsia's pthreads
Fuchsia provides pthreads so the linux implementation almost works
except that fuchsia does not (currently) provide the clock_gettime clock
for CLOCK_THREAD_CPUTIME_ID.

Review URL: https://codereview.chromium.org/2154453002 .
2016-07-14 15:25:01 -07:00
Zachary Anderson 87e1fc7859 Add #! lines and +x scripts run by the build system
Landing https://codereview.chromium.org/2151053002/ for jamesr.

Review URL: https://codereview.chromium.org/2152913002 .
2016-07-14 12:46:57 -07:00
Siva Annamalai 53c20930d1 Add --packages option to gen_snapshot in order to accept package map files (see https://github.com/dart-lang/sdk/issues/26362)
BUG=26362
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2044673002 .
2016-06-06 17:12:20 -07:00
Zachary Anderson a87fca4d0a Remove unused gyp variable
Review URL: https://codereview.chromium.org/1825233002 .
2016-03-22 14:31:54 -07:00
Zachary Anderson 27f5c1f81c Don't compile in root certs on Android.
This works by using SSL_CTX_load_verify_locations in
SecurityContext._trustBuiltinRoots() to specify
/system/etc/security/cacerts as the certificate directory.

This saves about 240KB from a stripped ProductAndroidARM build.

This has the drawback that SSL_do_handshake will synchronously
hit the filesystem looking for root certs during its trust evaluation.
We call SSL_do_handshake directly from the Dart thread so that Dart
code can be invoked from the "bad certificate" callback called by
SSL_do_handshake. If there was no need to support this callback,
it would be easier to move the handshake to the IOService thread, and
thus remove the compiled-in certs without the need for blocking IO
on the Dart thread.

R=whesse@google.com

Review URL: https://codereview.chromium.org/1811583003 .
2016-03-22 09:30:04 -07:00
Ivan Posva 8d18298fed - Remove Isolate::Flags structure and store flags directly in isolate.
- Make enable_asserts, enable_type_checks, error_on_bad_override and
  error_on_bad_type release mode flags only.

BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1737693003 .
2016-02-25 18:06:56 -08:00
Ivan Posva 9c0c6cb5c2 Add product mode:
- Add PRODUCT define and build mode to gyp configurations.
- Add product mode to test harness.
- Start to unify list of flags.
- Allow flags to be constant for particular build configurations.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1663863002 .
2016-02-03 21:10:30 -08:00
Zachary Anderson 80f358dede Adds targets for simarmv6 and armv6
related #25562

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1624593002 .
2016-01-22 13:07:48 -08:00
William Hesse 634e5a1d02 Refs #25328 Use a portable shebang
BSD systems don't place bash in /bin and a lot of the dart tools
hardcode a #!/bin/bash shebang that fails the 'all' target build
(not able to execute dart2js since the interpreter is not found).

Solve the issue by using #!/usr/bin/env as the shebang. For scripts
that need to pass arguments to bash modify the script to use the set
command as the first executed line of shell.

BUG=
R=whesse@google.com

Review URL: https://codereview.chromium.org/1552313002 .
2016-01-05 16:26:28 +01:00
John McCutchan cc0f297703 Compress Observatory assets
- Gzip the Observatory assets tar file before encoding into the C++ source file.

Shrinks observatory_assets.cc from ~21MB to ~4MB.

Fixes #25276

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1534523002 .
2015-12-16 12:35:58 -08:00
Ivan Posva 5805cba963 - Make sure the tar file for Observatory resources only contains
forward slashes.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1507923002 .
2015-12-07 15:27:28 -08:00
Ivan Posva f28afad353 - Do not include the sources as part of the generated files on
Windows to avoid creating string literals that are too large.

BUG=

Review URL: https://codereview.chromium.org/1453353002 .
2015-11-17 16:11:26 -08:00
Ivan Posva d97c7bdbde - Include sources in gen_snapshot and dart_no_snapshot to allow
creating full snapshots without having a full Dart SDK checkout.

BUG=
R=asiva@google.com, chinmaygarde@google.com

Review URL: https://codereview.chromium.org/1449163003 .
2015-11-17 14:58:09 -08:00
John McCutchan 60f911944b Update create_archve.py to output a uint8_t array
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1419263004 .
2015-10-28 13:58:32 -07:00
John McCutchan 25906f2144 Tweak create_archive.py to output the data as const char instead of const uint8_t
BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1411543006 .
2015-10-27 13:22:50 -07:00
John McCutchan 30e77221bc Some cleanups to observatory BUILD.gn
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1416293003 .
2015-10-27 07:42:27 -07:00
John McCutchan 2844eb86ca Service isolate requests Observatory assets from embedder
- Provide a new callback to Dart_Initialize that will be called when the service isolate needs the Observatory assets
- Move asset management code out of embedder and into common dart:_vmservice
- Use the tar format as the archive format
- Add build script to generate .cc file containing the archive
- Add a simple tar parser to service isolate

This makes it possible for embedders to not bake Observatory into their executable but instead load it off disk or over the network. The standalone embedder still links Observatory into the executable.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1411853003 .
2015-10-26 07:21:23 -07:00
Chinmay Garde 87ce99fd00 Enable generation of instruction buffer on precompilation
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1411383004 .
2015-10-22 12:26:41 -07:00
Daniel Andersson f066ce03b8 Add link to BMU benchmark gallery generator tool.
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org/1387693002 .
2015-10-02 17:18:39 -07:00
John McCutchan 021d7c0aa5 Make build incremental
- Make sure observatory's index.html is touched.
- Switch generate_snapshot_bin to have only one output (a timestamp file)

Fixes #24220

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

Review URL: https://codereview.chromium.org//1304953004 .
2015-08-27 11:14:13 -07:00
John McCutchan 3442cad286 Decrease Dart binary size by 1.7MB
- Add flag to enable zlib compression of resources to create_resource.py
- Enable flag for Observatory resources
- Use 'dart:io' ZlibCodec to decompress resources when first loaded into service isolate.
- Dart executable (debug, macos) goes from 15,460b to 13,752b

R=asiva@google.com

Review URL: https://codereview.chromium.org//1151743002
2015-05-21 13:35:11 -07:00
koda@google.com 9b4219332b Tool to compute BMU plots from GC logs.
R=iposva@google.com

Review URL: https://codereview.chromium.org//1133243004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45786 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 16:42:53 +00:00
asiva@google.com 87c8a6ee76 First step towards splitting a full snapshot into a vm isolate snapshot and a
regular isolate snapsot.
- change gen_snapshot to split a full snapshot into a vm isolate snapshot
  and an isolate snapshot
- change the build process and scripts to account for splitting the full
  snapshot

R=hausner@google.com

Review URL: https://codereview.chromium.org//1023753006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44814 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-31 18:46:19 +00:00
zra@google.com 74245deeac Adds a repeatable --url_mapping flag to dartanalyzer
If a Dart file does an import that is 'strange', this flag
allows the imported URI to be understood by the analyzer
so long as an explicit mapping of the URI to an absolute
path to a .dart file is supplied with this flag.

For example, a custom embedding of the Dart VM may refer
to non-SDK libraries through its own URI scheme, e.g.

import 'strange:things';

With the flag and Uri resolver added in this CL, the
analyzer can find the Dart source for 'strange:things':

dartanalyzer ... --url_mapping 'strange:things,/path/to/strange/things.dart'

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//897593005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43788 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-14 07:19:15 +00:00
johnmccutchan@google.com 172baa03ff Service isolate rework take 2
Review URL: https://codereview.chromium.org//889443002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00
johnmccutchan@google.com db271b0477 Revert r43217, r43215, r43208, r43207, and r43202.
Reverting because of some isolate spawn issues (on Windows, and pub bots).

Review URL: https://codereview.chromium.org//867113003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43219 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 22:56:18 +00:00
johnmccutchan@google.com 66aa470fc6 * Create vm-service isolate at Dart_Initialize time.
* Remove Service create callback.
* Simplify creation of service isolate.
* Creation is done on thread pool.
* Use vm-service isolate for loading in standalone embedder.
* Remove import of dart:io from builtin library.

performance changes:

no service isolate:

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

always start service isolate (as a thread pool task):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:45 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:44 | 100% | +12363 | -    0]

service does I/O (calls to Dart_LoadScript block until service is running):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

R=asiva@google.com

Review URL: https://codereview.chromium.org//584023004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43202 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 19:45:48 +00:00
zra@google.com c5a7450902 Makes create_snapshot_bin.py pass along a --package_root flag.
This allows a script snapshot to import from package: uris.

R=asiva@google.com

Review URL: https://codereview.chromium.org//850193002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42887 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-14 21:59:36 +00:00
johnmccutchan@google.com 261200c587 Build Observatory as part of runtime
Relanding https://codereview.chromium.org/810623005/

Review URL: https://codereview.chromium.org//837723004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42645 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 21:59:42 +00:00
whesse@google.com aa5a986d5d Revert "Build Observatory with runtime"
This reverts commit 76df7b3c1bf83c08d3994d61df4c9c530fadb4e5.
This commit breaks dartium compilation.

BUG=
R=ricow@google.com

Review URL: https://codereview.chromium.org//839543002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42619 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 10:07:58 +00:00
johnmccutchan@google.com 9d6ac72b46 1) Remove prebuilt Observatory sources
2) Move observatory from runtime/bin/vmservice/observatory to runtime/observatory

3) Add two tools scripts:
- tools/run_pub.py (runs pub before SDK is built)
- tools/obs_tool.py (helper for get, build, and deploy stages)

4) Build Observatory with runtime:
- pub get --offline
- pub build
- deploy

5) Build artifacts are now in standard output directory, for example, out/DebugIA32/observatory.

6) Add a new 'dart_boostrap' host target (no snapshot, no observatory) that can be used as the Dart executable to run pub when building Observatory. This is behind a build.py flag --use-bootstrap-for-observatory because:

- It is only necessary on older Linux distributions that are incompatible with the prebuilt Dart testing executable.
- running pub build with the boostrap Debug build is significantly slower.

7) Detect if the prebuilt executable doesn't work and automatically switch to the 'dart_bootstrap' executable. Also, warn the user and provide a Wiki link with more information.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//810623005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42614 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-05 21:26:52 +00:00
johnmccutchan@google.com 55a0bed8dc Rewrite Windows path separator to be Unix path separator in Observatory resource bundle
BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org//317873003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37031 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-05 16:01:27 +00:00
johnmccutchan@google.com db018bba6e Do not include DevTools version of Observatory with standalone VM
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//310153003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36941 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-03 20:50:12 +00:00
johnmccutchan@google.com dc7d4ce90a Upgrade Observatory to Polymer 0.10.x
R=turnidge@google.com

Review URL: https://codereview.chromium.org//299823004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36544 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-23 07:10:12 +00:00