Commit Graph

325 Commits

Author SHA1 Message Date
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
Stefano Sanfilippo a34efebff9 Adding forgotten <iostream> include. 2015-03-10 15:44:07 +01:00