LINUX.ORG.RU

Юбилей у SBCL - 10 лет!

 , ,


0

1

Замечательной реализации Common Lisp'a SBCL исполняется 10 лет.

10 лет назад, 14 декабря 1999 года, в рассылке Common Lisp реализации CMU CL, было анонсировано, что William Harold'у удалось собрать CMU CL систему, имея лишь одну из ANSI-систем для кросс-компиляции. Также было заявлено о внутренних изменениях в реализации и уход от некоторых внешних компонентов и библиотек, отсутствовавших в стандарте Common Lisp. Это позволило уменьшить ядро Common Lisp и портировать его на другие операционные системы.

Все эти наработки дали старт новой ветке развития Common Lisp реализации, названной Steel Bank Common Lisp (SBCL). В то время, как SBCL работал только на Linux (2.х.х) для х86 архитектуры, была начата работа по портированию на FreeBSD.

SBCL's 10th Anniversary Workshop

SBCL official website

>>> Подробности



Проверено: anonymous_incognito ()
Последнее исправление: shahid (всего исправлений: 2)

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

> Ну разумеется, я имел ввиду только императивный выч. процесс.

's/ я / Кнут /'

state sicken

:)

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

> Народ, вы явно не схватываете суть. Посмотрите, как у Кнута в самом начале первого тома описывается вычислительный процесс.

это я схватил больше 20 лет назад

а сейчас меня интересует совсем другое

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от anonymous

Кнут как раз математически корректно и описал императивный вычислительный процесс: каждый раз x - это новый x, а старого x уже нет

Любой математик за x = x + 1 башку оторвет. И труднее всего было объяснить, что старого X уже нет.

«Математически» этот алгоритм описывается вот так:

