Skip to content

Releases: tinyBigGAMES/libFPC

libFPC v1.0.0

02 Apr 03:16

Choose a tag to compare

libfpc

🎉 libFPC v1.0.0 – First Official Release

We’re excited to announce libFPC v1.0.0, the first official release of the library that brings runtime access to the FreePascal compiler in a powerful, dynamic way.

This release introduces full support for in-memory compilation, DLL/EXE execution, source-from-string, and more!

🚀 Highlights

  • In-memory DLL loading: libfpc_deps.dll is now loaded directly from memory—no disk I/O.
  • 📜 Compile from string or file: Thanks to the new SetProjectSource, you can now pass source directly as a string.
  • 🔍 Get status and diagnostics: Retrieve error messages, counts, and compiler stats programmatically.
  • ⚙️ Add metadata: Inject version info, icons, and manifests into your EXE or DLL.
  • 🧠 In-memory execution: Compile and run executables or DLLs directly from memory, ideal for plugins and sandboxing.

🧠 Core Enhancements

  • libfpc_deps.dll now loads directly from memory
  • 🔄 Renamed SetPrintEventSetPrintCallback
  • ➕ Added:
    • GetStats
    • GetErrorCount
    • GetError(Index)

Easily inspect compilation errors and status programmatically.

📝 Source Management

  • 🆕 Introduced lfpProjectSource type
  • 🔄 Replaced SetProjectFilename with:
    • SetProjectSource – accepts file or raw string
    • GetProjectSource – retrieve the current source

💡 Thanks Herbert M Sauro for suggesting string-based source support!

⚙️ Output Configuration

  • ➕ Added:
    • SetAddVersionInfo
    • GetAddVersionInfo
    • GetVersionInfo
    • GetDebugMode

Easily control output metadata, debug info, and version details.

  • Now supports adding:
    • ✅ Icons
    • ✅ Version Info
    • ✅ Manifests

🧹 Cache & Execution

  • ➕ Added:
    • ClearCacheDir
    • SetOutputPathToCacheDir
    • GetCachedDir
  • 🆕 Added:
    • RunEXE: Compile and run executable from memory
    • LoadDLL: Load DLL directly from memory

Enables in-memory dynamic code generation and execution — great for sandboxing or plugin systems.

💡 Thanks again to Herbert M Sauro for the idea!

🛠 Miscellaneous

  • Various internal fixes, refactors, and improvements.

🔚 Summary

libFPC v1.0.0 gives you:

  • 🧩 Flexible source handling (file or string)
  • 💥 Runtime compilation & execution
  • 🛡 No disk writes needed
  • 🧾 Full metadata control
  • 🧠 Post-compilation diagnostics

🎯 Use it for scripting, plugin systems, dynamic sandboxing, or anything that needs real-time Pascal compilation.

Let us know what you build with libFPC — and stay tuned for what’s next! 🚀