@proGO

Страница 291 из 1674
Quet
09.11.2016
14:14:36
а как сравнивалось? какие бы там не были шаблоны, ассемблер это не то чтоб прям усложняет

Daniel
09.11.2016
14:15:00
моя очередь спросить - ORLY?

Quet
09.11.2016
14:15:24
ну то есть в асме будут уже инстанциированные шаблоны и сам код будет сравним с тем если писать это все руками без шаблонов (явно указать типы)

Daniel
09.11.2016
14:15:42
так, я все понял

Google
Daniel
09.11.2016
14:15:50
что закончили?

или - где учились?

Quet
09.11.2016
14:16:03
в школе еще

вопросы ок пошли

Daniel
09.11.2016
14:16:31
какие ответы - такие вопросы

Quet
09.11.2016
14:16:43
так я ж не против ) спрашивайте

Daniel
09.11.2016
14:16:49
ну - я спросил

Quet
09.11.2016
14:22:20
а это, по теме-то еще аргументы будут? ну например если го ближе к асму, то там наверное можно всегда понять пойдут данные на стек или в куче выделятся? или всегда понятно в какой момент освободится память которую (конечно же) можно выделить руками и узнать адрес по которому выделилось?

Судзумия
09.11.2016
14:23:50
А в го не всё в кучу идёт? Кроме того, что escape analysisом на стек убирается?

Ivan
09.11.2016
14:23:59
ИМХО, Gо не "ближе к асму", а ближе к абстрактной тьюринг машине. Хотите вставку в середину слайса? Будьте добры выполнить две "инструкции" - скопировать первую половину слайса, дописав нужный элемент, потом скопировать результат и дописать вторую половину слайса. Такая фигня из-за того, что цель была написать _простой_ для изучения язык, а соответственно в минимуме сахара в языке. А так, да, если рассматривать с точки зрения близости к asm практика показывает, что go+asm не плохо дружат под голым железом, без C и прочего. Почти весь рантайм Go можно реализовать под голое железо на Go, asm понадобиться только что бы прокинуть runtime.Println в __go_println, к примеру. Но это не значит, что Go ближе к asm, чем, допустим C++, как минимум GC и runtime (довольно обширный, кстати) вкладывают некоторые ограничения для близости Все выше сказаное - ИМХО

Quet
09.11.2016
14:24:20
А в го не всё в кучу идёт? Кроме того, что escape analysisом на стек убирается?
ну вот как ты глядя на код поймешь что убрал эскейп анализ а что нет?

как гарантированно что-то положить на стек? ну в общем далек он от железа по сравнению с си

Google
Aleksandr
09.11.2016
14:24:57
https://golang.org/doc/faq#stack_or_heap

мда, и правда..

Quet
09.11.2016
14:25:14
From a correctness standpoint, you don't need to know

ну как бы понятно что до такого обезьянам не должно быть дела ) и я когда пишу на го такими вопросами не задаюсь

ИМХО, Gо не "ближе к асму", а ближе к абстрактной тьюринг машине. Хотите вставку в середину слайса? Будьте добры выполнить две "инструкции" - скопировать первую половину слайса, дописав нужный элемент, потом скопировать результат и дописать вторую половину слайса. Такая фигня из-за того, что цель была написать _простой_ для изучения язык, а соответственно в минимуме сахара в языке. А так, да, если рассматривать с точки зрения близости к asm практика показывает, что go+asm не плохо дружат под голым железом, без C и прочего. Почти весь рантайм Go можно реализовать под голое железо на Go, asm понадобиться только что бы прокинуть runtime.Println в __go_println, к примеру. Но это не значит, что Go ближе к asm, чем, допустим C++, как минимум GC и runtime (довольно обширный, кстати) вкладывают некоторые ограничения для близости Все выше сказаное - ИМХО
а как c gc быть?

в смысле “реализовать рантайм на го"

Ivan
09.11.2016
14:27:02
а как c gc быть?
"Пилите, Шурочка, пилите, она золотая" - самому реализовывать или брать реализации и переписывать

Quet
09.11.2016
14:27:30
ну это про то что рантайм все же сильно толще чем требуется для с++

с основным тезисом — про то что цель была получить простой для изучения язык я согласен конечно собственно это сразу и сказал )

пока не появился эксперт по с++ )

Ivan
09.11.2016
14:30:56
в смысле “реализовать рантайм на го"
В прямом - пилить рантайм Go для железа (без ОС) - на самом Go вполне реально, в большинстве случаев asm понадобится только для "прокидывания" методов runtime из пакета "runtime" в валидные имена __go_%method_name%. Хотя, чую, что это можно и при сборке сделать, но пока руки не доходят копать в эту сторону

Ivan
09.11.2016
14:32:28
Так же как управление памятью =)

Quet
09.11.2016
14:32:44
погоди, это и есть управление памятью в го )

— как написать управление памятью? — так же как управление памятью … ну ок

Ivan
09.11.2016
14:33:38
Не путай управление памятью в плане железа и GC

Quet
09.11.2016
14:34:02
ну в го оно такое, от железа далекое

Vladimir
09.11.2016
14:34:39
Ivan
09.11.2016
14:34:52
Ага, только если ты пишешь под железо - сначала все равно реализуешь алокации и прочее, а уже потом будешь пилить GC ;)

Quet
09.11.2016
14:35:01
Есть. С Qt ;)
тсс, не порти картину мира человеку

