-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Funciones agregadas: libes imprimir escribir poner libnucleoex establecer_modo_seguro modo_seguro_estado modo_seguro_forzado ultimo_error generar_error version libruta crear_dir crear_directorio remover_dir remover_directorio listar_dir listar_directorio existe es_dir es_directorio es_archivo
- Loading branch information
0 parents
commit 190c776
Showing
14 changed files
with
2,141 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Prerequisites | ||
*.d | ||
|
||
# Compiled Object files | ||
*.slo | ||
*.lo | ||
*.o | ||
*.obj | ||
|
||
# Precompiled Headers | ||
*.gch | ||
*.pch | ||
|
||
# Compiled Dynamic libraries | ||
*.so | ||
*.dylib | ||
*.dll | ||
|
||
# Fortran module files | ||
*.mod | ||
*.smod | ||
|
||
# Compiled Static libraries | ||
*.lai | ||
*.la | ||
*.a | ||
*.lib | ||
|
||
# Executables | ||
*.exe | ||
*.out | ||
*.app | ||
|
||
# archivos de cmake | ||
CMakeFiles/ | ||
build/ | ||
CMakeCache.txt | ||
cmake_install.cmake | ||
install_manifest.txt | ||
|
||
# compilados | ||
*.so | ||
*.dll | ||
Makefile | ||
|
||
# Otros | ||
temp/ | ||
temp.* | ||
test.* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
################################################################################ | ||
# Para mas información de este archivo visite la pagina de cmake: | ||
# https://cmake.org/documentation/ | ||
################################################################################ | ||
|
||
#Establece la versión mínima requerida de cmake para un proyecto. | ||
cmake_minimum_required(VERSION 3.0.2) | ||
|
||
#Establece un nombre para el proyecto | ||
project (latino-libnucleoex) | ||
|
||
option(MODO_SEGURO_FORZADO "Usar modo seguro forzado" OFF) | ||
option(MODO_SEGURO "Usar modo seguro" OFF) | ||
|
||
if(MODO_SEGURO_FORZADO) | ||
add_definitions(-DMODO_SEGURO_FORZADO) | ||
elseif(MODO_SEGURO) | ||
add_definitions(-DMODO_SEGURO) | ||
endif() | ||
|
||
if(WIN32) | ||
# Arquitectura del build | ||
set(TARGET_ARCH_REGEX "^.*-march[= ]([^ ]+).*$") | ||
string(REGEX MATCH "${TARGET_ARCH_REGEX}" TARGET_ARCH_MATCH "" "" ${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}) | ||
if(TARGET_ARCH_MATCH) | ||
string(REGEX REPLACE "${TARGET_ARCH_REGEX}" "\\1" TARGET_ARCH ${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}) | ||
else() | ||
set(TARGET_ARCH ${CMAKE_HOST_SYSTEM_PROCESSOR}) | ||
endif() | ||
|
||
# Establecer paths donde se instalo latino | ||
set(LATINO_PATH "$ENV{LATINO_PATH}/bin" CACHE FILEPATH "Ruta de instalacion de latino.exe") | ||
set(LATINO_LIBC "$ENV{LATINO_LIBC}" CACHE FILEPATH "Ruta de instalacion de latino.dll") | ||
set(LATINO_INCLUDE "$ENV{LATINO_PATH}/include" CACHE FILEPATH "Ruta de instalacion de latino/include") | ||
|
||
# Enlazar | ||
include_directories(${LATINO_INCLUDE} "include") | ||
link_directories(${LATINO_PATH}) | ||
|
||
message(STATUS "TARGET_ARCH: ${TARGET_ARCH}") | ||
message(STATUS "LATINO_PATH: ${LATINO_PATH}") | ||
message(STATUS "LATINO_INCLUDE: ${LATINO_INCLUDE}") | ||
message(STATUS "LATINO_LIBC: ${LATINO_LIBC}") | ||
else() | ||
include_directories("include") | ||
endif() | ||
|
||
# msys | ||
if(MSYS) | ||
# Path en donde esta instalado latino | ||
LINK_DIRECTORIES("/d/work/lenguaje-latino/latino/msys2") | ||
endif() | ||
|
||
set(SRC_FILES src/latino-libnucleoex.c src/latino-libtipos.c src/latino-libruta.c src/latino-libes.c) | ||
|
||
#Agrega una biblioteca al proyecto utilizando los | ||
if(MINGW) | ||
#archivos de origen especificados. | ||
set(CMAKE_SHARED_LIBRARY_PREFIX "") | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--allow-multiple-definition") | ||
add_library(latino-libnucleoex SHARED ${SRC_FILES}) | ||
target_link_libraries(latino-libnucleoex ${LATINO_PATH}/latino.dll) | ||
else() | ||
#archivos de origen especificados. | ||
add_library(latino-libnucleoex SHARED ${SRC_FILES}) | ||
|
||
#Vincula un objetivo a bibliotecas determinadas. | ||
target_link_libraries(latino-libnucleoex latino) | ||
endif() | ||
|
||
#Especifica las reglas que se ejecutarán en el momento de la instalación. | ||
# Especifica las reglas que se ejecutarán en el momento de la instalación. | ||
if(WIN32) | ||
install(TARGETS latino-libnucleoex DESTINATION ${LATINO_PATH}) | ||
else() | ||
install(TARGETS latino-libnucleoex DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2023 FrankC64 | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
# latino-lib-nucleoex | ||
latino-lib-nucleoex es una extensión para Latino, la cual integra más funciones para expandir las capacidades del lenguaje. | ||
|
||
<a name="tabla"></a> | ||
## Tabla de contenidos | ||
* [Tabla de contenidos](#tabla) | ||
* [Instalación](#instalacion) | ||
* [Instalación (LAP)](#instalacion_lap) | ||
* [Instalación manual](#instalacion_manual) | ||
* [Compilación](#compilacion) | ||
* [Windows](#windows) | ||
* [MinGW](#mingw) | ||
* [Visual Studio](#visual_studio) | ||
* [Linux](#linux) | ||
* [Wiki](#wiki) | ||
|
||
<a name="instalacion"></a> | ||
## Instalación | ||
Antes de comenzar, debe saber que la instalación **SIN COMPILACIÓN** es exclusivamente para la versión **1.4.0** de Latino en **Windows**, por lo que si usted tiene una versión superior o inferior o se encuentra en un sistema que no sea Windows debe consultar el apartado de [compilación](#compilacion). | ||
|
||
<a name="instalacion_lap"></a> | ||
### Instalación (LAP) | ||
El primer método de instalación es a través del administrador de paquetes **LAP**. Antes de continuar debe tener **Python** instalado. | ||
|
||
**1-** Instalamos el administrador de paquetes con **pip**. | ||
```Batch | ||
pip install LAP-latino-client | ||
``` | ||
|
||
**2-** Nos ubicamos en la carpeta donde está nuestro proyecto, en caso contrario la librería será instalada fuera del alcance de Latino. | ||
|
||
**3-** Utilizamos **LAP** para instalar la librería. | ||
```Batch | ||
python -m LAP instalar latino-lib-nucleox | ||
``` | ||
|
||
**4-** En la parte superior de su script de Latino ponga lo siguiente: | ||
```Latino | ||
incluir("libnucleoex") | ||
``` | ||
|
||
Y ya está todo listo para utilizar la librería. | ||
|
||
<a name="instalacion_manual"></a> | ||
### Instalación manual | ||
Aquí se muestra paso a paso la forma de instalar la librería en caso de no tener **Python** o no querer utilizar el administrador de paquetes **LAP**. | ||
|
||
**1-** Haga click [aquí](https://github.com/FrankC64/latino-lib-nucleox/releases/latest/download/latino-lib-nucleox.zip) para descargar la última versión. | ||
|
||
**2-** Vaya a la carpeta de instalación de Latino y en la subcaperta "bin" extraiga **latino-libnucleoex.dll**. | ||
|
||
**3-** En la parte superior de su script de Latino ponga lo siguiente: | ||
```Latino | ||
incluir("libnucleoex") | ||
``` | ||
|
||
Y ya está todo listo para utilizar la librería. | ||
|
||
<a name="compilacion"></a> | ||
## Compilación | ||
|
||
<a name="windows"></a> | ||
### Windows | ||
|
||
**Requisitos:** | ||
* Tener instalado [cmake](https://cmake.org/download/). | ||
* Tener instalado [git](https://git-scm.com/download/win). | ||
* Tener la siguiente variable de entorno: | ||
``` | ||
LATINO_PATH=C:\ruta_de_instalacion_de_latino | ||
``` | ||
En caso de no tenerla deberá agregarla en las variables de entorno de Windows. | ||
<a name="mingw"></a> | ||
**Compilación (MinGW):**<br> | ||
Ejecutar lo siguiente en su consola/terminal: | ||
``` | ||
git clone https://github.com/FrankC64/latino-lib-nucleoex.git | ||
cd latino-lib-nucleoex | ||
mkdir build | ||
cd build | ||
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ..\ | ||
mingw32-make install | ||
``` | ||
<a name="visual_studio"></a> | ||
**Compilación (Visual Studio):**<br> | ||
Ejecutar lo siguiente en su consola/terminal: | ||
``` | ||
git clone https://github.com/FrankC64/latino-lib-nucleoex.git | ||
cd latino-lib-nucleoex | ||
mkdir build | ||
cd build | ||
cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release ..\ | ||
cmake --build . --target install --config Release | ||
``` | ||
<a name="linux"></a> | ||
### Linux | ||
**Requisitos:**<br> | ||
Antes de comenzar ejecute uno de los siguientes comandos en la terminal dependiendo de su sistema: | ||
* Debian / Ubuntu | ||
```Bash | ||
sudo apt-get install cmake git | ||
``` | ||
* Arch | ||
```Bash | ||
sudo pacman -S cmake git | ||
``` | ||
* Fedora / CentOS | ||
```Bash | ||
sudo dnf -y install cmake git | ||
``` | ||
**Compilación:**<br> | ||
Ejecutar lo siguiente en la terminal: | ||
``` | ||
git clone https://github.com/FrankC64/latino-lib-nucleoex.git | ||
cd latino-lib-nucleoex | ||
mkdir build | ||
cd build | ||
cmake -DCMAKE_BUILD_TYPE=Release ../ | ||
sudo make install | ||
``` | ||
<a name="wiki"></a> | ||
## Wiki | ||
Click [aquí](https://github.com/FrankC64/latino-lib-nucleox/wiki) para conocer las funciones de la librería. | ||
## Preguntas y respuestas | ||
\- **¿Qué es el modo seguro?**<br> | ||
Como actualmente no existe la forma de controlar errores y excepciones en Latino se implementó una funcionalidad para evitar que los errores producidos por la librería detenga el funcionamiento del código y el programador pueda tomar una decisión de qué hacer en caso de que se produzcan estos errores. | ||
\- **¿Cómo compilo la librería para usar el modo seguro de forma predeterminada o forzada?**<br> | ||
Al momento de utilizar el comando **cmake** ponga como instrucción lo siguiente: | ||
``` | ||
-DMODO_SEGURO=1 | ||
``` | ||
en caso de que quiera que por defecto el modo seguro esté habilitado y | ||
``` | ||
-DMODO_SEGURO_FORZADO=1 | ||
``` | ||
en caso de que desee que el modo seguro esté siempre habilitado y no se pueda modificar desde Latino. | ||
\- **Estoy usando Linux y Latino no carga la librería.**<br> | ||
Si esto le sucede deberá escribir el siguiente comando en su terminal: | ||
``` | ||
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH | ||
``` | ||
Y el problema será solucionado. Si quiere una solución definitiva ejecute el siguiente comando: | ||
``` | ||
echo 'export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"' >> ~/.profile | ||
``` | ||
Y reinicie su sistema para que se aplique el cambio correctamente. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// incluye el modulo en latino | ||
incluir("libnucleoex") | ||
|
||
libes.imprimir("libnucleoex versión: " .. libnucleoex.version() .. "\n") | ||
|
||
imprimir("Creamos test.") | ||
libruta.crear_dir("test") | ||
|
||
imprimir("test existe: " .. libruta.existe("test")) | ||
|
||
imprimir("Eliminanos a test.") | ||
libruta.remover_dir("test") | ||
imprimir("test existe: " .. libruta.existe("test")) |
Oops, something went wrong.