Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

Annotations as Options Replacement, Immutable Option Parsing #765

Closed
wants to merge 77 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
dc8132f
Immutably parse arguments via options-as-annos
seldridge Mar 19, 2018
394ee8c
Demonstrate Annotation providing Arg Parsing
seldridge Mar 27, 2018
542adeb
Generate ProvidesOptions Argument Parsing
seldridge Mar 27, 2018
311c5cb
Make ProvidesOptions a Transform trait
seldridge Mar 28, 2018
d146364
Fork sbt when running tests to avoid memory errors
seldridge Mar 28, 2018
faad2ac
Further mutable argument parsing improvements
seldridge Mar 28, 2018
f8b7c22
Use OptionParser[AnnotationSeq] for arg parsing
seldridge Apr 2, 2018
566193e
Simplify RunFirrtlTransformAnnotation parsing
seldridge Apr 2, 2018
2f36588
More in-transform parsing, cleanup help text, exit
seldridge Apr 2, 2018
128be7c
Remove ClassFinder-based argument provisioning
seldridge Apr 9, 2018
356d0fa
Add copy constructor, split out HasFirrtlOptions
seldridge Apr 9, 2018
8f4a547
Make default option parsing single-pass
seldridge Apr 9, 2018
762721d
Cleanup HasFirrtlOption annotation preprocessing
seldridge Apr 9, 2018
9797f22
Use application name when deleting FirrtlOptions
seldridge Apr 9, 2018
d23b486
Remove unneeded `case`
seldridge Apr 9, 2018
90cd499
Remove ExecutionOptionsManager copy method
seldridge Apr 10, 2018
56a609f
Add checks for duplicate long and short options
seldridge Apr 11, 2018
7feca6d
Driver Cleanup
seldridge Apr 11, 2018
cda54d2
Update documentation
seldridge Apr 11, 2018
c9e42ef
Add Driver.execute(args: String)
seldridge Apr 11, 2018
bcf7c2e
Update Driver documentation
seldridge Apr 11, 2018
c4af1e1
Cleanup
seldridge Apr 12, 2018
4508e7f
Cleanup options manager tests, check for bad opts
seldridge Apr 12, 2018
7d177f5
Remove duplicate FirrtlOptions check
seldridge Apr 12, 2018
923458d
Deprecate ExecutionOptions methods in FirrtlOptions
seldridge Apr 12, 2018
98a8606
Revert FirrtlOptions -> FirrtlExecutionOptions
seldridge Apr 12, 2018
029001e
Documentation for FirrtlExecutionOptions
seldridge Apr 13, 2018
0e4e40f
Scalastyle fixes
seldridge Apr 13, 2018
9609ee4
Define an explicit `AugmentedOptionParser`
seldridge Apr 13, 2018
8bdef13
s/HasFirrtlOptions/HasFirrtlExecutionOptions/
seldridge Apr 13, 2018
46fd4a2
Reorganize ExecutionUtils in FirrtlExecutionUtils
seldridge Apr 13, 2018
12e19c0
Documentation Updates
seldridge Apr 13, 2018
e5f590a
Fix deprecation version numbers (1.2.0 vs. 3.2.0)
seldridge Apr 13, 2018
80e8d72
Re-add test forking
seldridge Apr 13, 2018
d6a10a4
Move argument checking to annotation checking
seldridge Apr 13, 2018
efb2b30
Add test where an annotation file provides options
seldridge Apr 13, 2018
4652e4d
Fix incorrect scaladoc cross reference
seldridge Apr 13, 2018
1e47d6d
Partial options cleanup after feedback
seldridge Apr 27, 2018
4c855f4
Minor emitter code simplification
seldridge Apr 27, 2018
f2f0990
Make emitter only consume its own annotations
seldridge Apr 27, 2018
c8c77ec
Make option validation check annotations only
seldridge Apr 27, 2018
8fe3578
Remove Driver.execute(args: String)
seldridge May 1, 2018
aea2a8c
Switch to TypeClass/view pattern
seldridge Jun 12, 2018
0ac0479
Enable multiple views to be imported
seldridge Jun 12, 2018
b120511
Deal with merge conflicts from rebase
seldridge Jun 12, 2018
f0f42e5
Merge remote-tracking branch 'freechipsproject/master' into issue-764
seldridge Jun 12, 2018
6c4e0cc
Remove MoreOptions trait
seldridge Jun 12, 2018
7a6f4b6
Merge remote-tracking branch 'freechipsproject/master' into issue-764
seldridge Jun 14, 2018
0127cfe
Remove test forking
seldridge Jun 14, 2018
2d7c82f
Simplify ProvidesOptions.provideOptions method
seldridge Jun 14, 2018
620e5bc
Hard error if info mode or compiler name are bad
seldridge Jun 14, 2018
64b57c3
Move common options things into firrtl.options
seldridge Jun 14, 2018
66ed16a
Merge remote-tracking branch 'freechipsproject/master' into issue-764
seldridge Jun 15, 2018
a1b39fc
Seal FirrtlOption trait
seldridge Jun 15, 2018
a79c999
Example making FirrtlOption abstract w/ addOptions
seldridge Jun 15, 2018
2d67ab3
Move all option parsing logic into each Annotation
seldridge Jun 15, 2018
2eae15a
Remove Option kludge in annotations
seldridge Jun 15, 2018
3998ae3
Use traits instead of AugmentedOptionParser
seldridge Jun 19, 2018
cf538ad
Remove unneeded Driver.getCircuit safety checks
seldridge Jun 19, 2018
3211fb9
Simplify early topName determination, use circuit
seldridge Jun 19, 2018
f8d1c14
Merge remote-tracking branch 'freechipsproject/master' into issue-764
seldridge Jun 19, 2018
947973b
Remove vestigial string argument for --infer-rw
seldridge Jun 20, 2018
cf8068e
Merge 'freechipsproject/master' into issue-764
seldridge Jul 13, 2018
38eab42
Add example library/transform option registration
seldridge Jul 12, 2018
18ea504
Redefine ExecutionOptionsManager as a Parser
seldridge Jul 13, 2018
a91263c
Use explicit annotations for OptionsView.view
seldridge Jul 13, 2018
ec88d78
Simplify options.OptionParser types
seldridge Jul 13, 2018
dc45f93
Add abstract options.Driver, use for Driver
seldridge Jul 13, 2018
d7a29d8
Cleanup ordering, parentheses
seldridge Jul 16, 2018
8be4b40
Add circuit anno to view[FirrtlExecutionOptions]
seldridge Jul 16, 2018
e4de0c9
Remove stringly typed FIRRTL transform anno param
seldridge Jul 16, 2018
6b0a77c
No default arguments for options.Driver.execute
seldridge Jul 17, 2018
c755ae9
Use AnnotationSeq instead of Seq[Annotation]
seldridge Jul 17, 2018
1252fea
Merge remote-tracking branch 'freechipsproject/master' into issue-764
seldridge Aug 20, 2018
35e2b29
Fix bug in BlackBoxTargetDirAnno generation
seldridge Aug 20, 2018
a8f7eaa
Fix error message on long option duplicates
seldridge Aug 20, 2018
70cde11
Adds helper trait for Unserializable Annotations
seldridge Aug 21, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"

libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.13.4" % "test"

libraryDependencies += "com.github.scopt" %% "scopt" % "3.6.0"
libraryDependencies += "com.github.scopt" %% "scopt" % "3.7.0"

libraryDependencies += "net.jcazevedo" %% "moultingyaml" % "0.4.0"

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
firrtl.passes.memlib.MemLibOptions
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
firrtl.transforms.DeadCodeElimination
firrtl.transforms.CheckCombLoops
firrtl.passes.InlineInstances
firrtl.passes.clocklist.ClockListTransform
4 changes: 2 additions & 2 deletions src/main/scala/firrtl/Compiler.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import logger._
import java.io.Writer
import annotations._
import scala.collection.mutable
import scopt.OptionParser

import firrtl.annotations._ // Note that wildcard imports are not great....
import firrtl.ir.Circuit
Expand Down Expand Up @@ -451,7 +452,7 @@ trait Compiler extends LazyLogging {
*/
def compileAndEmit(state: CircuitState,
customTransforms: Seq[Transform] = Seq.empty): CircuitState = {
val emitAnno = EmitCircuitAnnotation(emitter.getClass)
val emitAnno = EmitterAnnotation(emitter.getClass)
compile(state.copy(annotations = emitAnno +: state.annotations), customTransforms)
}

Expand All @@ -477,4 +478,3 @@ trait Compiler extends LazyLogging {
}

}

Loading