Noticias que mencionan Lua

El NYI de LuaJIT que envenenó en silencio un bucle caliente sin relación

LuaJIT, el compilador JIT del lenguaje de scripting Lua —usado en juegos como Factorio y World of Warcraft y en herramientas como Neovim u OpenResty—, presume de velocidad, pero puede estrangular el rendimiento de forma inadvertida cuando el código activa uno de sus NYI (Not Yet Implemented): operac

La comunidad Lua debe aprender a dejar atrás las versiones antiguas

Hisham Mubarak, mantenedor de LuaRocks y autor de Teal, urge a la comunidad de programadores de Lua a abandonar la práctica de mantener compatibilidad indefinida con versiones obsoletas del lenguaje. El detonante fue la decisión de Mike Pall, creador de LuaJIT, de borrar en su repositorio las etique

Mapeo de bytecode a código fuente: técnicas y rendimiento

Cuando una máquina virtual basada en bytecode genera un error en tiempo de ejecución, necesita traducir el desplazamiento del bytecode a la línea del código fuente que lo produjo. Este artículo, surgido de los retos del capítulo 14 del libro 'Crafting Interpreters' de Robert Nystrom, analiza de form

Sistemas de compilación y el gestor de paquetes propuesto para civ

Este artículo examina qué debe ofrecer un sistema de compilación y expone el enfoque del proyecto civ, una herramienta escrita en alrededor de mil líneas de código que invoca un proceso de Lua en sandbox para interpretar configuraciones. El autor parte de una idea central: un sistema de compilación

Por qué log no es monótona en PHP y Lua: el caso base que rompe la intuición

Una falla silenciosa en la intuición matemática del cómputo En el mundo del software, una función tan aparentemente inocente como el logaritmo esconde trampas que rompen las expectativas más básicas de los programadores. Un análisis publicado por el desarrollador conocido como purplesyringa revela

DeepWiki bajo la lupa: cuando la documentación automática se inventa los datos

El autor del blog The Boston Diaries sometió a DeepWiki, un servicio que genera documentación automática de repositorios de GitHub, a una prueba con dos proyectos propios en C: mod_blog, un módulo de blogging de 7.400 líneas con 26 años de refinamiento, y a09, un ensamblador para el procesador Motor

clx: un compilador ahead-of-time de Lua con ejecutables nativos en C++20

clx es un compilador y runtime de Lua multiplataforma que genera ejecutables nativos independientes a partir de código Lua mediante cadenas de herramientas modernas de C++. Su objetivo no es competir por ser la implementación más rápida de Lua en todos los escenarios, sino ofrecer compilación ahead-

Trucos con literales de cadena en Lua para ahorrar 400 bytes

Este artículo describe las técnicas de compresión de código Lua empleadas en un proyecto de software para CC: Tweaked, una extensión de Minecraft que permite programar dentro del juego. Los autores explican cómo adaptaron bzip2 para reducir el tamaño de sus programas, ya que la suma de todo el códig

Cómo C++20 simplificó el bucle for con inicializador

El estándar C++20 introdujo una pequeña mejora sintáctica que acerca la forma de escribir bucles for en C++ a la de lenguajes como Python o Lua: la posibilidad de declarar variables en el propio encabezado del range-based for. Hasta C++17, recorrer un contenedor conservando el índice del elemento ex

Dos casos de estudio sobre los efectos inesperados de NaN en Python y Lua

NaN, el valor especial que representa «no es un número», infringe una de las reglas más asumidas en programación: que todo objeto es igual a sí mismo. Esa peculiaridad, definida en el estándar IEEE-754, se cuela en el diseño de lenguajes que dan por buena esa misma regla y produce comportamientos di

Filtros Lua en Pandoc: manipulación del AST sin dependencias externas

Los filtros de Pandoc son programas que permiten transformar el árbol de sintaxis abstracta (AST) del documento entre las fases de análisis y escritura. Los filtros tradicionales trabajan con una representación en JSON y pueden escribirse en cualquier lenguaje, pero presentan dos inconvenientes clar

