Skip to content

Commit 70de7df

Browse files
committed
docs: update changelog [skip ci]
1 parent 9d32f61 commit 70de7df

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

CHANGELOG.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,135 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
- **Stop tracking .pdf files** (2025-10-19 – jarroddavis68)
1212

1313

14+
### Removed
15+
- **Release v0.4.0: Real-World Usage** (2025-10-19 – jarroddavis68)
16+
NitroPascal v0.4.0 delivers the features that matter for building real
17+
applications in production: function pointers for callbacks, structured RTL
18+
modules (Types, SysUtils, StrUtils, DateUtils), static library linking
19+
(demonstrated with raylib), comprehensive benchmarking suite, and dramatically
20+
expanded runtime capabilities.
21+
KEY MILESTONE:
22+
NitroPascal now demonstrates REAL-WORLD VIABILITY. Static link raylib for game
23+
development. Compare performance against Delphi with included benchmarks.
24+
Structure your code with standard Pascal RTL modules. Build production software
25+
with a mature, organized runtime library.
26+
FUNCTION POINTERS (PROCEDURAL TYPES):
27+
- Procedural type declarations (type TCallback = procedure(X: Integer))
28+
- Function variable assignments
29+
- Callback patterns for event handling
30+
- Higher-order functions and functional programming
31+
- Framework integration hooks
32+
- Plugin architectures
33+
- Event-driven programming patterns
34+
STRUCTURED RTL MODULES:
35+
- System.Types - Base type declarations and utilities
36+
- System.SysUtils - System utilities and conversions
37+
- System.StrUtils - String manipulation utilities
38+
- System.DateUtils - Date/time functions (foundation)
39+
- Organized, discoverable API surface
40+
- Standard Pascal module structure
41+
- Clear separation of concerns
42+
- Professional codebase organization
43+
STATIC LIBRARY LINKING:
44+
- Link against static libraries (.lib/.a files)
45+
- Demonstrated with raylib game development library
46+
- Zero-overhead integration with C/C++ libraries
47+
- Single-executable deployment (no DLL dependencies)
48+
- Complete control over dependencies
49+
- Simplified distribution
50+
ENHANCED STRING LIBRARY:
51+
- StringOfChar(Ch, Count) - Create repeated character strings
52+
- UniqueString(S) - Ensure unique string reference
53+
- SetString(S, Buffer, Len) - Direct buffer to string
54+
- Val(S, V, Code) - String to numeric with error code
55+
- Str(X, S) - Numeric to string (legacy compatibility)
56+
- UpCase(Ch) - Single character uppercase
57+
- WideCharLen(S) - Wide string length
58+
- WideCharToString(S) - Convert wide to string
59+
- StringToWideChar(S, Buf, BufSize) - String to wide buffer
60+
- WideCharToStrVar(S, Dest) - Wide to string variable
61+
- Complete wide character support for Unicode
62+
EXPANDED MATH LIBRARY:
63+
- Logarithms: Ln(X), Log10(X), Log2(X), LogN(Base, X)
64+
- Exponential: Exp(X), Power(Base, Exponent)
65+
- Integer/fractional: Int(X), Frac(X)
66+
- Hyperbolic trig: Sinh(X), Cosh(X), Tanh(X)
67+
- Inverse hyperbolic: ArcSinh(X), ArcCosh(X), ArcTanh(X)
68+
- Mathematical constant: Pi
69+
- ArcTan2(Y, X) for proper angle calculations
70+
- Scientific computing capabilities
71+
- Complete mathematical toolkit
72+
ENHANCED FILE I/O:
73+
- Read(F, Var) - Read from text file to variable
74+
- Eoln(F) - Test for end of line in text file
75+
- SeekEof(F) - Skip whitespace, test for EOF
76+
- SeekEoln(F) - Skip whitespace, test for EOL
77+
- Flush(F) - Force write buffer to disk
78+
- Truncate(F) - Truncate file at current position
79+
- Erase(F) - Delete closed file
80+
- Rename(F, NewName) - Rename closed file
81+
- IOResult - Get last I/O error code
82+
- Complete Delphi file I/O compatibility
83+
ENHANCED MEMORY FUNCTIONS:
84+
- AllocMem(Size) - Allocate zero-filled memory
85+
- FillByte(Dest, Count, Value) - Fill byte array
86+
- FillWord(Dest, Count, Value) - Fill word array
87+
- FillDWord(Dest, Count, Value) - Fill dword array
88+
- Efficient bulk memory operations
89+
- Type-specific fill operations
90+
ENHANCED ORDINAL FUNCTIONS:
91+
- Odd(X) - Test if integer is odd
92+
- Swap(X) - Swap byte order (endianness)
93+
- Byte manipulation utilities
94+
PLATFORM SERVICES:
95+
- RunError(ErrorCode) - Terminate with error code
96+
- Abort - Terminate with exception
97+
- Enhanced program control
98+
CODE GENERATION IMPROVEMENTS:
99+
- Line number directives (#line) for debugging
100+
- Source position tracking in generated code
101+
- Better debuggability
102+
- Improved error messages with source locations
103+
COMPILER DIRECTIVES:
104+
- {$include_header 'filename'} - Include C/C++ headers directly
105+
- Seamless integration with native libraries
106+
- Direct access to platform APIs
107+
BENCHMARK SUITE:
108+
- Comprehensive performance comparison: NitroPascal vs Delphi
109+
- Real-world test scenarios
110+
- Quantifiable performance metrics
111+
- Optimization validation
112+
- Demonstrates competitive performance
113+
ENHANCED C++ RUNTIME:
114+
- Expanded standard library wrappers
115+
- More complete RTL implementation
116+
- Better Delphi compatibility
117+
- Optimized performance paths
118+
BUILD SYSTEM ENHANCEMENTS:
119+
- Static library linking support
120+
- Improved dependency management
121+
- Better library path resolution
122+
- Cross-platform static linking
123+
REAL-WORLD DEMONSTRATIONS:
124+
- Raylib integration example (static linking)
125+
- Game development capabilities
126+
- High-performance graphics
127+
- Professional library integration
128+
- Production-ready examples
129+
This release proves NitroPascal's real-world viability. With function pointers
130+
for callbacks, structured RTL modules for organization, static linking for
131+
deployment simplicity, and comprehensive benchmarks showing competitive
132+
performance, you can confidently build production applications.
133+
THE REAL-WORLD MILESTONE:
134+
NitroPascal isn't just production-ready - it's production-proven. Static link
135+
libraries like raylib. Write callbacks and event handlers with function
136+
pointers. Structure your code with standard Pascal modules. Compare performance
137+
directly against Delphi. Ship real applications with confidence.
138+
Write once in pure Delphi. Link static libraries. Ship single executables. Run
139+
everywhere.
140+
Version: 0.4.0
141+
142+
14143
## [0.3.0] - 2025-10-15
15144

16145
### Added

0 commit comments

Comments
 (0)