Wolfgang Werners-Lucchini wrote:
if mp then res = mp:execute('plain') mp:finish() end
this first step runs with res=0, but there is no 'plain.mem' dumped.
For the other readers: res itself can't really be "zero". It is either a table, or nil. The actual return value is the status field in the table, and that can vary from 0 (good run) to 3 (extremely bad run), and you can end up with "nil" if you have invalid arguments.
(I have temporary appended 'dump;' to plain.mp)
After the above, you should have plain.mem in the local directory. You can try printing res.term or res.log or even print(table.serialize(res)) to check if what mp is doing.
after that I produced 'plain.mem' executing 'texmfstart texexec --make plain'
I assume that will create a tex plain.fmt file. But even if it does create a .mem file, you will not succeed unless you are using "newmpost" from the mplib-alpha-0.40 distribution and the values you sset up for hash_size, main_memory, and param_size in the loading stage are identical to the values used by newmpost from texmf.cnf during mem generation. Best wishes, Taco