Skip to content

Commit 37e0327

Browse files
committed
docs: update changelog [skip ci]
1 parent 9ec02fc commit 37e0327

File tree

1 file changed

+111
-9
lines changed

1 file changed

+111
-9
lines changed

CHANGELOG.md

Lines changed: 111 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,112 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Removed
11+
- **Release v0.3.0: Production-Ready Milestone** (2025-10-14 – jarroddavis68)
12+
This release brings NitroPascal from proof-of-concept to production-ready with
13+
comprehensive string handling, file I/O, exception handling, dynamic data
14+
structures, external library integration, and conditional compilation -
15+
everything you need to build real, working applications.
16+
KEY MILESTONE:
17+
NitroPascal now has enough features to start doing REAL, PRODUCTIVE WORK. You
18+
can build actual applications that manipulate strings, read/write files, handle
19+
errors gracefully with exceptions, use dynamic arrays and sets, call external
20+
libraries, and target different platforms with conditional compilation.
21+
EXCEPTION HANDLING:
22+
- try..except blocks for error recovery
23+
- try..finally blocks for resource cleanup
24+
- try..except..finally for comprehensive error handling
25+
- raise statement for throwing exceptions
26+
- on E: Exception do for typed exception catching
27+
- Proper exception propagation and stack unwinding
28+
- Resource safety with deterministic cleanup
29+
DYNAMIC DATA STRUCTURES:
30+
- Dynamic arrays (array of T) with SetLength, Length, and High
31+
- Sets (set of T) with Include, Exclude, and membership testing (in)
32+
- Enhanced RTL with np::DynArray<T> and np::Set<T> implementations
33+
STRING MANIPULATION:
34+
- Complete string library: Copy, Pos, Delete, Insert
35+
- Case conversion: UpperCase, LowerCase
36+
- Whitespace handling: Trim, TrimLeft, TrimRight
37+
- Type conversion: IntToStr, StrToInt, StrToIntDef, FloatToStr, StrToFloat
38+
- Formatted output: Format function with variadic templates
39+
MATH LIBRARY:
40+
- Basic operations: Abs, Sqr, Sqrt
41+
- Trigonometry: Sin, Cos, Tan, ArcSin, ArcCos, ArcTan
42+
- Rounding: Round, Trunc, Ceil, Floor
43+
- Utility: Max, Min, Random, Randomize
44+
FILE I/O:
45+
- File management: Assign, Reset, Rewrite, Append, Close
46+
- Text I/O: Write(F), WriteLn(F), ReadLn
47+
- Binary I/O: BlockRead, BlockWrite
48+
- File positioning: Seek, FilePos, FileSize, Eof
49+
- File system: FileExists, DirectoryExists, CreateDir, GetCurrentDir
50+
- File operations: DeleteFile, RenameFile
51+
CONTROL FLOW ENHANCEMENTS:
52+
- Loop control: break, continue
53+
- Early return: exit, exit with return value
54+
- Simplified access: with statement
55+
- Forward declarations for functions and procedures
56+
ORDINAL FUNCTIONS:
57+
- Type inspection: Ord, Chr, Low, High, SizeOf
58+
- Iteration: Succ, Pred, Inc, Dec (with optional step)
59+
- Pointer utilities: Assigned
60+
MEMORY MANAGEMENT:
61+
- Advanced allocation: GetMem, FreeMem, ReallocMem
62+
- Memory operations: FillChar, Move
63+
- Block operations for efficient buffer manipulation
64+
EXTERNAL LIBRARY INTEGRATION:
65+
- External function declarations (external 'library.dll')
66+
- Multiple calling conventions: stdcall, cdecl, fastcall
67+
- Automatic string type conversion (PChar, PWideChar, PAnsiChar)
68+
- External library tracking for automatic linking
69+
- Seamless C/C++ interoperability
70+
CONDITIONAL COMPILATION:
71+
- Platform detection: WIN32, WIN64, LINUX, MACOS, MSWINDOWS, POSIX
72+
- Architecture detection: CPUX64, CPU386, CPUARM64
73+
- Build mode detection: DEBUG, RELEASE
74+
- Application type: CONSOLE_APP, GUI_APP
75+
- Preprocessor directives: {$ifdef}, {$else}, {$endif}
76+
- Custom application type: {$apptype console|gui}
77+
PLATFORM SERVICES:
78+
- Command-line arguments: ParamCount, ParamStr
79+
- Program termination: Halt
80+
RUNTIME LIBRARY ENHANCEMENTS:
81+
- Enhanced np::String with comprehensive string manipulation
82+
- New np::DynArray<T> for dynamic array support
83+
- New np::Set<T> for set operations
84+
- File I/O wrappers maintaining Delphi semantics
85+
- Console input: ReadLn
86+
CODE GENERATION IMPROVEMENTS:
87+
- External function handling (no C++ declaration generation)
88+
- Automatic library dependency tracking
89+
- Calling convention mapping
90+
- String type conversions for external calls
91+
- Forward declaration support
92+
BUILD SYSTEM ENHANCEMENTS:
93+
- Automatic define injection based on target platform
94+
- Automatic define injection based on build mode
95+
- Architecture-specific defines
96+
- Application type defines
97+
- Windows subsystem control (console vs GUI)
98+
TESTING INFRASTRUCTURE:
99+
- Integrated test runner for validation
100+
- Comprehensive test suite covering all features
101+
This release represents a major leap forward in capability. With exception
102+
handling, string manipulation, file I/O, dynamic data structures, external
103+
library support, and conditional compilation, you can now build robust, real
104+
applications in NitroPascal.
105+
THE PRODUCTIVITY MILESTONE:
106+
NitroPascal is no longer just a compiler experiment - it's a tool you can use
107+
to build actual, working software. Parse files, manipulate data, handle errors
108+
gracefully, integrate with existing libraries, target multiple platforms, and
109+
ship real applications with confidence.
110+
Write once in pure Delphi. Compile to native C++. Run everywhere.
111+
Version: 0.3.0
112+
113+
114+
## [0.2.0] - 2025-10-13
115+
10116
### Added
11117
- **Repo Update** (2025-10-12 – jarroddavis68)
12118
Release v0.2.0: Core language features and RTL foundation
@@ -54,15 +160,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
54160
transpilation pipeline is: Pascal → C++ (via RTL) → Native Code (via Zig/LLVM).
55161
Version: 0.2.0
56162

57-
58-
### Fixed
59-
- **Repo Update** (2025-10-11 – jarroddavis68)
60-
- Fixed links in README and on website
61-
62-
63-
## [0.1.0] - 2025-10-07
64-
65-
### Added
66163
- **Create FUNDING.yml** (2025-07-27 – Jarrod Davis)
67164

68165

@@ -85,3 +182,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
85182

86183
- **Initial commit** (2025-07-27 – Jarrod Davis)
87184

185+
186+
### Fixed
187+
- **Repo Update** (2025-10-11 – jarroddavis68)
188+
- Fixed links in README and on website
189+

0 commit comments

Comments
 (0)