Releases: lenguaje-latino/latino
Latino Version 1.4.4
Problemas resueltos
Problema regional
Existía un problema con la configuración regional del sistema, donde si el sistema usaba la coma como divisor de decimales (ej: 5,5), Latino terminaba ignorando los decimales declarados en la forma 5.5, por lo que trataba el número como un número entero.
Impresión de caracteres no ASCII en Windows
El lenguaje no imprimía de manera correcta en consola/terminal los caracteres que no fueran ASCII, como pueden ser las vocales acentuadas.
Creación de funciones en Windows
En Windows la propiedad "enClase" de la máquina virtual (lat_mv) no se iniciaba correctamente, por lo que provocaba un valor distinto de cero que reconocía cualquier función declarada como una clase.
Contexto (módulos y funciones anónimas)
El lenguaje tenía problemas para trabajar con el contexto adecuado lo cual provocaba en módulos y funciones anónimas errores imposibles de evitar.
Funciones y variables globales
Cuando se llamaba a una función que contenía variables y sub-funciones declaradas las mismas se exportaban de manera global, siendo accesibles fuera de la función llamada y provocando redefinición de variables globales.
Versiones más recientes de gcc
En versiones más recientes de gcc las línea de código "return (char)getCaracter(o);" y "os_v.osMayor = buffer.release;" provocaban errores de compilación por lo que fueron corregidas para ser compatibles tanto con versiones antiguas como nuevas.
Latino Version 1.4.1
Se crea versión para corregir el archivo .gitmodules
Latino Version 1.4.0
- Se agrega comando romper (break)
- Se agrega comando ir (goto)
- Se agrega comando rango (range)
- Se agrega soporte para multiples caso en elegir (switch)
- Se corrige error de memoria en la maquina virtual
Latino Version 1.3.0
Mejoras y novedades:
Mejoras:
Comandos generales:
- Se ha corregido el comando imprimirf() en MS-Windows
- Se ha corregido el comando error() en MS-Windows
- Se ha mejorado los comandos imprimirf() y cadena.formato()
- Tiene soporte para reconocer valores octales, hexadecimales y expresiones científicas.
- Los valores octales, hex y expresiones científicas deben de estar entre comillas (una cadena).
- Se ha solucionado el problema con las comillas simples en las cadenas
Lib "archivo"
- Se ha corregido el comando archivo.crear()
- Se ha mejorado el comando archivo.duplicar()
- Se ha corregido el comando archivo.renombrar()
Lib "cadena"
- Se ha corregido el comando cadena.reemplazar()
- Se ha corregido el comando cadena.recortar() en MS-Windows
- Se ha corregido el comando cadena.rellenar_izquierda() en MS-Windows
Lib "lista"
- Se ha corregido el comando lista.concatenar()
- Se ha corregido el comando lista.insertar()
Lib "mate"
- Se ha mejorado el comando mate.aleatorio()
Lib "sis"
- Se ha corregido el comando sis.iraxy() en MS-Windows
Novedades:
Lib "archivo"
- Se ha añadido el comando archivo.anexar()
- Se ha añadido un alias al comando archivo.eliminar(), y su nuevo alias es archivo.borrar()
- Se ha renombrado el comando archivo.poner() por archivo.escribir()
- Se ha renombrado el comanod archivo.copiar() por archivo.duplicar()
Lib "cadena"
- Se ha renombrar el comando cadena.regex() por cadena.regexl()
- Se ha renombrar el comando cadena.match() por cadena.regex()
Lib "dic"
- Se ha añadido el comando dic.eliminar()
- Se ha añadido el comando dic.contiene()
Lib "lista"
- Se ha añadido el comando lista.separar()
Lib "mate"
- Se ha añadido el comando mate.acosh()
- Se ha añadido el comando mate.asenh()
- Se ha añadido el comando mate.atanh()
- Se ha añadido el comando mate.pi()
- Se ha añadido el comando mate.max()
- Se ha añadido el comando mate.min()
- Se ha añadido el comando mate.raizc()
- Se ha añadido el comando mate.tau()
- Se ha añadido el comando mate.e()
- Se ha añadido el comando mate.trunc()
- Se ha añadido un nuevo alias en el comando mate.aleatorio() el cual es mate.alt()
- Se ha añadido el comando mate.redondear() y su alias mate.rnd()
- Se ha añadido los comandos mate.base(), mate.parte() y mate.porc()
Lib "sis"
- Se ha añadido el comando sis.usuario() en MS-Windows
Latino Version 1.3.0 RC
Latino 1.3.0 Release Candidate:
Esta versión también es conocida por la versión de Latino v1.2.9
Mejoras y novedades:
Mejoras
- Se ha arreglado el comando imprimirf() en MS-Windows
- Se ha arreglado el comando error() en MS-Windows
- Se ha arreglado el comando sis.iraxy() en MS-Windows
- Se ha arreglado el comando archivo.renombrar() en Unix y macOS
- Se ha mejorado los comandos imprimirf() y cadena.formato()
- Tiene soporte para reconocer valores octales, hexadecimales y expresiones científicas.
- Los valores octales, hex y expresiones científicas deben de estar entre comillas (una cadena).
- Se ha solucionado el problema con las comillas simples en las cadenas
Novedades
- Se ha añadido el comando sis.usuario() en MS-Windows
- Se ha añadido el comando archivo.anexar()
- Se ha añadido un alias al comando archivo.eliminar(), y su nuevo alias es archivo.borrar()
- Se ha renombrado el comando archivo.poner() por archivo.escribir()
- Se ha renombrado el comanod archivo.copiar() por archivo.duplicar()
Latino Version 1.2.0
-
Esta nueva versión corrige errores de memoria en Latino con MS-Windows y MacOS.
-
Se agrego un nuevo comando en la librería de sistemas:
sis.operativo("SISTEMA")- Éste comando devuelve un valor buleano.
- Éste comando también dispone de una version abreviada la cual es op.
Por el momento el comando operativo solo reconoce los sistemas operativos básicos tales como WIN32, APPLE, y LINUX (Estos nombre se tiene que escribir en mayúsculas).
- Continuación se presenta un ejemplo en el cual se hace uso de este nuevo comando en Latino:
-----------------------Código de ejemplo sis.operativo("SISTEMA")-----------------------
//prueba de sistemas operativos en Latino
si sis.op("WIN32")
escribir("Estoy en un sistema MS-Windows")
osi sis.operativo("APPLE")
escribir("Estoy en una Mac")
osi sis.operativo("LINUX")
escribir("Estoy en Linux")
sino
escribir("Lo sentimos, pero el sistema operativo solicitado no es reconocido por Latino. En caso de ser un error, verifique que usted tenga correctamente escrito el nombre del sistema.")
fin
Latino Version 1.1.0
Correcciones:
- Se corrigió el error de memoria al usar el comando leer() en MS-Windows
Mejoras:
- Esta versión de Latino, sostiene la primera versión compatible con los sistemas operativos de Apple Mac OS X, desde su versión 10.4 en adelante con procesador Intel integrado.
Latino version 1.0
- Se agrega soporte para funciones varargs
//una funcion varargs se crea con ... en su ultimo parametro
funcion mi_concatenar(arg1, arg2, ...)
//obtenemos los parametros varargs
args = [...]
//concatenamos los primeros 2 argumentos
r= arg1 .. arg2
desde (i=0; i < args; i++)
r = r .. args[i]
fin
retornar r
fin
//enviamos N parametros
msg = mi_concatenar("hola ", "mundo ", "este ", "es ", "un ", "mensaje ", "largo...")
escribir(msg) //imprime: "hola mundo este es un mensaje largo..."
//otro ejemplo
funcion sumar(...)
args = [...]
r=0
desde (i=0; i < args; i++)
r = r + args[i]
fin
retornar r
fin
x = sumar(1,2,3,4,5)
imprimir(x) //imprime: "15"
- Se agrega soporte para funciones multi-retorno y asignacion multiple de variables
//una funcion multi-retorno es aquella que regresa N parametros
funcion multi_retorno(msg)
#proceso el mensaje
//mas codigo
//regreso un valor exitoso y un mensaje, puede retornar mas mensajes
retornar verdadero, "el mensaje se envio correctamente"
fin
//asignacion multiple de variables
correcto, mensaje = multi_retorno("hola amigos")
si correcto
//imprime: "el mensaje se envio correctamente"
escribir(mensaje)
fin
- Se agrega soporte para cargar librerias dinamicas
Se separan las libreria json, curl, hiredis en nuevos repositorios y se instalan aparte como librerias dinamicas:
[latino-json] (https://github.com/primitivorm/latino-json)
[latino-curl] (https://github.com/primitivorm/latino-curl)
[latino-redis] (https://github.com/primitivorm/latino-redis)
Ver el archivo readme para la instalacion de cada libreria
Una vez instalada la libreria se podra usar como en ejemplo de cada README.md de la libreria
Por ejemplo:
//necesario para agregar la libreria dinamica
incluir("json")
escribir("-----------------------------------------------------")
escribir("convertimos de una cadena json a un objeto de latino:")
escribir("-----------------------------------------------------")
cad = '{"ok":true,"result":[{"update_id":558904697, "message":{"message_id":4507,"from":{"id":189041244,"first_name":"Bruno Ric (K)","username":"Jarriz"},"chat":{"id":189041244,"first_name":"Bruno Ric (K)","username":"Jarriz","type":"private"},"date":1475275449,"text":"hola latinos!!!"}}]}'
d = json.decodificar(cad)
escribir(d)
escribir("-----------------------------------------------------")
escribir("\nconvertimos un diccionario de latino a cadena json:")
escribir("-----------------------------------------------------")
dlat = { "uno" : 1, "dos" : 2, "tres" : ["esta" , "es", "una", "lista"]}
cad = json.codificar(dlat)
escribir(cad)
Latino version 0.9.1
- se agrego global
- se agrego operador ~= (expresiones regulares)
- se cambia operador -> por . (atributo)
- se cambia operador . por .. (concatenar)
- se agrega funcion cadena.match (expresiones regulares)
- se corrige funcion menu()
- más funciones para Redis (linux)
ver ejemplos/*