2
\$\begingroup\$

I have been considering the creation of a julia based golfing language. Proposed name: Jules. In implementation it would effectively resolve every program into a julia AST, which would run inside julia.

One feature I was considering was name-fallback. Where if a variable/function name was not defined, it would do a search of the names that are defined, and choose the one that was closest. eg prin("foo") would resolve into a call the julia print("foo") function. And then additional fallbacks if that method threw an error.

This would mean that the behavior of Jules, would be defined by the version of the julia standard library it is backing onto. Not particularly problematic -- just up the Jules version number each time the julia version number is upped.

When it gets more problematic, is when combined with an another feature I think would be nice to have. A huge standard library. As the standard library, I was thinking, the entire julia package ecosystem. And having the module loading function be something like use Foo which resolves into using Foo to attempt to load the module Foo from currently installed packages, but if that fails, then to runPkg.add("Foo"); using Foo, to download and install the latest registered `Foo.jl" package.

Now this would mean the behavior of the language would potentially change each time a new version of any registered package is released. Since it could add a new function name, changing how name-fallback resolves. So a new version of Jules would be created every time, a commit is made to METADATA.jl. This would mean about 10 new versions of Jules would come out each day. A Jules version number, would be something like: v<jules_language_version>-<julia_language_version>-<SHA_hash of MetaData.jl eg v0.1.0-0.5.2-d776b19

With over 10 new versions per day, many questions will not be win-able with the latest version of Jules. See:Can I win with a version of a language that didn't exist when the challenge was posted?

My current proposed solution would be to have a script that will install the latest version of Jules, from before a given date and time. And tell you the version number. So you could copy and paste the time from the question, to get a copy of the language that is legal for competing.

Does this sound reasonable?

\$\endgroup\$
7
\$\begingroup\$

Just yesterday I proposed doing away with the non-competing policy for newer language versions. The proposals seems to be getting a lot of support, so you don't have to worry about frequent language updates at all if that new policy does come into effect.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .