46 Commits
Author SHA1 Message Date
Martín Lucas Golini 7069bb03e6 Update third-party dependencies for security fixes and validate on Linux and Windows
Replace the libzip 0.10 fork with upstream 1.12.1. Only zip.h's zipconf.h
include is patched; hand-written config.h/zipconf.h replace CMake's
feature checks, and the platform file backends live in posix/ and win32/.
Port Zip to the current libzip API: read-only opens use ZIP_RDONLY, which
handles UTF-8 paths on Windows, so the fdopen workaround is gone. Remove
the ZIP bounded-open mode and the ZipProvider entry and metadata limits;
archives are limited only by the format and libzip. 65,536-entry InfoZIP
archives now open.

Update Mbed TLS to 3.6.7, libvorbis to 1.3.7, Monocypher to 4.0.3 and
simdutf to 9.2.1, retaining eepp's Mbed TLS configuration (PSA and
TLS 1.3 stay disabled) and the reduced simdutf feature set. Add TLS
certificate/hostname, Vorbis encoder and ZIP range regression tests.

Fix SFTP watch channels on Linux: efsw-agent now exits immediately on
EOF (efsw 0712eec), and a refused agent channel is retried briefly
instead of disabling native watching on the host for five minutes.
Start the SFTP test sshd without PerSourcePenalties on OpenSSH < 9.8,
so the integration tests run on Ubuntu 24.04. CI installs OpenSSH and
requires them.

