Closed Mothblocks closed 1 year ago
Release notes with non-explicitly-breaking features: http://www.byond.com/docs/notes/515.html
Will likely only get to this after 515 has stewed in beta for a bit and codebases like /tg/ are actually looking to start using it.
It's gonna be a bit before we can because it breaks tgui but I'll keep you in the loop
oh yeah pointers are a thing now too lol
basic builtins.rs adds at 1597
proc/ceil(A);
proc/floor(A);
proc/fract(A);
proc/ftime(File, IsCreationTime);
proc/get_steps_to(Ref, Trg, Min=0);
proc/isinf(A);
proc/isnan(A);
proc/ispointer(A);
proc/nameof(V);
proc/noise_hash(hash_name, num1, num2, num3 /*, ...*/);
proc/refcount(Object);
proc/trimtext(Text);
proc/trunc(A);
client/proc/RenderIcon(object);
list/proc/RemoveAll(Item1, Item2/*, ...*/);
ANIMATION_SLICE = Int(8);
ANIMATION_CONTINUE = Int(512);
JSON_PRETTY_PRINT = Int(1);
JSON_STRICT = Int(1);
JSON_ALLOW_COMMENTS = Int(2);
not sure on call_ext
because of the second params scope
515 also adds __TYPE__
and __PROC__
.
also adds the /final/
var sugar.
https://www.byond.com/docs/ref/#/var/final
Also adds /proc/bla() as type
, which is equivalent to RETURN_TYPE
in SDMM.
Will likely only get to this after 515 has stewed in beta for a bit and codebases like /tg/ are actually looking to start using it.
@SpaceManiac It's been about 6 months and we're about to require 515 for building.
The two biggest failures right now are no nameof
and no savefile/byond_version
.
So we need:
::
syntax:
syntaxThose last two are important because I can't just define over those
Trying to collate all that...
&
syntax, is there more than that? do we need static typing support for it?)__TYPE__
& __PROC__
:
syntax (@Mothblocks what changed with this?)::
syntax/proc/bla() as type
syntaxvar/final/x
syntaxI'm wrong about :
, it was SDMM incorrectly reporting ::
and I got confused
also adds the
/final/
var sugar. byond.com/docs/ref/#/var/final
/final/
is also used for procs, it should probably be reserved to prevent people for accidentally finding out the hard way
Recent attack mitigation stuff in late 515 won't be backported to stable. Much of this can be hidden with a version file at the moment, but the :: accessor and & pointer syntax are unavoidable.
https://github.com/SpaceManiac/SpacemanDMM/pull/353 handled call_ext 240d8e02c41e7f8f3f7479354e0dcca362ec511e handled :: scope token (partially? /foo::bar() cries) 41297597fb29a565375106189309426b8ef2c3a9 handled /final/ sugar 32bf1b3b98c3e81e576300ec32bfe357813e4bae handled & and * pointer stuff
https://github.com/SpaceManiac/SpacemanDMM/pull/354 does simple constants and proc signatures, op lists remaining things afaik having gone through the ref for byondver=515 hits
To add onto willox's post, we'll need __IMPLIED_TYPE__
support, see https://www.byond.com/docs/ref/#/DM/preprocessor/__IMPLIED_TYPE__
Shouldn't be hard, just need to tell the parser that it exists and it can be ANYTHING (insert rainbow wave)
@SpaceManiac are we free or is there more to do
/tg/station now passes dreamchecker in 515 mode. Sure to be bugs or something missed along the way but I think that's the majority of it.
aight ws, sounds great
Closing this since 515 support was released in suite 1.8. Any bugs should now be their own tickets, example:
call_ext
now exists to replacecall
, with similar syntaxtype::variable_name
now exists in static definitions, to alleviate a breaking change to NAMEOFhttp://www.byond.com/forum/post/2828780