avtb.lpr

Переключить прокрутку окна
Загрузить этот исходный код

{
    Обозреватель кода языка программирования
    Объектно-ориентированный продвинутый векторный транслятор

    Copyright © 2021, 2026 Малик Разработчик

    Это свободная программа: вы можете перераспространять ее и/или изменять
    ее на условиях Стандартной общественной лицензии GNU в том виде,
    в каком она была опубликована Фондом свободного программного обеспечения;
    либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.

    Эта программа распространяется в надежде, что она будет полезной,
    но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
    или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Стандартной
    общественной лицензии GNU.

    Вы должны были получить копию Стандартной общественной лицензии GNU
    вместе с этой программой. Если это не так, см.
    <https://www.gnu.org/licenses/>.
}

program avtb;

    {$MODE OBJFPC}

    {%region} uses
        {$IFDEF UNIX}
        cthreads,
        {$ENDIF}
        interfaces,
        forms,
        dialogs,
        pascalx.lang,
        pascalx.lang.locale,
        pascalx.lang.locale.rtlang,
        pascalx.lang.math.avo,
        pascalx.lang.math.vcoverage,
        pascalx.io,
        pascalx.io.bytearray,
        pascalx.io.charset,
        pascalx.io.charset.basiclatin,
        pascalx.io.charset.eightbit,
        pascalx.io.charset.rtlang,
        pascalx.io.charset.unicode,
        pascalx.io.extension,
        platform.independent.filesystem,
        platform.independent.osservices,
        platform.independent.streamformat,
        platform.independent.streamformat.compression.zlib,
        platform.independent.streamformat.text,
        platform.independent.streamformat.text.plain,
        platform.independent.streamformat.text.plain.ini,
        ru.malik.elaborarer.avtoo.lang,
        ru.malik.elaborarer.avtoo.compiler,
        ru.malik.elaborarer.avtoo.browser;
    {%endregion}

    {$R *.res}
    {$R *.strings.res}

begin
    { проверка поддержки AVX-512 }
    if not Vector.isAVX512SupportedByCPU() then begin
        dialogs.messageDlg(
            AResource.readUnitResourceAsAnsiString('', 'title'),
            AResource.readUnitResourceAsAnsiString(pascalx.lang.math.avo.UNIT_NAME, 'noavx.cpu'),
            TMsgDlgType.mtInformation,
            [TMsgDlgBtn.mbClose],
            0
        );
        system.exitCode := 207;
        exit;
    end;
    if not Vector.isAVX512SupportedByOS() then begin
        dialogs.messageDlg(
            AResource.readUnitResourceAsAnsiString('', 'title'),
            AResource.readUnitResourceAsAnsiString(pascalx.lang.math.avo.UNIT_NAME, 'noavx.os'),
            TMsgDlgType.mtInformation,
            [TMsgDlgBtn.mbClose],
            0
        );
        system.exitCode := 207;
        exit;
    end;
    { запуск приложения }
    forms.requireDerivedFormResource := true;
    with forms.application do begin
        scaled := true;
        title := AResource.readUnitResourceAsAnsiString('', 'title');
        {$PUSH}
        {$WARN 5044 OFF}
        mainFormOnTaskBar := true;
        {$POP}
        initialize();
        TMainForm.createInstance();
        run();
    end;
end.