hoelzro / pluto

Heavy Duty Persistence for Lua
http://luaforge.net/projects/pluto/
81 stars 11 forks source link

Lua 5.2 compatibility? #7

Closed lilith closed 13 years ago

lilith commented 13 years ago

I tried to build this with Lua 5.2 installed, using "make macosx" and got this:

Nathanael:pluto nathanael$ make macosx cc -g3 -Wall -Wconversion -ansi -pedantic -I/opt/local/include -c pluto.c In file included from pluto.c:20: pluto.h:21: error: expected declaration specifiers or ‘...’ before ‘lua_Chunkwriter’ pluto.h:23: error: expected declaration specifiers or ‘...’ before ‘lua_Chunkreader’ In file included from pdep/lobject.h:15, from pdep/ldo.h:11, from pdep/pdep.h:5, from pluto.c:25: pdep/llimits.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘lu_int32’ pdep/llimits.h:47: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘L_Umaxalign’ pdep/llimits.h:88: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘Instruction’ In file included from pdep/ldo.h:11, from pdep/pdep.h:5, from pluto.c:25: pdep/lobject.h:200: error: expected specifier-qualifier-list before ‘L_Umaxalign’ pdep/lobject.h:207: warning: union has no members pdep/lobject.h:216: error: expected specifier-qualifier-list before ‘L_Umaxalign’ pdep/lobject.h:223: warning: union has no members pdep/lobject.h:234: error: expected specifier-qualifier-list before ‘Instruction’ pdep/lobject.h:365: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘const’ In file included from pdep/lstate.h:13, from pdep/ldo.h:12, from pdep/pdep.h:5, from pluto.c:25: pdep/ltm.h:46: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘const’ In file included from pdep/ldo.h:12, from pdep/pdep.h:5, from pluto.c:25: pdep/lstate.h:40: error: expected specifier-qualifier-list before ‘luint32’ pdep/lstate.h:52: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘attribute’ before ‘’ token pdep/lstate.h:107: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘attribute’ before ‘_’ token In file included from pdep/pdep.h:10, from pluto.c:25: pdep/lopcodes.h:252: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘const’ pdep/lopcodes.h:261: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘const’ pluto.c:63: error: expected specifier-qualifier-list before ‘lua_Chunkwriter’ pluto.c: In function ‘persistspecialobject’: pluto.c:111: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:111: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:131: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:131: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:147: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:147: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:180: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:180: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persistuserdata’: pluto.c:238: error: ‘union Udata’ has no member named ‘uv’ pluto.c:239: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:239: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:240: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:240: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persistfunction’: pluto.c:313: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:313: error: ‘struct Proto’ has no member named ‘nups’ pluto.c:313: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:327: error: ‘struct Proto’ has no member named ‘nups’ pluto.c:339: warning: implicit declaration of function ‘lua_getfenv’ pluto.c:341: warning: implicit declaration of function ‘lua_equal’ pluto.c:341: error: ‘LUA_GLOBALSINDEX’ undeclared (first use in this function) pluto.c:341: error: (Each undeclared identifier is reported only once pluto.c:341: error: for each function it appears in.) pluto.c: In function ‘persistproto’: pluto.c:405: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:405: error: ‘Proto’ has no member named ‘sizek’ pluto.c:405: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:406: error: ‘Proto’ has no member named ‘sizek’ pluto.c:419: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:419: error: ‘Proto’ has no member named ‘sizep’ pluto.c:419: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:420: error: ‘Proto’ has no member named ‘sizep’ pluto.c:422: error: ‘Proto’ has no member named ‘p’ pluto.c:433: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:433: error: ‘Proto’ has no member named ‘sizecode’ pluto.c:433: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:434: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:434: error: ‘Proto’ has no member named ‘code’ pluto.c:434: error: ‘Instruction’ undeclared (first use in this function) pluto.c:434: error: ‘Proto’ has no member named ‘sizecode’ pluto.c:434: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:440: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:440: error: ‘Proto’ has no member named ‘sizeupvalues’ pluto.c:440: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:441: error: ‘Proto’ has no member named ‘sizeupvalues’ pluto.c:443: error: ‘Proto’ has no member named ‘upvalues’ pluto.c:451: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:451: error: ‘Proto’ has no member named ‘sizelocvars’ pluto.c:451: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:452: error: ‘Proto’ has no member named ‘sizelocvars’ pluto.c:454: error: ‘Proto’ has no member named ‘locvars’ pluto.c:458: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:458: error: ‘Proto’ has no member named ‘locvars’ pluto.c:458: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:459: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:459: error: ‘Proto’ has no member named ‘locvars’ pluto.c:459: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:464: error: ‘Proto’ has no member named ‘source’ pluto.c:470: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:470: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:470: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:471: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:473: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:473: error: ‘Proto’ has no member named ‘lineinfo’ pluto.c:473: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:473: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:478: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:478: error: ‘Proto’ has no member named ‘linedefined’ pluto.c:478: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:479: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:479: error: ‘Proto’ has no member named ‘lastlinedefined’ pluto.c:479: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:483: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:483: error: ‘Proto’ has no member named ‘nups’ pluto.c:483: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:484: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:484: error: ‘Proto’ has no member named ‘numparams’ pluto.c:484: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:485: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:485: error: ‘Proto’ has no member named ‘is_vararg’ pluto.c:485: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:486: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:486: error: ‘Proto’ has no member named ‘maxstacksize’ pluto.c:486: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘revappendstack’: pluto.c:497: error: ‘lua_State’ has no member named ‘stack’ pluto.c:501: error: ‘lua_State’ has no member named ‘stack’ pluto.c:502: warning: control reaches end of non-void function pluto.c: In function ‘persistthread’: pluto.c:512: error: ‘lua_State’ has no member named ‘stack’ pluto.c:522: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:522: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:530: error: ‘lua_State’ has no member named ‘base_ci’ pluto.c:531: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:531: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:533: error: ‘lua_State’ has no member named ‘base_ci’ pluto.c:534: error: ‘lua_State’ has no member named ‘stack’ pluto.c:535: error: ‘lua_State’ has no member named ‘stack’ pluto.c:536: error: ‘lua_State’ has no member named ‘stack’ pluto.c:537: error: ‘lua_State’ has no member named ‘base_ci’ pluto.c:538: error: ‘CallInfo’ has no member named ‘savedpc’ pluto.c:538: error: ‘struct Proto’ has no member named ‘code’ pluto.c:540: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:540: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:541: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:541: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:542: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:542: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:543: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:543: error: ‘CallInfo’ has no member named ‘nresults’ pluto.c:543: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:544: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:544: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:550: error: ‘lua_State’ has no member named ‘stack’ pluto.c:551: error: ‘lua_State’ has no member named ‘stack’ pluto.c:553: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:553: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:554: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:554: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:555: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:555: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:556: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:556: error: ‘lua_State’ has no member named ‘errfunc’ pluto.c:556: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:565: error: ‘lua_State’ has no member named ‘openupval’ pluto.c:576: error: ‘lua_State’ has no member named ‘stack’ pluto.c:577: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:577: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persistboolean’: pluto.c:592: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:592: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persistlightuserdata’: pluto.c:598: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:598: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persistnumber’: pluto.c:604: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:604: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persiststring’: pluto.c:609: warning: implicit declaration of function ‘lua_strlen’ pluto.c:610: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:610: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:611: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:611: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persist’: pluto.c:629: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:629: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:630: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:630: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:646: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:646: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:648: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:648: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:658: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:658: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:667: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:667: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:684: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:684: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c:701: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:701: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: At top level: pluto.c:749: error: expected declaration specifiers or ‘...’ before ‘lua_Chunkwriter’ pluto.c: In function ‘pluto_persist’: pluto.c:755: error: ‘PersistInfo’ has no member named ‘writer’ pluto.c:755: error: ‘writer’ undeclared (first use in this function) pluto.c:756: error: ‘PersistInfo’ has no member named ‘ud’ pluto.c: In function ‘persist_l’: pluto.c:826: warning: ISO C forbids passing argument 2 of ‘plutopersist’ between function pointer and ‘void ’ pluto.c:826: error: too many arguments to function ‘pluto_persist’ pluto.c: In function ‘makeupval’: pluto.c:988: warning: passing argument 3 of ‘pdeprealloc’ with different width due to prototype pluto.c:989: warning: passing argument 3 of ‘pdep_link’ with different width due to prototype pluto.c: In function ‘makefakeproto’: pluto.c:1001: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:1002: error: ‘Proto’ has no member named ‘lineinfo’ pluto.c:1003: error: ‘Proto’ has no member named ‘lineinfo’ pluto.c:1004: error: ‘Proto’ has no member named ‘sizecode’ pluto.c:1005: error: ‘Proto’ has no member named ‘code’ pluto.c:1005: error: ‘Instruction’ undeclared (first use in this function) pluto.c:1005: error: expected expression before ‘)’ token pluto.c:1005: warning: passing argument 3 of ‘pdeprealloc’ with different width due to prototype pluto.c:1005: error: too few arguments to function ‘pdeprealloc’ pluto.c:1006: error: ‘Proto’ has no member named ‘code’ pluto.c:1007: error: ‘Proto’ has no member named ‘source’ pluto.c:1007: warning: passing argument 3 of ‘pdep_newlstr’ with different width due to prototype pluto.c:1008: error: ‘Proto’ has no member named ‘maxstacksize’ pluto.c:1009: error: ‘Proto’ has no member named ‘nups’ pluto.c:1010: error: ‘Proto’ has no member named ‘sizek’ pluto.c:1011: error: ‘Proto’ has no member named ‘sizep’ pluto.c: In function ‘boxupval_start’: pluto.c:1025: error: ‘lua_State’ has no member named ‘l_gt’ pluto.c:1028: warning: passing argument 2 of ‘makefakeproto’ with different width due to prototype pluto.c: In function ‘unpersistfunction’: pluto.c:1071: error: ‘lua_State’ has no member named ‘l_gt’ pluto.c:1076: warning: passing argument 2 of ‘makefakeproto’ with different width due to prototype pluto.c:1120: warning: implicit declaration of function ‘lua_setfenv’ pluto.c: In function ‘unpersistproto’: pluto.c:1156: warning: passing argument 3 of ‘pdep_newlstr’ with different width due to prototype pluto.c:1161: error: ‘Proto’ has no member named ‘source’ pluto.c:1162: error: ‘Proto’ has no member named ‘sizecode’ pluto.c:1163: error: ‘Proto’ has no member named ‘code’ pluto.c:1163: error: ‘Instruction’ undeclared (first use in this function) pluto.c:1163: error: expected expression before ‘)’ token pluto.c:1163: warning: passing argument 3 of ‘pdeprealloc’ with different width due to prototype pluto.c:1163: error: too few arguments to function ‘pdeprealloc’ pluto.c:1164: error: ‘Proto’ has no member named ‘code’ pluto.c:1165: error: ‘Proto’ has no member named ‘maxstacksize’ pluto.c:1166: error: ‘Proto’ has no member named ‘sizek’ pluto.c:1167: error: ‘Proto’ has no member named ‘sizep’ pluto.c:1185: error: ‘Proto’ has no member named ‘sizek’ pluto.c:1194: error: ‘Proto’ has no member named ‘p’ pluto.c:1194: error: ‘Proto’ has no member named ‘p’ pluto.c:1199: error: ‘Proto’ has no member named ‘p’ pluto.c:1200: error: ‘Proto’ has no member named ‘sizep’ pluto.c:1209: error: ‘Proto’ has no member named ‘sizecode’ pluto.c:1210: error: ‘Proto’ has no member named ‘code’ pluto.c:1210: error: expected expression before ‘)’ token pluto.c:1210: error: ‘Proto’ has no member named ‘code’ pluto.c:1210: warning: passing argument 3 of ‘pdeprealloc’ with different width due to prototype pluto.c:1210: error: too few arguments to function ‘pdeprealloc’ pluto.c:1211: error: ‘Proto’ has no member named ‘code’ pluto.c:1211: error: ‘Proto’ has no member named ‘sizecode’ pluto.c:1217: error: ‘Proto’ has no member named ‘sizeupvalues’ pluto.c:1218: error: ‘Proto’ has no member named ‘sizeupvalues’ pluto.c:1220: error: ‘Proto’ has no member named ‘upvalues’ pluto.c:1220: error: ‘Proto’ has no member named ‘upvalues’ pluto.c:1220: error: ‘Proto’ has no member named ‘sizeupvalues’ pluto.c:1221: error: ‘Proto’ has no member named ‘sizeupvalues’ pluto.c:1224: error: ‘Proto’ has no member named ‘upvalues’ pluto.c:1232: error: ‘Proto’ has no member named ‘sizelocvars’ pluto.c:1233: error: ‘Proto’ has no member named ‘sizelocvars’ pluto.c:1235: error: ‘Proto’ has no member named ‘locvars’ pluto.c:1235: error: ‘Proto’ has no member named ‘locvars’ pluto.c:1235: error: ‘Proto’ has no member named ‘sizelocvars’ pluto.c:1236: error: ‘Proto’ has no member named ‘sizelocvars’ pluto.c:1239: error: ‘Proto’ has no member named ‘locvars’ pluto.c:1242: error: ‘Proto’ has no member named ‘locvars’ pluto.c:1243: error: ‘Proto’ has no member named ‘locvars’ pluto.c:1250: error: ‘Proto’ has no member named ‘source’ pluto.c:1255: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:1256: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:1258: error: ‘Proto’ has no member named ‘lineinfo’ pluto.c:1258: error: ‘Proto’ has no member named ‘lineinfo’ pluto.c:1258: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:1259: error: ‘Proto’ has no member named ‘lineinfo’ pluto.c:1259: error: ‘Proto’ has no member named ‘sizelineinfo’ pluto.c:1265: error: ‘Proto’ has no member named ‘linedefined’ pluto.c:1266: error: ‘Proto’ has no member named ‘lastlinedefined’ pluto.c:1270: error: ‘Proto’ has no member named ‘nups’ pluto.c:1271: error: ‘Proto’ has no member named ‘numparams’ pluto.c:1272: error: ‘Proto’ has no member named ‘is_vararg’ pluto.c:1273: error: ‘Proto’ has no member named ‘maxstacksize’ pluto.c: In function ‘unpersistthread’: pluto.c:1325: warning: passing argument 3 of ‘lua_xmove’ with different width due to prototype pluto.c:1335: warning: passing argument 2 of ‘pdep_reallocCI’ with different width due to prototype pluto.c:1337: error: ‘lua_State’ has no member named ‘base_ci’ pluto.c:1342: error: ‘CallInfo’ has no member named ‘nresults’ pluto.c:1348: error: ‘lua_State’ has no member named ‘stack’ pluto.c:1349: error: ‘lua_State’ has no member named ‘stack’ pluto.c:1350: error: ‘lua_State’ has no member named ‘stack’ pluto.c:1351: error: ‘CallInfo’ has no member named ‘savedpc’ pluto.c:1351: error: ‘lua_State’ has no member named ‘base_ci’ pluto.c:1352: error: ‘struct Proto’ has no member named ‘code’ pluto.c:1354: error: ‘CallInfo’ has no member named ‘tailcalls’ pluto.c:1364: error: ‘lua_State’ has no member named ‘savedpc’ pluto.c:1364: error: ‘CallInfo’ has no member named ‘savedpc’ pluto.c:1368: error: ‘lua_State’ has no member named ‘errfunc’ pluto.c:1369: error: ‘lua_State’ has no member named ‘stack’ pluto.c:1370: error: ‘lua_State’ has no member named ‘stack’ pluto.c:1375: error: ‘lua_State’ has no member named ‘openupval’ pluto.c:1395: error: ‘lua_State’ has no member named ‘stack’ pluto.c:1413: error: ‘lua_State’ has no member named ‘stack_last’ pluto.c:1413: error: ‘lua_State’ has no member named ‘stacksize’ pluto.c: At top level: pluto.c:1585: error: expected declaration specifiers or ‘...’ before ‘lua_Chunkreader’ pluto.c: In function ‘pluto_unpersist’: pluto.c:1599: error: ‘reader’ undeclared (first use in this function) pluto.c: In function ‘unpersist_l’: pluto.c:1652: warning: ISO C forbids passing argument 2 of ‘pluto_unpersist’ between function pointer and ‘void ’ pluto.c:1652: error: too many arguments to function ‘pluto_unpersist’ pluto.c: In function ‘luaopen_pluto’: pluto.c:1665: warning: implicit declaration of function ‘luaL_openlib’ make[1]: _* [pluto.o] Error 1 make: *\ [macosx] Error 2 Nathanael:pluto nathanael$

