Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 13 19:49
    Corallus-Caninus commented #6
  • Oct 12 22:38
    kpp commented #6
  • Oct 12 21:38
    Corallus-Caninus commented #6
  • Oct 12 10:18
    Corallus-Caninus opened #6
  • Sep 20 2019 14:21
    jchassoul commented #5
  • Sep 20 2019 14:21
    jchassoul commented #5
  • Aug 23 2019 10:41
    kpp commented #5
  • Aug 22 2019 20:54
    jchassoul edited #5
  • Aug 22 2019 20:53
    jchassoul edited #5
  • Aug 22 2019 20:52
    jchassoul edited #5
  • Aug 22 2019 20:51
    jchassoul edited #5
  • Aug 22 2019 20:50
    jchassoul edited #5
  • Aug 22 2019 20:45
    jchassoul opened #5
  • Feb 19 2019 14:12
    MikailBag synchronize #62
  • Feb 19 2019 14:11
    MikailBag synchronize #62
  • Feb 19 2019 13:32
    MikailBag synchronize #62
  • Feb 19 2019 13:29
    MikailBag synchronize #62
  • Feb 17 2019 17:10
    MikailBag synchronize #62
  • Feb 17 2019 16:57
    MikailBag synchronize #62
  • Feb 17 2019 16:56
    MikailBag synchronize #62
Mikail Bagishov
@MikailBag
В том то и дело что не сработает
Ансейфом я могу что угодно по-transmute-ить
Mikail Bagishov
@MikailBag
Хм, на самом деле есть определенная проблема моего подхода: когда создается больше одной стратегии, они могут все дружно пользоваться одной и той же сессией
Лайфтаймы это решат? Если да, то действительно лучше взять их
Roman Proskuryakov
@kpp
хз
Mikail Bagishov
@MikailBag
Залил другой вариант проверок
Он не триггерит UB, и некорректый указатель пройдет проверку с вероятностью лишь 2**-16)
Roman Proskuryakov
@kpp

Залил другой вариант проверок
Он не триггерит UB, и некорректый указатель пройдет проверку с вероятностью лишь 2**-16)

некорректный... откуда ты знаешь?

как ты это считал?
Mikail Bagishov
@MikailBag
Ну рассмотрим некорректный указатель. Допущение - это какое-то случайное число
Тогда шанс того, что 16 бит примут правильное значение: 2**-16
Roman Proskuryakov
@kpp
для меня любое число - корректный адрес.
выкинь все проверки кроме != null
Mikail Bagishov
@MikailBag
bits 48 through 63 of any virtual address must be copies of bit 47
Ну то есть удалить конечно можно
Roman Proskuryakov
@kpp
I don't care.
это все ведьмины пляски, которые мне не нравятся
Mikail Bagishov
@MikailBag
Ну ок)
Roman Proskuryakov
@kpp
если бы ты воткнул интринсик компилятора, который бы мог отвечать на вопрос является этот адрес хотя бы на вид валидным, то я был бы за
Mikail Bagishov
@MikailBag
Кстати, идея для библиотеки)
Roman Proskuryakov
@kpp
;)
а в таком виде - сори, не принимается
Mikail Bagishov
@MikailBag
Ок
Mikail Bagishov
@MikailBag
Позаливал исправления
Mikail Bagishov
@MikailBag
Так, в целом все в порядке с моим PR? (Пустую строку вставляю)
Nick Linker
@nlinker
Рому похоже что-то смущает, может думает над рацпредложением :-)
Mikail Bagishov
@MikailBag
И все?
Roman Proskuryakov
@kpp
угу
Mikail Bagishov
@MikailBag
вот
Roman Proskuryakov
@kpp
Угу

А еще такой вопрос: вот мы делаем

 ExampleAIModule* const module = (ExampleAIModule*) malloc( sizeof(ExampleAIModule) );

в example Dll. А как освободить? =)

Mikail Bagishov
@MikailBag
Я так понимаю, с момента вызовa drop-хука, можно всё удалять
Roman Proskuryakov
@kpp
я подозреваю, что да
вот надо добавить освобождение выделенной памяти =)
и потом протестировать с запуском модуля, что оно не будет крешиться
Roman Proskuryakov
@kpp
Я нашел решение =)

https://docs.rs/compact_arena/0.2.1/compact_arena/

The indices should not be able to escape the in_arena call

let idx = in_arena!(arena / 1, arena.add(1usize));

Failed to compile

Nick Linker
@nlinker
Надо глянуть и поиграться
Roman Proskuryakov
@kpp
Сила в индексах
Roman Proskuryakov
@kpp
вот надо добавить освобождение выделенной памяти =)
@MikailBag сделай, пожалуйста
Nick Linker
@nlinker
норм, лаг в полтора месяца:-)
Dmitry Kashitsyn
@0x7CFE
For a small-ish example, in compactarena, I use the type system to encode the invariant that indices given out by arena.add() are only ever usable with the same arena. This is done by binding an invariant lifetime to each index and the arena and requiring that same lifetime on indexing so that we can safely use unchecked indexing.
хм… интересно, можно ли применить такой же трюк в bwapi чтобы нельзя было утечь указатели на юниты за пределы сессии
Roman Proskuryakov
@kpp
Ну так я еще 13 апреля скинул ссылку) можно
Dmitry Kashitsyn
@0x7CFE
угу, точно
в принципе там даже индексы не нужны
по сути делаем newtype вокруг указателя но с инвариантным лайфтаймом, привязанным к сессии