Skocz do zawartości

Czy warto samodzielnie kompilować programy ze źródeł?


ethanak

Pomocna odpowiedź

@ethanak Z bardzo prozaicznej przyczyny - każda czynność wykonana osobiście podnosi kompetencje zawodowe i umiejętności. Rozwiązywanie tych samych problemów co twórcy ale we własnym środowisku(budowania) jest na pewno doskonałym doświadczeniem, które na pewno się przydaje a poza tym, można sobie zbudować takie wersje, które się chce a nie tylko te, które są dostępne jako ostatnie. Podobną procedurę przyjąłem przy budowaniu Arduino IDE w wersji 1.x.x . Również na moim komputerze mam wersję zbudowaną przez siebie ze źródeł. I takie bardzo starte słowa, bo sprzed ponad 40-tu lat: Gdy nie masz co robić, zrób coś ze swoim wolnym czasem - tak mój nieżyjący od 39 lat Ojciec zaraził szczyla pasją tworzenia - modelarstwem i radioamatorstwem - potem była nauka i studia z zakresu fizyki technicznej ukończone z sukcesem nas których też wypadało być twórczym ...

73 de sq7eqe

Edytowano przez SQ7EQE
  • Lubię! 2
Link do komentarza
Share on other sites

2 minuty temu, SQ7EQE napisał:

Z bardzo prozaicznej przyczyny - każda czynność wykonana osobiście podnosi kompetencje zawodowe i umiejętności.

Wiesz - ja się zajmuję programowaniem chyba dłużej niż większość z naszych forumowiczów w ogóle żyje na świecie, i jeśli mam coś zrobić tylko po to, aby w efekcie czysto mechanicznego powtarzania jakichś czynności uzyskać dokładnie taki sam efekt jak ten co mam w repo - nie widzę sensu, a czas wolę poświęcić na jakieś bardziej pożyteczne zajęcia.

Pytanie: co zrobisz w chwili wyjścia kolejnej wersji? Będziesz dalej podnosił swoje zawodowe kompetencje i umiejętności powtarzając kolejny raz te same czynności?

Owszem, samodzielna kompilacja ma swoje zalety, ale tylko w przypadku, jeśli coś w kodzie zmieniamy (np. jakieś ustawienia, czy wprowadzamy poprawki); bez tego to trochę nie teges...

 

  • Lubię! 1
Link do komentarza
Share on other sites

@ethanak jest takie chyba bardzo zapomniane pojęcie jak optymalizacja kodu wynikowego, dokonuje to kompilator. Binarny kod przeznaczony dla masowego odbiorcy, na pewno ma uniwersalny zestaw instrukcji dla danej platformy, kody binarny skompilowany na konkretnej maszynie z ustawionymi odpowiednimi opcjami optymalizacji kodu wynikowego może nie działać poprawnie na każdej maszynie ale za to, praktycznie w 100% będzie wykorzystywał cechy sprzętu na którym został skompilowany. W przypadku Arduino IDE 2.0.0 pakiet zarządzający budowaniem to yarn - poprzez odpowiednie ustawienia, konfiguruje on źródła, pobiera zależności i przygotowuje środowisko do budowania. yarn jest częścią corepack Node.js w wersjach < 16.10. a w wersji Node.js > 16.10 jest częścią środowiska Node.js( zawiera już w sobie corepack) a ponieważ niektóre pakiety były budowane ze źródeł to wiem na pewno, że mam zoptymalizowane środowisko IDE dla swojej maszyny i różniące się od oficjalnie dostępnych wersji binarnych dostępnych dla każdego, co na pewno owocuje mniejszą awaryjnością.

  • Nie zgadzam się! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

Abstrahując od wątpliwej optymalizacji (nie będę się sprzeczał, wystarczająco dużo już na ten temat napisano):

  1. Program jest mało używalny (np. requester wyboru płytki/portu to jakieś pięć kroków wstecz w stosunku do obowiązującej wersji 1.8.x, w ogóle całość wygląda jakby interfejs robił ktoś kogo wyrzucili z Ultimakera za projekt Cury 5.0; brak opcji "użyj zewnętrznego edytora", dalej mi się nie chciało szukać)
  2. Spojrzenie na githuba: Issues open 317. Tym panom na razie podziękujemy - ta liczba pasuje raczej do pierwszej bety i to w optymistycznych założeniach, a nie do wersji pretendującej do miana stabilnej.

 

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

Proponuję wykonać kilka poleceń w terminalu

mkdir git && cd git
git clone https://github.com/Arduino/arduino-ide

cd arduino-ide

git checkout 2.0.0 -b ide-2.0.0

  

spowoduje to utworzenie nowej gałęzi właśnie ze stabilną wersją środowiska 2.0.0