НОД(x,y) = { x, где y = 0
           { НОД(y,( x % y ))

Или ты в у нивере где-либо в матане или выводах в физике встречал итеративные обозначения? Даже значков кучи нипридумывали вроде ∑,∫,и т.д.

r ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

но интересуют только варианты с *мутабельным* прямоугольником, а иначе получится хаскель :-(

Будет нарушение LSP, если не воспринимать его чисто буквально, а по сути.

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

> Любой математик за x = x + 1 башку оторвет. И труднее всего было объяснить, что старого X уже нет.

Ну так и я про то же. Что смутило-то? Эта четвёрка (состояние, ввод, вывод, алгоритм)? Это четвёрка множеств, а не значений. Считайте их типами. А значения выглядят так: q0, f(q0) = q1, f(q1) = q2, ... f(qn-1) = f(qn), f(qn) = qn — завершение вычисления, неподвижная точка.

Или ты в у нивере где-либо в матане или выводах в физике встречал итеративные обозначения?

Не поверите, но да. На дискретной математике, когда я предложил свой (рекурсивный с аккумулятором) вариант решения одной задачи, меня так, видимо, никто и не понял. Официально решили с счётчиками и циклами :(

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

> Будет нарушение LSP, если не воспринимать его чисто буквально, а по сути.

а вот хочется и LSP, и мутабельности прямоугольника...

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

есть еще вариация вида «вектор из произвольного числа элементов и его потомок вектор из построянного числа»

у меня в голове крутятся только общущения вокру dependent types, и прочего специфицирования понимания наследования. То есть квадрат это такой прямоугольник который..., и не прочий.

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

> Любой математик за x = x + 1 башку оторвет.

Почему же? Алеф-нуль, например :)

balodja ★★★
()
Ответ на: комментарий от www_linux_org_ru

> однако, при попытке применить это, например рассмотреть «множество всех множеств», получаем жестокий облом

Ага, а потом множество всех множеств, которые не являются элементами самих себя? :) Уже было в Симпсонах(с). Так мы получили теорию типов.

либо к конструктивным идеям «мы можем только строить из того что есть, а изначально у нас есть zero и succ»

Ба, а тут уже попахивает интуиционизмом. btw, я так и не смог в свое время понять, что за шляпа такая «свободно становящаяся последовательность». Слишком мало наркотиков было принято мной тогда. Может кто покидает вразумительными ссылками? Раз уж такая пьянка тут понеслась.

balodja ★★★
()
Ответ на: комментарий от anonymous

> На дискретной математике, когда я предложил свой (рекурсивный с аккумулятором) вариант решения одной задачи

Аккумулятор все испортил, точно тебе говорю. «Люсенька, родная, зараза, сдались тебе эти макароны»(с)

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

Слишком мало наркотиков было принято мной тогда

я в процессе повышения концентрации, и интуиционизм пока что воспринимаю на уровне, гм, интуиции

jtootf ★★★★★
()
Ответ на: комментарий от balodja

> Числовой континуум трактуется не как совокупность отдельных точек, а как «среда становления», поток измельчающихся рациональных интервалов. Каждое отдельное интуиционистское вещественное число определяется как свободно становящаяся последовательность неограниченно уменьшающихся вложенных друг в друга рациональных интервалов.

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от balodja

ну и еще

Hilbert's program was widely held to have been seriously damaged by Gödel's Second Incompleteness Theorem, according to which the consistency of arithmetic was unprovable within arithmetic itself. But a consequence of Meyer's construction was that within his arithmetic R# it was demonstrable by simple finitary means that whatever contradictions there might happen to be, they could not adversely affect any numerical calculations.

ахренеть.

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

добавлю, что мои филосовские взгляды согласуются с возможностью наличия настоящих противоречий вида A && not A

почему я раньше об этом не задумывался?

ну и еще проглядывает явная польза Dialetheism-а для программирования

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от jtootf

> я в процессе повышения концентрации, и интуиционизм пока что воспринимаю на уровне, гм, интуиции

интуиционизм не соглашается с законом исключения третьего

Предположим, что существует теория, согласно которой все вороны чёрные. Согласно формальной логике, эта теория эквивалентна теории, что все предметы, не являющиеся чёрными, не являются воронами. Если человек увидит много чёрных воронов, то его уверенность в том, что эта теория верна, увеличится. Если же он увидит много красных яблок, то это увеличит его уверенность в том, что все не чёрные предметы не являются воронами, и, согласно вышесказанному, должно также увеличить и его уверенность в том, что все вороны чёрные.

поправочка (если не ошибаюсь): s/формальной логике/закону исключения третьего/

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

> добавлю, что мои филосовские взгляды согласуются с возможностью наличия настоящих противоречий вида A && not A

вот только я раньше считал, что из этого должен происходить и происходит explosion, а сейчас считаю, что вопрос требует исследования

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от yoghurt

>Объектную модель лиспа сделали по образу и подобию смолтоковской, неудачный вброс

Хм, в смоллтоке были generic functions/multiple dispatch? Не знал, не знал

dmitry_vk ★★★
()
Ответ на: комментарий от www_linux_org_ru

интуиционизм не соглашается с законом исключения третьего

капитан очевидность наносит ответный удар?

jtootf ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

вот только я раньше считал, что из этого должен происходить и происходит explosion

есть хороший пример с теоремой Ферма в 1990, скажем, году: если взять выражение, постулируемое теоремой, за A, то утверждение (A && !A), вообще говоря, ложно - так как теорема (на тот момент) не доказана и не опровергнута

jtootf ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

> Предположим, что существует теория, согласно которой все вороны чёрные. Согласно формальной логике, эта теория эквивалентна теории, что все предметы, не являющиеся чёрными, не являются воронами. Если человек увидит много чёрных воронов, то его уверенность в том, что эта теория верна, увеличится. Если же он увидит много красных яблок, то это увеличит его уверенность в том, что все не чёрные предметы не являются воронами, и, согласно вышесказанному, должно также увеличить и его уверенность в том, что все вороны чёрные.

Ненавижу этот книжный пример. Люто-бешено

Чтобы доказать тезис, нужно либо собрать всех ворон и удостовериться, что они черные, либо собрать всех не-ворон и удостовериться, что они не черные. Так сколько же вариантов нужно для уверенности перебрать в первом случае, а сколько — во втором?

По-моему формальная логика здесь не при делах. Типичное давление на «интуиционное» мышление, но только не в том плане, который имеют ввиду интуиционисты. Давление на экспериментальность. Человек интуитивно откидывает малоосуществимые эксперименты.

balodja ★★★
()
Ответ на: комментарий от www_linux_org_ru

> хех. я всегда воспринимал вещественные числа как бесконечные десятичные дроби, и считаю, что так его и надо строить (обычные свойства вещественных чисел доказываются без труда)

А как же пополнение метрического пространства рациональных чисел? Ну или хотя бы сечение Дедекинда?

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

> Чтобы доказать тезис, нужно либо собрать всех ворон и удостовериться, что они черные, либо собрать всех нечерных и удостовериться, что они не являются воронами. Так сколько же вариантов нужно для уверенности перебрать в первом случае, а сколько — во втором?

fixed

balodja ★★★
()

Поздравляю всех адептов Lisp :)

mutronix ★★★★
()
Ответ на: комментарий от PowerPC

>Программирование = математика.

руки прочь от математики.

vasaka ★★★
()

кстати, в попытках хоть что-то сделать на лиспе натолкнулся на то что либы с cliki частенько не хотят ставиться и их надо где-то искать и прикручивать самостоятельно.

это у меня руки кривые, или у cliki действительно плоховато с актуальностью базы пакетов?

vasaka ★★★
()
Ответ на: комментарий от dmitry_vk

generic functions

В какой то степени, да. Хотя там нет функций как таковых, только методы и блоки кода, но можно любому объекту послать любое сообщение, и объект уже сам решит, что ему делать.

(some-action some-object)
someObject perform: #someAction

Суть близка

multiple dispatch

Integer>>+ aNumber
    ^ aNumber addInteger: self

Float>>+ aNumber
    ^ aNumber addFloat: self

Integer>>addInteger: anInteger
    "implementation here"

Float>>addFloat: aFloat
    "...and here"

Как-то примерно так

yoghurt ★★★★★
()

Очень нужно. Я когда-то давным-давно лисп изучал, за пару вечерков накатал подкидного дурака на двоих. Или то пролог был...

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

>эта новость определённо написана with an alien technology, ибо гуманоидами читается с заметным трудом

она просто переведена с лиспа на убогонький недоязычок.

dn2010 ★★★★★
()
Ответ на: комментарий от PowerPC

>Пусть откроет для себя Symbolics Genera

если открыть дверь кунсткамеры, то можно и более queer вещи обнаружить. хотя, это да, очень странный фрукт.

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

вероятно можно автоматизировать процесс метапрограммированием, я в те дебри пока не вдавался =)

