Make ICL fully self-contained with embedded slynk and assets
Embed slynk sources and browser assets directly into the binary, eliminating external file dependencies. Closes #8 Embedded Slynk: - Load slynk.zip at compile time into *embedded-slynk-zip* - Extract to versioned ~/.local/share/icl/slynk-VERSION/ on first run - Version derived from ocicl package name (e.g., 20251214-b01993c) - Automatic upgrade: new ICL versions extract new slynk versions Embedded Browser Assets: - Load JS/CSS files at compile time into *embedded-assets* hash table - Serve directly from memory via serve-asset - Includes: dockview, xterm.js, xterm-addon-fit Build Changes: - Makefile creates slynk.zip using Lisp zip library (pure Lisp) - New src/embedded-slynk.lisp and src/embedded-assets.lisp - Added data-directory function for XDG_DATA_HOME Installer Cleanup: - RPM/Debian: removed sly and assets installation (now embedded) - All installers: added WEB-LICENSES for JS/CSS license compliance - Kept bundled ASDF for CLISP support Code Cleanup: - Removed /usr/share/icl lookups for sly and assets - Removed Quicklisp fallback from generate-slynk-init - Windows compatibility: path normalization for zip extraction The binary is now truly portable - copy it anywhere and it works. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By:
Claude Opus 4.5 <noreply@anthropic.com>