[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

[obsolete-m8n] neoLua

Installation


Loading S8 in neoLua sample (NeoCmd)

We want load the S8 kernel snapshot to test if it runs, as it should be.
The S8 kernel snapshot can be found in m8n folder as s8.snapshot.lua
The documentation pages of NeoLua report some incompatibilities with standard Lua and also some functions that are not implemented.

loading s8.snapshot.lua

  1. Build NeoCmd with Visual Studio
  2. copy file s8.snapshot.lua to the same folder of the NeoCmd executable file
  3. Run NeoCmd.exe and execute
    :load s8.snapshot.lua
ResultThe application couldn't load the snapshot (it is a standard lua source file). The load is reporting an exception while parsing the file. It sounds like the parser is assuming that functions canīt respond to #value message. IMO the parser is assuming core lua semantics at loading time, and triggering exception.
Exception reported
:load s8.snapshot.lua
: Call: {0}
ResetPositional: Algorithm: {0}
Parse error at line 985 (column: 7):
  'System.Func`1[Neo.IronLua.LuaResult]:value' not found.
>

Loading snapshot in pieces

Trying to load the snapshot one section at a time, to check if it can load at least the boot section of S8 snapshot.
  1. split the s8.snapshot.lua file in sections
  2. Run NeoCmd application and load the first section with
    :load s8.section1.lua

Loading first (boot) section

When trying to load first section we found that actually neoLua do NOT have support to extend behavior of strings, numbers, null, nor functions; so we cant run S8 kernel on top of neoLua.

Conclusions

Uploaded Image: alert.gifSo sorry, neoLua do not have actually the features we need to run S8.
The debug.setmetatable function do not implement complete Lua semantics (the value can be anything).

April 17,2019

References

  1. neoLua Github repo
  2. NeoLua codeproject
  3. .Net Resources