Luau in Studio beta!

Hi, everyone. In addition to all of the typechecking work that’s currently in beta, we’ve been hard at work on the other side of Luau, which is the faster runtime. The runtime is already used everywhere except in Studio debugging sessions, and we’ve recently released a beta feature called “Enable faster Lua runtime” which turns it on in Studio as well.

Please try it out and tell us what you think. Ideally, the only thing you might notice is an improvement in runtime performance when debugging. This is because the new debugger uses a much more performant method of tracing and setting breakpoints than the old one.

If you’re interested, we now have an explicit breakpoint instruction that gets inserted at the right place in the bytecode, whereas stock Lua relies on a per-line callback that has a lot of overhead. In general running Lua under the debugger with the new VM should perform very similarly to running without debugging, whereas before there was a large difference.

If you have questions, please post them here!

75 Likes

Will there be any changes that might break exisiting scripts or or no?

4 Likes

Roblox has stated that any changes to Lua should have full backwards compatibility, meaning there shouldn’t be any scripts breaking. If there are any issues with it, just be sure to report it!

8 Likes

image udim2.new is erroring out but the scripts containing udim2.new seem to work in game

Where should we report it?

Really glad this is now in beta. I could notice the difference between studio debug sessions and in game performance when doing crazy scripting experiments.

As with all issues, you should make a bug report. This would go into Engine Bugs.

1 Like

Does this affect Studio script performance even if I never use the debugger? I’m too attached to my print statements :flushed:

7 Likes

Studio script performance should be better than before because the new VM instruction dispatch is a lot better. Separately, debugging performance should now be on par with runtime performance, whereas before debugging was a lot slower because it required us to enable the linehook mechanism inside the VM.

5 Likes

image udim2.new is erroring out but the scripts containing udim2.new seem to work in game

What do you mean erroring out? Is this a problem in the debugger or at runtime?

3 Likes

You forgot to add an extra “)”. It should be “PlayScreen:TweenPosition(UDim2.new(0,0,0,0))”, not “PlayScreen:TweenPosition(UDim2.new(0,0,0,0)”

3 Likes

hmm, that appears to be the issue but surely that raises a seperate issue; Why is it running that line successfully?

2 Likes

Sorry if this is a dumb question (not a scripter).
Does the virtual machine affect in-game performance or just in Studio Testing Mode.

1 Like

Is there a rough approximation of when this will be able to be used in live games?

1 Like

Nope, they just forgot to add an extra “)” at the end

No it’s actually a bug
image

2 Likes

Yes, this is a known issue with typechecking which will be fixed in the near future. It’s not related (directly) to the higher-performance Studio virtual machine.

3 Likes

didn’t do that before for some reason, But they have also seemed to fix it so you dont have to add that extra “)” image|449x18

Yeah, but it looks all fixed as i just checked.

1 Like