hoelzro commented 13 years ago

Pluto isn't compatible with Lua 5.2 because it uses Lua 5.1's internals extensively (technically, more than any module should). I'm not sure if I'll port Pluto to 5.2; however, that doesn't mean I won't accept patches. =)

lilith commented 13 years ago

I'm now using 5.1.4 on OS X.

I'm having trouble persisting a suspended coroutine.

I persist this:

code = { ["name"] = "world.start.start"; ["co"] = "thread: 0x100114510"; };

and get back this: code = { ["\000\000\000\000"] = 3.6073928448386e-313; };

Is 5.1.4 support on the horizon, or should I switch to lua 5.1.3?

lilith commented 13 years ago

I've switched to lua 5.1.3 with the same results... Does coroutine persistence work on any version?

hoelzro commented 13 years ago

I don't think so; I'm pretty sure they were broken when I inherited the Pluto codebase. I think you can persist a coroutine that you haven't started yet, but I'm not certain.

lilith commented 13 years ago

Snap... I need to persist a suspended coroutine to make my engine work at all.. https://github.com/nathanaeljones/weaver-lua

Should I abandon Lua and give Rhino a try?

hoelzro commented 13 years ago

I'm going to close this issue and put my response in the official "suspended coroutine" bug issue. Just to avoid going back and forth. =)

