This is fun to see. I wonder how they handle the fact that PHP puts every type of thing in its own namespace (names of classes, functions, constants, methods, variables, member variables, static variables and class constants don't conflict with eachother) and how not all namespaces have case-sensitivity. That's very un-lisp, maybe it just uses its own lisp-specific namespace?
Phel compiles a Clojure-flavoured Lisp to PHP. v0.36.0 ships exact rationals (1/2 literals), arbitrary-precision BigInteger with overflow auto-promotion, BigDecimal, first-class Vars (#'sym, alter-var-root, with-redefs, watches), and new value types (UUID, Queue, MapEntry). Plus REPL and test boot are notably faster.
Phel has deep PHP interop built into the language: call any PHP function, instantiate classes, access globals via the php/ namespace from anywhere in your code.
We also ship a Phel nREPL: a bencode-over-TCP server (phel nrepl) compatible with editor tooling like Calva, CIDER, and Conjure. Connect your editor and evaluate Phel code against a running process directly.
Could not help but notice that this project has no explicit policy on whether AI contributions are allowed or not (i.e. nothing analogous to https://ziglang.org/code-of-conduct/).
This is fun to see. I wonder how they handle the fact that PHP puts every type of thing in its own namespace (names of classes, functions, constants, methods, variables, member variables, static variables and class constants don't conflict with eachother) and how not all namespaces have case-sensitivity. That's very un-lisp, maybe it just uses its own lisp-specific namespace?
"inspired by clojure" - is there a better signal for good taste and quality?
"inspired by Scheme"
"inspired by CL"
Inspired by PHP :^)
Just kidding, even though I both love Clojure & PHP.
"inspired clojure" ?
Phel compiles a Clojure-flavoured Lisp to PHP. v0.36.0 ships exact rationals (1/2 literals), arbitrary-precision BigInteger with overflow auto-promotion, BigDecimal, first-class Vars (#'sym, alter-var-root, with-redefs, watches), and new value types (UUID, Queue, MapEntry). Plus REPL and test boot are notably faster.
Great work on this release! Glad to see the dot-separated namespace syntax being standardized in the core.
It would be great if the Phel repl could connect to a running PHP process
Phel has deep PHP interop built into the language: call any PHP function, instantiate classes, access globals via the php/ namespace from anywhere in your code.
We also ship a Phel nREPL: a bencode-over-TCP server (phel nrepl) compatible with editor tooling like Calva, CIDER, and Conjure. Connect your editor and evaluate Phel code against a running process directly.
as for interop with PHP, does it support Attributes: https://www.php.net/manual/en/language.attributes.overview.p... ?
Love this!
I've been following this project for a while, congratulations on the release!
Even though I don't have much use for PHP at the moment, I wish it finds a niche in the market and becomes widely used. Good luck!
Could not help but notice that this project has no explicit policy on whether AI contributions are allowed or not (i.e. nothing analogous to https://ziglang.org/code-of-conduct/).
Culture wars are not worth anyones time participating in. Stop it.