Remind me, it’s been a while.
Is it ready to launch? The config says it’s not yet active. Are you waiting on something to launch or is everything in place?
+cc @ErikSchierboom
As far as I know it’s been ready for about two years now.
Syntax colouring does not work, there’s a codemirror npm for it somewhere that to the best of my knowledge has never been tried.
There is also something badly wrong with the representer, but I haven’t the foggiest idea what.
From what I recall, the test runner is deployed, and the track has been available for other maintainers’ feedback. So I think we just need to do that bit and we’ve hit the minimum requirements for the launch. The other tooling (highlight.js, codemirror, etc.) isn’t required for launch, but the sooner that’s taken care of, the better for the user experience.
This weekend, I’ll take a look at the existing track docs and do a few exercises online and offline to get the ball rolling on general maintainer feedback.
I’m not sure what the launch process is, but I assume that active config value could be flipped? I assume Erik needs to do something after that, too.
You might be thinking of the Terraform stuff, but that has been done. https://exercism.org/tracks/phix is currently available as a logged-in maintainer. The active config value just makes it available to everybody else on Exercism.
However, if there’s an issue with the representer that affects students, that should most likely be looked at before launch if possible. A few folks here have surely built or contributed representers before so they may have some insights for Pete.
The representer is currently disabled in the config.json so that shouldn’t impact students. Any representer issue may be a blocker to enabling the representer but I think the track should be fine to launch without it.
Then yeah, I think we’re good. Assuming there aren’t any issues uncovered during the feedback, the track should be good for launch afterwards.
global function square_of_sum(integer n)
crash("please implement square_of_sum")
end function
global function sum_of_squares(integer n)
crash("please implement sum_of_squares")
end function
global function difference_of_squares(integer n)
return square_of_sum(n) - sum_of_squares(n)
end function
returns
C:Program Files (x86)Phixpmain.e:665 in procedure freeTmp()
index 0 out of bounds, reading sequence length 15
howmany = -2
N = 1223
si = 0
sN = {-1,3,0,2,0,0,0,0,-2,0,1,0,0,0,0}
This error message is a bit cryptic and occurs when I add a return that calls a function that crashes. It’s a little odd at face value because I would expect the test runner to fail instead on the first test calling square_of_sum because we have a crash statement there. If I change difference_of_squares to not call the other functions, that’s exactly what happens and the test runner tells me “please implement square_of_sum”. So something is a bit counter-intuitive here about the Phix test suite.
On Resistor Color Duo, I got a failing test run even though all tests passed. color_code was defined further down from this call site, and if I move its definition to the top of the page, the solution does pass the tests.
7 tests run, 7 passed, 0 failed, 100% success
/mnt/exercism-iteration/resistor-color-duo.e:2
integer tens = color_code(colors[1])
^Warning: forward call assumed
The compiler is probably griping because those functions don’t return anything, it might work a bit better if you slap a return 0 after the crash statements. That’s just my first thought, I’ll take a deeper look at this.
I’ll also have a think about ignoring warning messages properly, or maybe treat them as errors and demand solutions run with zero warnings.
If warnings weren’t already treated as errors, that implies something else might also be causing the failed run so here’s the full code.
My failing code
global function resistor(sequence colors)
integer tens = color_code(colors[1])
integer ones = color_code(colors[2])
return tens * 10 + ones
end function
sequence COLORS = {
"black",
"brown",
"red",
"orange",
"yellow",
"green",
"blue",
"violet",
"grey",
"white"
}
function color_code(string color)
return find(color, COLORS) - 1
end function