Odin » Forums » Releases
gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#9573 Releases
8 months, 3 weeks ago

Odin v0.0.3d
https://github.com/gingerBill/Odin/releases/tag/v0.0.3d

What's New
  • Rune literal syntax
  • Now: 'x', was: #rune "x"
  • Add global string constants (for later platform specific use)
    • ODIN_OS (e.g. "windows")
    • ODIN_ARCH (e.g. "amd64")
    • ODIN_VENDOR (e.g. "odin")
    • ODIN_VERSION (e.g. "v0.0.3d")
    • ODIN_ENDIAN (e.g. "little")
  • clamp builtin procedure (works on numerical and string types)

Bug fixes
  • Fix slice expressions for arrays and slices
  • fmt.odin correctly prints f32
  • Fix Vector's type information

Linux and OSX
Coming Soon™

Enjoy!



gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#9719 Releases
8 months, 1 week ago

Odin v0.0.4

https://github.com/gingerBill/Odin/releases/tag/v0.0.4

What's New

* Go/BCPL style semicolon insertion rules - See: https://groups.google.com/forum/#!topic/golang-nuts/XuMrWI0Q8uk
* `odin build_dll` Build project as .dll
* `#export` for procedures
* Always require an entry point procedure - `main`
* Cyclic Type Checking
* `#include` - renamed from `#load`
* Changed import/include name syntax
- `#import thing "some_file.odin"`
* Built in string constants
- ODIN_OS - target operating system ("windows")
- ODIN_ARCH - target architecture ("amd64)
- ODIN_VENDER - compiler vender ("odin")
- ODIN_VERSION ("0.0.4")
- ODIN_ROOT - root directory of the executable
* `when` statement
- Compile time `if` statement (only allowed within procedures)
* `when` condition on `#import`, `#include`, `#foreign_library` `#foreign_system_library`
- `#import "win32.odin" when ODIN_OS == "windows"`
* Standard Library (WIP):
- atomic.odin
- sync.odin (Mutex, Semaphore)
* Disabled `u128` and `i128` until big numbers are properly supported


Hjortshoej
Mikkel Hjortshøj
62 posts
1 project

Life is insane... Which is why I spend it with beer <3

#9733 Releases
8 months, 1 week ago Edited by Mikkel Hjortshøj on Dec. 10, 2016, 12:59 a.m. Reason: Clarification

gingerBill
Odin v0.0.4
* `when` statement
- Compile time `if` statement (only allowed within procedures)


Will you enable 'when' statements outside procedures at some point? Like at global scope? If I have single type I want to define differently based on a constant, having to split that single type into multiple files would be cumbersome.

Give a man a beer, and he is happy... End of story.
gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#9757 Releases
8 months, 1 week ago

Having `when` in file scope is actually impossible as it causes problems resolving symbols. This is due to nature of imports needing to know all the file entities when importing.

However, if you need something like that, `when` statements are perfectly allowed within structs:

1
2
3
4
5
6
7
Thing :: struct {
    when SOME_THING == "whatever" {
        x: u32
    } else {
        x: u16
    }
}


However, system dependent code is probably better split among separate file and included using a when condition in many cases.

1
2
#include "os_windows.odin" when ODIN_OS == "windows"
#include "os_amd64.odin" when ODIN_ARCH == "amd64"
gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#10564 Releases
6 months, 3 weeks ago

Odin v0.0.6

https://github.com/gingerBill/Odin/releases/tag/v0.0.6

  • Procedure Overloading
  • All loops are for loops:
  • - `for i := 0; i < 12; i+=1 {}`
  • - `for cond {}`
  • - `for {}`
  • - `for val in 0..<12 {}`
  • - `for val in 0..12 {}`
  • - `for val, idx in 3..<12 {}`
  • - `for _ in array {}`
  • - `match type name in expr {}`
  • cast(T) transmute(T) down_cast(T) union_cast(T)
  • Improved fmt.printf
  • Record fields separated by commas struct { x: int, y: f32, z: int }
  • Capacity removed slices. Slices are just ptr + count
  • Helper type
  • - `type int`
  • - `type proc(int) -> f32`
  • Prefixes: immutable using thread_local no_alias
  • Library names - explicit library need for foreign procedures
  • Basic directives: #file #line #procedure
gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#10872 Releases
6 months, 1 week ago

gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#11024 Releases
5 months, 3 weeks ago

gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#11567 Releases
4 months, 2 weeks ago

Odin v0.1.3
https://github.com/gingerBill/Odin/releases/tag/v0.1.3

Added

  • Slices now store have capacity (again)
  • Added multiple type cases for match in
  • Named for and match statements (#label)
  • ++ -- statements return

Changes

  • fmt.odin uses ^[]byte and []byte rather than custom buffer type
  • ... and ..< removed and replace with ..
  • .. is used for slice parameters and in for in statements which is equivalent to the old ..<
  • append allows points
  • new_slice allows for capacity

Bug Fixes

  • Signed integer conversion
  • fmt.odin fix printing enums
  • Fix tuple type info bug
gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#11789 Releases
3 months, 3 weeks ago

gingerBill
Ginger Bill
211 posts
2 projects

I am ginger thus have no soul.

#11797 Releases
3 months, 3 weeks ago