Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/modules/lua



Marc Balmer wrote:
> Module Name:  src
> Committed By: mbalmer
> Date:         Wed Oct 16 19:44:58 UTC 2013
> 
> Added Files:
>       src/sys/modules/lua: Makefile assert.h ctype.h errno.h infinite.lua
>           inttypes.h limits.h locale.h lua.c luaconf.h luavar.h math.h
>           setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h string.h
>           test.lua
> 
> Log Message:
> welcome lua(4), a devide driver that can create and control Lua states inside 
> the kernel
> 

First of all, the code has been imported the wrong way as I stated in
the previous email. You should properly import Lua 5.2 to sys/external/
and then apply local changes required to run it in kernel space.

Second, lua device driver has a limited application. We need a generic
lua module. Your lua device driver can then use it.
For example, if I want to generate bpf code when a user sends a filter
program to /dev/bpf* with Lua, I don't need a device driver. I need to
open a regular lua_State, load sljit module, run bfjit.lua script and
close the state afterwards.

Also, I have a couple of small things.

1. Why do you use lua_ prefix for private functions? You get very close
to lua names: lua_reader vs lua_Reader of lua_require vs luaL_requiref.

2. When you call lua_tostring() you often (or never???) don't check
whether it returns NULL. You can easily panic the kernel when you try
to print a table.

Alex


Home | Main Index | Thread Index | Old Index