Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Split up forge into `scalaplugin` an `core` subprojects, to allow us to use ↵ | Li Haoyi | 2017-11-03 | 12 | -929/+0 |
| | | | | | | the `T#apply` macro in the implementation of `scalaplugin.Subproject` Also needed to implement inter-`Subproject` dependencies so the `MetacircularTests` can continue to support the new layout | ||||
* | `T.raw` macro now works without needing `c.untypecheck` | Li Haoyi | 2017-11-02 | 2 | -30/+31 |
| | |||||
* | First pass at idiom-bracket macro works | Li Haoyi | 2017-11-01 | 3 | -109/+41 |
| | |||||
* | Metacircular building now works | Li Haoyi | 2017-10-31 | 2 | -11/+19 |
| | |||||
* | Trying to evaluate more of `MetacircularTests` no longer crashes, though ↵ | Li Haoyi | 2017-10-31 | 1 | -1/+31 |
| | | | | `compiled` still does... | ||||
* | first MetacircularTest (evaluating `scalaVersion`) passes. Subsequent tests ↵ | Li Haoyi | 2017-10-31 | 3 | -3/+3 |
| | | | | still fail due to NPE | ||||
* | Sketched out `MetacircularTests` using `scalaplugin.Subproject`; still ↵ | Li Haoyi | 2017-10-31 | 3 | -30/+49 |
| | | | | doesn't compile | ||||
* | Flesh out implementation of `forge.scalaplugin.Subproject` | Li Haoyi | 2017-10-31 | 2 | -10/+126 |
| | |||||
* | Move formatter off of `Target[_]` and into `Discovered` | Li Haoyi | 2017-10-31 | 6 | -34/+60 |
| | |||||
* | Sketched out structure of Scala subprojects | Li Haoyi | 2017-10-31 | 4 | -24/+150 |
| | |||||
* | Got Zinc working on the test bench, compiling forge's own project | Li Haoyi | 2017-10-29 | 2 | -75/+0 |
| | |||||
* | First builds work going through an Ammonite script, currently run using `sbt ↵ | Li Haoyi | 2017-10-29 | 1 | -0/+18 |
| | | | | "~run src/test/examples/javac/build.sc` | ||||
* | Bump versions | Li Haoyi | 2017-10-29 | 1 | -0/+7 |
| | |||||
* | First set of `javac` integration tests all pass now, using folder-hashing ↵ | Li Haoyi | 2017-10-29 | 3 | -11/+42 |
| | | | | instead of mtimes because mtimes are flaky and unprecise (1 *second* resolution on OS-X!) | ||||
* | First pass at making `javac` example an automated test. Still doesn't pass... | Li Haoyi | 2017-10-29 | 1 | -0/+5 |
| | |||||
* | Move `Args` into the `util/` package | Li Haoyi | 2017-10-29 | 3 | -4/+3 |
| | |||||
* | Split up `Utils.scala` and move the pieces into the `utils/` package | Li Haoyi | 2017-10-29 | 6 | -167/+173 |
| | |||||
* | Make `OSet` use `LinkedHashSet` instead of a parallel `Vector` | Li Haoyi | 2017-10-29 | 1 | -7/+9 |
| | |||||
* | Finished migrating over to using `PathRef` to propagate changes to file ↵ | Li Haoyi | 2017-10-29 | 4 | -42/+55 |
| | | | | | | paths and folders. `sideHash` remains, but is only used for direct "do I re-evaluate" checks, and relies on the return values to force downstream targets to re-evaluate if necessary | ||||
* | Graph tests pass again | Li Haoyi | 2017-10-29 | 1 | -5/+17 |
| | |||||
* | WIP | Li Haoyi | 2017-10-29 | 4 | -44/+88 |
| | | | | | - Making `groupAroundNamedTargets` return a `MutableBiMap` - Make `evaluateGroupCached` also take note of the `sideHash`es of upstream targets, to handle cases like `Path`s where the path you're returning doesn't change but we still want to invalidate it anyway | ||||
* | Convert `Target#dirty` to `Target#externalHash` | Li Haoyi | 2017-10-29 | 2 | -8/+8 |
| | |||||
* | Swap over wholesale to ammonite.ops | Li Haoyi | 2017-10-29 | 4 | -45/+23 |
| | |||||
* | Swap over in-memory results cache to disk-based JSON metadata | Li Haoyi | 2017-10-29 | 3 | -19/+37 |
| | |||||
* | Cleanup | Li Haoyi | 2017-10-28 | 2 | -8/+0 |
| | |||||
* | Break up `Evaluator#evaluateGroup` into a few smaller methods | Li Haoyi | 2017-10-28 | 1 | -46/+57 |
| | |||||
* | Get rid of `DefCtx` for good. All tests passing entirely using the new ↵ | Li Haoyi | 2017-10-28 | 3 | -115/+28 |
| | | | | `Discovered` labeling mechanism | ||||
* | Implemented member-reflection-based naming, set to replace the old ↵ | Li Haoyi | 2017-10-28 | 1 | -0/+43 |
| | | | | `DefCtx`/`sourcecode.Enclosing` strategy | ||||
* | Move java-compile example supporting code into test suite | Li Haoyi | 2017-10-28 | 2 | -62/+0 |
| | |||||
* | Got grouped evaluation working | Li Haoyi | 2017-10-27 | 2 | -15/+14 |
| | |||||
* | Migrate everything which shouldn't have duplicates over to a new `OSet` data ↵ | Li Haoyi | 2017-10-27 | 2 | -47/+165 |
| | | | | structure | ||||
* | - Split out `ForgeTests` into `EvaluatioNTests` and `GraphTests` | Li Haoyi | 2017-10-26 | 3 | -10/+13 |
| | | | | | | - Added a non-trivial test graph to our test suite EvaluationTests have broken, need to fix | ||||
* | Fleshed out basic `groupAroundNamedTargets` logic | Li Haoyi | 2017-10-26 | 3 | -7/+61 |
| | |||||
* | Serialization using play-json now mostly in place | Li Haoyi | 2017-10-26 | 4 | -38/+106 |
| | | | | "pure" targets which depend only on their inputs are modeled but their evaluation semantics aren't fleshed out | ||||
* | Nest `TargetOps` inside `Target` | Li Haoyi | 2017-10-25 | 1 | -15/+16 |
| | |||||
* | Delete unused `Tarjans.main` method | Li Haoyi | 2017-10-25 | 1 | -11/+0 |
| | |||||
* | Macro-based anonymous `Target` naming now works: we use the `T{...}` macro ↵ | Li Haoyi | 2017-10-24 | 3 | -30/+68 |
| | | | | look at any `Target`s defined lexically within the call, and as long as they can only be evaluated once (relative to the `T{...}`) we assign them labels with an incrementing integer suffixed onto the enclosing `T{...}`s label | ||||
* | Swap over to new macro-based `DefCtx` injection, rather than relying on ↵ | Li Haoyi | 2017-10-22 | 3 | -28/+27 |
| | | | | | | | | `StaticContext` This should let us avoid the same `StaticContext` being re-used by multiple implicit use-sites within a block, causing confusion. `ForgeTests.evaluate.anonTriple` still doesn't pass for unrelated reasons | ||||
* | Move to caching based on label instead of Target object | Li Haoyi | 2017-10-22 | 1 | -3/+6 |
| | | | | `anonTriple` test currently fails, because both `AnonTriple.down` and `AnonTriple.down.inputs(0)` end up picking up the same label... | ||||
* | - Basic dirty-checking of targets works; targets can now request to be ↵ | Li Haoyi | 2017-10-22 | 3 | -42/+70 |
| | | | | | | | | | | recomputed independent of their inputs - Split out `Target` and `TargetOps`, so `Target` can be a pristine description of what a subclass needs to implement - Convert targets from `case class`es into normal `class`s, since none of the case class functionality is useful - Disable parallel execution in tests, since we don't really need it right now and it jumbles up incremental test reporting | ||||
* | Extract `topoSortedTransitiveTargets` into `Evaluator` companion object | Li Haoyi | 2017-10-22 | 1 | -26/+31 |
| | |||||
* | - `Target.Noop -> Target.Test` | Li Haoyi | 2017-10-22 | 1 | -3/+14 |
| | | | | | - `Target.Test`'s output now depends on its upstream targets, and is now configurable, so you can use it to test change propagations - Move `ForgeTests`'s targets inside the `Tests` block, since they're now mutable and so shouldn't remain global | ||||
* | Add simple unit tests for `topoSortedTransitiveTargets` | Li Haoyi | 2017-10-22 | 1 | -6/+4 |
| | |||||
* | Fix `Evaluator#prepareTransitiveTargets` | Li Haoyi | 2017-10-22 | 1 | -8/+7 |
| | |||||
* | Things compile again... | Li Haoyi | 2017-10-22 | 2 | -6/+9 |
| | |||||
* | rename hbt -> forge | Li Haoyi | 2017-10-22 | 9 | -71/+85 |
| | |||||
* | - Nest `StaticContext` into `DefCtx` | Li Haoyi | 2017-10-21 | 3 | -33/+39 |
| | | | | - Implement `Target.noop`, to let us construct target graphs without needing to create dummy implementations | ||||
* | Implement `DefCtx`, to bundle together `StaticContext` and ↵ | Li Haoyi | 2017-10-21 | 4 | -26/+33 |
| | | | | `sourcecode.Enclosing` | ||||
* | Add `StaticContext` macro to let us distinguish top-level targets from ↵ | Li Haoyi | 2017-10-21 | 1 | -0/+25 |
| | | | | dynamically generated targets | ||||
* | - Convert example workflow to `javac` since `scalac` is slow | Li Haoyi | 2017-10-19 | 4 | -42/+37 |
| | | | | | - Implement `Target.Subprocess`, and use it inside `compileAll` - Move `Main` workflow into `HbtTests`, to be run using uTest |