| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far, Mill was caching ScalaInstance which contains a classloader but
this is not enough: Zinc creates its own classloader by combining the
ScalaInstance classloader with the path to the compiler-bridge. Zinc
takes care of caching this classloader in each instance of
ScalaCompiler.
We can take advantage of this by caching an instance of Compilers since
it contains everything we want to cache (ScalaCompiler and
ScalaInstance).
This significantly reduces the amount of classloading that happens
at each compilation step, as measured by running:
export _JAVA_OPTIONS="-XX:+UnlockDiagnosticVMOptions -XX:+TraceClassLoading -XX:+TraceClassUnloading"
mill -i foo.compile
Then looking at the output of `out/mill-worker-1/logs` while adding a
new line in a source file in `foo` and running `mill -i foo.compile` again.
The speedup is going to depend on the project, but I measured a ~2x
improvement when running on the Mill build `time(core.compile())` and
`rm -rf out/core/compile/` in a loop until results stabilized. See also
the results that were obtained when a very similar issue was fixed in
sbt itself: https://github.com/sbt/sbt/pull/2754
|
|
|
| |
They will be classloaded by the compiler itself based on -Xplugin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove dead code
* Upgrade zinc to 1.1.7, avoid hardcoding the version
* Fix over-compilation with Zinc
`upstreamCompileOutput` needs to contain the CompileOutput of all
recursive dependencies, otherwise Zinc gets confused when a classfile
from one of these recursive dependency is used, resulting in
over-compilation.
No tests because I don't know how to write one, but this can be observed
manually:
1. mill scalajslib.compile
2. Add an empty line to ScalaModule.scala
3. mill scalajslib.compile
Before this commit, the last compilation ended up compiling one file in
scalalib (as expected), then every file in scalajslib. After this
commit, nothing in scalajslib is recompiled, as expected.
|
| |
|
|
|
|
|
|
| |
tweak-readme
reduce polling frequency of BackgroundWrapper
|
|
|
|
| |
in the background that only die when the task is re-run
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add scala-native PR#1143 as submodule
* first pass at integrating scala-native build into mill
including worker/bridge
* add the native libraries to the compile and run classpath
* sssshhh don't be so noisy
* update scala-native to latest build WIP
* update mill to latest scala-native build-api code
* add test interface from scala-native
this code is not published ornot published at the correct scala version so copy it in for now
* implement tests for scala-native
very messy at the moment
also correct bridge version as much as possible with out a scala-native release
* update to scala-native/master
scala-native #1143 now merged
* Remove scala-native submodule
* updates for scala-native 0.3.7 release
* fixes after rebase
* make test framework agnostic and tidy dependencies
* add robust method of getting JVM classpath for running tests
support for multiple test frameworks
tidy up
* rebase fixes for 0.2.0
* add SbtNativeModule and tidy
* rebase fixes
* fix building of compile / run Classpath (via transitiveIvyDeps)
better method of loading JVM test frameworks
* add tests for build, run, utest, scalatest
* move native tests into it own trait which can be extended/overidden
* change release mode to a sealed trait instead of boolean
* add logLevel to ScalaNativeModule and plumb in
propagate release and log levels to test projects
* use test-runner from scala-native instead of including project source
add ability easily compile against scala-native snapshots
* add some docs
* update to 0.3.8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Implement basic dependency resolution
* Implement basic dependency versions resolution (Maven only)
* refactor dependency updates code
* add resolution of updated dependencies
* remove dependency on locally-built coursier
* dependency updates output formatting
* Add 'allowPreRelease' option
* start adding tests
* Add more tests
* Add documentation
* Cleanup code
* rewrite version parser to use fastparse
|
|\ |
|
| | |
|
| | |
|
| | |
|
| |
| |
| | |
The Unmanaged Jars snippet currently shown is not working, updated with correct solution as per closed issue #361.
|
| | |
|
| | |
|
|/ |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Allow bacticked tasks
* Prevent stack overflow
* Test for illegal bacticked identifiers
* Filter out illegal backticked identifiers
The only legal identifiers are aplanumeric, unserscore (_), and
hyphens (-).
* Remove unused method that is invalid
* Document valid characters for module/task names
|
|/
|
|
| |
https://github.com/lihaoyi/mill/issues/368
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix #233 add append and exclude rules to assembly
* handle existing files and concatenation when file already exists in assembly
* add assembly tests for append rules
* tests for append patterns
* tests for exclude patterns
* make append algorithm use single map with fold over classpathIterator
* move assembly rules logic to method
* move grouping method to Assembly object, make assemblyRules Seq[_] rather than T[Seq[_]]
* add test cases for when there are no rules
* keep default parameter in createAssembly not to break CI
* add one more reference.conf entry to tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Improve Intellij Idea support
Improves the Intellij Idea support in various ways :
* Cherrypicks the idea conf that needs deleting rather than deleting
the whole .idea directory. That directory contains elements of
configuration like VCS reference that were annoying to set again
every time mill regenerated idea config.
* Attempts to retrieve libraries that the build depends on by inspecting
the classloader of the top module
* Attempts at grouping jars and sources together in order to have both
in the same idea files, which appears to give better jump to definition
* Hacks the library names for the libraries the build depends on, in
order to match Intellij's ammonite support and not show red to the user
about the library that has successfuly been resolved. Also allows to
jump to the library sources from the magic import.
* Remove un-necessary filters
* Avoid Agg throwing because of duplicated build libraries
* Removing hardcoded version from SBT idea module names
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use comma as separator in MILL_CLASSPATH
There is no need to use environment-specific separator, especially since
- other variables are using commas anyway, and
- it is not sent to any system-level command
* Fix whitespace
* Use MILL_CLASSPATH for Windows
* Use vm options file for client on windows
* Remove overzealous distinct
* Clean up unnecessary ceremony
|
|
|
|
| |
Throws an exception with a sensible error message when the Java compiler
is not available.
|
|
|
|
| |
limitation
|
| |
|
| |
|
|
|
|
| |
wasn't getting picked up in the build discovery before
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Transitive reduction of visualized graph via jgrapht now works
```
out/dev/launcher/dest/run -i visualize __.compile _
out/dev/launcher/dest/run -i visualize core.__
```
* Move test running logic from scalaworker into scalalib
This is to try and reduce the size of the classpath we are passing to the test runner subprocess, in an attempt to fix the command-line-too-long errors we're getting in Appveyor. Now the test runner subprocess should no longer need Zinc or all of it's transitive dependencies
* - Break out `GraphvizTools` into a separate Mill module, to avoid bloating the main jar and try to shorten the `MILL_SCALA_WORKER` classpath being sent to scalajslib.test (which is blowing up on windows as the CLI command is too long)
- Move the meat of `resolveDependencies` from `scalalib` to `main`, to support resolving mill modules
- DRY up resolution of mill modules in `Util.millProjectModule`
* fix mill module resolution
* Tweaks to try and make zinc work again...
* Tweak `Module#reflect` to try and make it happy with `visualize` module...
* fix integration test classpath
* move visualization into it's own module
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* initial implementation
* Upgrade to the latest version
* Add tests
* Update the code to comply with the new API
* Use reflection to call TwirlCompiler.compile function
* Run twirllib.test on CI
* Use the Java API as a workaround
* wip
* Cleanup the code (code review)
* Add an example to call the Scala API
* twirl that works with scala API
* Create functions to override the default settings (will be available in the future)
|
|
|
|
|
|
|
|
|
|
|
| |
* Solves 345 : optional signing
* Made gpgPassphrase optional for publishing
* Added a flag to remove signing of published artifacts altogether
* Handle optional value using null as default param
better than using empty string as default param.
|
| |
|
|
|
|
| |
to make sure it works
|
| |
|
| |
|
| |
|