Eval()

Started by Packo_z007, September 25, 2008, 06:30:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Packo_z007

Buenas. Pensaba que no se podia hacer una funcion de este tipo en un lenguaje compilado, pero para mi sorpresa me encontre con un source para C. Quería probarlo pero no lo puedo compilar. Tengo estos errores:

[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
C:\..\Bennu\Eval\Makefile.win [Build Error]  [Eval.exe] Error 1

¿Será muy complicado hacer una dll para bennu a partir de este source?


Adjunto el proyecto. Gracias
[STRING] *PANIC Too many strings, allocating more space

Packo_z007

Hola. Bueno, me puse a ver el source de esta libreria y es tan sorprendente como pensaba.. Me imaginaba que de alguna manera permitia evaluar expresiones como ("variable<cosa") pero lo que hace es simplemente resolver expresioens del tipo (variable"<"cosa).
Hice una nueva, un poco tocando de oido.. que simplemente hace comparaciones (==,<=,etc) por que es lo que necesito.. pero me tengo algunas dudas conceptuales acerca de como funciona esto de los modulos.

Por ejemplo.. si yo llamo a una libreria, en la cual hay variables globales.. ¿La memoria que ocupan se reserva la primera vez que llamo a una funcion desde bennu (como libreria_init())? ¿o se reserva/libera cada vez que llamo a una funcion de esa libreria?

Muchas gracias.
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

a ver...
la memoria que ocupa que cosa?

por otro lado, no se si eso te va a servir de mucho, ya que vas a tener que levantar los valores de las variables bennu (cosa que no se puede hacer en runtime, hay que declarar previamente que variables uno va a acceder)... o vas a tener un juego de variables solo en el ambito del evaluador, accesibles quizas a traves de alguna funcion dentro de la dll para eso...

un evaluador esta en planes, pero muy futuros, cuando incorporte el compilador en runtime...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

La memoria que ocupa esa variable global.
Puntualmente lo que no entiendo es si la libreria permanece "abierta" mientras se ejecuta el programa.
Es decir.. Si yo en la libreria declaro una variable global.. esta se reserva cada vez que llamo una funcion de la libreria o solo la primera vez..?


El tema del evaluador mio es mucho mas sencillo.. Necesito darle una utilidad muy puntual asi que voy a adaptarlo a eso. Por el momento va bien.. ahora lo que me falta es tratar de añadirle parentesis.
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

no, si es global solo se reserva 1 vez...
mas alla de eso, hay que dejar en claro que son cosas distintas una variable en C y otra en Bennu... y que las variables Bennu solo se declaran/reservan en tiempo de compilacion, no en tiempo de ejecucion...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

Gracias.. ahora me quedo claro.
[STRING] *PANIC Too many strings, allocating more space