From 36ad9dae43cd21d8532994cd0d0e92a89af0ed04 Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Tue, 22 Nov 2016 00:13:52 +0000 Subject: 128 bit integers Kind of works but may be buggy due to LLVM not actually sure --- code/demo.odin | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'code') diff --git a/code/demo.odin b/code/demo.odin index b44d245e8..3912fb9f1 100644 --- a/code/demo.odin +++ b/code/demo.odin @@ -4,16 +4,48 @@ variadic :: proc(args: ..any) { for i := 0; i < args.count; i++ { match type a : args[i] { - case int: fmt.println("int", a) - case f32: fmt.println("f32", a) - case f64: fmt.println("f64", a) - case string: fmt.println("string", a) + case u128: fmt.println("u128", a) + case i128: fmt.println("i128", a) } } + + fmt.println(..args) } main :: proc() { fmt.println("Hellope, everybody!") - variadic(1, 1.0 as f32, 1.0 as f64, "Hellope") + + + variadic(1 as u128, + 1 as i128, + ) + + x: i128 = 321312321 + y: i128 = 123123123 + z: i128 + x *= x; x *= x + y *= y; y *= y + fmt.println("x =", x) + fmt.println("y =", y) + z = x + y; fmt.println("x + y", z) + z = x - y; fmt.println("x - y", z) + z = x * y; fmt.println("x * y", z) + z = x / y; fmt.println("x / y", z) + z = x % y; fmt.println("x % y", z) + z = x & y; fmt.println("x & y", z) + z = x ~ y; fmt.println("x ~ y", z) + z = x | y; fmt.println("x | y", z) + z = x &~ y; fmt.println("x &~ y", z) + + z = -x + z = ~x + + b: bool + b = x == y; fmt.println("x == y", b) + b = x != y; fmt.println("x != y", b) + b = x < y; fmt.println("x < y", b) + b = x <= y; fmt.println("x <= y", b) + b = x > y; fmt.println("x > y", b) + b = x >= y; fmt.println("x >= y", b) } -- cgit v1.2.3