Christoffer Lerno
b7082f34a1
C backend work.
2024-12-28 17:09:43 +01:00
Brecht Sanders
789b47d565
Support detection of shared MinGW-w64 LLVM libraries
...
Support detection of shared MinGW-w64 LLVM libraries by also looking for liblld*.dll.a files.
2024-12-17 11:29:40 +01:00
Christoffer Lerno
5ffc5187eb
Update Win LLVM library.
2024-12-12 21:52:13 +01:00
Christoffer Lerno
20a3d19ac7
Update Windows build to use LLVM 19.1.4
2024-12-04 14:00:18 +01:00
rexim
4be5c74798
Relative DESTINATION path when installing man page
...
This makes the install() function install the file with respect to
`CMAKE_INSTALL_PREFIX` which may not always be `/usr/local/` especially
when some people install the compiler locally in their `$HOME` folder.
https://cmake.org/cmake/help/latest/command/install.html
2024-11-03 23:20:15 +01:00
aiko
7f70145f55
wrote manpage in c3c.1 and added manpage install to CMakeLists.txt
2024-10-28 22:37:56 +01:00
Fernando López Guevara
e09a9f0d80
chore(cmake): improve lld resolution on apple
2024-10-17 00:46:16 +02:00
Fernando López Guevara
ac214b97df
chore(cmake): switch from LLVM_LIBRARY_DIRS (list) to LLVM_LIBRARY_DIR for single path usage
2024-10-07 19:12:05 +02:00
Christoffer Lerno
65c48419d0
Minor refactorings. Added "Thank you" section to readme. Some fixes to hostinfo.
2024-09-12 13:47:49 +02:00
alex_s168
d376ee6671
ability to disable llvm at compile time ( #1433 )
...
ability to disable llvm at compile time
2024-09-12 13:36:00 +02:00
Christoffer Lerno
78c60ae695
Increase stack size for msys.
2024-09-07 01:37:45 +02:00
id3nom
15aca2eb84
Add CMake option C3_ENABLE_CLANGD_LSP ( #1414 )
...
* CMake option C3_ENABLE_CLANGD_LSP
The CMake option enables the generation of compile_commands.json in
the build directory and the creation of a symlink in the root
directory targeting the new file,
this will allow the Clangd Language Server Protocol (LSP) to
function properly.
* Added .editorconfig
EditorConfig helps maintain consistent coding styles:
https://editorconfig.org/
2024-09-06 23:06:09 +02:00
Christoffer Lerno
63fc77a861
Move of const to separate file and removal of old concat code.
2024-09-04 09:34:51 +02:00
Alexey Kutepov
6aea0f12cd
Properly persist git hash on each build ( #1391 )
...
Properly persist git hash on each build
Rebuild `git_hash.h` only when `.git` folder changes
`add_custom_target()` always considers its target out-of-date which
leads to rebuilding of `git_hash.h` on every build (which is
ironically what we wanted) and consequently rebuilding of
build_options.c and relinking of c3c even when no changes are made,
which is mildly annoying.
We are replacing `add_custom_target()` with `add_custom_command()`
which depends on `.git`, so `git_hash.h` is only rebuilt if any git
commands are performed. Which is less annoying.
In case of no `.git` we simply do not depend on it which leads to
`git_hash.h` being rebuilt only once.
2024-08-30 15:01:08 +02:00
rexim
484a9acc6f
Print Git Hash on --version
2024-08-27 04:41:39 +02:00
Christian Buttner
59ed118e66
Address/memory/thread sanitizer.
2024-08-23 16:06:22 +02:00
Lexi
e748f72447
Project view command ( #1314 )
...
Add parsing for the project command and view subcommand. Add basic implementation of c3c project view. Move get_valid_integer into common build.
Co-authored-by: Christoffer Lerno <christoffer.lerno@gmail.com >
2024-08-05 21:45:15 +02:00
Alexey Kutepov
a5b5f315d1
Implement passing arguments to program via compile-run ( #1296 )
2024-08-03 19:47:52 +02:00
Christoffer Lerno
db9fc20acf
Wrapper RTTI now follows LLVM RTTI.
2024-08-01 19:58:52 +02:00
Christoffer Lerno
73b15c691d
Deprecate *-add settings, use without -add. Updated CI.
2024-07-26 03:23:30 +02:00
Christoffer Lerno
abdaca08fe
Add new optimizer runner.
2024-07-24 14:00:09 +02:00
Christoffer Lerno
a4a1a42842
Update llvm build to use on windows.
2024-07-17 16:55:55 +02:00
Christoffer Lerno
0e90ce3b8a
Prevent accidental delete of lib folder when building.
2024-07-08 14:05:09 +02:00
Christoffer Lerno
3f62775f4b
Support c-file compilation in libraries.
2024-07-07 02:04:37 +02:00
Christoffer Lerno
ab626fe3eb
Update avoid warning in FetchContent
2024-07-04 12:07:01 +02:00
Christoffer Lerno
4a50de8318
Use LLVM 18 by default. Update MSVC to LLVM 18.1.8.
2024-07-04 00:48:35 +02:00
Christoffer Lerno
9a19eeacb3
Added further tests to #1219
2024-07-03 15:14:50 +02:00
Christoffer Lerno
d1e2ea7635
Require MSVC 17.7 or higher.
2024-06-29 20:47:25 +02:00
Christoffer Lerno
7b131f2a45
Print MSVC version
2024-06-29 20:35:23 +02:00
Christoffer Lerno
f3d5e3d4c2
Set minimum LLVM version for compilation.
2024-06-29 20:30:37 +02:00
Christoffer Lerno
748c737e8f
0.5.4: Hash variables accept designated initializers. @safemacro overrides the need for @ in macro names. Fixes to macro context evaluation. Updated allocator api. Removed install_win_reqs.bat. Deterministic @init for MacOS. Fixed temp memory issue with formatter. Support LLVM 19. Add support to compare bitstructs using == and !=. Support Windows .def files. Removed invalid grammar from grammar.y. Support compile time folding of &|^~ for bitstructs. output project setting now respected. Fix issue where constants were not properly constant folded. Add temp_push/pop. Aliased declarations caused errors when used in initializers. Fix export output. Fix of const ternary #1118 . Fix of $$MODULE in nested macros #1117 . Fix debug info on globals. out now correctly detects subscript[] use #1116 . Lateral implicit imports removed. Default to '.' if no libdir is specified. Improved error messages for --lib. Fix raylib snake example. Overzealous local escape check corrected #1127 . Improved yacc grammar #1128 . --linker argument #1067 . Fixes to the matrix operations #1130 . Added GenericList.
2024-02-15 21:39:33 +01:00
Tiago Teixeira
66b65a042e
Add CMake option to link c3 dynamically to LLVM/LLD ( #1077 )
...
* Add Cmake option to link c3 dynamically to LLVM/LLD
To link dynamically, use
`cmake -DC3_LINK_DYNAMIC=ON <other-options> ../`
* formatting
2023-11-20 18:10:19 +01:00
Christoffer Lerno
70e7e4b1d2
Enable mingw
2023-10-26 18:54:12 +02:00
Christoffer Lerno
eac19814e1
Make typeid switches always use subtype matching. Update seeder mixing.
2023-08-29 22:48:26 +02:00
Christoffer Lerno
79f964dce9
Fix of atomic checks. Renamed MONOTONIC -> RELAXED.
2023-08-29 12:27:40 +02:00
Christoffer Lerno
ada3ea08fc
Some initial parse output. Enforce handling of optionals. Fix issue where constants were folded despite the fact that they shouldn't be. Fix bug related to return foo() where foo() returns void!. ( #893 )
2023-07-27 22:58:41 +02:00
Christoffer Lerno
9c503cf6fd
Update to handle LLVM 18 part 2
2023-07-26 01:19:06 +02:00
Christoffer Lerno
209d994336
Finalize subprograms after writing them. Correct debug info for C varargs. Add uwtable metadata. Removed visibility from functions.
2023-07-17 20:21:10 +02:00
Christoffer Lerno
aa216fa510
Dev ( #859 )
...
* Fix bug where analysing subexpr relied on them not being analysed. Fix issue where converting a const initializer bool to integer failed. Fix of issue where the case check assumed other cases were const values.
* Fix bug where analysing subexpr relied on them not being analysed. Fix issue where converting a const initializer bool to integer failed. Fix of issue where the case check assumed other cases were const values. Remove PTHREAD for windows.
* Fix bug where analysing subexpr relied on them not being analysed. Fix issue where converting a const initializer bool to integer failed. Fix of issue where the case check assumed other cases were const values. Remove PTHREAD for windows.
2023-07-17 02:00:27 +02:00
Christoffer Lerno
619fa26c26
Updated LLVM for Windows
2023-04-25 16:09:04 +02:00
Christoffer Lerno
809321e20c
Updated grammar. Removal of elif. Removal of ':' ';' in some ct statements. Empty faults is now an error. Remove "define" for types. Remove "private". Better errors on incorrect bitstruct syntax. Introduction of wildcard type rather than optional wildcard. Removal of scaled vector type. mkdir and rmdir. Disallow define @Foo() = { @inline }. Add handling for @optreturn and change it to @return!. Restrict interface style functions. Updated x64 ABI. stdlib updates to string. Removed deprecated functions. Update how variadics are implemented. Extended error messages. x86 ABI fixes. Shift check fixes. '!' and '?' are flipped. No trailing ',' allowed in functions. Fix to string parsing. Allow l suffix. Simplifying flatpath. any replaces variant, anyfault replaces anyerr. Allow getting the underlying type of anyfault. De-duplicate string constants. Fix of readme. Extended list. Fix of "(MyEnum)x + 1". Clock and DateTime types. Fixes to array concat.
2023-04-21 10:56:39 +02:00
Christoffer Lerno
3beed8a0f1
No exceptions compiling C++
2023-03-20 09:51:57 +01:00
Christoffer Lerno
33cc2d889b
More const modification detection. Grab the version number into CMake.
2023-03-07 14:35:12 +01:00
Christoffer Lerno
a0a5c940f1
Add --strip-unused.
2023-02-16 22:11:42 +01:00
Christoffer Lerno
2fa3ae7bc9
Restore CMake settings.
2023-02-11 02:05:37 +01:00
Christoffer Lerno
1548cd06ef
Enable local multi-declarations. Fix of builtin argument checking. Migrate to @noinit.
2023-02-11 02:03:02 +01:00
Christoffer Lerno
ddd8be0f38
Fix global noinit. Add @noinit. With tests.
2023-02-11 00:10:02 +01:00
Christoffer Lerno
539d733ceb
Remove LLVM 14 support. Simplify ABI lowering.
2023-01-30 12:39:04 +01:00
Christoffer Lerno
a77e0bf7b3
Add LLVM 17 to CI.
2023-01-29 14:44:03 +01:00
Christoffer Lerno
6a73c8e90e
Clean lib before copy.
2023-01-26 16:28:47 +01:00