Minetest logo

IRC log for #minetest-dev, 2024-09-09

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:00 pgimeno also, not that I like that option in the least, but ever considered luau?
00:06 MTDiscord <luatic> pgimeno: true, though then you still have to trust the LuaJIT interpreter. you lose an independent interpreter to cross-check against.
00:13 red-001 pgimeno: isn't that already an issue if a mod uses a feature implemented in LuaJIT but not 5.1?
00:16 SFENCE joined #minetest-dev
00:26 red-001 I would still probably be for just supporting only LuaJIT, mods and the engine having to support two slightly different Lua environments is messy and LuaJIT is the only one that has any maintainers at all. Maybe could go with Luau as the secondary supported implementation for checking LuaJIT against?
00:27 MTDiscord <wsor4035> iirc luau has issues like no dofile, and other things stripped out that would have to be added back
00:27 MTDiscord <luatic> no tail recursion 😡
00:27 red-001 ah well that's a shame
00:28 red-001 I mean dofile or whatever is not a big deal but changes to recursion might be a problem
00:28 MTDiscord <wsor4035> see https://luau.org/compatibility, its a lot
00:31 red-001 it would be nice to get a supported and maintained core even if some standard libraries would still need to be vendored in
00:32 red-001 LuaJIT  seems to break encapsulation for the standard library (or at least uses their FFI) but stock Lua does everything through the standard C API
00:34 red-001 no __pairs/__ipairs support is a bit annoying
00:36 red-001 but pairs/ipairs is implemented using the C API, not in the guts of the VM/interpreter
00:36 SFENCE joined #minetest-dev
00:37 MTDiscord <luatic> i'm fairly sure that luajit has special optimizations for pairs/ipairs
00:38 red-001 I meant in PUC Lua, LuaJIT already implements the metamethods for those when compiled in 5.2 compat mode
00:39 MTDiscord <luatic> problem with the compat mode is (as sfan pointed out on the issue) that whether that's enabled depends on distros, at least when we link luajit dynamically
00:40 red-001 do most distros just ship one LuaJIT package that may or may not have it enabled?
00:40 MTDiscord <wsor4035> pretty much
00:40 red-001 seems kinda like poor package management on their part if so, they wouldn't ship PUC Lua as just one package no matter which version it is
00:41 MTDiscord <wsor4035> also its generally outdated due to it being rolling release
00:41 MTDiscord <wsor4035> also debian/ubuntu dont enable gc64 which is a notable issue servers at least
00:41 MTDiscord <luatic> tbh we could consider linking it statically, especially as we strongly recommend latest master...
00:45 red-001 probably a good idea tbh, distros can complain about it but also can't rely on any sort of sane way to ask for certain compile options on their version of the package
00:55 SFENCE joined #minetest-dev
01:36 SFENCE joined #minetest-dev
02:00 SFENCE_arch joined #minetest-dev
02:41 MTDiscord <herowl> And git submodule it?
02:43 MTDiscord <wsor4035> nah, they would rather make submodules at home in some cursed fashion instead of ever using anything standard (i wish this was sarcasm)
02:44 MTDiscord <herowl> Anyway, I implemented the reviews on #14543, refactoring and heavily simplifying the code (partially relying on changes made to that file in the meantime, thanks @sfence).
02:44 ShadowBot https://github.com/minetest/minetest/issues/14543 -- Add gameid aliases by nauta-turbidus
02:44 MTDiscord <wsor4035> (yes this is an irrlichtmt reference, lets please not do that again)
02:45 MTDiscord <herowl> That should have been git subtree
02:46 MTDiscord <herowl> Submodules are better for things that are supposed to be developed externally
02:46 MTDiscord <herowl> Like LuaJIT, which is not related to this project
02:47 MTDiscord <herowl> Subtree incorporates one project into another, preserving commit history... and making it easier to include changes from the other repo if needed (not needed in this case, still better for commit history).
02:47 MTDiscord <wsor4035> except subtree puts something in your project, while the point was to keep it external till it was ready to put it in
02:47 MTDiscord <herowl> Subtree allows pulling in further external changes though
02:48 MTDiscord <herowl> With relative ease
02:48 MTDiscord <herowl> And I'm referring to the thing done in the end, where the whole irr folder is one big "bundle" commit IIRC
02:49 MTDiscord <wsor4035> you missed my point, but i digress. i suppose the c++ fetch content or whatever it is could also be used, typically package managers dont like that, but there already going to not like statically linking it anyways
02:49 red-001 submodules aren't that bad tbh
02:49 MTDiscord <wsor4035> agreed
02:50 MTDiscord <herowl> I think I understand now.
02:51 red-001 so I gave luau some more thought, some of those syntax extensions could be annoying (what if someone writes their mod expecting them to be supported?), but that's already an issue with LuaJIT and Lua 5.1
02:52 red-001 it is probably the best maintained Lua 5.1 implementation right now
02:53 MTDiscord <wsor4035> take my two bent pennies for what there worth, but so far the easiest is probably either to port on 5.2 stuff to our 5.1 to match luajit(statically linked), or 5.2 with polyfills for a few 5.1 things with luajit(statically linked) to have the best cross combability
02:56 red-001 well if you want to try the first one #15134 could use a review or testing, got through a decent chunk of the changes needed for LuaJIT-ish features
02:56 ShadowBot https://github.com/minetest/minetest/issues/15134 -- [no-sq] Some Lua 5.2 backports by red-001
02:59 red-001 if we really really wanted to stick to PUC Lua but still vendor it in, could switch to Lua 5.2 and port Lua 5.1 environments over. If there really is a need to support even someone abusing the debug API like that example I suppose can just change the bytecode generator to make sure each function gets _ENV as an upvalue (if needed), as messy as that would be.
03:00 red-001 but to be honest, Lua 5.2 is also not supported anymore. #maintainers is zero
03:00 red-001 luau is backwards compatible even if it adds some features that Minetest doesn't want because LuaJIT doesn't implement them
03:01 red-001 and it's maintained by MoneyPrinter Corporation for use in their MoneyPrinter line of products
03:02 red-001 so is probably going to be maintained for the foreseeable future
03:04 MTDiscord <wsor4035> did lua5.2 fix the stack trace thing we originally "forked" lua5.1 for? dont recall
03:04 MTDiscord <wsor4035> i guess i could test the pr, but i do try to avoid engine dev as to not get involved in yet another minetest area
03:05 MTDiscord <wsor4035> also i dont know where, but someone here in irc got luau working with minetest at one point
03:09 MTDiscord <wsor4035> https://irc.minetest.net/minetest/2021-11-04, see comments by icedragon
03:09 MTDiscord <wsor4035> https://github.com/IceDragon200/minetest/tree/luau-support
03:20 red-001 I think I see an easier way to do that, might try it
03:20 red-001 Minetest *does* include a copy of luaxlib and like the rest of the *lib files it only depends on the main Lua header
03:26 red-001 ah I see the issue, thanks for linking that!
03:28 MTDiscord <wsor4035> np
03:33 red-001 Looking at their standard library implementation it seems lua_getstack was not implemented because there's no need for it anymore, they merged it with lua_getinfo, presumably because those two tend to be used together anyways
04:00 MTDiscord joined #minetest-dev
07:59 hwpplayer1 joined #minetest-dev
09:44 sfan5 tbh I don't understand why invest so much time in this area
09:45 sfan5 supporting PUC lua is good to avoid "all eggs in one basket" situations and as a fallback
09:47 sfan5 but upwards of 95% of players use luajit so who benefits from this? and not like it makes maintenance any easier, we've had to do almost zero changes to lua 5.1 over the years
09:50 MTDiscord <andrey2470t> Could #15061 be added in the 5.10 milestone? I've already fixed the most of the UV issues and also mipmapping artifacts.
09:50 ShadowBot https://github.com/minetest/minetest/issues/15061 -- Texture atlas for mapblocks meshes by Andrey2470T
09:51 sfan5 02:38 <red-001> I meant in PUC Lua, LuaJIT already implements the metamethods for those when compiled in 5.2 compat mode
09:52 sfan5 this is a largely theoretical concern. you have to go out of your way to disable it, so why would anyone do it? and if someone raised a bug in this regard I bet distros would consider it a defect that the 5.2 compat isn't enabled
09:52 sfan5 02:41 <+MTDiscord> <wsor4035> also debian/ubuntu dont enable gc64 which is a notable issue servers at least
09:52 sfan5 this is incorrect. debian has moved on from the old 2.1.0-beta3 and now packages openresty's fork
09:53 MTDiscord <andrey2470t> Also taken into account creating additional atlases if the current one is on the verge of the overflowing
09:57 sfan5 not to mention that breaking changes in something as central as lua are absolutely not an option right now or soon.
10:24 MTDiscord <herowl> sfan5: +1
11:10 hwpplayer1 joined #minetest-dev
11:22 MTDiscord <wsor4035> Sfan5, maybe something changes since the last time i tested, but they both have the 2gb memory limit in place
11:28 sfan5 shouldn't be the case in debian testing
11:46 sfan5 (I checked the sources they build from. didn't test)
12:00 MTDiscord <wsor4035> tested on ubuntu 20.04 with grow.lua, https://pastebin.com/gPU8cVye, taken from some stackoverflow a while ago, crashes at 2075747.6386719  KB
12:05 pgimeno "<red-001> pgimeno: isn't that already an issue if a mod uses a feature implemented in LuaJIT but not 5.1?" sure, but LuaJIT is much more used and it's unlikely that a server will use PUC Lua. Also, people are typically aware of the fact that they're using LuaJIT-specific features and make them conditional (notable exception: hex escapes in string literals)
12:06 MTDiscord <wsor4035> same with 22.04
12:07 pgimeno and the *only* reason I brought up Luau is sandboxing. It has a few good enhancements - better garbage management, more speed - but otherwise it's not a big gain and it has the drawback of being MS stuff
12:07 MTDiscord <wsor4035> anyways, more so care about an opinion on #14999
12:07 ShadowBot https://github.com/minetest/minetest/issues/14999 -- minetest 5.9 mapblock flickering depending on camera view
13:45 untilted joined #minetest-dev
14:15 SFENCE_arch joined #minetest-dev
14:15 SFENCE joined #minetest-dev
14:16 SFENCE joined #minetest-dev
14:24 Lupercus joined #minetest-dev
15:03 SFENCE joined #minetest-dev
16:01 SFENCE joined #minetest-dev
16:19 SFENCE joined #minetest-dev
16:27 SFENCE joined #minetest-dev
16:32 ivanbu joined #minetest-dev
17:14 Krock so I'd assume that at least all Maxwell 2.0 cards would have the same issue - at least on Linux.
17:15 Krock it is very interesting that this somehow solves your issue because there's nothing about the map rendering going on
17:20 Krock this means that glBufferDataARB is present. perhaps we could try with glBufferData because the ARB extension is for OpenGL < 1.5 compatibility
17:21 MTDiscord <herowl> I'd like #14543 to be taken a look at during the upcoming meeting, if it is possible.
17:21 ShadowBot https://github.com/minetest/minetest/issues/14543 -- Add gameid aliases by nauta-turbidus
17:22 Krock the next meeting will be filed with 5.9.1 topics I'm afraid. Let's see. I'll add it.
17:24 MTDiscord <herowl> Krock: I just hope it'll make it before 5.10 feature freeze
17:24 MTDiscord <herowl> Thanks anyway
17:25 Krock @wsor4035 Does the driver opengl vs opengl3 make a difference? The buildbot build should support both.
17:25 MTDiscord <wsor4035> thats covered in the issue (iirc no, but opengl3 with gl debug on works)
17:25 sfan5 is opengl3 even enabled by default?
17:26 sfan5 if not we should enable it
17:26 MTDiscord <wsor4035> anyways, my comment this morning was aimed at sfan5 as a follow up to the one from last night
17:26 MTDiscord <wsor4035> since it didnt get a response
17:26 Krock "iirc" means we won't know until it's certain
17:28 MTDiscord <wsor4035> as stated in the first half of the comment, its covered in the issue. iirc is from my memory without looking at the issue
17:28 Krock opengl3 uses glBindBuffer + glBufferData + glBindBuffer(reset)   no ARB extension
17:29 MTDiscord <wsor4035> https://github.com/minetest/minetest/issues/14999#issuecomment-2309050261
17:30 MTDiscord <wsor4035> what i was following up to from the last night: https://irc.minetest.net/minetest-dev/2024-09-08#i_6199928
17:30 Krock I see. Thanks. It's strange that it happens on both implementations. It must be driver related
17:31 MTDiscord <wsor4035> sfan5: opengl3 wasnt default when i did testing with it
17:32 Krock createOpenGL3Driver depends on SDL, and SDL is disabled for 5.9.0
17:41 Sokomine joined #minetest-dev
17:52 hwpplayer1 joined #minetest-dev
17:57 sfan5 I meant enabled = compiled in
18:32 sfan5 there's some great entanglement between client stuff and our definition managers
18:33 sfan5 (irony)
18:51 v-rob joined #minetest-dev
18:52 v-rob Why in the world does drawVertexPrimitiveList() have both primitiveCount and vertexCount parameters? vertexCount can be (and is) calculated by using primitiveCount
18:58 sfan5 huh yeah the gl3 driver does not use it, it must be != 0 but other than that it assumes you have provided enough
19:05 Sharpman joined #minetest-dev
19:06 hwpplayer1 joined #minetest-dev
19:19 sfan5 rubenwardy: is it intentional that <game>/icon.png can be any extension but <game>/screenshot.png is only searched with .png?
19:20 sfan5 sorry, <game>/menu/icon.png actually
19:20 sfan5 because it's put through getImagePath
19:29 v-rob I'm doing a tiny bit of cleanup in the OpenGL code so I can add a few features, so I'll probably make a PR to remove that unnecessary parameter
19:31 rubenwardy sfan5: I that predates me, it's not a specific choice I made
19:31 rubenwardy +think
19:45 v-rob I suppose vertexCount could be used with glDrawRangeElements, but we use glDrawElements anyway
19:47 v-rob Guess I'd better not change it then
20:00 sfan5 before I sink more time into this #15126 is now ready for review
20:00 ShadowBot https://github.com/minetest/minetest/issues/15126 -- [no squash] Share objects between client / server builds by sfan5
20:02 hwpplayer1 joined #minetest-dev
20:28 SFENCE joined #minetest-dev
20:28 Desour joined #minetest-dev
21:03 SFENCE joined #minetest-dev
21:10 red-001 joined #minetest-dev
21:40 SFENCE joined #minetest-dev
22:29 SFENCE joined #minetest-dev
22:32 panwolfram joined #minetest-dev
22:50 SFENCE joined #minetest-dev
23:05 Eragon joined #minetest-dev
23:11 SFENCE joined #minetest-dev
23:43 SFENCE joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext