-
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
release Chapel track #86
base: main
Are you sure you want to change the base?
Conversation
@ErikSchierboom this is finally happening (only one year delay 😅 ). The PR is in draft because I would first like to double-check with you everything is good and in place. A few notes
|
@lucaferranti Things look good so far. My only concern is that the test runner is quite slow. Running the tests took about 17 seconds for Hello World, which is just shy of our 20 second cutoff. With infrastructure perf varying, this likely means that student will see timeouts when using the online editor. Is there anything to be done to speedup things in the test runner? Maybe like pre-compiling things or something (which some tracks' test runners benefit a lot from)? I'm not sure if I had already suggested it, but if not, I would suggest to open a topic on the forum to ask if people want to help test the track. |
@ErikSchierboom thanks! I can try to take a look at the test runner to see if there's some optimization capability, but in general Chapel compilation overhead can be quite noticeable and I think most of the overhead comes from compiling the solution file. Given the exercises relatively limited complexity, I would not expect a huge difference in compilation between e.g. I'll do some benchmarks and give it a thought if I can find some optimization opportunities, but I would not bet on this, any chance we can bump the cutoff from 20 sec to e.g. 30? Thanks for the tip about the forum! I was also thinking to recruit some beta-testers (and maybe mentors volunteers) from the Chapel team itself |
Not really, this is an Exercism-wide cutoff.
|
yeah e.g. I tried submitting |
ok good news, it might be I was wrong and we can do something
on my laptop (64GB RAM and gen 12 intel i7, which is prob more powerful than exercism runner, granted)
If it's the second one, then it's a bit more complicated, but if it's the first one we can prob do something. On the other hand, the bash postprocessing taking 15 seconds sounds a bit strange 🤔 @ErikSchierboom any details (or pointer to the docs) to see what exactly has to be run within the 20 sec limits? |
Another option: the docker image is slow (sometimes the Docker image for languages is sub-optimal). The Exercism machine will definitely be less beefy, and also has to deal with it processing many things. But running the above Docker image should help diagnose things (you can even add in logging). |
@ErikSchierboom finding now some more time to look closer. When running the docker script I get an authentication error
do you think you could help me a bit with this? |
(btw, I'll give tomorrow a talk about this at ChapelCon) |
Good luck with the talk! |
lol I was one |
@ErikSchierboom I don't quite understand how I'm supposed to use the I am in I have copy-pasted the However, if I run
then the generated
which is not quite what I would expect. when running |
mmmm, I tried to add an
before
and it seems correct
at least it is in a folder with the |
I have problems getting the tests of the test runner to run. When I run: sed: preserving permissions for '/opt/test-runner/tests/syntax-error/sedCy6exO': Permission denied Any idea? |
Mmm |
maybe you had some file open in some editor and that was preserving |
I've just updated the tests of the test runner: exercism/chapel-test-runner#29 What was your plan right now? Do you need me for anything? |
I'm surprised to see While we are working on improving the compiler's performance, I don't think we should wait for that to launch the Exercism track. So, looking for a workaround. I built the Chapel test runner from https://github.com/exercism/chapel-test-runner/blob/main/Dockerfile (using apptainer) and it seems to be around 500 MB. It looks like it is using the Chapel Docker image which is based on Debian 11. I found https://exercism.org/docs/building/tooling/best-practices#h-performance which recommends trying a few different base OSes and that Alpine frequently results in a small image. It's unclear to me, will reducing the Docker file size help with the 20 seconds limit? Or is the 20 seconds counting something after the Docker image is already loaded up? That document also suggests trying network Lastly, I noticed this section https://exercism.org/docs/building/tooling/docker#h-configuration :
Clicking through to the linked tools.json, I can see that Kotlin, Haskell, and F# test runners use 30 second timeouts instead of the usual 20. Would it be possible to get Chapel to also have a 30 second timeout? |
Another data point is that forth compilation takes about 9 seconds in the GitHub Codespace for Chapel. This is getting closer towards the 20 second figure, but is still below half of the upper bound. In my experience Codespaces are quite resource-constrained; although the 9 second time points to the importance of the underlying hardware, it also suggests that if Exercism is using comparable hardware, then 9 seconds should be possible. On the other hand, if Exercism's hardware is weaker, then the delays become relatively plausible. |
Any ETA when people can start learning Chapel on Exercism? I'm a complete beginner to programming. Thanks |
@ErikSchierboom Hi Erik, can you finalize this please? |
I think someone needs to look at the test runner to try and speed it up |
1 similar comment
I think someone needs to look at the test runner to try and speed it up |
Sorry for the delay with this. Let me try to take a look at this. @ErikSchierboom do you have comments on the @mppf 's questions?
|
@lucaferranti FYI, I'm no longer a member of the Exercism staff, so I won't reply as quickly as I did before.
Something for @iHiD to decide
Reducing will help with a reduced startup time, and in general smaller Docker images execute more quickly. |
fixes #1