@@ -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