crypt of decay - никомуненужное, вести с полей битв [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

никомуненужное, вести с полей битв [Jan. 10th, 2012|08:11 am]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|]

Bob обзавёлся итераторами для массивов и строк, а также я туда втащил библиотеку строкового pattern matching'а, нагло упизженую у Lua. в связи с этим немного поменялся API (как будто это кого-то ебёт, ага). собственно, теперь итераторы стало создавать намного проще.

weak links там уже есть (хоть и немного черезжопно), а вот стоит ли привинчивать финализаторы — не знаю. вообще, cheney's gc мне не очень нравится, но с другой стороны — удобен и фрагментации позволяет избежать. хотя, наверное, стоит попробовать поменять его на generational gc в стиле Lua с write barriers (и, возможно, без emergency gc — Lua вон без него жила себе и нормалёк).

по дороге заметил потенциальный баг в обработке аргументов некоторых встроеных функций — возможно, именно из-за него Bob иногда валится с забавными ошибками. виноват, опять же, cheney's gc, который любит двигать объекты туда-сюда. возможно, стоит выделить для строк (и массивов?) отдельные области.
Linkmeow!

Comments:
[User Picture]
From:[info]aiveforever
Date:January 10th, 2012 - 08:20 am

(Link)
привинти и поменяй %-))

а почему "никому ненужное"?
ты ж кодишь, знамо кому-то нужно %-)
[User Picture]
From:[info]steinkrauz
Date:January 10th, 2012 - 09:31 am
(Link)
Я, конечно, глубоко не смотрел, но на первый взгляд жизненный цикл объектов лучше ложится на generational GC. Semispace GCs больше подходит утилям, где объекты создаются/живут равномерным потоком.
[User Picture]
From:[info]ketmar
Date:January 10th, 2012 - 09:42 am
(Link)
ну, тут в принципе не столь важна эффективность, сколь удобство. чейновый остался от оригинального автора, я его только чуть привёл в нормальный вид. дальше, кстати, DMB перешёл на обычный mark-sweep с несколькими пулами для разных объектов.

как таковой generational, думаю, по скорости особого выигрыша не даст, а код у него сложнее и write barriers придётся натыкать. поэтому я и в раздумьях весь. но и плюсы весомые, конечно: как минимум перестанут «ездить» указатели. зато появится фрагментация.

надо подумать и сделать гибрид, видимо: чейни с несколькими пулами и incremental mark-sweep с постепенным переездом в пулы. указатели таки будут «ездить», но, по-идее, эта схема без фрагментации и без stop-the-world (ну, то есть, со стопом, но не так часто). в принципе, оно в хуй не впилось, но забавно будет реализовать и ржать потом с тех, кто попытается в этом коде разобраться (и что хуже — понять, зачем я это сделал таким образом).
[User Picture]
From:[info]aiveforever
Date:January 10th, 2012 - 03:37 pm
(Link)
Силли-сад сказал, что ты знаешь, что такое Юникод. спрашиваю - что сие?? %-))

(гуглила, но мозг болит и не понимает)
[User Picture]
From:[info]ketmar
Date:January 10th, 2012 - 04:16 pm
(Link)
[User Picture]
From:[info]aiveforever
Date:January 10th, 2012 - 04:20 pm

ня))) к-)

(Link)
ааа бля это те квадратики, шо иногда мне гугля-хрома выдает при написании каменты в лжр? %-))


спасибо %-))
[User Picture]
From:[info]aiveforever
Date:January 10th, 2012 - 05:17 pm

(Link)
оффтоп
моя бабушка тоже не любит негров - я просто по тебя вспомнила