Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

515 compatibility #341

Closed
Mothblocks opened this issue Oct 24, 2022 · 19 comments
Closed

515 compatibility #341

Mothblocks opened this issue Oct 24, 2022 · 19 comments

Comments

@Mothblocks
Copy link
Contributor

  • call_ext now exists to replace call, with similar syntax
  • type::variable_name now exists in static definitions, to alleviate a breaking change to NAMEOF

http://www.byond.com/forum/post/2828780

@SpaceManiac
Copy link
Owner

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.

@Mothblocks
Copy link
Contributor Author

It's gonna be a bit before we can because it breaks tgui but I'll keep you in the loop

@Mothblocks
Copy link
Contributor Author

oh yeah pointers are a thing now too lol

@Spookerton
Copy link
Contributor

Spookerton commented Dec 20, 2022

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

@Mothblocks
Copy link
Contributor Author

515 also adds __TYPE__ and __PROC__.

@Spookerton
Copy link
Contributor

Spookerton commented Mar 18, 2023

also adds the /final/ var sugar.
https://www.byond.com/docs/ref/#/var/final

@Mothblocks
Copy link
Contributor Author

Also adds /proc/bla() as type, which is equivalent to RETURN_TYPE in SDMM.

@Mothblocks
Copy link
Contributor Author

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.

@Mothblocks
Copy link
Contributor Author

So we need:

  • call_ext
  • nameof
  • refcount
  • savefile/byond_version
  • :: syntax
  • : syntax

Those last two are important because I can't just define over those

@willox
Copy link
Contributor

willox commented Apr 14, 2023

Trying to collate all that...

@Mothblocks
Copy link
Contributor Author

I'm wrong about :, it was SDMM incorrectly reporting :: and I got confused

@SpaceManiac SpaceManiac pinned this issue Apr 20, 2023
@Zandario
Copy link

Zandario commented Apr 25, 2023

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

VSC Example

image

Dream Maker Example

image

@Spookerton
Copy link
Contributor

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.

@Spookerton
Copy link
Contributor

Spookerton commented May 1, 2023

#353 handled call_ext
240d8e0 handled :: scope token (partially? /foo::bar() cries)
4129759 handled /final/ sugar
32bf1b3 handled & and * pointer stuff

#354 does simple constants and proc signatures, op lists remaining things afaik having gone through the ref for byondver=515 hits

@LemonInTheDark
Copy link
Contributor

LemonInTheDark commented Sep 4, 2023

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)

@LemonInTheDark
Copy link
Contributor

@SpaceManiac are we free or is there more to do

@SpaceManiac
Copy link
Owner

/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.

@LemonInTheDark
Copy link
Contributor

aight ws, sounds great

@SpaceManiac
Copy link
Owner

Closing this since 515 support was released in suite 1.8. Any bugs should now be their own tickets, example:

@SpaceManiac SpaceManiac added this to the suite v1.8 milestone Nov 19, 2023
@SpaceManiac SpaceManiac unpinned this issue Nov 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants