I have been considering the creation of a julia based golfing language.
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.
prin("foo") would resolve into a call the julia
And then additional fallbacks if that method threw an error.
This would mean that the behavior of
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 run
Pkg.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.
Jules version number, would be something like:
v<jules_language_version>-<julia_language_version>-<SHA_hash of MetaData.jl
With over 10 new versions per day,
many questions will not be win-able with the latest version of
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?