Re: NYI bytecode and some questions

  • From: John Abrahamsen <jhnabrhmsn@xxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Thu, 20 Jun 2013 22:45:14 +0200

Thank you for answers!

I have actually done some work the last few days.

I have removed all closures in performance critical code, as
recommended. There are still alot of NYI's... but its mostly related
to C type conversion now it seems, and some coroutine calls... (which
is needed to give the ability to yield from web request handlers.)
When it comes to the buffers in the IOStream class, the reason for
using VLA is simply because the class initializer takes a
read_chunk_size argument. A solution to avoid VLAs would be to malloc
manually and cast the pointer maybe?

It seems I forgot to add a link to the project in the main post:
https://github.com/kernelsauce/turbo/tree/coroutine

Stressing that this is in development still.

Anyway when doing a benchmark with ab (apache benchmark), just testing
the base framework itself with:
luajit-2.1.0-alpha -jdump examples/helloworld.lua | grep NYI
and ab:
ab -n20000 -c1000 -k http://127.0.0.1:8888/

I get this output:


---- TRACE 1 abort middleclass.lua:49 -- NYI: bytecode 51
---- TRACE 1 abort middleclass.lua:49 -- NYI: bytecode 51
---- TRACE 1 abort middleclass.lua:49 -- NYI: bytecode 51
---- TRACE 1 abort middleclass.lua:49 -- NYI: bytecode 51
---- TRACE 1 abort middleclass.lua:49 -- NYI: bytecode 51
---- TRACE 3 abort sockutil.lua:77 -- NYI: unsupported C type conversion
---- TRACE 3 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 3 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 4 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 5 abort sockutil.lua:77 -- NYI: unsupported C type conversion
---- TRACE 5 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 10 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 10 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 10 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 11 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 15 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 15 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 15 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 15 abort sockutil.lua:77 -- NYI: unsupported C type conversion
---- TRACE 15 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 15 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 15 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 15 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 16 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 17 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 17 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 18 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 18 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 18 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 19 abort httputil.lua:456 -- NYI: bytecode 70
---- TRACE 19 abort httputil.lua:456 -- NYI: bytecode 70
---- TRACE 19 abort httputil.lua:456 -- NYI: bytecode 70
---- TRACE 19 abort httputil.lua:456 -- NYI: bytecode 70
---- TRACE 19 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 22 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 22 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 22 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 22 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 22 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 23 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 23 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 23 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 23 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 25 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 25 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 26 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 29 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 29 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 31 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 34 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 37 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 37 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 37 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 37 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 37 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 37 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 9 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 9 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 38 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 38 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 38 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 38 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 38 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 39 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 39 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 39 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 39 abort deque.lua:128 -- NYI: unsupported C type conversion
---- TRACE 39 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 39 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 39 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 42 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 42 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 42 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 42 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 45 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 50 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 50 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 50 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 45 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 45 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 45 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 45 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 55 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 55 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 56 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 56 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 57 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 57 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 60 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 62 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 62 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 63 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 63 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 63 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 63 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 64 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 64 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 66 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 66 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 66 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 67 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 67 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 67 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 67 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 67 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 67 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 68 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 69 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 69 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 72 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 72 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 72 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 73 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 73 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 73 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 74 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 48 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 50 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 50 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 50 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 59 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 59 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 59 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 60 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 60 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 60 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 63 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 63 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 66 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 68 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 68 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 68 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 68 abort iostream.lua:368 -- NYI: bytecode 71
---- TRACE 70 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 70 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 48 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 48 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 48 abort iostream.lua:249 -- NYI: bytecode 71
---- TRACE 48 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 48 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 48 abort iostream.lua:249 -- NYI: bytecode 71
---- TRACE 50 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 50 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 50 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 50 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 50 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 50 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 50 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 59 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 59 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 75 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 75 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 76 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 76 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 76 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 77 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 77 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 77 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 77 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 78 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 78 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 66 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 66 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 68 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 68 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 68 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 68 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 68 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 68 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 68 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 68 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 75 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 75 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 75 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 75 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 75 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 75 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 75 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 75 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 75 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 75 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 75 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 75 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 75 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 75 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 75 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 75 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 78 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 78 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 78 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 78 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 78 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 79 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 79 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 79 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 79 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 79 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 79 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 79 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 79 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 79 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 80 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 80 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 80 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 80 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 80 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 80 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 80 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 80 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 80 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 80 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 80 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 80 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 80 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 80 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 80 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 80 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 80 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 80 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 80 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 80 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 80 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 80 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 81 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 81 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 81 abort iostream.lua:360 -- NYI: return to lower frame
---- TRACE 82 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 82 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 82 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 82 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 83 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 83 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 76 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 76 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 76 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 76 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 76 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 76 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 76 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 76 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 76 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 77 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 77 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 77 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 77 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 77 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 77 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 83 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 83 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 83 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 83 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 83 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 83 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 83 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 83 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 83 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 83 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 83 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 83 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 83 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 83 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 83 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 83 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 83 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 83 abort iostream.lua:249 -- NYI: bytecode 63
---- TRACE 83 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 83 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 83 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 83 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 83 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 83 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 83 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 83 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 83 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 83 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 84 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 84 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 84 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 84 abort ioloop.lua:77 -- NYI: bytecode 63
---- TRACE 85 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 85 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 85 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 85 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 85 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 85 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 85 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 85 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 85 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 85 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 85 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 85 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 85 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 85 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 85 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 85 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 85 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 85 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 85 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 85 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 85 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 85 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 85 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 85 abort httpserver.lua:120 -- NYI: return to lower frame
---- TRACE 85 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 85 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 85 abort ioloop.lua:144 -- NYI: FastFunc coroutine.create
---- TRACE 85 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 85 abort web.lua:463 -- NYI: FastFunc string.match
---- TRACE 85 abort httputil.lua:405 -- NYI: unsupported C type conversion
---- TRACE 85 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 85 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 85 abort ioloop.lua:159 -- NYI: FastFunc coroutine.resume
---- TRACE 85 abort iostream.lua:260 -- NYI: bytecode 63
---- TRACE 85 abort httputil.lua:454 -- NYI: FastFunc os.time
---- TRACE 85 abort httputil.lua:196 -- NYI: bytecode 50
---- TRACE 85 abort ioloop.lua:130 -- NYI: bytecode 63
---- TRACE 85 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 85 abort log.lua:101 -- NYI: FastFunc os.date
---- TRACE 85 abort iostream.lua:180 -- NYI: bytecode 63
---- TRACE 85 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 86 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 86 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 86 abort iostream.lua:426 -- NYI: unsupported C type conversion
---- TRACE 86 abort iostream.lua:426 -- NYI: unsupported C type conversion