LuaJIT 3.0 abre el debate sobre sus extensiones sintácticas

Mike Pall, responsable de LuaJIT, ha abierto el issue #1475 en el repositorio oficial del proyecto como punto central para definir las extensiones de sintaxis que incluirá la futura versión 3.0 del compilador. El hilo funcionará como documento vivo: la descripción recoge la propuesta inicial y un co

Lathe: una CLI en Go que genera tutoriales técnicos prácticos con LLM

Lathe es una herramienta de código abierto, escrita en Go, que combina un modelo de lenguaje (LLM) con una interfaz local para generar tutoriales técnicos prácticos y guiar al usuario paso a paso en su ejecución manual. Su propuesta se aleja del uso habitual del LLM como generador de código y lo reo

oproxy: un proxy MITM local y de código abierto para depurar tráfico

oproxy es un proxy local de código abierto, publicado bajo licencia MIT, diseñado para interceptar, inspeccionar, reproducir y modificar tráfico de red HTTP, HTTPS y SOCKS5 desde la propia máquina del desarrollador o dentro de un contenedor Docker. La herramienta combina un núcleo escrito en Rust co

Brume: instrumento multitímbro de escritorio con cuatro motores de síntesis

Brume es un instrumento musical multitímbro de escritorio que reúne cuatro motores de síntesis en una sola unidad y se integra con un DAW mediante un único cable USB. Funciona sobre una placa Raspberry Pi Compute Module 5 con Raspberry Pi OS Lite, arranca en pocos segundos y emplea un motor de audio

Por qué deberías probar Janet, un dialecto de Lisp minimalista

En un panorama de lenguajes de programación cada vez más complejos, Janet se presenta como una propuesta singular: un pequeño dialecto de Lisp que combina simplicidad, potencia expresiva y portabilidad. Este artículo del autor del libro 'Janet for Mortals' —publicado en abierto— defiende por qué cua

Lua: el lenguaje eficiente para reducir la huella de carbono

En el marco de la Agenda 2030 de la ONU, la eficiencia energética del software ha dejado de ser un lujo para convertirse en una necesidad crítica para reducir la huella de carbono global. Este artículo, titulado "The Green Side of the Lua", explora cómo las decisiones de arquitectura de software, es

Lo que comenzó como un pasatiempo se volvió un desafío técnico para PICO-8

El autor Michael Martin decidió tomar un descanso después de semanas de artículos intensivos y optar por hacer algo 'simple y sin complicaciones' en un lenguaje de alto nivel: un port del simulador 'Simulated Evolution' para PICO-8, una 'consola fantasia' que usa un dialecto de Lua. Sin embargo, est

Yvi: Un editor de texto en BASIC, creado desde cero

Este artículo narra la experiencia de un desarrollador en la creación de un editor de texto propio llamado `yvi`, inspirado en el clásico `Vi` (y `Vim`), utilizando el lenguaje BASIC, específicamente el dialecto `Yabasic`. El autor, con un trasfondo artístico y una pasión por reinventar herramientas

Ciberataque 'fast16': Precedió a Stuxnet por 5 años

Investigadores de SentinelLabs han descubierto un sofisticado marco de ciber sabotaje llamado 'fast16', cuyos componentes centrales datan de 2005. Este marco, que precede a Stuxnet por al menos cinco años, se caracteriza por la modificación selectiva del código en memoria de software de cálculo de a

Fast16: Ciberarma oculta, anterior a Stuxnet

Investigadores de SentinelOne han descubierto una sofisticada arma cibernética llamada Fast16, que precedió a Stuxnet en cinco años, permaneciendo indetectada durante 21 años. Fast16, cuya primera versión data del 30 de agosto de 2005, corrompía los cálculos en simulaciones científicas y de ingenier

C se acelera: Nuevo sistema añade JIT a intérpretes

