refal-5-lambda icon indicating copy to clipboard operation
refal-5-lambda copied to clipboard

Nix Flakes

Open cab404 opened this issue 2 years ago • 6 comments

Для того, чтобы проверить, нужно установить Nix (если его нет), и запустить следующую команду:

nix-shell -p nixFlakes --command 'nix --experimental-features "nix-command flakes" build git+ssh://github.com/cab404/refal-5-lambda'

Это скачает и установит все зависимости и соберёт refal.

  • [ ] Проверить на убунте
  • [ ] Попробовать добавить сборки под windows через Wine

@potan my work here is (almost) done :D

cab404 avatar Oct 17 '21 01:10 cab404

Спасибо, добавлю!

On October 17, 2021 1:48:43 PM GMT+03:00, Alexander Konovalov @.> wrote: @. commented on this pull request.

  •        src = ./.;
    
  •        patchPhase = ''
    
  •            runHook prePatchPhase
    
  •            find -type f -exec sed -i '1,1s\#!/bin/bash\#!${pkgs.bash}/bin/bash\' '{}' ';'
    
  •            runHook postPatchPhase
    
  •        '';
    
  •        buildPhase = ''
    
  •            runHook preBuildPhase
    
  •            ./bootstrap.sh
    
  •            runHook postBuildPhase
    
  •        '';
    
  •        installPhase = ''
    
  •            runHook preInstallPhase
    
  •            mkdir -p $out
    
  •            mv bin $out
    

Если я правильно понял этот сценарий, при установке Вы копируете только папку bin. Помимо bin нужно копировать папку lib и файл c-plus-plus.conf.sh. Скрипты из bin инклюдят c-plus-plus.conf.sh, который лежит в папке выше и предполагают наличие lib со всем её содержимым рядом с bin.

-- You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/bmstu-iu9/refal-5-lambda/pull/363#pullrequestreview-781434572

cab404 avatar Oct 17 '21 13:10 cab404

@Mazdaywik Что бы могло значить "INTERNAL ERROR: can't find signature in executable"?

cab404 avatar Oct 17 '21 15:10 cab404

А как вам удалось эту ошибку получить?

Исполнимый файл, построенный компилятором, состоит из префикса-интерпретатора и интерпретируемого кода. Префикс-интерпретатор открывает argv[0], ищет в нём сигнатуру, с которой начинается интерпретируемый код, его парсит и выполняет.

Сигнатура должна располагаться по смещению, кратному 4096.

Вы каким-то образом получили один только префикс-интерпретатор без интерпретируемого хвоста, либо поехало смещение. Вы strip для exe’шника не делали?

Mazdaywik avatar Oct 17 '21 16:10 Mazdaywik

Вообще я делал стрип. Он роняет тут экзешники, получается?

cab404 avatar Oct 17 '21 19:10 cab404

Получается, что да.

Mazdaywik avatar Oct 17 '21 20:10 Mazdaywik

@cab404, @potan, создал багу на несовместимость со strip: #364. Решение мне пока не очевидно.

Mazdaywik avatar Oct 19 '21 16:10 Mazdaywik