Skip to content

Commit

Permalink
Поддержка Open Watcom (#140)
Browse files Browse the repository at this point in the history
Правки получились не совсем красивые, но по-другому никак.
• Предупреждения в refalrts.cpp и Library.sref. Предупреждения нормальные
  и полезные.
• Open Watcom криво поддерживает безымянные пространства имён. Специально
  для этого кодогенератор теперь в .cpp-файлы добавляет директиву
  #define cookie_ns cookie_ns_XXX_YYY, где XXX и YYY — cookie-файлы
  в десятичной системе счисления. И вместо безымянный пространств имён
  можно использовать cookie_ns, не опасаясь конфликта имён.
• Хак-костыль %DEF_DUMP_FILE_NAME_HACK% для BCC 5.5 расширен и углублен
  для Open Watcom. Я не нашёл способа передать двойные кавычки в командную
  строку Open Watcom’а, вместо чего всю опцию с DUMP_FILE_NAME я вынес
  в конфигурационный файл. Для Open Watcom’а эта опция равна пустой строке.
  Т.е. при фейле теста поле зрения выкидывается не в файл, а на stderr.
  • Loading branch information
Mazdaywik committed Jan 4, 2018
1 parent f51dbff commit 866a1b0
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 84 deletions.
2 changes: 1 addition & 1 deletion autotests/Hash/run.bat
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ setlocal
-D../../src/srlib ^
-f-DSTEP_LIMIT=1000 ^
-f-DMEMORY_LIMIT=1000 ^
-f-DDUMP_FILE=%DEF_DUMP_FILE_NAME_HACK% ^
%DUMP_FILE_NAME_OPTION% ^
-f-DDONT_PRINT_STATISTICS ^
refalrts ^
refalrts-platform-specific
Expand Down
2 changes: 1 addition & 1 deletion autotests/Library/run.bat
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ setlocal
-f-DSTEP_LIMIT=1500 ^
-f-DMEMORY_LIMIT=1000 ^
-f-DIDENTS_LIMIT=100 ^
-f-DDUMP_FILE=%DEF_DUMP_FILE_NAME_HACK% ^
%DUMP_FILE_NAME_OPTION% ^
-f-DDONT_PRINT_STATISTICS ^
refalrts ^
refalrts-platform-specific
Expand Down
2 changes: 1 addition & 1 deletion autotests/compatibility/run.bat
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ goto :EOF
--prelude=refal5-builtins.srefi ^
-f-DSTEP_LIMIT=6000 ^
-f-DMEMORY_LIMIT=1000 ^
-f-DDUMP_FILE=%DEF_DUMP_FILE_NAME_HACK% ^
%DUMP_FILE_NAME_OPTION% ^
-f-DDONT_PRINT_STATISTICS

echo Prepare common prefix...
Expand Down
2 changes: 1 addition & 1 deletion autotests/run.bat
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ setlocal
-f-DSTEP_LIMIT=1500 ^
-f-DMEMORY_LIMIT=1000 ^
-f-DIDENTS_LIMIT=200 ^
-f-DDUMP_FILE=%DEF_DUMP_FILE_NAME_HACK% ^
%DUMP_FILE_NAME_OPTION% ^
-f-DDONT_PRINT_STATISTICS
set SRFLAGS_PREF=--prefix=_test_prefix
set SRFLAGS_NAT=refalrts refalrts-platform-specific
Expand Down
5 changes: 3 additions & 2 deletions scripts/c-plus-plus.conf.bat.template
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ rem Раскомментируте групппу строчек ниже в з
rem компилятора C++

rem Грязный хак для выполнения тестов
set DEF_DUMP_FILE_NAME_HACK="\\\"__dump.txt\\\""
set DUMP_FILE_NAME_OPTION=-f-DDUMP_FILE="\\\"__dump.txt\\\""

rem Если вы используете компилятор Visual C++, раскомментируйте одну из строчек
rem ниже. Убедитесь, что в ней задан правильный путь к файлу vcvarsall.bat
Expand All @@ -16,7 +16,7 @@ rem Не забудьте раскомментировать и эту стро
rem Если вы используете компилятор Borland C++ Compiler 5.5
:: set PATH=%PATH%;C:\Borland\BCC55\bin
:: set CPPLINEE=bcc32 -IC:\Borland\BCC55\Include -LC:\Borland\BCC55\Lib -w -e
:: set DEF_DUMP_FILE_NAME_HACK="\\"__dump.txt\\""
:: set DUMP_FILE_NAME_OPTION=-f-DDUMP_FILE="\\"__dump.txt\\""

rem Если вы используете компилятор MinGW (MinGW builds), установите в строке ниже
rem правильный путь до каталога bin дистрибутива MinGW.
Expand All @@ -27,6 +27,7 @@ rem Если вы используете компилятор Watcom, прове
rem путь к файлу owsetenv.bat
:: call C:\WATCOM\owsetenv.bat
:: set CPPLINEE=cl -nologo -W3 -passwopts:-wcd=13 -Fe
:: set DUMP_FILE_NAME_OPTION=


rem Если вы используете компилятор Clang, раскомментируйте все три строчки ниже
Expand Down
7 changes: 7 additions & 0 deletions src/compiler/Generator-Native.sref
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,13 @@ GenCommand-Native {
');'
);

(e.Indent) (#CmdCookieNS s.Cookie1 s.Cookie2)
= (e.Indent)
(
'#define cookie_ns '
'cookie_ns_' <StrFromInt s.Cookie1> '_' <StrFromInt s.Cookie2>
);

(e.Indent) (#CmdNativeFuncDescr e.Name) =
(e.Indent)
()
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/LowLevelRASL-Native.sref
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ $ENTRY LowLevelRASL-Native {
= <FillImplicitDeclarations e.DefinitionsRASL (e.Declarations)>
: e.DefinitionsRASL^ (e.Declarations^)

= (e.Declarations e.DefinitionsRASL);
= ((#CmdCookieNS s.Hash1 s.Hash2) e.Declarations e.DefinitionsRASL);
};
}

Expand Down
Loading

0 comments on commit 866a1b0

Please sign in to comment.