Commit Graph

40 Commits

Author SHA1 Message Date
fe69fce67b still mess, probably obsolete anyways 2025-09-20 12:15:59 +03:00
8e4cc98522 fix sexc using non-existent unit 2025-09-01 11:24:08 +03:00
53e9614584 don't create temp files when compiling 2025-08-22 15:47:36 +03:00
d5e443a72c force c89 pedantic compilation mode 2025-08-22 15:47:36 +03:00
78977e988e add support for begin in Sex
begin-wrapped blocks are now creating lexical scopes
2025-08-22 15:47:36 +03:00
ea13df186f add structure attributes support to sex 2025-08-06 15:38:04 +03:00
6c6e00e6dc implement new macro system 2025-08-06 15:38:04 +03:00
31d0aa574b saner getting of c compiler args from the cmdline 2025-08-05 02:03:01 +03:00
41c3f3bd98 make fmt-c a unit 2025-08-03 21:44:43 +03:00
3ad25b3788 make return explicit
Required pulling in fmt-c.scm file though :(
2025-08-03 19:01:19 +03:00
d4e1471f44 remove unused function 2025-08-02 10:49:38 +03:00
bc54ae6a05 modularize Sex compiler 2025-08-02 10:49:38 +03:00
4be0d3f5ac prettify --help output and add it to Readme.org 2025-08-02 10:49:38 +03:00
44a352849a implement modules 2025-08-02 10:49:38 +03:00
6fc1688e41 call C compiler from Sex directly
Also rework options printing, add some cmdline options, rework others,
all in all, the logic is now looking like this:
* -E to emit C code
* -m to emit macro-expanded Sex code
* -c to emit object file instead of executable
* --c-compiler to set C compiler. If not provided, check SEX_CC
enviroment variable, if it's empty, default to `cc'
* options after -- are passed to C compiler
* default mode is to compile Sex module to executable
2025-08-02 10:49:38 +03:00
7967a75313 remove some stray variable 2025-08-02 10:49:38 +03:00
76ca609ea6 Make Sex templates more pleasant syntactically
No more unquotes to instantiate templates.
Also no need to pass quoted substitution lists, just use them as
regular lisp macros.
2025-07-11 18:27:50 +03:00
12ff37c515 support unkebabification in #()-forms
which are vectors in Chicken, {}-initializers in C
2025-06-14 19:02:45 +03:00
075116dfd2 support cpp define 2025-06-14 18:10:20 +03:00
e932afab0a prefix define and define-syntax with chicken-
as we have define in cpp
2025-06-14 18:09:50 +03:00
97205ed8ef don't unkebabify -> in symbols (it's -> from C) 2025-06-14 17:48:41 +03:00
650bff6d0e fix pub function prototypes 2025-06-14 17:10:09 +03:00
5f919c387d change load to chicken-load in sex sources
to explicitly denote that it is chiken
2025-06-14 14:09:39 +03:00
bd71dcc8a7 add chicken-import support to sex
also fix unquoting to single atom processing wrongly in walk-sex-tree
2025-06-14 14:07:00 +03:00
6e59e523d4 hanlde pub for global vars correctly 2025-06-14 12:39:13 +03:00
16dec0728f add extern support 2025-06-13 18:20:51 +03:00
3cce26dc5c add field access support (also unfuck tree walker a bit) 2025-06-12 23:40:35 +03:00
19cc3ad43a unshittify templates 2025-06-11 20:23:54 +03:00
241d605db4 implement templates (kinda)
uh oh
2025-06-09 00:30:14 +03:00
408c0c1441 make some exceptions for unkebabification 2025-06-09 00:29:31 +03:00
5220e0eafd [] isn't gonna work with Sheme reader 2025-06-09 00:27:36 +03:00
839a6cb350 don't need map here, for-each is enough 2025-06-09 00:27:21 +03:00
0d72b1950d fix reading from files not in current dir 2025-06-09 00:27:03 +03:00
469db7b92e add auto typedefs for structs 2025-06-09 00:21:42 +03:00
39e1e4a664 rewrite tree walk with tree module
also add pub support
2025-06-05 17:11:30 +03:00
dd9765bd62 filter out '()s from the tree 2025-06-05 12:15:06 +03:00
46877241d9 add cmdline options
-h help
-o write to file
-m expand macros in Sex code and print result
2025-06-05 07:32:05 +03:00
5dece2275a maybe rewrite map-filter-tree with tree.scm's tree inversions?
They don't seem intuitive, need to mess around a bit to understand
them.
2025-05-30 12:37:28 +03:00
b8d0efafcb implement comma in Sex sources 2025-05-29 22:08:14 +03:00
db124d68c5 initial 2025-05-26 22:42:01 +03:00