
Evgeny
04.03.2018
13:38:25
Откуды ты вообще взял вот это "Первые 6 - через регистры, остальные через стек"?

Dark
04.03.2018
13:39:27
Там вроде это прописано

Evgeny
04.03.2018
13:40:03

Google

Evgeny
04.03.2018
13:40:27

Pavel
04.03.2018
13:40:41
"Соглашение о вызовах fastcall не стандартизировано, поэтому используется только для вызова процедур и функций, не экспортируемых из исполняемого модуля и не импортируемых извне."

Dark
04.03.2018
13:40:47
Ступил

Evgeny
04.03.2018
13:42:06
Для неэкспортируюмых функций компилятор может задействовать все что ему захочется. Оно не стандартизировано вообще никак.

Pavel
04.03.2018
13:42:35
не может

Evgeny
04.03.2018
13:43:46
не может
ну там есть несколько ограничений для платформы x86

Pavel
04.03.2018
13:43:57
Всё явно, через соглашения, ключи и директивы компиляции.

Evgeny
04.03.2018
13:44:00
а так кто ему (компилятору) запретит?

Dark
04.03.2018
13:44:33

Evgeny
04.03.2018
13:45:48

Pavel
04.03.2018
13:46:07
Господа я тут делаю сайт dlang, кто бы что хотел на нем видеть?

Dark
04.03.2018
13:46:42

Pavel
04.03.2018
13:46:49
Любое

Google

Pavel
04.03.2018
13:47:10
А то будет только главная страница со ссылкой на dlang.org =)

Evgeny
04.03.2018
13:47:54

Dark
04.03.2018
13:48:21
Ладно, вроде твоя взяла xDD

Pavel
04.03.2018
13:49:05
Какие разделы и инфу вы хотите видеть на сайте русскоязычного сообщества

Pavel
04.03.2018
13:49:32

Dark
04.03.2018
13:50:57

Pavel
04.03.2018
13:51:13
полезные модули это что?

Dark
04.03.2018
13:51:57
Модули не стандартной библиотеки для решения частых проблем

Pavel
04.03.2018
13:52:06
А, понял

Dark
04.03.2018
13:52:27
Насчет разделов я хз
Ты там форум делаешь, что ли?

Evgeny
04.03.2018
13:52:39
На сайтах компиляторов.
Вот именно, что компиляторов, а не языков. То бишь
"Для неэкспортируюмых функций компилятор может задействовать все что ему захочется. Оно не стандартизировано вообще никак."

Pavel
04.03.2018
13:53:18

Evgeny
04.03.2018
13:54:29

Pavel
04.03.2018
13:55:14
Компилятор ведёт себе детерминировано и самовольно менять формат вызова не будет.

Evgeny
04.03.2018
13:55:46

Pavel
04.03.2018
13:56:11
Вот это больше мне хотелось бы узнать)

Evgeny
04.03.2018
13:56:27

Pavel
04.03.2018
13:57:22

Google

Evgeny
04.03.2018
13:57:37
Где тут "самовольность"?

Pavel
04.03.2018
13:57:48
По смыслу

Evgeny
04.03.2018
13:58:07
Повторю еще раз:
"Очевидно, что компилятору "хочется" ровно то, что в него заложили разработчики."
И кстати совершенно не обязательно, что это будет подробно расписано и задокументировано на сайте компилятора.
Ну или если ты чисто придраться к словам решил. Перефразирую:
"Для неэкспортируюмых функций разработчики компилятора могут задействовать все что им захочется. Оно не стандартизировано вообще никак."
Так пойдет?

Pavel
04.03.2018
14:00:23
Нет. Так не бывает.
А если будет, компилятором не будут пользоваться.

Dark
04.03.2018
14:01:03

Evgeny
04.03.2018
14:01:16
"Не будут пользоваться" и "не бывает" - это совершенно разные вещи.

Pavel
04.03.2018
14:01:49
Если брать в расчет наколенные самоделки...

Evgeny
04.03.2018
14:03:10

Pavel
04.03.2018
14:03:31
в документации

Evgeny
04.03.2018
14:03:40
ссылку, пожалуйста
Заодно можно поискать и для любого другого компилятора. Например GCC

Dark
04.03.2018
14:07:20
https://gcc.gnu.org/onlinedocs/
Это для GCC

Evgeny
04.03.2018
14:07:49

Dark
04.03.2018
14:08:14
А что не так?
Нужно обязательно написать на бумажке?

Evgeny
04.03.2018
14:09:06
А что не так?
Ну как бы
"Интересно, где прочитать про ключи, соглашения и прочее для dmd?"
"Заодно можно поискать и для любого другого компилятора. Например GCC"

Google

Evgeny
04.03.2018
14:09:45
Ты мне дал ссылку где можно прочитать про ключи, соглашения описывающие внутренние calling convention для gcc?

Dark
04.03.2018
14:12:16
Неа. Я дал ссылку на документацию, в которой, по мнению Павла, это все должно быть описано

Evgeny
04.03.2018
14:13:18

Dark
04.03.2018
14:13:30
Вот для GCC нет

Evgeny
04.03.2018
14:13:54
Вот для GCC нет
То есть ты считаешь, что оно таки где-то там внутри описано?

Dark
04.03.2018
14:13:55
Но тогда почему все предсказуемо в cdecl - непонятно

Evgeny
04.03.2018
14:14:17
cdecl - это соглашения для экспортируемых функций.

Dark
04.03.2018
14:14:18
Не благодари

Evgeny
04.03.2018
14:14:49
Ну а если задуматься зачем искусственно ограничивать компилятор? По мне так если он может для передачи параметров задействовать все 40 регистров какого-нибудь супер-процессора, то почему бы ему это и не сделать?

Dark
04.03.2018
14:17:07
Для экспортируемх ему это как раз нельзя будет сделать

Evgeny
04.03.2018
14:17:42

Pavel
04.03.2018
14:17:59

Dark
04.03.2018
14:18:55
А почему он не может это сделать по-дефолту?

Evgeny
04.03.2018
14:19:52
Павел вернулся. Нашел доки? Или таки dmd - наколенная самоделка? Ну и ldc, gcc, clang тоже с ними заодно.

Pavel
04.03.2018
14:20:28
я ине искал

Evgeny
04.03.2018
14:20:28

Pavel
04.03.2018
14:20:37
естественно
и все описаны

Google

Evgeny
04.03.2018
14:20:55

Pavel
04.03.2018
14:21:03
есть

Evgeny
04.03.2018
14:21:21
есть
голословные заявления?

Pavel
04.03.2018
14:21:52
пока они от тебя

Evgeny
04.03.2018
14:22:24
обязательства доказательства наличия чего-либо ложатся на того кто утверждает это наличие.

Dark
04.03.2018
14:22:53

Evgeny
04.03.2018
14:23:06

Pavel
04.03.2018
14:23:30
нично не отменяет детерминированного поведения компиляторов.

Dark
04.03.2018
14:23:52

Evgeny
04.03.2018
14:25:00

Dark
04.03.2018
14:25:49

Pavel
04.03.2018
14:27:11
https://dlang.org/spec/abi.html#function_calling_conventions

Evgeny
04.03.2018
14:27:52

Pavel
04.03.2018
14:28:50
Я и не говорил о ключах, задающих следование какому-либо стандарту вызова. Имелись в виду ключи оптимизации, следования стандартам вообще и тому подобные.

Dark
04.03.2018
14:28:54

Pavel
04.03.2018
14:29:13

Evgeny
04.03.2018
14:29:37

Pavel
04.03.2018
14:31:07

Evgeny
04.03.2018
14:31:50
Там все касаетс экспорта вообще-то.

Pavel
04.03.2018
14:32:05
gcc - вообще не единый компилятор.