git subrepo clone git@github.com:Rconybea/xo-jit.git xo-jit

subrepo:
  subdir:   "xo-jit"
  merged:   "29904c01"
upstream:
  origin:   "git@github.com:Rconybea/xo-jit.git"
  branch:   "main"
  commit:   "29904c01"
git-subrepo:
  version:  "0.4.9"
  origin:   "???"
  commit:   "???"
This commit is contained in:
Roland Conybeare 2026-06-06 22:13:26 -04:00
commit 1443af05e0
50 changed files with 7407 additions and 0 deletions

View file

@ -0,0 +1,40 @@
struct env_type;
struct closure_type {
double (*fnptr)(env_type * env, double x);
env_type * envptr;
};
double
sqrt(double x) {
return x/100;
}
double
wrap_sqrt(env_type * env, double x) {
return ::sqrt(x);
}
double twice(env_type * env, closure_type fnclosure, double x) {
double tmp1 = (*fnclosure.fnptr)(fnclosure.envptr, x);
double tmp2 = (*fnclosure.fnptr)(fnclosure.envptr, tmp1);
return tmp2;
}
closure_type make_some_closure()
{
closure_type closure;
closure.fnptr = &wrap_sqrt;
closure.envptr = nullptr;
return closure;
}
int main() {
closure_type closure = make_some_closure();
double y = twice(nullptr, closure, 4.0);
//std::cout << "y=" << y << std::endl;
}