windows system

This commit is contained in:
2026-10-06 13:23:15 +02:00
parent 03d2ece7d6
commit 208a3e9738
12 changed files with 93 additions and 16 deletions
+18 -13
View File
@@ -2,8 +2,8 @@
## Estado actual
- **Fase 2**: buffer dinámico. La Fase 1 está cerrada en Fedora, pero falta
probarla en Windows.
- **Fase 2**: buffer dinámico. La Fase 1 está cerrada en Fedora y en Windows
(2026-10-05).
- Paso actual: 2.3b. `hello.c` ya usa bien `goto cleanup` (punteros a `NULL`
uno por línea, `result`, un solo `return`), sin avisos con gcc ni clang, y
Valgrind limpio. Falta `escpos_buffer_append`: el parámetro con la cantidad,
@@ -17,20 +17,23 @@
### Windows (sobremesa)
- Al llegar: `git pull` en la terminal UCRT64 y comprobar `gcc`, `make` y `gdb`.
Si falta algo:
`pacman -S mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-gdb make`.
- Cerrar la Fase 1: `make` tiene que generar `build/hello.exe`. Falta en el
Makefile el `ifeq ($(OS),Windows_NT)` de `docs/06-make.md`. `mkdir -p` y
`rm -rf` solo funcionan en la shell de MSYS2.
- Probar F5 en VS Code: `.vscode/` ya tiene la configuración de Windows con
rutas `C:/msys64/ucrt64/...`.
- Hay gcc, gdb y make en `C:\msys64`. Faltan clang y `xxd` (opcionales:
`pacman -S mingw-w64-ucrt-x86_64-clang vim`; mientras, `hexdump -C`).
- Fase 1 cerrada: `make`, `make run` y `Nothing to be done` funcionan sin
`EXE` gracias a la emulación de `.exe` de MSYS2 (ver docs/06-make.md). El
`ifeq ($(OS),Windows_NT)` se pospone a la Fase 4, cuando haga falta
`-lws2_32`.
- Probar en VS Code: terminal nueva (debe abrir UCRT64), Ctrl+Shift+B y F5.
- El 2.3b se puede avanzar aquí; la comprobación de memoria queda para Fedora.
### Fedora (portátil)
- Validar con valgrind el 2.3b cuando esté hecho (y con ASan/UBSan antes de
cerrar la Fase 2).
- Tras el `git pull` del 2026-10-05, comprobar que `make` y F5 siguen igual
(se ha tocado `.vscode/` y se han añadido `.gitattributes` y `.gitignore`).
Los binarios de Go ya no se versionan: recompilarlos con `go build` si hacen
falta.
## Hecho
@@ -80,13 +83,15 @@
- Estilo: nombres en `snake_case` y llave de apertura en línea aparte (estilo
Allman) en funciones, structs y bloques.
- Lo generado va en `build/`, que se crea en las recetas con `mkdir -p` y no se
versiona.
versiona. Tampoco se versionan ejecutables ni volcados (`vgcore.*`).
- Dos máquinas transparentes: `.gitattributes` fuerza LF en todo y marca
`*.bin` como binario (git no toca los bytes ESC/POS). En Windows, VS Code usa
la shell UCRT64 de MSYS2 para la terminal y las tareas, así que `make`,
`mkdir -p` y `rm -rf` funcionan igual que en Fedora.
## Pendiente / puntos débiles
- Fase 1: probar el Makefile en Windows (MSYS2), con el sufijo `.exe`.
- `.gitignore` creado. Siguen versionados `emulator/escpos-emu.exe` y
`goruntime/goruntime.exe`.
- Make: le costó entender que va hacia atrás desde el objetivo y que una regla
patrón es una plantilla. Repasar con `docs/06-make.md`.
- Punteros: le cuesta saber cuándo hace falta `*` y cuándo no, y distinguir la