OberonCore https://forum.oberoncore.ru/ |
|
Modula-3 https://forum.oberoncore.ru/viewtopic.php?f=120&t=1354 |
Страница 3 из 4 |
Автор: | Kemet [ Среда, 28 Октябрь, 2015 08:53 ] |
Заголовок сообщения: | Re: Modula-3 |
kemiisto писал(а): Что-то я не вижу там ничего сделанного. Или у нас разные понятия о сделанном. Пару прошлогодних пре-релизных сборок под пару конкретных платформ - это не серьёзно. Даже ковырять желания не возникло. Продолжаем есть С++ кактус. Ну, наверное, разное представление, да. Чего ты там не видишь? Не видишь поддержку Юникода, C-Бакенд, LLVM-бакенд, эпохальный (если посмотреть на объем правок GCC, изменения в языке) переход с GCC-4.3-бакенда на на GCC-4.7, новые пакеты, изменения в языке ... Действительно, ребята ж ничего не сделали, правда?, то ли дело ... У ребят банально нет возможности, сгенерировать, протестировать, собрать пакеты под все поддерживаемые платформы. Берешь предыдущую версию CM3, ставишь, выкачиваешь исходники, собираешь и устанавливаешь новый релиз. Используешь, тестируешь, сообщаешь о багах ... |
Автор: | kemiisto [ Среда, 28 Октябрь, 2015 13:08 ] |
Заголовок сообщения: | Re: Modula-3 |
Kemet писал(а): Чего ты там не видишь? Готового инструмента я там не вижу. Очевидно же. Kemet писал(а): Действительно, ребята ж ничего не сделали, правда?, то ли дело ... Они, может, что-то и сделали, но для меня все эти слова мало что значат. Повторюсь, мне надо "сесть и поехать", пощупать инструмент. Kemet писал(а): У ребят банально нет возможности, сгенерировать, протестировать, собрать пакеты под все поддерживаемые платформы. Ну это уже не мои проблемы. Проекты в состоянии "works on the developer machine only" мне безынтересны. С 3-4 активными контрибьюторами она уже мертво, это вопрос времени. Kemet писал(а): Берешь предыдущую версию CM3, ставишь, выкачиваешь исходники, собираешь и устанавливаешь новый релиз. Используешь, тестируешь, сообщаешь о багах ... Оставим это профессиональным программистам. Там нет даже инструкции как это сделать, в конце концов. Вывод напрашивается очевидный: CM3 стал pet-project'ом пары-тройки человек. Just for Fun. |
Автор: | Kemet [ Среда, 28 Октябрь, 2015 15:08 ] |
Заголовок сообщения: | Re: Modula-3 |
kemiisto, очевидно, что разработчики считают текущее состояние незавершенным, чтобы выпускать в виде релиза. Нужен свежачок - собирай из сырцов, нужен стабильный релиз - бери сборку предыдущего релиза здесь. |
Автор: | kemiisto [ Пятница, 03 Июнь, 2016 11:38 ] |
Заголовок сообщения: | Re: Modula-3 |
Kemet, так а как его собрать то? Я что-то никак понять не могу, даже с какого конца зайти... |
Автор: | Kemet [ Пятница, 03 Июнь, 2016 12:56 ] |
Заголовок сообщения: | Re: Modula-3 |
kemiisto, так там же вроде как есть релиз под винду |
Автор: | kemiisto [ Пятница, 03 Июнь, 2016 16:17 ] |
Заголовок сообщения: | Re: Modula-3 |
Kemet писал(а): kemiisto, так там же вроде как есть релиз под винду Туфта там бесполезная лежит полугодовой давности, а не релиз. ![]() |
Автор: | kemiisto [ Пятница, 03 Июнь, 2016 16:29 ] |
Заголовок сообщения: | Re: Modula-3 |
Кстати, в старых "минимальных" сборках mklib.exe был в папке bin, что как-бы намекает, что фиг ты его так просто соберёшь, а этот недорелиз с github действительно неполный. Хотя, может я что-то и не так делаю... |
Автор: | Kemet [ Пятница, 03 Июнь, 2016 18:53 ] |
Заголовок сообщения: | Re: Modula-3 |
"миинимальная" сборка предназначена для ОБНОВЛЕНИЯ существующей установки cm3. Возьми, к примеру, с сайта elego установочный комплект предыдущего релиза. Лучше именно установочный, - он пропишет переменные окружения. Потом накатай поверх скаченный с гитхаба минимальный релиз и в папку bin скопируй содержимое архива cm3-min-NT386-d5.10.0-VC2015-20160102-symbols.zip. Запусти командную строку ВмзуалСтудии, перейди в каталог с исходниками cm3, папка scripts, в файле pkginfo.txt поудаляй префикмы с путями до пакетов ( там где есть символ /). Перейди в папку win, собери фронт командой do-cm3-front, обнови компиль install-cm3-compiler upgrade. А потом попробуй сделать полную сборку илс собрать те пакеты, что нужны. |
Автор: | Виктор Мясников [ Пятница, 11 Январь, 2019 22:13 ] |
Заголовок сообщения: | Re: Modula-3 |
Цитата: Лучше именно установочный, - он пропишет переменные окружения. Да, .msi уменьшает ручную работу Наиболее полезные файлы находятся здесь: https://modula3.elegosoft.com/cm3/uploaded-archives/ cm3-min-x86-d5.9.0-VC110-20130908.msi cm3-all-x86-d5.9.0-VC110-20130908.zip cm3-min-AMD64_NT-d5.9.0-VC110-20131012.msi cm3-all-AMD64_NT-d5.9.0-VC110-20131012.zip Точно обновляются до Jan 3 2016: [url] https://github.com/modula3/cm3/tree/5a8 ... 1841a45f23 [/url] Но x64 требует доработок, как минимум: Код: --- RTOS.m3 000 Sun Jan 03 11:17:00 2016 +++ RTOS.m3 Fri Jan 04 13:15:50 2019 @@ -19,18 +19,20 @@ PROCEDURE Crash () = CONST Magic = 1 * ADRSIZE (INTEGER); (* == offset of "fp" in this frame *) VAR fp: ADDRESS := ADR (fp) + Magic; (* == my frame pointer *) BEGIN IF WinBase.IsDebuggerPresent () # 0 THEN WinBase.DebugBreak (); END; - RTThread.SuspendOthers (); - RTMachInfo.DumpStack (LOOPHOLE (Crash, ADDRESS), fp); + (* RTThread.SuspendOthers (); + RTMachInfo.DumpStack (LOOPHOLE (Crash, ADDRESS), fp); *) + (** RTThread.ResumeOthers (); RTSignal.RestoreHandlers (); (* so we really do crash... *) - Exit (-1); + ***) + Exit (4000); END Crash; Цитата: Запусти командную строку ВмзуалСтудии, перейди в каталог с исходниками cm3, папка scripts Основы рабочего метода https://mail.elegosoft.com/pipermail/m3devel/2012-September/010131.html Код: --- cm3CommandShell.CMD-000 Sun Jan 03 11:17:00 2016 +++ cm3CommandShell.CMD Wed Jan 02 15:24:30 2019 @@ -96,2 +96,3 @@ echo %_cm3_ThisOS_Long% | (find /I "Windows 7" >NUL:) && ((set _cm3_ThisOS=Win7) & goto ver_7) +echo %_cm3_ThisOS_Long% | (find /I "Windows 10" >NUL:) && ((set _cm3_ThisOS=Win7) & goto ver_7) echo %_cm3_ThisOS_Long% | (find /I "Windows Server 2008" >NUL:) && ((set _cm3_ThisOS=2008) & goto ver_2008) Код: --- do-cm3.cmd 000 Sun Jan 03 11:17:00 2016 +++ do-cm3.cmd Sat Dec 29 11:46:06 2018 @@ -85,6 +85,7 @@ if NOT exist %SystemRoot%\system32\systeminfo.exe goto ver_NoSysInfo FOR /F "usebackq tokens=3* delims=: " %%i IN (`systeminfo ^| find /I "OS Name"`) DO set _cm3_ThisOS_Long=%%i %%j echo %_cm3_ThisOS_Long% | (find /I "Windows Vista" >NUL:) && ((set _cm3_ThisOS=Vista) & goto ver_Vista) +echo %_cm3_ThisOS_Long% | (find /I "Windows 10" >NUL:) && ((set _cm3_ThisOS=Win7) & goto ver_7) echo %_cm3_ThisOS_Long% | (find /I "Windows 7" >NUL:) && ((set _cm3_ThisOS=Win7) & goto ver_7) echo %_cm3_ThisOS_Long% | (find /I "Windows Server 2008" >NUL:) && ((set _cm3_ThisOS=2008) & goto ver_2008) Здесь метод переключения 32bit/64bit , C:/D: и между минимальной и полной сборкой: Код: --- RCC_upgradeCM3.cmd 000 Sun Jan 03 11:17:00 2016 +++ RCC_upgradeCM3.cmd Wed Jan 02 16:45:50 2019 @@ -48,7 +48,7 @@ set _cm3_Repeat=1 set _cm3_DO= set _z_ctrlArgs= -set _z_Stage3=min +set _z_Stage3=all @@ -113,7 +113,7 @@ if exist "bin\cm3.exe" if exist "pkg" set CM3_ROOT=%CD%& popd & goto FoundRoot cd .. if exist "bin\cm3.exe" if exist "pkg" set CM3_ROOT=%CD%& popd & goto FoundRoot -if exist "C:\cm3\bin\cm3.exe" if exist "C:\cm3\pkg" set CM3_ROOT=C:\cm3& popd & goto FoundRoot +if exist "D:\cm3\bin\cm3.exe" if exist "D:\cm3\pkg" set CM3_ROOT=D:\cm3& popd & goto FoundRoot popd rem otherwise, search the existing PATH environment variable to try and find the root of the cm3 installation for %%F in (cm3.exe) do set CM3_ROOT=%%~dp$PATH:F.. @@ -138,7 +138,7 @@ if /I "%_cm3_CommandReady%"=="TRUE" goto FindPkgInfo echo Setting up environment variables for CM3 ... echo. -call c:\cm3\bin\cm3CommandShell.CMD SameWindow +call d:\cm3\bin\cm3CommandShell.CMD SameWindow @echo off if /I not "%_cm3_CommandReady%"=="TRUE" goto FatalSetupCM3 @@ -237,7 +237,7 @@ echo Creating "%CM3_ROOT%\bin\cm3.cfg" ... if exist "%CM3_ROOT%\bin\cm3.cfg" del /f %CM3_ROOT%\bin\cm3.cfg REM OLD: echo INSTALL_ROOT = path() ^& "/..">%CM3_ROOT%\bin\cm3.cfg -REM OLD: echo include(path() ^& "/config/NT386")>>%CM3_ROOT%\bin\cm3.cfg +REM OLD: echo include(path() ^& "/config/AMD64_NT")>>%CM3_ROOT%\bin\cm3.cfg copy /y %_cm3_PkgTree%m3-sys\cminstall\src\config-no-install\cm3.cfg %CM3_ROOT%\bin\cm3.cfg if errorlevel 1 echo ERROR: Problem copying files. & (set _cm3_ExitCode=5) & goto END if not exist "%CM3_ROOT%\bin\cm3.cfg" echo ERROR: Problem copying files. & (set _cm3_ExitCode=5) & goto END @@ -287,12 +287,12 @@ :FN_FinishStage :-------------- if "%_cm3_CM3Failure%"=="TRUE" echo ...skipping installation of cm3.exe due to errors... & goto :EOF -if not exist "%_cm3_PkgTree%m3-sys\cm3\NT386\cm3.exe" goto StageFailure +if not exist "%_cm3_PkgTree%m3-sys\cm3\AMD64_NT\cm3.exe" goto StageFailure echo ...installing new cm3.exe as "%CM3_ROOT%\bin\cm3.exe" ... if exist "%CM3_ROOT%\bin\cm3.exe" del /f "%CM3_ROOT%\bin\cm3.exe" if exist "%CM3_ROOT%\bin\cm3.pdb" del /f "%CM3_ROOT%\bin\cm3.pdb" -copy "%_cm3_PkgTree%m3-sys\cm3\NT386\cm3.exe" "%CM3_ROOT%\bin\cm3.exe" -if exist "%_cm3_PkgTree%m3-sys\cm3\NT386\cm3.pdb" copy "%_cm3_PkgTree%m3-sys\cm3\NT386\cm3.pdb" "%CM3_ROOT%\bin\cm3.pdb" +copy "%_cm3_PkgTree%m3-sys\cm3\AMD64_NT\cm3.exe" "%CM3_ROOT%\bin\cm3.exe" +if exist "%_cm3_PkgTree%m3-sys\cm3\AMD64_NT\cm3.pdb" copy "%_cm3_PkgTree%m3-sys\cm3\AMD64_NT\cm3.pdb" "%CM3_ROOT%\bin\cm3.pdb" if not exist "%CM3_ROOT%\bin\cm3.exe" goto StageFailure goto :EOF Переход на "32-bits Unicode" довольно хитроумен -- постараюсь выложить комплект |
Автор: | Kemet [ Суббота, 12 Январь, 2019 11:29 ] |
Заголовок сообщения: | Re: Modula-3 |
Здорово |
Автор: | Виктор Мясников [ Четверг, 17 Октябрь, 2019 14:30 ] |
Заголовок сообщения: | Re: Modula-3 |
vvmtutby писал(а): Переход на "32-bits Unicode" довольно хитроумен -- постараюсь выложить комплект Здесь новости ( конец августа/сентябрь): https://github.com/modula3/cm3/issues/47 Ярослав "приютил" обещанный ( см. выше ) комплект: I ( V.V.M.) created some distributives: cm3-min-AMD64_NT-d5.10.0-VC110-20190602_Unicode_VVMtutby_Edt.7z cm3-min-AMD64_NT-d5.10.0-VC141-20190602_Unicode_VVMtutby_Edt.7z Our friend ( Active Oberon, A2 (Bluebottle) developer and GoLang / C# / Delphi software engineer) Yaroslav Romanchenko helped us publish the necessary files on his website ( sage.com.ua ). cm3 2019-06-02 Unicode AMD_64 Target ( by MS VS 2012) cm3 2019-06-02 Unicode AMD_64 Target ( by MS VS 2017) Пожалуй, прямые ссылки на файлы пусть побудут в Issue #47 на Github ( там проще вносить изменения: потенциально direct URLs могут измениться и т.п.) |
Автор: | Виктор Мясников [ Суббота, 15 Май, 2021 09:37 ] |
Заголовок сообщения: | Re: Modula-3 |
kemiisto писал(а): Kemet писал(а): kemiisto, так там же вроде как есть релиз под винду Скачал cm3-min-NT386-d5.10.0-VC2015-20160102.zip, распаковал, пути прописал. От минимальной поставки толку мало. Например, мне нужна библиотека (...). Не собирается, не хватает mklink. Ну хорошо, думаю, сначала его ещё соберём. Скачал, не собирается, нужен m3middle. А что-бы собрать m3middle нужен уже собранный mklink. + kemiisto писал(а): Кстати, в старых "минимальных" сборках mklib.exe был в папке bin, (. . .), а этот релиз с github ( VVM: в части cm3-min*.* ) действительно неполный. Файлы mklib.exe sysutils.dll можно взять из cm3-all*.* Работа над решением "на века" идёт в Issue #200 |
Автор: | Виктор Мясников [ Суббота, 15 Май, 2021 09:52 ] |
Заголовок сообщения: | Re: Modula-3 |
Alexey Veselovsky писал(а): Меня смущает отсутствие деструкторов в модуле-3. Как там сделать raii? http://ru.wikipedia.org/wiki/RAII Про RAII в Modula-3: PSV100 о статье Hans-J. Boehm PSV100 писал(а): (...) проблематика финализаторов, несмотря на объявление их как deprecated отказаться и выпилить их, фактически, невозможно. Ещё в начале 2000-х была статья от товарища Boehm (не случайный человек в сфере мусорщиков), где он указывал прежде всего на изначально кривой дизайн этих финализаторов в Java и C# (в статейке затрагивается и универсальная сборка на "reference counter", также имеющая проблемы с деструкторами в общем случае), и показал, что в той же Modula 3 решения были куда "прямее" (напр., в Modula осуществлялось упорядочивание исполнения финализаторов на основе зависимости между объектами, выявляемой косвенно -- объект может содержать ссылки на другие объекты, но не использовать их в финализаторе):
* Destructors, Finalizers, and Synchronization * Презентация В статейке Boehm упоминает и про некоторые оптимизации от компиляторов, которые могут привести к некорректной отработке финализаторов. (...) Видимо, в целом способ управления памятью -- ключевая штуковина, фундаментально определяющая всю архитектуру ПО, его структуру и свойства. |
Автор: | Виктор Мясников [ Среда, 27 Октябрь, 2021 09:39 ] |
Заголовок сообщения: | Re: Modula-3 |
Modula-3 — Исторический контекст Цитата: Тот, кто не будет применять новые лекарства, должен ожидать нового зла: ибо время - величайший новатор, и если время, конечно, изменит положение вещей к худшему, а мудрость и совет не изменят их к лучшему, каков будет конец? ---Френсис Бэкон История 6 ноября 1986 года Морис Уилкс написал Никлаусу Вирту с предложением пересмотреть и стандартизировать язык Modula-2+ в качестве преемника Modula-2. Вирт благословил этот проект, и так родился комитет Модула-3. На первом заседании комитет единогласно согласился придерживаться духа Modula-2, выбирая простые, безопасные, проверенные функции, а не экспериментируя с нашими собственными непроверенными идеями. Когда мы перешли к деталям, мы обнаружили, что добиться единодушия труднее. Modula-3 поддерживает интерфейсы, объекты, универсальные шаблоны, легкие потоки управления ( "нити"), изоляцию небезопасного кода, сборку мусора, исключения и подтипы. Некоторые из наиболее проблемных функций Modula-2 были удалены, например, вариантные записи и встроенный числовой тип данных без знака. Modula-3 существенно проще других языков с сопоставимой мощностью. ( . . .) |
Автор: | budden [ Среда, 27 Октябрь, 2021 17:57 ] |
Заголовок сообщения: | Re: Modula-3 |
Не помешала бы табличка сравнения с Активным Обероном. |
Автор: | Wlad [ Среда, 27 Октябрь, 2021 20:30 ] |
Заголовок сообщения: | Re: Modula-3 |
vvmtutby писал(а): ...Modula-3... А - слабО ЧЯ на М-3 переписать? ![]() |
Автор: | Виктор Мясников [ Четверг, 28 Октябрь, 2021 17:44 ] |
Заголовок сообщения: | Re: Modula-3 |
Wlad писал(а): vvmtutby писал(а): ...Modula-3... А - слабО ЧЯ на М-3 переписать? ![]() |
Автор: | Виктор Мясников [ Четверг, 28 Октябрь, 2021 17:58 ] |
Заголовок сообщения: | Re: Modula-3 |
budden писал(а): Не помешала бы табличка сравнения с Активным Обероном. На самом деле их лучше использовать вместе для разных ниш. Тем более, что так поступила минимум одна команда разработчиков. Мини-таблица: В Modula-3 нет переопределения операторов ( "родовая травма" разработчиков Modula-2+ из Acorp, чуть позже влившихся в Olivetty ). В Active Oberon -- отладчика ( за исключением 32-битного Intel x86 и, потенциально, ARM). В M3 экосистеме хорошо проявила себя утилита SWIG специализированной редакции. OS A2 с AO самодостаточна. Поддержка 64-битных "targets" есть и в M3, и в Active Oberon. |
Автор: | budden [ Четверг, 28 Октябрь, 2021 18:45 ] |
Заголовок сообщения: | Re: Modula-3 |
Ну тогда по сути это означает, что разница только в экосистеме. Отладчик делается (даже я делал нечто в этом направлении). А значит, не совсем ясно, зачем нужны обе технологии по отдельности. Если переделать ЯОС на Модулу-3, какие плюсы в этом Вы видите? |
Автор: | Илья Ермаков [ Пятница, 29 Октябрь, 2021 12:40 ] |
Заголовок сообщения: | Re: Modula-3 |
Один из важных изъянов М-3 относительно Оберона - нет расширяемых записей. Расширяются только объекты, размещаемые в куче. Шина Гуткнехта (как расширяемые VAR/IN-параметры) не реализуется. А она очень важную архитектурную роль играет в Оберон-системах. Отдельно надо проверять, что там с возможностью раздельной загрузки - без этого какой ЧЯ? По-моему, никто там такого не реализовывал, а если начинать - то могут быть рогатки в системе типов. |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |