Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | cleanup `build.sc` imports | Li Haoyi | 2017-11-11 | 1 | -0/+2 |
| | |||||
* | `T{}` blocks can now be implicit | Li Haoyi | 2017-11-11 | 3 | -3/+14 |
| | |||||
* | - Smoothed out syntax for defining ivy dependencies | Li Haoyi | 2017-11-11 | 2 | -49/+57 |
| | | | | - Made `build.sc` file directly runnable using Ammonite, without any wrapper | ||||
* | . | Li Haoyi | 2017-11-11 | 1 | -3/+1 |
| | |||||
* | Properly merge groups in `groupAroundNamedTargets` to handle cases where a ↵ | Li Haoyi | 2017-11-11 | 4 | -5/+28 |
| | | | | group has multiple terminals | ||||
* | - Give `Target`s nicer `toString`s using `sourcecode.Enclosing`. Still not ↵ | Li Haoyi | 2017-11-11 | 8 | -18/+57 |
| | | | | | | | | | | 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 Haoyi | 2017-11-11 | 5 | -4/+5 |
| | | | | various `scalaplugin.Subproject`s | ||||
* | First sketch at SBT test integration works | Li Haoyi | 2017-11-11 | 1 | -83/+69 |
| | |||||
* | rename forge -> mill | Li Haoyi | 2017-11-10 | 28 | -106/+106 |
| | |||||
* | Add basic tests for un-cached evaluation of `Task`s | Li Haoyi | 2017-11-10 | 4 | -42/+114 |
| | |||||
* | Kill `Router.main` annotation and make routing dependent on the `Command` ↵ | Li Haoyi | 2017-11-10 | 1 | -2/+1 |
| | | | | return type | ||||
* | Migrate over to the new `Task`/`Target`/`Command` split | Li Haoyi | 2017-11-09 | 17 | -245/+265 |
| | |||||
* | Move `JavaCompilerJarTests` over to new `Target.ctx()` syntax | Li Haoyi | 2017-11-09 | 2 | -31/+10 |
| | |||||
* | Make `Applicative` macros able to inject a configurable `Ctx` object, used ↵ | Li Haoyi | 2017-11-09 | 3 | -25/+60 |
| | | | | in `Target` to inject the `dest` folder for the `T{...}` block to use | ||||
* | make scalaplugin.Subproject use the builtin destination folder | Li Haoyi | 2017-11-09 | 2 | -3/+4 |
| | |||||
* | Swap `compileScala` over to `T{...}` macro | Li Haoyi | 2017-11-08 | 1 | -2/+0 |
| | |||||
* | Include consistency check in main workflow | Li Haoyi | 2017-11-07 | 1 | -28/+34 |
| | |||||
* | First full metacircular compile-build-execute workflow now works using the ↵ | Li Haoyi | 2017-11-07 | 4 | -19/+59 |
| | | | | | | | | `build.sc` file in the root of the repo. Run using ``` sbt scalaplugin/compile "core/run build.sc ScalaPlugin.console" ``` | ||||
* | fix npe | Li Haoyi | 2017-11-07 | 1 | -5/+5 |
| | |||||
* | - Allow main methods to return `Target[T]`s, so they can then be evaled by ↵ | Li Haoyi | 2017-11-07 | 5 | -20/+77 |
| | | | | | | an external `Evaluator` that has the `Discovered` mapping available - Basic integration tests for `T.command` entrypoint running in the `JavaCompilerJarTests` suite | ||||
* | Recursive main-method resolution now works, as part of the normal discovery ↵ | Li Haoyi | 2017-11-05 | 3 | -28/+53 |
| | | | | | | | | | | | | | | | | | | | | | | recursion ```scala @ import forge.util.JsonFormatters._ import forge.util.JsonFormatters._ @ forge.discover.Discovered[forge.scalaplugin.MetacircularTests.type] @ forge.discover.Discovered[forge.scalaplugin.MetacircularTests.type].mains res2: Seq[...] = List( NestedEntry(List("ScalaPlugin"), ..., EntryPoint("run", ...)), NestedEntry(List("Core"), ..., EntryPoint("run", ...) ) @ forge.discover.Discovered[forge.scalaplugin.MetacircularTests.Core.type].mains res3: Seq[...] = List( NestedEntry(List(), ..., EntryPoint("run", ...)) ) ``` | ||||
* | Forked `ammonite.main.Router` into `forge.discover.Router`, to let us ↵ | Li Haoyi | 2017-11-05 | 3 | -7/+409 |
| | | | | | | generate routes purely based on a type `T`, as part of the target discovery process. We defer the need for a concrete value of type `T` later until we need to evaluate the route. Eventually this should go upstream into ammonite itself, but forking is easier for now | ||||
* | Break out reusable JVM specific stuff into its own file | Li Haoyi | 2017-11-05 | 3 | -55/+73 |
| | |||||
* | Crib `createJar` code from CBT to properly set manifest | Li Haoyi | 2017-11-05 | 1 | -16/+46 |
| | |||||
* | Break out `Cacher.scala` from `Applicative.scala` to fully separate the ↵ | Li Haoyi | 2017-11-05 | 4 | -36/+50 |
| | | | | gnarly macros | ||||
* | Add a simple consistency checker on `Discovered` to test if any of the ↵ | Li Haoyi | 2017-11-05 | 2 | -39/+55 |
| | | | | observable `Target`s in the given base are not being properly cached | ||||
* | Add test to verify before-hand evaluation order of `Applyable#apply` calls | Li Haoyi | 2017-11-05 | 1 | -0/+15 |
| | |||||
* | Add multiple-identical-apply-calls unit test | Li Haoyi | 2017-11-05 | 1 | -0/+10 |
| | |||||
* | tweak | Li Haoyi | 2017-11-05 | 1 | -2/+2 |
| | |||||
* | Fix up owner chains to allow `Applyable#apply()` calls to work within lambdas | Li Haoyi | 2017-11-05 | 2 | -6/+24 |
| | |||||
* | More `ApplicativeTests` | Li Haoyi | 2017-11-05 | 1 | -4/+15 |
| | |||||
* | First set of standalone tests for the gnarly `Applicative` logic | Li Haoyi | 2017-11-05 | 4 | -57/+97 |
| | |||||
* | Rename `ApplicativeMacros` and contents to shorter names | Li Haoyi | 2017-11-05 | 3 | -19/+59 |
| | |||||
* | Split out `ApplicativeMacros` from `Target` | Li Haoyi | 2017-11-05 | 6 | -123/+149 |
| | |||||
* | Re-organize `forge/` folder according to ordering of build phases: target ↵ | Li Haoyi | 2017-11-05 | 18 | -35/+66 |
| | | | | definition, target discovery, and target evaluation | ||||
* | Turn on `lihaoyi:acyclic` plugin, enforce it, and break up whatever import ↵ | Li Haoyi | 2017-11-05 | 5 | -81/+93 |
| | | | | cycles exist | ||||
* | Get rid of custom `coursier.Dependency` formatter, which was only needed due ↵ | Li Haoyi | 2017-11-04 | 1 | -33/+4 |
| | | | | to initialization order problems, which we can solve by making everything `lazy val`s | ||||
* | Split out `MacroErrorTests` into it's own file | Li Haoyi | 2017-11-04 | 2 | -53/+63 |
| | |||||
* | add another negative test to ensure we give good error messages when trying ↵ | Li Haoyi | 2017-11-04 | 1 | -0/+15 |
| | | | | to apply() a value coming from inside a T{...} block, this time as the param of a lambda | ||||
* | Synchronize `Target.Cacher#cachedTarget` call, to match the thread-safety we ↵ | Li Haoyi | 2017-11-04 | 1 | -1/+1 |
| | | | | get from `lazy val`s | ||||
* | First pass at providing good compile errors to invalid uses of the `T{...}` ↵ | Li Haoyi | 2017-11-04 | 2 | -5/+56 |
| | | | | macro: we should only allow you to `Target#apply()` on expressions whose values come from outside the `T{...}` block | ||||
* | Swap over to `typingTransformer` | Li Haoyi | 2017-11-04 | 1 | -15/+14 |
| | |||||
* | Collapse `LocalDef` into `T{...}` macro, make it more flexible so it only ↵ | Li Haoyi | 2017-11-04 | 3 | -52/+27 |
| | | | | | | 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 traits | Li Haoyi | 2017-11-04 | 4 | -4/+51 |
| | |||||
* | Add some tests to verify Cacher happy-paths | Li Haoyi | 2017-11-04 | 1 | -0/+50 |
| | |||||
* | Mark `Cacher#T`-related things as protected, since you shouldn't access them ↵ | Li Haoyi | 2017-11-04 | 1 | -3/+3 |
| | | | | from outside the class body | ||||
* | - Get rid of lazy `Target` wrapper since we're using lazy `def`s everywhere | Li Haoyi | 2017-11-04 | 2 | -23/+5 |
| | | | | - Switch to using just `sourcecode.Enclosing` to key the `cacherLazyMap`, since the caller is already present as the `this` owning the `cacherLazyMap` and does not need to be stored | ||||
* | First experiment using `Cacher interface` combined with `Caller` implicits ↵ | Li Haoyi | 2017-11-04 | 7 | -15/+133 |
| | | | | to turn `def foo = T{}` into pseudo-`lazy val`s, that we can override in subclasses using stackable traits | ||||
* | Implement `ScalaDep` ADT to encapsulate handling on scala cross-version suffixes | Li Haoyi | 2017-11-04 | 1 | -0/+10 |
| | |||||
* | Rename `IntegrationTests` to `JavaCompileJarTests`, make use of new `T{...}` ↵ | Li Haoyi | 2017-11-03 | 1 | -5/+4 |
| | | | | macro in it |