diff --git a/benchmarks/nbody.ce b/benchmarks/nbody.ce index 7df0cf77..7eb7cf49 100644 --- a/benchmarks/nbody.ce +++ b/benchmarks/nbody.ce @@ -67,11 +67,11 @@ function Sun() { var bodies = Array(Sun(), Jupiter(), Saturn(), Uranus(), Neptune()); function offsetMomentum() { - let px = 0; - let py = 0; - let pz = 0; + var px = 0; + var py = 0; + var pz = 0; var size = bodies.length; - for (let i = 0; i < size; i++) { + for (var i = 0; i < size; i++) { var body = bodies[i]; var mass = body.mass; px += body.vx * mass; @@ -88,12 +88,12 @@ function offsetMomentum() { function advance(dt) { var size = bodies.length; - for (let i = 0; i < size; i++) { + for (var i = 0; i < size; i++) { var bodyi = bodies[i]; - let vxi = bodyi.vx; - let vyi = bodyi.vy; - let vzi = bodyi.vz; - for (let j = i + 1; j < size; j++) { + var vxi = bodyi.vx; + var vyi = bodyi.vy; + var vzi = bodyi.vz; + for (var j = i + 1; j < size; j++) { var bodyj = bodies[j]; var dx = bodyi.x - bodyj.x; var dy = bodyi.y - bodyj.y; @@ -117,7 +117,7 @@ function advance(dt) { bodyi.vz = vzi; } - for (let i = 0; i < size; i++) { + for (var i = 0; i < size; i++) { var body = bodies[i]; body.x += dt * body.vx; body.y += dt * body.vy; @@ -126,16 +126,16 @@ function advance(dt) { } function energy() { - let e = 0; + var e = 0; var size = bodies.length; - for (let i = 0; i < size; i++) { + for (var i = 0; i < size; i++) { var bodyi = bodies[i]; e += 0.5 * bodyi.mass * ( bodyi.vx * bodyi.vx + bodyi.vy * bodyi.vy + bodyi.vz * bodyi.vz ); - for (let j = i + 1; j < size; j++) { + for (var j = i + 1; j < size; j++) { var bodyj = bodies[j]; var dx = bodyi.x - bodyj.x; var dy = bodyi.y - bodyj.y; @@ -148,14 +148,41 @@ function energy() { return e; } -var n = arg[0] || 1000000 +var n = arg[0] || 100000 offsetMomentum(); log.console(`n = ${n}`) log.console(energy().toFixed(9)) -for (let i = 0; i < n; i++) +for (var i = 0; i < n; i++) advance(0.01); log.console(energy().toFixed(9)) +var js = use('js') + +// Get function metadata +var fn_info = js.fn_info(advance) +log.console(`${fn_info.filename}:${fn_info.line}:${fn_info.column}: function: ${fn_info.name}`) + +// Display arguments +if (fn_info.args && fn_info.args.length > 0) { + log.console(` args: ${fn_info.args.join(' ')}`) +} + +// Display local variables +if (fn_info.locals && fn_info.locals.length > 0) { + log.console(' locals:') + for (var i = 0; i < fn_info.locals.length; i++) { + var local = fn_info.locals[i] + log.console(` ${local.index}: ${local.type} ${local.name}`) + } +} + +// Display stack size +log.console(` stack_size: ${fn_info.stack_size}`) + +// Display disassembly +log.console(json.encode(js.disassemble(advance))) +log.console(js.disassemble(advance).length) + $_.stop() \ No newline at end of file diff --git a/prosperon/prosperon.ce b/prosperon/prosperon.ce index 4c608d30..55e59c36 100644 --- a/prosperon/prosperon.ce +++ b/prosperon/prosperon.ce @@ -237,6 +237,8 @@ function translate_draw_commands(commands) { src: img.rect } }) + + log.console(json.encode(renderer_commands[renderer_commands.length-1])) break case "draw_text": @@ -397,8 +399,6 @@ function render_step() { }) } - - $_.receiver(e => { switch(e.op) { case 'resolution': diff --git a/source/qjs_sdl_video.c b/source/qjs_sdl_video.c index 7df95f3d..687fd652 100644 --- a/source/qjs_sdl_video.c +++ b/source/qjs_sdl_video.c @@ -246,7 +246,7 @@ static JSValue js_window_constructor(JSContext *js, JSValueConst new_target, int // Handle text input JSValue text_input = JS_GetPropertyStr(js, opts, "textInput"); if (JS_ToBool(js, text_input)) { - SDL_StartTextInput(window); +// SDL_StartTextInput(window); } JS_FreeValue(js, text_input); @@ -1781,8 +1781,6 @@ JSC_CCALL(sdl_createWindowAndRenderer, #include "qjs_wota.h" JSValue js_sdl_video_use(JSContext *js) { - printf("initing on thread %d\n", SDL_GetThreadID(NULL)); - if (!SDL_Init(SDL_INIT_VIDEO)) return JS_ThrowInternalError(js, "Unable to initialize video subsystem: %s", SDL_GetError());