summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Got Zinc working on the test bench, compiling forge's own projectLi Haoyi2017-10-295-122/+102
|
* First builds work going through an Ammonite script, currently run using `sbt ↵Li Haoyi2017-10-294-0/+94
| | | | "~run src/test/examples/javac/build.sc`
* Bump versionsLi Haoyi2017-10-292-2/+9
|
* Add some final output checks to javac integration testLi Haoyi2017-10-292-4/+18
|
* diagram out javac flow chartLi Haoyi2017-10-291-0/+5
|
* First set of `javac` integration tests all pass now, using folder-hashing ↵Li Haoyi2017-10-294-48/+88
| | | | 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 Haoyi2017-10-296-43/+116
|
* Move `Args` into the `util/` packageLi Haoyi2017-10-294-5/+4
|
* Split up `Utils.scala` and move the pieces into the `utils/` packageLi Haoyi2017-10-2910-167/+178
|
* Make `OSet` use `LinkedHashSet` instead of a parallel `Vector`Li Haoyi2017-10-291-7/+9
|
* Finished migrating over to using `PathRef` to propagate changes to file ↵Li Haoyi2017-10-297-52/+71
| | | | | | 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 againLi Haoyi2017-10-291-5/+17
|
* WIPLi Haoyi2017-10-296-65/+105
| | | | | - 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 Haoyi2017-10-292-8/+8
|
* Add `bigSingleTerminal` to the `EvaluationTests`Li Haoyi2017-10-291-4/+25
|
* Swap over wholesale to ammonite.opsLi Haoyi2017-10-296-64/+41
|
* Swap over in-memory results cache to disk-based JSON metadataLi Haoyi2017-10-294-23/+43
|
* split out TestGraph from TestUtilLi Haoyi2017-10-284-60/+75
|
* CleanupLi Haoyi2017-10-282-8/+0
|
* Break up `Evaluator#evaluateGroup` into a few smaller methodsLi Haoyi2017-10-281-46/+57
|
* Get rid of `DefCtx` for good. All tests passing entirely using the new ↵Li Haoyi2017-10-287-244/+99
| | | | `Discovered` labeling mechanism
* Implemented member-reflection-based naming, set to replace the old ↵Li Haoyi2017-10-284-34/+126
| | | | `DefCtx`/`sourcecode.Enclosing` strategy
* Move java-compile example supporting code into test suiteLi Haoyi2017-10-284-72/+59
|
* Got grouped evaluation workingLi Haoyi2017-10-275-36/+29
|
* Migrate everything which shouldn't have duplicates over to a new `OSet` data ↵Li Haoyi2017-10-275-111/+229
| | | | structure
* - Split out `ForgeTests` into `EvaluatioNTests` and `GraphTests`Li Haoyi2017-10-267-319/+416
| | | | | | - Added a non-trivial test graph to our test suite EvaluationTests have broken, need to fix
* Fleshed out basic `groupAroundNamedTargets` logicLi Haoyi2017-10-264-10/+97
|
* Serialization using play-json now mostly in placeLi Haoyi2017-10-266-46/+129
| | | | "pure" targets which depend only on their inputs are modeled but their evaluation semantics aren't fleshed out
* Nest `TargetOps` inside `Target`Li Haoyi2017-10-251-15/+16
|
* Delete unused `Tarjans.main` methodLi Haoyi2017-10-251-11/+0
|
* Flesh out `evaluate` tests for `diamond` and `anonDiamond` casesLi Haoyi2017-10-251-26/+63
|
* Macro-based anonymous `Target` naming now works: we use the `T{...}` macro ↵Li Haoyi2017-10-244-55/+186
| | | | 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 compileLi Haoyi2017-10-221-0/+5
|
* Swap over to new macro-based `DefCtx` injection, rather than relying on ↵Li Haoyi2017-10-225-122/+86
| | | | | | | | `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 objectLi Haoyi2017-10-222-8/+43
| | | | `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 Haoyi2017-10-225-42/+100
| | | | | | | | | | 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 objectLi Haoyi2017-10-222-27/+32
|
* - `Target.Noop -> Target.Test`Li Haoyi2017-10-222-27/+43
| | | | | - `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 Haoyi2017-10-222-17/+26
|
* Fix `Evaluator#prepareTransitiveTargets`Li Haoyi2017-10-222-17/+16
|
* update to utest 0.6.0, enable stacktrace highlightingLi Haoyi2017-10-223-11/+19
|
* Things compile again...Li Haoyi2017-10-223-7/+14
|
* rename hbt -> forgeLi Haoyi2017-10-2215-94/+136
|
* - Nest `StaticContext` into `DefCtx`Li Haoyi2017-10-214-34/+40
| | | | - Implement `Target.noop`, to let us construct target graphs without needing to create dummy implementations
* Implement `DefCtx`, to bundle together `StaticContext` and ↵Li Haoyi2017-10-214-26/+33
| | | | `sourcecode.Enclosing`
* Add `StaticContext` macro to let us distinguish top-level targets from ↵Li Haoyi2017-10-213-0/+63
| | | | dynamically generated targets
* - Convert example workflow to `javac` since `scalac` is slowLi Haoyi2017-10-1912-54/+74
| | | | | - Implement `Target.Subprocess`, and use it inside `compileAll` - Move `Main` workflow into `HbtTests`, to be run using uTest
* - Add a configurable workspace to `evaluateTargetGraph`Li Haoyi2017-10-185-120/+136
| | | | - Break up `Hbt.scala` into `Args.scala` `Target.scala` and `Evaluator.scala`
* Basic evaluator that creates classfiles and a jar now worksLi Haoyi2017-10-187-51/+92
|
* Break up `Main.scala`Li Haoyi2017-10-173-137/+159
|