6 repositorios
Allocation of contiguous memory arrays for direct pointer access using C types.
Distinct from Memory Allocators: Specifically targets the creation of raw C-style contiguous arrays for high-speed access.
Explore 6 awesome GitHub repositories matching operating systems & systems programming · Raw Memory Allocation. Refine with filters or upvote what's useful.
Torch7 is a scientific computing environment and tensor computation library used for deep learning research and numerical analysis. It functions as a Lua-based framework for training neural networks and learning agents, providing a toolkit for implementing architectures and training through reinforcement learning algorithms. The project is distinguished by its tight integration with C, utilizing a binding layer to map high-level scripting to low-level C structures for direct memory access. It supports hardware-accelerated computation by offloading linear algebra and convolution operations to
Creates contiguous arrays of basic C types for direct pointer access and high-performance memory operations.
JNA is a foreign function interface and native memory mapper that allows Java applications to call functions in shared native libraries without writing custom JNI wrapper code. It serves as a JNI alternative framework for invoking C functions and mapping native data structures using high-level interfaces. The library distinguishes itself through its ability to translate Java objects and primitives into C-style structs, unions, and pointers for cross-platform memory exchange. On Windows, it provides a dedicated toolkit for interacting with Component Object Model objects using both early and la
Allocates contiguous blocks of memory for arrays of structures to be consumed by native functions.
Carp is a statically typed Lisp compiler that compiles Lisp-like syntax directly to C source code, enabling seamless integration with existing C libraries and low-level system programming. It manages memory deterministically at compile time using ownership tracking and linear types, eliminating garbage collection pauses and runtime overhead while ensuring type safety through an inferred static type system. The language distinguishes itself through compile-time macro expansion and metaprogramming capabilities, allowing code generation and transformation before final binary output. It enforces
Provides functions to allocate, read, and write untyped memory buffers.
node-ffi es una biblioteca de interfaz de funciones externas (FFI) para Node.js que permite llamar a funciones desde bibliotecas dinámicas nativas en C sin escribir bindings manuales en C++. Funciona como un sistema para cargar objetos compartidos y DLLs en la memoria del proceso, traduciendo valores de JavaScript a representaciones binarias y ejecutando binarios externos en tiempo de ejecución. El proyecto utiliza un wrapper alrededor de la biblioteca libffi para construir marcos de llamada y ejecutar funciones nativas con argumentos dinámicos. Se distingue por proporcionar un gestor de memoria nativo para asignar punteros crudos y un sistema de mapeo que conecta estructuras complejas de C con objetos de JavaScript. El kit de herramientas cubre una amplia gama de capacidades de interoperabilidad nativa, incluyendo la traducción automática de tipos de datos y la creación de stubs de memoria ejecutables que permiten a las bibliotecas nativas activar callbacks de JavaScript. Para mantener la capacidad de respuesta del hilo principal, admite un modelo de ejecución asíncrono que descarga las llamadas a funciones nativas a un pool de hilos separado.
Provides a low-level interface for allocating raw contiguous memory buffers and manipulating C-style pointers.
Este proyecto es una referencia técnica y una colección de notas de análisis interno centradas en el runtime y compilador del lenguaje Go. Proporciona un desglose detallado de los aspectos internos del lenguaje, cubriendo la gestión de memoria, la recolección de basura (garbage collection) y el modelo de ejecución del programador. El material se distingue por proporcionar inmersiones profundas en detalles del sistema de bajo nivel, incluyendo una referencia para instrucciones de ensamblador de Go, uso de registros e interfaz de llamadas al sistema. Analiza específicamente la implementación interna de primitivas de concurrencia, como el mecanismo de programación de goroutines, operaciones de canales e implementaciones de bloqueos de mutex. La cobertura se extiende a la teoría de construcción de compiladores, incluyendo análisis léxico y sintáctico, así como la mecánica del sistema de tipos y la gestión de interfaces. También detalla varias técnicas de optimización de rendimiento, utilidades de diagnóstico de runtime para rastreo de pila (stack tracing) y primitivas de E/S de red.
Explains how the Go runtime allocates raw memory blocks and reserves address spaces using system calls.
Buffer es una librería para manipulación de datos binarios que proporciona una implementación compatible con navegador de la interfaz de programación de aplicaciones de datos binarios de Node.js. Permite a los desarrolladores crear, modificar y procesar estructuras de datos binarios crudos dentro de entornos web utilizando una interfaz consistente que refleja los estándares del lado del servidor. La librería se distingue por proporcionar un enfoque unificado para el desarrollo de JavaScript multiplataforma, permitiendo código compartido entre entornos de servidor y navegador. Logra esto mediante polyfilling de métodos binarios estándar y extendiendo el prototipo de array de bytes nativo, asegurando que los desarrolladores puedan gestionar memoria y estructuras de datos sin depender de implementaciones específicas del entorno. El toolkit incluye utilidades para manejar el acceso a datos consciente de la endianness y realizar slicing de copia cero para manipular segmentos de memoria sin duplicar cargas útiles. También soporta una amplia compatibilidad de datos facilitando conversiones entre buffers, arrays tipados y blobs, asegurando que los datos binarios puedan ser intercambiados a través de diversas interfaces web y formatos de almacenamiento.
Uses underlying typed array views to manage raw binary memory buffers within the constraints of the browser environment.