Comments (5)
Thanks for sharing your feedback. We have been experiencing similar performance issues as well although not quite as bad as what you are seeing.
A roughly 500 line *.brs
takes 12.06s on a similar Macbook pro.
The root cause seems to be mostly associated with the antlr JS runtime just being much slower than other platforms or possibly some optimizations we can make in the grammar
One option I plan on investigating is to compile the grammar for a C++ target and cross compile it to a wasm module as mentioned here
Any thoughts? @vannuysm
from wist.
I did the minimum to get emscripten solution parsing, but didn't incorporate the listeners for linting rules. It brought the time for my above test case down to 2s but seems there's a lot of work to expose the listeners across the C++/JS boundary. For now I'm going to focus on using wist in a CI environment exclusively, then perhaps later come back to helping improve this. I'll leave this issue open and let you both decide whether to track it or close.
from wist.
I did mostly the same thing here. My results were similar to yours with ~1.5s to parse a 1000 line*.brs
file. I'm currently in the process of writing a wrapper around the generated ANTLR AST so we can plugin the rules engine.
from wist.
So far we have some parts of wist ported over to use emscripten
. i've created a branch experimental/web-assembly-parser for this.
from wist.
Thanks for this effort
from wist.
Related Issues (20)
- Incorrect reporting of some errors HOT 2
- Trailing comma in array is mis-reported
- Unexpected error report when comments included in array with trailing comma
- Misreporting of invalid return type HOT 1
- LongInteger not detected as valid return type
- Parse error on inline array definitions
- Parse error on dim statements
- Parse error on anonymous function passed as function parameter
- A single Error cascades and triggers numerous alerts HOT 3
- wist source/*.brs doesn't work on Windows
- Best way to programmatically use wist HOT 1
- Parse error when using trailing comma on arrays HOT 3
- String has UTF-16 code units that do not fit in 8 bits HOT 1
- Ability to add exceptions to generic rules
- Add rule: avoid "?" shorthand for print HOT 1
- Add rule: use ";" to concatenate print strings HOT 1
- Add rule: Avoid declaring argument types HOT 1
- Add rule: no boolean type coersion HOT 1
- Add rule: limited "dot" chaining HOT 1
- Add rule: disallow setFocus() to be called inside init()
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wist.