Syntax additions, updates to collections, and HTTPS PEM file support.
2025.7.0
- Added
Hash->Dict(..)
,Map->Dict(..)
andVector->Zip(..)
to collections - Updated style (docs, logos, etc.)
- Bug fixes
v2025.6.3
- Support for user-provided HTTPS PEM files
- Added multi-statement pre/update support
for
loops
v2025.6.2
- New API documentation system
- Updated Windows launcher
- Added support for OpenAI's Responses API
- Improved JSON scheme support
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
- app/ – Windows launcher (optional)
- bin/ – compiler, debugger, and VM
- doc/ – general documentation
- doc/api/ – class library documentation
- doc/syntax – files to enable syntax highlighting for supported editors
- examples/ – source code examples, including a 2D game
- examples/doc – source code for self-documentation system
- examples/tiny – "tiny" language compiler and VM
- lib/ – supporting language libraries
- lib/native/ – native OS shared libraries
- lib/native/misc – support files for the portable runtime environment
- lib/sdl/ – host SDL shared libraries
Windows launcher
The Windows Launcher is a convenient way to run programs and access documentation. On Windows, configuration information is stored in the
%ProgramData%\Objeckdirectory and built the first time the app runs. If you move the install location, delete the
%ProgramData%\Objeckdirectory and rerun the launcher.
Compiling and executing programs
To compile programs outside the
bindirectory set, the
OBJECK_LIB_PATHenvironment 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:
-
set OBECK_LIB_PATH=<program_path>\objeck-lang\lib
-
set PATH=%PATH%;<program_path>\objeck-lang\bin;<program_path>\objeck-lang\lib\sdl
-
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:
-
export PATH=$PATH:<program_path>/objeck-lang/bin
-
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_STDIOto "binary" or "utf16", the default is UTF-8.
Simple compile/execute:
-
obc -src ..\examples\hello_0.obs
orobc -src 'C:\Program Files\Objeck\objeck-lang\examples\encrypt_7.obs' -lib cipher -dest my_prgm.obe
-
obr my_prgm
Compile/execute for code that has library dependencies:
-
obc -src ..\examples\xml_path.obs -lib collect.obl,xml.obl -dest xml_path.obe
-
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
- Apple Silicon (arm64)
-
Go to the
/lib/native
directory and untar thesdl2_arm64.tgz
file -
Copy the include and lib files to
/usr/local/include
and/usr/local/lib
Secure Web Server Support
The following steps generate a self-signed SSL certificate for the 'TCPSecureSocketServer' class using OpenSSL commands (for Windows and Linux):
-
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"
-
openssl x509 -in local.crt -out cert.pem
-
openssl rsa -aes256 -in local.key -out local.encrypted.key
-
mv local.encrypted.key cert.key
-
rm local.crt local.key
-
chmod 600 cert.key
- 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 GIT command:
-
git clone https://github.com/objeck/objeck-lang.git
License
The software was developed under the FreeBSD license . Supporting software licenses can be found here .
Bugs and Limitations
-
Tested on the following platforms
- Windows 10/11 - (ARM64, x64)
- Ubuntu 24.04 LTS (ARM64, x64)
- macOS 15.3 - (ARM64)
- Intel macOS: You will need to install OpenSSL to use encryption APIs and iODBC to enable database support. Please refer to the following link for OpenSSL directions and this link for ODBC support.
- Please file bugs , I do not sleep much.