LINUX.ORG.RU

История изменений

Исправление Bad_ptr, (текущая версия) :

How to make Lisp go faster than C

2. На самом деле не только simple-array.
3, Проблема не в «fill-pointer», а в «adjustable».

Пруфы-то есть? Где бенчи?
A Critique of Common Lisp

Тут пишут:

4.7 Arrays
COMMON LISP arrays are incredibly complex. As a concession to non-micro-coded machines, vectors, simple vectors, and simple strings were included as types. The resulting tangle of types (all simple vectors are vectors, all simple strings are strings, all strings are vectors, but no simple strings are simple vectors) is clearly a political compromise and not something that would exist after careful design.
Simple vectors are a fixed-size set of pointers in contiguous locations; they are called simple because they don’t have fill pointers, are not displaced, and are not adjustable in size. Cleary such vectors can be implemented much more efficiently on stock hardware than can general arrays. Unfortunately the default assumption is that a vector is not simple unless explicitly declared simple—making the programmer using stock hardware have to work harder to acheive efficiency, and making programs which work well on micro-coded machines perform poorly on stock hardware.

И везде говорят о симпл-аррей, а аррэй с филл-поинтером уже не симпл.

Исходная версия Bad_ptr, :

How to make Lisp go faster than C

2. На самом деле не только simple-array.
3, Проблема не в «fill-pointer», а в «adjustable».

Пруфы-то есть? Где бенчи?
A Critique of Common Lisp

Тут пишут:

4.7 Arrays
COMMON LISP arrays are incredibly complex. As a concession to non-micro-coded machines, vectors, simple vectors, and simple strings were included as types. The resulting tangle of types (all simple vectors are vectors, all simple strings are strings, all strings are vectors, but no simple strings are simple vectors) is clearly a political compromise and not something that would exist after careful design.
Simple vectors are a fixed-size set of pointers in contiguous locations; they are called simple because they don’t have fill pointers, are not displaced, and are not adjustable in size. Cleary such vectors can be implemented much more efficiently on stock hardware than can general arrays. Unfortunately the default assumption is that a vector is not simple unless explicitly declared simple—making the programmer using stock hardware have to work harder to acheive efficiency, and making programs which work well on micro-coded machines perform poorly on stock hardware.

И везде говорят о симпл-аррей, а аррэй с филл-поинтером уже не симпл.