Skip to content

maldorne/dgd-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

312 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maldorne fork

This is a fork of dworkin/lpc-ext maintained by Maldorne for the Hexagon mudlib. The substantive addition with respect to upstream is:

  • src/kfun/sprintf/ — native C sprintf kfun. Implements the LPC sprintf contract (conversion characters, flags, width and precision) with width and padding computed in visible columns so ANSI escape sequences and UTF-8 multibyte characters do not inflate the field. The full contract and limitations are documented in src/kfun/sprintf/readme.md. Build with make sprintf.

There are also a handful of minor differences not worth detailing: build-target glue in src/Makefile, a .gitignore for build artefacts, and the removal of upstream's Visual Studio solution and project files (the fork tracks Linux/macOS builds only). Documentation below is from the upstream README.


The overaching license for the LPC extensions is the Unlicense. Some modules or portions thereof in the src/kfun directory have their own open source license; please consult the relevant code for the details.

  • doc
    documentation
  • src
    API glue to compile with your module
  • src/dbase
    example database module
  • src/jit
    JIT compiler module
  • src/kfun
    kfun modules

To build modules for most kfuns, just type make (or whatever your GNU make command is) in the src directory. On Windows, use Visual Studio 2010 with the solution file lpc-ext.sln, or use make EXT=dll with Cygwin.

Use make zlib to build the zlib module, for version 1.2.13. For other versions, use:

  • 1.2.8
    make zlib ZLIB=1.2.8 ZLIBDIR=1.2.8
  • 1.2.11
    make zlib ZLIB=1.2.11 ZLIBDIR=1.2.11
  • 1.2.12
    make zlib ZLIB=1.2.12
  • 1.3
    make zlib ZLIB=1.3
  • 1.3.1
    make zlib ZLIB=1.3.1

Use make jit to build the JIT compiler module. This requires clang to be installed (any version from 3.7 onward will work). The jit module will start the actual JIT compiler as a separate program. It must be configured with the directory that contains the JIT compiler, and where the JIT cache will be created:

    modules = ([
		 "/home/server/lpc-ext/jit.1.5" :	/* JIT module */
		 "/home/server/lpc-ext/src/jit"	/* where jitcomp resides */
	      ]);

On Windows, there are different solution files for the components of the JIT compiler. lpc-ext.sln is used to build the JIT extension, jitcomp.sln is used to build the actual jit compiler which runs as a separate program, and which depends on clang. Clang can be installed as a component of Visual Studio Community 2022. Note that jitcomp.sln is a VS2019 solution, whereas lpc-ext.sln can be built with any Visual Studio version from 2010 onward.

Use make crypto to build the cryptographic functions module. This requires OpenSSL 1.1.1 or later.

Use make tls to build the TLS module (for DGD only). This also requires OpenSSL 1.1.1 or later.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors