LINUX.ORG.RU

GNU Hello переехал на git

 , ,


0

1

GNU Hello — программа демонстрирующая основные инструменты, используемые при разработке в рамках проекта GNU. С недавнего времени этот проект стал использовать git в качестве системы контроля версий. Данный переход соответствует общим тенденциям и позволяет удобнее использовать такие библиотеки, как gnulib.

>>> Подробности

★★

Проверено: Shaman007 ()

Ответ на: комментарий от PolarFox

Может вам ещё анимированные смайлики и приватные ссобщения? Вы зажрались совсем.

wlan ★★ ()
Ответ на: комментарий от wlan

да не в тебе дело, а в шамане, за новость спасибо

visual ★★★ ()

Данный переход соответствует общим тенденциям и позволяет удобнее использовать такие библиотеки, как

Почему же не на GNU Bazaar?

anonymous ()

Я всегда думал что hello - это 1 с файл, 1 h файл + Makefile, если скомпилировать и запустить - выведет «hello world»

ymuv ★★★★ ()
Ответ на: комментарий от wlan

Тире

Может вам ещё анимированные смайлики

Какое отношение имеет один из основных знаков препинания языка к пережитку прошлого, используемому преимущественно людьми, неспособными передать необходимые эмоции словами?

bloodredfrog ★★ ()
Ответ на: комментарий от ymuv

Я всегда думал что hello - это 1 с файл, 1 h файл + Makefile, если скомпилировать и запустить - выведет «hello world»

Hello world можно скомпилировать вообще из нуля файлов (что интересно, clang такое не жрёт и требует seek, что «исправляется» заменой „<()“ на «=()»):

gcc -x c -o helloworld <(echo $'#include <stdio.h>\nint main(int argc, char **argv) { puts("Hello world"); return 0; }')

Зачем нужен Makefile мне ещё понятно, но зачем здесь может понадобиться заголовочный файл я совершенно не представляю.

Кстати, никто не знает, как запустить всю это конструкцию не привлекая никаких реальных файлов вообще?

ZyX ()
Ответ на: комментарий от ymuv

Я всегда думал что hello - это 1 с файл, 1 h файл + Makefile

А как же info и man документация? А получение корректного имени программы? А проверка ошибок, например связанных с выводом в уже полное устройство, вроде /dev/full? А интернационализация? А разбор аргументов командной строки? Ну и заодно функциональные тесты, сборка автоконфом, вытягивание указанных выше модулей, корректный чейнджлог и пример использования утилит для облегчения управления проектом GNU, вроде генерации анонсов релизов и автоматической загрузки релиза на gnu'тые ftp сервера.

kim-roader ★★ ()
Ответ на: комментарий от ZyX

Кстати, никто не знает, как запустить всю это конструкцию не привлекая никаких реальных файлов вообще?

echo 'main(){puts(«hello»);}' | tcc -run -

vaino ()
Ответ на: комментарий от ZyX

Кстати, никто не знает, как запустить всю это конструкцию не привлекая никаких реальных файлов вообще?

Тебе не нравится, что „<()“ создаёт именованный пайп, который gcc принимает как файл? Тогда можешь использовать вместо имени файла „-“ и передавать программу на stdin.

$ gcc -x c -o helloworld - <<<'#include <stdio.h>
> int main(int argc, char **argv) { puts("Hello world"); return 0; }'
$
kim-roader ★★ ()
Ответ на: комментарий от arsi
#!/usr/local/bin/tcc -run
#include <stdio.h>

int main() 
{
    printf("Hello World\n");
    return 0;
}

после -run можно добавлять нужные опции

vaino ()
Ответ на: комментарий от vaino

супер, спасибо :) не думал даже, что именно tcc первым(?) обзаведётся такой фичей.

arsi ★★★★★ ()

Пользуясь случаем хочу сказать, что GNUтый стиль оформления кода вообще и расстановки отступов в частности следует признать ugly, deprecated, brain-damaged и закопать к чертовой матери.

