Introduction Issues SBCL Combinators CGFs
- Alt. MCs
Perfs Conclusion
Method Combinators
e ELS 2018 E Didier Verna
EPITA / LRDE
didier@lrde.epita.fr
lrde/~didier @didierverna didier.verna google+ in/didierverna
Method Combinators Conclusion Perfs Alt. MCs CGFs Combinators - - PowerPoint PPT Presentation
Introduction Didier Verna google+ didier.verna @didierverna lrde/~didier didier@lrde.epita.fr EPITA / LRDE in/didierverna Issues Method Combinators Conclusion Perfs Alt. MCs CGFs Combinators SBCL e ELS 2018 E Introduction Issues
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
lrde/~didier @didierverna didier.verna google+ in/didierverna
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ Multiple dispatch
◮ MOP
◮ Method combinations
◮ Method combinations underspecifjed
◮ MOP only a later addition
Method Combinators / ELS 2018 – Didier Verna 2/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 3/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 4/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ Method qualifjcation required
◮ Except for the option
◮ No :before or :after methods
Method Combinators / ELS 2018 – Didier Verna 5/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 6/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ What are name and options for? ◮ Error behavior? ◮ There already is generic-function-method-combination Method Combinators / ELS 2018 – Didier Verna 7/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 8/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 9/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 10/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ One method combination object per generic function ◮ Redefjnitions don’t afgect existing generic functions
Method Combinators / ELS 2018 – Didier Verna 11/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ Local method combination objects ◮ Global method combination functions Method Combinators / ELS 2018 – Didier Verna 12/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 13/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 13/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 13/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 14/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 15/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 16/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 17/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 18/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 19/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 20/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 21/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 22/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ 2 calls to reinitialize-instance
Method Combinators / ELS 2018 – Didier Verna 23/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ First alternative call: as before ◮ Next: 1 or 2 hashtable lookups
Method Combinators / ELS 2018 – Didier Verna 24/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
Method Combinators / ELS 2018 – Didier Verna 25/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
1 2 3 4 5 6 Numeric (10e8 iterations) I/O (10e7 iterations) (seconds) std :std + :+
std :std progn :progn
Method Combinators / ELS 2018 – Didier Verna 26/27
Introduction Issues SBCL Combinators CGFs
Perfs Conclusion
◮ Method combinations are powerful yet underspecifjed ◮ Method combinators improve their consistency ◮ Code available on GitHub
◮ Refjne / properly package implementation ◮ Port to other compilers ◮ Experiment with “fmoating” fmoating methods Method Combinators / ELS 2018 – Didier Verna 27/27