Investigadores han desarrollado un sistema llamado 'yk' que permite transformar intérpretes de código C en máquinas virtuales (VM) con compiladores JIT (Just-In-Time) con una mínima modificación del código existente. Esto abre la posibilidad de mejorar el rendimiento de lenguajes como Lua, Ruby y Py

Firefox más rápido: optimización acelera compilaciones

Mozilla ha logrado acelerar las compilaciones de Firefox en un 17% gracias a la optimización del sistema de caché de compilación (buildcache), según anunció Andreas Farre en su blog. La mejora se consiguió integrando un plugin Lua en buildcache para almacenar en caché el código generado a partir de

ClojureFnl: Compilador une Clojure y Fennel

Un desarrollador ha creado 'ClojureFnl', un compilador que traduce código Clojure a Fennel, un lenguaje Lisp inspirado en Clojure y que se ejecuta en Lua. El proyecto surgió inicialmente como una biblioteca llamada 'fennel-cljlib' en 2019, cuyo objetivo era incorporar características de Clojure en F

Wesnoth: estrategia de código abierto que sigue creciendo

The Battle for Wesnoth, un juego de estrategia por turnos de código abierto con temática de alta fantasía, ha estado disponible para descarga durante años y continúa evolucionando. Desarrollado por una comunidad global de voluntarios, el juego ofrece una amplia variedad de contenido, incluyendo 17 c

Hoja de cálculo en terminal: así es sc-im

sc-im es una calculadora de hojas de cálculo innovadora, diseñada para funcionar directamente en la terminal. Inspirada en el proyecto original 'sc' de James Gosling y Mark Weiser, y con mejoras de Chuck Martin, sc-im ofrece una alternativa potente y flexible a las hojas de cálculo tradicionales, es

Crea juegos 2D con LÖVE: framework sencillo y multiplataforma

LÖVE es un framework de código abierto diseñado para facilitar la creación de juegos 2D. Su principal atractivo reside en su simplicidad y portabilidad, permitiendo a los desarrolladores crear juegos que funcionen en una amplia gama de plataformas, incluyendo Windows, macOS, Linux, Android e iOS. L

Loreline: nuevo lenguaje facilita narrativas interactivas

Loreline es un nuevo lenguaje de narrativa diseñado para facilitar la creación de historias interactivas y juegos. Desarrollado por Jeremyfa, el lenguaje busca equilibrar la facilidad de uso para escritores con la complejidad de la ingeniería de software. Su diseño prioriza una sintaxis intuitiva qu

bzip: el algoritmo de compresión que deberías conocer

Este artículo explora el algoritmo de compresión bzip, a menudo pasado por alto en favor de alternativas más populares como zstd o xz, pero que ofrece ventajas significativas en ciertos escenarios, particularmente cuando se trata de comprimir código fuente. El autor, enfrentando la necesidad de redu

Emacs y Vim: ¿amenaza o aliado de la IA?

El artículo de Bozhidar Batsov explora el futuro de Emacs y Vim en la era de la inteligencia artificial (IA), un tema crucial considerando su pasión de más de 20 años por Emacs y su creciente interés en Vim. Contrario a la idea de que la IA condenará estos editores de texto, Batsov argumenta que la

Hammerspoon: Automatiza macOS con scripts Lua

Hammerspoon es una herramienta de automatización de escritorio para macOS impulsada por el lenguaje de programación Lua. Desarrollada por Hammerspoon en GitHub, la aplicación actúa como un puente entre el sistema operativo y el motor de scripting Lua, permitiendo a los usuarios controlar diversos as

Rails resurge: ¿por qué este framework vuelve?

Este artículo explora el resurgimiento de Ruby on Rails (Rails) en el panorama del desarrollo web, a pesar de su relativa impopularidad actual. El autor, un desarrollador con experiencia en infraestructura y DevOps, redescubrió el placer de construir aplicaciones web de la manera tradicional utiliza

Mog: IA escribe IA con nuevo lenguaje de programación