red_eyed_peguin ()

Могли бы и версию обновить. А то создаётся впечатление, что проект мёртв.

Psych218 ★★★★★ ()
Ответ на: комментарий от Psych218

К вопросу, что там обновлять:

/* It is important to separate the year from the rest of the message,
     as done here, to avoid having to retranslate the message when a new
     year comes around.  */
  printf (_("\
Copyright (C) %s Free Software Foundation, Inc.\n\
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
This is free software: you are free to change and redistribute it.\n\
There is NO WARRANTY, to the extent permitted by law.\n"),
              "2011");
Psych218 ★★★★★ ()
Ответ на: комментарий от red_eyed_peguin

GNUтый стиль оформления кода вообще и расстановки отступов в частности следует признать ugly, deprecated, brain-damaged и закопать к чертовой матери

Почему же? GNUтый стиль даёт те же профиты, что и Allman style, плюс логика отступов позволяет легко визуально отличать просто блоки и блоки следующие за управляющим выражением, то есть получить те же приемущества, что и в Whitesmiths style, но с даже большей наглядностью.

kim-roader ★★ ()

Следующий шаг - выкинуть мерзкие autotools и заменить их на scons.

anonymous ()
Ответ на: комментарий от bloodredfrog

уж лучше смайлики, чем эти дебильные «ржунимагу» и «улыбнуло»

cr0x ()
Ответ на: комментарий от cr0x

уж лучше смайлики, чем эти дебильные «ржунимагу» и «улыбнуло»

А ещё лучше «хохочу, не в силах остановиться» и «это вызвало улыбку на моём лице».

bloodredfrog ★★ ()
Ответ на: комментарий от cr0x

Ну так используй подходящий лично для тебя вариант между дебилизмом и графоманством.

P.S. За сим заканчиваю оффтоп.

bloodredfrog ★★ ()
Ответ на: комментарий от kim-roader

wc -l gnuhello/*.c ?
Мда, «cat -v considered harmful» во все поля...

anonymous ()
Ответ на: комментарий от red_eyed_peguin

Пользуясь случаем хочу добавить, что половина GNUтого софта вообще является bloatware по умолчанию, и её следует просто уничтожить. Пример - GNU Hello. Нормальные программисты просто напишут hello world. Гнутые идиоты раздуют из этого и проверку ошибок, и интернационализацию, обвяжут это монструозным autolulz вместо простых Makefile-ов.

anonymous ()
Ответ на: комментарий от kim-roader

читаю ChangeLog в NEWS:

Version 2.2 (23 November 2006)
* Remove creeping non-feature of reading mail; simplify code accordingly

пичаль-пичаль...

anonymous ()
Ответ на: комментарий от anonymous

wc -l gnuhello/*.c

Спрашивали? Отвечаем:

$ cloc hello/
     122 text files.
     108 unique files.                              
      93 files ignored.

http://cloc.sourceforge.net v 1.55  T=1.0 s (29.0 files/s, 3372.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Bourne Shell                    17            300            512           1910
C                                1             35             51            127
make                             7             43            158            123
m4                               1              9              9             39
sed                              2              0              0             16
C/C++ Header                     1             10             17             13
-------------------------------------------------------------------------------
SUM:                            29            397            747           2228
-------------------------------------------------------------------------------
$ wc -l hello/src/hello.c 
213 hello/src/hello.c
$ 

kim-roader ★★ ()
Ответ на: комментарий от kim-roader

Прошу прощения, посчитались заодно файлы из ".git/". На самом деле вот:

$ cd hello ; cloc `./build-aux/vc-list-files`
     104 text files.
      92 unique files.                              
      83 files ignored.

http://cloc.sourceforge.net v 1.55  T=0.5 s (42.0 files/s, 5856.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Bourne Shell                     9            245            374           1659
C                                1             35             51            127
make                             7             43            158            123
m4                               1              9              9             39
sed                              2              0              0             16
C/C++ Header                     1             10             17             13
-------------------------------------------------------------------------------
SUM:                            21            342            609           1977
-------------------------------------------------------------------------------
kim-roader ★★ ()
Ответ на: комментарий от arsi
Ответ на: комментарий от wlan

Да это понятно. Но всё равно - сжечь.

anonymous ()
Ответ на: комментарий от kim-roader

Тебе не нравится, что „<()“ создаёт именованный пайп, который gcc принимает как файл? Тогда можешь использовать вместо имени файла „-“ и передавать программу на stdin.

Мне не нравится «-o helloworld».

ZyX ()
...........
commit 9751693cd99687c89c4388fec8dd530507269a33
Author: karl <>
Date:   Tue Apr 26 21:19:33 2011 +0000

    [project @ 2011-04-26 21:19:33 by karl]
    .
..........

Что-то плохо переехали, даже имена не сопоставили.

AlexVR ★★★★★ ()
Ответ на: комментарий от vaino

echo 'main(){puts(«hello»);}' | tcc -run -

Не, интерпретатор запустить каждый может. А запустить ELF, не сохраняя его в файл?

ZyX ()
Ответ на: комментарий от anonymous

половина GNUтого софта вообще является bloatware по умолчанию, и её следует просто уничтожить. Пример - GNU Hello.

+1. GNUтиё ещё имело какой-то смысел лет 15 назад, когда из юниксов был полный зоопарк, и функции можно было найти в самых странных местах, с самыми разными прототипами, и разнорукими тулзами.
Отсюда и автолулзы, и gnulib. Ведь это жизненно важно печатать скринсейвер при конпеляции и сообщать Юстас Алексу — функция найдена где-то там, полёт нормальный.
Сейчас этот весь зоопарк благополучно издох, и это графоманство можно выкинуть.
Половина линукс-софта — это именно линукс-софт, а не юникс, линуксизмы вместо позиксивизмов и прикручена ориентация на какую-то версию glibc, и на какие-то потроха в /usr/src/linux.
Так имейте смелость это признать, и пишите сразу свой нативный софт именно под люникс.

Ну или хотя бы заменить m4 + ./configure + make более вменяемыми реализациями.

Частично всё это гнуснолегаси блоатваре имеет смысл в специальной олимпиаде: собрать свою православную Haiku/Plan9/eCS/HelenOS/Genode, потыкать ихний libc веточкой — глядишь, из-за автолулзов и gnulib даже там оно соберётся. Другое дело, что оно даже там и даром не нужно, а нужен сразу правильный нативный софт.

anonymous ()
Ответ на: комментарий от ZyX

Не, интерпретатор запустить каждый может. А запустить ELF, не сохраняя его в файл?

tcc - не интерпретатор

vaino ()
Ответ на: комментарий от anonymous

обвяжут это монструозным autolulz вместо простых Makefile-ов

Makefile-ы не торт. Не, их просто писать, если проект простой, и не надо думать как и когда это работает. Иначе это превращается в кучу кодогенерированных костылей.

Вот есть же православные mkfiles. Или из нового — ninja build tool, вот ibb, tup или ещё лучше — redo credo

anonymous ()
Ответ на: комментарий от kim-roader

104 text files. 92 unique files. 83 files ignored.

Signal/Noise Ratio on files: 1/104 = 0,0096153846153846

SUM: 21 342 609 1977

Signal/Noise Ratio on cloc: project: 1/1977=5,058168942842691e-4 source: 2/(127+13)=2/140=0,0142857142857143

Signal/Noise on features: YMMV

Total Moronic GNU-вентилятор factor: <<0.

anonymous ()
Ответ на: комментарий от anonymous

Половина линукс-софта — это именно линукс-софт

Безграмотные анонимусы, пишущие под «убаунту 9.04 LTS» не нужны. Неосиляторы автотулзов тоже.

red_eyed_peguin ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.