pub icon indicating copy to clipboard operation
pub copied to clipboard

Change `dart pub global activate` to use `dart build exe`

Open dcharkes opened this issue 1 year ago • 3 comments

We should change dart pub global to use AOT instead of JIT.

Also, we should not let pub need to worry about how dart is compiled and run, dart should be responsible for that.

@jonasfj suggested that dart pub global activate should use dart build exe.

Subsequently, $PUB_CACHE/bin/ could contain symlinks to the executables in $PUB_CACHE/global_packages/<package_name>/outputdir/<package_name>.exe.

This would

  1. remove logic from pub-global about how Dart is compiled,
  2. speedup startup of pub-global activated packages, and
  3. make native assets work (https://github.com/dart-lang/sdk/issues/56044).

Since the executables would include a dart precompiled runtime. The Dart version which is running would be the one that was used to run dart pub global activate. If we ever want to re-activate a package with a different Dart SDK version, we might need some way to detect what version of the Dart SDK was used to compile the executable.

@jonasfj and @sigurdm probably know much more constraints and considerations. I'm filing an issue so that we have something to point to.

dcharkes avatar Jun 20 '24 11:06 dcharkes