Skip to main content

This is my blog, more about me at marianoguerra.github.io

🦋 @marianoguerra.org 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra

repiola 0.6: jump a direcciones, call, ret y compilacion

para darle un cierre a esta idea que tuve alguna vez, implemente lo que faltaba para considerar el proyecto "terminado", lo unico que puede llegar a faltar es UIs mas copadas (como guardar programas etc.)

en esta release agregue soporte para saltar a una direccion almacenada en un registro:

set r2 2
jmp r2

salta a la direccion 2

call y ret permiten simular rutinas, call empuja el instruction pointer al stack y salta al label especificado, ret saca la direccion del stack y salta a ella:

jmp begin

: donothing
ret

: begin
call donothing

con estas features ya no hay muchas cosas que no se puedan hacer.

y para cerrar ahora cuando ejecutas un programa lo compila a bytecode y despues la maquina virtual ejecuta el bytecode directamente, hasta ahora las instrucciones eran compiladas a bytecode pero el manejo de los saltos era manejado por la clase Interpreter.

esto da una mejora de velocidad considerable para mi pobre celular (el mas barato con j2me :D)

en la pagina http://code.google.com/p/repiola/ se encuentran los jars y documentacion de todas las instrucciones.