OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 20 Сентябрь, 2017 08:53

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 101 ]  На страницу 1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: XDS 2.6 beta release
СообщениеДобавлено: Четверг, 29 Декабрь, 2011 15:38 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
Ничего себе, новогоднее поздравление! Компания Excelsior выпустила бета-версию XDS 2.6!
Уже скачал, буду пробовать воспроизвести те баги, которые я у них нашёл (и сообщил им на форум). Надеюсь, хоть что-нибудь исправлено.
О результатах сообщу здесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Четверг, 29 Декабрь, 2011 16:15 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7616
Откуда: Троицк, Москва
Александр Ильин писал(а):
Компания Excelsior выпустила бета-версию XDS 2.6!
Вот.
А ворчали... мол, то да сё...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Четверг, 29 Декабрь, 2011 19:00 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Ну, вот. Теперь компоновщик и компилятор будут одной версии :)
Интересно, сделали они, наконец, топологическую сортировку модулей перед компиляцией проекта, или нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Четверг, 29 Декабрь, 2011 19:09 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
igor писал(а):
Ну, вот. Теперь компоновщик и компилятор будут одной версии :)
Вот эти двое?
Код:
>xlink
XDS Link Version 2.13.3 Copyright (c) Excelsior 1995-2009.
...
>xc
O2/M2 development system v2.60 TS  (c) 1991-2011 Excelsior, LLC. (build 16.11.2011)
...
igor писал(а):
Интересно, сделали они, наконец, топологическую сортировку модулей перед компиляцией проекта, или нет?
Почему вы думаете, что они не делают сортировку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Четверг, 29 Декабрь, 2011 20:00 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Александр Ильин писал(а):
Вот эти двое?
Код:
>XDS Link Version 2.13.3 Copyright (c) Excelsior 1995-2009.
...
Нет. Я сейчас пользуюсь вот этим:
Код:
XDS Link Version 2.6 Copyright (c) 1995-2001 Excelsior
... плюс компилятор v2.51

Александр Ильин писал(а):
Почему вы думаете, что они не делают сортировку?
Потому что:
Код:
compilation aborted: out of heap space
После серии повторных компиляций (ничего не трогая в исходниках) всё проходит успешно. Думаю что этого можно было бы избежать (хотя не проверял), если вручную поправить мэйк-файл, но меня ломает делать ручные правки файла, который создаётся автоматически.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Четверг, 29 Декабрь, 2011 22:36 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
igor писал(а):
Александр Ильин писал(а):
Вот эти двое?
Нет. Я сейчас пользуюсь вот этим:
Код:
XDS Link Version 2.6 Copyright (c) 1995-2001 Excelsior
... плюс компилятор v2.51
Я в своём сообщении выше привёл версии xlink и xc из XDS 2.6 beta, так что совпадения не ждите.
igor писал(а):
Александр Ильин писал(а):
Почему вы думаете, что они не делают сортировку?
Потому что:
Код:
compilation aborted: out of heap space
Значение COMPILERHEAP не пробовали увеличить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Четверг, 29 Декабрь, 2011 22:39 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
Интересно то, что теперь в общий пакет добавлен также XDS-C (via C compiler, притом добавлена поддержка Watcom C) и TopSpeed Compatibility Pack (это какая-то библиотека для Modula-2). Из-за этого, кстати, дистрибутив распух вдвое. И установленная программа, соответственно, занимает уже 30 Мб, а не 17, как предыдущая версия. Конечно, лишнее можно потереть, но лучше бы при установке спрашивали, что нужно, а что нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 03:16 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Александр Ильин писал(а):
... и TopSpeed Compatibility Pack (это какая-то библиотека для Modula-2).
...
Это (TopSpeed) - Борланд-среда для Модулы, по-моему...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 08:01 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8781
Откуда: Россия, Орёл
Это не борланда, это отдельная контора TopSpeed и их реализация М2. А откололись они именно от Борланда, да, после того, как Борланд закрыл развитие Модулы-2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 13:16 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Александр Ильин писал(а):
так что совпадения не ждите
Ну, и ладно. Ничего страшного :)

Александр Ильин писал(а):
Значение COMPILERHEAP не пробовали увеличить?
Спасибо за совет. Работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 14:08 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
igor писал(а):
Александр Ильин писал(а):
Значение COMPILERHEAP не пробовали увеличить?
Спасибо за совет. Работает.
Я понимаю, что ошибка плохо воспроизводится (у меня лишь несколько раз за всё время случалась), так что я не уверен, что это поможет. Просто спросил. Если у них там что-то зацикливается из-за отсутствия топологической сортировки, то никакое увеличение, понятно, не поможет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 16:00 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Насчёт отсутствия сортировки модулей по всей видимости я ошибался :? . Всё дело было именно в размере выделяемой динамической памяти. По умолчанию там 12MB, в новой версии столько же, я посмотрел уже.

