summaryrefslogtreecommitdiff
path: root/core/src/test
Commit message (Collapse)AuthorAgeFilesLines
...
* Force compile errors for missing implicits in `Discovered` materialization ↵Li Haoyi2017-11-182-2/+30
| | | | to point at their source methods, for easier fixing
* Inject logging callback into Evaluator, so we can silence the logging in our ↵Li Haoyi2017-11-184-82/+4
| | | | unit tests
* Organize `core/test`s into subfoldersLi Haoyi2017-11-1812-113/+108
|
* Tweak `OSet` to avoid re-creating the `.items` Vector for every operation, ↵Li Haoyi2017-11-183-3/+3
| | | | making `.items` a lightweight Iterator and forcing users to use `.indexed` if they explicitly need an indexed sequence
* First pass at managing failures in the evaluation graph now works. Tweaked ↵Li Haoyi2017-11-183-22/+27
| | | | the `JavaCompileJarTests` to make use of it, but still need to write a proper unit test suite
* Tighten up `LabelledTarget` to contain a `Target[T]` instead of a `Task[T]`Li Haoyi2017-11-183-14/+22
|
* Implement `T.persistent{}` targets, which have their dest directory persist ↵Li Haoyi2017-11-181-5/+1
| | | | between runs so the task implementation can use it as a cache
* CleanupLi Haoyi2017-11-185-9/+3
|
* Extract out shared `Hierarchy.traverse` function for walking `Hierarchy` treeLi Haoyi2017-11-182-4/+4
|
* Tests appear to pass using the new `Hierarchy`-first `Discovered` data formatLi Haoyi2017-11-172-39/+55
|
* Flesh out a principled implementation of the cross-build monadLi Haoyi2017-11-161-37/+128
|
* interpreter-based `Cross` seems to workLi Haoyi2017-11-161-34/+37
|
* Vendor `com.lihaoyi:acyclic` codebase as a cross-building example, first ↵Li Haoyi2017-11-166-14/+61
| | | | non-working experiments in cross building working...
* Add namespace hierarchy discovery to the `Discovered` macro, in preparation ↵Li Haoyi2017-11-123-4/+18
| | | | for IntelliJ support
* Tests are passing under the new group evaluation modelLi Haoyi2017-11-123-48/+86
|
* Clean up `mill.Main`Li Haoyi2017-11-122-5/+0
|
* Rename out `Task.path` to `Task.source`, use it more aggressively to get ↵Li Haoyi2017-11-123-20/+24
| | | | `amm -w` watch-n-rebuild functionality working on `build.sc`
* Ensure `Evaluator` can handle the case where you have more than one terminal ↵Li Haoyi2017-11-121-18/+52
| | | | nodes on the boundary between two groups, *and* one of the terminal nodes depends on another
* .Li Haoyi2017-11-111-3/+1
|
* Properly merge groups in `groupAroundNamedTargets` to handle cases where a ↵Li Haoyi2017-11-111-0/+20
| | | | group has multiple terminals
* - Give `Target`s nicer `toString`s using `sourcecode.Enclosing`. Still not ↵Li Haoyi2017-11-113-3/+26
| | | | | | | | | | as good as the `Labeling` they get during evaluation, but better than nothing - Split out `TargetImpl` from `Target`, so we can make our dummy `TestUtils.Test` class implement `Target`s for discoverability etc. - Make `Discovered` only discover `Target`s, not `Task`s - Make `groupAroundNamedTargets` properly sort the groups topologically, and by flexible enough to combine groups which have cycles between them.
* Swap over to new `projectDeps` mechanism for defining dependencies between ↵Li Haoyi2017-11-112-2/+2
| | | | various `scalaplugin.Subproject`s
* First sketch at SBT test integration worksLi Haoyi2017-11-111-83/+69
|
* rename forge -> millLi Haoyi2017-11-1012-47/+47
|
* Add basic tests for un-cached evaluation of `Task`sLi Haoyi2017-11-103-36/+103
|
* Migrate over to the new `Task`/`Target`/`Command` splitLi Haoyi2017-11-098-68/+76
|
* Move `JavaCompilerJarTests` over to new `Target.ctx()` syntaxLi Haoyi2017-11-091-11/+10
|
* Make `Applicative` macros able to inject a configurable `Ctx` object, used ↵Li Haoyi2017-11-091-3/+7
| | | | in `Target` to inject the `dest` folder for the `T{...}` block to use
* First full metacircular compile-build-execute workflow now works using the ↵Li Haoyi2017-11-071-2/+2
| | | | | | | | `build.sc` file in the root of the repo. Run using ``` sbt scalaplugin/compile "core/run build.sc ScalaPlugin.console" ```
* - Allow main methods to return `Target[T]`s, so they can then be evaled by ↵Li Haoyi2017-11-071-1/+50
| | | | | | an external `Evaluator` that has the `Discovered` mapping available - Basic integration tests for `T.command` entrypoint running in the `JavaCompilerJarTests` suite
* Break out reusable JVM specific stuff into its own fileLi Haoyi2017-11-051-53/+2
|
* Crib `createJar` code from CBT to properly set manifestLi Haoyi2017-11-051-16/+46
|
* Break out `Cacher.scala` from `Applicative.scala` to fully separate the ↵Li Haoyi2017-11-051-1/+0
| | | | gnarly macros
* Add a simple consistency checker on `Discovered` to test if any of the ↵Li Haoyi2017-11-051-39/+48
| | | | observable `Target`s in the given base are not being properly cached
* Add test to verify before-hand evaluation order of `Applyable#apply` callsLi Haoyi2017-11-051-0/+15
|
* Add multiple-identical-apply-calls unit testLi Haoyi2017-11-051-0/+10
|
* Fix up owner chains to allow `Applyable#apply()` calls to work within lambdasLi Haoyi2017-11-051-0/+12
|
* More `ApplicativeTests`Li Haoyi2017-11-051-4/+15
|
* First set of standalone tests for the gnarly `Applicative` logicLi Haoyi2017-11-052-41/+88
|
* Rename `ApplicativeMacros` and contents to shorter namesLi Haoyi2017-11-051-2/+34
|
* Split out `ApplicativeMacros` from `Target`Li Haoyi2017-11-052-1/+11
|
* Re-organize `forge/` folder according to ordering of build phases: target ↵Li Haoyi2017-11-058-4/+22
| | | | definition, target discovery, and target evaluation
* Split out `MacroErrorTests` into it's own fileLi Haoyi2017-11-042-53/+63
|
* add another negative test to ensure we give good error messages when trying ↵Li Haoyi2017-11-041-0/+15
| | | | to apply() a value coming from inside a T{...} block, this time as the param of a lambda
* First pass at providing good compile errors to invalid uses of the `T{...}` ↵Li Haoyi2017-11-041-2/+33
| | | | macro: we should only allow you to `Target#apply()` on expressions whose values come from outside the `T{...}` block
* Collapse `LocalDef` into `T{...}` macro, make it more flexible so it only ↵Li Haoyi2017-11-041-4/+1
| | | | | | caches `def`s (and complains about `val`s) if it's defined top-level in a class/trait/object, for easy overriding. If it's in some helper function somewhere, overriding doesn't matter, and it's up to the user to figure out how to construct a target graph without redundancy
* Add some basic compile-time checks to enforce usage of `T{...}` within traitsLi Haoyi2017-11-042-0/+11
|
* Add some tests to verify Cacher happy-pathsLi Haoyi2017-11-041-0/+50
|
* First experiment using `Cacher interface` combined with `Caller` implicits ↵Li Haoyi2017-11-043-13/+101
| | | | to turn `def foo = T{}` into pseudo-`lazy val`s, that we can override in subclasses using stackable traits
* Rename `IntegrationTests` to `JavaCompileJarTests`, make use of new `T{...}` ↵Li Haoyi2017-11-031-5/+4
| | | | macro in it