Skip to content

Commit 84ca951

Browse files
authored
Merge pull request #15 from Ovum-Programming-Language/repo-setup
Update links in the README.md
2 parents dc3fe80 + a2319d1 commit 84ca951

File tree

5 files changed

+65
-17
lines changed

5 files changed

+65
-17
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.12)
1+
cmake_minimum_required(VERSION 3.25)
22

33
project(
44
ovum

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
- Contributing to The Ovum Language is fairly easy. This document shows you how to get started
44

5+
> Note that this repository contains ONLY the toolset integration. That means that the actual tool implementations are in different repositories. For example, the compiler is in the [OvumCompiler](https://github.com/Ovum-Programming-Language/OvumCompiler) repository.
6+
> DO NOT submit PRs to this repository, only to the repositories of the actual tools, unless you are sure that the change is applicable to the toolset integration itself (e.g. introduction of a new tool).
7+
58
## General
69
- The [Codebase Structure](./CODEBASE_STRUCTURE.md) has detailed information about how the various files in this project are structured
710
- Please ensure that any changes you make are in accordance with the [Coding Guidelines](./CODING_GUIDELINES.md) of this repo

README.md

Lines changed: 60 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
Ovum is a strongly statically typed, single-threaded language focused on safety, clarity, and performance. It uses Kotlin-like syntax, immutability by default, a GC + JIT VM, interface-based polymorphism, and support for pure functions and functional objects.
44

55
- Contribute: see [`CONTRIBUTING.md`](CONTRIBUTING.md).
6-
- Project docs: [Online](https://ovum-programming-language.github.io/OvumDocs/) or [`docs/README.md`](docs/README.md).
7-
- Full language reference: [Online](https://ovum-programming-language.github.io/OvumDocs/reference/) or [`docs/reference/README.md`](docs/reference/README.md).
6+
- Project docs: [Online](https://ovum-programming-language.github.io/OvumDocs/).
7+
- Full language reference: [Online](https://ovum-programming-language.github.io/Ovumhttps://ovum-programming-language.github.io/OvumDocs/reference/).
88

99
---
1010

11-
## [Overview](docs/reference/design.md)
11+
## [Overview](https://ovum-programming-language.github.io/OvumDocs/reference/design)
1212

1313
- Memory safety via GC; no manual memory management.
1414
- Immutable by default; explicit mutation with `var`.
@@ -20,7 +20,7 @@ Ovum is a strongly statically typed, single-threaded language focused on safety,
2020

2121
---
2222

23-
## [Syntax at a Glance](docs/reference/syntax.md)
23+
## [Syntax at a Glance](https://ovum-programming-language.github.io/OvumDocs/reference/syntax)
2424

2525
- Files: `.ovum`. Names: PascalCase for types/methods.
2626
- Functions: `fun Name(a: T): U { ... }`; pure: `pure fun ...`.
@@ -30,7 +30,7 @@ Ovum is a strongly statically typed, single-threaded language focused on safety,
3030

3131
---
3232

33-
## [Types](docs/reference/types.md) and [Nullability](docs/reference/nullable.md)
33+
## [Types](https://ovum-programming-language.github.io/OvumDocs/reference/types) and [Nullability](https://ovum-programming-language.github.io/OvumDocs/reference/nullable)
3434

3535
- **Fundamental types**: `int`, `float`, `byte`, `char`, `bool`, `pointer` (value types, not nullable, not Objects)
3636
- **Primitive reference types**: `Int`, `Float`, `Byte`, `Char`, `Bool`, `Pointer` (reference wrappers, nullable, Objects)
@@ -42,18 +42,18 @@ Ovum is a strongly statically typed, single-threaded language focused on safety,
4242

4343
---
4444

45-
## [Control Flow](docs/reference/control_flow.md)
45+
## [Control Flow](https://ovum-programming-language.github.io/OvumDocs/reference/control_flow)
4646

4747
- `if/else`, `while`, `for (x in xs)`.
4848
- `return`, `break`, `continue`; no `goto`.
4949

5050
---
5151

52-
## [Expressions and Operators](docs/reference/expressions_and_operators.md)
52+
## [Expressions and Operators](https://ovum-programming-language.github.io/OvumDocs/reference/expressions_and_operators)
5353

5454
- Arithmetic: `+ - * / %`
5555
- Comparison: `== != < <= > >=`
56-
- Boolean: `&& || ! xor` (short‑circuit `&&`/`||`).
56+
- Boolean: `&& || ! ^` (short‑circuit `&&`/`||`).
5757
- Assignment: `=` (reference assignment), `:=` (copy assignment)
5858
- Member/calls: `. ()` and safe `?.`
5959
- Null handling: `?. ?:`
@@ -62,7 +62,7 @@ Ovum is a strongly statically typed, single-threaded language focused on safety,
6262

6363
---
6464

65-
## [Object Model](docs/reference/object_model.md)
65+
## [Object Model](https://ovum-programming-language.github.io/OvumDocs/reference/object_model)
6666

6767
- Classes implement interfaces; no class inheritance.
6868
- Methods declare access; support `override` and `pure`.
@@ -75,7 +75,7 @@ Ovum is a strongly statically typed, single-threaded language focused on safety,
7575

7676
---
7777

78-
## [Runtime and Tooling](docs/reference/runtime.md)
78+
## [Runtime and Tooling](https://ovum-programming-language.github.io/OvumDocs/reference/runtime)
7979

8080
- Pipeline: `.ovum` → bytecode → Ovum VM.
8181
- GC for memory safety; JIT compiles hot paths.
@@ -87,7 +87,7 @@ Build & Run (conceptual): write `.ovum`, compile (parse, type‑check, enforce c
8787

8888
---
8989

90-
## [System Library and Interop](docs/reference/system_library.md)
90+
## [System Library and Interop](https://ovum-programming-language.github.io/OvumDocs/reference/system_library)
9191

9292
- `sys::Print(msg: String): Void`
9393
- `sys::Time(): Int`
@@ -97,7 +97,7 @@ Build & Run (conceptual): write `.ovum`, compile (parse, type‑check, enforce c
9797

9898
---
9999

100-
## [Unsafe (recap)](docs/reference/unsafe.md)
100+
## [Unsafe (recap)](https://ovum-programming-language.github.io/OvumDocs/reference/unsafe)
101101

102102
Only inside `unsafe { ... }`:
103103
- Global `var` and `static var` writes.
@@ -107,7 +107,54 @@ Only inside `unsafe { ... }`:
107107

108108
---
109109

110-
## [Code Examples](docs/reference/code_examples.md)
110+
## [Bytecode](https://ovum-programming-language.github.io/OvumDocs/reference/bytecode)
111+
112+
Bytecode is the intermediate representation of the Ovum program. It is generated by the compiler and executed by the Ovum VM.
113+
114+
**Ovum Bytecode:**
115+
```oil
116+
// Simple program that prints numbers 1 to 5
117+
function _Global_Main_StringArray {
118+
PushInt 1
119+
SetLocal 1
120+
121+
while {
122+
LoadLocal 1
123+
PushInt 5
124+
IntLessEqual
125+
} then {
126+
LoadLocal 1
127+
CallConstructor Int
128+
Call _Int_ToString_<C>
129+
PrintLine
130+
LoadLocal 1
131+
PushInt 1
132+
IntAdd
133+
SetLocal 1
134+
}
135+
136+
PushInt 0
137+
Return
138+
}
139+
```
140+
141+
**Ovum Source Code:**
142+
```ovum
143+
fun Main(args: StringArray): Int {
144+
var i: int = 1
145+
146+
while (i <= 5) {
147+
sys::PrintLine(Int(i).ToString())
148+
i = i + 1
149+
}
150+
151+
return 0
152+
}
153+
```
154+
155+
---
156+
157+
## [Code Examples](https://ovum-programming-language.github.io/OvumDocs/reference/code_examples)
111158

112159
### Entry point (`StringArray`)
113160

cmake/SetCompilerOptions.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set(CMAKE_CXX_STANDARD 20)
1+
set(CMAKE_CXX_STANDARD 23)
22
set(CMAKE_CXX_STANDARD_REQUIRED ON)
33
set(CMAKE_CXX_EXTENSIONS OFF)
44

lib/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
1-
cmake_minimum_required(VERSION 3.25)
2-
31
add_subdirectory(mylib)
42
add_subdirectory(ui)

0 commit comments

Comments
 (0)