Factor is a concatenative, stack-based programming language with many features.
There is an existing track repo without recent activity, a closed logo issue, and no test runner repo. I couldn’t find any discussion in this forum.
I have experimented over the past day or two with building a new track repo and test runner for Factor, starting from the generic repos, making use of an LLM, a generator, various existing tracks, and the original track repo.
To get the ball rolling on maintainer feedback, I’ll take a look this weekend at the track docs in GitHub and work locally with the Docker test runner image.
The syllabus introduces between? in currency-exchange but I didn’t want it until cars-assemble (though I could have used <=). Would it make sense to shift it?
Strings Concept mentions “sequences vocabulary” but that’s not a link. Should it be a link?
Feedback is especially welcome on the concept exercises. The root config.json lists them in intended order for students. I asked an LLM to port these from other tracks, or to generate new concept exercises.
I am the track’s Student Zero, being new to Factor myself. Maintainers can see how many students have completed each exercise in Factor Track Management, and can see my solutions in Community Solutions.
I’ve been using an LLM to help me write concepts and concept exercises for the x86-64 track over the last few weeks. It’s been a bit hit and miss.
I think it produces excellent drafts and is usually responsive to feedback. But I’ve spotted some errors here and there, and there’s sometimes too much or too little emphasis on a particular topic.
Right now I prefer to ask for a draft, change it freely, and then iterate on the text I’ve written.
Two things it does very well are producing test cases for concept exercises, and revising grammar.
I’ll check the Factor track this weekend. I’ve always been curious about stack languages!
The syllabus docs mention multiple vocabularies then multiple words in those vocabularies. It might be worth making it explicit which vocabularies include which words
The strings pages uses .s in the split examples but .s is never defined/explained.
“stack- shuffling” has a space in the intro but not in the about.
boardwalk-games mentions “A word that wraps with-random should be marked inline so the quotation’s result can flow back to the caller.” It fails to mention what it means to “mark” a word. That sentence is pretty vague and cryptic, making the last task here quite challenging to solve without already knowing the solution.
The test_code output from boardwalk-games looks truncated.