
Viktor
02.05.2018
23:12:25
Хотя насчет дешего я погоречился.... Вызовы функций через рефлексию обычно супер дорогие, их же искать еще надо

Sergey
02.05.2018
23:12:27
> ты можешь вызывать извне функции или переменные по строчному литералу.
не обязательно же, много чего можно делать с помощью интроспекции
не задумывался насчёт вызова функции по строке, если честно (== не считаю это самым очевидным кейсом)

Viktor
02.05.2018
23:13:47
Ну в той сфере в которой я тусую ревлексия обычно используется для вызова чего то по имени извне

Sergey
02.05.2018
23:13:53

Google

Sergey
02.05.2018
23:14:02
звучит супер здорово (нет)
короче, я о чём
эта вся рефлексия, это дополнительный рантайм

Viktor
02.05.2018
23:14:22
Ну да

Sergey
02.05.2018
23:14:26
который так не любят (и будут не любить) в c++
короче, считаю что нинужно
энтерпрайз не будет переходить на c++23 из-за этого

Viktor
02.05.2018
23:18:30
ну как ты думаешь почему в java integer весит не 4 байта а 16?
рефлексия всегда дорого

Sergey
02.05.2018
23:18:53
не знал, если честно

Google

Sergey
02.05.2018
23:19:39
думал он 8 (от - 2^32 до +2^32 -1)

Viktor
02.05.2018
23:20:17
в 32 битных системах 4, в 64 8 ?

Sergey
02.05.2018
23:20:29
??

Viktor
02.05.2018
23:21:05

Sergey
02.05.2018
23:21:31
звучит очень сомнительно
рефлексия в джаве достигается за счёт JVM, а не самой джавы

Viktor
02.05.2018
23:21:59

Sergey
02.05.2018
23:22:19

Viktor
02.05.2018
23:22:37

Sergey
02.05.2018
23:22:39
так во всех виртуалках делается (насколько я знаю)
(по крайней мере в лисповой и питоновской точно)

Viktor
02.05.2018
23:23:43
про питон знаю только что это С ?
надо погуглить

Sergey
02.05.2018
23:23:53

Viktor
02.05.2018
23:24:15
Ну в принципе код питона вызывает код на С

Sergey
02.05.2018
23:24:24

Google

Viktor
02.05.2018
23:25:17
э, ну так то да
в наше время почти все в какой то степени на Си можно сказать
Я скорее говорил про это https://habr.com/post/44520/
ну и да, виртуалка

Sergey
02.05.2018
23:29:19
ну т.е. для того, чтобы была нормальная интроспекция, нужно сделать виртуалку, которая будет исполнять Си и/или С++?)

Viktor
02.05.2018
23:30:54
Что ты считаешь нормальной? Дотстаточно дешевая? или что бы не нужно было ручками тыкать все?

Sergey
02.05.2018
23:31:08
конеш чтобы можно было всё тыкать ручками

Viktor
02.05.2018
23:31:08
Или все?)

Alexander
02.05.2018
23:31:19

Sergey
02.05.2018
23:31:26
так так так

Alexander
02.05.2018
23:31:35
потому что в плюсах будет compile-time рефлексия

Sergey
02.05.2018
23:31:48
так воооот

Viktor
02.05.2018
23:32:02
О, кажется умный человек наконец то пришел

Sergey
02.05.2018
23:32:24
согласен?

Viktor
02.05.2018
23:32:50

Alexander
02.05.2018
23:33:09

Sergey
02.05.2018
23:33:17
подожди
а какой смысл в компайл тайме это делать?
это как раз метапрограммирование, а не рефлексия

Alexander
02.05.2018
23:33:51

Google

Sergey
02.05.2018
23:34:08
но это же не рефлексия
а чистое метапрограммирование
рефлексия это про то, что можно тыкать всё в рантайме

Alexander
02.05.2018
23:35:05
в рантайме никакого гогна не будет

Sergey
02.05.2018
23:36:47
забавно
(в моей практике это всегда называли макросами)

Admin
ERROR: S client not available

Sergey
02.05.2018
23:37:57
ну раз так, то получается я действительно не прав и на этом можно закончить спор

PRoSToC0der
02.05.2018
23:38:04
интересно, есть ли что-нибудь по поводу runtime рефлексии, типа кодогенерации

Alexander
02.05.2018
23:38:52
сейчас бы кодогенерацией заниматься без VM

PRoSToC0der
02.05.2018
23:39:30

Alexander
02.05.2018
23:39:34
кусок шланга к программе подтягиваем

Sergey
02.05.2018
23:39:45

PRoSToC0der
02.05.2018
23:40:17

Alexander
02.05.2018
23:40:23
так как AST стандартизировать очень сложно из-за всяких мудне-компиляторов (привет msvc)

Google

Sergey
02.05.2018
23:40:57
тогда ждём-с

Alexander
02.05.2018
23:41:27
к сожалению с крестовым кодом нет, насколько я знаю, нормального JIT. Хотя вот Graal VM вроде умеет в кресты
но я не пробовал, так что не могу ничего сказать. Кстати... мб сейчас попробую

PRoSToC0der
02.05.2018
23:42:00

Sergey
02.05.2018
23:42:13

Alexander
02.05.2018
23:42:21

PRoSToC0der
02.05.2018
23:42:42

Sergey
02.05.2018
23:43:15

Alexander
02.05.2018
23:43:25
если нужна оптимизация аки JIT, то тут раним на наиболее типпичных кейсах, собираем стату и PGO

PRoSToC0der
02.05.2018
23:44:24

Alexander
02.05.2018
23:44:26
вон в GCC 8.1 улучшили
так в идеале, конечно, пользователю на машину накатить компилятор, сбилдить у него с маршем и PGO и отдать бинарь ?

OTR ?
03.05.2018
05:23:50
У кого нибудь есть книга в эл виде
https://books.google.ru/books?id=taJSDwAAQBAJ&printsec=frontcover&dq=С%2B%2B17+STL.+Стандартная+библиотека+шаблонов&hl=ru&sa=X&ved=0ahUKEwjXiPaq5ujaAhUD1SwKHcxyA4IQ6AEIJzAA#v=onepage&q=С%2B%2B17%20STL.%20Стандартная%20библиотека%20шаблонов&f=false