Commit Graph

1781 Commits (main)

Author SHA1 Message Date
Mike Gerwitz 1fe35cd354 Add list2typedef and map hash support 2018-05-29 15:54:59 -04:00
Mike Gerwitz eef3eb85ea map: Uppercase and hash transformers
This includes a SHA256 implementation which is _not_ intended for secure
cryptographic operations; see src/js/sha256.js header for more information.

* src/current/compiler/js.xsl (compiler:static): Echo src/js/sha256.js.
  [map_method_uppercase, map_method_hash]: New functions.
* src/current/link.xsl: Include dslc-base.xsl.
* src/js/sha256.js: New file.
2018-05-29 11:16:59 -04:00
Mike Gerwitz 3f7e1fc9b8 map: Add transformation support
* src/current/compiler/map.xsl
  (lvmc:get-method-func, lvmc:value-ref, lvmc:transformation-wrap): New
    functions, partyl extracted from below.
  (lvmc:compile)[lvm:map//lvm:from]: Use `lvmc:value-ref'.
    [lvm:map//lvm:from/lvm:translate]: Add `[@key]' to match.
    [lvm:map//lvm:transform]: New match.  Ignore node entirely.
  (lvmc:concat-compile): Propagate symtable to `lvmc:compile'.
2018-05-29 10:53:48 -04:00
Mike Gerwitz 2a9196d940 Add __path-root param
* src/current/include/dslc-base.xsl (__path-root): New param.
* src/current/src/com/lovullo/dslc/DslCompiler.java
  (DslCompiler)[compile]: Resolve TAME root path.
    [_transform]: Set it.

DEV-3115
2018-05-29 10:50:53 -04:00
Mike Gerwitz fafbf3921e list2typedef: Remove trailing newline from preimage
Oops---we do not want a newline as part of the preimage, which is what
`<<<' does.

* build-aux/list2typedef (output-item)[value]: Remove newline from preimage.
* build-aux/test/test-list2typedef (test-typedef-gen): Update hashes.
  (test-collision-value-check): Add new collisions.
2018-05-15 16:47:21 -04:00
Mike Gerwitz e3b0baec1a Cut down on namespace exports for object files
This should cut down on the file sizes a bit.
2018-05-15 13:03:38 -04:00
Greg Torbenson f2e3cdf5f7 Modify valparse to recurse into the RHS. 2018-05-09 12:07:57 -04:00
Mike Gerwitz e764141b71 Add typelist support 2018-05-07 16:22:29 -04:00
Mike Gerwitz 5cce3a6eeb [DEV-3115] gen-make: Account for typelist
This needs to be generalized, but will do for now.

* build-aux/gen-make: Recognize typelists as dependencies.  Always include
  source XML file as a dependency.
2018-05-07 16:22:18 -04:00
Mike Gerwitz 34844a650a [DEV-3115] build-aux/list2typedef: New script
* build-aux/list2typedef: New script.
* build-aux/list2typedef/test/test-list2typedef: Respective test.
2018-05-07 13:57:50 -04:00
Mike Gerwitz c271ee696e build-aux/gen-make: Recurse without dir change
Before this change, it was impossible for the initial paths provided to the
script to be more than one level deep (relative to the cwd).

* build-aux/gen-make: Handle multi-level children.
2018-05-04 11:41:54 -04:00
Mike Gerwitz 70f9e9c277 Move {src/current/tools=>build-aux}/* 2018-05-04 11:17:47 -04:00
Mike Gerwitz 612587c63f Map support for set/from to generate arbitrary vectors 2018-04-16 11:20:46 -04:00
Mike Gerwitz 4554013356 map: Support @index on all lvm:from
* src/current/compiler/map.xsl (lvmc:compile)[lvm:map//lvm:from[*]]: Output
    index if @index is set.
2018-04-16 11:11:21 -04:00
Mike Gerwitz ba1faa74da map: Support `from' within `set'
This was just a matter of proxying `type'.

* src/current/compiler/map.xsl (lvmc:compile): Proxy `type' param.
2018-04-16 11:11:19 -04:00
Mike Gerwitz 6a45b2c95a map: Tunnel symtable
Simplifies coming changes.

* src/current/compiler/map.xsl: Tunnel all `symtable' params.
2018-04-11 14:28:11 -04:00
Mike Gerwitz 2c29c295fe progtest: ConsoleTestReporter: Correct number of inds on first line 2018-04-10 15:56:50 -04:00
Mike Gerwitz 42d192af79 progtest: Exit with non-zero status on test failure
Not a very useful test runner if it doesn't ever fail, now is it?

* Makefile.am (check): Invoke new test/runner-test.  Depend on modindex.
* bin/runner.js: Exit with non-zero status on assertion failure.
* test/_stub: Add stub program with good and bad test cases to test
    exit code.
* test/runner-test: Add system test.
2018-04-10 15:56:38 -04:00
Mike Gerwitz 8a17d0c6c5 c1map: Add lvm:when
This allows for conditional nodes where lvm:if is not appropriate or cannot be
used.
2018-04-06 15:03:32 -04:00
Mike Gerwitz 6d0f4fd458 c1map: Prevent iteration on conditionals
This does not work at all.
2018-04-06 14:56:35 -04:00
Mike Gerwitz 986b2a7b4b map: Provide useful warnings when missing import/@path
This is all really confusing because this doesn't use the same import
specification as packages; maps got stuck in a partial transition.  So,
let's provide some helpful errors rather than silently failing.

* src/current/compiler/map.xsl (preproc:symtable)[lvm:import]:
    Error if missing `@path'.  Provide more information if `@package' was
    provided to help clarify.
2018-04-05 15:53:54 -04:00
Mike Gerwitz c15ed8a2cd Add class, param, const, rate to param-value/@identifier
* src/current/include/preproc/template.xsl
  (preproc:gen-param-value-style)[lv:param-value[@identifier]]: Add support
  for class, param, const, rate styling.
2018-04-02 12:40:50 -04:00
Mike Gerwitz 189751d5cc Mark generated symbols as local
We need to cut down on symbol imports as much as possible; the whole system
starts dragging if we are importing thousands of symbols into a single
package.

* src/current/include/preproc/symtable.xsl (preproc:symtable)[lv:rate,c:*]: Mark
  as local if `@preproc:generated`.
* src/current/include/preproc/template.xsl (preproc:macros)[lv:inline-template]:
  Mark generated templates as such.
* src/symtable/symbols.xsl (preproc:symtable)[lv:template]: Mark as local if
  `@preproc:generated'.
2018-03-28 14:22:57 -04:00
Mike Gerwitz 852c42e340 symtable: Detect duplicate symbols in the same package
* src/symtable.xsl (symtable:find-duplicates):
  Update description.  Find duplicates in same package.
* test/symtable.xspec: Update test case accordingly.
2018-03-28 10:30:15 -04:00
Mike Gerwitz d284d75f39 js compiler: Prevent octals in generated code
* src/current/compiler/js.xsl (compiler:js-number): New function to
    remove leading zeroes.
  (compile)[lv:const]: Use it.
* src/current/compiler/js-calc.xsl (compile-calc)[c:const]: Use it.
2018-03-28 10:30:12 -04:00
Shelly Shaver 67d0cd69ec c1map: Add lvm:if/@eq 2018-03-21 14:46:10 -04:00
Mike Gerwitz a3fcaa8737 rate-each: Gentle @no
* src/current/compiler/js.xsl (compile-class-condtion)[lv:rate]: Do not
  consider @no's in predicate generation when `@preproc:gentle-no' is set.
* src/current/include/preproc/macros.xsl (preproc:macros)[lv:rate-each]: Set
  `@preproc:gentle-no' on generated `lv:rate', since the generator handles
  `@no' itself.
2018-03-19 15:23:41 -04:00
Mike Gerwitz 2960f2d0b3 linker, summary: Reduce runlog output 2018-03-19 15:08:17 -04:00
Mike Gerwitz 5b5055db6d preproc/template: Add param-sym-value/@ignore-missing
* src/current/include/preproc/template.xsl
  (preproc:gen-param-value)[lv:param-sym-value]: Suppress warning for
  missing symbol and yield empty string if `@ignore-missing='true'`.
2018-03-16 16:24:06 -04:00
Mike Gerwitz afc1a2038a progtest: Suppress terminating classifications during const run
Terminating classifications will occur any time there is actual data
validation, since we're passing no data at all.

* progtest/src/env.js (common): Pass argument to program#rater to suppress
  terminating classifications.
2018-03-06 14:16:32 -05:00
Mike Gerwitz 0d169ea9eb progtest: Return empty array of test cases if none provided
* progtest/src/reader/YamlTestReader.js (loadCases): Handle absence of any
  test cases.
* progtest/test/reader/YamlTestReaderTest.js: New respective test.
2018-03-06 11:41:21 -05:00
Mike Gerwitz 0cb43d5e8a progtest: Do not run tests async on console
Performance hit is too great; automated tests need to be _fast_!

* src/AsyncTestRunner.js: New TestRunner subtype.
* src/TestRunner.js (_runAsync): Rename to virtual protected
  `runAllTests'; this method is overridden by aforementioned subtype.
* src/env.js: Use it.
2018-03-05 16:24:53 -05:00
Mike Gerwitz 6cefab5344 progtest: Output trailing newline after summary line
* src/reporter/ConsoleTestReporter.js (createSummaryLine): Output trailing
  newline.
* test/reporter/ConsoleTestReporterTest.js: Modify respective test.
2018-03-05 15:59:34 -05:00
Mike Gerwitz 06435f9f17 progtest: Add runner script
* .gitignore: Ignore new generated files (Autoconf, Automake, output).
* Makefile: Rename to `Makefile.am', dynamically expand
  `--harmony-destructuring'.
* autogen.sh: New script.
* bin/runner.in: New runner script.
* bin/runner.js: Resolve program path relative to CWD.
* configure.ac: New configure script.
2018-03-05 15:57:38 -05:00
Mike Gerwitz abca20b02d depgen: Include enum constants as typedef dependencies
This ensures that they are compiled into the `consts' object.

* src/current/include/depgen.xsl (preproc:depgen)[lv:typedef]: Include
  `lv:enum/lv:item/@name' as dependencies.
2018-02-28 15:29:49 -05:00
Mike Gerwitz b70cbb9eae standlone: Correct consts reference for worksheet
This was broken in 0c020b7.

* src/current/standalone.xsl (/): {rater_results=>rater}.consts.
2018-02-26 10:39:03 -05:00
Mike Gerwitz 5b256e0268 symtable: Do not mark symbols with generated yields as generated
The problem with this implementation was that, any time a generator had an
associated generated @yields (which is common), it wouldn't be included in
the summary page.

We can address this in the future.  It's not necessarily that it was
incorrect; it's just how the system made use of it.

* src/current/include/preproc/symtable.xsl (preproc:symtable)[lv:rate]:
  Do not mark @preproc:yields-generated symbols as @preproc:generated.
2018-02-26 10:31:04 -05:00
Mike Gerwitz d8cbee12b2 validtor: Remove unresolved extern warning
See diff comment.

* src/current/compiler/validate.xsl (lvv:validate)[c:*[@name or @of]]:
  Remove unresolved extern warning.
2018-02-26 10:30:42 -05:00
Mike Gerwitz 2f7ad95a2c TestRunner: Recognize error as failure 2018-02-23 15:45:54 -05:00
Mike Gerwitz 7475b5b928 progtest/README.md: Basic test case format documentation 2018-02-23 14:30:02 -05:00
Mike Gerwitz 6b7e75c886 entry-form: Integrate YAML test case console output as HTML 2018-02-23 14:20:16 -05:00
Mike Gerwitz 1a51259a76 HtmlConsoleOutput: Add HTML-styled console output 2018-02-23 14:20:10 -05:00
Mike Gerwitz 5aa29216f4 Makefile: run modindex first 2018-02-23 13:45:38 -05:00
Mike Gerwitz 3bf15ebcc1 depgen: Ignore template bodies
Templates can expand into unexpected places, so sometimes warnings are
inappropriately issued.

* src/current/include/depgen.xsl (preproc:depgen)[lv:template]: Ignore.
  [lv:template/lv:param]: Remove (now unnecessary with above).
2018-02-23 13:45:07 -05:00
Mike Gerwitz 6487282f55 progtest: add dist target 2018-02-23 12:28:03 -05:00
Mike Gerwitz b490d07371 Makefile.am: Prevent doc from being built by default 2018-02-23 12:24:14 -05:00
Mike Gerwitz d1aa5f5704 progtest/Makefile: Build tame-progtest.js as default target 2018-02-23 10:40:00 -05:00
Mike Gerwitz 76795d1c89 progtest/package.json (devDependencies): Add mocha and chai 2018-02-23 10:34:38 -05:00
Mike Gerwitz fcc5c087fd progtest/package.json: Correct browserify version 2018-02-23 10:31:51 -05:00
Mike Gerwitz 3384c95bc9 Revert "program map: Use expanded (preprocessed) program"
This map is used for more than the program.xml!

This reverts commit c64e8363fd.
2018-02-22 16:42:26 -05:00