lilith commented 13 years ago

Great

On Mon, Sep 5, 2011 at 6:28 PM, hoelzro < reply@reply.github.com>wrote:

I'm going to close this issue and put my response in the official "suspended coroutine" bug issue. Just to avoid going back and forth. =)

Reply to this email directly or view it on GitHub: https://github.com/hoelzro/pluto/issues/7#issuecomment-2003618

SirVer commented 11 years ago

I'd like to reopen this thread - widelands is using Lua and a heavily modified version of pluto to persist objects - the most crucial part is persisting non-running coroutines. This does no longer work in lua 5.2 because the internals of Lua seemed to have changed. Is there some way to get this version of Pluto running with lua 5.2?

hoelzro commented 11 years ago

@SirVer I am no longer the maintainer of Pluto; please address this issue with the current maintainer, Stefan Reich (http://luaos.net/).

SirVer commented 11 years ago

Thanks, I tweeted him. I did not find a new project side or issue tracker, so I asked him to comment here - if you handed over maintenance, it would be wise to also export the issues.

hoelzro commented 11 years ago

@SirVer Have you tried e-mailing him? I know he checks that; as far as Twitter goes, I'm not sure.

fnuecke commented 11 years ago

I have been working on a port/rewrite of Pluto for Lua 5.2 (mostly rewrite, hence no fork; though I pretty much kept the concepts). If anyone is still interested, you can find it here. It seems pretty stable for now, but more intensive testing in real-world scenarios will be necessary to be sure.