feature/project-local-deps #29

Merged
pkulev merged 7 commits from pkulev/sex:feature/project-local-deps into main 2026-09-18 12:42:35 +02:00
Collaborator

Project-local chicken dependency management.
A lot of custom things in the root makefile instead of proper tooling like virtual env.

Based on: #27

Project-local chicken dependency management. A lot of custom things in the root makefile instead of proper tooling like virtual env. *Based on:* #27
pkulev added the feature label 2026-09-17 23:05:51 +02:00
pkulev added 19 commits 2026-09-17 23:05:51 +02:00
Also fix module import
generate temp .c files instead of passing to compiler's stdin
All checks were successful
Sex CI / build-linux (pull_request) Successful in 4m44s
85bf1c163c
For a clearer architecture
1. register imported types
2. protect against multiple imports (diamond, circular)
Implement pub support for enums, and also anonymous enums declared
in-place.

Also give the cdr of a `pub' form the form's own location, so a
error about what follows `pub' can say where it was written
Now these macro helpers take in account the possibility of typedefing
one type to another, and correctly find the one intended
compile-to-file returned process-wait's values and main dropped them,
so cc errors were printed, but then main compiler exited 0.

Also cleanup tmp C files when compilation failed.
1. Look for `compilation', not `compile' among the source
2. Read the file with provided --features from the (compilation ...)
form, then handle resulting file to sexc
'#+' and '#-' introduce conditional compilation: the form that follows
is kept only when the feature expression is true, and otherwise is read
and thrown away.  An expression is a feature name, or and / or / not
of them.

They are read time, not compile time.

Default features are the host's software-version, software-type and
machine-type as CHICKEN reports them, plus what --features flag adds.
build the triangle on Linux too
All checks were successful
Sex CI / build-linux (pull_request) Successful in 4m44s
Sex CI / build-linux (push) Successful in 5m18s
a221e0f8ea
<OpenGL/gl3.h> does not exist there and -framework is not a gcc flag,
so the documented build line failed with no hint why. #+macosx picks
the header now, and both build lines are in the file -- pkg-config
carries the flags on either platform, apart from Apple's GL framework,
which has no pkg-config file to carry.
readme: update installation docs
Some checks failed
Sex CI / build-linux (pull_request) Failing after 3m55s
bfaba8ac44
pkulev requested review from alex-eg 2026-09-17 23:05:51 +02:00
pkulev force-pushed feature/project-local-deps from bfaba8ac44 to 82d9402857 2026-09-17 23:30:31 +02:00 Compare
pkulev added 1 commit 2026-09-17 23:38:24 +02:00
deps: lock versions
All checks were successful
Sex CI / build-linux (pull_request) Successful in 7m12s
63801b47b2
pkulev force-pushed feature/project-local-deps from 63801b47b2 to ca71ae6e91 2026-09-17 23:43:59 +02:00 Compare
alex-eg reviewed 2026-09-18 11:06:56 +02:00
@@ -15,0 +17,4 @@
# GNU directory variables. Command line overrides, e.g.
# make prefix=$(HOME)/.local install
# make DESTDIR=/tmp/stage prefix=/usr install
prefix = /usr/local
Owner

What about macOS?

What about macOS?
Author
Collaborator

Elaborate on that please, what about macos

Elaborate on that please, what about macos
alex-eg approved these changes 2026-09-18 11:07:38 +02:00
pkulev merged commit ca71ae6e91 into main 2026-09-18 12:42:35 +02:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alex-eg/sex#29