Time |
Nick |
Message |
00:15 |
|
YuGiOhJCJ joined #minetest |
00:49 |
|
wolfshappen joined #minetest |
00:55 |
|
diceLibrarian joined #minetest |
00:58 |
|
nekobit joined #minetest |
01:01 |
|
fluxionary joined #minetest |
01:01 |
|
olliy joined #minetest |
01:13 |
|
smk joined #minetest |
01:22 |
ball |
I feel like it's going to take me a while to tunnel back from -7000 at -32 but it's better than trying to hack my way through the jungle trees. |
01:47 |
|
Trifton joined #minetest |
02:17 |
|
Zambyte joined #minetest |
02:26 |
|
fling joined #minetest |
02:34 |
ball |
join #bikes |
02:34 |
ball |
oops |
02:42 |
|
gff joined #minetest |
02:50 |
|
fling joined #minetest |
02:51 |
|
Verticen joined #minetest |
03:31 |
|
Icalasari joined #minetest |
03:33 |
Icalasari |
Hey. Been told my indenting sucks and it's hiding errors from me. Issue is... I can't figure out what is wrong with my indenting and I can't find any good guides on indenting. Could somebody please either look at my indenting and help explain to me so I can avoid such mistakes, or point me to a good guide on how to properly indent since my Google |
03:33 |
Icalasari |
skills are failing me on this? |
03:37 |
ball |
Icalasari: I don't code for Minetest but I'm willing to have a look at some code if you have an example handy. |
03:37 |
Icalasari |
Self teaching Lua by modding for SRB2 was a mistake I swear to god XD I probably have SO many bad practices |
03:37 |
Icalasari |
Thanks Ball |
03:37 |
ball |
brb |
03:37 |
Icalasari |
I need to go find the snippet anyways so that'll take a minute or two |
03:39 |
Icalasari |
https://pastebin.com/JDhCLVWv |
03:45 |
ball |
I don't know lua but I'm willing to have a look. |
03:46 |
Icalasari |
Thanks |
03:46 |
Icalasari |
Posted the pastebin there |
03:47 |
ball |
Trying to match up some brackets, now... |
03:54 |
Icalasari |
I hope it isn't too horrendous |
03:55 |
ball |
It might be awesome. Like I said, I don't know lua. I used to code, years ago though, so I'm having a crack at it. |
04:00 |
|
MTDiscord joined #minetest |
04:00 |
ball |
I seem to have two or three stray 'ends" and a couple of stray closing braces at the end. |
04:01 |
ball |
Ah wait, I probably misnested your elseifs. |
04:01 |
Icalasari |
Ah crap over copied, the }) and end right after that map to an earlier snippet of the code |
04:02 |
ball |
Hang on, I'll paste what I have... |
04:02 |
Icalasari |
Thanks again |
04:03 |
ball |
Not sure whether those elseifs are supposed to be staircased... |
04:04 |
ball |
http://grex.org/~ball/Icalasari.lua |
04:05 |
ball |
...and I used spaces where lua people probably use tabs, just to keep my editor sane. |
04:05 |
ball |
How does it look? |
04:07 |
Icalasari |
It looks great, I'm going to compare to my code to see what I can glean from how you indented it and learn from it so I can catch errors myself better in the future and indent better |
04:07 |
Icalasari |
Thank you SO much |
04:08 |
ball |
Like I said, I don't know lua so my assumptions may be off and that'll be reflected in my indenting. |
04:08 |
ball |
Hope it helps though. |
04:10 |
Icalasari |
Lua can be coded all on one line. The indenting is meant to help people organize it, so it will help a lot |
04:10 |
Icalasari |
Also I still question the sanity of whoever made a language that can code a program all on one line |
04:13 |
ball |
That's partly historical. When your source code comes in on a spool of paper tape, lines are for human convenience. |
04:14 |
Icalasari |
Ah, so not so much sanity based as "Oh dear god I hate these limitations of the time" based |
04:14 |
ball |
...and carriage returns etc. used to get stripped out as whitespace (by the preprocessor?) as a first step towards making it digestable to the compiler |
04:15 |
ball |
I think I prefer languages where whitespace (outside of quotes) has no meaning. It means I can arrange things for readability. |
04:15 |
ball |
...since it's not going to impact the object code in any case. |
04:15 |
ball |
I think lua's interpreted, so perhaps that doesn't apply. |
04:16 |
ball |
Thinking about some BASIC interpreters I used in the 8-bit era, only the really good ones let us indent code. |
04:16 |
ball |
Some of the more constrained machines didn't. |
04:22 |
Icalasari |
Still can't spot the error that I've been told was buried in the indenting, but it did finally click how to properly indent, so thank you again for that |
04:26 |
ball |
You may have just learned how to indent like an old man. ;-) |
04:27 |
Icalasari |
XD |
04:27 |
Icalasari |
Hey, I'm 30 myself so I'm not a spring chicken anymore either |
04:33 |
hedae[m] |
For most programming languages I recommend just using automatic formatters since it saves time trying to get everything formatted. |
04:33 |
ball |
Good luck with your project, anyway. I'll sit in the comfy chair now and listen to the radiogram for a bit. |
04:33 |
ball |
hedae[m]: That sounds like a good idea. I'm guessing there's one for lua? |
04:35 |
hedae[m] |
ball: For Lua I use https://github.com/Tencent/LuaHelper |
04:37 |
ball |
Thanks. I might feed it Icalasari's code to see what it thinks. |
04:38 |
hedae[m] |
Icalasari: The main issues I've noticed in your code are that you've forgotten to close some blocks with end, and your if statements use "=" (assignment) instead of "==" (equality comparison) |
04:39 |
ball |
Oooh, that'd break things. |
04:41 |
Icalasari |
I'm not spotting which blocks I forgot to close (might be my newbiness in that regard). As for the ==, I was actually told I needed to use == for it (which... I did think a bit weird as they said it spits out a true/false statement but also can be used to make the variables the same, but they've been the closest thing I've have to a teacher on this |
04:41 |
Icalasari |
so figured it was some other weird function) |
04:42 |
ball |
o/ Goodnight |
04:42 |
|
ball left #minetest |
04:44 |
Icalasari |
Ciao, Ball, even though you can't see this XD |
04:44 |
hedae[m] |
There's one missing end, which I assume would be inserted after line 30 to close the if statement on line 28. As for ==, it doesn't do assignment (that would just be =). What it does is it checks if the left and right hand sides are equal, that is, a == b checks if a and b are equal. |
04:47 |
Icalasari |
...Whelp, it WAS newbieness - Guess the people on the forum never considered that I may be misunderstanding how Return works and thinking it *could not have an end before it without breaking things* XD |
04:47 |
Icalasari |
Goes to show, a newbie will always find a way to baffle an expert |
04:48 |
Icalasari |
Gah, still having the unexpected symbol near local error |
04:50 |
hedae[m] |
Could you share your updated file? |
04:50 |
|
calcul0n joined #minetest |
04:52 |
Icalasari |
https://pastebin.com/JDhCLVWv |
04:52 |
Icalasari |
Error currently is 'then' expected near '=' on line 34. As for my use of tabs, it's easier on my own eyes ^^; |
04:55 |
hedae[m] |
You need the double equals to do comparisons in if statements |
05:01 |
Icalasari |
kk |
05:03 |
Icalasari |
Now I'm confused. So I do need the == after all? |
05:04 |
hedae[m] |
Yes. Essentially, you get a boolean by comparing two values with ==, then you can use that boolean as the condition of an if statement (for example, you probably want to check if melrot is 0, so you'd use if melrot == 0) |
05:06 |
Icalasari |
Oh you are ki-_I mixed up where to put the == and somehow it didn't click once_ |
05:15 |
Icalasari |
I really hope that's due to my insomnia else I have a feeling my coding adventures are going to be... Something |
05:16 |
Icalasari |
Now it's not growing when it did before but I can look at an earlier version to likely deduce what I broke there. Thanks again for all the help |
05:19 |
Icalasari |
...Or like an idiot I forgot to save iterations between major changes |
05:22 |
Icalasari |
Speaking of insomnia, should probably get some sleep. Night |
06:23 |
|
mrkubax10 joined #minetest |
06:24 |
|
Flabb joined #minetest |
06:54 |
|
specing joined #minetest |
06:56 |
|
wikifurry-12 joined #minetest |
07:04 |
|
wikifurry-12 left #minetest |
07:04 |
|
harry-wood joined #minetest |
07:11 |
|
harry-wood joined #minetest |
07:18 |
|
harry-wood joined #minetest |
07:57 |
|
___nick___ joined #minetest |
08:02 |
|
Fleckenstein joined #minetest |
08:25 |
|
appguru joined #minetest |
08:28 |
|
lemonzest joined #minetest |
08:47 |
|
Fixer joined #minetest |
08:48 |
|
Sven_vB joined #minetest |
09:32 |
|
wallabra joined #minetest |
09:46 |
|
YuGiOhJCJ joined #minetest |
09:59 |
|
proller joined #minetest |
10:14 |
|
YuGiOhJCJ joined #minetest |
10:34 |
|
Soni joined #minetest |
10:40 |
ghoti |
BuckarooBanzai: I figured it out, I just had my luacontroller time test in the wrong place. :/ Should I submit my change as a PR, do you think? Might others want to proteect themselves from fast interrupts on luacontrollers too? |
11:02 |
ghoti |
BuckarooBanzai: and while I'm at it, could you tell me if there is any standard way of documenting knobs that can be added to world.mt or a config file? I'm coming up short. |
11:06 |
sfan5 |
settingtypes.txt is the standard way |
11:37 |
ghoti |
Ah, I hadn't come across that yet! Thanks. |
11:45 |
ghoti |
So .. when specifying "fload default/min/max", what if there is no real upper limit to be applied? Is that why I see 1000000 there in a few places? |
11:57 |
ghoti |
What is limited when luacontroller_lightweight_interrupts==false? |
12:03 |
ghoti |
I see that it uses a node timer instead of the "global action queue", I just don't know how that is significant. :) |
12:05 |
|
definitelya joined #minetest |
12:09 |
BuckarooBanzai |
ghoti: node timers only run when a player is near or the area is forceloaded, the "global action queue" always runs (_everywhere_) |
12:21 |
ghoti |
Does that mean that a luacontroller with interrupts functions as if it is near a world anchor, and never goes to sleep? |
12:39 |
ghoti |
There we go, https://github.com/minetest-mods/mesecons/pull/621 |
12:40 |
|
proller joined #minetest |
12:40 |
ghoti |
My first minetest PR. :) |
12:44 |
ghoti |
Oh bother, it even includes a typo. Fixed. |
12:46 |
ghoti |
Meh, I will close and resubmit. |
12:47 |
MTDiscord |
<Bla> lol yeah just commented a few secs after you closed it |
12:48 |
ghoti |
sorry about that. :/ |
12:48 |
ghoti |
Other than the typo, did it look reasonable? |
12:51 |
MTDiscord |
<Bla> I just skimmed over it and you should probably wait for someone that knows Lua ? |
12:55 |
calcul0n |
ghoti, i guess it should just emit a warning and adjust the time value instead of an error |
12:55 |
calcul0n |
there's a send_warning function passed as param to get_interrupt for that |
12:56 |
ghoti |
calcul0n: would a warning actually stop people from specifying low interrupt times though? |
12:58 |
calcul0n |
no, but you can just adjust it yourself to themin value |
12:58 |
calcul0n |
error would certainly stop them as it would crash the game :) |
12:59 |
ghoti |
I think I'm not getting what you're saying.. my goal here is to stop the fast cycling on luacontrollers. How does a warning do that? |
12:59 |
ghoti |
Where I placed the error, it shows up when the player presses "Execute" in the luacontroller. |
13:00 |
ghoti |
Would a warning stop the code from being executed as well? |
13:00 |
calcul0n |
a warning doesn't, modifying time yourself if necessary will |
13:01 |
calcul0n |
ie if time < minvalue then send_warning(...) time = minvalue end |
13:01 |
ghoti |
The line right before my edit was: `if type(time) ~= "number" then error("Delay must be a number") end` |
13:01 |
ghoti |
Ah, I see. Yes, that would let existing luacontrollers continue functioning, though slower. |
13:01 |
calcul0n |
yes |
13:24 |
|
Desour joined #minetest |
13:24 |
|
proller joined #minetest |
13:41 |
|
mrkubax10 joined #minetest |
13:46 |
|
Sammy62 joined #minetest |
14:24 |
|
fling joined #minetest |
14:30 |
|
___nick___ joined #minetest |
14:34 |
|
___nick___ joined #minetest |
15:32 |
|
Fleckenstein joined #minetest |
15:55 |
|
fling joined #minetest |
16:05 |
|
Alias joined #minetest |
16:10 |
|
fling joined #minetest |
16:10 |
|
appguru joined #minetest |
16:22 |
|
fling joined #minetest |
16:40 |
|
Talkless joined #minetest |
16:47 |
|
Sven_vB joined #minetest |
17:18 |
|
Sven_vB joined #minetest |
17:19 |
|
fling joined #minetest |
17:48 |
|
fling joined #minetest |
17:52 |
|
Fixer joined #minetest |
18:19 |
|
hmmmm joined #minetest |
18:25 |
|
debiankaios joined #minetest |
18:34 |
|
FreeFull joined #minetest |
18:51 |
|
specing_ joined #minetest |
18:56 |
|
Sven_vB joined #minetest |
19:00 |
|
Rafi59 joined #minetest |
19:05 |
MTDiscord |
<PrairieWind> howdy ghoti |
19:16 |
|
Sven_vB joined #minetest |
19:20 |
ghoti |
hi PrairieWind |
19:26 |
|
mrkubax10 joined #minetest |
19:27 |
ghoti |
Hey, could anyone help me learn from Desour's comment on https://github.com/minetest-mods/mesecons/pull/622 ? This works for the case I wrote it for, but presumably there are other ways luacontrollers can be exploited as high speed switches. How? |
19:56 |
|
Desour joined #minetest |
20:04 |
|
calcul0n_ joined #minetest |
20:25 |
|
Verticen joined #minetest |
20:29 |
|
YuGiOhJCJ joined #minetest |
20:36 |
|
proller joined #minetest |
21:13 |
calcul0n_ |
ghoti, imho a comment saying "useless" with no explanation is just... useless :) |
21:14 |
calcul0n_ |
even if there are other possible exploits your change would probably remove 99% of the abusive uses |
21:32 |
Desour |
ghoti: I just saw your message in the logs. to answer your question: you can easily for example make a loop with diode gates from one luacontroller port to another one to get shorter delays |
21:33 |
Desour |
or build some fast oscillator and connect it with a luacontroller |
21:34 |
Desour |
if you want to avoid circuits oscillating with a high frequence, you can change the mesecons heat settings |
21:35 |
Desour |
of course, this doesn't mean that one can not build lag machines with mesecons then |
21:35 |
Desour |
(as one can still place many effectors next to each other and power all at once) |
21:36 |
Desour |
mesecons should maybe try at some point to run its actionqueue steps over more than one server step each |
22:00 |
|
Sven_vB joined #minetest |
22:02 |
|
Sven_vB joined #minetest |
22:08 |
|
Desour_ joined #minetest |
22:31 |
|
YuGiOhJCJ joined #minetest |
22:32 |
|
panwolfram joined #minetest |
22:44 |
|
YuGiOhJCJ joined #minetest |
22:55 |
|
YuGiOhJCJ joined #minetest |
23:26 |
|
AliasAlreadyTake joined #minetest |
23:36 |
|
Jovan joined #minetest |