M>Очень может быть, что это просто личные предпочтения, как с Перлом, например
Я все таки тешу себя мыслью, что я его знаю довольно хорошо и довольно долго. Просто как-то внезапно и
резко его разлюбил.
a = [1,2,3,4,5]
b = (i*i for i in a if i % 2)
Лист компрехеншены есть и в статических языках.
M>Надеюсь когда-нибудь увидеть Биип на каком-нибудь сорфорже или гуглекоде.
Я что-то вообще не понимаю, зачем эти сайты нужны. Лежать будет здесь: http://phenopy.net,
как только запустимся, приду в себя и займусь выкладыванием в оперсорц. Бип это маленькая часть проекта.
Большая кувалда для забивания маленького обойного гвоздя.
Здравствуйте, dmz, Вы писали:
dmz>И забить даже на си.
Ты про LLVM не думал, кстати? Просто сделать retargeting под твою архитектуру (повыбрасывав всё лишнее оттуда). Получишь автоматически нормальный компилятор, а рантайм ты уже написал.
Здравствуйте, Cyberax, Вы писали:
C>Ты про LLVM не думал, кстати? Просто сделать retargeting под твою архитектуру (повыбрасывав всё лишнее оттуда). Получишь автоматически нормальный компилятор, а рантайм ты уже написал.
dmz>>И забить даже на си. C>Ты про LLVM не думал, кстати?
Думал. Только я что-то не уверен, что он может эффективно генерить код для 16-битных платформ, да и вообще как-то вопрос о применении бипа для чего либо, кроме скриптования не стоял до сих пор.
C>Получишь автоматически нормальный компилятор, а рантайм ты уже написал.
А мой чем не нормальный? Я просто думаю, что от оптимизации на уровне AST все равно не уйти, так как какие-то вещи удобнее оптимизировать там, а на уровне промежуточного кода семантика потеряется, и там ее придется восстанавливать с переменных успехом. Да и вообще это все так пока — неопределенное будущее. То есть я не уверен, что получится сильно закопаться в разработку бипа, если именно в этом не будет каких=то коммерческих перспектив.
Скоро микроконтроллеры будут все 32-битные, а там джава всякая, линукс и прочая, прочая.
dmz>>Я что-то вообще не понимаю, зачем эти сайты нужны. Лежать будет здесь: http://phenopy.net,
FR>Нередко натыкаешся на что-то интересное в поисковике и DNS Error
Оч. странно. Буду посмотреть. Да там нет сейчас ничего интересного, просто сайт где фенопи — набор api для сайтостроения на питоне лежит.
Здравствуйте, dmz, Вы писали:
C>>Ты про LLVM не думал, кстати? dmz>Думал. Только я что-то не уверен, что он может эффективно генерить код для 16-битных платформ, да и вообще как-то вопрос о применении бипа для чего либо, кроме скриптования не стоял до сих пор.
LLVM портировали под 31-битные платформы, так что я не думаю, что с 16-бит будут проблемы
C>>Получишь автоматически нормальный компилятор, а рантайм ты уже написал. dmz>А мой чем не нормальный? Я просто думаю, что от оптимизации на уровне AST все равно не уйти, так как какие-то вещи удобнее оптимизировать там, а на уровне промежуточного кода семантика потеряется, и там ее придется восстанавливать с переменных успехом. Да и вообще это все так пока — неопределенное будущее. То есть я не уверен, что получится сильно закопаться в разработку бипа, если именно в этом не будет каких=то коммерческих перспектив.
Ну так LLVM — как раз промежуточный код и есть, там достаточно информации для нормальной оптимизации.
C>LLVM портировали под 31-битные платформы, так что я не думаю, что с 16-бит будут проблемы
Ну, я в любом случае не осилю. Сейчас это не нужно, а если вдруг надо будет прикрутить нативную кодогенерацию,
то другое дело. Впрочем, с наличием парсер-генераторов или комбинаторов, функциональных языков и LLVM можно
делать новый язык в неделю Так что смысла заморачиваться с бипом, опять же, мало.
C>Ну так LLVM — как раз промежуточный код и есть, там достаточно информации для нормальной оптимизации.
Ну, я про него и говорю. Совсем отказаться от оптимизаций на уровне компилятора не получится.
Здравствуйте, dmz, Вы писали:
M>>Очень может быть, что это просто личные предпочтения, как с Перлом, например
dmz>Я все таки тешу себя мыслью, что я его знаю довольно хорошо и довольно долго. Просто как-то внезапно и dmz>резко его разлюбил.
dmz>
dmz>a = [1,2,3,4,5]
dmz>b = (i*i for i in a if i % 2)
dmz>
dmz>Лист компрехеншены есть и в статических языках.
В данном случае это не лист компрехеншен, там скобочки отличаются () и [],
это создание функционального объекта-генератора,
почти то же самое, что было написано выше через yield.
Вся хреновина помнит свой стекфрейм, а это иногда очень приятно.
M>>Надеюсь когда-нибудь увидеть Биип на каком-нибудь сорфорже или гуглекоде.
dmz>Я что-то вообще не понимаю, зачем эти сайты нужны.
Там удобный и, главное, всем привычный интерфейс взаимодействия с сообществом.
(зачем тогда опенсорс вообще?)
Ткнуть в рсс иконку на каком-нибудь github'е дело обычное и понятное,
как и написать чего-нибудь в стандартную вику или багтракалку.
M>В данном случае это не лист компрехеншен, там скобочки отличаются () и [], M>это создание функционального объекта-генератора, M>почти то же самое, что было написано выше через yield.
А, да. А это отличается, например, от ленивого вычисления?
M>Ткнуть в рсс иконку на каком-нибудь github'е дело обычное и понятное, M>как и написать чего-нибудь в стандартную вику или багтракалку.
Вики, морду к git-у и базару можно поставить свою; впрочем это все орг. моменты, все потом.
Здравствуйте, maxp, Вы писали:
dmz>>Лист компрехеншены есть и в статических языках.
M>В данном случае это не лист компрехеншен, там скобочки отличаются () и [], M>это создание функционального объекта-генератора, M>почти то же самое, что было написано выше через yield.
M>Вся хреновина помнит свой стекфрейм, а это иногда очень приятно.
В наше время это много где доступно:
Практически все имплементации языков ML-группы (Ocaml smlnj Mlton) поддерживают continuations (неформально).
Scheme поддерживает continuations по стандарту.
В луа есть корутины, которые хуже continuations, но лучше генераторов.
-- // lua
local co = coroutine
local wrap, yield = co.wrap,co.yield
local function factory(t)
return wrap(function()
for i,v in ipairs(t.a) do
if v%2~=0 then yield(v) end
end
end)
end
--// using:
local gen = factory{a={1,2,3,4,5}}
for x in gen do print(x,x) end
M>>Вся хреновина помнит свой стекфрейм, а это иногда очень приятно. Z>В наше время это много где доступно: Z>Практически все имплементации языков ML-группы (Ocaml smlnj Mlton) поддерживают continuations (неформально).
Кстати, о континюэйшенах. Я так понимаю, сделать их очень просто — просто при вызове класть на стек адрес возврата (ну и стекфрейм, наверное).
Вопрос — от них реально есть какая-нибудь прибыль? Стоит ими заморочиться или нет?
Здравствуйте, dmz, Вы писали:
dmz>Кстати, о континюэйшенах. Я так понимаю, сделать их очень просто — просто при вызове класть на стек адрес возврата (ну и стекфрейм, наверное). dmz>Вопрос — от них реально есть какая-нибудь прибыль? Стоит ими заморочиться или нет?
Треды, корутины, генераторы, бэктрекинг, ексепшены, вебсервера.
Здравствуйте, dmz, Вы писали:
dmz>Кстати, о континюэйшенах. Я так понимаю, сделать их очень просто — просто при вызове класть на стек адрес возврата (ну и стекфрейм, наверное). dmz>Вопрос — от них реально есть какая-нибудь прибыль? Стоит ими заморочиться или нет?
Continuation — это дерево биндингов (локальных переменных), вместо стека, immutable дерево. Поскольку у тебя стековая машина, continuation-ы у тебя не получатся, если ты только не будешь вызывать методы создавая под них фрейм в хипе, а не стеке (и значит, continuation внутри метода у тебя тоже не получится).
Здравствуйте, dmz, Вы писали:
M>>Continuation — это дерево биндингов (локальных переменных), вместо стека, immutable дерево. dmz>Почему дерево?
Ну потому, что продолжение должно иметь сохранённое состояние биндингов ("стека"), чтоб продолжить выполнение. При этом оно дописывает чего-то в этот "стек", может делать return, их может выполняться несколько параллельно (и они не должны портить "стек" друг другу). Иначе чем через immutable дерево это не сделать.
Здравствуйте, dmz, Вы писали:
FR>>Нередко натыкаешся на что-то интересное в поисковике и DNS Error
dmz>Оч. странно. Буду посмотреть. Да там нет сейчас ничего интересного, просто сайт где фенопи — набор api для сайтостроения на питоне лежит.
Я не про твой сайт, а вообще, все таки публичные сайты насчет этого надежнее.
dmz>>Оч. странно. Буду посмотреть. Да там нет сейчас ничего интересного, просто сайт где фенопи — набор api для сайтостроения на питоне лежит.
FR>Я не про твой сайт, а вообще, все таки публичные сайты насчет этого надежнее.
Ага, и трафик в деньги конвертируют самостоятельно.
dmz>>Оч. странно. Буду посмотреть. Да там нет сейчас ничего интересного, просто сайт где фенопи — набор api для сайтостроения на питоне лежит.
FR>Я не про твой сайт, а вообще, все таки публичные сайты насчет этого надежнее.
Смысл оперсорсных репозиториев вовсе не в надёжности, а в коммунити.
Там уже есть разработчики, для которых проект и делается открытым.
И эти самые разработчики не будут ходить по десятками разных сайтов,
они будут пользоваться чем-то унифицированным.