Releases: taedlar/neolith
Releases · taedlar/neolith
1.0.0-alpha.5
Release 1.0.0-alpha.5
This alpha release includes significant improvements to I/O handling, platform compatibility, and internal architecture.
🚀 New Features
- Command Turn System (#230, #229): Implemented command processing turn mechanism for better game loop control
- 64-bit Integer Support (#227): Platform-agnostic 64-bit integer support for LPC runtime
- IO Reactor (#214, #209, #205): Complete IO reactor abstraction with poll() implementation for non-blocking I/O
- Console Mode (#221, #213): Added CONSOLE_USER connection type that bypasses telnet protocol
- Windows console support (#213)
- Timer Port Integration (#225): Integrated timer_port API for improved event handling
- Testing Enhancements (#215): Extended load_object() to accept pre-text parameter for easier unit testing
🐛 Bug Fixes
- Windows Platform (#228, #216, #212, #206): Multiple Windows compatibility fixes
- IO Reactor (#220, #219): Console I/O handling and io_reactor_wait() fixes
- Timer (#226): Fixed timer_port for heart_beat mechanism
- Compiler (#223): Fixed program_t pointer alignment issues
- LPC Runtime (#218, #211, #210): Multiple runtime fixes
- Unit Tests (#217, #202): Fixed save_object unit tests and cleaned up test environment
- Socket Communication (#207): Fixed socket_comm issues
- MSVC Build (#208): Fixed various warnings on MSVC build
🧹 Code Quality & Documentation
- LPC Types (#224, #222): Clarified LPC type system and improved program structure documentation
- Documentation (#203, #201): Updated admin guide and formatting improvements
- AI Assistance (#200, #198): Added GitHub Copilot instructions for development
- Graceful Cleanup (#197): Added --pedantic flag to enable graceful cleanup on shutdown
📊 Statistics
- 33 commits since 1.0.0-alpha.4
- Major improvements in cross-platform compatibility
- Enhanced testing infrastructure
- Comprehensive I/O subsystem refactoring
⚠️ Breaking Changes
- find_function() now returns runtime function index instead of function number (reverted behavior from #210)
Full Changelog: 1.0.0-alpha.4...1.0.0-alpha.5
1.0.0-alpha.4
What's Changed
- doc: added new changelog by @taedlar in #143
- test: add backend unit-tests by @taedlar in #144
- test: add unit-tests for stack machine by @taedlar in #145
- clean: moved regexp to lib/efuns by @taedlar in #146
- doc: update coding style by @taedlar in #147
- test: add unit-tests for lpc interpreter by @taedlar in #148
- doc: update architecture illustration by @taedlar in #149
- clean: make local func static by @taedlar in #150
- clean: rename action handler to process_command by @taedlar in #151
- fix: look_for_objects_to_swap() gets wrong time_of_ref by @taedlar in #152
- clean: protect current_error_context as static variable by @taedlar in #153
- clean: make LPC program counter a const char pointer by @taedlar in #154
- clean: move catch_value to error_context package by @taedlar in #155
- clean: separate apply code from interpret.c by @taedlar in #156
- clean: lpc interpreter code by @taedlar in #157
- test: add testing opcode name by @taedlar in #158
- test: add unit-test for set_heart_beat by @taedlar in #159
- test: add unit-tests for preprocessor by @taedlar in #160
- feat: supports adding pre_text in compile_file() for unit-tests by @taedlar in #161
- doc: lpc library by @taedlar in #162
- test: add unit-test for eval cost limitation by @taedlar in #163
- feat: made float using double by default by @taedlar in #164
- test: allow call_function() to pass arguments by @taedlar in #165
- test: add unit-tests for object hash table by @taedlar in #166
- clean: rename internal find_object() to avoid confusion by @taedlar in #167
- clean: separate identifier routines from lexer by @taedlar in #168
- clean: separate functional impl from interpret.c by @taedlar in #169
- clean: functional defs by @taedlar in #170
- clean: removed old debug() macro by @taedlar in #171
- feat: add --console-mode for driver by @taedlar in #172
- feat: support password and get_char in console mode by @taedlar in #173
- feat: console reconnect clears pending input by @taedlar in #174
- Add MCP (Model Context Protocol) configuration by @taedlar in #175
- feat: clean socket headers by @taedlar in #176
- port: compile with msvc by @taedlar in #177
- port: build unit-tests in msvc by @taedlar in #178
- fix: crasher in get_simul_efuns() by @taedlar in #179
- fix: misc errors in unit-tests by @taedlar in #180
- clean: error handling in unit-tests by @taedlar in #181
- fix: add /utf-8 to msvc compiler by @taedlar in #182
- fix: unit-test platform dependent utf8 locale setting by @taedlar in #183
- fix: extend gtest discovery timeout by @taedlar in #184
- fix: warnings in msvc build by @taedlar in #185
- fix: unit-test for double precison by @taedlar in #186
- fix: various int size warnings in msvc build by @taedlar in #187
- fix: refill_buffer() to expect portable read() behavior by @taedlar in #188
- fix: read_file() behavior in windows text mode by @taedlar in #189
- fix: fatal error handling by @taedlar in #190
- feat: integrate winsock2 by @taedlar in #191
- fix: console mode limitation on winsock select() by @taedlar in #192
- fix: winsock efuns by @taedlar in #193
- fix: use read() for console connection by @taedlar in #194
- doc: updates for winsock in console-mode by @taedlar in #195
- feat: use poll() for socket I/O when available by @taedlar in #196
Full Changelog: 1.0.0-alpha.3...1.0.0-alpha.4
1.0.0-alpha.3
What's Changed
- feat: add simul_efun tear down by @taedlar in #101
- test: unit test for compile_file() by @taedlar in #102
- clean: lpc compiler interface by @taedlar in #103
- feat: add init_simulate() by @taedlar in #104
- feat: add tear_down_simulate() by @taedlar in #105
- fix: free apply_ret_value in reset_machine by @taedlar in #106
- fix: call init_object for vital objects by @taedlar in #107
- clean: add const qualifiers by @taedlar in #108
- port: detects posix stpcpy and sptncpy by @taedlar in #109
- fix: various warnings by @taedlar in #110
- fix: lpc parser warnings by @taedlar in #111
- clean: simul_efun internals by @taedlar in #112
- test: add test_simul_efun by @taedlar in #113
- clean: remove use of global variable to count svalue string length by @taedlar in #114
- fix: add required pop_context() to prevent dangling pointers by @taedlar in #115
- fix: protect simul_efun from destruct if master object exists by @taedlar in #116
- fix: save_binary signature to use simil_efun as config id by @taedlar in #117
- test: unit-test calling simul_efun by @taedlar in #118
- test: add LPC lexer unit-tests by @taedlar in #119
- chore: rename SERVER_OPTION to MAIN_OPTION by @taedlar in #120
- fix: lexer unit-test clean up by @taedlar in #121
- test: add lexer unit-test with string by @taedlar in #122
- test: add various lexer unit tests by @taedlar in #123
- feat: add double keyword and upgrade float by @taedlar in #124
- doc: float points by @taedlar in #125
- feat: add support for wide character literals by @taedlar in #126
- test: add unit-test for efuns by @taedlar in #127
- fix: efun explode() for utf-8 string by @taedlar in #128
- clean: remove gettext l10n macro by @taedlar in #129
- fix: detection of librt by @taedlar in #130
- clean: unsorted efuns by @taedlar in #131
- clean: sscanf efun by @taedlar in #132
- test: add sscanf unit-test by @taedlar in #133
- clean: unsorted efuns by @taedlar in #134
- clean: variables efun and doc by @taedlar in #135
- test: add unit-test for strsrch() by @taedlar in #136
- test: add unit-test for replace_string() by @taedlar in #137
- clean: removed efun break_string, process_string, process_value by @taedlar in #138
- clean: efun and docs by @taedlar in #139
- fix: rename variables conflict with cxx keyword by @taedlar in #140
- doc: add architecture illustration by @taedlar in #141
- chore: adjust illustration color by @taedlar in #142
Full Changelog: 1.0.0-alpha.2...1.0.0-alpha.3
v1.0.0-alpha.2
What's Changed
- feat: add unit-tests integration using googletest by @taedlar in #73
- ci: enable codeql scan by @taedlar in #74
- fix: check HAVE_LIBRT in cmake by @taedlar in #75
- fix: trace flags for backend tier by @taedlar in #76
- clean: reference simulate.h from stem header by @taedlar in #77
- clean: reorganize lpc related headers by @taedlar in #78
- clean: reorganize lpc code generation by @taedlar in #79
- clean: reorganize lpc compiler code by @taedlar in #80
- fix: telnet related warnings by @taedlar in #81
- fix: various compile warnings by @taedlar in #82
- fix: scanf return value check by @taedlar in #83
- fix: potential crasher in subtract_array by @taedlar in #84
- clean: separate runtime config as static lib by @taedlar in #85
- fix: warnings by @taedlar in #86
- doc: add doc for driver main program by @taedlar in #87
- test: add stem object library for unit-testing by @taedlar in #88
- clean: rearrange stem variables for unit-testing by @taedlar in #89
- test: add unit-testing to load master object by @taedlar in #90
- testL add LPC compiler tear down by @taedlar in #91
- test: update logger unit-tests by @taedlar in #92
- test: add unit-tests for stralloc by @taedlar in #93
- doc: unit-testing by @taedlar in #94
- test: add deinit for otable, livings and strings by @taedlar in #95
- feat: allow trully destruct master_ob by @taedlar in #96
- doc: update running ctest in debugger by @taedlar in #97
- feat: add deinit_config and updated unit-tests by @taedlar in #98
- test: add unit test for load_obejct() by @taedlar in #99
- clean: main function and add comments by @taedlar in #100
Full Changelog: 1.0.0-alpha.1...1.0.0-alpha.2
v1.0.0-alpha.1
- initial base release with cmake build process.
- tested OK with latest ES2 mudlib