Вот тут я не могу понять логику разработчиков. Пока Александр Ильин не подсказал, мне и в голову не приходило. Память ведь можно выделять и динамически. Зачем "напрягать" пользователя этими второстепенными настройками? Если в какой-то момент компилятор обнаружил, что он не может удовлетворить запрос на размещение в куче, то что ему мешает запросить дополнительную память у системы? Я сторонник того, что если какие либо вопросы в принципе можно разрулить без помощи человека, то решение этих вопросов следует автоматизировать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 16:05 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Александр Ильин писал(а):
Я понимаю, что ошибка плохо воспроизводится (у меня лишь несколько раз за всё время случалась)
У меня эта ошибка стабильно воспроизводилась (до того, как я применил Ваш совет :) ), если перед компиляцией удалить все символьные и объектные файлы проекта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 16:10 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Кстати, сортировки модулей может быть таки нет :) . Просто компилятор делает несколько проходов по списку модулей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 16:34 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
igor писал(а):
Вот тут я не могу понять логику разработчиков. Пока Александр Ильин не подсказал, мне и в голову не приходило. Память ведь можно выделять и динамически. Зачем "напрягать" пользователя этими второстепенными настройками? Если в какой-то момент компилятор обнаружил, что он не может удовлетворить запрос на размещение в куче, то что ему мешает запросить дополнительную память у системы?
Понятия не имею, чем они руководствуются в данном вопросе. Если задать лимит = 0, то потребление памяти будет автоматически расти при нехватке, как вы и предлагаете.

С другой стороны, возможность задать = 0 и динамически увеличивать верхнюю границу появилась в рантайме относительно недавно (одну-две версии назад), так что они могли просто не подумать об увеличении лимита для компилятора.

А вообще, верхнюю границу иметь полезно, странно только, что она такая маленькая. Впрочем, это зависит от компилируемых проектов.

Впрочем, у меня есть вопросы и посерьёзнее к их менеджеру памяти. Он не только не может выделить больше одного Гб памяти, так ещё и собрать свободную не в состоянии. Может быть, это и есть причина проблемы в работе компилятора: памяти хватает, просто она не освобождается вовремя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 17:28 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
По поводу отличий новой версии от старой, только внешние проявления при первом взгляде.

Во-первых, консольный компилятор запросил для своей работы библиотеку libts.lib, что вобщем-то неудивительно (помним про TSPC).
Во-вторых, размер exe'шника одного из моих проектов (другие не смотрел) подскочил на 111KB. Видимо, груз "лишних" библиотек.

Да, тут я должен пояснить, что не использую IDE. Из всего пакета XDS я использую только несколько файлов, только те что не обходимы для работы консольных xc.exe и xlink.exe (изредка ещё xlib.exe, и совсем уж никогда his.exe), плюс библиотеки для поддержки WinAPI. Исходники "строчу" в Notepad++.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 17:42 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Александр Ильин писал(а):
Если задать лимит = 0, то потребление памяти будет автоматически расти при нехватке, как вы и предлагаете.
Задал 0, проверил, проблем не возникает. Пожалуй, это оптимальный вариант для меня. Оптимальный в том смысле, что никогда больше не понадобится лезть в эту настройку, даже если проект разрастётся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 17:50 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
igor писал(а):
По поводу отличий новой версии от старой, только внешние проявления при первом взгляде.
У меня установленная программа находится в версионированной файловой системе (Git) на случай, если я какие-то настройки испорчу. Так вот, я кое-что интересное разглядел при обновлении. Diff файла DEF/XDS/oberonRTS.def:
Код:
+<* IF NOT __GEN_C__ THEN *> -- GCInfo engine uses INT64
+  GCInfo    = RECORD
+                -- total allocation/reclamation statistics of Oberon heap, in megabytes.
+                mbAllocated :CARDINAL;
+                mbReclaimed :CARDINAL;
+
+                -- total time spent in GC, in ms.
+                totalGCTime :CARDINAL;
+              END;
+<* END *> -- GCInfo engine uses INT64
 
 VAR
   nullModule: Module;
@@ -18,6 +32,9 @@ VAR
 
 (* ------------------ Garbage Collector ------------------ *)
 
+PROCEDURE SetHeaplimit (newHeaplimit :CARDINAL);
+(* Set the heaplimit *)
+
 PROCEDURE Collect;
 (* Garbage Collector *)
 
@@ -31,11 +48,28 @@ PROCEDURE GetInfo(VAR objects, busymem: CARDINAL);
    of allocated memory.
 *)
 
-PROCEDURE gcAnchorTrace (on :BOOLEAN);
-(* enables/disables printing "heap weight" of global variables
-   when garbage collecting
+PROCEDURE gcAnchorTrace (on :BOOLEAN; weightThreshold := 0 :CARDINAL);
+(* Enables/disables printing "heap weight" of all anchors (global variables,
+   stack and destructors) when garbage collecting.
+*)
+
+PROCEDURE gcHeapTrace (on :BOOLEAN; heapTracingThreshold := 0 :CARDINAL);
+(* Enables/disables printing of heap statistics (amount of live objects
+   of each type) when garbage collecting.
 *)
 
+<* IF NOT __GEN_C__ THEN *> -- GCInfo engine uses INT64
+PROCEDURE getGCInfo (VAR gcInfo: GCInfo);
+(* Fills fields of GCInfo structure *)
+<* END *> -- GCInfo engine uses INT64
+
+
+PROCEDURE ReduceGCConservatism (obj: SYSTEM.ADDRESS);
+(* Reduces conservatism of GC with respect to the specified object.
+   All references to this object from the stack are ignored and not scanned,
+   so it is alive iff it is reachable from global variable or from another
+   alive object.
+*)
 
 (* ----------------- Object finalization ----------------- *)
 
@@ -88,4 +122,8 @@ PROCEDURE IterCommands(mod: Module; session: SYSTEM.ADDRESS; iter: NameIterator)
 PROCEDURE IterTypes(mod: Module; session: SYSTEM.ADDRESS; iter: NameIterator);
 (* Iterates all types in the module *)
 
+(* -------------- Stack managerment ----------- *)
+
+PROCEDURE SetStackSize(newSize: CARDINAL): BOOLEAN;
+
 END oberonRTS.
Другими словами, программа сама теперь может задать себе HeapSize, StackSize, запросить кое-какую информацию о работе GC и состоянии памяти, а также указать на некоторые объекты и сказать, что их можно удалить GC, если ссылки на них остались только в стеке.
igor писал(а):
Во-первых, консольный компилятор запросил для своей работы библиотеку libts.lib, что вобщем-то неудивительно (помним про TSPC).
Во-вторых, размер exe'шника одного из моих проектов (другие не смотрел) подскочил на 111KB. Видимо, груз "лишних" библиотек.
Лишний груз видеть бы не хотелось. Свои проекты пока не сравнивал.
igor писал(а):
Да, тут я должен пояснить, что не использую IDE. Из всего пакета XDS я использую только несколько файлов, только те что не обходимы для работы консольных xc.exe и xlink.exe (изредка ещё xlib.exe, и совсем уж никогда his.exe), плюс библиотеки для поддержки WinAPI. Исходники "строчу" в Notepad++.
Аналогично.

Кстати, в Windows.def тоже кое-что изменилось и добавилось:
Код:
@@ -5484,7 +5484,7 @@ CONST SEM_FAILCRITICALERRORS     = SEM_SET {SEM__FAILCRITICALERRORS};     (* 0x0
       SEM_NOALIGNMENTFAULTEXCEPT = SEM_SET {SEM__NOALIGNMENTFAULTEXCEPT}; (* 0x0004 *)
       SEM_NOOPENFILEERRORBOX     = SEM_SET {SEM__NOOPENFILEERRORBOX};     (* 0x8000 *)
 
-PROCEDURE SetErrorMode (uMode : SEM_SET);
+PROCEDURE SetErrorMode (uMode : SEM_SET) : SEM_SET;
 
 PROCEDURE ReadProcessMemory (hProcess                    : HANDLE;
                              lpBaseAddress               : LPCVOID;
@@ -8781,6 +8781,14 @@ PROCEDURE QueryPerformanceCounter   (VAR PerformanceCount : LARGE_INTEGER) : BOO
 PROCEDURE QueryPerformanceFrequency (VAR Frequency : LARGE_INTEGER) : BOOL;
 
 (*
+** RtlVerifyVersionInfo() os product type values
+*)
+
+CONST VER_NT_WORKSTATION       = 1;
+      VER_NT_DOMAIN_CONTROLLER = 2;
+      VER_NT_SERVER            = 3;
+
+(*
 ** dwPlatformId defines:
 *)
 
@@ -8816,6 +8824,44 @@ TYPE OSVERSIONINFOW = RECORD
            POSVERSIONINFO = POSVERSIONINFOA;
 <* END *>
 
+TYPE OSVERSIONINFOEXA = RECORD
+                             dwOSVersionInfoSize : DWORD;
+                             dwMajorVersion      : DWORD;
+                             dwMinorVersion      : DWORD;
+                             dwBuildNumber       : DWORD;
+                             dwPlatformId        : VER_PLATFORM_TYPE;
+                             szCSDVersion        : ARRAY [0..127] OF CHAR; (* Maintenance string for PSS usage *)
+                             wServicePackMajor   : WORD;
+                             wServicePackMinor   : WORD;
+                             wSuiteMask          : WORD;
+                             wProductType        : BYTE;
+                             wReserved           : BYTE;
+                      END;
+    POSVERSIONINFOEXA = POINTER TO OSVERSIONINFOEXA;
+
+TYPE OSVERSIONINFOEXW = RECORD
+                             dwOSVersionInfoSize : DWORD;
+                             dwMajorVersion      : DWORD;
+                             dwMinorVersion      : DWORD;
+                             dwBuildNumber       : DWORD;
+                             dwPlatformId        : VER_PLATFORM_TYPE;
+                             szCSDVersion        : ARRAY [0..127] OF WCHAR; (* Maintenance string for PSS usage *)
+                             wServicePackMajor   : WORD;
+                             wServicePackMinor   : WORD;
+                             wSuiteMask          : WORD;
+                             wProductType        : BYTE;
+                             wReserved           : BYTE;
+                      END;
+    POSVERSIONINFOEXW = POINTER TO OSVERSIONINFOEXW;
+
+<* IF DEFINED (UNICODE) THEN *>
+       TYPE OSVERSIONINFOEX =  OSVERSIONINFOEXW;
+           POSVERSIONINFOEX = POSVERSIONINFOEXW;
+<* ELSE *>
+       TYPE OSVERSIONINFOEX =  OSVERSIONINFOEXA;
+           POSVERSIONINFOEX = POSVERSIONINFOEXA;
+<* END *>
+
 PROCEDURE GetVersionExA (VAR VersionInformation : OSVERSIONINFOA) : BOOL;
 PROCEDURE GetVersionExW (VAR VersionInformation : OSVERSIONINFOW) : BOOL;
 
@@ -19190,7 +19236,7 @@ TYPE LOGFONTA = RECORD
                        lfUnderline       : BOOL8;
                        lfStrikeOut       : BOOL8;
                        lfCharSet         : CHARSET_TYPE;
-                       lfOutputPrecision : OUT_PRECIS_ENUM;
+                       lfOutPrecision    : OUT_PRECIS_ENUM;
                        lfClipPrecision   : CLIP_PRECIS_SET;
                        lfQuality         : QUALITY_ENUM;
                        lfPitchAndFamily  : PITCH_AND_FAMILY_SET;
@@ -27798,6 +27844,7 @@ CONST IDC_ARROW       = SYSTEM.CAST (RESOURCESTR, VAL (ULONG, 32512));
       IDC_SIZENS      = SYSTEM.CAST (RESOURCESTR, VAL (ULONG, 32645));
       IDC_SIZEALL     = SYSTEM.CAST (RESOURCESTR, VAL (ULONG, 32646));
       IDC_NO          = SYSTEM.CAST (RESOURCESTR, VAL (ULONG, 32648));
+      IDC_HAND        = SYSTEM.CAST (RESOURCESTR, VAL (ULONG, 32649));
       IDC_APPSTARTING = SYSTEM.CAST (RESOURCESTR, VAL (ULONG, 32650));
       IDC_HELP        = SYSTEM.CAST (RESOURCESTR, VAL (ULONG, 32651));


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 18:20 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
igor писал(а):
Во-вторых, размер exe'шника одного из моих проектов (другие не смотрел) подскочил на 111KB. Видимо, груз "лишних" библиотек.
Плагин Obide.dll увеличился на 23 Кб (с 162'304 до 185'856 байт). Плагин WebEdit.dll увеличился на те же 23 Кб (с 59'392 до 72'304 байт). Это не так много, но всё равно представляется неоправданным. Знать бы, что такого хорошего и полезного добавилось... Раньше рантайм "весил" около 32 Кб, теперь будет более 50?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS 2.6 beta release
СообщениеДобавлено: Пятница, 30 Декабрь, 2011 18:23 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Как и следовало ожидать, в основном (хоть и не во всём) изменения заключаются в расширении уже существующей системы.
Собственно, для меня эти расширения не актуальны. Я решил перейти на новую версию, потому что на официальном сайте заявлено, что в ней "bug fixes". С другой стороны, раз есть расширения, то есть и новые баги. :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 101 ]  На страницу 1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2017, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB