Justin Ethier
ab25e360a9
Merge #497
2022-12-09 13:29:56 -08:00
Justin Ethier
427845cbaf
Issue #494 - Pass path options when compiling libs
...
Pass append/prepend path options when compiling dependent libraries, avoiding any issues with include directives in the libraries.
2022-11-28 22:16:20 -05:00
Justin Ethier
1404d374d3
Issue #365 - Fix regression w/c-compiler-options
2022-06-26 18:42:22 -04:00
Justin Ethier
2e84aaac9c
Issue #484 - Improve handling of exporting prims
...
To fixes:
- Prevent segfault setting a global variable to itself
- Do not throw an error when exporting a primitive that is not defined in the current module, as built-ins are always available in any context.
2021-12-13 19:05:18 -08:00
Sören Tempel
9954cde738
Allow prepending include/library search path through -COPT/-CLNK
...
This commit separates include/library search directory options from
"normal" compiler/linker options and places options passed via the
`-COPT`/`-CLNK` command-line flags in-between. This allows overwriting
the default search paths, since contrary to all other options, the
search paths must be prepend for an -I/-L option to take precedence over
an existing one.
This should (hopefully) make it entirely unnecessary to ever build
Cyclone twice in order to have all changes in the current source tree
take effect.
Fixes #476
2021-11-24 15:32:17 +01:00
Justin Ethier
67384621bc
Issue #481 - Exit if scm->c compilation fails
2021-09-07 07:45:50 -04:00
Justin Ethier
876a93bf39
Added -no-compiler-subprocess option
2021-08-17 05:04:36 -04:00
Justin Ethier
99ce726ca3
Fix order of args passed to run-external-compiler
2021-08-16 23:39:09 -04:00
Justin Ethier
7d92a39fdf
Run scm compiler as a sub-process
2021-08-16 23:34:00 -04:00
Justin Ethier
50631b8bb5
Use a separate thread to emit the C file
2021-08-16 22:22:04 -04:00
Justin Ethier
08c4e8f2e6
Remove unused args
2021-08-16 20:24:36 -04:00
Justin Ethier
1d0cbf96ed
Use meta file to pass data when compiling programs
2021-08-17 13:41:48 -04:00
Justin Ethier
1a5310b881
Stage breaking up emitting C file / compiling C
2021-08-10 22:43:52 -04:00
Justin Ethier
ad64f7a3ab
More intelligent calling of subprocess for compiling library dependencies
2021-08-10 17:18:31 -04:00
Justin Ethier
3cc79395fa
Do not memoize pure functions by default
2021-08-05 14:52:35 -04:00
Justin Ethier
209050b2d4
Allow C compiler/linker options from a library to be expanded via cond-expand
2021-02-25 22:43:19 -05:00
Justin Ethier
dc597a9926
Issue #365 - Allow c-linker-options
to work as a top-level expression in a program
2021-01-18 15:57:45 -05:00
Justin Ethier
065a8bdd15
Issue #365 - Allow c-compiler-options to be used by programs
2021-01-18 15:03:27 -05:00
Justin Ethier
eb3250c0f1
Issue #365 - Added (c-compiler-options) expression for libs
2021-01-18 10:46:03 -05:00
Justin Ethier
046e7020b2
Added the -COPT compiler option
...
This allows easily specifying compiler options such as directories to search for header files.
2021-01-17 22:42:37 -05:00
Justin Ethier
6f5a60bfa4
Recompute library dep tree after macro expansion
...
Fix the compiler to recompute library dependencies for a program if additional import expressions were encountered during macro expansion.
2020-11-19 14:51:25 -05:00
Justin Ethier
6a1377178a
Issue #412 - Fix expand within a cond-expand
...
Allow these dependencies to be recognized by Cyclone.
2020-09-28 13:32:13 -04:00
Justin Ethier
f849a739af
Raise an error if library compilation fails
...
If a program tries to build a dependent library and the compilation fails, we need to know about it
2020-09-23 12:21:56 -04:00
Justin Ethier
dc30dba735
Expand library before reading imports
2020-09-02 18:10:41 -04:00
Justin Ethier
dc64d52412
Added -COBJ option
2020-08-14 16:44:43 -04:00
Justin Ethier
7b079d36d3
Pretty-up the top-level error messages
...
Make the output more readable when we have location information for the error.
2020-07-23 12:38:01 -04:00
Justin Ethier
0d25e5e122
Clean up error messages, provide filename if able
2020-07-21 22:35:47 -04:00
Justin Ethier
de1a97fbe7
Cleanup
2020-07-21 21:45:26 -04:00
Justin Ethier
8a65baef9c
Add custom exception handler to avoid call history
2020-07-21 12:36:42 -04:00
Justin Ethier
858cac4eee
Relocating source list to (scheme base)
2020-07-19 22:58:01 -04:00
Justin Ethier
64b81aa803
Fix code example
2020-05-18 10:03:34 -04:00
Justin Ethier
228f606b2e
Read c-linker-options
2020-02-20 13:47:04 -05:00
Justin Ethier
d9d78c226b
Added -CLNK
2020-02-19 13:45:58 -05:00
Justin Ethier
77a02fe26d
Issue #354 - Cleanup
2020-01-10 17:17:43 -05:00
Justin Ethier
bc3ab62439
Issue #354 - Initial support for includes
...
Still needs some cleanup, but the batch compilation code now also check source files used by (include) directives.
2020-01-10 13:41:10 -05:00
Justin Ethier
192e8a094f
WIP
2020-01-09 23:00:09 -05:00
Justin Ethier
2c3a85efb9
Issue #287
...
Do not inline functions if optimizations are disabled via `-O0`
2020-01-06 13:23:39 -05:00
Justin Ethier
b83bfec83c
Cleanup, indicate default batch setting
2020-01-06 13:03:47 -05:00
Justin Ethier
950700963a
Issue #354 - Added batch compilation ability
2020-01-03 18:41:42 -05:00
Justin Ethier
d72c54ca17
Debug library deps, added TODO
2020-01-03 10:29:57 -05:00
Justin Ethier
4c578f0394
Added -use-unsafe-prims
2019-11-26 15:10:28 -05:00
Justin Ethier
95d1200df0
Incorporate optimization flags
2019-11-13 13:16:45 -05:00
Justin Ethier
64c365378b
Added additional optimization flags
2019-11-13 12:57:06 -05:00
Justin Ethier
e98e35ee5b
Added -no-call-history
flag
...
Allow for faster executables at the expense of call history.
2019-10-14 13:01:16 -04:00
Justin Ethier
900605f1fe
Clean up old comments and dead code
2019-10-08 17:49:40 -04:00
Justin Ethier
829f7d86b0
Issue #336 - Compiler validation for "if"
2019-09-10 18:52:44 -04:00
Justin Ethier
fa01202df8
Do not attempt to memoize functions that take 0 args
2019-02-15 12:36:54 -05:00
Justin Ethier
7021855eca
Inject additional imports, added a TODO
2019-02-14 23:03:33 -05:00
Justin Ethier
d0d7fae89c
Only memoize pure functions for programs
...
The problem with doing this for libraries is that it adds a new dependency on (srfi 69). It would be problematic to use a library with these changes as there is no easy way to know this SRFI is also a library dependency.
2019-02-14 22:53:12 -05:00
Justin Ethier
e5be007539
Added memoization optimization flags
2019-02-14 21:10:06 -05:00