Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 13 2020 19:49
    Corallus-Caninus commented #6
  • Oct 12 2020 22:38
    kpp commented #6
  • Oct 12 2020 21:38
    Corallus-Caninus commented #6
  • Oct 12 2020 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
@kpp
хз
Mikail Bagishov
@MikailBag
Залил другой вариант проверок
Он не триггерит UB, и некорректый указатель пройдет проверку с вероятностью лишь 2**-16)
Roman
@kpp

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

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

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

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

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

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

Mikail Bagishov
@MikailBag
Я так понимаю, с момента вызовa drop-хука, можно всё удалять
Roman
@kpp
я подозреваю, что да
вот надо добавить освобождение выделенной памяти =)
и потом протестировать с запуском модуля, что оно не будет крешиться
Roman
@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
@kpp
Сила в индексах
Roman
@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
@kpp
Ну так я еще 13 апреля скинул ссылку) можно
Dmitry Kashitsyn
@0x7CFE
угу, точно
в принципе там даже индексы не нужны
по сути делаем newtype вокруг указателя но с инвариантным лайфтаймом, привязанным к сессии