Ginger Bill
264ca00db7
Merge branch 'master' of https://github.com/gingerBill/Odin
2017-06-21 17:49:05 +01:00
Ginger Bill
6b65ef6d88
Fix compilation bug on Linux
2017-06-21 17:48:50 +01:00
Ginger Bill
5957d7f7be
Implicit Parameter Passing based context system (replacing Thread Local Storage (TLS) approach)
2017-06-20 12:38:05 +01:00
Ginger Bill
35c102137f
Compiler compiles for x86 (doesn't work properly)
2017-06-19 18:49:11 +01:00
Ginger Bill
5427d14416
Code will compile as 32 bit but will causes errors in the linker on Windows
2017-06-19 15:55:09 +01:00
Ginger Bill
178236d1ff
Barebones layout for the documentation declarations
2017-06-18 23:41:13 +01:00
Ginger Bill
736c880ba9
Add docs.cpp
2017-06-18 23:18:15 +01:00
Ginger Bill
126f7aa892
Begin work on documentation generation
2017-06-18 23:16:57 +01:00
Ginger Bill
2957f007e3
Fix #location for anonymous procedures
2017-06-18 17:35:27 +01:00
Ginger Bill
04501c93fe
Implement assert and panic in user side code
...
Removes 2 more built-in procedures!
2017-06-18 17:25:28 +01:00
Ginger Bill
4236519b84
#location(..) and #call_location
2017-06-18 14:36:06 +01:00
Ginger Bill
e4944b4f2e
Fix error reporting for foreign blocks
2017-06-17 20:03:52 +01:00
Ginger Bill
2deb2f8eeb
Declaration grouping uses () rather than {}; Fix some problem with compilation on *nix
2017-06-17 12:01:53 +01:00
Ginger Bill
3fa398ec43
Add extra check for bodiless procedures
2017-06-15 21:36:29 +01:00
Ginger Bill
1851674b50
Code use API rather than raw CheckerInfo; begin work on generic procedures
2017-06-15 18:11:58 +01:00
Ginger Bill
c5ef5279d4
Add foreign variables
2017-06-15 14:42:08 +01:00
Ginger Bill
d3c24d159f
Merge size_of and size_of_val et al.
2017-06-15 12:25:53 +01:00
Ginger Bill
23f9f9064e
Add CheckerInfo API functions
2017-06-15 12:14:56 +01:00
Ginger Bill
a134307dcd
Fix issue #72 - 128-bit literal corruption
2017-06-14 14:58:48 +01:00
Ginger Bill
c3b510c2d9
C-style c_varargs (Not heavily tested)
2017-06-13 21:00:42 +01:00
Ginger Bill
e7fc24e48c
Fix compilation error for Invalid EntityKind
2017-06-13 18:04:22 +01:00
Ginger Bill
6a88dc322a
Declaration grouping uses braces rather than parentheses
2017-06-13 15:04:23 +01:00
Ginger Bill
6b464e3558
Update README.md
2017-06-12 21:41:14 +01:00
Ginger Bill
76b0c7b765
"Revert" to older demo
2017-06-12 21:27:53 +01:00
Ginger Bill
91857e8f16
Remove redundant paths in parsing
2017-06-12 21:25:47 +01:00
Ginger Bill
ccda456c0a
foreign blocks for procedures
2017-06-12 21:21:18 +01:00
Ginger Bill
83bad13e9e
Update default field value syntax; Use more declaration groupings
2017-06-12 18:38:27 +01:00
Ginger Bill
e6a206a430
Check for empty generic declaration list
2017-06-12 16:58:25 +01:00
Ginger Bill
f52a1e4ded
Fix IR bug for TypeSpec
2017-06-12 16:47:07 +01:00
Ginger Bill
a8e458339b
foreign_library allow for Pascal-style grouping
2017-06-12 16:26:51 +01:00
Ginger Bill
6b5e9aec8e
Pascal style declaration grouping with ()
2017-06-12 15:42:21 +01:00
Ginger Bill
2ab0d97573
import and import_load as keywords; Fix procedure literal call trick
2017-06-12 14:19:12 +01:00
Ginger Bill
0c05fc1432
Prefix type and let to replace immutable
2017-06-12 12:56:47 +01:00
Ginger Bill
33eeb58521
Prefix proc syntax
2017-06-12 12:34:55 +01:00
Ginger Bill
8fafdb185c
Remove := with var and :: with const
2017-06-12 11:48:12 +01:00
Ginger Bill
c2c935ba81
Fix trailing default argument checking
2017-06-11 20:52:54 +01:00
Ginger Bill
2d73c8868b
Make default arguments for records invalid syntax
2017-06-11 19:01:36 +01:00
Ginger Bill
49b4b39055
Minor change for overloaded procedures
2017-06-11 18:53:20 +01:00
Ginger Bill
1cabfac36c
Update README.md
2017-06-11 18:46:59 +01:00
Ginger Bill
366b306df0
Default parameters for procedures
2017-06-11 18:38:30 +01:00
Ginger Bill
4bf1f798f5
Allow for ignoring named procedural call arguments with _
2017-06-11 17:41:55 +01:00
Ginger Bill
b2fdb69b4d
Named procedure calls
2017-06-11 12:01:40 +01:00
Ginger Bill
af2736daec
Fix bit field bug
2017-06-08 16:29:05 +01:00
Ginger Bill
5cad7d44a6
Use templated Map for extra type safety
2017-06-08 13:26:48 +01:00
Ginger Bill
2b96be0ae8
Remove unnecessary typedef usage
2017-06-08 13:08:39 +01:00
Ginger Bill
2a89d8021c
Use templated Array with bounds checking
2017-06-08 12:54:52 +01:00
Ginger Bill
13deb4706c
Update String to use overloading
2017-06-08 12:37:07 +01:00
Ginger Bill
9b61adb97d
Build as C++
2017-06-08 12:03:40 +01:00
Ginger Bill
333924cce1
v0.3 Release
2017-06-08 11:35:22 +01:00
Ginger Bill
574b82c0c7
v0.3.0
2017-06-07 22:09:16 +01:00
Ginger Bill
f60c772c11
Make rune a basic type and not an alias; Remove byte
2017-06-06 23:54:33 +01:00
Ginger Bill
107740ca5e
Fix issue #69 for fmt.printf padding
2017-06-06 10:02:53 +01:00
Ginger Bill
d2e7d730ac
Fix key generation for constant strings in IR
2017-06-05 23:06:15 +01:00
Ginger Bill
817e4b663e
Add murmurhash3.c
2017-06-05 22:52:56 +01:00
Ginger Bill
214bb73454
Merge branch 'master' of https://github.com/gingerBill/Odin
2017-06-05 18:01:57 +01:00
Ginger Bill
eba2c74bff
Allow 128 bit map keys
2017-06-05 18:01:41 +01:00
Ginger Bill
ebe5beaafd
Allow using on bit fields
2017-06-04 11:53:33 +01:00
Ginger Bill
029a6095d9
Fix enum printing bug
2017-06-04 00:20:16 +01:00
Ginger Bill
2c0e59ae06
bit_field; Lexical sugar operators ≠ ≤ ≥
...
Example below:
// See: https://en.wikipedia.org/wiki/Bit_field
BoxProps :: bit_field {
opaque : 1,
fill_colour : 3,
_ : 4,
show_border : 1,
border_colour : 3,
border_style : 2,
_ : 2,
width : 4,
height : 4,
_ : 8,
}
2017-06-03 22:27:23 +01:00
Ginger Bill
9d1a4c304a
Remove Quat from math.odin
2017-06-01 15:12:54 +01:00
Ginger Bill
13b8a1e348
Remove quaternion128 and quaternion256 as core types
2017-06-01 14:52:33 +01:00
Ginger Bill
0d4945dc87
Implement u128/i128 features; Add bits.odin
2017-06-01 14:23:46 +01:00
Ginger Bill
fec6df65b3
Use 128-bit integers for ExactValue integers
2017-05-30 15:23:01 +01:00
Ginger Bill
78494e84d5
Remove some asserts in timings.c
2017-05-29 19:41:13 +01:00
Ginger Bill
60d7c833c0
Fix unary expression type check
2017-05-28 21:56:40 +01:00
Ginger Bill
98dbbf11f3
Fix procedure overloading distinguishing
2017-05-28 18:51:42 +01:00
Ginger Bill
f4924e39d4
Fix printing of struct literals with custom alignment
2017-05-28 16:11:19 +01:00
Ginger Bill
826e05c96e
Convert windows.odin to the new naming convention
2017-05-28 16:08:29 +01:00
Ginger Bill
d3f63e5903
Change label syntax for for and match from #label name to name:
2017-05-28 15:01:39 +01:00
Ginger Bill
80c034ec7c
Change naming convention from Ada_Like to RustLike
...
Naming Conventions:
In general, PascalCase for types and snake_case for values
Import Name: snake_case (but prefer single word)
Types: PascalCase
Union Variants: PascalCase
Enum Values: PascalCase
Procedures: snake_case
Local Variables: snake_case
Constant Variables: SCREAMING_SNAKE_CASE
2017-05-28 14:47:11 +01:00
Ginger Bill
b41f09b730
Experimental try for ABI for return values on windows
...
It's all done by reverse engineering it. I may be wrong...
2017-05-28 14:11:00 +01:00
Ginger Bill
06185e1769
Try a different ABI type for return values on Windows
2017-05-28 01:07:52 +01:00
Ginger Bill
f8fa7fe380
Fix bug with too many field values in a structure literal.
2017-05-27 20:57:48 +01:00
Ginger Bill
45dbe8d354
default: to case:; no_alias to #no_alias
2017-05-27 11:47:21 +01:00
Ginger Bill
ddb99dd638
Fix interval loop constant bug; Fix ir edge checking; Fix vector arithmetic with scalars
2017-05-22 23:29:09 +01:00
Ginger Bill
41aa4e606b
Optional main for DLL; access struct elements by "index"
2017-05-17 21:23:52 +01:00
Ginger Bill
e025a828ca
Fix issue #66
2017-05-14 10:32:48 +01:00
Ginger Bill
807e17207a
Merge branch 'master' of https://github.com/gingerBill/Odin
2017-05-13 16:09:04 +01:00
Ginger Bill
3e18f5f057
Fix Ternary Operator IR bug
2017-05-13 16:08:50 +01:00
Ginger Bill
ded99a2cab
Fix issue with os.file_size on *nix
2017-05-12 10:29:55 +01:00
Ginger Bill
45eecc0905
Reimplement #ordered again
2017-05-12 10:27:14 +01:00
Ginger Bill
87f1a62ca4
Fix alignment for normal structures to match LLVM
2017-05-10 22:51:35 +01:00
Ginger Bill
c6d531df95
Add %% operator (divisor modulo)
2017-05-09 16:21:31 +01:00
Ginger Bill
8677c81da7
Fix ir bug; allow formatting options for arrays & et al.
2017-05-09 12:05:17 +01:00
Ginger Bill
5595daf5a3
Revert demo.odin
2017-05-09 10:01:50 +01:00
Ginger Bill
64b5afd820
Fix issue #63 for block comments not terminating at an EOF
2017-05-09 10:01:10 +01:00
Ginger Bill
7692061eef
Add XOR for booleans
2017-05-07 20:52:20 +01:00
Ginger Bill
f7f2272c50
Fix fmt_float precision
2017-05-07 11:42:27 +01:00
Ginger Bill
03fbdc3f75
Fix IR printing bug with global unicode identifiers
2017-05-06 23:02:47 +01:00
Ginger Bill
ea6a4859ed
Merge branch 'master' of https://github.com/gingerBill/Odin
2017-05-06 20:56:18 +01:00
Ginger Bill
615fa82d1f
Fix using issue #62
2017-05-06 20:55:09 +01:00
Ginger Bill
51ea59d76a
Fix calculation of vector type sizes
2017-05-04 23:18:54 +01:00
Ginger Bill
789b297f32
Add hidden __tag for union variables.
2017-05-04 20:34:50 +01:00
Ginger Bill
3b25f924cb
Remove debug bug
2017-05-03 11:01:17 +01:00
Ginger Bill
cc6282a6e3
Fix alignment and size bug of enums; Remove #ordered and make the default #ordered.
2017-05-02 21:16:09 +01:00
Ginger Bill
206a3e093c
Remove check on array/slice/dynamic element size
2017-05-02 20:17:53 +01:00
Ginger Bill
19bde275a3
Add files in core
2017-05-01 15:30:16 +01:00
Ginger Bill
634ee450f4
v0.2.1
2017-05-01 15:28:26 +01:00
Ginger Bill
750d7256fc
Unary expression for vector (fix)
2017-05-01 15:27:21 +01:00
Ginger Bill
fae5df2ed8
Fix IR vector arith conv bug
2017-05-01 15:05:56 +01:00