Вы просто ставите телегу впереди лошади. Крупные компании работают на глобальный рынок, и имеют там значительную долю, либо являются почти монополистами. Более мелкие так же интегрированы в эту систему.
Если ориентироваться на локальный российский рынок, то объем его не большой, и то в основном это военка, и квази государственные компании и структуры.
Тут скорее удивительно, чем эти 2000 занимаются. (/sarcasm)
Имелось ввиду насколько язык прижился в промышленной разработке. На scala в среднем на порядок больше вакансий. Эрланг тоже встречается, но у него довольно узкая ниша.
Jupyter и python, по моему опыту это в основном инструмент исследования, когда надо быстро и удобно, и до 80% написанного кода пойдет в ведро. Внедрение это отдельный вопрос.
У меня не хватает фантазии, что бы представит, как сравнение int с char может, чтото поломать впринципе. Это абсолютно коректная и определенная операция.
Там дальше написано, к чему конкретно это относится:
"This is necessary because char may be the equivalent of signedchar, in which case a byte where the top bit is set would be sign extended when converting to int, yielding a value that is outside the range of unsigned char."
И конечно же там нет ничего, про UB, и я слабо представляю как ее в принципе можно посадить в этом коде.
PS: хотя наверное вы имели ввиду достаточно одного базового элемента NAND, чтобы собрать любую логическую схему. Из элементов с двумя входами и одним выходом, только NAND и NOR, обладают данным свойством.
"The NAND Boolean function has the property of functional completeness. This means that any Boolean expression can be re-expressed by an equivalent expression utilizing only NAND operations."
Load a - Load a, является частным случаем Load a - Load b. И соответственно будет давать такой же результат. Или вы думаете что если адрес одинаковый, то и переупорядочивание будет магическим образом отключаться? Ладно, я понял, что вы просто хотите оказаться правым в конце. Поэтому не вижу смысла продолжать диалог. Удачи.
То что написано в Фортране, не имеет к многопоточке никакого отношения. Потому что там в коде будет правильная последовательность mov, в правильном порядке. Но без примитивов синхронизации они не будут давать правильный результат который вы ожидаете, просто потому что в процессоре они могут быть произвольно пере упорядочены.
Вы вообще с чем спорите?
1) Современные процессоры пере упорядочивают чтения из памяти
2) Код без процессорных примитивов синхронизации, неизбежно столкнется с 1)
По тому и другому вопросу, есть тонны подтверждений, можно даже собственные эксперименты провести. Вы просто сильно переоцениваете свою компетенцию, начиная рассуждать о том, о чем имеете весьма отдаленное представление.
Вы издеваетесь? Прочитайте еще раз ссылку "memory ordering". Очевидно требует, если вы хотите чтобы в коде: *timer (1) - *timer (2), 1 прочиталось из памяти раньше 2.
Проблема в том, что в современных out-of-order процессорах без примитивов синхронизации этот порядок не определен. Хоть обкодогенерируйся.
Json на таких объемах должен парситься мгновенно, а вот оверхед и задержка на сети будет значительной, особенно если сокеты синхронные.
Вы просто ставите телегу впереди лошади. Крупные компании работают на глобальный рынок, и имеют там значительную долю, либо являются почти монополистами. Более мелкие так же интегрированы в эту систему.
Если ориентироваться на локальный российский рынок, то объем его не большой, и то в основном это военка, и квази государственные компании и структуры.
Тут скорее удивительно, чем эти 2000 занимаются. (/sarcasm)
В современных биосах используется технология CAR(cache as ram), которая инициализируется практически сразу после самого старта, а дальше обычный Си.
Да можно проще, достаточно показать выразимость в "базисе" для которого эти свойства доказаны. То есть сделать реализацию элемент NAND или NOR.
Ответственности нет, но и удалить нельзя:
https://habr.com/ru/news/726146/
Имелось ввиду насколько язык прижился в промышленной разработке. На scala в среднем на порядок больше вакансий. Эрланг тоже встречается, но у него довольно узкая ниша.
По моим ощущениям Scala была лучшей попыткой из всей функциональщины.
Хорошая статья, напомнить про эффективность рынков, для любителей активной торговли.
Jupyter и python, по моему опыту это в основном инструмент исследования, когда надо быстро и удобно, и до 80% написанного кода пойдет в ведро. Внедрение это отдельный вопрос.
Все таки советую переделать на нормальный код, как здесь:
оно действительно может упасть, если keyCode будет больше 255
https://stackoverflow.com/questions/65514890/glibcs-isalpha-function-and-the-en-us-utf-8-locale
Да, я почитал стандарт и вы в общем случаи правы. И в некоторых реализациях действительно делается лукап, без проверки диапазона.
Поэтому я бы советовал автору кода поменять вот это:
на
У меня не хватает фантазии, что бы представит, как сравнение int с char может, чтото поломать впринципе. Это абсолютно коректная и определенная операция.
Там дальше написано, к чему конкретно это относится:
"This is necessary because char may be the equivalent of signed char, in which case a byte where the top bit is set would be sign extended when converting to int, yielding a value that is outside the range of unsigned char."
И конечно же там нет ничего, про UB, и я слабо представляю как ее в принципе можно посадить в этом коде.
Нет functional completeness означает, что можно реализовать любую функцию, и все 16 в частности. Xor на сколько я понимаю такой функцией не является.
https://stackoverflow.com/questions/10276892/are-the-xor-and-not-gates-logically-complete
Но если вы с этим не согласны, можете показать как реализуется на xor "базис": NOR,NAND или OR/AND/NOT.
https://electronics.stackexchange.com/questions/140684/construct-an-and-gate-from-xor-gates
Извините за душноту, но еще и NOR.
PS: хотя наверное вы имели ввиду достаточно одного базового элемента NAND, чтобы собрать любую логическую схему. Из элементов с двумя входами и одним выходом, только NAND и NOR, обладают данным свойством.
Оставлю для интересующихся.
https://en.wikipedia.org/wiki/NAND_logic
"The NAND Boolean function has the property of functional completeness. This means that any Boolean expression can be re-expressed by an equivalent expression utilizing only NAND operations."
https://en.wikichip.org/wiki/boolean_algebra/functional_completeness
Load a - Load a, является частным случаем Load a - Load b. И соответственно будет давать такой же результат. Или вы думаете что если адрес одинаковый, то и переупорядочивание будет магическим образом отключаться? Ладно, я понял, что вы просто хотите оказаться правым в конце. Поэтому не вижу смысла продолжать диалог. Удачи.
Эти источники мудрости довольно легко находятся в интернете, к примеру:
https://www.alibabacloud.com/blog/memory-model-and-synchronization-primitive---part-1-memory-barrier_597460
Читайте про LoadLoad reordering.
То что написано в Фортране, не имеет к многопоточке никакого отношения. Потому что там в коде будет правильная последовательность mov, в правильном порядке. Но без примитивов синхронизации они не будут давать правильный результат который вы ожидаете, просто потому что в процессоре они могут быть произвольно пере упорядочены.
Вы вообще с чем спорите?
1) Современные процессоры пере упорядочивают чтения из памяти
2) Код без процессорных примитивов синхронизации, неизбежно столкнется с 1)
По тому и другому вопросу, есть тонны подтверждений, можно даже собственные эксперименты провести. Вы просто сильно переоцениваете свою компетенцию, начиная рассуждать о том, о чем имеете весьма отдаленное представление.
Вы издеваетесь? Прочитайте еще раз ссылку "memory ordering". Очевидно требует, если вы хотите чтобы в коде: *timer (1) - *timer (2), 1 прочиталось из памяти раньше 2.
Проблема в том, что в современных out-of-order процессорах без примитивов синхронизации этот порядок не определен. Хоть обкодогенерируйся.