Commit Graph

326 Commits

Author SHA1 Message Date
Stefano Sanfilippo
f7fc90d98d Make the debug type printer compatible with opaque pointers.
This makes the code compatible with both LLVM 14 and 15.
2023-01-28 14:44:57 +01:00
Stefano Sanfilippo
ef048aa324 Update the minimum version of CMake to 3.14, required for LLVM 14.
Updating the readme too, pointing to the latest LTS for testing.
2023-01-26 18:27:04 +01:00
Stefano Sanfilippo
ffae8e9e77 Store variable definitions as AllocaInsts objects.
This way the LLVM type is explicitly available. Required for opaque pointers.
2023-01-26 18:20:04 +01:00
Stefano Sanfilippo
2f91c61296 Port to LLVM 14. 2023-01-04 19:24:51 +01:00
Stefano Sanfilippo
097a6fc511 Run clang-format on the codebase. 2023-01-04 19:24:33 +01:00
Stefano Sanfilippo
4b49bd28e7 Implement "ho visto" statement. 2020-02-23 10:52:39 +01:00
Stefano Sanfilippo
7338102d46 Mark abort builtin as noreturn. 2020-02-23 10:50:57 +01:00
Stefano Sanfilippo
7cc72828a0 Extract IRGenerator::evalBooleanCondition.
This unifies condition evaluation between loops and branches.
2020-02-23 10:25:14 +01:00
Stefano Sanfilippo
5bd3ac2be5 Implement "avvertite don ulrico" statement. 2020-02-23 09:54:44 +01:00
Stefano Sanfilippo
6c86720a1d Allow both "maggiore o uguale" and "maggiore uguale" for >=.
Fixes #49.
2020-02-23 09:06:34 +01:00
Stefano Sanfilippo
39c9e3f08c Choose the LLVM version with a CMake option. 2019-12-10 10:54:03 +01:00
Stefano Sanfilippo
439ef31f94 Support LLVM 7, 8 and 9. Bump default required version to 7.
Fixes #48.
2019-12-09 18:46:43 +01:00
Stefano Sanfilippo
1bdb2d64c9 Build system fixes. 2019-12-09 18:44:36 +01:00
Stefano Sanfilippo
4be7463cb3 Replace deprecated TypeBuilder with FunctionType::get.
The TypeBuilder API has been removed in https://reviews.llvm.org/D56573, and breaks compilation in LLVM 9+.
2019-12-09 18:04:08 +01:00
Stefano Sanfilippo
21f27ec261 Enable C++11 and strict checks for all code, msvc compatibility. 2019-07-07 10:07:28 +02:00
Stefano Sanfilippo
25110521d0 Check LLVM version, rename RAGEL to RAGEL_EXECUTABLE. 2019-07-07 09:53:59 +02:00
Stefano Sanfilippo
08368b178c Update clang-format config, run it. 2019-07-07 09:53:59 +02:00
Stefano Sanfilippo
7a72294426 Build a tarball with "make package". 2019-06-25 10:44:10 +02:00
Stefano Sanfilippo
e48cb899f4 Merge branch 'master' of github.com:esseks/monicelli 2019-06-25 10:36:14 +02:00
Stefano Sanfilippo
c4c70182a1 Improve build scripts, add MONICELLI_ARCH cache variable. 2019-06-25 10:35:02 +02:00
Stefano Sanfilippo
6c29cadd86
Bump LLVM version to 6.0 in the README. 2019-06-24 11:44:21 +02:00
Stefano Sanfilippo
68dee1250d Port the build scripts to CMake 3.5, refactor them.
* Use the official LLVMConfig rather than our FindLLVM.
* Add target rule for Ragel.
* Remove useless dependencies by only compiling for the native target.
* Use target rules.
2019-06-24 11:02:46 +02:00
Stefano Sanfilippo
3b5a9be6b9 Emit position independent code by default, to enable support for shared libraries and PIE.
PIE is now default on Ubuntu LTS. PIC can be disabled with --no-pic.
2018-12-25 14:12:35 +01:00
Stefano Sanfilippo
ab596da379 Port Monicelli to LLVM 6.0 2018-09-16 14:24:27 +02:00
Stefano Sanfilippo
7f2a9a34a8 Push Monicelli 2.0 "Cofandina" 2018-09-16 14:24:27 +02:00
Stefano Sanfilippo
8aa5c1a575 Merge branch 'location' 2015-03-27 12:02:55 +01:00
Stefano Sanfilippo
554f80ac5d Keeping track of locations in parser. 2015-03-26 15:19:07 +01:00
Stefano Sanfilippo
4c9c5dc13b Pass current node to reportError function.
This way, the location is included in the error message.
2015-03-26 15:18:44 +01:00
Stefano Sanfilippo
7c5b760a94 Add location traits to AST nodes.
This way, we keep trace of the exact source location where a
statement or symbol was defined and we are able to emit
more precise error messages in LLVM mode.
2015-03-26 14:43:42 +01:00
Stefano Sanfilippo
5c05d96b39 Merge branch 'master' into location 2015-03-25 01:36:26 +01:00
Stefano Sanfilippo
3dc5dc604a Ensure that a proper bb is created when "else" is omitted in a branch. 2015-03-25 01:32:49 +01:00
Stefano Sanfilippo
69f54847b4 Fixing typo in HEXDIGIT regex. 2015-03-25 01:32:38 +01:00
Stefano Sanfilippo
d7fe87ee6e Add missing header in BitcodeEmitter.cpp 2015-03-25 01:26:15 +01:00
Stefano Sanfilippo
aa927e698b Add Netbeans files to gitignore. 2015-03-25 01:26:01 +01:00
Stefano Sanfilippo
425dc1d9f4 Fixing typo in HEXDIGIT regex. 2015-03-12 18:59:45 +01:00
Stefano Sanfilippo
1ba0e79c01 Making output operator for Type and Operator part of the iface. 2015-03-12 17:52:27 +01:00
Stefano Sanfilippo
09c69f163f Adding template using decl to compile features check. 2015-03-12 15:25:15 +01:00
Stefano Sanfilippo
f2ee32ca80 Remove unused headers. 2015-03-11 00:58:31 +01:00
Stefano Sanfilippo
6e832cf2f4 Use type shorthand macros in bitcode emitter. 2015-03-11 00:57:14 +01:00
Stefano Sanfilippo
a191342dec Adding fibonacci example. 2015-03-11 00:52:53 +01:00
Stefano Sanfilippo
16d0e877bf Fix YAML-cpp minimum version required. 2015-03-11 00:50:08 +01:00
Stefano Sanfilippo
a0a94d13eb Additional checks on input files. 2015-03-10 21:21:54 +01:00
Stefano Sanfilippo
f83f3759d3 Qualify global regexes as static const in main. 2015-03-10 21:09:22 +01:00
Stefano Sanfilippo
ca8a86d217 Updating list of dependencies in readme. 2015-03-10 21:00:03 +01:00
Stefano Sanfilippo
47302ea0de Slightly improved error reporting for << and >>. 2015-03-10 20:57:25 +01:00
Stefano Sanfilippo
d10d8cf3fd Fix compile time errors in hello world. 2015-03-10 20:53:51 +01:00
Stefano Sanfilippo
69c4a80c81 Fix README for C++ transpiler. 2015-03-10 19:51:45 +01:00
Stefano Sanfilippo
eb448f6ae5 Clearer messages on command line. 2015-03-10 19:48:53 +01:00
Stefano Sanfilippo
f3356d5906 Add back the option to emit C++ instead of LLVM bitcode. 2015-03-10 19:45:43 +01:00
Stefano Sanfilippo
8061e9dd90 Merge branch 'agatti-homebrew' 2015-03-10 15:44:28 +01:00