Coder Social home page Coder Social logo

cl-http2-protocol's Issues

Building cl-http2-protocol in 2021

I got the system to build, but it won't run and thought it would be useful to document how to get this far so that if someone else wants to pick up the ball and run with it they'll have a head start.

First, you'll want to review the contents of issue #4. Those are just symptoms of the fact that cl-async and cl+ssl both wrap the OpenSSL libs (why doesn't cl-async use cl+ssl?). @martinflack describes at a high level what remains to be done to finish off the project. I don't think any of this is insurmountable, but it will take a bit of time to organise all the pieces.

The immediate fixes to get the system building in this repo are:

  • Add :cl-libevent2-ssl to the list of dependencies in the ASDF file
  • Replace use with mix in the example package definition
  • Rename the second argument in the generic function emit

These changes, and a few others, are in the Symbolics fork. A pull request has been made to bring these into this repo.

The remaining issues are in the dependent libraries, mostly cl-async and its dependencies, which seems to have suffered some minor bit rot.

  1. If on MS Windows, the SSL libs won't load because CFFI can't locate the libraries. The fix has been submitted as a pull request orthecreedence/cl-async#187. If this patch hasn't made it into the main branch, you'll need to make the change yourself.
  2. cl-async in turn has a dependency on cl-libevent2, a CFFI wrapper over libevent. The wrapper code was generated with swig, which has removed support for Common Lisp in its latest version. cl-libevent2 uses an older version of libevent. There are a few options:
    • downgrade swig and regenerate the bindings with a newer libevent
    • downgrade libevent
    • do nothing and hope that the current bindings work with the new libevent
    • try generating the bindings with the CFFI groveler

Whilst this may get cl-async compiling on a developers workstation, it's not going to be a very nice user experience for others who want to use the library.

Now you can build cl-http2-protocol. The build will contain errors because of references to internal cl-async functions, now removed. See #4 for an explanation of why. The build errors aren't that great in number. Someone needs to look at each of the internal cl-async functions called and check for a public interface equivalent. Ideally do this working with the upstream maintainer to get any changes adopted there. It would probably be good for both projects.

There's some other tidying up that could be done in cl+ssl, but there don't appear to be any blockers there.

; file: s:/src/http2/tcp.lisp
; in: CL-ASYNC-UTIL:DEFINE-C-CALLBACK CL-ASYNC::TCP-EVENT-CB
;     (CL-ASYNC::GET-LAST-TCP-ERR)
; 
; caught STYLE-WARNING:
;   undefined function: CL-ASYNC::GET-LAST-TCP-ERR


; file: s:/src/http2/example.lisp
; in: DEFUN CL-HTTP2-PROTOCOL-EXAMPLE:EXAMPLE-CLIENT
;     (CL-ASYNC-SSL::INIT-SSL-CLIENT-CONTEXT CL+SSL::*SSL-GLOBAL-CONTEXT*)
; 
; caught STYLE-WARNING:
;   undefined function: CL-ASYNC-SSL::INIT-SSL-CLIENT-CONTEXT


; file: s:/src/http2/tcp-ssl.lisp
; in: DEFUN CL-ASYNC-SSL:TCP-SSL-SERVER
;     (CL-ASYNC-SSL::LAST-SSL-ERROR)
; 
; caught STYLE-WARNING:
;   undefined function: CL-ASYNC-SSL::LAST-SSL-ERROR


; file: s:/src/http2/tcp.lisp
; in: CL-ASYNC-UTIL:DEFINE-C-CALLBACK CL-ASYNC::TCP-EVENT-CB
;     (CL-ASYNC::RELEASE-DNS-BASE)
; 
; caught STYLE-WARNING:
;   undefined function: CL-ASYNC::RELEASE-DNS-BASE


; file: s:/src/http2/tcp-ssl.lisp
; in: DEFUN CL-ASYNC-SSL:TCP-SSL-SERVER
;     (CL-ASYNC-SSL::TCP-SERVER-C CL-ASYNC-SSL::SERVER)
; 
; caught STYLE-WARNING:
;   undefined function: CL-ASYNC-SSL::TCP-SERVER-C

;     (CL-ASYNC-SSL::TCP-SERVER-DATA-POINTER CL-ASYNC-SSL::SERVER)
; 
; caught STYLE-WARNING:
;   undefined function: CL-ASYNC-SSL::TCP-SERVER-DATA-POINTER