Google
Quet
09.11.2016
14:35:23
Ага, только если ты пишешь под железо - сначала все равно реализуешь алокации и прочее, а уже потом будешь пилить GC ;)
ну ты понимаешь, при таком варианте использования брать го особо смысла нет (

Daniel
09.11.2016
14:35:34
чувствую, за живое зацепил

это хоролшо

это говорит нам о сохранении связей с реальностью

Quet
09.11.2016
14:36:31
чувствую, за живое зацепил
дада, особенно когда смешно с темы съехал

Daniel
09.11.2016
14:36:43
ути-пуси

Daniel
09.11.2016
14:36:46
но

Ivan
09.11.2016
14:37:04
Daniel
09.11.2016
14:37:47
мы же не будем всерьез обсуждать, что c++ ближе к машинным кодам, чем go?

или будем?

Vladimir
09.11.2016
14:38:00
о, не видел. а ссылка есть?
ох... сейчас поищу

Quet
09.11.2016
14:38:37
Да ну? HAL - знакомое понятие?
знакомое, но обычно gc и железо не очень дружат

Daniel
09.11.2016
14:38:48
а каков ваш набор критериев оценки близости?

ну, кроме "я так вижу"

Vladimir
09.11.2016
14:39:00
@quetzal а прошу прощения, там похоже таки есть микроядро реализующие базовые сисколы.

Google
Vladimir
09.11.2016
14:39:03
https://github.com/deferpanic/gorump

или я что-то другое видел

Quet
09.11.2016
14:39:24
Daniel
09.11.2016
14:39:52
пока я отходил чаю попить - тут случился шквал

повторите, пожалуйста

Ivan
09.11.2016
14:40:33
Ты тоже?
Давненько уже, аж на хабру пару статей писал ) Руки не доходят из личного репа в гитхаб слить и статейки помалякать

Quet
09.11.2016
14:41:27
самое простое — в го ты не знаешь где у тебя лежит переменная стек-хип и когда ее память вернут системе это уже довольно далеко от железа в го нет арифметики над указателями в го свои зеленые потоки которые прозрачно для тебя ложатся на os и ты не влияешь на то как и когда они переключаются

вот это все в с++ ближе к железу / os чем в го

Admin
ERROR: S client not available

Ivan
09.11.2016
14:42:12
знакомое, но обычно gc и железо не очень дружат
Прямая работа с памятью -> ... -> GC А, и да, при желании можно спокойно обойтись без GC ;)

Vladimir
09.11.2016
14:42:31
@quetzal про "близкость к ассемблеру" - посмотри реализации структур данных, как сделаны слайсы, массивы и пр. - вот это вот все.

Quet
09.11.2016
14:42:44
Прямая работа с памятью -> ... -> GC А, и да, при желании можно спокойно обойтись без GC ;)
это уже будет другой язык наверное ) у го семантика сильно завязана на gc

о, и если мы тут говорим за слайсы как узнать адрес backing массива в слайсе?

Quet
09.11.2016
14:44:03
в с++ знаешь ) куда положишь там и будет

Vladimir
09.11.2016
14:44:40
@quetzal https://godoc.org/unsafe

Vladimir
09.11.2016
14:45:09
там и адресная арифметика и ответы на остальные твои вопросы про указатели

Google
Daniel
09.11.2016
14:45:10
в с++ я вообще не знаю, есть ли у меня переменная. нет, правда, глядя на определение класса, которое пару темплейтов использует - что мы можем про расположение переменных сказать?

Quet
09.11.2016
14:45:54
мы ж не библиотеки сравниваем все же

Daniel
09.11.2016
14:46:22
про память, которую вернут. смартпоинтеры такие смартпоинтеры - я не знаю, когда память реально будет освобождена.

Quet
09.11.2016
14:46:37
и да, темплейты не очень на это все влияют. после инстанциирования остаются обычные классы, пусть и с сильно мангленными именами

Vladimir
09.11.2016
14:46:44
@quetzal в плюсах, сюрприз, без костылей ты не решаешь кто где и как расположен - ты доверяешь это компилятору и аллокатору.

Daniel
09.11.2016
14:46:49
адресная арифметика есть, владимир опередил меня

Vladimir
09.11.2016
14:46:55
а за нарушение договренностей получишь от операционки по мозгам

Quet
09.11.2016
14:47:05
Daniel
09.11.2016
14:47:10
а про зеленые потоки - вообще-то, знаю. и знаю, куда yeld воткнуть

Vladimir
09.11.2016
14:47:23
ну нет. я решаю стек или нет а если хип то могу написать свой аллокатор
ты не можешь просто взять и сказать "переменная, ты лежишь вот по этому адресу"

тебе нужно попросить у ОС памяти

либо извращаться с линкером

Quet
09.11.2016
14:47:41
ну и еще раз — есть вариант написать свой аллокатор

Beemo
09.11.2016
14:48:14
мне кажется кто-то здесь тролль

Vladimir
09.11.2016
14:48:21
ну и еще раз — есть вариант написать свой аллокатор
аллокатор тебе поможет только при условии что у тебя нет ОС

и есть вся память твоего девайса

Daniel
09.11.2016
14:48:33
и да, темплейты не очень на это все влияют. после инстанциирования остаются обычные классы, пусть и с сильно мангленными именами
и обычные-то классы, со множественным наследованием и полиморфизмом, хер проссышь, как говорили в школе. но там же еще оптимизатор, и вся херня

Quet
09.11.2016
14:48:35
а про зеленые потоки - вообще-то, знаю. и знаю, куда yeld воткнуть
ээ? RLY? вот прям знаешь как эти зеленые потоки ложатся на потоки ос?

Daniel
09.11.2016
14:48:55
а что там знать-то?

Quet
09.11.2016
14:49:08

Страница 291 из 1674