proponuję też zbudować aplikację aby się więcej dowiedzieć

w gałęzi main jest wszystko, bo deweloperzy już pracują nad poprawkami i być może, już za miesiąc będzie wersja 2.0.1 wyodrębniona do tag'a

na początku, środowisko IDE po uruchomieniu instaluje brakujące zależności, m.in. definicję płytek i niektóre biblioteki, tych drobiazgów nie zawiera wersja binarna dostarczana przez Arduino ani skompilowana

...

i zamiast narzekać,zacząć się bawić😃 dobry humor to podstawa

Pozdrawiam

73 de sq7eqe op Paweł

 

Link do komentarza
Share on other sites

40 minut temu, SQ7EQE napisał:

proponuję też zbudować aplikację aby się więcej dowiedzieć

Czego mianowicie?

40 minut temu, SQ7EQE napisał:

i zamiast narzekać,zacząć się bawić

Ależ ja chcę się świetnie bawić! A Arduiono IDE ma mi służyć do tworzenia owych zabawek... tyle, że wersja 2.0.0 mi absolutnie tego nie umożliwia, więc nie narzekam tylko używam dalej 1.8.x (przy okazji przestrzegając tych, którzy potrzebują jakiejś funkcjonalności które 2.0 gdzieś zgubiło po drodze).

A porównanie do Cury wcale nie było przypadkowe (niektórzy wiedzą o co chodzi) 🙂

73 gl

Link do komentarza
Share on other sites

Niestety - u mnie pod Ubuntu 20.04 LTS requestera dalej nie ma. I nie chcę słyszeć że mam starą wersję - literki LTS chyba coś znaczą?

12 minut temu, Elvis napisał:

Może w poprzedniej wersji były błędy

Te "może były błędy" to brak możliwości otwarcia/zapisu pliku. Taki mało ważny element interfejsu którego przez dwie wersje nie można było naprawić... ale ja się nie dziwię efektom działań ambitnycjh programistów, którzy zamiast jak człowiek wywołać jakąś w miarę prostą funkcję w Qt silą się na wynajdywanie koła od początku (z requesterem plików na czele).

Może bym nic nie mówił, ale IMHO Cura to bardzo dobry silnik opakowany w jeden z najgorszych (o ile nie najgorszy) UI jaki widziałem.

Link do komentarza
Share on other sites

Ciekawa dyskusja.

Dnia 3.10.2022 o 13:46, SQ7EQE napisał:

@ethanak jest takie chyba bardzo zapomniane pojęcie jak optymalizacja kodu wynikowego, dokonuje to kompilator. Binarny kod przeznaczony dla masowego odbiorcy, na pewno ma uniwersalny zestaw instrukcji dla danej platformy, kody binarny skompilowany na konkretnej maszynie z ustawionymi odpowiednimi opcjami optymalizacji kodu wynikowego może nie działać poprawnie na każdej maszynie ale za to, praktycznie w 100% będzie wykorzystywał cechy sprzętu na którym został skompilowany.

Sugestia, że przekompilowanie kodu lokalnie spowoduje, że nagle użyjemy 100% możliwości sprzętu, jest przesadzona. Bez modyfikacji źródeł, aby dostosować się do możliwości sprzętu zysk będzie mały, aby nie powiedzieć pomijalny. Zresztą czego oczekujemy kompilując że źródeł IDE Arduino? Że okienko otworzy się milisekundę szybciej. Projekty, dla których wykorzystanie sprzętu w 100% jest na prawdę istotne, zazwyczaj uwzględniają to podczas dystrybucji binarek - np. https://stockfishchess.org/download/linux/

Absolutnie nie kwestionuję waloru edykacyjnego budowania że źródeł. Znajomość make, cmake, ninja, itd jest niedoceniana. Bez znajomości różnych systemów budowania trudno odpowiedzieć sobie na pytanie: "A może lilepiej użyć SCons do mojego projektu?" 

Osobiście uważam, że kompilacja źródeł zawsze, bo może będzie lepiej, nie ma większego sensu. Kompilacja musi mieć jakieś uzasadnienie: chciałbym coś zmodyfikować/poprawić, chciałbym się czegoś dowiedzieć/nauczyć. 

Edytowano przez pmochocki
  • Lubię! 1
Link do komentarza
Share on other sites

Sporo zależy od użytego sprzętu. Na super-wypasionym PC faktycznie nie będzie zauważalnej różnicy w działaniu, bo i tak sprzęt jest aż za szybki.

Ale proponuję jako eksperyment zainstalować Ubuntu na Raspberry Pi 4, a następnie skompilować system za pomocą Yocto lub Buildroot-a. Może się okazać, że jednak jakaś różnica będzie 🙂

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.