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.

SplinterGU

me corrijo, era 338... diablos que no veo nada... ahora veo el changelog
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

bugfixs

r336 | splintergu | 2016-10-26 15:40:26 -0300 (mié 26 de oct de 2016) | 1 línea

- fix bitmap analyze for 32 bits maps
------------------------------------------------------------------------
r337 | splintergu | 2017-03-07 00:55:20 -0300 (mar 07 de mar de 2017) | 2 líneas

- fix build linux
- fix problem with put_screen
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

blostec

Hola Splinter, acabo de bajar la r339 que aun estaba con la r335. Llevo un tiempo apartado del foro, es bueno ver que aun sigues con el desarrollo, muchas gracias por tu esfuerzo y dedicación. Saludos!

l1nk3rn3l

Enhorabuena gracias por las mejoras como siempre.. 

el post es de marzo pero a veces no hay tiempo para leerse todo el foro

;D

SplinterGU

de nada! tampoco hice un gran anuncio.

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

blostec

Splinter podrías poner el Changelog de la r339 para ver que los cambios. Muchas gracias, a ver si esta semana puedo dedicarle tiempo y rescatar mi viejo proyecto que ya sería hora  ;D

SplinterGU

bug detectado, cambios en el svn.

- fix crash with use of ternary operator in some conditions.
- add NOP mnemonic

el bug afecta a todos los productos derivados (incluso fenix) (no podemos ser menos que Intel, asi que teniamos que detectar un bug viejo)

el tema esta cuando se tiene una expresion con una suma o resta y luego un operador ternario, aca pongo unos ejemplos, y una nota cuales crashean.


   res =  ( var2 != 3 ) ? 5 : 2 ;
   res = var1 + ( ( 1 != 3 ) ? 5 : 2 );
   res = var1 * ( ( var2 != 3 ) ? 5 : 2 );
   res = ( ( var2 != 3 ) ? 5 : 2 ) + var1;
   res = var1 + ( ( var2 != 3 ) ? 5 : 2 ); // crash
   res = var1 + ( ( var2 != 3 ) ? var4 : var3 );
   res = var1 + ( ( var2 != 3 ) ? 1 : var3 );
   res = var1 + ( ( var2 != 3 ) ? var3 : 1 ); // crash
   res = var1 + ( ( var2 != 3 ) ? 1 : ( ( var2 != 3 ) ? 1 : var3 ) );


la condicion del error es cuando se cumple la condicion y el elemento else es un valor constante.

el compilador estaba haciendo una optimizacion que no correspondia.

ejemplo de test completo


PROGRAM crash;

#if __BGD__ == 2
   import "mod_misc";
#else
   import "mod_say";
#endif

PRIVATE
   int var1 = 100;
   int var2 = 1;
   int var3 = 99;
   int var4 = 66;
   int res;

BEGIN
//   res =  ( var2 != 3 ) ? 5 : 2 ;
//   res = var1 + ( ( 1 != 3 ) ? 5 : 2 );
//   res = var1 * ( ( var2 != 3 ) ? 5 : 2 );
//   res = ( ( var2 != 3 ) ? 5 : 2 ) + var1;
   res = var1 + ( ( var2 != 3 ) ? 5 : 2 ); // crash
//   res = var1 + ( ( var2 != 3 ) ? var4 : var3 );
//   res = var1 + ( ( var2 != 3 ) ? 1 : var3 );
   res = var1 + ( ( var2 != 3 ) ? var3 : 1 ); // crash
//   res = var1 + ( ( var2 != 3 ) ? 1 : ( ( var2 != 3 ) ? 1 : var3 ) );
   say(res);
end
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes


SplinterGU

gracias! en el svn pueden ver el cambio para fixear PixTudio
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

gecko

Torres Baldi Studio
http://torresbaldi.com

Drumpi

Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?
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 January 08, 2018, 12:30:53 AM
Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?

yo los uso mucho... :P
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

warrior_rockk

Quote from: SplinterGU on January 08, 2018, 01:09:27 AM
Quote from: Drumpi on January 08, 2018, 12:30:53 AM
Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?

yo los uso mucho... :P


me too!!
¿Y el mnemónico NOP para qué está implementado? En teoría es un operando sin ninguna función, ¿cierto?

SplinterGU

Quote from: warrior_rockk on January 08, 2018, 07:52:43 AM
Quote from: SplinterGU on January 08, 2018, 01:09:27 AM
Quote from: Drumpi on January 08, 2018, 12:30:53 AM
Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?

yo los uso mucho... :P


me too!!
¿Y el mnemónico NOP para qué está implementado? En teoría es un operando sin ninguna función, ¿cierto?

eso mismo, no hace nada...

y me sirvio para evitar el bug...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

warrior_rockk