Ginger Bill
362a118782
Remove "overloading" bug of para-poly-procs
2017-06-25 23:41:46 +01:00
Ginger Bill
3ab481df17
new as a user-level procedure
2017-06-25 22:31:30 +01:00
Ginger Bill
4e7150b470
Allow nested para-poly procedures
2017-06-25 22:29:23 +01:00
Ginger Bill
1ced92be47
Rudimentary para-poly procedures
2017-06-25 22:15:30 +01:00
Ginger Bill
15dbea6899
Generic procedures generate types on use
2017-06-25 19:41:07 +01:00
Ginger Bill
c4081393c1
Fix typo for some built-in procedures
2017-06-25 17:36:10 +01:00
Ginger Bill
1d81b73df9
Basic command line flags: e.g. -opt=0
2017-06-24 22:58:50 +01:00
Ginger Bill
18f885efab
expand_to_tuple
2017-06-24 20:39:37 +01:00
Ginger Bill
bba088bee7
Use UTF-8 command line on windows
2017-06-24 11:42:49 +01:00
Ginger Bill
6cbb6bef0b
Wrap hashing functions
2017-06-22 16:14:02 +01:00
Ginger Bill
8744c60563
Clean up code for return statements, slightly
2017-06-22 13:47:50 +01:00
Ginger Bill
8197c02dcf
Default result values for procedure types; Named result values in return statements
2017-06-22 01:14:45 +01:00
Ginger Bill
9faf0020cc
Amend Checker API
2017-06-21 21:46:27 +01:00
Ginger Bill
53075e2570
Update old demos
2017-06-21 21:20:26 +01:00
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