; file: s:/src/http2/tcp.lisp
; in: CL-ASYNC-UTIL:DEFINE-C-CALLBACK CL-ASYNC::TCP-EVENT-CB
;     (CL-ASYNC-UTIL:RUN-EVENT-CB CL-ASYNC::EVENT-CB CL-ASYNC:EVENT)
; --> HANDLER-BIND SB-KERNEL::%HANDLER-BIND LET SB-INT:DX-FLET FLET 
; --> #:H0 BLOCK SETF 
; ==>
;   (SETQ CL-ASYNC::_EVCB-ERR CL-ASYNC::E)
; 
; caught WARNING:
;   undefined variable: CL-ASYNC::_EVCB-ERR
; 
; compilation unit finished
;   Undefined functions:
;     CL-ASYNC::GET-LAST-TCP-ERR CL-ASYNC-SSL::INIT-SSL-CLIENT-CONTEXT CL-ASYNC-SSL::LAST-SSL-ERROR CL-ASYNC::RELEASE-DNS-BASE CL-ASYNC-SSL::TCP-SERVER-C CL-ASYNC-SSL::TCP-SERVER-DATA-POINTER
;   Undefined variable:
;     CL-ASYNC::_EVCB-ERR
;   caught 1 WARNING condition
;   caught 19 STYLE-WARNING conditions

name-conflicts in cl-http2-protocol-example between cl+ssl:+ssl-op-no-tlsv1-1+ and cl-async-ssl:+ssl-op-no-tlsv1-1+

Hi,

The problem described in this issue occurs with SBCL 1.5.4 using the versions of the dependencies that were installed by Quicklisp at the time of this writing on both platforms I tried it on:

  • FreeBSD 12.0-RELEASE-p7
  • macOS Mojave 10.14.5

I performed the setup and execution as per the instructions in the readme:

git clone https://github.com/akamai/cl-http2-protocol.git
wget http://beta.quicklisp.org/quicklisp.lisp
cat > deps.lisp <<EOF
(load "quicklisp.lisp")
(quicklisp-quickstart:install)
(ql:quickload :swank)
(ql:quickload :alexandria)
(ql:quickload :anaphora)
(ql:quickload :babel)
(ql:quickload :puri)
(ql:quickload :usocket)
(ql:quickload :cl+ssl)
(ql:quickload :cl-async)
(ql:quickload :cl-async-ssl)
EOF
sbcl --script deps.lisp
cat > server.lisp <<EOF
(load "quicklisp/setup.lisp")
(load "cl-http2-protocol/cl-http2-protocol.asd")
(require :cl-http2-protocol)
(in-package :http2-example)
(example-server)
EOF
sbcl --script server.lisp

Results in an error condition during compilation due to a naming conflict, and sbcl terminates:

[...]
; compiling (DEFPACKAGE :CL-HTTP2-PROTOCOL-EXAMPLE ...)ASDF could not load cl-http2-protocol because
USE-PACKAGE #<PACKAGE "CL+SSL"> causes name-conflicts in
#<PACKAGE "CL-HTTP2-PROTOCOL-EXAMPLE"> between the following symbols:
  CL+SSL:+SSL-OP-NO-TLSV1-1+, CL-ASYNC-SSL:+SSL-OP-NO-TLSV1-1+
See also:
  The ANSI Standard, Section 11.1.1.2.5.
Unhandled NAME-CONFLICT in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                     {10005084F3}>:
  USE-PACKAGE #<PACKAGE "CL+SSL"> causes name-conflicts in
  #<PACKAGE "CL-HTTP2-PROTOCOL-EXAMPLE"> between the following symbols:
    CL+SSL:+SSL-OP-NO-TLSV1-1+, CL-ASYNC-SSL:+SSL-OP-NO-TLSV1-1+
