[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31118: 27.0.50; Can't load/compile websocket in 32bit master
From: |
Stefan Monnier |
Subject: |
bug#31118: 27.0.50; Can't load/compile websocket in 32bit master |
Date: |
Mon, 09 Apr 2018 23:03:13 -0400 |
Package: Emacs
Version: 27.0.50
The websocket package available from GNU ELPA can't be used in a 32bit
build of master any more because of the #xffffffff constant in its code:
(defun websocket-to-bytes (val nbytes)
"Encode the integer VAL in NBYTES of data.
NBYTES much be a power of 2, up to 8.
This supports encoding values up to 536870911 bytes (2^29 - 1),
approximately 537M long."
(when (and (< nbytes 8)
(> val (expt 2 (* 8 nbytes))))
;; not a user-facing error, this must be caused from an error in
;; this library
(error "websocket-to-bytes: Value %d could not be expressed in %d bytes"
val nbytes))
(if (= nbytes 8)
(progn
(let ((hi-32bits (lsh val -32))
;; Test for systems that don't have > 32 bits, and
;; for those systems just return the value.
(low-32bits (if (= 0 (expt 2 32))
val
(logand #xffffffff val))))
(when (or (> hi-32bits 0) (> (lsh low-32bits -29) 0))
(signal 'websocket-frame-too-large val))
(bindat-pack `((:val vec 2 u32))
`((:val . [,hi-32bits ,low-32bits])))))
(bindat-pack
`((:val ,(cond ((= nbytes 1) 'u8)
((= nbytes 2) 'u16)
((= nbytes 4) 'u32)
;; Library error, not system error
(t (error "websocket-to-bytes: Unknown NBYTES: %S"
nbytes)))))
`((:val . ,val)))))
The code used to compile&run correctly before both on 32bit and 64bit
systems (but admittedly, it failed to run correctly on 64bit systems
after having been compiled on a 32bit system).
Stefan
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master,
Stefan Monnier <=
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master, Paul Eggert, 2018/04/10
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master, Stefan Monnier, 2018/04/10
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master, Stefan Monnier, 2018/04/11
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master, Basil L. Contovounesios, 2018/04/11
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master, Paul Eggert, 2018/04/11
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master, Stefan Monnier, 2018/04/11
- bug#31118: 27.0.50; Can't load/compile websocket in 32bit master, Glenn Morris, 2018/04/11