Comments (12)
I can now run gradlew.bat test
with Flix head. I haven't tried through IntelliJ but I'd be hopeful it would work as it seems the memory residency problem is fixed - I'm not hearing my PC paging and I can use other programs will gradlew.bat test
runs in the background.
from flix.
@stephentetley I created a gradle.properties
in the project root with:
org.gradle.jvmargs=-Xmx4g -Xms128m
and I can run ./gradlew clean test
. Does that work for you?
(I should note that sometimes if you don't run clean indeed you might get strange errors.)
Another note: I believe GitHub runners only have 7GB of memory, so it should be possible.
Can you check and report back?
from flix.
Thanks Magnus, not a success I'm afraid.
I killed ./gradlew clean test
after 1 hour 17 minutes. Prior to new typer test all
would about 10-12 minutes on my PC.
I still saw the same sort of memory errors as per the trace posted to the discussion thread, I think after 20 to 30 minutes the JVM was just trying to service the memory problems and unable to evaluate any further tests.
from flix.
That's annoying. I will have to check whether my configuration is actually respecting gradle.properties.
Whats your OS and Java version? How much memory does the JVM use with/without the gradle.properties (according to the OS)?
I am also puzzled because the GitHub runners should only have 7GB memory and they seem to run fine.
The good news is that we will replace the Boolean unification stuff, which is very likely the culprint, with a better strategy in the near future (see #7542)
from flix.
Windows (and PowerShell though I can't see that would make a difference). Java 21.
I can try again on Ubuntu at the weekend although that didn't work within IntelliJ.
from flix.
I can confirm that the memory usage increases to about 9GB.
Not sure why Gradle is not respecting my limit :/
from flix.
As an experiment, in build.gradle
can you try to change the testAll
task to:
task testAll(dependsOn: ['testClasses'], type: JavaExec) {
mainClass = 'org.scalatest.tools.Runner'
args = ['-s', 'ca.uwaterloo.flix.TestAll', '-o']
jvmArgs = ['-Xmx4g']
classpath = sourceSets.test.runtimeClasspath
standardInput = System.in
}
This is dropping the -P
flag for parallel execution and enforcing a memory limit.
from flix.
On my my machine, when limited to 3G, the testAll still completes within a reasonable time.
from flix.
(Note to self: gradle.properties
is not used when running with type: JavaExec
).
from flix.
@stephentetley Hi Stephen. Did you have a chance to try without the -P
flag?
from flix.
Thanks Magnus, I forgot to try. I will look at it tomorrow evening.
from flix.
We have modified master so tests no longer run in parallel. (Only parallel within one Flix instance). That should make memory usage smaller and predictable.
We have also started tracking memory usage here: https://arewefast.flix.dev/
Let me know if it still does not work within IDEA.
from flix.
Related Issues (20)
- Parser: crash with doc comment HOT 1
- Parser: disallow whitespace in qualified names
- Parser: disallow multiline strings
- Parser: More doc comment confusion
- Unbound type variable
- Effect rules for channels
- `regex` escape sequence support
- LSP: Highlight provider should only return ranges within the given document
- Parser: crash with empty use group
- Add two new type constructors: `MethodReturnType` and `StaticMethodReturnType`
- Add `InvokeMethod2` to front-end ASTs HOT 7
- Reworking Indexing/Searching in LanguageServer
- Effect Aware Package Management
- Split `Ast.Input` into more cases
- Add permission support to `flix.toml` HOT 4
- Add support for `InvokeMethod2` to `Parser2` and `Weeder2` HOT 2
- Add type inference for `InvokeMethod2` HOT 1
- Add `InvokeConstructor2` and `InvokeStaticMethod2` to frontend HOT 5
- Extend Method Resolution HOT 1
- Compiler crash: Type error HOT 2
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 flix.