tag:blogger.com,1999:blog-273184887393091763.post8570932443336433726..comments2023-10-05T13:35:21.831+02:00Comments on metalua: Statements as expressionsFabienhttp://www.blogger.com/profile/02739446213556869485noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-273184887393091763.post-77371553064405520572009-11-30T12:02:48.116+01:002009-11-30T12:02:48.116+01:00This comment has been removed by a blog administrator.Hチェッカーhttp://hhh.h-check.net/noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-72212704688555301942009-11-29T12:09:12.173+01:002009-11-29T12:09:12.173+01:00This comment has been removed by a blog administrator.サイドビジネスhttp://www.zgyylfzy.com/noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-48603053007136449532009-11-28T12:26:52.931+01:002009-11-28T12:26:52.931+01:00This comment has been removed by a blog administrator.人妻http://www.yeartearm.com/noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-28884760772892409292009-11-17T10:52:41.503+01:002009-11-17T10:52:41.503+01:00This comment has been removed by a blog administrator.Web Solutionshttp://www.sybotechnologies.comnoreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-86941679148481840352009-10-29T06:06:50.323+01:002009-10-29T06:06:50.323+01:00This comment has been removed by a blog administrator.James prakerhttps://www.blogger.com/profile/11208374447501434177noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-30022372926314674382009-08-10T11:00:51.740+02:002009-08-10T11:00:51.740+02:00@kozmikyak: when LuaJIT's bytecode format will...@kozmikyak: when LuaJIT's bytecode format will be released, there will be some work to port a compiler for it.<br /><br />Meanwhile, there are very few instructions (`Goto{ }, `Label{ } and `Stat{ }) which can't be represented as Lua source code; so by avoiding these, or removing them through a bit of graph analysis, we'll be able to compile metalua source --> plain lua source --> luaJIT bytecode.Fabienhttps://www.blogger.com/profile/02739446213556869485noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-65603295625339536372009-08-07T21:50:32.692+02:002009-08-07T21:50:32.692+02:00I'm not sure what the current status of LuaJIT...I'm not sure what the current status of LuaJIT is, or how deeply metalua needs hooks into the compilation process in order to work.<br /><br />LuaJIT 2.0, when released, will evidently use incompatible bytecode. LuaJIT 1.x will mostly run any standard Lua bytecode.<br /><br />There's also llvm-lua, which does some JIT compilation, though it can't do the same runtime optimizations that LuaJIT can. It compiles from Lua bytecodes into LLVM's intermediate format and works from there.<br /><br />I've been toying with metalua and finally grasping it well enough to use it in my work. It's a great language. <br /><br />The JIT options really interest me; Lua is already among the fastest interpreted languages, but it's always nice to go faster. It looks like llvm-lua might fit best with Metalua, as it works with standard bytecode.Unknownhttps://www.blogger.com/profile/01023063490460488370noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-69237370910902902542009-03-31T14:18:00.000+02:002009-03-31T14:18:00.000+02:00Thanks for the nice post.Thanks for the nice post.Rajuhttp://www.rayhosting.com/noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-59294325037463205062008-12-15T04:24:00.000+01:002008-12-15T04:24:00.000+01:00I should think before posting.Thanks for 'sufferin...I should think before posting.<BR/>Thanks for 'suffering a fool lightly'Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-80779960314261076462008-12-15T02:44:00.000+01:002008-12-15T02:44:00.000+01:00There's no "regular old lua AST", the original com...There's no "regular old lua AST", the original compiler goes from source to bytecode in a single pass. Therefore the compatibility between Lua and metalua occurs at the bytecode level, not at AST level.<BR/><BR/>Moreover, in metalua's AST, there are some nodes (`Goto{ } and `Stat{ }), which cannot be expressed in regular Lua. They might break some invariants LuaJIT depends upon. But there is a large subset of metalua that is LuaJIT-compatible, as long as you refrain from using problematic nodes, or that you offer alternative implementations which don't rely on them.<BR/><BR/>I've never seriously investigated the issue of LuaJIT compatibility, because in my experience, rewriting a couple of key hot spots in C has always been a very efficient way to make Lua fast enough. But I can help someone who needs it bad enough to do most of the work by himself ;-)Fabienhttps://www.blogger.com/profile/02739446213556869485noreply@blogger.comtag:blogger.com,1999:blog-273184887393091763.post-70761798886856819062008-12-15T02:04:00.000+01:002008-12-15T02:04:00.000+01:00There must be some obvious reason why this doesn&#...There must be some obvious reason why this doesn't remove the necessity of writing a LuaJIT 2.0 backend for metalua, but I don't see it.<BR/>Isn't the AST generated from compiling some metalua code (i.e. metalua itself) just regular old lua AST? So you could get back to 'macro free' source from the AST and then hand that to luaJIT?<BR/>If that was the case, problem solved? <BR/>That would be very nice.<BR/>Perhaps metalua->AST->macro free source->luaJIT->luaJIT bytecode of metalua = super fast awesomeness?Anonymousnoreply@blogger.com