/ John

2013/6/18 Mike Pall <mike-1306@xxxxxxxxxx>:
> John Abrahamsen wrote:
>> 0004  . UGET     3   0      ; ffi
>> 0005  . TGETS    3   3   0  ; "new"
>> 0006  . KSTR     4   1      ; "struct epoll_event[?]"
>> 0007  . MOV      5   2
>> 0008  . CALL     3   2   3
>> 0000  . . FUNCC               ; ffi.new
>> ---- TRACE 6 abort epoll_ffi.lua:144 -- NYI: unsupported C type conversion
>
> That looks like an unsupported case of ffi.new(). What does
> the corresponding Lua code look like and what's the size of the
> struct and the length of the VLA?
>
>> 0008  . . . TGETS    3   0   2  ; "io_loop"
>> 0009  . . . MOV      4   3
>> 0010  . . . TGETS    3   3   3  ; "add_callback"
>> 0011  . . . FNEW     5   4      ; iostream.lua:353
>> ---- TRACE 9 abort iostream.lua:363 -- NYI: bytecode 51
>>
>> This is from creating lambda functions.
>
> Are you re-creating the closures every time? If the upvalues are
> the same, then consider doing that outside of the main loop.
>
> --Mike
>



-- 
Best regards/Vennlig hilsen
John Abrahamsen
Mobile: (+47) 945 40 425

Other related posts: