| Time |
Nick |
Message |
| 00:14 |
|
Verticen joined #luanti |
| 00:18 |
|
v-rob joined #luanti |
| 00:36 |
* mtvisitor |
reviewed the debug.txt file of the luanti game engine on his offline version. |
| 00:37 |
mtvisitor |
https://content.luanti.org/packages/Calinou/moreblocks/ |
| 00:37 |
|
FileX joined #luanti |
| 00:37 |
mtvisitor |
It breaks stairs and slabs once disabled - and there doesn't seem to be the will to fix it . |
| 00:40 |
mtvisitor |
when uninstall some mod(s), there will be some unexpected error after re-login the game. |
| 00:46 |
|
SFENCE joined #luanti |
| 00:52 |
|
kamdard joined #luanti |
| 01:59 |
|
_____ joined #luanti |
| 02:02 |
|
lemonzest joined #luanti |
| 02:34 |
|
kamdard joined #luanti |
| 02:40 |
|
FileX joined #luanti |
| 03:33 |
cheapie |
So a question came up elsewhere... someone built a church with some bells made of mese, and now we're wondering what a bell made of mese would sound like anyway |
| 03:33 |
cheapie |
My guess is https://www.youtube.com/watch?v=X9qvR2ih8C0&t=6 |
| 03:37 |
|
FileX joined #luanti |
| 04:00 |
|
MTDiscord joined #luanti |
| 04:56 |
|
SFENCE joined #luanti |
| 05:07 |
|
SFENCE joined #luanti |
| 05:08 |
|
FileX joined #luanti |
| 05:14 |
whosit |
should core.ipc_cas() work for table references? (currently ipc_get() will just return new table each time, even if stored table is unchanged) |
| 05:18 |
whosit |
I do realize that it gets de-serialized each time, and each thread will have different values anyway... but if get() would return same reference per-thread, that would at least somewhat work? |
| 05:22 |
|
Glaedr joined #luanti |
| 05:22 |
whosit |
at the moment, to use CAS with a table, I have to provide a level of indirection, like: ipc_set(new_table_address, new_table); ipc_cas(table_pointer, old_table_address, new_table_address) ... |
| 05:24 |
whosit |
it's a little bit weird, but works, I guess... |
| 05:56 |
[MatrxMT] |
<y5nw> IIRC the serialization format in the IPC store is not related to the Lua environment at all; and I don't think IPC CAS is intended to be used with tables |
| 05:57 |
[MatrxMT] |
<y5nw> although you could make it work by defining the __eq metamethod |
| 06:02 |
[MatrxMT] |
<y5nw> IMO having ipc_get return the same reference for tables can become a footgun; if you (accidentally?) modify the table the values for the IPC store goes out of sync |
| 06:05 |
whosit |
true... |
| 06:06 |
whosit |
maybe IPC API should provide something like channels for sending messages to/from async threads - that's what I was trying to do when I froze my async by trying to CAS a table :p |
| 06:13 |
whosit |
I did implement something like FIFO on top of IPC functions.. but it's horrible in every way, I feel |
| 06:17 |
|
shinbeth joined #luanti |
| 06:36 |
whosit |
I tried registering metatable and using __eq, and it does work. |
| 06:38 |
|
shinbet joined #luanti |
| 06:42 |
|
jaca122 joined #luanti |
| 06:54 |
|
shinbet joined #luanti |
| 07:21 |
|
SwissalpS joined #luanti |
| 07:25 |
|
SFENCE joined #luanti |
| 07:37 |
|
Verticen joined #luanti |
| 08:12 |
|
SliverFlowCipher joined #luanti |
| 08:30 |
sfan5 |
whosit: nothing in the ipc api works with references |
| 08:32 |
sfan5 |
if you want to implement something like a channel on top of the ipc, having to use some indirection is to be expected |
| 08:34 |
sfan5 |
I'm curious to know what your use case for channels looks like tho |
| 08:59 |
whosit |
lots of different mods (areas, mail...) like to write complex and large json files to persist some state, as those grow, time for serialization and IO grows... |
| 08:59 |
whosit |
ideally, all this stuff should use an sql database, but ... anyway |
| 09:01 |
whosit |
I tried writing a mod that will provide a "json" object to a mod, and this json/table would transparently mirror the table on async thread; and async will do the (periodid or on demand) serialization and writes to disk |
| 09:01 |
sfan5 |
so basically you needed a queue? |
| 09:02 |
whosit |
yes |
| 09:03 |
|
FileX joined #luanti |
| 09:04 |
whosit |
async thread just waits for ipc_poll(task_count, timeout); then pops all update messages in a loop, and unsets the task count... |
| 09:05 |
whosit |
and fifo is built on top of "perfix:task_XXX" keys... |
| 09:05 |
whosit |
just having a queue would be much cleaner :p |
| 09:06 |
sfan5 |
it sounds like you're blocking an async worker with your task. that's not supported. |
| 09:06 |
whosit |
it's working though X) |
| 09:07 |
sfan5 |
it will break async tasks for everyone else if the machine has a low enough core count |
| 09:08 |
whosit |
whole idea is to keep the copy of the structure in async worker's memory, to avoid repeated serialization |
| 09:08 |
whosit |
I know it's horrible, that why I dream of having proper sql one day :3 |
| 09:10 |
whosit |
creating and destroying async threads each time + not having real shared memory - makes them much less useful |
| 09:14 |
whosit |
modern OS would not have problems with many threads that just sleeping and waiting for a message from queue... |
| 09:15 |
sfan5 |
here's a secret: the async thread are permanent, it's just random which one your job gets assigned to |
| 09:17 |
whosit |
my prototype can only spawn one, I set an IPC key to make sure |
| 09:18 |
whosit |
and I call handle_async only once after the mod is loaded |
| 09:19 |
whosit |
I can show the horrible monster I've made :p (if that will help preventing more monsters from appearing) |
| 09:33 |
whosit |
anyway: https://github.com/yl-whosit/async_json |
| 09:33 |
whosit |
I know it's wrong and broken in many ways :p |
| 09:37 |
|
mrkubax10 joined #luanti |
| 10:01 |
|
YuGiOhJCJ joined #luanti |
| 10:21 |
|
mrkubax10 joined #luanti |
| 10:27 |
|
SFENCE joined #luanti |
| 10:36 |
MinetestBot |
[git] MoNTE48 -> luanti-org/minetest_game: Creative: release memory when player leaves c6fabe4 https://github.com/luanti-org/minetest_game/commit/c6fabe4734e4a39f7a398154161d39a6df7ad45f (2025-04-12T10:35:21Z) |
| 11:05 |
|
SFENCE joined #luanti |
| 11:18 |
|
Talkless joined #luanti |
| 11:30 |
|
ireallyhateirc joined #luanti |
| 11:42 |
|
FileX joined #luanti |
| 12:05 |
|
silverwolf73828 joined #luanti |
| 12:16 |
|
shinbeth joined #luanti |
| 13:11 |
|
Talkless joined #luanti |
| 13:25 |
|
shinbeth joined #luanti |
| 13:27 |
|
shinbet joined #luanti |
| 13:38 |
|
TheSilentLink joined #luanti |
| 14:12 |
|
Talkless joined #luanti |
| 16:00 |
|
Desour joined #luanti |
| 17:20 |
|
___nick___ joined #luanti |
| 17:33 |
|
ireallyhateirc joined #luanti |
| 18:18 |
|
SFENCE joined #luanti |
| 18:21 |
|
Verticen joined #luanti |
| 18:22 |
|
jemius joined #luanti |
| 18:29 |
|
dabbill joined #luanti |
| 18:50 |
|
Leopold joined #luanti |
| 18:55 |
|
sinvet joined #luanti |
| 19:24 |
|
___nick___ joined #luanti |
| 19:39 |
|
___nick___ joined #luanti |
| 19:42 |
|
___nick___ joined #luanti |
| 19:54 |
|
SFENCE joined #luanti |
| 20:20 |
|
SFENCE joined #luanti |
| 21:07 |
|
SFENCE joined #luanti |
| 21:50 |
|
alpiquero joined #luanti |
| 21:56 |
|
ireallyhateirc joined #luanti |
| 22:10 |
|
Kimapr joined #luanti |
| 22:34 |
|
panwolfram joined #luanti |
| 22:52 |
|
ireallyhateirc2 joined #luanti |
| 23:49 |
|
sys4_ joined #luanti |