Comments (3)
I think the idea is to let user build a scheme executable with extra C functions linked to libkernel.a and main.o, without the need to distribute the user extended C functions as a separate dynamic library file.
from chezscheme.
I think the idea is to let user build a scheme executable with extra C functions linked to libkernel.a and main.o, without the need to distribute the user extended C functions as a separate dynamic library file.
Interesting! I can see how that would work, though I wouldn't have thought of that approach.
Does anyone know of other software that distributes something similar to this main.o
file?
from chezscheme.
So (on macOS)
cc libz.a liblz4.a libkernel.a main.o -o foo -liconv -lncurses
would produce an executable works identical to petite
or scheme
, without need to access the source code. I think this design was settle down long before when Chez was still closed source and the distribution of main.o
is only for completeness, and to create binary executable if any of the linked shared libraries, for example ncurses, on the target system changes, without need to request a new binary from software vendor.
Also it is worth mention the version 7 user guide already mentioned the kernel can be a shared library. The program might have been distributed for some now obscure UNIX variants so it is very likely the case why object files are included when sources aren't available since while the object file format can be compatible the system shared libraries might not be the same.
https://www.scheme.com/csug7/use.html#./use:h7
My other conjecture about making additional C code was probably never be applied in reality since it still requires some hack to hook additional code into the main function to register C functions to the runtime to make them available to Scheme.
from chezscheme.
Related Issues (20)
- Release 10.0.0 .tar.gz does not contain the submodules HOT 3
- Should `make test` use jobserver parallelism? HOT 6
- Intermittent crash in `make test` HOT 2
- `makefiles/boot.zuo`'s `main` calls `cross-build-boot` incorrectly HOT 3
- Bug in fixnum arithmetic HOT 1
- bytevector-reference-ref & set! fail to correctly check size of bytevectors smaller than ptr-bytes - 1 HOT 1
- Warnings from GCC `-fanalyzer`
- new RNG is very broken HOT 4
- chezscheme 10 cannot be built from tarball HOT 1
- Non-tail calls to errorf sometimes treated as tail calls with debug-level 2 HOT 5
- weird cond expansion HOT 8
- a few questions regarding packaging chez-scheme HOT 6
- [PATCH] Update user's guide link in README HOT 1
- Bug in V format prefix parameter HOT 1
- native eol style HOT 4
- error: use of unknown builtin '__builtin_add_overflow' HOT 1
- How to cross compile on macOS for a different macOS architecture HOT 3
- Build fails if I set CC_FOR_BUILD HOT 1
- set! creates new bindings HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chezscheme.