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 | 13 | -904/+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 | 1 | -2/+4 |
| | |||||
* | First pass at idiom-bracket macro works | Li Haoyi | 2017-11-01 | 1 | -11/+11 |
| | |||||
* | Metacircular building now works | Li Haoyi | 2017-10-31 | 1 | -6/+6 |
| | |||||
* | Trying to evaluate more of `MetacircularTests` no longer crashes, though ↵ | Li Haoyi | 2017-10-31 | 1 | -4/+5 |
| | | | | `compiled` still does... | ||||
* | first MetacircularTest (evaluating `scalaVersion`) passes. Subsequent tests ↵ | Li Haoyi | 2017-10-31 | 1 | -8/+11 |
| | | | | still fail due to NPE | ||||
* | Sketched out `MetacircularTests` using `scalaplugin.Subproject`; still ↵ | Li Haoyi | 2017-10-31 | 2 | -1/+41 |
| | | | | doesn't compile | ||||
* | Move formatter off of `Target[_]` and into `Discovered` | Li Haoyi | 2017-10-31 | 2 | -4/+4 |
| | |||||
* | Sketched out structure of Scala subprojects | Li Haoyi | 2017-10-31 | 4 | -9/+25 |
| | |||||
* | Got Zinc working on the test bench, compiling forge's own project | Li Haoyi | 2017-10-29 | 2 | -16/+100 |
| | |||||
* | First builds work going through an Ammonite script, currently run using `sbt ↵ | Li Haoyi | 2017-10-29 | 1 | -0/+66 |
| | | | | "~run src/test/examples/javac/build.sc` | ||||
* | Add some final output checks to javac integration test | Li Haoyi | 2017-10-29 | 2 | -4/+18 |
| | |||||
* | diagram out javac flow chart | Li Haoyi | 2017-10-29 | 1 | -0/+5 |
| | |||||
* | First set of `javac` integration tests all pass now, using folder-hashing ↵ | Li Haoyi | 2017-10-29 | 1 | -37/+46 |
| | | | | 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 | 5 | -43/+111 |
| | |||||
* | Move `Args` into the `util/` package | Li Haoyi | 2017-10-29 | 1 | -1/+1 |
| | |||||
* | Split up `Utils.scala` and move the pieces into the `utils/` package | Li Haoyi | 2017-10-29 | 4 | -0/+5 |
| | |||||
* | Finished migrating over to using `PathRef` to propagate changes to file ↵ | Li Haoyi | 2017-10-29 | 3 | -10/+16 |
| | | | | | | 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 | ||||
* | WIP | Li Haoyi | 2017-10-29 | 2 | -21/+17 |
| | | | | | - 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 | ||||
* | Add `bigSingleTerminal` to the `EvaluationTests` | Li Haoyi | 2017-10-29 | 1 | -4/+25 |
| | |||||
* | Swap over wholesale to ammonite.ops | Li Haoyi | 2017-10-29 | 2 | -19/+18 |
| | |||||
* | Swap over in-memory results cache to disk-based JSON metadata | Li Haoyi | 2017-10-29 | 1 | -4/+6 |
| | |||||
* | split out TestGraph from TestUtil | Li Haoyi | 2017-10-28 | 4 | -60/+75 |
| | |||||
* | Get rid of `DefCtx` for good. All tests passing entirely using the new ↵ | Li Haoyi | 2017-10-28 | 4 | -129/+71 |
| | | | | `Discovered` labeling mechanism | ||||
* | Implemented member-reflection-based naming, set to replace the old ↵ | Li Haoyi | 2017-10-28 | 3 | -34/+83 |
| | | | | `DefCtx`/`sourcecode.Enclosing` strategy | ||||
* | Move java-compile example supporting code into test suite | Li Haoyi | 2017-10-28 | 2 | -10/+59 |
| | |||||
* | Got grouped evaluation working | Li Haoyi | 2017-10-27 | 3 | -21/+15 |
| | |||||
* | Migrate everything which shouldn't have duplicates over to a new `OSet` data ↵ | Li Haoyi | 2017-10-27 | 3 | -64/+64 |
| | | | | structure | ||||
* | - Split out `ForgeTests` into `EvaluatioNTests` and `GraphTests` | Li Haoyi | 2017-10-26 | 4 | -309/+403 |
| | | | | | | - 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 | 1 | -3/+36 |
| | |||||
* | Serialization using play-json now mostly in place | Li Haoyi | 2017-10-26 | 1 | -7/+21 |
| | | | | "pure" targets which depend only on their inputs are modeled but their evaluation semantics aren't fleshed out | ||||
* | Flesh out `evaluate` tests for `diamond` and `anonDiamond` cases | Li Haoyi | 2017-10-25 | 1 | -26/+63 |
| | |||||
* | Macro-based anonymous `Target` naming now works: we use the `T{...}` macro ↵ | Li Haoyi | 2017-10-24 | 1 | -25/+118 |
| | | | | 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 | ||||
* | Add some basic `compileError` tests to make sure mis-using `T{}` doesn't compile | Li Haoyi | 2017-10-22 | 1 | -0/+5 |
| | |||||
* | Swap over to new macro-based `DefCtx` injection, rather than relying on ↵ | Li Haoyi | 2017-10-22 | 2 | -94/+59 |
| | | | | | | | | `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 | -5/+37 |
| | | | | `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 | 1 | -0/+28 |
| | | | | | | | | | | 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 | -1/+1 |
| | |||||
* | - `Target.Noop -> Target.Test` | Li Haoyi | 2017-10-22 | 1 | -24/+29 |
| | | | | | - `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 | -11/+22 |
| | |||||
* | Fix `Evaluator#prepareTransitiveTargets` | Li Haoyi | 2017-10-22 | 1 | -9/+9 |
| | |||||
* | update to utest 0.6.0, enable stacktrace highlighting | Li Haoyi | 2017-10-22 | 2 | -9/+17 |
| | |||||
* | Things compile again... | Li Haoyi | 2017-10-22 | 1 | -1/+5 |
| | |||||
* | rename hbt -> forge | Li Haoyi | 2017-10-22 | 5 | -20/+48 |
| | |||||
* | - Nest `StaticContext` into `DefCtx` | Li Haoyi | 2017-10-21 | 1 | -1/+1 |
| | | | | - Implement `Target.noop`, to let us construct target graphs without needing to create dummy implementations | ||||
* | Add `StaticContext` macro to let us distinguish top-level targets from ↵ | Li Haoyi | 2017-10-21 | 1 | -0/+36 |
| | | | | dynamically generated targets | ||||
* | - Convert example workflow to `javac` since `scalac` is slow | Li Haoyi | 2017-10-19 | 5 | -0/+36 |
| | | | | | - Implement `Target.Subprocess`, and use it inside `compileAll` - Move `Main` workflow into `HbtTests`, to be run using uTest | ||||
* | Include Tarjan's algorithm, for doing a topological sort which elegantly ↵ | Li Haoyi | 2017-10-17 | 1 | -0/+89 |
handles cycles |