Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PERFORMANCE test fails with SBCL 2.2.6 #8

Open
Ambrevar opened this issue Jun 30, 2022 · 1 comment
Open

PERFORMANCE test fails with SBCL 2.2.6 #8

Ambrevar opened this issue Jun 30, 2022 · 1 comment

Comments

@Ambrevar
Copy link

 Running test PARAMETRIC-POLYMORPHISM ......
Unhandled IT.BESE.FIVEAM::CHECK-FAILURE in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                     {100B798073}>:
  The following check failed: (< #:PERCENT-DIFF2 10)
Expected: 5.1
Actual:   3.9531288
%diff:    22.487669%.

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {100B798073}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<IT.BESE.FIVEAM::CHECK-FAILURE {10097C0BF3}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:*INVOKE-DEBUGGER-HOOK* #<IT.BESE.FIVEAM::CHECK-FAILURE {10097C0BF3}>)
2: (INVOKE-DEBUGGER #<IT.BESE.FIVEAM::CHECK-FAILURE {10097C0BF3}>)
3: (ERROR #<IT.BESE.FIVEAM::CHECK-FAILURE {10097C0BF3}>)
4: (SB-KERNEL:WITH-SIMPLE-CONDITION-RESTARTS ERROR NIL IT.BESE.FIVEAM::CHECK-FAILURE :TEST-EXPR (< #:PERCENT-DIFF2 10) :REASON "Expected: 5.1
Actual:   3.9531288
%diff:    22.487669%")
5: (IT.BESE.FIVEAM::PROCESS-FAILURE (< #:PERCENT-DIFF2 10) "Expected: ~D~%Actual:   ~D~%%diff:    ~D%" 5.1 3.9531288 22.487669)
6: ((LAMBDA ()))
7: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LET ((A "hello") (B "world")) (MACROLET ((EXPECT-TIME (# &BODY BODY) (WITH-GENSYMS # #))) (EXPECT-TIME (5.1) (LOCALLY (DECLARE #) (LOOP :REPEAT 50000000 :DO #))) (EXPECT-TIME (0.05) (LOCALLY (DECLARE # #) (LOOP :REPEAT 50000000 :DO #))))) #<NULL-LEXENV>)
8: (EVAL (LET ((A "hello") (B "world")) (MACROLET ((EXPECT-TIME (# &BODY BODY) (WITH-GENSYMS # #))) (EXPECT-TIME (5.1) (LOCALLY (DECLARE #) (LOOP :REPEAT 50000000 :DO #))) (EXPECT-TIME (0.05) (LOCALLY (DECLARE # #) (LOOP :REPEAT 50000000 :DO #))))))
9: ((LABELS %TEST-PERFORMANCE :IN "/gnu/store/3jyx415484gdp6accks3f0nvpx7b8nq5-sbcl-polymorphic-functions-0.2.1-1.b5ed92d/lib/common-lisp/sbcl/polymorphic-functions/src/benchmark.fasl"))
10: ((LABELS IT.BESE.FIVEAM::RUN-IT :IN IT.BESE.FIVEAM::RUN-TEST-LAMBDA))
11: ((:METHOD IT.BESE.FIVEAM::RUN-TEST-LAMBDA (IT.BESE.FIVEAM::TEST-CASE)) #<IT.BESE.FIVEAM::TEST-CASE PERFORMANCE {100B58F953}>) [fast-method]
12: ((:METHOD IT.BESE.FIVEAM::RUN-RESOLVING-DEPENDENCIES (IT.BESE.FIVEAM::TEST-CASE)) #<IT.BESE.FIVEAM::TEST-CASE PERFORMANCE {100B58F953}>) [fast-method]
13: ((:METHOD IT.BESE.FIVEAM::%RUN (IT.BESE.FIVEAM::TEST-SUITE)) #<IT.BESE.FIVEAM::TEST-SUITE :POLYMORPHIC-FUNCTIONS {10090B19D3}>) [fast-method]
14: ((LAMBDA NIL :IN IT.BESE.FIVEAM:RUN))
15: (IT.BESE.FIVEAM:RUN :POLYMORPHIC-FUNCTIONS :PRINT-NAMES NIL)
16: (IT.BESE.FIVEAM:RUN! :POLYMORPHIC-FUNCTIONS :PRINT-NAMES NIL)
17: ((LAMBDA ()))
18: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LET ((IT.BESE.FIVEAM:*ON-FAILURE* :DEBUG) (IT.BESE.FIVEAM:*ON-ERROR* :DEBUG) (*COMPILE-VERBOSE* NIL)) (IT.BESE.FIVEAM:RUN! :POLYMORPHIC-FUNCTIONS)) #<NULL-LEXENV>)
19: (EVAL (LET ((IT.BESE.FIVEAM:*ON-FAILURE* :DEBUG) (IT.BESE.FIVEAM:*ON-ERROR* :DEBUG) (*COMPILE-VERBOSE* NIL)) (IT.BESE.FIVEAM:RUN! :POLYMORPHIC-FUNCTIONS)))
20: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:TEST-OP > #<ASDF/SYSTEM:SYSTEM "polymorphic-functions">)
21: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
22: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:TEST-OP > #<ASDF/SYSTEM:SYSTEM "polymorphic-functions">) [fast-method]
23: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {10063E2173}>) [fast-method]
24: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
25: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {10063E2173}>) [fast-method]
26: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:TEST-OP > #<ASDF/SYSTEM:SYSTEM "polymorphic-functions"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
27: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:TEST-OP > #<ASDF/SYSTEM:SYSTEM "polymorphic-functions">)
28: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
29: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:TEST-OP > #<ASDF/SYSTEM:SYSTEM "polymorphic-functions">) [fast-method]
30: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:TEST-OP "polymorphic-functions")
31: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
32: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:TEST-OP "polymorphic-functions") [fast-method]
33: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {10063D334B}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
34: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
35: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {10063B506B}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
36: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:TEST-OP "polymorphic-functions") [fast-method]
37: (ASDF/OPERATE:TEST-SYSTEM "polymorphic-functions")
38: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF/OPERATE:TEST-SYSTEM "polymorphic-functions") #<NULL-LEXENV>)
39: (EVAL (ASDF/OPERATE:TEST-SYSTEM "polymorphic-functions"))
40: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(require :asdf)") (:EVAL . "(asdf:load-asd (truename \"/gnu/store/3jyx415484gdp6accks3f0nvpx7b8nq5-sbcl-polymorphic-functions-0.2.1-1.b5ed92d/share/common-lisp/sbcl/polymorphic-functions/polymorphic-functions.asd\"))") (:EVAL . "(when (uiop:file-exists-p \"polymorphic-functions-tests.asd\") (asdf:load-asd (truename \"polymorphic-functions-tests.asd\")))") (:EVAL . "(when (uiop:file-exists-p \"polymorphic-functions-test.asd\") (asdf:load-asd (truename \"polymorphic-functions-test.asd\")))") (:EVAL . "(when (uiop:file-exists-p \"tests.asd\") (asdf:load-asd (truename \"tests.asd\")))") (:EVAL . "(when (uiop:file-exists-p \"test.asd\") (asdf:load-asd (truename \"test.asd\")))") (:EVAL . "(asdf:test-system \"polymorphic-functions\")") (:QUIT)))
41: (SB-IMPL::TOPLEVEL-INIT)
42: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
43: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
44: (SB-IMPL::%START-LISP)
@digikar99
Copy link
Owner

The CI does suggest parametric polymorphism passes: https://github.com/digikar99/polymorphic-functions/runs/7001850638?check_suite_focus=true

The above test failure looks like the one checking for performance, I guess I could allow failure for this one since I haven't found a nicer way to make it platform independent.

PS: I still do not recommend using parametric polymorphism in production if your work can be done by a combination of subtype polymorphism and the provided type-like declaration.

@digikar99 digikar99 changed the title PARAMETRIC-POLYMORPHISM test fails with SBCL 2.2.6 PERFORMANCE test fails with SBCL 2.2.6 Aug 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants