summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Split up forge into `scalaplugin` an `core` subprojects, to allow us to use ↵Li Haoyi2017-11-0325-1833/+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 Haoyi2017-11-023-32/+35
|
* First pass at idiom-bracket macro worksLi Haoyi2017-11-014-120/+52
|
* Metacircular building now worksLi Haoyi2017-10-313-17/+25
|
* Trying to evaluate more of `MetacircularTests` no longer crashes, though ↵Li Haoyi2017-10-312-5/+36
| | | | `compiled` still does...
* first MetacircularTest (evaluating `scalaVersion`) passes. Subsequent tests ↵Li Haoyi2017-10-314-11/+14
| | | | still fail due to NPE
* Sketched out `MetacircularTests` using `scalaplugin.Subproject`; still ↵Li Haoyi2017-10-315-31/+90
| | | | doesn't compile
* Flesh out implementation of `forge.scalaplugin.Subproject`Li Haoyi2017-10-312-10/+126
|
* Move formatter off of `Target[_]` and into `Discovered`Li Haoyi2017-10-318-38/+64
|
* Sketched out structure of Scala subprojectsLi Haoyi2017-10-318-33/+175
|
* Got Zinc working on the test bench, compiling forge's own projectLi Haoyi2017-10-294-91/+100
|
* First builds work going through an Ammonite script, currently run using `sbt ↵Li Haoyi2017-10-292-0/+84
| | | | "~run src/test/examples/javac/build.sc`
* Bump versionsLi Haoyi2017-10-291-0/+7
|
* 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-265-45/+127
| | | | "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-224-42/+98
| | | | | | | | | | 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
|