Objeck

v2023.3.0 (March 25, 2024)

Release Notes

OpenAI and Docker support

v2024.3.0

v2023.2.1

v2023.2.0

Please refer to the GitHub project site for additional information.

The Programmer's Guide is in the "doc" directory. Additional examples are available in the Rosetta Code. If you find issues, please submit a ticket.

Getting Started

For new developers, please refer to the getting starting guide.

Package directories

Windows launcher

The Windows Launcher is a convenient way to run programs and access documentation. On Windows, configuration information is stored in the %ProgramData%\Objeck directory and built the first time the app runs. If you move the install location, delete the %ProgramData%\Objeck directory and rerun the launcher.

Compiling and executing programs

To compile programs outside the bin directory set, the OBJECK_LIB_PATH environment variable must be set. When this variable is set, all library files must be in the directory specified.

If the Windows installer is used, these variables will be automatically set.

To manually set the environment paths in Windows:

  1. set OBECK_LIB_PATH=<program_path>\objeck-lang\lib
  2. set PATH=%PATH%;<program_path>\objeck-lang\bin;<program_path>\objeck-lang\lib\sdl
  3. Note: If you compiled Objeck from source under MSYS2 you do not need to include the \objeck-lang\lib\sdl path as the required SDL2 DLLs are already in the MSYS2 shell's path.

To manually set the environment paths in macOS and Linux:

  1. export PATH=$PATH:<program_path>/objeck-lang/bin
  2. export OBJECK_LIB_PATH=<program_path>/objeck-lang/lib

On Windows STDIO may be configured to be UFT-8, UTF-16, or binary by setting the environment variable OBJECK_STDIO to "binary" or "utf16", the default if UTF-8.

Simple compile/execute:

  1. obc -src ..\examples\hello_0.obs or obc -src 'C:\Program Files\Objeck\objeck-lang\examples\encrypt_7.obs' -lib encrypt -dest my_prgm.obe
  2. obr my_prgm

Compile/execute for code that has library dependencies:

  1. obc -src ..\examples\xml_path.obs -lib collect.obl,xml.obl -dest xml_path.obe
  2. obr xml.obe

SDL Support

The 2D gaming framework is built around SDL2 (>=2.0.9). The Windows distribution contains the required DLLs. Support for other platforms is below.

For Linux

sudo apt install libsdl1.2debian libsdl-gfx1.2-5 libsdl-gfx1.2-dev libsdl-gfx1.2-doc libsdl-image1.2 libsdl-image1.2-dbg libsdl-image1.2-dev libsdl-mixer1.2 libsdl-mixer1.2-dbg libsdl-mixer1.2-dev libsdl-net1.2 libsdl-net1.2-dbg libsdl-net1.2-dev libsdl-sound1.2 libsdl-sound1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev

For macOS

  1. Apple Silicon (arm64)
  2. Go to the /lib/native directory an untar the sdl2_arm64.tgz file
  3. Copy the include and lib files to /usr/local/include and /usr/local/lib

Secure Web Server Support

The following to generate a self-signed SSL certificate for the 'TCPSecureSocketServer' class using OpenSSL commands (for Windows and Linux):

  1. openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout local.key -out local.crt -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,DNS:www.local.net,IP:127.0.0.1"
  2. openssl x509 -in local.crt -out cert.pem
  3. openssl rsa -aes256 -in local.key -out local.encrypted.key
  4. mv local.encrypted.key cert.key
  5. rm local.crt local.key
  6. chmod 600 cert.key
  7. Import 'cert.pem' into the host OS

Follow these instructions for macOS.

Source Code

The Objeck source repository is located here, and the source can be fetched using the following command GIT command:

License

The software was developed under the FreeBSD license. Supporting software licenses can be found here.

Bugs and Limitations


©2024 Randy Hollines. All Rights Reserved.