You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.org
+12-3Lines changed: 12 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,8 +13,17 @@ The library primarily aims to provide a function type to dispatch on types rathe
13
13
14
14
Support for optional and keyword arguments, as well as heterogeneous lambda lists is also provided.
15
15
16
-
Load the asdf system =polymorphic-functions-lite= if you are happy with run-time dispatch. The system =polymorphic-functions= provides optional compile-time dispatch through the use of CLTL2 through [[https://github.com/alex-gutev/cl-environments][cl-environments]]. See below for details. The newly added (= unstable) [[#specializing][specializing]]
17
-
macro also provides runtime numcl/julia-like JAOT dispatch analogous to [[https://github.com/numcl/specialized-function][specialized-function]].
16
+
Load the asdf system =polymorphic-functions-lite= if you are happy with run-time dispatch. It also has lesser dependencies, so more sustainable in the long term.
17
+
18
+
#+CAPTION: System dependency graph for polymorphic-functions-lite
19
+
#+ATTR_HTML: :width 360px
20
+
[[./pf-lite.png]]
21
+
22
+
The system =polymorphic-functions= provides optional compile-time dispatch through the use of CLTL2 through [[https://github.com/alex-gutev/cl-environments][cl-environments]]. See below for details. The newly added (= unstable) [[#specializing][specializing]] macro also provides runtime numcl/julia-like JAOT dispatch analogous to [[https://github.com/numcl/specialized-function][specialized-function]].
23
+
24
+
#+CAPTION: System dependency graph for polymorphic-functions (non lite)
25
+
#+ATTR_HTML: :width 360px
26
+
[[./pf.png]]
18
27
19
28
Continuous Integration through Github Actions tests this library on SBCL, CCL, and ECL. The library was initially put to use at [[https://github.com/digikar99/numericals/][numericals]], but numericals has subsequently moved to the polymorphic-functions variant at [[https://gitlab.com/digikar/peltadot/][peltadot]]. This library continues to be used at [[https://github.com/lisp-polymorph/][lisp-polymorph]].
20
29
@@ -442,7 +451,7 @@ At the moment, SLIME is non-extensible. There is an [[https://github.com/slime/s
442
451
:CUSTOM_ID: compiler-error-messages
443
452
:END:
444
453
445
-
It is a very valid concern to want good error messages from your compiler.
454
+
It is a very valid concern to want good error messages from your compiler.
446
455
447
456
For polymorphic-functions-lite which performs only run time dispatch, the sole place compiler error messages arise is during the compilation of the polymorphs themselves. Polymorphic functions does not do any special compilation of the polymorph bodies beyond macroexpansion - the compilation is handled by the underlying lisp system itself. Thus, the goodness of compiler error messages is limited by the underlying lisp system. For example, consider compilation of the below code on SBCL 2.3.11:
0 commit comments