Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* build-aux/release-check: Fix readonly variable issueMike Gerwitz2020-04-291-2/+2
|
* RELEASES.md: Update for v17.4.1Mike Gerwitz2020-04-291-2/+2
|
* Release notes and associated scriptsMike Gerwitz2020-04-294-0/+260
| | | | | | | | | This begins providing release notes for changes and provides scripts to facilitate this: - tools/mkrelease will update RELEASES.md and run some checks. - build-aux/release-check is intended for use in pipelines (e.g. see .gitlab-ci.yml) to verify that releases were done properly.
* TAMER: sym::Interner::index_lookupMike Gerwitz2020-04-293-21/+106
| | | | | | | | | This was originally omitted because there wasn't a use case for it. Now that we're adding context to errors, however, an owned value is highly desirable. This adds almost no measurable overhead to the internment system in benchmarks (largely within the margin of error).
* TAMER: Update Cargo dependenciesMike Gerwitz2020-04-292-60/+60
|
* TAMER: Finalize dependency graph constructionMike Gerwitz2020-04-2912-293/+1420
|\ | | | | | | There is more refactoring that can be done, but this extracts it out of POC.
| * [DEV-7084] TAMER: AsgBuilder and IR lowering docsMike Gerwitz2020-04-283-0/+74
| |
| * [DEV-7084] TAMER: obj::xmlo: Private inner modulesMike Gerwitz2020-04-283-4/+4
| |
| * [DEV-7084] TAMER: AsgBuilderState::new: New constructorMike Gerwitz2020-04-282-24/+21
| |
| * [DEV-7084] TAMER: Finalize AsgBuilderMike Gerwitz2020-04-281-14/+600
| |
| * [DEV-7084] TAMER: impl PartialEq for XmloErrorMike Gerwitz2020-04-281-5/+39
| | | | | | | | | | This cannot be dervied because XmlError does not implement PartialEq, which is quite the annoyance in tests.
| * [DEV-7084] TAMER: AsgBuilderError: Introduce proper error variantsMike Gerwitz2020-04-283-22/+89
| | | | | | | | | | | | | | | | | | This is a union (sum type) of three other errors types, plus errors specific to this builder. This commit does a good job demonstrating the boilerplate, as well as a need for additional context (in the case of `IdentKindError`), that we'll want to work on abstracting away.
| * [DEV-7084] TAMER: Correct Ix trait bound for AsgErrorMike Gerwitz2020-04-281-15/+7
| | | | | | | | | | | | | | | | | | | | | | | | The `Debug` bound is inconvenient and requires propagation to any types that use it. Further, it's really awkward having `Display` depend on `Debug`; if we want to render a useful display here, we can write one. To be clear: IndexType implements Debug. For now, this is pretty-printed by another part of the code, which we don't want to implement in `Display` because it requires looking things up from the graph.
| * [DEV-7084] TAMER: ir::asg::IdentKindError: Replace string with enumMike Gerwitz2020-04-282-12/+49
| |
| * [DEV-7084] TAMER: ir::asg::BaseAsg::new: New associated functionMike Gerwitz2020-04-282-43/+46
| | | | | | | | | | Profiling showed that creating an initial capacity of 0 did not have a notable affect on performance.
| * [DEV-7084] TAMER: xmlo::AsgBuilder: Accept XmloResult iteratorMike Gerwitz2020-04-283-20/+59
| | | | | | | | | | | | | | This flips the API from using XmloWriter as the context to using Asg and consuming anything that can produce XmloResults. This not only makes more sense, but avoids having to create a trait for XmloReader, and simplifies the trait bounds we have to concern ourselves with.
| * [DEV-7084] TAMER: Basic AsgBuilder cleanupMike Gerwitz2020-04-281-46/+31
| | | | | | | | | | | | | | This just tidies things up a little bit before I get into some further refactoring. I wrote the original code when I was just learning Rust not too long ago, so it's interesting to see how my understanding has changed over that relatively short period of time.
| * [DEV-7084] TAMER: Finish encapsulating petgraphMike Gerwitz2020-04-284-53/+28
| | | | | | | | | | This will allow us to migrate away from Petgraph in the future should we choose to do so.
| * [DEV-7084] TAMER: Simplify path canonicalizationMike Gerwitz2020-04-284-32/+81
| | | | | | | | | | | | | | This abstracts away the canonicalizer and solves the problem whereby canonicalization was not being performed prior to recording whether a path has been visited. This ensures that multiple relative paths to the same file will be properly recognized as visited.
| * [DEV-7084] TAMER: ld::poc: Remove unused fragments argMike Gerwitz2020-04-281-5/+2
| |
| * [DEV-7084] TAMER: ld::poc: Remove unnecessary initial path canonicalizationMike Gerwitz2020-04-281-3/+1
| | | | | | | | Less to refactor and test.
| * [DEV-7084] TAMER: AsgBuilderStateMike Gerwitz2020-04-283-65/+39
| | | | | | | | | | This completes the POC extraction for AsgBuilder, but is still POC code. The commits that follow will clean it up and provide tests.
| * [DEV-7084] TAMER: AsgBuilder extracted from POCMike Gerwitz2020-04-283-106/+200
| | | | | | | | | | This extracts the changes nearly verbatim before doing refactoring so that it's easier to observe what changes have been made.
| * [DEV-7084] TAMER: fs: impl File for BufReaderMike Gerwitz2020-04-282-4/+24
| | | | | | | | This further simplifies the POC linker.
| * [DEV-7084] TAMER: CanonicalFileMike Gerwitz2020-04-282-5/+26
| | | | | | | | | | | | This will be entirely replaced in an upcoming commit. See that for details. I don't feel like dealing with the conflicts for rearranging and squashing these commits.
| * [DEV-7084] TAMER: fs: Basic filesystem abstractionMike Gerwitz2020-04-283-15/+190
| | | | | | | | | | | | | | | | | | This also includes an implementation to visit paths only once. Note that it does not yet canonicalize the path before visiting, so relative paths to the same file can slip through, and relative paths to _different_ files could be erroneously considered to have been visited. This will be fixed in an upcoming commit.
| * [DEV-7084] TAMER: From<B, &I> for XmloReaderMike Gerwitz2020-04-202-1/+11
|/ | | | | | This serves as a constructor for the time being, decoupling from POC. We may do something better once we have a better idea of how the various abstractions around this will evolve.
* [DEV-7198] Replace macros with a templatesJoseph Frazer2020-04-174-118/+79
|\ | | | | | | | | | | | | | | Merge branch 'jira-7198' * jira-7198: [DEV-7198] Replace `rate-each` macro with a template [DEV-7198] Create a "yield" template
| * [DEV-7198] Replace `rate-each` macro with a templateJoseph Frazer2020-04-174-114/+65
| | | | | | | | | | | | | | | | Replacing the existing macros with templates will allow us to now have to deal with macros in the new compiler. The `indexNameType` pattern needed to change to allow for variables. I also had to remove the prefix for the `gentle-no` option of `rate`.
| * [DEV-7198] Create a "yield" templateJoseph Frazer2020-04-172-5/+15
|/ | | | | | Create a "yield" and add backwards compatibility for the macro of the same name. This is one of 2 macros that need to be replaced so we do not have to worry about them with the new compiler.
* [DEV-7147] Add "tamec" executableJoseph Frazer2020-04-103-1/+414
|\ | | | | | | | | | | | | | | Merge branch 'jira-7147' * jira-7147: [DEV-7147] Build "xmli" files using "tamec" [DEV-7147] Add "tamec" executable
| * [DEV-7147] Build "xmli" files using "tamec"Joseph Frazer2020-04-091-1/+1
| | | | | | | | | | Rather than copying the files, we want to start using "tamec" to make the "xmli" files, even if right now all it does is copy the file.
| * [DEV-7147] Add "tamec" executableJoseph Frazer2020-04-092-0/+413
|/ | | | | | Add a stub executable that will eventually become a full-featured TAME compiler. The first implementation will only copy the source file to an intermediary file that will be compiled by the XSLT compiler.
* [DEV-7136] Add xmli filesJoseph Frazer2020-04-082-1/+7
|\ | | | | | | | | | | | | Merge branch 'jira-7136' * jira-7136: [DEV-7136] Add xmli files
| * [DEV-7136] Add xmli filesJoseph Frazer2020-04-082-1/+7
|/ | | | | | | Add a new step to the build process that copies the `xml` file to an `xmli` file. Eventually, the new compiler will create the `xmli` file and the old compiler will convert it to an `amle` file during the transition.
* TAMER: Finalize object state transitionsMike Gerwitz2020-04-067-180/+1156
|\ | | | | | | | | In particular, this finalizes overrides and redeclarations. The linker should now be feature-complete.
| * [DEV-7086] TAMER: Remove WIP linker warningMike Gerwitz2020-04-062-3/+0
| | | | | | | | | | While it is true that this is still being finalized, the warnings originally existed because tameld was not feature complete. It is now.
| * [DEV-7086] TAMER: ir::asg::base::test Add missing set_fragment failure testMike Gerwitz2020-04-061-1/+39
| | | | | | | | Results the last remaining BaseAsg test TODO.
| * [DEV-7086] TAMER: ir::asg::TransitionError::BadFragmentDest tuple=>structMike Gerwitz2020-04-061-4/+4
| | | | | | | | Consistency.
| * [DEV-7086] TAMER: Disallow IdentObject::resolve redeclarationsMike Gerwitz2020-04-061-24/+63
| | | | | | | | Except under well-defined circumstances.
| * [DEV-7086] Proper handling of identifier overridesMike Gerwitz2020-04-062-107/+521
| | | | | | | | | | | | | | | | This is an awkward system that I'd like to remove at some point. It adds complexity. For the meantime, overrides have been arbitrarily restricted to a single override (no override-override). But it's needed being until we rework maps and can handle the illusion of overrides using the template system.
| * [DEV-7086] TAMER: TransitionError::Incompatible: Remove unusedMike Gerwitz2020-04-012-13/+10
| |
| * [DEV-7086] .gitignore (a.out, perf.data): IgnoreMike Gerwitz2020-03-311-0/+5
| |
| * [DEV-7086] TAMER: BaseAsg::set_fragment: Remove duplicate codeMike Gerwitz2020-03-311-29/+24
| | | | | | | | | | | | Benchmark performance for this method is still substantially slower. And oddly, this nearly doubled the speed of the other two calls (granted, at that speed, it doesn't matter).
| * [DEV-7086] ASG benchmarksMike Gerwitz2020-03-312-3/+494
|/
* TAMER: BaseAsg test: Remove fulfilled stub TODOMike Gerwitz2020-03-261-1/+0
|
* Proper extern resolutionMike Gerwitz2020-03-2611-201/+560
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | This properly checks identifier types when resolving externs. It also includes a bit of refactoring. Note that some of that refactoring was already merged into master. The old linker was missing some things, so there are template changes in here as well. An example of an error currently: error: extern `__retry` of type `cgen[boolean; 1]` is incompatible with type `cgen[boolean; 0]`
| * [DEV-7087] TAMER: Add Source to IdentObject::ExternMike Gerwitz2020-03-262-17/+42
| | | | | | | | | | | | | | | | All of these refactoring commits to arrive at this one final change: the ability to store the source location for externs so that we can report on what package is expecting an identifier to be defined. Phew. Goodnight.
| * [DEV-7087] TAMER: Object{State,Data}: API representative of state transitionsMike Gerwitz2020-03-263-92/+80
| | | | | | | | | | The API now enforces beginning at Missing and transitioning through states. Methods have been renamed to reflect this.
| * [DEV-7087] TAMER: BaseAsg: Refactor duplicate declare{,_extern} codeMike Gerwitz2020-03-261-34/+40
| |