El equipo que trabaja en el proyecto de Pascal libre ha liberado la versión 3.0 del compilador Free Pascal, con soporte a nuevas plataformas, así como un depósito de código fuente integrado para Pascal. Esta nueva versión, llamada “Pestering Peacock” mientras estaba en desarrollo, continúa soportando plataformas menos populares como OS/2, MsDOS en 8086, así como el uso de sistemas operativos modernos incluyendo las últimas versiones de Linux e iOS corriendo en AArch64.
El nuevo compilador tiene como objetivos nuevos la JVM (Java Virtual Machine) y Davlik, AIX, el modo real de 16 bits de MsDOS, Android, armhf EABI y AROS. Una de las nuevas características del compilador tiene que ver con las cadenas de caracteres, que ahora soporta algo que llaman “codepage-aware”, lo cual significa que cada string ansi incluye ahora una parte más con meta-información que indica el código de la página en donde los caracteres de la cadena han sido codificados. En las versiones pasadas de Free Pascal, la biblioteca de tiempo en ejecución (runtime), estaba basada en Turbo Pascal y Delphi 7, y entonces los tipos shortstrings, ansistrings y pchar no contenían información codificada añadida, por lo que se asumía que las cadenas estaban codificadas en el “sistema de codificación estándar” y pasaban sobre las llamadas del API del sistema operativo sin ninguna conversión.
Cuando salió Delphi 2009, Embarcadero cambió todo la RTL (runtime library) sobre el tipo UnicodeString, el cual representa las cadenas usando UTF-16. También hcieron el tipo Ansistring de forma que fuese “codepage-aware”, de forma que las AnsiStrings podrían interpretarse de acuerdo a los metadatos asignados. Esto ahora se ha añadido a Free Pascal.
Otro cambio es la inclusión de una aplicación llamada Pas2jni (Java Native Interface), que es un puente para el código en Pascal. Esto significa que el código en Pascal (incluyendo las clases y otras características avanzadas), puede ser usado ahora desde los programas de Java. Para las versiones futuras, se espera se soporten funciones genéricas, un generador de código LLVM y soporte para ISO y Pascal Extendido.
Todo esto suena muy bien pero en la práctica tengo mis más serias dudas. Cuando instalé Lazarus, que usa el compilador de Free Pascal, el depurador (debugger) era literalmente inutilizable. Daba valores erróneos y la compilación muchas veces decía haber terminado pero el código simplemente no hacía nada de lo esperado, vamos, no pasaba nada. En mi opinión personal, los desarrolladores de Free Pascal se han puesto sobre los hombros una labor titánica. Si vemos todas las plataformas que quieren abarcar, creo que no existe ningún otro sistema que sea tan ambicioso en el terreno de los compiladores.
Lo probaré a ver si las cosas han cambiado y yo estoy equivocado. Ojalá y sea así.
Referencias: