How Lem works on each implementation
Lem has a test suite that is trigger by the system lem-tests.asd, this list want to evaluate how each implementation is able to run these tests and the output of each.
Each check-mark means that all the tests are passing in that package.
This pull requests is used to track the progress: https://github.com/lem-project/lem/pull/686
This is the reference implementation, all tests should work in order to work in main.
Armed Bear Common Lisp (ABCL) is a full implementation of the Common Lisp language featuring both an interpreter and a compiler, running in the JVM.
Armed Bear Common Lisp 1.9.0 Java 11.0.19 Ubuntu OpenJDK 64-Bit Server VM
Common module | |
---|---|
ring | |
killring | |
history | |
timer | |
Lisp-syntax | |
---|---|
indent-test | |
defstruct-to-defclass | |
Lisp-mode | |
---|---|
package-inferred-system |
Misc | |
---|---|
killring | |
string-width-utils |
wide-char-p
✓ Expect (LOOP :FOR CHAR :IN LEM-TESTS/STRING-WIDTH-UTILS::ALPHABET-OR-NUMBERS :ALWAYS (NOT (LEM-BASE:WIDE-CHAR-P CHAR))) to be true.
✓ Expect (LOOP :FOR CHAR :IN LEM-TESTS/STRING-WIDTH-UTILS::CONTROL-CHARS :ALWAYS (LEM-BASE:WIDE-CHAR-P CHAR)) to be true.
× 0) Expect (LOOP :FOR (LEM-TESTS/STRING-WIDTH-UTILS::START LEM-TESTS/STRING-WIDTH-UTILS::END) :IN LEM-TESTS/STRING-WIDTH-UTILS::+EASTASIAN-FULL-PAIRS+ :ALWAYS (LOOP :FOR LEM-TESTS/STRING-WIDTH-UTILS::CODE :FROM LEM-TESTS/STRING-WIDTH-UTILS::START :TO LEM-TESTS/STRING-WIDTH-UTILS::END :ALWAYS (LEM-BASE:WIDE-CHAR-P (CODE-CHAR LEM-TESTS/STRING-WIDTH-UTILS::CODE)))) to be true. (80ms)
✓ Expect (LEM-BASE:WIDE-CHAR-P (CODE-CHAR 127798)) to be false.
✓ Expect (LEM-BASE:WIDE-CHAR-P (CODE-CHAR 128253)) to be false.
× 1 of 5 tests failed
0) Expect (LOOP :FOR (LEM-TESTS/STRING-WIDTH-UTILS::START LEM-TESTS/STRING-WIDTH-UTILS::END) :IN LEM-TESTS/STRING-WIDTH-UTILS::+EASTASIAN-FULL-PAIRS+ :ALWAYS (LOOP :FOR LEM-TESTS/STRING-WIDTH-UTILS::CODE :FROM LEM-TESTS/STRING-WIDTH-UTILS::START :TO LEM-TESTS/STRING-WIDTH-UTILS::END :ALWAYS (LEM-BASE:WIDE-CHAR-P (CODE-CHAR LEM-TESTS/STRING-WIDTH-UTILS::CODE)))) to be true.
(LOOP :FOR (LEM-TESTS/STRING-WIDTH-UTILS::START LEM-TESTS/STRING-WIDTH-UTILS::END) :IN LEM-TESTS/STRING-WIDTH-UTILS::+EASTASIAN-FULL-PAIRS+ :ALWAYS (LOOP :FOR LEM-TESTS/STRING-WIDTH-UTILS::CODE :FROM LEM-TESTS/STRING-WIDTH-UTILS::START :TO LEM-TESTS/STRING-WIDTH-UTILS::END :ALWAYS (LEM-BASE:WIDE-CHAR-P (CODE-CHAR LEM-TESTS/STRING-WIDTH-UTILS::CODE))))
buffer-list-tests | |
popup-window | |
prompt | |
isearch | |
cursors |
simple-fake-cursor-test
Test the fake-cursor created
buffer-fake-cursors
✓ Expect (ALEXANDRIA:LENGTH= 1 (LEM-CORE:BUFFER-FAKE-CURSORS LEM-TESTS/CURSORS::BUFFER)) to be true.
✓ Expect (EQ LEM-TESTS/CURSORS::CURSOR (FIRST (LEM-CORE:BUFFER-FAKE-CURSORS LEM-TESTS/CURSORS::BUFFER))) to be true.
killring
✓ Expect (EQ (LEM-CORE:CURRENT-KILLRING) LEM-TESTS/CURSORS::KILLRING) to be false.
✓ Expect (EQUAL "aaa" (LEM/COMMON/KILLRING:PEEK-KILLRING-ITEM LEM-TESTS/CURSORS::KILLRING 2)) to be true.
✓ Expect (EQUAL "bbb" (LEM/COMMON/KILLRING:PEEK-KILLRING-ITEM LEM-TESTS/CURSORS::KILLRING 1)) to be true.
✓ Expect (EQUAL "ccc" (LEM/COMMON/KILLRING:PEEK-KILLRING-ITEM LEM-TESTS/CURSORS::KILLRING 0)) to be true.
point-kind
✓ Expect (EQ :LEFT-INSERTING (LEM-BASE:POINT-KIND LEM-TESTS/CURSORS::CURSOR)) to be true.
Delete cursor
✓ Expect (NULL (LEM-CORE:BUFFER-FAKE-CURSORS LEM-TESTS/CURSORS::BUFFER)) to be true.
✓ 2 tests completed
test-to-execute-a-series-of-commands
execute self-insert command
× 1) Raise an error while testing.
execute delete-previous-character command
× 2) Raise an error while testing.
multiple cursor killring
✓ Expect (EQUAL (QUOTE ("abcd" "opqr" "hijk")) (MAPCAR (LAMBDA (LEM-TESTS/CURSORS::KILLRING) (LEM/COMMON/KILLRING:PEEK-KILLRING-ITEM LEM-TESTS/CURSORS::KILLRING 0)) (CONS LEM-CORE::*KILLRING* (MAPCAR (LAMBDA (LEM-TESTS/CURSORS::CURSOR) (LEM-CORE::FAKE-CURSOR-KILLRING LEM-TESTS/CURSORS::CURSOR)) (LEM-CORE:BUFFER-FAKE-CURSORS LEM-TESTS/CURSORS::BUFFER))))) to be true.
× 2 of 3 tests failed
0) execute self-insert command
Raise an error while testing.
SIMPLE-TYPE-ERROR: Bad argument to SIGNAL: #.
0: (# Bad argument to SIGNAL: #.)
1: (SIGNAL Bad argument to SIGNAL: #.)
2: (ERROR SIMPLE-TYPE-ERROR DATUM # EXPECTED-TYPE (OR SYMBOL STRING) FORMAT-CONTROL Bad argument to ~S: ~S. FORMAT-ARGUMENTS (SIGNAL #))
3: (SYSTEM:COERCE-TO-CONDITION # (COMMAND #) SIMPLE-CONDITION SIGNAL)
4: (SIGNAL # COMMAND #)
5: (APPLY # # (COMMAND #))
6: (LEM-CORE::SIGNAL-SUBCONDITIONS BEFORE-EXECUTING-COMMAND COMMAND #)
7: (LEM-CORE:CALL-COMMAND SELF-INSERT NIL)
8: (LEM-CORE:EXECUTE-KEY-SEQUENCE ( ))
9: (#)
10: (LEM-BASE::CALL-WITH-CURRENT-BUFFERS NIL #)
11: (#)
12: (RUN-SUITE LEM-TESTS/CURSORS)
13: (SYSTEM::%EVAL (RUN-SUITE LEM-TESTS/CURSORS))
14: (EVAL (RUN-SUITE LEM-TESTS/CURSORS))
1) execute delete-previous-character command
Raise an error while testing.
SIMPLE-TYPE-ERROR: Bad argument to SIGNAL: #.
0: (# Bad argument to SIGNAL: #.)
1: (SIGNAL Bad argument to SIGNAL: #.)
2: (ERROR SIMPLE-TYPE-ERROR DATUM # EXPECTED-TYPE (OR SYMBOL STRING) FORMAT-CONTROL Bad argument to ~S: ~S. FORMAT-ARGUMENTS (SIGNAL #))
3: (SYSTEM:COERCE-TO-CONDITION # (COMMAND #) SIMPLE-CONDITION SIGNAL)
4: (SIGNAL # COMMAND #)
5: (APPLY # # (COMMAND #))
6: (LEM-CORE::SIGNAL-SUBCONDITIONS BEFORE-EXECUTING-COMMAND COMMAND #)
7: (LEM-CORE:CALL-COMMAND DELETE-PREVIOUS-CHAR NIL)
8: (LEM-CORE:EXECUTE-KEY-SEQUENCE (C-h))
9: (#)
10: (LEM-BASE::CALL-WITH-CURRENT-BUFFERS NIL #)
11: (#)
12: (RUN-SUITE LEM-TESTS/CURSORS)
13: (SYSTEM::%EVAL (RUN-SUITE LEM-TESTS/CURSORS))
14: (EVAL (RUN-SUITE LEM-TESTS/CURSORS))
next-line/previous-line
✓ Expect (LEM-TESTS/CURSORS::POSITIONS-SET-EQUAL (QUOTE ((2 12) (3 10) (4 10))) (LEM-TESTS/CURSORS::ALL-POSITIONS LEM-TESTS/CURSORS::BUFFER)) to be true.
✓ Expect (LEM-TESTS/CURSORS::POSITIONS-SET-EQUAL (QUOTE ((1 14) (2 12) (3 10))) (LEM-TESTS/CURSORS::ALL-POSITIONS LEM-TESTS/CURSORS::BUFFER)) to be true.
✓ Expect (LEM-TESTS/CURSORS::POSITIONS-SET-EQUAL (QUOTE ((2 12) (3 10) (4 10))) (LEM-TESTS/CURSORS::ALL-POSITIONS LEM-TESTS/CURSORS::BUFFER)) to be true.
✓ 3 tests completed
self-insert-command |
self-insert-command
× 2) Raise an error while testing.
× 1 of 1 test failed
0) Raise an error while testing.
UNBOUND-VARIABLE: The variable LEM-BASE::N is unbound.
0: (# The variable LEM-BASE::N is unbound.)
1: (SIGNAL The variable LEM-BASE::N is unbound.)
2: (:CLASS org.armedbear.lisp.Lisp METHOD error FILE Lisp.java LINE 383)
3: (:CLASS org.armedbear.lisp.Symbol METHOD symbolValue FILE Symbol.java LINE 354)
4: (:CLASS org.armedbear.lisp.buffer_insert_tmp84OWIL66_26 METHOD execute FILE buffer-insert.lisp LINE 186)
5: (:CLASS org.armedbear.lisp.Symbol METHOD execute FILE Symbol.java LINE 828)
6: (:CLASS org.armedbear.lisp.LispThread METHOD execute FILE LispThread.java LINE 945)
7: (:CLASS org.armedbear.lisp.buffer_insert_tmp84OWIL66_31 METHOD execute FILE buffer-insert.lisp LINE 200)
8: (:CLASS org.armedbear.lisp.clos_307 METHOD execute FILE clos.lisp LINE 2634)
9: (:CLASS org.armedbear.lisp.LispThread METHOD execute FILE LispThread.java LINE 904)
10: (:CLASS org.armedbear.lisp.buffer_insert_tmp84OWIL66_51 METHOD execute FILE buffer-insert.lisp LINE 286)
11: (:CLASS org.armedbear.lisp.CompiledClosure METHOD execute FILE CompiledClosure.java LINE 89)
12: (:CLASS org.armedbear.lisp.buffer_insert_tmp84OWIL66_50 METHOD execute FILE buffer-insert.lisp LINE 286)
13: (:CLASS org.armedbear.lisp.clos_310 METHOD execute FILE clos.lisp LINE 2733)
14: (:CLASS org.armedbear.lisp.clos_281 METHOD execute FILE clos.lisp LINE 2315)
NIL
interp |
execute-the-same-command-consecutively
× 3) Raise an error while testing.
× 1 of 1 test failed
0) Raise an error while testing.
SIMPLE-TYPE-ERROR: Bad argument to SIGNAL: #.
0: (# Bad argument to SIGNAL: #.)
1: (SIGNAL Bad argument to SIGNAL: #.)
2: (ERROR SIMPLE-TYPE-ERROR DATUM # EXPECTED-TYPE (OR SYMBOL STRING) FORMAT-CONTROL Bad argument to ~S: ~S. FORMAT-ARGUMENTS (SIGNAL #))
3: (SYSTEM:COERCE-TO-CONDITION # (COMMAND #<$TEST-COMMAND-FLAG {14475B93}>) SIMPLE-CONDITION SIGNAL)
4: (SIGNAL # COMMAND #<$TEST-COMMAND-FLAG {14475B93}>)
5: (APPLY # # (COMMAND #<$TEST-COMMAND-FLAG {14475B93}>))
6: (LEM-CORE::SIGNAL-SUBCONDITIONS BEFORE-EXECUTING-COMMAND COMMAND #<$TEST-COMMAND-FLAG {14475B93}>)
7: (LEM-CORE:CALL-COMMAND $TEST-COMMAND-FLAG NIL)
8: (LEM/TESTS/INTERP::EXECUTE-TESTING-COMMAND 3 $TEST-COMMAND-FLAG)
9: (#)
10: (LEM-BASE::CALL-WITH-CURRENT-BUFFERS NIL #)
11: (#)
12: (RUN-SUITE LEM/TESTS/INTERP)
13: (SYSTEM::%EVAL (RUN-SUITE LEM/TESTS/INTERP))
14: (EVAL (RUN-SUITE LEM/TESTS/INTERP))
NIL
file | |
completion |