fix: elb macOS OpenSSL + C master decls header; ELP missing imports #51

Merged
will.anderson merged 1 commits from fix/ci-gcloud-install-order into dev 2026-05-09 01:24:39 +00:00
Owner

Summary

  • elb.el: Auto-detect Homebrew OpenSSL on macOS so -lssl resolves without manual --runtime path hacks. No-op on Linux.
  • elb.el: Add -include elp-c-decls.h when present in out_dir — resolves undeclared cross-module calls in packages like ELP that were built as a monolith and lack explicit imports.
  • ELP sources: Add import "morphology.el" to all 29 language morphology modules. Add language module imports to morphology.el for all languages it dispatches to. These were missing since ELP was originally compiled as a single unit.

Why

elb build of the neuron soul daemon was broken: language morphology modules called str_drop_last without declaring it, and morphology.el called language-specific functions (es_pluralize, de_noun_plural, etc.) that had no C declarations. The elp-c-decls.h master header approach is the minimal fix that doesn't require touching every single ELP source file.

Test plan

  • elb --elc=<elc> --runtime=<runtime> from neuron/ builds clean binary
  • Soul daemon restarts and loads 3700+ nodes
  • CI build passes on Linux (OpenSSL flag is no-op there)
## Summary - **elb.el**: Auto-detect Homebrew OpenSSL on macOS so `-lssl` resolves without manual `--runtime` path hacks. No-op on Linux. - **elb.el**: Add `-include elp-c-decls.h` when present in `out_dir` — resolves undeclared cross-module calls in packages like ELP that were built as a monolith and lack explicit imports. - **ELP sources**: Add `import "morphology.el"` to all 29 language morphology modules. Add language module imports to `morphology.el` for all languages it dispatches to. These were missing since ELP was originally compiled as a single unit. ## Why elb build of the neuron soul daemon was broken: language morphology modules called `str_drop_last` without declaring it, and `morphology.el` called language-specific functions (`es_pluralize`, `de_noun_plural`, etc.) that had no C declarations. The `elp-c-decls.h` master header approach is the minimal fix that doesn't require touching every single ELP source file. ## Test plan - [ ] `elb --elc=<elc> --runtime=<runtime>` from `neuron/` builds clean binary - [ ] Soul daemon restarts and loads 3700+ nodes - [ ] CI build passes on Linux (OpenSSL flag is no-op there)
will.anderson added 1 commit 2026-05-09 00:45:06 +00:00
fix: elb macOS OpenSSL + C master declarations header; add ELP missing imports
El SDK CI - dev / build-and-test (pull_request) Successful in 3m34s
c2cd5e01e1
elb.el:
- Auto-detect Homebrew OpenSSL (-L$(brew --prefix openssl)/lib) so -lssl
  resolves on macOS without manual flags; no-op on Linux
- Add -include elp-c-decls.h when present in out_dir: resolves undeclared
  cross-module calls in packages like ELP that lack explicit imports

ELP source:
- Add import "morphology.el" to all 29 language morphology modules
- Add language module imports to morphology.el (all langs it dispatches to)
  These were missing since ELP was originally built as a monolithic unit
will.anderson merged commit a390ee494e into dev 2026-05-09 01:24:39 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: neuron-technologies/el#51