La implementación de algunas pruebas de tipo, especialmente para los tipos CONDITION, ahora es más ordenada y quizás más rápida, debido al código CMU CL originalmente de Douglas Crosher, portado por Martin Atzmueller. El número de versión del archivo fasl cambió nuevamente, por docenas de razones, algunas de las cuales son evidentes arriba. Se corrigió un error en COERCE, que ahora indica un error al coaccionar un tipo real racional a uno limitado que excluye la respuesta esperada. El compilador ahora puede integrar funciones que se definieron en un entorno léxico complejo (por ejemplo, dentro de un MACROLET). número de versión de archivo fasl incrementado debido al cambio en la estructura DEFSTRUCT-SLOT-DESCRIPTION. En una publicación de blog anterior, hablé sobre Objective-C Bridge, disponible al crear aplicaciones iOS. Esto es parte del RTL que permite que el código Delphi interactúe con el código API de Objective-C.
Además, Free Pascal admite la sobrecarga de funciones, la sobrecarga de operadores y las propiedades globales. El paquete de API de cliente de Firebird Pascal proporciona enlaces de lenguaje Pascal comunes a la API de Firebird que son independientes de la versión de la API de Firebird. Se admiten tanto las API heredadas como las de Firebird 3. El paquete fbintf proporciona la API de Firebird en un formato en el que todos los tipos de datos de SQL, parámetros de interfaz y resultados son tipos nativos de Pascal, incluidos todos los bloques de parámetros y la información de la base de datos.
Nuevo en la versión 1 0.32
Los números de versión del formato de archivo Fasl han aumentado nuevamente, porque la compatibilidad con la extensión Gray streams cambia el diseño de los objetos STREAM del sistema. El formato de archivo fasl ha cambiado de nuevo para permitir que la base de datos INFO del compilador admita macros de símbolos. número de versión de archivo fasl incrementado, debido al cambio incompatible en la estructura hacerbafles.info DEFSTRUCT-DESCRIPTION, y nuevamente debido a la nueva implementación de DEFINE-COMPILER-MACRO. Los objetos declarados como tipos MEMBER pueden ser argumentos admisibles para estructurar accesos. El compilador Free Pascal admite varias plataformas diferentes, como Mac, Linux y Windows. La sintaxis del lenguaje es semánticamente compatible con TP 7.0, así como con la mayoría de las versiones de Delphi.
Por lo tanto, es menos probable que SUBTYPEP regrese en general y, en particular, se corrigieron los errores 58 y 50. El compilador ahora puede derivar tipos con mayor precisión de las funciones COERCE y COMPILE. En las llamadas completas, el compilador ahora no genera comprobaciones para los tipos de argumentos declarados para todos los argumentos. en Alpha, el compilador logra compilar funciones que devuelven un número conocido de argumentos superior a 63. PPRINT-LOGICAL-BLOCK ahora es más exigente con los tipos de sus argumentos, según ANSI. El número de versión principal y el número de versión del archivo fasl se han incrementado debido a cambios incompatibles en el diseño de los símbolos estáticos.
Nuevo en la versión 1 0.30
El código Objective-C es código nativo compilado y el código Delphi es código nativo compilado, por lo que el puente permite que los dos conjuntos de código se lleven bien. Puede definir versiones de Delphi de clases de iOS, crear instancias de clases de Objective-C, heredar de clases de Objective-C y, en general, hacer lo necesario para acceder a partes de la API CocoaTouch que FireMonkey no consume ni muestra o partes de la API que no tienen un comportamiento similar expuesto por FireMonkey. Opciones de configuración, cálculo de suma de comprobación, personalización del menú, copiar el contenido del archivo seleccionado al portapapeles, habilitar / deshabilitar la búsqueda de actualizaciones, soporte para más extensiones de archivo (.lpr, .lfm, .proj).
Se corrigieron errores en otras funciones que tomaban objetos de entorno, permitiendo que las llamadas con un argumento de entorno NIL explícito se compilaran sin errores. Muchos, muchos errores reportados por Peter Van Eynde se han agregado a la lista de ERRORES; algunos incluso se han arreglado. Se han corregido algunas funciones matemáticas y hay nuevos optimizadores para derivar los tipos de COERCE y ARRAY-ELEMENT-TYPE, gracias al trabajo de Raymond Toy en CMU CL, adaptado por Martin Atzmueller. El formato de archivo fasl ha cambiado nuevamente, porque la representación interna de tipos ahora incluye una nueva ranura para admitir la nueva lógica SUBTYPEP-of-NOT-types. El sistema es más inteligente con las relaciones SUBTYPEP, especialmente aquellas que involucran tipos NOT.
- El sistema es más inteligente con las relaciones SUBTYPEP, especialmente aquellas que involucran tipos NOT.
- Muchos, muchos errores reportados por Peter Van Eynde se han agregado a la lista de ERRORES; algunos incluso se han arreglado.
- Se han corregido algunas funciones matemáticas y hay nuevos optimizadores para derivar los tipos de COERCE y ARRAY-ELEMENT-TYPE, gracias al trabajo de Raymond Toy en CMU CL, adaptado por Martin Atzmueller.
- Se corrigieron errores en otras funciones que tomaban objetos de entorno, permitiendo que las llamadas con un argumento de entorno NIL explícito se compilaran sin errores.
Se corrigió un error en DEFGENERIC que hacía que sobrescribiera la información de PROCLAIM FTYPE preexistente. Desafortunadamente, esto rompió la compatibilidad binaria nuevamente, ya que ahora los formularios generados por DEFGENERIC se refieren a funciones que no existían en 0.6.3. Los argumentos ordinarios que faltan en una llamada de macro ahora se detectan incluso cuando software almacen la lista de macro lambda contiene Los números de versión del archivo Fasl ahora son independientes de la CPU de destino, ya que históricamente la mayoría de los cambios en el sistema que requerían cambios en el número de versión han afectado a todas las CPU por igual. De manera similar, la versión del archivo fasl de bytes ahora es igual a la versión del archivo fasl normal.
Nuevo en la versión 0 6.7
La API de Pascal se presenta a un nivel y propósito similares a la API de IBPP Firebird proporcionada al mundo C. Es una dependencia necesaria para la versión 2 en adelante de IBX para Lazarus, y se proporciona como paquete independiente y como parte de IBX2. El compilador Free Pascal es un compilador Pascal y Object Pascal muy rápido y confiable con documentación completa para sus características y los dialectos Object Pascal que admite. El soporte al usuario y la corrección de errores receptivos son mucho mejores que los ofrecidos por la competencia comercial. Una excelente elección sobre ese otro compilador comercial de Pascal.
La familia NEXTGEN de compiladores de Delphi para las plataformas móviles cambió bastante cosas. De hecho, descubrí que tener varias versiones de FPC instaladas estropeaba mi Lazarus y producía el mismo error: no se pueden encontrar los contnrs de unidad utilizados por las máscaras. Acabo de cambiar el número de versión al último y lo puse en funcionamiento. Si tiene problemas para instalar a través del Centro de software, puede instalar la última versión descargando los archivos .deb. Si desea instalar la última versión, la siguiente forma lo ayudará.
De todos modos, el soporte de Android ofrece un puente API similar llamado Java Bridge. Ahora, las clases de Android SDK son clases de Java que viven en el mundo de Dalvik VM. El código Delphi es un código de máquina que se ejecuta en la CPU. Por lo tanto, Java Bridge utiliza JNI para comunicarse a través del límite nativo / administrado, pero básicamente ofrece un comportamiento muy similar. Puede declarar versiones de Delphi de clases de Android, crear instancias de ellas y comunicarse con ellas. Por lo tanto, se puede acceder en su mayor parte a aspectos de la API de Android que no son empleados por las aplicaciones regulares de Delphi. Esta vez, al menos, he aumentado la versión del formato de archivo FASL a 2, de modo que el problema se pueda detectar de forma fiable en lugar de provocar errores extraños.