LINUX.ORG.RU

Вопрос вам, общие лисцперы

 


0

2

А вот как вы считаете, должен ли ридер читать такую конструкцию? А стандарт как считает?

`#(#x4f #x67 #x67 #x53 ; OggS
        #x00 #x02           ; First page of logical bitstream
        #x00 #x00 #x00 #x00
        #x00 #x00 #x00 #x00 ; 0 absolute granule position
        #xbe #xba #xfe #xca ; Stream serial number
        #x00 #x00 #x00 #x00 ; Page number
        #x93 #x11 #xba #x36 ; CRC
        #x02                ; 2 segments
        #xff #x00           ; 1 255-bytes packet
        ,@(loop repeat 256 collect 1))

Дело в том, что старые sbcl'и читают это одним образом, а новые - другим


Ответ на: комментарий от LeninGad

Не удивлюсь, если когда-то такое считывалось как

Это simple-vector. Дело в том, что в вашем sbcl `#(1 2 ,@(loop repeat 3 collect 1)) даст #(1 2 1 1 1), а в sbcl 1.2.2 будет #(1 2 (1 1 1)). Такие дела. А clisp схавает в репле, но не будет грузить (по load)

b-stern
() автор топика
Ответ на: комментарий от b-stern

Должно быть строго #(1 2 1 1 1), по стандарту всё однозначно и допустимо. Уверены, что не пропустили @ при тестировании в sbcl 1.2.2?

Проверил в sbcl 1.2.3.debian, получил ожидаемое.

А что clisp говорит?

LeninGad
()
Ответ на: комментарий от LeninGad

Проверил в sbcl 1.2.3.debian

Может пофиксили, ща проверю.

А что clisp говорит?

Да в отладчик падает где-то внутри ридера

b-stern
() автор топика
Ответ на: комментарий от LeninGad

Проверил в sbcl 1.2.2 дебиановской сборки:

* `#(1 2 3 ,@(loop repeat 3 collect 1))

#(1 2 3 (1 1 1))
* `(1 2 3 ,@(loop repeat 3 collect 1))

(1 2 3 1 1 1)

В clisp 2.49

[1]> `#(1 2 3 ,@(loop repeat 3 collect 1))
#(1 2 3 1 1 1)

И, для полноты картины, gcl 2.6.11

> `#(1 2 3 ,@(loop repeat 3 collect 1))

#(1 2 3 1 1 1)

kim-roader ★★
()
Последнее исправление: kim-roader (всего исправлений: 1)
Ответ на: комментарий от buddhist

Да никакой мистики, там в истории коммитов если посмотреть, так там очень сильно ридер потрогали, а ща, походу, исправляют баги

b-stern
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.