Fix GCC builds on Linux AArch64 (mojoAL NEON target attributes, the
physics example's signed bitmap) anation.

Keep a NanoSVG libFuzzer target and CI.
Record the updates, checksums and retained patches in the security
audit and inventory.
2026-10-25 18:27:34 -03:00
Martín Lucas Golini 88675a7c84 feat(vfs): add async URI-based VFS module with SFTP and the eefm file manager
Async core (EE namespace, documented in docs/articles/async_core.md):
- Add Result<T, E>, Task<T>/TaskSource<T> with continuations and
  abandonment, Executor, CancellationToken and SmallUniqueFunction
- Make ThreadPool an Executor with submit() returning a Task; work items
  are move-only
- Add Scene::MainThreadExecutor to resume continuations on the UI thread
- Move URI to EE core (eepp/core/uri.hpp) with filesystem helpers
  (fromFSPath, getFSPath, getParent); EE::Network::URI remains an alias
- Add System::SHA1 (streaming, modeled on MD5)
- Rename the pack path index to System::PackFileIndex; VirtualFileSystem
  is kept as a deprecated alias

eepp-vfs module (src/modules/vfs, documented in docs/articles/vfs.md):
- URI-addressed VirtualFileSystem with pluggable providers: file://,
  mem://, res:// (packs) and sftp://
- Async file and directory handles, metadata, space info, capabilities
  and IOStream adapters
- Copy/move transfers with progress, cancellation and conflict options
- Change watching through efsw locally, efsw-agent over SSH for sftp://,
  and a polling fallback
- VFSDirectoryModel for table views: sorting, name filtering (plain,
  glob, regex), type and item-count columns, per-column CSS classes and
  lifetime-safe executor delivery

SFTP:
- SSH sessions over libssh2 with ssh_config parsing (Host/Match,
  ProxyJump, ProxyCommand), known_hosts verification, ssh-agent, key and
  keyboard-interactive authentication, and connection pooling
- Built by default; opt out with --without-vfs-sftp
- Vendor libssh2 1.11.1 with the mbedTLS backend, and add Ed25519 host
  and user keys to it through Monocypher 4.0.2 (mbedTLS has no Ed25519)

eefm (src/tools/eefm), a Dolphin-like file manager on eepp-vfs:
- Split panes, each with its own tabs, location bar, history and
  filter bar
- Places panel with Places, Remote (saved locations and network mounts)
  and Devices (with usage), editable, hideable and reorderable by drag
- Details view with drag and drop, clipboard interoperable with other
  file managers, rename, new folder/file, trash (freedesktop, macOS,
  Windows) and properties
- Open and Open With from shared-mime-info and desktop entries
- Persisted window, panes, tabs, columns, sort and places

UI and window fixes:
- Keep table column max widths across model updates and give the main
  column the remaining width
- Count left margins when laying out push button icon and text
- Add Clipboard::setMimeData, getDataString and getTextMimeTypes
- Report Zip::close/addFile failures and free archives correctly

Tests and tooling:
- Unit tests for the async core, VFS providers, transfers, watching,
  the directory model, ssh_config, SFTP (local sshd), the efsw agent
  protocol, SHA1 and URI
- Add a VFS benchmark
- Update efsw with efsw-agent and its wire protocol
2026-10-13 14:58:11 -03:00
Martín Lucas Golini 4102c69eb3 Add dev boostrap script. 2026-10-02 11:06:31 -03:00
Martín Lucas Golini 1ae2b7180b Add initial eproc system monitor
- Add the eproc process-monitoring application and persistent window/table state
  - Implement Linux process, network, GPU, icon, and GUI-window collection
  - Add optional process columns, styling, i18n-ready strings, and command copying
  - Retain exited processes for one update and color them as ended
  - Extend table sizing and header behavior for persisted column layouts
  - Organize Linux-specific sources under platform/linux
  - Keep unsupported platforms buildable with a startup WIP warning
2026-09-20 02:36:54 -03:00
Martín Lucas Golini 42de99cf3b Fix GL resource sharing across native application windows
Decouple GL object sharing between native windows from auxiliary worker-thread context support. Platforms without threaded GL contexts, such as Haiku, must still share textures and other GL resources between their window contexts.

Always configure SDL_GL_SHARE_WITH_CURRENT_CONTEXT according to the requested context settings, while continuing to create the auxiliary thread context only on supported platforms. Explicitly reset the SDL attribute for non-shared contexts to avoid leaking state into subsequent window creation.

Apply the fix to both SDL2 and SDL3 backends. Also link the Haiku unit test executable against libbsd and libnetwork to resolve its PTY and socket dependencies.
2026-09-12 01:51:17 -03:00
Martín Lucas Golini 7f0633afb6 Auto publish eepp sdk builds in nightlys and tagged releases (not tested beyond Linux, let's see...). 2026-08-22 17:44:26 -03:00
Martín Lucas Golini 7ec44b1547 Added pending SDL3 script support for MSVC and mingw. It can now be built without previously installing SDL3 manually, it resolves the dependency the same way we do for SDL2.
Scripts now accept the CLI argument: `--backend=sdl3` to force building with SDL3 backend. ecode build script will just generate the package with SDL3.
2026-06-08 21:42:42 -03:00
Martín Lucas Golini 0c742d6431 Fix Windows build. 2026-05-21 21:25:19 -03:00
Martín Lucas Golini fc0f33201c RichText class now can hold any Drawable.
Added UIRichText with spans (UITextSpan). Still a WIP but core is working.
2026-03-02 00:20:24 -03:00
Martín Lucas Golini 2ce608ff09 Add Android and iOS CI (not tested). 2025-12-31 14:45:27 -03:00
Martín Lucas Golini 1116575774 Adds ecode nightly build MSVC arm64 target. 2025-12-14 19:40:00 -03:00
Martín Lucas Golini 521631decf Fix ARGB images save when using WebP.
Upload artifacts.
2025-10-25 02:52:21 -03:00
Martín Lucas Golini 103850a591 Improve CSV highlighting. 2025-09-03 21:21:00 -03:00
Martín Lucas Golini 170fca0e01 Improve Windows crash report. 2025-07-26 22:14:14 -03:00
Martín Lucas Golini 53609f3870 Allow patching glibc to an older version during ecode build, enabled this feature in linux nightly. 2025-04-25 00:27:40 -03:00
Martín Lucas Golini 04fd9d3264 Add ecode arm64 windows nightly builds (fixes #65). 2024-10-27 03:05:00 -03:00
Martín Lucas Golini d668f4f5c5 Try to do it simple. 2024-10-01 19:14:36 -03:00
Martín Lucas Golini 2d3c0e88af This should localize SDL2 locally. 2024-10-01 18:51:04 -03:00
Charlie Root 668305b178 Add FreeBSD ecode build script. 2024-08-03 00:53:03 -03:00
Martín Lucas Golini 44b1656ca1 Clean up format errors. 2024-05-11 14:12:38 -03:00
Martín Lucas Golini ae5d1baab1 Added unit tests for text encoding.
Updated the CI scripts.
Clean up libzip files with invalid characters.
2024-05-10 21:21:20 -03:00
Martín Lucas Golini ff7d8c3478 ecode: Improve LSP code action implementation, now typescript-language-server will be able to recommend adding imports. Fixed a bug introduced in the previous commit, scrollTo for Y axis now moves correctly. Started implementing LSP Code Lens but I'll keep it for the moment since it's support in LSP implementations is very limited. 2023-07-07 01:01:26 -03:00
Martín Lucas Golini e62b42267f SyntaxHighlighter and semantic highlighting optimizations and improvements. Now the highlighters detect new lines and remove lines operations and translate all the already processed highlighted lines to it's new position, this means that only the lines with new content are processed again for highlighting tokenization. 2023-04-02 14:34:58 -03:00
Martín Lucas Golini c86e383919 Disable async IO in process until I figure it out why is crashing on WINE.
ecode: Added an option to allow project files filtered by .gitignore
2023-02-12 23:00:20 -03:00
Martín Lucas Golini 097a8e85cb Closes SpartanJ/ecode#29 (Allow to ignore files in the file system tree view). 2023-02-05 17:58:47 -03:00
Martín Lucas Golini 4a2546f6bf TextDocument find and findLast refactor and minor improvements.
premake build now will try to symlink the shared libraries into bin directory.
Binaries rpath is now set to origin (".").
2023-02-01 02:16:59 -03:00
Martín Lucas Golini 280d378c82 eepp:
TextDucument: push modifications in the document when is being saved, this will allow to "undo" previous changes correctly.
ecode:
Minor fix in LSP protocol implementation. Closes SpartanJ/ecode#19.
Minor fix in FileSystemListener when no file system model is present.
2023-01-31 19:29:16 -03:00
Martín Lucas Golini b3cf94536e Fixes issue SpartanJ/ecode#4
Fixes issue SpartanJ/ecode#3
2023-01-11 01:52:32 -03:00
Martín Lucas Golini 14997a945c ecode: More LSP work. 2022-11-04 01:32:30 -03:00
Martín Lucas Golini 5c46540f8e UIConsole now correctly caches rendered lines.
ecode :Minor improvements in GlobalSearchController keybindings.
2022-11-01 22:21:57 -03:00
Martín Lucas Golini 5e1215f5cf Terminal Emulator base on HexeTerminal WIP. 2022-06-15 09:47:12 -03:00
Martín Lucas Golini d02f4dc15a ecode: Fixed build script for macOS.
Added *.dmg to gitignore.
2022-06-14 01:39:05 -03:00
Martín Lucas Golini e3f5ccfb11 Renamed osx folder to macos. 2022-06-14 00:30:29 -03:00
Martín Lucas Golini dafe1502be Fixed mingw64 build.
Fixed emscripten ecode build.
Added ecode mingw build script.
2022-06-13 03:19:31 -03:00
Martín Lucas Golini 006cd2421e Added ecode build script.
Force radix "." for StyleSheetLength::toString().
2022-06-07 14:40:38 -03:00
Martín Lucas Golini c8b7a2028c ecode: macOS app bundle an dmg installer build scripts. 2022-05-17 00:30:20 -03:00
Martín Lucas Golini 59e9044a75 Added horizontal scroll support (wheel left and right). 2022-04-04 19:57:35 -03:00
Martín Lucas Golini 6861c5e795 Improved emscripten support + some minor refactor. 2020-08-30 18:08:00 -03:00
Martín Lucas Golini 94b225b33d Minor fixes and changes for the Code Editor. 2020-07-02 20:22:23 -03:00
Martín Lucas Golini 92a89abb65 Fixes and improvements for the windows build. 2020-07-02 16:47:19 -03:00
Martín Lucas Golini 9c4f24c3cb Added Window::hasFocus(), Window::hasInputFocus() and Window::hasMouseFocus().
Fixed an issue when widgets were created during an layout update.
Some minor improvements to the Code Editor.
2020-06-10 04:12:08 -03:00
Martín Lucas Golini 9d32e29ffb Added TexturePacker console tool and updated to a new version of the Texture Atlas format.
More premake5 project refactor.
Fixed some Stysheet Properties types and fixed some StyleSheetProperty transitions.
2020-01-19 17:17:09 -03:00
Martín Lucas Golini 1567708633 Added "windows-vc-build" argument to premake5. 2020-01-17 23:43:25 -03:00
Martín Lucas Golini 9d926b4a04 Ignore .pyc files.
--HG--
branch : dev
2020-01-13 03:07:58 -03:00
Martín Lucas Golini 9696ae5f6c Update .gitignore.
--HG--
branch : dev
2020-01-13 03:06:55 -03:00
Martín Lucas Golini bc236a66ce Added .gitignore.
--HG--
branch : dev
2020-01-13 03:01:03 -03:00