Skip to content

OneLuaPro/luacom

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

275 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LuaCOM

This repository is a consolidated fork of the original davidm/luacom. It merges the most critical advancements, bug fixes, and modernizations from across the entire GitHub fork ecosystem into a single, definitive codebase compatible with modern Lua environments.

Beyond consolidation, the Extended Lua API has been reactivated by carefully porting the original codebase in src/library/luacom5.lua to the modern Lua 5.5 standard. To ensure reliability, the internal test bench (src/test/luacom_tests5.lua) has been slightly modernized and restored to a passing state, although some tests remain inactive or not implemented. Additionally, the (legacy) HTML Help interface has been re-enabled for better documentation integration on Windows, and a standardized version string has been introduced via luacom._VERSION for easier version tracking.

Consolidation Overview

This version was built by systematically analyzing the fork tree and merging the most active and advanced branches. The goal was to unify fragmented improvements that existed in isolation for years.

Integrated Forks & Contributions

The following "ahead" branches have been merged into this master:

  • Eunsolfs/luacom53 (+67 commits): Major Lua 5.3/5.4 support, 64-bit integer handling, and modern type conversion.
  • fiendish/luacom (+42 commits): Critical stability patches, memory leak fixes (especially in SAFEARRAY handling), and refactoring using smart pointers.
  • moteus/luacom (+35 commits): The modern architectural foundation for Lua 5.2/5.3 compatibility and Appveyor CI integration.
  • udbg/luacom (+1 commit): Added modern xmake build system support.
  • shere-avintec/luacom (+1 commit): CI/CD environment optimizations.
  • JoshuaTiffany/luacom (+1 commit): Metadata and build-info updates.

Key Features & Improvements

  • Broad Compatibility: Support for Lua 5.1, 5.2, 5.3, 5.4 and 5.5.
  • 64-Bit Support: Proper handling of 64-bit integers and modern Windows architectures.
  • Memory Safety: Fixed several severe memory leaks in SAFEARRAY decoding and Connection Points.
  • Smart Pointers: Internal refactoring to use tCOMPtr (Smart Pointers) for more robust COM reference counting.
  • Modern Build Systems:
    • xmake: Native support via xmake.lua.
    • CMake/LuaRocks: Slightly updated CMakeLists.txt for modern deployment.
    • CMake/OneLuaPro: Separate build environment in build
  • New Methods: Added luacom.ReleaseComObject(obj) for manual reference control when dealing with non-standard COM servers.
  • Unicode/Codepage: Improved UTF-8 and ANSI codepage handling.

Fork Lineage

As identified by an automated fork-tree analysis, the fragmented state of the project prior to consolidation is illustrated below. Many isolated improvements, which had never been combined, were found to be contained within these forks.

davidm/luacom
|-- JoshuaTiffany/luacom (+1)
|-- udbg/luacom (+1)
|__ moteus/luacom (+35)
    |-- cybercode3/luacom (+35)
    |-- littleboss01/luacom (+35)
    |-- fiendish/luacom (+42)
    |-- chenlia2013/luacom (+30)
    |-- Eunsolfs/luacom53 (+67)
    |-- Socol111/luacom (+30)
    |__ shere-avintec/luacom (+31)

Through the systematic resolution of conflicts and the merging of these branches, this unified 'Super-Fork' was created. The consolidated logic employed to build this definitive repository is represented in the graph below:

davidm/luacom (Original)
|-- JoshuaTiffany/luacom (+1)   [MERGED]
|-- udbg/luacom (+1)            [MERGED]
|__ moteus/luacom (+35)         [MERGED]
    |-- fiendish/luacom (+42)   [MERGED]
    |-- Eunsolfs/luacom53 (+67) [MERGED]
    |-- shere-avintec (+31)     [MERGED]
    |-- (others: cybercode3, littleboss01, Socol111, chenlia2013) [UP-TO-DATE]

License

This project follows the original LuaCOM license (MIT/X11). See the COPYRIGHT file for details.

About

Microsoft Component Object Model (COM) binding for Lua

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 71.6%
  • Lua 13.2%
  • CMake 9.4%
  • HTML 2.7%
  • Makefile 1.3%
  • C 0.8%
  • Other 1.0%