Un nuevo lenguaje de programación llamado Mog ha sido desarrollado para permitir que los agentes de inteligencia artificial se modifiquen y extiendan de forma segura y eficiente. Creado por Voltropy, Mog está diseñado para ser escrito por modelos de lenguaje grandes (LLMs), con una especificación qu

Lobster: Nuevo lenguaje de programación combina potencia y sencillez

Un nuevo lenguaje de programación llamado Lobster ha sido anunciado, buscando combinar lo mejor de la tipificación estática y la gestión de memoria en tiempo de compilación con una sintaxis ligera y amigable. Desarrollado por el equipo detrás de aardappel, Lobster es de código abierto (licencia Apac

Moongate v2: Nuevo emulador de Ultima Online

Un equipo de desarrolladores ha lanzado Moongate v2, un nuevo emulador de código abierto para el popular juego online Ultima Online. Construido con .NET y AOT (Ahead-of-Time compilation), el proyecto busca ofrecer una base sólida y modular para un servidor de UO, inspirándose en proyectos anteriores

Textadept: editor de texto rápido y abierto para programadores

Un nuevo editor de texto multiplataforma llamado Textadept ha sido lanzado recientemente, dirigido a programadores que buscan una herramienta rápida, minimalista y altamente extensible. El proyecto, de código abierto bajo la licencia MIT, ofrece versiones precompiladas para Windows, macOS y Linux, a

IA escribe código: ¿quién garantiza su seguridad?

La creciente adopción de la inteligencia artificial (IA) en el desarrollo de software, con empresas como Google y Microsoft utilizando IA para generar entre el 25% y el 30% de su código, plantea serias preocupaciones sobre la verificación y seguridad. Recientemente, Anthropic desarrolló un compilado

Programación: ¿La Sintaxis Define un Lenguaje?

Este artículo explora una peculiaridad en la comunidad de programación: la tendencia a juzgar y elegir lenguajes basándose en su sintaxis de declaración, a menudo sin considerar la semántica subyacente. El autor, un desarrollador de Odin, argumenta que la sintaxis es, en gran medida, superficial y f

Typst lidera: análisis revela sorpresas en motores PDF

Un análisis comparativo de seis motores PDF ha revelado resultados inesperados, según un desarrollador de Speedata, quien los utilizó para su propio motor de tipografía. El estudio, realizado en una MacBook Air M4, evaluó el rendimiento de speedata Publisher (sp), Typst, pdflatex, LuaLaTeX, WeasyPri

DjVu: el formato de archivo que aprende

DjVu es un formato de archivo diseñado para comprimir documentos escaneados, especialmente libros y documentos técnicos, de manera mucho más eficiente que el formato PDF. Aunque menos conocido hoy en día, su superioridad radica en su capacidad para manejar imágenes y texto de forma inteligente, a di

ACK: El Kit de Compilación Retro que Vuelve

El Amsterdam Compiler Kit (ACK) es una herramienta de compilación completa, un conjunto de herramientas (toolchain) diseñado originalmente en la Vrije Universiteit de Ámsterdam en la década de 1980 y revitalizado por David Given. Su objetivo principal es permitir la compilación de código fuente en e

MiniMax M2.5: IA eficiente para tareas complejas

MiniMax ha anunciado el lanzamiento de su nuevo modelo de lenguaje, MiniMax M2.5, diseñado para aumentar la productividad en tareas del mundo real. El modelo, entrenado con aprendizaje por refuerzo en una amplia variedad de entornos complejos, destaca en programación, uso de herramientas, búsqueda y

Arcan Project: Nuevo navegador 'Desktop Engine' toma protagonismo

Arcan Project ha reorientado su enfoque hacia la implementación de un novedoso 'Desktop Engine' que funciona como un navegador web. El proyecto, que comenzó con la visión de crear un sistema operativo alternativo, ahora se centra en desarrollar un navegador que se sitúa en el punto intermedio entre