Christoffer Lerno
423152202f
Dev ( #2545 )
...
* Optimize vector load / store. Fixes to alignment. Support typedef with `@simd` and `@align` #2543 . Update vector ABI #2542
* Fix alignment issue with indirect arguments.
2025-10-25 12:31:06 +02:00
LowByteFox
6dbd81a6f9
add ability for TinyCC to compile c3c ( #2459 )
...
* add ability for TinyCC to compile c3c
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-09-06 01:47:48 +02:00
Christoffer Lerno
21343baa75
Update for LLVM 21 ( #2435 )
...
Support LLVM 21
2025-08-26 17:29:39 +02:00
Christoffer Lerno
4b95d6be4c
New method resolution.
2025-08-15 19:48:08 +02:00
LowByteFox
1218afd51f
Add ability to compile on OpenBSD ( #2310 )
...
* fix curl in cmake, make c3c compile on OpenBSD, fix typo in OS_TYPE_FREEBSD
2025-07-19 21:09:39 +02:00
Christian Buttner
ce569462f6
Improve CMakeLists.txt and Windows build
2025-06-29 18:21:11 +02:00
Lucian Feroiu
30ec200492
Add support for default Homebrew-installed LLD ( #2119 )
2025-05-06 22:38:48 +02:00
niedlich
fd2a81afb1
Improved CMake integration of LLVM ( #2103 )
...
Added the paths for the CMake config files for LLVM 19 and higher to ``CMAKE_PREFIX_PATH``,
so that they will also be searched automatically.
2025-04-23 11:41:26 +02:00
Christoffer Lerno
8338888976
Do not use optimization for C++ wrapper.
2025-02-20 18:36:22 +01:00
Bruno Dias
e0cfe56121
Fixed nix build for macos. ( #1914 )
...
* Fixed nix build for macos.
* Fix test.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-02-13 22:44:21 +01:00
Christoffer Lerno
d05cc991f5
Support new LLVM, fix max version.
2025-02-04 23:03:02 +01:00
Max
2a924ae3b0
fix the link order to support LLVM_20 change ( #1838 )
...
* fix the link order to support LLVM_20 change
* Update CI to use LLVM 20
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-01-14 11:23:40 +01:00
Christoffer Lerno
5fa6ecf9ae
Enforce utf-8 on windows.
2025-01-06 20:02:57 +01:00
vssukharev
4f0716ab13
Fix issue when building on NixOS, firstly occured under commit 819a85ee
2025-01-05 14:18:56 +01:00
Thomas Adam
819a85ee06
build: add /usr/lib to LLVM_LIB search paths
...
It seems that on Alpine Linux (Edge), the LLVM_LIBRARY_DIRS cmake
variable doesn't look in /usr/lib, which is where the relevant files are
on Alpine.
Only do this for !WIN32 systems.
2025-01-03 11:47:00 +01:00
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