TimeTraveler.jl: a package for running julia code back in time

I created a package to make it easier to work with world-ages and invoke in world.

Basically it remembers the world age when any package was loaded.
So that you can go and run your code against the defintions in the package when it was first loaded.

For example

@when_freshly_loaded Foo begin
    @test Foo.foo() == 100
end

which will ignore any redefintions you (or Revise) have done since then.
So you can go back and test that your new tests fail.
Or do comparative benchmarking of new method vs old (I haven’t yet checked if this has too much overhead, but i don’t think it will, at least not unless the code you are using in the outisde of your benchmake is complicated, someone comment and let me know)

Feel free to bikeshed on the name before i register it.
I leaned a way from TimeMachine.jl as there is that Apple backups feature called that?
And TARDIS.jl makes me sound like a nerd

34 Likes

Where can I find the package?

Presumably at GitHub - oxinabox/TimeTraveler.jl: Time travel in JuliaLang. (Useful for testing what code did before your changes)

4 Likes

For what it’s worth, when I saw the name I expected it to be some conveniences around backdating your registry.

3 Likes

Likewise. But maybe I’ve just heard too much about benchmarking different julia versions with the registry at a matching age.

How about WorldAgeTraveler?

7 Likes

Or UnRevise perhaps

4 Likes

Aladdin (I can show you the worlds)

1 Like

Oooh, that’s a fun one

OldAge.jl

2 Likes

I dont get it, what’s wrong with the current name?

1 Like

I dont get it, what’s wrong with the current name?

I invited bikeshedding, in the top post.

Feel free to bikeshed on the name before i register it.

and there is nothing the julialang community likes more than a good ol’ bikeshedding over what to name something.

My mistake :joy:

11 Likes

Ahh that makes sense, yeah I missed that.

Bikeshedding is the daily crossword of OSS

3 Likes

I expected this to be something related to Time travel debugging - Wikipedia but it is way more narrow. Adding something about world age to the name alternatively just make up something punny seems better to me.

6 Likes

ManyWorlds.jl

… as in the Many-Worlds interpretation of quantum mechanics.

1 Like