yoghurt ★★★★★
()
Ответ на: комментарий от balodja

> А как же пополнение метрического пространства рациональных чисел? Ну или хотя бы сечение Дедекинда?

результат то же самый. и что?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от balodja

> Чтобы доказать тезис, нужно либо собрать всех ворон и удостовериться, что они черные, либо собрать всех нечерных и удостовериться, что они не являются воронами. Так сколько же вариантов нужно для уверенности перебрать в первом случае, а сколько — во втором?

Т.е. конструктивно, с точки зрения опытной проверки, это два разных утверждения с двумя разными трудозатратами. Учитывая то, что наши знания базируются на опытной проверке и обладают некоторой неточностью, следовало бы *различать* эти 2 утверждения.

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

следовало бы *различать* эти 2 утверждения, а может и вообще не считать эквивалентными.

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

Можно ли в лиспе сделать х глобальной переменной и указать ей тип, чтобы:

1. переполнение при сложении и сдвиге не проверялось (нужна скорость)

В стандарте про машинные типы и взаимодействие с ними не сказано ни слова. В SBCL можно, если указать (safety 0).

2. операции боксинга-разбоксинга не осуществлялись (нужна скорость)

Если из temporary регистра значение не выходит (цикл какой-нибудь), то SBCL боксинг/разбоксинг не делает. В остальном, см. выше.

Мешает ли сделать так что-либо в каком-то из стандартов лиспа, или это недопиленные реализации?

