De vuelta a Fenix

Started by Drumpi, November 30, 2013, 06:48:37 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

fenix/bennugd es lo mismo.

no puedes usar ni en teoria punteros a strings... las strings de bennugd no son arrays de bytes, son un identificador (un int entero).

siempre termino explicando lo mismo, por eso tengo que cambiar el comportamiento de esto.

repito, no puedes usar punteros a string ni con bennugd.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Pero vamos a ver, si en Fenix no existe NULL, ni los modos de video de 32bits, ni el uso de GLOB en carpetas distintas, ni la carga de modúlos, ni modo7 en 16 bits, ni 4000 optimizaciones de rendimineto en funciones PUT y SCROLL ¿Cómo van a ser lo mismo?
Sí, comparten el 99% del lenguaje, pero hay cosas que hay que hacer diferentes. Es como decir que C y C++ son lo mismo (y creo que es una analogía casi perfecta :D :D :D).

No sé si internamente las strings son un puntero, un puntero a puntero, un ID para una clase o qué, pero desde el punto de vista del usuario es (o debería ser) un tipo más que se comporta como todos ¡Para eso se inventaron las clases ¿no?! Y hasta ahora, siempre me han funcionado correctamente, hasta las burradas más locas que te puedas imaginar.
Pero esta versión de Fenix, la 084, introdujo el tipo de dato FLOAT, y cambió todo el sistema interno de manejo de variables, resultando en un caos y apareciendo una cantidad de bugs que desde el porpio equipo de desarrollo se desaconsejó su uso en favor de la de CVS (que nunca se llegó a lanzar de forma oficial). Y eso es lo que da tantos problemas, no el manejo equivocado de las Strings.
Y al final no es culpa de nadie, es simplemente lo que pasa con los cambios mayores. Yo, de lo único que me quejo es de que, al contrario que en Windows o Linux, donde puedo elegir versión, para GP32 no tengo otra opción.
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

pues si que eres testarudo...

que tiene que ver que en bennugd exista NULL? NULL no es para strings... y no es mas que un define de 0 (cero).

fenix/bennugd es lo mismo en cuanto al manejo de strings.

totalmente equivocada tu apreciacion... ni fenix ni bennugd tienen clases... ni tampoco te ha funcionado siempre hacer cosas locas en strings... recuerdo que este tema ya lo tocaste hace tiempo, y se te explico hace tiempo que no se pueden usar punteros a strings... tu y muchos usuarios ya lo preguntaron, y se explico.

tampoco puedes argumentar que no te interesa como internamente se maneja, pues tanto en C como en C++ tienes que saber ciertas cosas... incluso con los datos tipo string en ciertos lenguajes hay cosas que no puedes hacer...

aca no se pueden usar punteros a strings, las strings no son un dato manejable por puntero, ya que se cargan y se descargan continuamente y el core necesita tener un rastreo de cada una de ellas, tanto cuando se inician como cuando se desinicializan... y si tu manejas strings por punteros, el sistema no puede saber si lo que apunta el puntero es una string que el alloco o area de datos no incializada.


[BANNER MODE ON]
"NO PUEDES USAR PUNTEROS A STRING"
[BANNER MODE OFF]

en fin (ejemplo)...


splinter@linux-dtax:~> bgdc null.prg                                                                                                                                                         
BGDC 1.0.0 (Oct  2 2013 23:03:10)                                                                                                                                                               
Bennu Game Development Compiler                                                                                                                                                                 

Copyright (c) 2006-2013 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)

/home/splinter/null.prg:7: warning: implicit conversion (INTEGER to STRING).

File null.dcb compiled (13406 bytes):

  Processes                     1
  Global data                 140 bytes
  Local data                   44 bytes
  Private data                  4 bytes
  Public data                   0 bytes
  Code                        104 bytes
  System processes              5
  Globals vars                  3
  Locals vars                   7
  Private vars                  1
  Publics vars                  0
  Identifiers                 185
  Structs                       1
  Strings                       4 (29 bytes)

splinter@linux-dtax:~> bgdi null
0
01
splinter@linux-dtax:~> cat null.prg
import "mod_say";

private
string a;

begin
a = NULL;
say(a);
a = a + 1;
say(a);
end


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