See also:
  The ANSI Standard, Section 11.1.1.2.5

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {10005084F3}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<NAME-CONFLICT {1001B35783}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<NAME-CONFLICT {1001B35783}>)
2: (INVOKE-DEBUGGER #<NAME-CONFLICT {1001B35783}>)
3: (ERROR #<NAME-CONFLICT {1001B35783}>)
4: (SB-KERNEL:WITH-SIMPLE-CONDITION-RESTARTS ERROR NIL NAME-CONFLICT :PACKAGE #<PACKAGE "CL-HTTP2-PROTOCOL-EXAMPLE"> :SYMBOLS (CL+SSL:+SSL-OP-NO-TLSV1-1+ CL-ASYNC-SSL:+SSL-OP-NO-TLSV1-1+) :FUNCTION USE-PACKAGE :DATUM #<PACKAGE "CL+SSL">)
5: (NAME-CONFLICT #<PACKAGE "CL-HTTP2-PROTOCOL-EXAMPLE"> USE-PACKAGE #<PACKAGE "CL+SSL"> CL+SSL:+SSL-OP-NO-TLSV1-1+ CL-ASYNC-SSL:+SSL-OP-NO-TLSV1-1+)
6: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN USE-PACKAGE))
7: ((FLET "WITHOUT-INTERRUPTS-BODY-29" :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
8: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN USE-PACKAGE) {800FFCBDB}> #<SB-THREAD:MUTEX "Package Graph Lock" owner: #<SB-THREAD:THREAD "main thread" RUNNING {10005084F3}>> T NIL)
9: (USE-PACKAGE (#<PACKAGE "COMMON-LISP"> #<PACKAGE "ALEXANDRIA.1.0.0"> #<PACKAGE "ANAPHORA"> #<PACKAGE "BABEL"> #<PACKAGE "CL-ASYNC"> #<PACKAGE "CL-ASYNC-SSL"> #<PACKAGE "PURI"> #<PACKAGE "CL+SSL"> #<PACKAGE "CL-HTTP2-PROTOCOL-UTIL"> #<PACKAGE "CL-HTTP2-PROTOCOL">) #<PACKAGE "CL-HTTP2-PROTOCOL-EXAMPLE">)
10: (SB-IMPL::UPDATE-PACKAGE #<PACKAGE "CL-HTTP2-PROTOCOL-EXAMPLE"> ("HTTP2-EXAMPLE") #S(SB-C:DEFINITION-SOURCE-LOCATION :NAMESTRING "/usr/home/erikn/cl-http2-protocol/packages.lisp" :INDICES 131073) NIL NIL (#<PACKAGE "COMMON-LISP"> #<PACKAGE "ALEXANDRIA.1.0.0"> #<PACKAGE "ANAPHORA"> #<PACKAGE "BABEL"> #<PACKAGE "CL-ASYNC"> #<PACKAGE "CL-ASYNC-SSL"> #<PACKAGE "PURI"> #<PACKAGE "CL+SSL"> #<PACKAGE "CL-HTTP2-PROTOCOL-UTIL"> #<PACKAGE "CL-HTTP2-PROTOCOL">) NIL NIL ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*") ("CL-HTTP2-PROTOCOL-EXAMPLE") NIL NIL "HTTP/2 draft-14/hpack-09 (h2-14) simple CL-ASYNC example client/server.")
11: ((FLET "WITHOUT-INTERRUPTS-BODY-29" :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
12: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-IMPL::%DEFPACKAGE) {800FFCE9B}> #<SB-THREAD:MUTEX "Package Graph Lock" owner: #<SB-THREAD:THREAD "main thread" RUNNING {10005084F3}>> T NIL)
13: (SB-IMPL::%DEFPACKAGE "CL-HTTP2-PROTOCOL-EXAMPLE" ("HTTP2-EXAMPLE") NIL NIL NIL ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2") NIL NIL ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*") ("CL-HTTP2-PROTOCOL-EXAMPLE") NIL NIL #S(SB-C:DEFINITION-SOURCE-LOCATION :NAMESTRING "/usr/home/erikn/cl-http2-protocol/packages.lisp" :INDICES 131073) "HTTP/2 draft-14/hpack-09 (h2-14) simple CL-ASYNC example client/server.")
14: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...) #<NULL-LEXENV>)
15: (SB-INT:SIMPLE-EVAL-IN-LEXENV (PROGN (SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...)) #<NULL-LEXENV>)
16: (EVAL-TLF (PROGN (SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...)) 3 #<NULL-LEXENV>)
17: ((FLET SB-C::FROB :IN SB-C::EVAL-COMPILE-TOPLEVEL))
18: (SB-C::EVAL-COMPILE-TOPLEVEL ((SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...)) (#1=(SB-IMPL::%DEFPACKAGE #2="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#2#)) (QUOTE NIL) ...) (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) #1#) SB-C::ORIGINAL-SOURCE-START 0 3))
19: (SB-C::PROCESS-TOPLEVEL-FORM (SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...) ((EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...)) SB-C::ORIGINAL-SOURCE-START 0 3) (:COMPILE-TOPLEVEL))
20: (SB-C::PROCESS-TOPLEVEL-PROGN ((SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...)) ((EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...)) SB-C::ORIGINAL-SOURCE-START 0 3) (:COMPILE-TOPLEVEL))
21: (SB-C::PROCESS-TOPLEVEL-FORM (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFPACKAGE #1="CL-HTTP2-PROTOCOL-EXAMPLE" (QUOTE ("HTTP2-EXAMPLE")) (QUOTE NIL) (QUOTE NIL) (QUOTE NIL) (QUOTE ("CL" "ALEXANDRIA" "ANAPHORA" "BABEL" "CL-ASYNC" "CL-ASYNC-SSL" "PURI" "CL+SSL" "HTTP2-UTIL" "HTTP2")) (QUOTE NIL) (QUOTE NIL) (QUOTE ("EXAMPLE-CLIENT" "EXAMPLE-SERVER" "*DUMP-BYTES*" "*DUMP-BYTES-STREAM*" "*DUMP-BYTES-HOOK*")) (QUOTE (#1#)) (QUOTE NIL) ...)) (SB-C::ORIGINAL-SOURCE-START 0 3) NIL)
22: (SB-C::PROCESS-TOPLEVEL-FORM (DEFPACKAGE :CL-HTTP2-PROTOCOL-EXAMPLE (:NICKNAMES :HTTP2-EXAMPLE) (:DOCUMENTATION "HTTP/2 draft-14/hpack-09 (h2-14) simple CL-ASYNC example client/server.") (:USE :CL :ALEXANDRIA :ANAPHORA :BABEL :CL-ASYNC :CL-ASYNC-SSL :PURI :CL+SSL :HTTP2-UTIL :HTTP2) (:EXPORT #:EXAMPLE-CLIENT #:EXAMPLE-SERVER #:*DUMP-BYTES* #:*DUMP-BYTES-STREAM* #:*DUMP-BYTES-HOOK*)) (SB-C::ORIGINAL-SOURCE-START 0 3) NIL)
23: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-C::SUB-COMPILE-FILE) (DEFPACKAGE :CL-HTTP2-PROTOCOL-EXAMPLE (:NICKNAMES :HTTP2-EXAMPLE) (:DOCUMENTATION "HTTP/2 draft-14/hpack-09 (h2-14) simple CL-ASYNC example client/server.") (:USE :CL :ALEXANDRIA :ANAPHORA :BABEL :CL-ASYNC :CL-ASYNC-SSL :PURI :CL+SSL :HTTP2-UTIL :HTTP2) (:EXPORT #:EXAMPLE-CLIENT #:EXAMPLE-SERVER #:*DUMP-BYTES* #:*DUMP-BYTES-STREAM* #:*DUMP-BYTES-HOOK*)) :CURRENT-INDEX 3)
24: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-C::SUB-COMPILE-FILE) {21D15C7B}> #<SB-C::SOURCE-INFO {10019443F3}> SB-C::INPUT-ERROR-IN-COMPILE-FILE)
25: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-C::SUB-COMPILE-FILE))
26: ((FLET "WITHOUT-INTERRUPTS-BODY-29" :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
27: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-C::SUB-COMPILE-FILE) {800FFD79B}> #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "main thread" RUNNING {10005084F3}>> T NIL)
28: ((FLET "LAMBDA0" :IN "SYS:SRC;COMPILER;MAIN.LISP"))
29: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
30: (SB-C::SUB-COMPILE-FILE #<SB-C::SOURCE-INFO {10019443F3}> NIL)
31: (COMPILE-FILE #P"/usr/home/erikn/cl-http2-protocol/packages.lisp" :OUTPUT-FILE #P"/usr/home/erikn/.cache/common-lisp/sbcl-1.5.4-bsd-x64/usr/home/erikn/cl-http2-protocol/packages-tmpGHU3ALSV.fasl" :VERBOSE NIL :PRINT NIL :EXTERNAL-FORMAT :UTF-8 :TRACE-FILE NIL :BLOCK-COMPILE NIL :EMIT-CFASL NIL)
32: (UIOP/UTILITY:CALL-WITH-MUFFLED-CONDITIONS #<CLOSURE (LAMBDA NIL :IN UIOP/LISP-BUILD:COMPILE-FILE*) {1001942D0B}> NIL)
33: (UIOP/PATHNAME:CALL-WITH-ENOUGH-PATHNAME #P"/usr/home/erikn/cl-http2-protocol/packages.lisp" NIL #<CLOSURE (LAMBDA (UIOP/LISP-BUILD::INPUT-FILE) :IN UIOP/LISP-BUILD:COMPILE-FILE*) {1001942C8B}>)
34: (UIOP/LISP-BUILD:COMPILE-FILE* #P"/usr/home/erikn/cl-http2-protocol/packages.lisp" :OUTPUT-FILE #P"/usr/home/erikn/.cache/common-lisp/sbcl-1.5.4-bsd-x64/usr/home/erikn/cl-http2-protocol/packages.fasl" :EXTERNAL-FORMAT :UTF-8 :WARNINGS-FILE NIL)
35: (ASDF/LISP-ACTION:PERFORM-LISP-COMPILATION #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "cl-http2-protocol" "packages">)
36: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "cl-http2-protocol" "packages">)
37: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
38: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "cl-http2-protocol" "packages">) [fast-method]
39: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1002C93063}>) [fast-method]
40: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
41: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1002C93063}>) [fast-method]
42: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "cl-http2-protocol"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
43: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "cl-http2-protocol"> :VERBOSE NIL)
44: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
45: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "cl-http2-protocol"> :VERBOSE NIL) [fast-method]
46: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP ("cl-http2-protocol") :VERBOSE NIL)
47: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
48: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP ("cl-http2-protocol") :VERBOSE NIL) [fast-method]
49: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {1002C786EB}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
50: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
51: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {1002C67B9B}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
52: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP #<ASDF/SYSTEM:SYSTEM "cl-http2-protocol"> :VERBOSE NIL) [fast-method]
53: (ASDF/OPERATE:LOAD-SYSTEM #<ASDF/SYSTEM:SYSTEM "cl-http2-protocol"> :VERBOSE NIL)
54: (ASDF/OPERATE:MODULE-PROVIDE-ASDF :CL-HTTP2-PROTOCOL)
55: ((FLET "WRAPPER4" :IN REQUIRE) ASDF/OPERATE:MODULE-PROVIDE-ASDF)
56: (SB-KERNEL:%MAP-FOR-EFFECT-ARITY-1 #<CLOSURE (FLET "WRAPPER4" :IN REQUIRE) {800FFED9B}> (ASDF/OPERATE:MODULE-PROVIDE-ASDF SB-IMPL::MODULE-PROVIDE-CONTRIB))
57: (REQUIRE :CL-HTTP2-PROTOCOL NIL)
58: (SB-INT:SIMPLE-EVAL-IN-LEXENV (REQUIRE :CL-HTTP2-PROTOCOL) #<NULL-LEXENV>)
59: (EVAL-TLF (REQUIRE :CL-HTTP2-PROTOCOL) 2 NIL)
60: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (REQUIRE :CL-HTTP2-PROTOCOL) 2)
61: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (REQUIRE :CL-HTTP2-PROTOCOL) :CURRENT-INDEX 2)
62: (SB-C::%DO-FORMS-FROM-INFO #<CLOSURE (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {10014FCFEB}> #<SB-C::SOURCE-INFO {10014FCFA3}> SB-C::INPUT-ERROR-IN-LOAD)
63: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file /usr/home/erikn/server.lisp" {10014EE7F3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
64: ((FLET SB-FASL::THUNK :IN LOAD))
65: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<CLOSURE (FLET SB-FASL::THUNK :IN LOAD) {800FFF69B}> #<SB-SYS:FD-STREAM for "file /usr/home/erikn/server.lisp" {10014EE7F3}>)
66: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /usr/home/erikn/server.lisp" {10014EE7F3}> NIL)
67: (LOAD #<SB-SYS:FD-STREAM for "file /usr/home/erikn/server.lisp" {10014EE7F3}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
68: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file /usr/home/erikn/server.lisp" {10014EE7F3}>)
69: ((FLET SB-UNIX::BODY :IN SB-IMPL::PROCESS-SCRIPT))
70: ((FLET "WITHOUT-INTERRUPTS-BODY-2" :IN SB-IMPL::PROCESS-SCRIPT))
71: (SB-IMPL::PROCESS-SCRIPT "server.lisp")
72: (SB-IMPL::TOPLEVEL-INIT)
73: ((FLET SB-UNIX::BODY :IN SAVE-LISP-AND-DIE))
74: ((FLET "WITHOUT-INTERRUPTS-BODY-7" :IN SAVE-LISP-AND-DIE))
75: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE))

unhandled condition in --disable-debugger mode, quitting

; compilation aborted after 0:00:00.018
; 
; compilation unit aborted
;   caught 2 fatal ERROR conditions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.