Стандартная реализация делает всё то, что описано в стандарте. Регистров и непосредственно адресуемой памяти в стандарте не описано. Поэтому Лисп спокойно ложится практически на любой тип рантайма, который существует. Например, ABCL работает под JVM, в которой для программы доступа к железу нет.

Что касается специфичных для реализации решений, то я где-то год назад постил такой кусок кода в теме, в которой сам Саныч на лиспе пример наваял. Там для SBCL в компилятор прямо из программы добавляется низкоуровневый тип и операции над ним.

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

> Если из temporary регистра значение не выходит (цикл какой-нибудь), то SBCL боксинг/разбоксинг не делает. В остальном, см. выше.

переменная глобальная, будет меняться из 2 функций. что с боксингом?

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

> результат то же самый. и что?

Хер бы там. man p-адические числа. А для начала советую попытаться доказать, что 0.(9) = 1.0 в той постановке, если определять вещественные числа, как десятичные дроби.

balodja ★★★
()
Ответ на: комментарий от mv

даже точнее — http://www.linux.org.ru/jump-message.jsp?msgid=4254952&cid=4256112

там love5an в зависимости от оптимизации получал то 28, то 29 битов, и (далее по треду) пытался убедить меня, что 32 по стандарту не получится. я честно говоря офигел. теперь тут спрашиваю.

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

> Учитывая то, что наши знания базируются на опытной проверке и обладают некоторой неточностью, следовало бы *различать* эти 2 утверждения.

То есть. Тебе сказали, что в коробке лежат геометрические фигуры, причем все шары красные. Ты проковырял маленькую дырочку, увидел что-то черное. Ты не сделаешь вывод, что это не шар? Это очень странная логика должна быть.

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

> А для начала советую попытаться доказать, что 0.(9) = 1.0 в той постановке, если определять вещественные числа, как десятичные дроби.

а это надо ввести в определение эквивалентности, а не доказывать

можно это обосновать тем, что без этого уж точно полноты не видать

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от balodja

> Тебе сказали, что в коробке лежат геометрические фигуры, причем все шары красные. Ты проковырял маленькую дырочку, увидел что-то черное. Ты не сделаешь вывод, что это не шар? Это очень странная логика должна быть.

Кто мне сказал? Непогрешимый Всезнающий Бла Бла Бла?

А имеющаяся инфа идет с ошибками и упрощающими огрублениями.

(Даже вот эквивалентность двух утверждений — это тоже огрубление, правда вопрос стоит немного по-другому)

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

Ни-ни-ни, Девид Блейн. Если так каждую мелочь вносить в определения, очень скоро можно будет вешаться на них.

balodja ★★★
()
Ответ на: комментарий от www_linux_org_ru

> Кто мне сказал? Непогрешимый Всезнающий Бла Бла Бла?

А имеющаяся инфа идет с ошибками и упрощающими огрублениями.

Опять же ни-ни-ни. Допустим, что сказал это тот, кто упаковывал коробку и он не врет. А то это уже нечеткая логика получается. Интуиционисты ребята чоткие, у них точно нет таких замашек. Фуззи лоджик — это явно не в ту степь.

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

> А то это уже нечеткая логика получается. Интуиционисты ребята чоткие, у них точно нет таких замашек.

Мне пофиг на интуиционистов. Мне интересно как думаю я.

И данный пример не является доказательством, а только наводящим соображением.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от balodja

> Ни-ни-ни, Девид Блейн. Если так каждую мелочь вносить в определения, очень скоро можно будет вешаться на них

Может ты определишь, что есть мелочь, а что — не мелочь?

По-моему, возможность конструктивный подхода — не мелочь, и окупается даже при необходимости ввести сотню мелочей в определении действительного числа.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от balodja

> Фуззи лоджик — это явно не в ту степь.

а тут не фуззи ложик совсем

тут вопрос «кому/чему больше верить в случае противоречия» — закону исключения третьего и непротиворечивости нашей теории, или ...

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

переменная глобальная, будет меняться из 2 функций. что с боксингом?

В SBCL? Разумеется, боксинг будет.

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