I decided to upgrade from 20090124 snapshot to 0.6.0 release today, and noticed the netbsd fixes I proposed were checked in, so tried using it, yet there would be a "NO-OP" build error of some kind, which wouldn't occur if I re-evaluated the require form at repl, but then an assertion failure would occur in SB-C about a SIGNED-32 type.
I looked again at the source and noticed the fix for netbsd wasn't applied the same as I had applied it on my tree. I had kept :pointer for the udata kevent structure rather than :intptr_t. I thus tried the same on 0.6.0 and it works fine.
I propose the attached diff. Thanks,
On Mon, 2009-02-16 at 18:47 -0500, Matthew Mondor wrote:
I decided to upgrade from 20090124 snapshot to 0.6.0 release today, and noticed the netbsd fixes I proposed were checked in, so tried using it, yet there would be a "NO-OP" build error of some kind, which wouldn't occur if I re-evaluated the require form at repl, but then an assertion failure would occur in SB-C about a SIGNED-32 type.
I looked again at the source and noticed the fix for netbsd wasn't applied the same as I had applied it on my tree. I had kept :pointer for the udata kevent structure rather than :intptr_t. I thus tried the same on 0.6.0 and it works fine.
Ok, I changed this back. Could you post a backtrace, btw ?
On Tue, 17 Feb 2009 02:25:31 +0100 Stelian Ionescu stelian.ionescu-zeus@poste.it wrote:
Ok, I changed this back. Could you post a backtrace, btw ?
The problem was fixed by using :pointer, yet here still are backtraces:
First (require 'iolib) (compilation time)
erred while invoking #<COMPILE-OP NIL {61FEAB21}> on #<CL-SOURCE-FILE "backend-kqueue" {6182C771}> [Condition of type ASDF:COMPILE-FAILED]
Restarts: 0: [RETRY] Retry performing #<ASDF:COMPILE-OP NIL {61FEAB21}> on #<ASDF:CL-SOURCE-FILE "backend-kqueue" {6182C771}>. 1: [ACCEPT] Continue, treating #<ASDF:COMPILE-OP NIL {61FEAB21}> on #<ASDF:CL-SOURCE-FILE "backend-kqueue" {6182C771}> as having been successful. 2: [RETRY] Retry SLIME REPL evaluation request. 3: [ABORT] Return to SLIME's top level. 4: [ABORT] Exit debugger, returning to top level.
Backtrace: 0: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {61FEAB21}> SB-DEBUG::ARG-3 = #<ASDF:CL-SOURCE-FILE "backend-kqueue" {6182C771}> 1: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1.)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {61FEAB21}> SB-DEBUG::ARG-3 = #<ASDF:CL-SOURCE-FILE "backend-kqueue" {6182C771}> 2: ((LAMBDA ())) [No Locals] 3: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK)) [No Locals] 4: (SB-C::%WITH-COMPILATION-UNIT #<CLOSURE (LAMBDA #) {61986D5D}>)[:EXTERNAL] Locals: SB-DEBUG::ARG-0 = 1 SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA ()) {61986D5D}> 5: (ASDF:OPERATE ASDF:LOAD-OP IOLIB)[:EXTERNAL] Locals: SB-DEBUG::ARG-0 = 2 SB-DEBUG::ARG-1 = ASDF:LOAD-OP SB-DEBUG::ARG-2 = IOLIB 6: (ASDF::MODULE-PROVIDE-ASDF IOLIB) Locals: SB-DEBUG::ARG-0 = IOLIB 7: ((LAMBDA (#:G[REQUIRE]18)) ASDF::MODULE-PROVIDE-ASDF) Locals: SB-DEBUG::ARG-0 = ASDF::MODULE-PROVIDE-ASDF 8: (SB-IMPL::%MAP-FOR-EFFECT-ARITY-1 #<CLOSURE (LAMBDA #) {61BF9E65}> (ASDF::MODULE-PROVIDE-ASDF SB-IMPL::MODULE-PROVIDE-CONTRIB)) Locals: SB-DEBUG::ARG-0 = #<CLOSURE (LAMBDA (#:G[REQUIRE]18)) {61BF9E65}> SB-DEBUG::ARG-1 = (ASDF::MODULE-PROVIDE-ASDF SB-IMPL::MODULE-PROVIDE-CONTRIB) 9: (REQUIRE IOLIB NIL) Locals: SB-IMPL::MODULE-NAME = IOLIB SB-IMPL::PATHNAMES = NIL 10: (SB-INT:SIMPLE-EVAL-IN-LEXENV (REQUIRE 'IOLIB) #<NULL-LEXENV>) Locals: SB-DEBUG::ARG-0 = (REQUIRE 'IOLIB) SB-DEBUG::ARG-1 = #<NULL-LEXENV> --more--
Selecting 0 from there will obviously keep failing, but let's say I use 2, it compiles again without error. Then if trying to use the kqueue backend:
The value #.(SB-SYS:INT-SAP #X00000000) is not of type (SIGNED-BYTE 32). [Condition of type TYPE-ERROR]
Restarts: 0: [RETRY] Retry SLIME REPL evaluation request. 1: [ABORT] Return to SLIME's top level. 2: [ABORT] Exit debugger, returning to top level.
Backtrace: 0: (SB-C::%COMPILE-TIME-TYPE-ERROR (#.(SB-SYS:INT-SAP #X00000000)) (SIGNED-BYTE 32) #<unavailable argument>) Locals: SB-DEBUG::ARG-0 = (#.(SB-SYS:INT-SAP #X00000000)) SB-DEBUG::ARG-1 = (SIGNED-BYTE 32) SB-DEBUG::ARG-2 = :<NOT-AVAILABLE> 1: (SB-C::%COMPILE-TIME-TYPE-ERROR (#.(SB-SYS:INT-SAP #X00000000)) (SIGNED-BYTE 32) #<unavailable argument>)[:EXTERNAL] Locals: SB-DEBUG::ARG-0 = 3 SB-DEBUG::ARG-1 = (#.(SB-SYS:INT-SAP #X00000000)) SB-DEBUG::ARG-2 = (SIGNED-BYTE 32) SB-DEBUG::ARG-3 = :<NOT-AVAILABLE> 2: (IO.MULTIPLEX::DO-KQUEUE-EVENT-REQUEST ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #S(IO.MULTIPLEX::FD-ENTRY ..) SB-DEBUG::ARG-2 = 0 SB-DEBUG::ARG-3 = 1 3: ((SB-PCL::FAST-METHOD IO.MULTIPLEX::MONITOR-FD (IO.MULTIPLEX:KQUEUE-MULTIPLEXER T)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<kqueue(2) multiplexer> SB-DEBUG::ARG-3 = #S(IO.MULTIPLEX::FD-ENTRY ..) 4: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1.)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<kqueue(2) multiplexer> SB-DEBUG::ARG-3 = #S(IO.MULTIPLEX::FD-ENTRY ..) 5: ((SB-PCL::FAST-METHOD IO.MULTIPLEX:SET-IO-HANDLER (IO.MULTIPLEX:EVENT-BASE T T T)) ..)[:EXTERNAL] Locals: SB-DEBUG::ARG-0 = 6 SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = :<NOT-AVAILABLE> SB-DEBUG::ARG-3 = #<event base, 1 FDs monitored, using: #<kqueue(2) multiplexer> {61851919}> SB-DEBUG::ARG-4 = 6 SB-DEBUG::ARG-5 = :READ SB-DEBUG::ARG-6 = #<CLOSURE (LAMBDA (MM-SERVER::FD MM-SERVER::EVENT ERROR)) {61D682B5}> 6: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1. SB-PCL::.ARG2. SB-PCL::.ARG3. SB-INT:&MORE SB-PCL::.DFUN-MORE-CONTEXT. SB-PCL::.DFUN-MO$ Locals: SB-PCL::.ARG0. = #<event base, 1 FDs monitored, using: #<kqueue(2) multiplexer> {61851919}> SB-PCL::.ARG1. = 6 SB-PCL::.ARG2. = :READ SB-PCL::.ARG3. = #<CLOSURE (LAMBDA (MM-SERVER::FD MM-SERVER::EVENT ERROR)) {61D682B5}> SB-PCL::.DFUN-MORE-CONTEXT. = -288429853 SB-PCL::.DFUN-MORE-COUNT. = 0 7: (MM-SERVER::BASE-ADD-LISTENER #<passive IPv6 stream socket waiting @ ::/7777 {61C21D41}>) 8: (MM-SERVER:SERVER-INIT #<MM-HTTPD::HTTP-CONFIGURATION {617C21F9}>) 9: (MM-HTTPD:HTTPD-INIT #<MM-HTTPD::HTTP-CONFIGURATION {617C21F9}>) 10: (MM-HTTPD::HTTPD-TEST-INIT)
On Mon, 16 Feb 2009 18:47:45 -0500 Matthew Mondor mm_lists@pulsar-zone.net wrote:
I also suggest the following diff, since ADD-TIMER returns this type and it's necessary to store it if we're going to use also exported REMOVE-TIMER, to which it has to be supplied (attached diff)
On Tue, 17 Feb 2009 01:03:42 -0500 Matthew Mondor mm_lists@pulsar-zone.net wrote:
I also suggest the following diff, since ADD-TIMER returns this type and it's necessary to store it if we're going to use also exported REMOVE-TIMER, to which it has to be supplied (attached diff)
Oh, I forgot to diff from the root tree for convenience; This belongs into the multiplexer's directory, btw :)