Skip to content

Errors building project, and question about use case #2

@mdittmer

Description

@mdittmer

Greeting! I see that this project isn't currently under active development, but I have a couple questions I am hoping you might have time to answer.

Question 1: How can I get this to build

I tried building using cargo build and found that some File::with_options() needed to be replaced with OpenOptions::new(); that was straightforward. Then I found a series of errors related to (probably just out-of-date?) webpack, thread 'main' panicked at 'build artifact libjssatrt.adoes not exist at/path/to/jssat/target/debug/libjssatrt.a`, and one big one roughly of the form:

error: failed to run custom build command for `jssat_frontend_js v0.1.0 (/usr/local/google/Projects/jssat/jssat_frontend_js)`

Caused by:
  process didn't exit successfully: `/usr/local/google/Projects/jssat/target/debug/build/jssat_frontend_js-5088213abf4c0837/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-changed=./src/ecmascript/ECMA262Methods.lisp
  cargo:rerun-if-changed=./src/ast/parse_nodes.json
  debuggy:::
  Production {
[[lots-of-ast]]
  }

Suffice it to say that, if you have the time to do the minimal effort to get things building "out of the box", that would be great. For context, I have:

cargo --version
cargo 1.64.0-nightly (d8d30a753 2022-07-19)

Question 2: Does this project have solid source maps and language feature coverage for ECMAScript?

For my own purposes, I am hoping to use the simplified (JSSAT IR + Lifting BBs) IR to perform code analysis on "modern JavaScript" (which has a constantly changing definition, as I am sure you are aware). For reference, I am trying to improve on the following set up:

  1. Use SWC to compile "modern JavaScript" down to ECMAScript3 (with sourcemaps);
  2. Use TAJS to generate flowgraphs from ECMAScript3 code;
  3. Perform analysis on flowgraph nodes as an IR.

I am interested in cutting out the compile-down-to-ECMAScript3 part, but I need a simple IR that supports newer JavaScript to make the leap to a different IR.

Once I can get it building, would you say that JSSAT is in good enough shape to try programming against its IR in this context?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions