Skip to content
This repository was archived by the owner on Nov 7, 2025. It is now read-only.

Commit 089d050

Browse files
committed
Repo Update
- Fixed links in README and on website
1 parent ab57e7d commit 089d050

File tree

2 files changed

+74
-31
lines changed

2 files changed

+74
-31
lines changed

README.md

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div align="center">
44

5-
[![Join Facebook Group](https://img.shields.io/badge/Facebook-NitroPascal-blue?style=for-the-badge&logo=facebook)](https://www.facebook.com/groups/nitropascal) [![Chat on Discord](https://img.shields.io/discord/754884471324672040?style=for-the-badge)](https://discord.gg/tinyBigGAMES) [![Follow on Bluesky](https://img.shields.io/badge/Bluesky-tinyBigGAMES-blue?style=for-the-badge&logo=bluesky)](https://bsky.app/profile/tinybiggames.com)
5+
[![Join Facebook Group](https://img.shields.io/badge/Facebook-NitroPascal-blue?style=for-the-badge&logo=facebook)](https://www.facebook.com/groups/nitropascal) [![Chat on Discord](https://img.shields.io/discord/754884471324672040?style=for-the-badge)](https://discord.gg/tPWjMwK) [![Follow on Bluesky](https://img.shields.io/badge/Bluesky-tinyBigGAMES-blue?style=for-the-badge&logo=bluesky)](https://bsky.app/profile/tinybiggames.com)
66

77
**Modern Pascal • C Performance**
88

@@ -32,11 +32,11 @@
3232

3333
## 🎯 Introduction
3434

35-
NitroPascal is a next-generation Pascal implementation that bridges the elegance of Pascal with the raw performance of C. By combining modern language features with low-level optimization capabilities, NitroPascal aims to deliver the best of both worlds: readable, maintainable code that doesn't sacrifice speed.
35+
NitroPascal is a next-generation Pascal compiler that bridges the elegance of Object Pascal with the raw performance of C. By transpiling Object Pascal code to optimized C++, NitroPascal aims to deliver the best of both worlds: readable, maintainable code that doesn't sacrifice speed.
3636

3737
## 🔥 What Makes It Special?
3838

39-
NitroPascal takes a revolutionary approach to achieving C-level performance: **transpilation**. Instead of interpreting or compiling directly to bytecode, NitroPascal transpiles modern NitroPascal code into highly optimized, idiomatic C++. This intermediate C++ representation is then compiled using **Zig as a drop-in C++ compiler**, with the entire build orchestrated through **build.zig**, unlocking:
39+
NitroPascal takes a revolutionary approach to achieving C-level performance: **transpilation**. Instead of interpreting or compiling directly to bytecode, NitroPascal transpiles Object Pascal code into highly optimized, idiomatic C++. This intermediate C++ representation is then compiled using **Zig as a drop-in C++ compiler**, with the entire build orchestrated through **build.zig**, unlocking:
4040

4141
- 🎯 **Multi-Target Compilation**: Generate native binaries for Windows, Linux, macOS, and beyond
4242
-**Aggressive Optimization**: Leverage decades of C++ compiler optimization research through Zig's LLVM backend
@@ -52,7 +52,7 @@ NitroPascal's compilation pipeline transforms your Pascal code through multiple
5252

5353
```
5454
┌─────────────────┐
55-
NitroPascal │ Write clean, modern Pascal code
55+
Object Pascal │ Write clean, modern Pascal code
5656
│ Source │
5757
└────────┬────────┘
5858
@@ -83,31 +83,37 @@ NitroPascal's compilation pipeline transforms your Pascal code through multiple
8383

8484
## 💻 Quick Example
8585

86-
See how elegant Pascal code transforms into optimized C++:
86+
See how elegant Object Pascal code transforms into optimized C++:
8787

8888
<table>
8989
<tr>
90-
<th>NitroPascal Source</th>
90+
<th>Object Pascal Source</th>
9191
<th>Generated C++ Code</th>
9292
</tr>
9393
<tr>
9494
<td>
9595

9696
```pascal
97-
$optimize "debug"
98-
9997
program HelloWorld;
10098
101-
extern <stdio.h> routine printf(format: ^char; ...): int;
99+
type
100+
TPoint = record
101+
X: Integer;
102+
Y: Integer;
103+
end;
102104
103-
routine Greet(name: ^char);
105+
procedure PrintPoint(const P: TPoint);
104106
begin
105-
printf("Hello, %s!\n", name);
107+
WriteLn('Point(', P.X, ', ', P.Y, ')');
106108
end;
107109
110+
var
111+
Point: TPoint;
108112
begin
109-
Greet("NitroPascal");
110-
ExitCode := 0;
113+
Point.X := 10;
114+
Point.Y := 20;
115+
PrintPoint(Point);
116+
WriteLn('Hello from NitroPascal!');
111117
end.
112118
```
113119

@@ -116,14 +122,26 @@ end.
116122

117123
```cpp
118124
// Optimized C++ output
119-
#include <stdio.h>
125+
#include <iostream>
126+
127+
struct TPoint {
128+
int32_t X;
129+
int32_t Y;
130+
};
120131

121-
void Greet(const char* name) {
122-
printf("Hello, %s!\n", name);
132+
void PrintPoint(const TPoint& P) {
133+
std::wcout << L"Point(" << P.X
134+
<< L", " << P.Y << L")"
135+
<< std::endl;
123136
}
124137

125138
int main() {
126-
Greet("NitroPascal");
139+
TPoint Point;
140+
Point.X = 10;
141+
Point.Y = 20;
142+
PrintPoint(Point);
143+
std::wcout << L"Hello from NitroPascal!"
144+
<< std::endl;
127145
return 0;
128146
}
129147
```
@@ -145,7 +163,7 @@ Pascal has always been celebrated for its clarity and strong typing, making it a
145163
146164
### Language & Syntax
147165
- 🎨 **Clean, expressive syntax** that doesn't compromise on power
148-
- 📝 **Modern Pascal syntax** with contemporary language features
166+
- 📝 **Object Pascal syntax** compatible with Delphi code
149167
- 🔒 **Memory safety** through strong typing without garbage collection overhead
150168
151169
### Performance & Optimization

website/index.html

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -753,37 +753,55 @@ <h2>💻 See It In Action</h2>
753753
</p>
754754
<div class="code-comparison">
755755
<div class="code-block">
756-
<div class="code-header">NitroPascal Source</div>
756+
<div class="code-header">Object Pascal Source</div>
757757
<div class="code-content">
758-
<span class="keyword">$optimize</span> <span class="string">"debug"</span>
759-
760758
<span class="keyword">program</span> HelloWorld;
761759

762-
<span class="keyword">extern</span> &lt;stdio.h&gt; <span class="keyword">routine</span> <span class="function">printf</span>(format: <span class="type">^char</span>; ...): <span class="type">int</span>;
760+
<span class="keyword">type</span>
761+
<span class="type">TPoint</span> = <span class="keyword">record</span>
762+
X: <span class="type">Integer</span>;
763+
Y: <span class="type">Integer</span>;
764+
<span class="keyword">end</span>;
763765

764-
<span class="keyword">routine</span> <span class="function">Greet</span>(name: <span class="type">^char</span>);
766+
<span class="keyword">procedure</span> <span class="function">PrintPoint</span>(<span class="keyword">const</span> P: <span class="type">TPoint</span>);
765767
<span class="keyword">begin</span>
766-
<span class="function">printf</span>(<span class="string">"Hello, %s!\n"</span>, name);
768+
<span class="function">WriteLn</span>(<span class="string">'Point('</span>, P.X, <span class="string">', '</span>, P.Y, <span class="string">')'</span>);
767769
<span class="keyword">end</span>;
768770

771+
<span class="keyword">var</span>
772+
Point: <span class="type">TPoint</span>;
769773
<span class="keyword">begin</span>
770-
<span class="function">Greet</span>(<span class="string">"NitroPascal"</span>);
771-
ExitCode := <span class="number">0</span>;
774+
Point.X := <span class="number">10</span>;
775+
Point.Y := <span class="number">20</span>;
776+
<span class="function">PrintPoint</span>(Point);
777+
<span class="function">WriteLn</span>(<span class="string">'Hello from NitroPascal!'</span>);
772778
<span class="keyword">end</span>.
773779
</div>
774780
</div>
775781
<div class="code-block">
776782
<div class="code-header">Generated C++ Code</div>
777783
<div class="code-content">
778784
<span class="comment">// Optimized C++ output</span>
779-
<span class="keyword">#include</span> <span class="string">&lt;stdio.h&gt;</span>
785+
<span class="keyword">#include</span> <span class="string">&lt;iostream&gt;</span>
786+
787+
<span class="keyword">struct</span> <span class="type">TPoint</span> {
788+
<span class="type">int32_t</span> X;
789+
<span class="type">int32_t</span> Y;
790+
};
780791

781-
<span class="keyword">void</span> <span class="function">Greet</span>(<span class="keyword">const</span> <span class="type">char</span>* name) {
782-
<span class="function">printf</span>(<span class="string">"Hello, %s!\n"</span>, name);
792+
<span class="keyword">void</span> <span class="function">PrintPoint</span>(<span class="keyword">const</span> <span class="type">TPoint</span>&amp; P) {
793+
<span class="type">std::wcout</span> &lt;&lt; <span class="string">L"Point("</span> &lt;&lt; P.X
794+
&lt;&lt; <span class="string">L", "</span> &lt;&lt; P.Y &lt;&lt; <span class="string">L")"</span>
795+
&lt;&lt; <span class="type">std::endl</span>;
783796
}
784797

785798
<span class="keyword">int</span> <span class="function">main</span>() {
786-
<span class="function">Greet</span>(<span class="string">"NitroPascal"</span>);
799+
<span class="type">TPoint</span> Point;
800+
Point.X = <span class="number">10</span>;
801+
Point.Y = <span class="number">20</span>;
802+
<span class="function">PrintPoint</span>(Point);
803+
<span class="type">std::wcout</span> &lt;&lt; <span class="string">L"Hello from NitroPascal!"</span>
804+
&lt;&lt; <span class="type">std::endl</span>;
787805
<span class="keyword">return</span> <span class="number">0</span>;
788806
}
789807
</div>
@@ -828,7 +846,14 @@ <h2>🔧 Built With</h2>
828846
Standing on the shoulders of giants
829847
</p>
830848
<div class="dependencies-grid">
831-
849+
<div class="dependency-card">
850+
<div class="dependency-icon">🌳</div>
851+
<h3>DelphiAST</h3>
852+
<p>Abstract Syntax Tree builder for Delphi - provides robust Pascal parsing capabilities that power NitroPascal's source code analysis.</p>
853+
<a href="https://github.com/RomanYankovsky/DelphiAST" class="dependency-link" target="_blank">
854+
View on GitHub →
855+
</a>
856+
</div>
832857
<div class="dependency-card">
833858
<div class="dependency-icon"></div>
834859
<h3>LLVM</h3>

0 commit comments

Comments
 (0)