Comments (3)
Yup! I'm aware of this. In the code that is on https://mindcode.herokuapp.com/, I had to disable the optimizer. I remove it in 1c6afb3. I'm in the process of writing a better optimizer pipeline, and it is nearly ready. I don't want the new optimizer to generate more bugs than the old one!
The 1000 instructions limit of Mindustry Logic is something I encountered a short while ago. I need to make some tests: is it 1000 or 1024 lines? I wouldn't be surprised if it was the latter (2**10). I still want to give a warning to the developer about the problem, so they know they need to split their logic into multiple, independent, processors.
I won't promise when the new optimizer pipeline will be on main / production, but it shouldn't be too long. Pretty sure it'll be there this weekend, at the latest.
Anyway, thanks for taking the time to report all those bugs and misfeatures. I really appreciate you doing this.
from mindcode.
Good evening @francois ,
I'm very glad, that it doesn't annoy you... ufff :-)
In Mindustry 126.2 (actually the lastest release) it just imports max. 1000 lines from the clipboard, I have tested it :-)
By the way, this limit is independent of the used Mindustry Processor ('Micro Processor', 'Logic Processor' or 'Hyper Processor')
It's great to hear you have an optimiser pipeline.
I'm just realising that it's quite tricky to test if the generated code is correct....
It's sad that the Mindustry logic doesn't have string functions, otherwise it might be an elegant idea to test the optimiser this way, by having the code generate strings for each test, which you can then quickly compare to the expected result:
expected result : abcdef
optimised result: abdefc
Maybe it is too simplistic...
from mindcode.
Your idea is sound, but the tests would have to be done manually, unfortunately. But still, it's something that could work. I'll have to think more about this.
1000 instructions... ouch. The script is 348 lines, unoptimized. When I run the same script through the optimization pipeline here, I can achieve a 60% reduction in the number of instructions; from 383 down to 235, or a nearly 40% reduction. The longer the script, and the more advanced features it uses, the more optimizations have a chance to kick in. Soon!
from mindcode.
Related Issues (20)
- Incorrect handling of chained assignments and ternary operators HOT 1
- If Expression optimization fails to preserve variable value
- Speed optimizations HOT 4
- Case expression as a function argument compiles incorrectly
- Compilation errors are not properly reported
- Bug: loop unrolling fails on degenerate loops
- Comments on last line produce syntax errors
- Containers HOT 1
- If and While conditions incorrectly evaluated
- Double quotes not allowed inside strings
- Parameters not passed to inline functions
- Schematics builder HOT 5
- PrintMerger merges across pritflush
- Properties cannot be invoked directly on function return values
- Mindcode compiled wrong when using semicolons
- how to break 1000 insts limit HOT 9
- Expressions containing variable assignments possibly not correctly evaluated
- Data Flow optimization crashes when source code contains unused user defined functions
- Data Flow optimization incorrectly handles exit points HOT 1
- Empty functions don't compile
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 mindcode.