martes, 23 de febrero de 2016

Arranca el 2016

El ritmo de desarrollo de ZinjaI y PSeInt empiezan de a poco a volver a la normalidad, después de unos cuantos meses demasiado quietos. En estos días publiqué las primeras versiones de 2016 de ambos proyectos. No hay cambios muy grandes, pero sí muchos detalles, especialmente en ZinjaI. En este post les resumo el estado de ambos y les adelanto algunos planes para 2016.


PSeInt

Empezando por los cambios en PSeInt, tengo que decir que no hay grandes novedades. Hice primero hace algunas semanas una pasada rápida por los cientos de mensajes atrasados que tengo en los foros tratando de identificar rápidamente los reportes de errores más importantes, y empecé por corregir eso. Debo haber respondido por ahora solamente a un tercio de los hilos del foro que estaban pendientes. Ya se justifica una actualización, porque se juntaron algunas correcciones, y además recibí desde la última release varios perfiles nuevos. Pero falta bastante trabajo, así que seguiré todas las semanas intentando responder más de lo que se genera, como para de a poco ir recuperándome del atraso.

Más aún, en un mes empiezan las clases en mi universidad y empiezo entonces a usar PSeInt en el aula con mis alumnos. Esto hace que reciba feedback de primera mano, acelerando el proceso de detección y corrección de errores, generando también nuevas ideas. Es de esperar entonces que, como todos los años, durante esta etapa se vea mayor desarrollo y menor espera entre versiones.


ZinjaI

Por el lado de ZinjaI, el trabajo ha estado un poquito menos estancado. Como la mayoría de mis otras ocupaciones implican programar en C++, hacen que indirectamente siga retocándolo. Por esto, además de las tres o cuatro pequeñas novedades, en ZinjaI hay muchísimos detalles y correcciones para esta versión. Entre todo eso, hay un cambio a destacar, no porque sea gran cosa, sino porque cambia el comportamiento del entorno para una acción muy frecuente: abrir un fuente ya existente. A partir de esta nueva versión las plantillas del modo "programa simple" (sin proyecto) se utilizarán también al abrir un archivo existente (ya no solo al crearlo).

Hasta ahora, al crear un programa simple, el asistente nos hacía seleccionar una plantilla para configura la compilación. Pero, como esta configuración no es parte del código fuente, y como en este modo no hay archivo de proyecto, se perdía al cerrar el archivo. Al reabrirlo, había que reconfigurar la compilación desde Ejecución->Opciones. En esta nueva versión, al abrir un programa simple, ZinjaI utilizará los argumentos de una plantilla, que usualmente será la que se haya elegido como predeterminada, pero se podrá cambiar desde las preferencias (una para  C++ y otra para C). Entonces si, por ejemplo, usualmente trabajamos con OpenGL, podemos fijar esa plantilla como predeterminada para que todo programa simple (que creemos o que abramos) la utilice, y dejar el viejo mecanismo para cambiarla solo en los casos excepcionales.

Como resultado, la lógica que utiliza ZinjaI para armar el comando de compilación resulta bastante rebuscada. En el 99% de los casos, esto no será un problema, ya que mientras el código compile, al alumno no le interesa demasiado analizar qué sucede exactamente por detrás. Pero, para el usuario avanzado que le quiera conocer o controlar al detalle la compilación, hay cada vez más factores a tener en cuenta. En breve armaré un post como para documentarlos y pasarlo luego al sistema de ayuda.

Finalmente, les comento dos cambios internos importantes que se venían posponiendo y que ya no voy a poder esquivar más. Uno de ellos (que aplica también a PSeInt) es el pasaje a la versión 3 de wxWidgets, y potencialmente a las compilaciones Unicode. El otro es la actualización de MinGW, lo que seguramente desencadenará en una versión de 64bits, y actualizaciones de todos los complementos. Ambos cambios plantean varios desafíos y generan nuevos problemas. Les dedicaré en las próximas semanas un post a cada uno para detallar mejor cuáles son los problemas y  pasos a seguir.


¿MotoGT?

Como daño colateral de todo este trabajo, no he podido tocar MotoGT2 en todas las vacaciones (aunque quería hacerlo), y parece que pasará un tiempo más hasta que pueda completarlo. Por el momento, PSeInt y ZinjaI tienen la prioridad. Resumiendo: descarguen cuanto antes las recientes actualizaciones, y manténganse atentos a las novedades, ya que las habrá en ambos frentes.

3 comentarios:

  1. Me parece muy bueno lo de wxWidgets.

    <>

    ¿El texto de arriba sigue vigente?

    Gracias por PSeInt.

    ResponderEliminar
  2. Me parece muy bueno lo de wxWidgets.

    Por ejemplo, en las próximas versiones de wxWidgets, el componente adicional se compilará agregando "--enable-stc" al comando del configure, por lo que los últimos pasos ("cd contrib/src/stc" y "make && sudo make install") no serán necesarios.

    ¿El texto de arriba sigue vigente?

    Gracias por PSeInt.

    ResponderEliminar
  3. https://sourceforge.net/p/pseint/discussion/2368321/thread/717c8465/

    ResponderEliminar