Commit Graph

126 Commits

Author SHA1 Message Date
Christoffer Lerno
b7e423adc2 Update .len for subarray to not require () 2021-09-10 19:44:27 +02:00
Christoffer Lerno
0aef2810c8 Added fasta example. 2021-09-10 19:27:42 +02:00
Christoffer Lerno
2b2be6b491 Added mandelbrot example code. 2021-09-10 16:12:54 +02:00
Christoffer Lerno
49d13c23bb Fix issue with grouped expressions in macros. Adding spectral norml code example. 2021-09-10 15:47:31 +02:00
Christoffer Lerno
c76e8e0713 Added nbodies example 2021-09-10 10:30:20 +02:00
Christoffer Lerno
29b3535460 Added fannkuch example. 2021-09-10 09:20:27 +02:00
Christoffer Lerno
fd1eafe5bf Fix base64 and hash examples. 2021-09-08 23:54:56 +02:00
Christoffer Lerno
bb9e84d329 Make errors usable from other units. Order subarray elements correctly. Correct subarray -> pointer cast. Prevent unwrapping of catch in switch. 2021-08-31 18:12:30 +02:00
Christoffer Lerno
2ff5acc2a1 Allow constant strings as default values. 2021-08-31 13:03:12 +02:00
Christoffer Lerno
f180a0d44a Change anyerror { i64, i64 } -> i64. Cleaned up platform data and max tls / vector align. Initial work on bitstruct (just parsing). Updated try / catch semantics. 2021-08-18 17:31:09 +02:00
Christoffer Lerno
446396da4c Remove soft float accidentally turned on. 2021-08-16 00:25:41 +02:00
Christoffer Lerno
afeb555e2f Improved support for vectors that allows correct usage in C ABI.
To free keywords, half -> float16, i128 -> int128, u128 -> uint128, quad -> float128.
2021-08-10 22:45:53 +02:00
Christoffer Lerno
9f42ddb68d Fix foreach body copy. Moved deref / addr into special functions. Cleaned up access. Remove .sizeof .alignof .qnameof .nameof, create $qnameof $nameof 2021-07-26 09:30:35 +02:00
Christoffer Lerno
c149f14a1f Added iro grammar. 2021-07-20 15:01:04 +02:00
Christoffer Lerno
5c0470023e Updated info about vkQuake. 2021-07-19 21:43:31 +02:00
Christoffer Lerno
f60c1dd4a4 Fixes to the nano conf for errors. 2021-07-18 14:13:21 +02:00
Christoffer Lerno
f64c35214e Change error -> anyerr / errtype 2021-07-18 14:11:39 +02:00
Christoffer Lerno
46a4f8a7ae Added constants describing floating point types. 2021-07-16 17:48:31 +02:00
Christoffer Lerno
d93382d858 Add CChar to interop. 2021-07-15 01:32:05 +02:00
Christoffer Lerno
0111fe936e Adds missing alignment to sret. 2021-07-14 11:53:09 +02:00
Christoffer Lerno
12ffeeaad7 Fixes to the cname patch. 2021-06-30 22:41:34 +02:00
gdm85
cf8c87c122 Make testproject buildable 2021-06-28 21:33:31 +02:00
Christoffer Lerno
59ec653fd3 Fix issue resolving paths for builds. Changed default output to a.out as per @gdm85's suggestion. Fixes to test project from @gdm85's pull req. 2021-06-28 09:11:20 +02:00
data-man
1e8a71ea62 Moving grammar files to the resources/grammar dir 2021-06-27 13:01:40 +02:00
Christoffer Lerno
9572c4afc9 Top level $if now uses $if: / $endif; Fix of boolean globals. Fix of $else: clause. Fix of $assert inside of $if 2021-06-24 18:01:59 +02:00
Christoffer Lerno
5a6cdd25ef Introduced ${...} syntax for constants. Fixed issue where constants were not correctly handled for macros. /* */ comments are nesting. Added LINE, FUNC, FILE defines. Corrected shallow resolution of subarrays. Added int defines. Removed Vararray. 2021-06-24 00:59:25 +02:00
data-man
b5006b3a63 Update c3.nanorc 2021-06-13 01:08:45 +02:00
André
bf8e665120 nano syntax highlighting for himBHsstatements 2021-06-07 11:41:32 +02:00
Christoffer Lerno
95f39f42eb Fix nasty bug where the node copies did not get a proper id. 2021-05-31 21:11:10 +02:00
Christoffer Lerno
dd8b850544 Support for "static" keyword. 2021-05-30 16:30:16 +02:00
Christoffer Lerno
0605a8c500 Introduce "private" keyword and private modules / private import. 2021-05-30 16:30:16 +02:00
Christoffer Lerno
d9566ef894 Generic modules are back, slightly different. 2021-05-30 16:30:16 +02:00
Christoffer Lerno
97ac957cb7 "Public by default" 2021-05-30 16:30:16 +02:00
André
13e95553bb nano syntax highlighting support
c3.nanorc syntax file with instructions to install.
2021-05-29 20:27:11 +02:00
Christoffer Lerno
892c7e8874 Changed generic modules to internal templates. 2021-05-27 08:30:02 +02:00
Christoffer Lerno
1f676c135c Removed func and rewrote typedefs. 2021-05-23 13:16:48 +02:00
Christoffer Lerno
90c988cc1f Fix issue with unifying void returns. 2021-05-20 00:12:58 +02:00
data-man
d663af1e1a Fix casts in math module 2021-05-18 19:00:51 +02:00
Christoffer Lerno
fc31c15914 Updated cast syntax in code samples. 2021-05-18 17:23:27 +02:00
data-man
7ee015c84f Fix casts in math module 2021-05-17 22:25:03 +02:00
Christoffer Lerno
3c4233f4d4 Fixes to failable return from expression and macro blocks. Allow division by float zero. Correct type promotion from compile time float. 2021-05-17 21:17:46 +02:00
Christoffer Lerno
0e076234ca Set stdlib library for testing and profit. Fix bugs when using void* to step. Make constants private linkage. Compare pointers using unsigned comparison without conversion. Use manual ptrdiff code. Fix issue returning "void!". Unify pointers when doing Foo* - void*. Allow comparing for example void* < Foo* 2021-04-29 03:12:25 +02:00
Christoffer Lerno
4210f1ccb2 Some work on vararray. Fix span on post unary. Updated error recovery. Updated return analysis to handle void functions. "while" now disallows error prone next line statement. Working on auto linking. Failable load optimized. Optimization and corrections for call returns + documentation. 2021-04-05 23:34:40 +02:00
Christoffer Lerno
07595df412 Change cast and int rules: constant folding always starts. Promotion using left side on all operands to bit width. Implicit narrowing to max size on right hand side. 2021-03-17 18:25:00 +01:00
Christoffer Lerno
1d50beb330 Work on constant string and inferred array sizes. 2021-02-03 23:01:37 +01:00
Christoffer Lerno
4f064e7da2 Initial checkin of docs parsing. char is now unsigned, and signed char is "ichar". 2021-01-29 18:46:17 +01:00
Christoffer Lerno
26d25e3f74 Recursive references between globals are now correctly handled. 2021-01-27 00:14:16 +01:00
Christoffer Lerno
3a24fbfa6d Moved examples around. Updated (and corrected) const initialization. Removed "in" keyword. Added "member" attribute domain. Many fixes in struct padding and alignment and tests. Fixed extern global. 2021-01-24 00:55:09 +01:00
Christoffer Lerno
564c93700e Fixed bug that would intermittently arise from multiple contexts having the same pointer (should preferably be fixed in a different way later). Free all the arenas before codegen. Change "next" to "nextcase". Allow missing function parameters. Add "inline" structs. 2021-01-03 00:15:51 +01:00
Christoffer Lerno
6a5a0f2b94 Moved ABI lowering from codegen to semantic analysis. Fixes for failables in the ABI and the codegen. 2020-12-04 19:19:57 +01:00