Vladimir
Ну по скольку все по дефолту ноль, то запись нуля = удалению элемента
Αλεχ
и надеятся, что они не пересекутся
Αλεχ
Ну по скольку все по дефолту ноль, то запись нуля = удалению элемента
вопрос в том, что после ресайза корзины нужно перехэшировать и перекладывать все элементы
Αλεχ
Зачем точки?
ну не точки, а ячейка памяти
Αλεχ
не суть
Αλεχ
http://solidity.readthedocs.io/en/v0.4.24/miscellaneous.html
Αλεχ
The position of data[4][9].b is at keccak256(uint256(9) . keccak256(uint256(4) . uint256(1))) + 1.
Vladimir
ну не точки, а ячейка памяти
А как определяется соответствие значение - ключ, если берется рандомное?
Vladimir
П
Vladimir
А
Vladimir
Хеш
Αλεχ
Да
Vladimir
Тоесть эфириумовская память на самом деле уже поверх хешмапы
Αλεχ
скорее она линейная
Αλεχ
по крайней мере она так выглядит
Αλεχ
как она устроена честно говоря пох
Αλεχ
короче я хотел бы более адекватно реализвоать
Αλεχ
но пока идей никаких
Αλεχ
разве что массивы получились попизже
Vladimir
Ну если можно писать в рандомное адресное пространство, в большое адресное пространство, то явно хешмапс
Vladimir
Так а в чем проблема честный хешмап сделать?
Vladimir
ах да, при этом у меня нет возможности узнать, пустая ячейка или в ней ноль
Я просто не понял что именно ты реализовываешь? Как раз вот эту память?
Vladimir
Тогда ебошишь хешмап, где пустые = ноль, и дифиринцировать не надо. Ну как я понимаю тебе ресайзить хешмап нельзя?
Αλεχ
Я просто не понял что именно ты реализовываешь? Как раз вот эту память?
нет, мне надо поверх этой памяти реализовать хэшмап
Vladimir
нет, мне надо поверх этой памяти реализовать хэшмап
Ты можешь все адресное пространство использовать?
Αλεχ
Ты можешь все адресное пространство использовать?
я его бью, чтобы более эффективно использовать
Vladimir
Или это пространство для всей програмы
Αλεχ
скорее второе
Αλεχ
это скорее куча, где живет объект
Αλεχ
у него может быть много полей и массивы
Vladimir
Почему нельзя как в оригинале? Брать рандомную ячейку
Αλεχ
потому что я не хочу забивать хуй на коллизии
Αλεχ
даже если они маловероятны
Αλεχ
массивы у меня детерменированно кладутся
Αλεχ
например
Αλεχ
они делают 4 хэширования просто чтоб узнать ячейку
Vladimir
Ты говорил что тебе не важно ресайзится хешмапы или нет?
Vladimir
А как же газ?
Vladimir
Ну тогда хешмапа будет просто Vec<List<Elem>>
Денис
я походу тут напиздел — https://t.me/rustlang_ru/139789 — в плюсах таки есть АДТ в виде std::variant<...>, правда по-прежнему нет паттерн-матчинга)
Αλεχ
The mapping or the dynamic array itself occupies an (unfilled) slot in storage at some position p according to the above rule (or by recursively applying this rule for mappings to mappings or arrays of arrays). For a dynamic array, this slot stores the number of elements in the array (byte arrays and strings are an exception here, see below). For a mapping, the slot is unused (but it is needed so that two equal mappings after each other will use a different hash distribution). Array data is located at keccak256(p) and the value corresponding to a mapping key k is located at keccak256(k . p) where . is concatenation. If the value is again a non-elementary type, the positions are found by adding an offset of keccak256(k . p).
Αλεχ
не понимаю
Αλεχ
что тут имеется ввиду
Αλεχ
Ну тогда хешмапа будет просто Vec<List<Elem>>
ну мб стоит у них спиздить реализацию
Αλεχ
но я плохо понимаю че они пишут
Денис
А как же та статья с визит?
ну вот она и заставил меня написать опровержение))))
Αλεχ
и нельзя ли лучше
Денис
и где опровержение7
вот же https://t.me/rustlang_ru/139857
Αλεχ
ну вся статья про std::visit и хуйню
Cat
но.. в статье же как раз про матчинг.....
Денис
есть такое, ведь у них нет cargo
кстати вроде появился какой-то популярный плюсовый менеджер пакетов, конан кажется
vladislav
говно этот конан
Berkus
бред какой
Денис
conan не всё поддерживает
ну то есть он не поддерживает либы, которые в него не загрузили? или есть либы, которые туда нельзя загрузить?)
Cat
насколько я читал
Cat
поясните, гуру с++
Денис
там не очень много в нем сейчас есть, а что есть тоже со скрипом
ну первая часть как раз-таки лечится временем
Berkus
и как обычно, половина нужных тебе либ найдется, а остальную надо искать по помойкам типа частных пакаджей
vladislav
хотел заюзать конан, а он не поддерживал на тот момент свежие версии компиляторов
vladislav
и я сказал пошёл ты знаешь куда
Berkus
хотел заюзать конан, а он не поддерживал на тот момент свежие версии компиляторов
это у него любимая тема, до сих пор на кепке у меня вылетает "у вас apple-clang 9.1, НИЗЯ, МОЖНО ТОЛЬКО 9.0"
Berkus
да идите в хуй с такими предьявами
vladislav
рил
Денис
а какая им там разница на версию компилера?..
vladislav
для пет проджектов и обычный cmake файл сойдёт
Vladimir
Ну подозреваю что в с++ нет семвера
Vladimir
А значит еврисинг ис а брекинг ченж
Vladimir
Разве симейк так не делал?