The Dink Network

Reply to Re: New D-Mod: Cursed Blades Part 1: Charlie's Legacy

If you don't have an account, just leave the password field blank.
Username:
Password:
Subject:
Antispam: Enter Dink Smallwood's last name (surname) below.
Formatting: :) :( ;( :P ;) :D >( : :s :O evil cat blood
Bold font Italic font hyperlink Code tags
Message:
 
 
July 26th 2022, 11:45 AM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
It may be true that Dink engines for Dink Smallwood 1.08, Freedink 108.4, Freedink 109.6(windows), DinkHD all actually implement real stack variables. However, I seem to recall that 100% of the prototypes for internal to DinkC scripts and user generated functions follow the format "void function_name( void );". This fact, plus the idea that the "&return" pseudo variable (like the &arg[n] variables) is clearly a global(*) which DinkC documentation also calls a "pseudo variable", led me to believe that there are no (user accessible) stack variables in DinkC. We (Robj and I) apparently read "the way they are supposed to work as described in their pseudo variables description" VERY differently.

Behaviors like external() seeming to "actually pass whatever arguments were prior (if you've called externals previously)" sure sounds to me like these variables are intended to be global variables. In my opinion, according to the way I read DinkC documentation, this use of pseudo variables as globals may be poor design, but it also seems like the intended design. I just accepted this as another quirk of DinkC, like there being only one type of variable (int) available.

To me it seems ironic that if the scripts Robj mentions actually used the &arg[n] and &return variables as globals, that they would work on all current platforms.

But more important (to me) is the fact that "some dmods won't work as intended" and that some of us don't care about that for ANY of the Linux users coming here from using 1.09x in their distro. They will be in for some serious disappointments. This seems to me to be as troublesome as the many problems that seem to surround the DINKHD series that could cause people to leave the DN in frustration.

It may be the case that "Contact Charlie" on Discord thinks that this not important when he said, "I thought my dmod was at fault and I spent time yesterday getting ubuntu loaded up on a virtual machine only to find that the FreeDink engine is to blame. Only on Linux. That's as far as I went. Not my problem anymore. lol", BUT the end result will mean that we will once again find a way to loose newcomers who show up at https://www.dinknetwork.com/ looking to become part of our community.

(*)according to this text from https://dinkcreference.netlify.app/guide/procedures.html#advanced-procedures:
[
It is also possible for custom procedures to return values. Note that it is not possible to get the return value of a custom procedure like an internal function. You must use the &return pseudo variable.
]