Компилятор на лету

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: Компилятор на лету

Сообщение Лекс Айрин » 15.07.2013 11:06:27

Vadim писал(а):И я ведь предлагаю провести эксперимент - удалите его, несчастного оттуда и посмотрите, как FPC компилирует без него - все вопросы сразу отпадут. ;)


Компиляция с очисткой прошла успешно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Компилятор на лету

Сообщение vada » 15.07.2013 12:54:31

Код: Выделить всё
Usage: gcc [options] file...
Options:
  --help                   Display this information
  -dumpspecs               Display all of the built in spec strings
  -dumpversion             Display the version of the compiler
  -dumpmachine             Display the compiler's target processor
  -print-search-dirs       Display the directories in the compiler's search path
  -print-libgcc-file-name  Display the name of the compiler's companion library
  -print-file-name=<lib>   Display the full path to library <lib>
  -print-prog-name=<prog>  Display the full path to compiler component <prog>
  -print-multi-directory   Display the root directory for versions of libgcc
  -print-multi-lib         Display the mapping between command line options and
                            multiple library search directories
  -Wa,<options>            Pass comma-separated <options> on to the assembler
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor
  -Wl,<options>            Pass comma-separated <options> on to the linker
  -Xlinker <arg>           Pass <arg> on to the linker
  -save-temps              Do not delete intermediate files
  -pipe                    Use pipes rather than intermediate files
  -specs=<file>            Override builtin specs with the contents of <file>
  -std=<standard>          Assume that the input sources are for <standard>
  -B <directory>           Add <directory> to the compiler's search paths
  -b <machine>             Run gcc for target <machine>, if installed
  -V <version>             Run gcc version number <version>, if installed
  -v                       Display the programs invoked by the compiler
  -E                       Preprocess only; do not compile, assemble or link
  -S                       Compile only; do not assemble or link
  -c                       Compile and assemble, but do not link
  -o <file>                Place the output into <file>
  -x <language>            Specify the language of the following input files
                            PermiUsage: cpp [switches] input output
Switches:
  -include <file>           Include the contents of <file> before other files
  -imacros <file>           Accept definition of marcos in <file>
  -iprefix <path>           Specify <path> as a prefix for next two options
  -iwithprefix <dir>        Add <dir> to the end of the system include paths
  -iwithprefixbefore <dir>  Add <dir> to the end of the main include paths
  -isystem <dir>            Add <dir> to the start of the system include paths
  -idirafter <dir>          Add <dir> to the end of the system include paths
  -I <dir>                  Add <dir> to the end of the main include paths
  -nostdinc                 Do not search the system include directories
  -nostdinc++               Do not search the system include directories for C++
  -o <file>                 Put output into <file>
  -pedantic                 Issue all warnings demanded by strict ANSI C
  -traditional              Follow K&R pre-processor behaviour
  -trigraphs                Support ANSI C trigraphs
  -lang-c                   Assume that the input sources are in C
  -lang-c89                 Assume that the input is C89; depricated
  -lang-c++                 Assume that the input sources are in C++
  -lang-objc                Assume that the input sources are in ObjectiveC
  -lang-objc++              Assume that the input sources are in ObjectiveC++
  -lang-asm                 Assume that the input sources are in assembler
  -lang-chill               Assume that the input sources are in Chill
  -std=<std name>           Specify the conformance standard; one of:
                            gnu89, gnu9x, c89, c9x, iso9899:1990,
                            iso9899:199409, iso9899:199x
  -+                        Allow parsing of C++ style features
  -w                        Inhibit warning messages
  -Wtrigraphs               Warn if trigraphs are encountered
  -Wno-trigraphs            Do not warn about trigraphs
  -Wcomment{s}              Warn if one comment starts inside another
  -Wno-comment{s}           Do not warn about comments
  -Wtraditional             Warn if a macro argument is/would be turned into
                             a string if -traditional is specified
  -Wno-traditional          Do not warn about stringification
  -Wundef                   Warn if an undefined macro is used by #if
  -Wno-undef                Do not warn about testing undefined macros
  -Wimport                  Warn about the use of the #import directive
  -Wno-import               Do not warn about the use of #import
  -Werror                   Treat all warnings as errors
  -Wno-error                Do not treat warnings as errors
  -Wall                     Enable all preprocessor warnings
  -M                        Generate make dependencies
  -MM                       As -M, but ignore system header files
  -MD                       As -M, but put output in a .d file
  -MMD                      As -MD, but ignore system header files
  -MG                       Treat missing header file as generated files
  -g                        Include #define and #undef directives in the output
  -D<macro>                 Define a <macro> with string '1' as its value
  -D<macro>=<val>           Define a <macro> with <val> as its value
  -A<question> (<answer>)   Assert the <answer> to <question>
  -U<macro>                 Undefine <macro>
  -u or -undef              Do not predefine any macros
  -v                        Display the version number
  -H                        Print the name of header files as they are used
  -C                        Do not discard comments
  -dM                       Display a list of macro definitions active at end
  -dD                       Preserve macro definitions in output
  -dN                       As -dD except that only the names are preserved
  -dI                       Include #include directives in the output
  -ifoutput                 Describe skipped code blocks in output
  -P                        Do not generate #line directives
  -$                        Do not include '$' in identifiers
  -remap                    Remap file names when including files.
  -h or --help              Display this information
ssable languages include: c c++ assembler none
                            'none' means revert to the default behaviour of
                            guessing the language based on the file's extension

Options starting with -g, -f, -m, -O or -W are automatically passed on to
the various sub-processes invoked by gcc.  In order to pass other options
on to these processes the -W<letter> options must be used.


Добавлено спустя 18 минут 9 секунд:
Лекс Айрин писал(а):vada, ну почему, для виртуального? Это же выполняется под реальным процессором

С виртуальным реализация интерпретатора проще. Работать будет на любом процессоре без заморочек на ассемблер и линковку.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Компилятор на лету

Сообщение Лекс Айрин » 15.07.2013 14:02:00

vada писал(а):Работать будет на любом процессоре без заморочек на ассемблер и линковку.

А накладные расходы на саму виртуальную машину? Не, если использовать как верификатор... но смысла особого не вижу... все равно потом придется компилировать и собирать снова -- уже на реальную машину.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Компилятор на лету

Сообщение vada » 15.07.2013 16:31:40

Интерпретация имеется в виду на этапе отладки с дебагером. Т.е. можно код на лету поменять, откатиться по тексту программы назад, и пр. свистелки. Выполнять нативный код в таком режиме просто нереально.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Компилятор на лету

Сообщение Лекс Айрин » 15.07.2013 17:25:09

vada, я, кстати, не пользуюсь отладчиком... вначале как-то не пошло, а потом привык пользоваться методом инъекций и уже не тянет.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Компилятор на лету

Сообщение vada » 15.07.2013 18:06:44

Лекс Айрин писал(а):vada, я, кстати, не пользуюсь отладчиком... вначале как-то не пошло, а потом привык пользоваться методом инъекций и уже не тянет.

Ну это не повод. У меня когда дебагер не работал тоже перешел на JUnit. А что делать!? Но дебагером очень много кто пользуется.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Компилятор на лету

Сообщение Лекс Айрин » 15.07.2013 18:20:30

vada, знаешь, некогда было разбираться... проще и быстрее подобрать другой метод отладки. Конечно, было бы приятнее, если показывало бы взаимосвязано текст-ассемблерный листинг, но видно, не судьба.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Пред.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru