Ubuntu PPA (Personal Package Archives for Ubuntu)

Started by josebita, March 11, 2009, 02:22:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

si, proba con punteros, no va a funcionar... no solo los punteros, hay otras cosas que devuelven punteros como identificadores...

Por ahora Bennu no es compatible con 64 bits...

Bueno, que disfrutes tus vacaciones.

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita


josebita

Bueno, el siguiente código sí me funciona en Ubuntu de 64 bits:
[code language="bennu"]import "mod_map"
import "mod_screen"
import "mod_say"
import "mod_mouse"
import "mod_key"
import "mod_video"
import "mod_proc";
import "mod_rand";

PROCESS main()
Private
int i=0;

Begin
    set_mode(640, 480, 16, MODE_WINDOW);
    graph = load_png("img.png");
    x=700;  /* Don't display this process' graph */
    for(i=0; i<100; i++)
        bola(rand(1, 639), rand(1, 479));
    end;
    while (!key(_esc))
        x=mouse.x;
        y=mouse.y;
        FRAME;
    End;
   
    let_me_alone();
    exit();
End;

Process bola(int x, int y)
Private
int vx=5;
int vy=4;

Begin
    graph = father.graph;
    LOOP
        if (y >= 480 || y <= 0)
            vy = -vy;
        end;
        if (x <= 0 || x >= 640)
            vx = -vx;
        end;
       
        x += vx;
        y+=vy;
        FRAME;
    End;
End;[/code]

Funciona como debería. De todas formas ya que el ejemplo no es muy extenso y dices que puede funcionar mal sólo compilo para i386.

Por cierto, que estoy actualizando al svn de hoy.

SplinterGU

proba con punteros...

y tambien funciones que devuelvan punteros... MAP_BUFFER... o las de paletas... new_pal...  las de blendop... blendop_new...
obviamente las news fallaran al usarlas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Acabo de actualizar la versión en el PPA a la del SVN de hoy. Debido a que he cambiado algunas cosas de sitio, lo mejor es que desinstaleis el bennugd-modules, actualiceis el bennugd-core* y después volvais a instalar el bennugd-core.
Siento esto y espero que no vuelva a pasar.

josebita

#20
Por cierto, perdón por no haber probado esto antes, pero el siguiente código me da el mismo resultado (no sé si correcto o erróneo, lo he copiado del wiki) en una máquina de 32 y de 64 bits:
[code language="bennu"]Import "mod_say";
Import "mod_mem";

Process main()
Private
    byte pointer pbyte;
    word pointer pword;
    int  pointer pint;
    int elements = 10;
    int i;
Begin
    // Allocate memory
    pbyte = alloc(elements);
    pword = alloc(elements*sizeof(word));
    pint  = alloc(elements*sizeof(int));

    // Reset memory to 0's
    memset (pbyte,0,elements);
    memsetw(pword,0,elements); // same as  memset(pword,0,elements*sizeof(word));
                               // because value-parameter is 0.
    memset (pint ,0,elements*sizeof(int)); // There isn't a "memseti()", so we need to
                                           // set the individual bytes to 0. To change
                                           // ints to nonzero values, memset() can't be
                                           // used easily

    // Write numbers to bytes and ints
    for(i=0; i<elements; i++)
        pbyte  = 133; // pbyte is the same as *(pbyte+i)
        *(pint+i) = 4555; // pint is the same as *(pint+i)
    end

    // Write numbers to words
    memsetw(pword,345,elements);

    // Show numbers
    for(i=0; i<elements; i++)
        say("byte["+i+"] = " + *(pbyte+i));
        say("word["+i+"] = " + pword);
        say("int ["+i+"] = " + pint);
    end

    // Free the used memory
    free(pbyte);
    free(pword);
    free(pint);

End[/code]
También me funciona (del wiki tb.):
[code language="bennu"]
Import "mod_map";
Import "mod_screen";


Process main()
Private
    int map;
Begin

    // Create a new graph of size 100x100 and color depth of 8bit
    map = new_map(100,100,8);
   
    // Clear the map red
    map_clear(0,map,rgb(255,0,0));

    // Put it in the center of the screen
    put(0,map,160,100);

    Loop
        frame;
    End

End
[/code]

Y sin embargo, esto muere miserablemente :(

SplinterGU

en 64 bits seguramente esta pisando cualquier area de memoria.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Claro, en fin, es una pena.
Cuando empieces a trabajar en los 64 bits, avisa y puedo probar lo que sea, ¿ok?.

SplinterGU

los 64 bits requieren un cambio que haria todo incompatible.

Bennu (y tambien fenix), usan "int" como unidad de dato, los punteros, las instrucciones, todo son "int" (32 bits), cuando uno usa un puntero, este se mete en un "int", entonces en 64 bits, los punteros quedan cortados a 32bits...

ummm... aunque si lo pensamos un poco, dudo que a menos que usemos mas de 4gb de ram en nuestros procesos o intentemos usar un puntero mas grande que 4gb, dudo que tengamos problemas.

pero por culpa de murphi, si hay 1 posibilidad en 100 millones, entonces sucedera.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Bueno, hoy le he dedicado un rato a esto y he actualizado el core a la versión r39 del svn, he creado el paquete bennugd-modules-dev (con sus correspondientes scripts para pkg-config, que son un montón) y he subido mi librería pango, que ahora es muy fácil de instalar en ubuntu/debian.

Por cierto, Splinter, he sacado el log del svn y lo he metido en el fichero ChangeLog, espero que no te moleste, pero es que me daba cosita dejarlo en blanco.

SplinterGU

me parece adecuado... gracias...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Acabo de subir fsock. El sistema de compilación anda un poco lento últimamente, así que pueden tardar un buen rato en aparecer los binarios.

josebita

He añadido el mod_sqlite3 al PPA.

Además, ya he subido la versión 32 bits para ubuntu x86_64 de la libdes y tengo el bennugd-core y el bennugd-modules preparados. En cuanto arregle los dos o tres errores de compilación por paquete (montar el entorno de compilación cruzada es un poco lioso), estarán en el PPA también.

josebita

Bueno, hoy no tengo fuerzas para pegarme contra el gcc, mañana intento subir los paquetes.

SplinterGU

tranquilo, muchas gracias por todo lo que estas haciendo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2