Avances, Diario de...

Started by SplinterGU, April 17, 2008, 03:00:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hasta donde me explicó Slainte, la versión 0.84 de Fenix sufrió grandes cambios de limpieza de código, añadieron nuevas funcionalidades, optimizaron mucho código y se hizo algo con los tipos de variables. Creo recordar que se añadieron los FLOAT como nuevo tipo, y eso provocó muchas inestabilidades y bugs, y la versión 0.84 pasó a ser conocida como la más inestable de todas (al menos, por mi parte).
Gran parte de los fallos se corrigieron en una versión 0.84 de SVN no oficial, y en una posterior 0.84b, que aunque más estable, introdujo un par de errores aparte. Aquella fue la última oficial por parte del Fenix Team, el resto ya lo sabes tu mejor que nadie porque fue la que cogiste tu.

Creo que la 0.84 fue también la que introdujo el curioso bug de la variable local que no se podía usar, porque nunca se modificaba. Se "resolvía" creando una variable local que llamábamos "antibug", que no se usaba nunca.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

por suerte, al momento, esto no esta pasando...

y al momento, hay grandes cambios estructurales...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

bueno, news...

tras pasar varios dias tocando a fondo el core, debo decir que:

- se agregan nuevos tipos de datos: int64, qword, long (alias de int64), bool (alias de int64) y double.
- la vm ahora es 64bits.
- los binarios ahora son 64bits (aca debo comentar que luego voy a tener que darle una vuelta a todo el motor otra vez para poder generar binarios de 32bits con soporte de estos nuevos tipos de datos 64bits. Por que? Porque ahora el motor espera que los punteros sean 64bits, y en 32bits los punteros son 32bits, por lo que podria tener algun problema si no controlo adecuadamente esto.)
- pase a cmake (despues de perder unas cuantas horas peleando con autotools [autotools 10 - Splinter 0])

me queda generar la bgdtrm + bgdi + modulos (estan a medias)

quiero tambien mencionar que encontre una buena cantidad de bugs en los casteos de datos, corregi una parte (quizas todos), me falta testeo, pero hasta que no tenga el interprete no puedo probar.

toque bastante, asi que bennugd quedo un poco cambiado, no en estructura, pero hay cambios por todos lados.

ahhh, una contra a esto, es que posiblemente ahora que la vm es de 64bits, el binarios 32bits (quizas, quizas no), pierda un poquito de performance.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes

Evolución :)

La duda que me queda es... ¿bool es alias de int64? xD

¿Bool no viene de Boolean (true|false)?

FreeYourMind

una cosa es lo que ocupa su definicion, otra cosa son los valores que toma

panreyes

Aún así, me resulta gracioso xD

Son 64 bits, de los cuales 63 no sirven para nada.

SplinterGU

la unidad de la vm siempre fue el tamaño de la palabra, hasta ahora fue 32bits, ahora es 64bits... por que esto? hay muchas razones para hacerlo asi, pero la principal es por performance.

puedo tranquilamente cambiar bool que sea un alias de byte, pero eso no cambia que internamente en la VM ocupe 64bits, simplemente a nivel usuario (en estructuras y cuando se usa para salvar/cargar) ocupa 1 byte, pero cuando se mueve dentro del motor ocupa 64bits (todos los datos ocupan al menos 64bits)

de hecho lo voy a cambiar.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

¡Qué interesante!

Gracias por tenernos informados :)

Drumpi

¿Todas las variables ocupaban 32bits antes? ¿Y ahora 64? Pensaba que se agrupaban las variables del mismo tipo para ahorrar memoria (por ejemplo, si se declaraban 3 bytes seguidos, entre los tres ocupaban un int32)... o al menos en las structs tenía entendido que era así (creo que lo leí en el manual de DIV).

Es que si antes también ocupaban 32bits todas las variables (salvo strings, claro), me ahorro en el Echo tanto tipo diferente de datos y de tratar de tenerlos agrupados declarándolas a la vez, y las pongo todas en int y ya no tengo las pegas que tenía con el port de Wii LOL.

Me voy a ver la conferencia de M$ en el E3
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

Quote from: Drumpi on June 13, 2016, 03:33:34 PM
¿Todas las variables ocupaban 32bits antes? ¿Y ahora 64? Pensaba que se agrupaban las variables del mismo tipo para ahorrar memoria (por ejemplo, si se declaraban 3 bytes seguidos, entre los tres ocupaban un int32)... o al menos en las structs tenía entendido que era así (creo que lo leí en el manual de DIV).

Es que si antes también ocupaban 32bits todas las variables (salvo strings, claro), me ahorro en el Echo tanto tipo diferente de datos y de tratar de tenerlos agrupados declarándolas a la vez, y las pongo todas en int y ya no tengo las pegas que tenía con el port de Wii LOL.

Me voy a ver la conferencia de M$ en el E3

si no estan en structs no estan agrupadas... estan alineadas, para mejor performance.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

...
OK, entonces iré revisando el código con eso en mente.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

bennugd2-64bits rulando! (por el momento linux64 solamente, tengo que ver como armar el cmake cross para compilar en principio w64)

necesito algun servidor git popular o serio, gratis, y que permita proyectos privados, quiero mantenerlo el proyecto en privado hasta tener una version release.

necesito tambien ayuda con programas de ejemplos, inicialmente quiero testear el compilador, todos los tipos de datos, arrays, structs, sizes, conversiones de un tipo a otro, todos los tipos de calculos basicos (suma, resta, division, multiplicacion, modulo, incremento, decremento [pre y pos], etc) entre todos los tipos de datos, uso de punteros (lectura y escritura), salida a pantalla a traves de say es suficiente en esta parte.

si alguno se ofrece, sera muy agradecido, la idea es hacer un set de programas de test e incluirlos con el producto.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

Quote from: SplinterGU on June 21, 2016, 03:27:15 PM


necesito algun servidor git popular o serio, gratis, y que permita proyectos privados, quiero mantenerlo el proyecto en privado hasta tener una version release.




bitbucket
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

Quote from: JaViS on June 21, 2016, 03:50:31 PM
Quote from: SplinterGU on June 21, 2016, 03:27:15 PM


necesito algun servidor git popular o serio, gratis, y que permita proyectos privados, quiero mantenerlo el proyecto en privado hasta tener una version release.




bitbucket

voy a probarlo, gracias!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

darío

Bitbucket funciona muy bien. Si luego quieres visibilidad yo optaria por github cuando el repp ya no sea privado.
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats