The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"В рамках проекта gonix, развивается реализация unix-утилит н..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от opennews (??) on 09-Май-15, 14:38 
Представлен первый экспериментальный выпуск проекта gonix (https://github.com/polegone/gonix), в рамках которого развивается реализация стандартных unix-утилит, созданная с использованием языка программирования Go. Код проекта распространяется под лицензией GPLv3. В настоящее время уже полностью готовы утилиты dirname, false, sleep, tee, true  и  yes, работоспособны с некоторыми ограничениями basename, cat, cp, echo, head, mkdir, mkdir, nl, pwd, seq, tail, touch и xxd. Предстоит реализовать bc, dc, ed, ls, more и rm.


Также можно отметить проект Godoc (http://blog.golang.org/examples), продвигающий идею использования примеров по использованию кода одновременно и в качестве тестов, для оценки корректности работы используемых в примерах функций.

URL: https://github.com/polegone/gonix
Новость: http://www.opennet.dev/opennews/art.shtml?num=42198

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –2 +/
Сообщение от Аноним (??) on 09-Май-15, 14:38 
Объясните мне кто-нибудь из тех, кто пишет на С (мнение Go-недопрогаммистов неинтересно) нафига это нужно?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +7 +/
Сообщение от Аноним (??) on 09-Май-15, 14:48 
Объясните мне кто-нибудь из тех, кто говорит на русском (мнение англо-недочеловеков неинтересно) нафига это нужно?
Пофиксил, не благодари.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

14. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 09-Май-15, 15:30 
> Объясните мне кто-нибудь из тех, кто говорит на русском (мнение англо-недочеловеков неинтересно)
> нафига это нужно?
> Пофиксил, не благодари.

Just for fun

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

30. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –2 +/
Сообщение от cmp (ok) on 09-Май-15, 18:04 
фор фан делаются вещи для души, а это - как арматуру ноздрями гнуть, абсолютно бесполезно.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

125. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –4 +/
Сообщение от Аноним (??) on 11-Май-15, 16:03 
> фор фан делаются вещи для души, а это - как арматуру ноздрями гнуть, абсолютно бесполезно.

Так себя обычно утешают люди с отсутствующим воображением и творческими способностями.
И сами себе пытаются доказывать крайнюю полезность собственного унылого цикла "дом-работа-магазин".

То что вам на ум пришла исключительно аналогия ни с того и с сего про "ноздри" и "арматуру" - лишь подтверждает скудность вашего воображения.

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

П.С. Дабы предвосхитить холивар на тему "изобретения велосипедов" - сразу задумайтесь о разнице между такими понятиями как "изобретение" - и "реализация" ("изготовление").
А то ведь, действительно, колесо в каменном веке уже однажды изобрели, зачем его снова и снова какие-то чудаки переделывают по-разному. Наверное чтобы "ноздрями катать" и чисто "для души" - для остального наверное "абсолютно бесполезно". Только что вы знаете о душе? Вам душу понимать явно "ноздри" мешают.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

142. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от mine (ok) on 12-Май-15, 19:28 
> Так себя обычно утешают люди с отсутствующим воображением и творческими способностями.
> И сами себе пытаются доказывать крайнюю полезность собственного унылого цикла "дом-работа-магазин".

Так себя обычно утешают наркоманы.

Ответить | Правка | ^ к родителю #125 | Наверх | Cообщить модератору

144. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 13-Май-15, 15:48 
>> Так себя обычно утешают люди с отсутствующим воображением и творческими способностями.
>> И сами себе пытаются доказывать крайнюю полезность собственного унылого цикла "дом-работа-магазин".
> Так себя обычно утешают наркоманы.

Все кто мыслят по-другому - наркоманы. Тоже вполне себе утешение.

Ответить | Правка | ^ к родителю #142 | Наверх | Cообщить модератору

145. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от cmp (ok) on 13-Май-15, 18:48 
да вы бред несете, какое воображение? какието хипстеры переписали стандартные утилиты на своем хипстерском недо языке, для чего? чтобы переписать на нем же ядро, чтобы оно работало в 1000 раз медленее, зато на кошерном. силенок не хватит, да и смысла ноль, зачем дублировать то, что уже есть, но в заведомо проигрышном варианте? те кто изобрели колесо весело катали на телегах туши, а подобные хипстеры на квадратных колесах мучались и надеялись, что из этих мучений выдет прок, это сизифов труд. колесо изобрели кстате глядя как весело катаются круглые камни, тут не надо быть гением это очевидно сейчас, было очевидно и тогда, и рычаг, и палки-ковырялки пришли к нам от обезьян еще, так что ваша аналогия с точностью до наобоорот, показывает у кого нет ни воображения, ни мозгов понять, что лучше колеса ничего не придумаешь хоть убейся.
Ответить | Правка | ^ к родителю #144 | Наверх | Cообщить модератору

146. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 14-Май-15, 12:00 
> да вы бред несете, какое воображение? какието хипстеры переписали стандартные утилиты на своем хипстерском недо языке, для чего?

У вас нет никаких фактов, что это "недоязык". А только лишь комплексы неполноценности из-за того, что вы с таким трудом изучали то что было раньше, а с появлением каких то новшеств, у вас вообще шансов нет что-то освоить. Вот и пытаетесь утешать себя навешиванием ярлыков и метафор без каких либо фактов.

"Хипстеры", "недоязык", "арматура ноздрями", "кошерный", "квадратные колеса" - типичный невежда, который за ничего не значащими эмоциональными репликами пытается скрыть свою некомпетентность, и ни о чем, кроме скорости работы, сказать в отношении софта не может, потому что у самого много ручных действий при попытке что-то с компом сделать, и ничего не смыслит в автоматизации.

> чтобы переписать на нем же ядро, чтобы оно работало в 1000 раз медленнее, зато на кошерном.

Во-во. Вот как раз, когда ядра и утилиты только "изобрели", они и работали в 1000 раз (а то и еще) медленнее на том древнем железе, чем то что сейчас работает на Го.

И когда не то что утилиты, а сами ядра ОСей только начали писать на С, а не на ассемблере, они тоже работали медленней - ну и что? Ничего вы не знаете.

"Преждевременная оптимизация - корень всех зол" (С)

Тогда как реальная автоматизация даже на самом тормозном оборудовании и софте - все равно будет быстрее, чем человек, в 1000 раз. А вот то, как вы свой якобы "навороченный" домашний комп используете, оно как раз и напоминает ваши "квадратные колеса" и "арматуру ноздрями".

Просто обычно невежды других свойств и качеств софта не знают, кроме скорости. Потому что работают на своих компах в-ручную, автоматизировать ничего не умеют, и им нужно, чтобы все как можно быстрее реагировало на их пальцы. А там где пальцы в принципе не используются, им кажется что видимо это делается "ноздрями" - нет, не "ноздрями", а всего лишь автоматически. И в итоге все равно быстрее чем вы пальцами, какие бы "быстрые" утилиты вы не взяли для своих ручных манипуляций.

Ключевой фактор - не скорость работы утилит по отдельности, а скорость работы всей системы после автоматизации. Удобство проведения самой автоматизации, и прочие факторы. Вам даже не судьба это оценить, с вашей ручной работой на компах, вы даже не знаете как комплексная автоматизация проводится. Потому в ручную и пытаетесь мерять скорость отдельных программ.

Вы сначала разберитесь в истинном назначении софта и прочих "колес", потом уже требуйте скорости. А вы так до сих даже не поняли разницы между изобретением и реализацией.

> силенок не хватит, да и смысла ноль, зачем дублировать то, что уже есть, но в заведомо проигрышном варианте?

Вы не доказали, что это "заведомо поигрышный вариант". А лишь тупо твердите об этом.
Зачем дублировать? А где вы здесь видите "дублирование"? Здесь дублирования не больше, чем дублирования круглой формы при другой реализации колеса для других условий и на других технологиях.

Просто такие как вы с древних времен боялись, что, при новом витке промышленного развития, им новых технологий изготовления "колес" уже не освоить, вот в панике и кричали - "зачем дублировать! зачем дублировать! оно же такое же круглое!"

> те кто изобрели колесо весело катали на телегах туши, а подобные хипстеры на квадратных колесах мучались и надеялись, что из этих мучений выдет прок, это сизифов труд.

Где это вы видели, чтобы кто-то изобретал реально "квадратные колеса", или чтобы реально кто-то пытался "гнуть арматуру ноздрями". Вы просто с метафорами заигрались, потеряв при этом аналогии.

> колесо изобрели кстате глядя как весело катаются круглые камни, тут не надо быть гением это очевидно сейчас, было очевидно и тогда, и рычаг, и палки-ковырялки пришли к нам от обезьян еще, так

Если бы все слушали таких как вы - так бы и жили до сих пор с колесами из круглых камней на ремнях из шкур.

Ну так вам уже было сказано. Колеса и не изобретали, чего там изобретать то - круг. Колеса реализовывали. Просто вы разницу не видите. Разные колеса в зависимости от текущих условий, подручных материалов, и уровня развития промышленности.

> что ваша аналогия с точностью до наобоорот, показывает у кого нет ни воображения, ни мозгов понять,

За отсутствием воображения вы повторяете то, что было написано про вас. А вот вы в аналогию как раз очень хорошо вписываетесь - просто тупо сопротивляетесь любым новшествам, хотя даже не можете четко сформулировать претензии. Только одни эксцентричные метафоры. Типичный признак, когда гуманитарии пытаются оценивать технические новшества.

> что лучше колеса ничего не придумаешь хоть убейся.

А ничего лучшего и не придумывали, там колесо и тут колесо, там язык программирования и тут язык программирования, там утилиты и тут те же самые утилиты, но на другом языке.

Окружающая обстановка поменялась, качество "дорожного покрытия", сервисы по "замене колес", уже нет необходимости изготавливать "колеса" из "дерева". А так да, ничего лучшего - та же "круглая форма". Это только таким как вы "квадратные колеса" мерещатся в страхе перед любыми новшествами.

И ничего реального против нового языка вы сказать не можете.

Что и требовалось доказать, ваши "ноздри" и "арматура" мешают вам понимать разницу между изобретением и реализацией.

Ответить | Правка | ^ к родителю #145 | Наверх | Cообщить модератору

147. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от cmp (ok) on 14-Май-15, 15:04 
> Типичный признак, когда гуманитарии

Это просто бомба, отдуши поржал.

Но в целом плохо, ноздри-арматура, че ты к словам цепляешься, сказать больше нечего, так лучше промолчи, а то выдал свою детскую наивность с потрахами.
"недо" это антоним "пере", я за 15 лет в отрасли перещупал этих новых языков сколько тебе и не снилось, и ни один с си рядом не лежал, и восторженных криков наслушался и дифирамб с соплями и детской присыпкой тоже, ну и где, эти бинарно безопасные со скоростью близкой к нативной явы-питоны?

HTML-ки генерировать, да конфики максимум возможностей ваших хипсторских, да и умишко слабоват, чтоб epoll осилить и межпроцессорные коммуникации разрулить без временных файликов и террабайтных кешей, нука поведай мне как ты обработаешь массив с числом элементов более чем байт в оперативе.

Через 20 лет допилят если не квантовую логику, то спинтронику, в унитаз сольешь свой го со своими скриптами, эксель изучай, пригодится когда отчетики делать будешь о том, сколько посуды в макдональдсе перемыл.

Ответить | Правка | ^ к родителю #146 | Наверх | Cообщить модератору

148. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от а on 14-Июн-16, 13:25 
Ехала автоматизация через автоматизацию и автоматизацией погоняла.
Ответить | Правка | ^ к родителю #146 | Наверх | Cообщить модератору

35. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от кевин on 09-Май-15, 18:41 
это называется академический интерес.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

52. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +3 +/
Сообщение от Вадик (??) on 09-Май-15, 20:26 
"Делай это, даже если это нужно только тебе"
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

129. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 11-Май-15, 16:24 
> это называется академический интерес.

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

Если дальше "академического интереса" вы не видите, то большинство уже реализованных инноваций остались вообще за пределами вашего восприятия.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

3. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +9 +/
Сообщение от Аноним (??) on 09-Май-15, 14:52 
- Обучение программированию на go
- минимальное рабочее окружение со статической линковкой
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –4 +/
Сообщение от Аноним (??) on 09-Май-15, 14:54 
> - Обучение программированию на go
> - минимальное рабочее окружение со статической линковкой

каждый бинарь, реализующий однострочник на баше, по 90 мегабайт

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

64. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +5 +/
Сообщение от ОШИБКА Отсутствуют данные в поле Name on 09-Май-15, 21:44 
qqqqqqqqqq ~/gonix/gonix/build $ ll
total 1.3M
4.0K drwxr-xr-x 2 anonimous anonimous 4.0K May  9 21:36 ./
4.0K drwxr-xr-x 4 anonimous anonimous 4.0K May  9 19:02 ../
68K -rwxr-xr-x 1 anonimous anonimous  68K May  9 21:36 basename*
72K -rwxr-xr-x 1 anonimous anonimous  70K May  9 21:36 cat*
68K -rwxr-xr-x 1 anonimous anonimous  65K May  9 21:36 cp*
68K -rwxr-xr-x 1 anonimous anonimous  68K May  9 21:36 dirname*
72K -rwxr-xr-x 1 anonimous anonimous  69K May  9 21:36 echo*
64K -rwxr-xr-x 1 anonimous anonimous  62K May  9 21:36 false*
76K -rwxr-xr-x 1 anonimous anonimous  75K May  9 21:36 head*
64K -rwxr-xr-x 1 anonimous anonimous  62K May  9 21:36 mkdir*
76K -rwxr-xr-x 1 anonimous anonimous  75K May  9 21:36 nl*
72K -rwxr-xr-x 1 anonimous anonimous  69K May  9 21:36 pwd*
68K -rwxr-xr-x 1 anonimous anonimous  68K May  9 21:36 seq*
68K -rwxr-xr-x 1 anonimous anonimous  65K May  9 21:36 sleep*
76K -rwxr-xr-x 1 anonimous anonimous  74K May  9 21:36 tail*
72K -rwxr-xr-x 1 anonimous anonimous  70K May  9 21:36 tee*
64K -rwxr-xr-x 1 anonimous anonimous  64K May  9 21:36 touch*
64K -rwxr-xr-x 1 anonimous anonimous  62K May  9 21:36 true*
80K -rwxr-xr-x 1 anonimous anonimous  80K May  9 21:36 xxd*
68K -rwxr-xr-x 1 anonimous anonimous  68K May  9 21:36 yes*

Я бы не говорил о мегабайтах

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

113. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –2 +/
Сообщение от Аноним (??) on 10-Май-15, 18:00 
1.3 Мб на 18 жалких утилиточек, которые делают дело по предельному минимуму? Это фейл.
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

114. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +3 +/
Сообщение от анон on 10-Май-15, 18:37 
Не позорь имя анона школота безродная! Вот размеры бинарей на Ц из православной Джесси. Как видишь не велика разница.

for i in basename cat cp dirname echo false head mkdir nl pwd seq sleep tail tee touch true xxd yes; do \
>     ls -lh $(which $i); \
> done

-rwxr-xr-x 1 root root 31K Mar 14 18:47 /usr/bin/basename
-rwxr-xr-x 1 root root 51K Mar 14 18:47 /bin/cat
-rwxr-xr-x 1 root root 148K Mar 14 18:47 /bin/cp
-rwxr-xr-x 1 root root 31K Mar 14 18:47 /usr/bin/dirname
-rwxr-xr-x 1 root root 31K Mar 14 18:47 /bin/echo
-rwxr-xr-x 1 root root 27K Mar 14 18:47 /bin/false
-rwxr-xr-x 1 root root 39K Mar 14 18:47 /usr/bin/head
-rwxr-xr-x 1 root root 79K Mar 14 18:47 /bin/mkdir
-rwxr-xr-x 1 root root 39K Mar 14 18:47 /usr/bin/nl
-rwxr-xr-x 1 root root 31K Mar 14 18:47 /bin/pwd
-rwxr-xr-x 1 root root 47K Mar 14 18:47 /usr/bin/seq
-rwxr-xr-x 1 root root 31K Mar 14 18:47 /bin/sleep
-rwxr-xr-x 1 root root 63K Mar 14 18:47 /usr/bin/tail
-rwxr-xr-x 1 root root 31K Mar 14 18:47 /usr/bin/tee
-rwxr-xr-x 1 root root 27K Mar 14 18:47 /bin/true
-rwxr-xr-x 1 root root 19K Apr  1 02:37 /usr/bin/xxd
-rwxr-xr-x 1 root root 27K Mar 14 18:47 /usr/bin/yes

Ответить | Правка | ^ к родителю #113 | Наверх | Cообщить модератору

124. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от Fox Mulder on 11-Май-15, 12:30 
лол невелика. минимум в 2-2.5 раза
Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

126. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +2 +/
Сообщение от Аноним (??) on 11-Май-15, 16:21 
> лол невелика. минимум в 2-2.5 раза

Так для бешеной хипстоты в 3 раза - не крюк...

А для тех кого размер реально колыхал, есть такая штука как бизибокс. И по его меркам coreutils считаются неимоверным bloatware, если что...

Ответить | Правка | ^ к родителю #124 | Наверх | Cообщить модератору

143. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Анонимоус on 13-Май-15, 14:56 
Попробуй strip сделать для этих файлов
Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

5. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +7 +/
Сообщение от Аноним (??) on 09-Май-15, 14:55 
А что, на ld из GCC не умеет линковать статически? o_O    o_O    o_O   o_O
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

59. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 09-Май-15, 21:15 
Умеет, но восторженные пионэры об этом не знают.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

94. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +4 +/
Сообщение от Аноним (??) on 10-Май-15, 09:56 
В GCC нет ld.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

127. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 11-Май-15, 16:21 
> - минимальное рабочее окружение со статической линковкой

И тут сишники вас обставили, сделав бизибокс...

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Crazy Alex (ok) on 09-Май-15, 15:10 
Восторг неофитов, скорее всего. Если к существующей реализации претензий особых нет, поблем с лицензией нет - что это может ещё быть?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

13. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 15:29 
А Вы наверное и не первый и не второй?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

17. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 16:03 
>мне кто-нибудь из тех, кто пишет на С

тоесть вы на си не пишите. А на чем пишите?
>Go-недопрогаммистов неинтересно

Тоесть они хуже вас? Почему если вы не пишите на Си?
>нафига это нужно?

Получить более стабильные утилиты засчет более современного языка, наверное.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

80. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –2 +/
Сообщение от _KUL (ok) on 10-Май-15, 02:57 
C# с поддержкой своего core под линукс самый современный. Так пишите на нем, для апогея "стабильности", б.ять!
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

107. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от Пингвино (ok) on 10-Май-15, 16:58 
Откуда ты, такой буйный дауненок, взялся и что полезного ты сделал для сообщества?
Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

112. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от A.Stahl (ok) on 10-Май-15, 17:39 
Может для начала сам представишься?
Ответить | Правка | ^ к родителю #107 | Наверх | Cообщить модератору

116. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 20:35 
Ты опять забыл принять таблетки.
Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

86. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от A.Stahl (ok) on 10-Май-15, 08:46 
>вы на си не пишите

Эй! Раскомандовался тут...

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

88. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 08:52 
> Получить более стабильные утилиты засчет более современного языка, наверное.

А что, у coreutils есть какие-то проблемы со стабильностью?

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

101. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 11:50 
Вообще да. Например, гнутый cp при копировании 50 терабайт мелких файлов сжирает всю память и вешается.
Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

104. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 10-Май-15, 15:08 
> 50 терабайт мелких файлов

o_O

Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

109. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Пингвино (ok) on 10-Май-15, 17:05 
Опять же проблемы при удалении папок с большим количеством файлов... Иногда это просто невозможно сделать с помощью rm
Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

111. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от None (??) on 10-Май-15, 17:23 
Ну тут два варианта - утечка из-за ошибки в коде, либо разрастание кучи из-за дефекта в malloc/free, а может быть и сама ОС дурит, теряя по байтику при каждом open/close.
Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

120. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 23:40 
>Ну тут два варианта - утечка из-за ошибки в коде, либо разрастание кучи из-за дефекта в malloc/free, а может быть и сама ОС дурит, теряя по байтику при каждом open/close.

Скорее, ошибка в ДНК разработчиков.

>Reading the source code revealed that cp keeps track of which files

have been copied in a hash table that now and then has to be resized to avoid
too many collisions. When the RAM has been used up, this becomes a slow
operation.

https://lists.gnu.org/archive/html/coreutils/2014-08/msg0001...

Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

128. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 11-Май-15, 16:23 
> Вообще да. Например, гнутый cp при копировании 50 терабайт мелких файлов сжирает
> всю память и вешается.

А эту буиту на го вы уже проверили на этих тесткейсах? :)

Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

26. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +2 +/
Сообщение от an (??) on 09-Май-15, 17:18 
если написать еще раз на си, могут не поставить зачет за курсовую работу - скажут плагиат. А так вполне может быть и зачет.

а почему на Go недопрограмисты нопонятно. это же не питон :)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

38. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 09-Май-15, 18:55 
А сам как думаешь?

> В настоящее время уже полностью готовы утилиты dirname, false, sleep, tee, true и yes,

вот именно этот проект явно не нужен т.к. пишет его какая-то школота.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

84. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 10-Май-15, 07:34 
>>Объясните мне кто-нибудь из тех, кто пишет на С

А что ты хочешь от нас услышать? ИМХО, Just for Fun. Или может язык решили изучить и вместо "Hello World!" решили переписать все Unix утилиты?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

95. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 10:59 
А нафига ты нужен?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

108. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от L29Ah on 10-Май-15, 16:58 
Не нужно.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Name. on 09-Май-15, 15:07 
А тот мегакостыль когда 32х битные программы на go не всегда запускались уже починили?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +4 +/
Сообщение от bav (ok) on 09-Май-15, 15:11 
Бгг. Это совсем какие-то школьники делают. dirname помечен как готовый, хотя не поддерживает нескольких аргументов и --zero.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +8 +/
Сообщение от Crazy Alex (ok) on 09-Май-15, 15:14 
Вот что-то подобное я вижу во всех этих свежеслепленных Go-проектах. Оно всё как-то работает, но "продуктом" эти софтины не назвать. Что закономерно, в общем-то, учитывая обычно желание показать, как "легко и просто" что-нибудь сделать на Go. Что ж, сюрприз - законченный продукт почти никогда не бывает легким и простым, и на само писание кода не так много усилий, как некоторым кажется.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

34. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +2 +/
Сообщение от anonymous (??) on 09-Май-15, 18:30 
> само писание кода не так много усилий, как некоторым кажется

А вот это очень хорошие слова. Почему-то многие забывают, что процентов эдак 50% работы программиста -- это вдумчивое составление непротиворечивого дизайна. Реализация которого потом довольно быстро пишется на любом языке известном языке (ну, кроме фортрана).

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

44. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от soarin (ok) on 09-Май-15, 19:15 
Есть ещё составление документации - это тоже весьма скучно
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

79. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от freehck email(ok) on 10-Май-15, 02:50 
> Вот что-то подобное я вижу во всех этих свежеслепленных Go-проектах. Оно всё как-то работает, но "продуктом" эти софтины не назвать.

Ну не знаю. Вот aptly, кажется, хоть и написан на Go, является весьма неплохой штукой. По крайней мере до сих пор я ничего лучше не нашёл для оперирования репозиториями и создания зеркал. Хотя там есть свои недочёты, но вполне готовым продуктом этот проект назвать можно.

Правда, не очень я понимаю, как программисты на Go дебажат свои проекты. В gcc сообщения об ошибках были куда понятнее имхо.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

85. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 07:38 
Ещё Docker написан на Go. Тоже хороший проект.
Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

99. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Crazy Alex (ok) on 10-Май-15, 11:45 
Насколько я понимаю, он заявлен как готовый к продакшну при том, что дыр в нём находят полно - это из той же серии, чрезмерная самоуверенность и попытки выкатить сырое.
Ответить | Правка | ^ к родителю #85 | Наверх | Cообщить модератору

141. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Клыкастый (ok) on 12-Май-15, 16:09 
ты не путаешь полезный и хороший?
Ответить | Правка | ^ к родителю #85 | Наверх | Cообщить модератору

90. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 08:57 
> Правда, не очень я понимаю, как программисты на Go дебажат свои проекты.

Так же как и питонисты - никак. Вываливают что есть, а дальше твои проблемы.

Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

100. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Crazy Alex (ok) on 10-Май-15, 11:49 
Я в выборе софта консервативен и нового пробую мало - за ненадобностью. Поэтому сужу по тому, что проскакивает в новостях. Недавно вот умильный тред насчёт VPN был, к примеру - с теми же проблемами. Докер дырявый, опять же - а он вроде как флагман софта, писанного на Go.
Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

117. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от freehck email(ok) on 10-Май-15, 20:59 
> Я в выборе софта консервативен и нового пробую мало - за ненадобностью.

Я бы надеялся, что нас таких большинство. Тот случай с aptly был единственным, потому как больше до этого я перепробовал много софта для зеркалирования, и ничего, удовлетворившего мои нужды полностью, я не нашёл.

Ответить | Правка | ^ к родителю #100 | Наверх | Cообщить модератору

130. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 11-Май-15, 16:26 
> Что ж, сюрприз - законченный продукт почти никогда не
> бывает легким и простым, и на само писание кода не так
> много усилий, как некоторым кажется.

Ну так сpaные рапидчики никак не могут понять что навозякать кнопки на форме и даже кой-как накидать какого-то кода - это еще не есть качественная и полезная программа. Это всего лишь их жалкие потуги. А что-то сверх того требует нефигово повъе, при том не только по части кодинга.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

66. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 21:59 
Они же клоны утилит UNIX пишут, а не утилит GNU. Стандарты POSIX не предусматривают нескольких путей и никаких опций: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/di...
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

77. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +4 +/
Сообщение от bav (ok) on 10-Май-15, 00:27 
> Стандарты POSIX не предусматривают нескольких путей и никаких опций

dirname был взят как первый попавшийся. Больше чем уверен, что с поддержкой посикса там так же ахово как и с GNU.

Кстати, вот примеры из стандарта, которые эта поделка не проходит:

.build/dirname //a//b// -> /
.build/dirname /a/b/ -> /

Ад и израиль. Зато посмотрите как мало кода!

Если вспомнить про неприятие опций (в других утилитах) в виде -abc, а только -a -b -c, то о каком POSIX вообще идет речь? Автор сего поделия просто тупое школоло.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

89. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +4 +/
Сообщение от Аноним (??) on 10-Май-15, 08:55 
> Ад и израиль. Зато посмотрите как мало кода!

А когда они допишут до состояния "не хуже coreutils" - они узнают почему там столько кода и почему это столько писали.

Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

115. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +2 +/
Сообщение от Аноним (??) on 10-Май-15, 20:16 
Не допишут, пионэры не могут в длительные разработки.
Ответить | Правка | ^ к родителю #89 | Наверх | Cообщить модератору

9. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Crazy Alex (ok) on 09-Май-15, 15:12 
Кстати, "examples are tests" - уже года три как норма в D-сообществе.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

45. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от Аноним (??) on 09-Май-15, 19:30 
С этих убогих вообще взять нечего.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

58. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +2 +/
Сообщение от Crazy Alex (ok) on 09-Май-15, 21:14 
"Эти" занимаются своими делами и не пытаются всё и вся переписать. И лично мне результат их работы нравится - по мощи язык покруче плюсов, а острых углов на порядок меньше. То, что за ними нет гугла или кого-то подобного - отдельный разговор.

А вообще - я имел в виду, что "тесты = примеры" - отннудь не изобретение гошников.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

102. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 13:27 
А это нигде и не утверждалось.
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

10. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +5 +/
Сообщение от bav (ok) on 09-Май-15, 15:13 
А это вообще эпично:

>  I used "flag" to do the flag-parsing, it is a little strict (ie. no combining flags like -xyz instead of -x -y -z).

Совместимость? Не, не слышал.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Crazy Alex (ok) on 09-Май-15, 15:16 
Мда, поветрие как оно есть. Последний раз я такое видел, когда на Ruby всё писать пытались.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 15:39 
Just for fun, вот только история показывает что проблем от такого фана потом будут горы.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 16:12 
А программы на Го могут обращаться к общей библиотеке? Мне просто интересно, как они будут одинаковый функционал делать? А если в нем будут исправления, будут все утилиты перекомпилировать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

78. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от noname.htm on 10-Май-15, 02:43 
gccgo по умолчанию делает динамическую линковку, на сколько я знаю. А вообще да - пересобирать. Но это не долго.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

98. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 11:43 
dlopen() дергают.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

19. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +2 +/
Сообщение от Аноним (??) on 09-Май-15, 16:40 
>basename
>cat
>echo
>pwd
>tail
>работоспособны с некоторыми ограничениями

Специально скачаю, чтобы посмотреть на pwd и echo с "некоторыми ограничениями".

>Предстоит реализовать bc, dc, ed, ls, more и rm.

Че-то ржу.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

51. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –2 +/
Сообщение от Аноним (??) on 09-Май-15, 20:12 
> Специально скачаю, чтобы посмотреть на pwd и echo с "некоторыми ограничениями".

я и без скачиваний предполагаю что этот ихний echo небось не умеет печатать фразы начинающиеся на знак минус. (обычный echo умеет)

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

118. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от BratSinot (ok) on 10-Май-15, 20:59 
https://github.com/polegone/gonix/blob/master/echo.go

Даже человеку незнакомому с Go видно, что никаких getopts (в Go похожая система flags) не используется и проверок на "invalid argument" нет.

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

92. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 09:01 
> Специально скачаю, чтобы посмотреть на pwd

Чтобы понять объем залета, надо вспомнить что в большинстве ФС в *никс файлы и диры могут содержать в названиях любые байты кроме 0x0 (конец строки в Си) и "/".

А теперь представь себе что ты хочешь распечатать на экран путь содержащий полный ассортимент байтов кроме этих двух. Желательно чтобы как минимум терминал потом не очень перекашивало :)))

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

20. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 09-Май-15, 16:44 
хеллоуворд какой-то, если в исходники посмотреть. автор сам запостил новость на опеннет?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +7 +/
Сообщение от Аноним (??) on 09-Май-15, 16:46 
Да хватит сюда тащить проекты про которые даже автор пишет что это для обучения, фана и больше никуда не пойдет
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от soarin (ok) on 09-Май-15, 17:01 
ужас, зачем эти hello worldы, без обработки различных ситуаций, с минимальнейшим функционалом по сравнению с аналогами, сюда надо было тащить?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от soarin (ok) on 09-Май-15, 17:07 
> Также можно отметить проект Godoc

А это тут причём вообще?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от soarin (ok) on 09-Май-15, 17:15 
echo:
for i := 1; i < len(os.Args); i++ { fmt.Printf("%s ", os.Args[i]) }

В конце лишний пробл добавится в итоге. Это нормально?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 17:34 
Вот еще фееричная вещь из реализации yes:
for i := 1; i < len(os.Args); i++
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

28. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 17:37 
Дурачку невдомёк, что os.Args[0] это имя исполняемого файла? Тогда чего он лезет судить других людей?
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от Аноним (??) on 09-Май-15, 17:40 
Nope. Это умнику невдомек, что функция len будет вызываться при каждой итерации.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

32. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от Аноним. on 09-Май-15, 18:22 
Пруф? Думаю, компилятор в состоянии это соптемизировать. К примеру gcc могет соптемизировать for(int i = a; a < b; ++i)
++N;
До N = b - a - 1. В контексте задачи нахождения количества чисел от а до b (видел где-то такое чудо решение на просторах интернетов).
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

37. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от soarin (ok) on 09-Май-15, 18:50 
дурацкий пример, ибо весьма простой, а вот как раз компилятор вряд ли станет оптимизировать вызовы функций (раньше по крайней мере на это не были способны), потому что функция само по себе по мимо возврата результат числа через стек может делать другую работу типа записи в файл и т.д. и т.п
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

39. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +3 +/
Сообщение от Аноним (??) on 09-Май-15, 18:58 
Пруф чего? Если длина строки заранее неизвестна, то каким образом компилятор сможет оптимизировать вызов функции внутри оператора for? Вынести len за пределы цикла, изменяя тем самым семантику программы, что для любого уважающего себя компилятора моветон? А если длина строки изменится внутри цикла, что тогда?

Вот простой пример того, что GCC с флагом -O3 бессилен в таких случаях. В ассемблерном листинге четко виден вызов strlen внутри цикла.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

42. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от soarin (ok) on 09-Май-15, 19:06 
> А если длина строки изменится внутри цикла, что тогда?

На самом деле код есть априори и из него понятно что строка константная, тоесть так можно сделать.
Но да, для компилятора - это слишком круто. А поколение, выбирающие пепСИ и го, без знания ассемблера и принципов компилятора, это не знает - есть такое.

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

57. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 21:13 
Это потому что gcc не имеет права инлайнить strlen, а не имеет он его потому, что сишный рантайм общий на всю систему. А б-гомерзкий MSVC такой инлайн прекрасно делает и на -O0, а на -O3 вычисляет длину argv[i] один раз, а не каждый раз в цикле.
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

61. "В рамках проекта gonix, развивается реализация unix-утилит н..."  –1 +/
Сообщение от Аноним (??) on 09-Май-15, 21:18 
То есть, у тебя компилятор вычисляет длину передаваемого в рантайме аргумента еще до того, как он был передан?
Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

110. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Пингвино (ok) on 10-Май-15, 17:14 
Ты дурачок? Компилятор оптимизирует код так, чтобы в рантайме значение вычислялось всего один раз
Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

63. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 21:30 
Хотя, кажется я понял, что ты имеешь в виду.
Но все равно, при чем тут инлайн? Если мы вычисляем длину _константной_ строки, то любой вменяемый компилятор такой вызов оптимизирует и заменит вызов функции на ее значение. Но с длиной динамического массива такой фокус не пройдет. Теперь внимание, вопрос: как твой компилятор отличает argv от других массивов?
Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

68. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 22:09 
У него есть argc. %)

А если серьезно, то и с длиной динамического массива такой фокус тоже, разумеется пройдет — если эту длину в теле цикла не менять, и других потоков выполнения не иметь (или иметь, но знать, что они тоже ее не меняют).

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

69. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 22:14 
И вообще, os.Args — это не динамический массив. Он статический.
Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

74. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 22:41 
os.Args - слайс в терминологии Go, то есть вполне себе динамический массив
Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

76. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 23:32 
Нет, он []string. И слайсы не могут вырасти больше чем capacity, а capacity неизменна.

Если вам нужно увеличить длину массива, все, что вы можете — это сделать append, но он возвращает новый массив, а старый остается без изменений.

Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

103. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 13:29 
А как еще могут работать динамические массивы?
Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

82. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Алексей Морозов (ok) on 10-Май-15, 05:54 
> Это потому что gcc не имеет права инлайнить strlen

-D__USE_STRING_INLINES, после чего включается машинерия в /usr/include/bits/string.h

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

40. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 18:59 
Забыл пример.
http://pastebin.com/wZKuu00q
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

83. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 07:07 
Оптимизоровать можно только детерминированные ф-ции, т.е. результат которых зависит ислючительно от аргументов. В Го есть механизм указания детерминированности?
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

93. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 09:08 
> соптемизировать.

Go'пники оказывается надеются что за них "оптемизирует" компилер. А то и вовсе "оптемезерует".

> К примеру gcc могет соптемизировать
> for(int i = a; a < b; ++i)

И в каком месте тут был вызов функции? Тут все параметры фиксированные, заранее известные, можно каой-нибудь unroll цикла сделать (от чего в половине случаев на половине процессоров нынче станет хуже а не лучше), сэкономив на инструкциях jump в конце цикла (но раздув код, так что если не влезет в кэш, эффект от экономии jmp-ов может проcpaться).

> количества чисел от а до b (видел где-то такое чудо решение
> на просторах интернетов).

Может ты еще и развороты циклов видел? В случае вызова функции проблема в том что оптимизатор должен быть чуть ли не AI чтобы понять что она всегда возвращает одно и то же.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

140. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 12-Май-15, 12:55 
>В случае вызова функции проблема в том что оптимизатор должен быть чуть ли не AI чтобы понять что она всегда возвращает одно и то же.

AI не нужен. Можно определить детерменированную функцию как только такую, в которой для вычисления результата используются только детерменированные операции в своем теле (+ - * и т.п.) и вызовы других детерменированных функций и не имеет никаких других операций и вызовов.
Результат такой функции будет зависит исключительно от ее аргументов и не иметь побочных эффектов.

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

Я просто не знаю может ли так Го.

Ответить | Правка | ^ к родителю #93 | Наверх | Cообщить модератору

55. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +2 +/
Сообщение от Аноним (??) on 09-Май-15, 21:10 
это вам невдомек, что иногда лучше жевать. В го функция len работает за константу.

Эксперты opennet в очередной раз расписались в своей полной некомпетентности))

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

62. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 21:21 
Да уж, тяжелая судьбинушка у этой функции. Ничего не скажешь.
А если ей передать в качестве аргумента динамический массив, то она тоже "за константу сработает"?
Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

65. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 21:51 
Представь себе.
Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

67. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 22:02 
Ясно.
А теперь, пожалуйста, компетентно поясните: какой смысл Вы вкладываете во фразу "работает за константу"?
Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

72. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 09-Май-15, 22:28 
Я не тот аноним, но факт в том, "динамические массивы" в Го содержат длину как переменную в структуре. Так что "работает за константу", видимо подразумевает, не зависит от количества элементов.
Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

73. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 22:32 
курите маны: http://blog.golang.org/go-slices-usage-and-internals
Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

70. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 22:15 
> Да уж, тяжелая судьбинушка у этой функции. Ничего не скажешь.
> А если ей передать в качестве аргумента динамический массив, то она тоже
> "за константу сработает"?

В го массивы статические.

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

96. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 11:24 
А где тогда динамические?
Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

119. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от BratSinot (ok) on 10-Май-15, 21:02 
> А где тогда динамические?
>> курите маны: http://blog.golang.org/go-slices-usage-and-internals
Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

81. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от freehck email(ok) on 10-Май-15, 03:00 
> Nope. Это умнику невдомек, что функция len будет вызываться при каждой итерации.

А вот макрос loop в Common Lisp такие ситуации умеет обрабатывать. И код становится очень даже приятно читаем. =)

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

31. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Anonymus on 09-Май-15, 18:20 
Дежавю. На каком-то языке, по моде этак 5-летней давности, уже пытались эти утилиты переписывать. Ниасилили. Похоже, го тоже ничего не светит.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

33. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 18:25 
в конце концов есть же perl power tools
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от vitalif (ok) on 09-Май-15, 19:10 
А это. Оно динамическую сборку делать научилось? Или там каждый ls весит 10 мегов?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

60. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от Аноним (??) on 09-Май-15, 21:18 
для динамической линковки есть gccgo
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

48. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 09-Май-15, 20:08 
Надеюсь, они использовали OO возможности языка, а иначе не имеет смысла.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

53. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +3 +/
Сообщение от Аноним (??) on 09-Май-15, 20:27 
Это в любом случае не имеет смысла.
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

87. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Ydro on 10-Май-15, 08:47 
Я бы ещё понял, если бы true и false написали на чистом ассемблере, хотя с нынешними оптимизациями для Си смысла нет. Ждём реализацию данных утилит на JavaScript собранных в один файл под NW.js
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

122. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Ordu email(ok) on 11-Май-15, 07:45 
На x86 бинари для true и false можно впихнуть в 45 байт. Если писать на ассемблере. Подробности можно почитать, например, тут: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
Насчёт всего остального, типа cat -- не скажу, не интересовался. Полагаю результат будет резко хуже, особенно если разбирать аргументы командной строки, обрабатывать все разнообразные вероятные и невероятные ошибки сисколлов и проч. Но если говорить про true и false, то на асме можно выжать эффективность, которая переходит все рамки бессмысленности. Компиляторы так не умеют.
Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

131. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 11-Май-15, 16:30 
> Я бы ещё понял, если бы true и false написали на чистом ассемблере

Вот только если посмотреть на скольких архитектурах работает тот же линух - придется разучить довольно много довольно разноплановых ассемблеров.

Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

97. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +4 +/
Сообщение от Аноним (??) on 10-Май-15, 11:30 
>     

polegone 1 day ago

I'm just doing this for fun and to learn about Go and Unix at the same time.
I am a beginner, and a lot of my code is inefficient and/or incomplete, but by putting it on the Internet I can get criticism and find out where I went wrong.
For instance, some of you have told me that the way I've been reading files is very inefficient, so now I'll try and do it the correct way.

<--  слова автора в оригинальном топике на HN: https://news.ycombinator.com/item?id=9514818. А заголовок как будто сами GNU решили все на Go переписать. Там в этом же топике еще куча таких проектов.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

105. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 10-Май-15, 15:24 
да вообще забавно наблюдать, как из-за этого наколенного проектика тут у многих начало бомбить :) Нинужно! Оно нисоответствует стандарту ПОСИКС!

в который раз убеждаюсь, что о популярности чего-то (в данном случае - Go) лучше всего судить по числу хейтеров))

Ответить | Правка | ^ к родителю #97 | Наверх | Cообщить модератору

123. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +1 +/
Сообщение от iPony on 11-Май-15, 10:45 
Претензии тут не к автору проекта. Да, код весьма плох - но, автор четко писал, что просто для обучения. Претензии к автору-дегенерату новости, что он откопал это и принес сюда.

зы: это ничего, когда кто-то сделал кривой и косой шкаф, но когда он окажется на центральной площади, то это логично что все над ним смеятся будут.

Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

138. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 12-Май-15, 06:40 
проблема в том, что смеющиеся сами ни черта не понимают в теме. И выглядят убого тут в первую очередь они, а вовсе не авторы проекта и новости.
Ответить | Правка | ^ к родителю #123 | Наверх | Cообщить модератору

121. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Илья (??) on 11-Май-15, 03:40 
Для ознакомления с языком - самое то
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

132. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 11-Май-15, 16:31 
> Для ознакомления с языком - самое то

А нам зачем об этом новости читать? Давай я накорябую сюда новость про то как я учился в турбо-пасквиле рисовать через egavga.bgi? :)

Ответить | Правка | ^ к родителю #121 | Наверх | Cообщить модератору

134. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Kodir (ok) on 11-Май-15, 18:36 
О! Братья-олдфаги подтянулись! :) Помню-помню, балет на костылях с насаженными роликами, 640x480, всё страшное, но работает как молния. BGI-шки были для разных режимов и их нужно было загружать.
А потом пришёл Си и всё опошлил!
Ответить | Правка | ^ к родителю #132 | Наверх | Cообщить модератору

136. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от йцу on 12-Май-15, 03:05 
>BGI-шки были для разных

режимов и их нужно было загружать. А потом пришёл Си и всё опошлил!

Да ладно, в борланд ц++ для дос были те же бги.

Ответить | Правка | ^ к родителю #134 | Наверх | Cообщить модератору

133. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Kodir (ok) on 11-Май-15, 18:34 
Школозадое дубьё из Гугла, "отобранные лучшие из лучших", хорошо умеют решать задачи про люки, но вот в реальной жизни лажают как олимпиадники - нет ни профессионального чутья, ни опыта, ни глубоких _программерских_ знаний.

По-моему, все эти затеи - жалкая попытка гугла быть "кем-то" помимо поисковика. Пока получается хреново - запилили язычок, достойный дипломника, а теперь, почти без вливаний, хотят чтобы все на него прыгнули только из-за лэйбла "googled in google" - ЩАЗ! :)

А по поводу полезности проекта, сразу "НЕ НУЖНО". Линуксы/БЗДи и так ПРЕКРАСНО поживают на уже написанных вещах, "тут саму консерваторию менять надо!" (ц)
Сипипи как язык - конечно левая "бомба", его менять нужно, но просто переписать ls на Go/D/Rust и т.п. - глупо, мир "текстовых потоков, входящих и выходящих из программ" умер с первым Жыпег-файлом, миру нужна принципиально новая концепция вместо заскорузлого POSIX.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

135. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 11-Май-15, 22:23 
POSIX, может, и заскорузлый, но нужно ли миру очередное "принципиально новое" без обратной совместимости - большой вопрос. На одной чаше весов - "принципиально новое", на другой - тонны рабочего и отлаженного софта, который вряд ли кто-то кинется переписывать.
Ответить | Правка | ^ к родителю #133 | Наверх | Cообщить модератору

137. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от Аноним (??) on 12-Май-15, 06:34 
>запилили язычок, достойный дипломника

скажете это в лицо Тейлору, Чейни, Пайку, Кернигану, и кто там еще из авторов?))

Ответить | Правка | ^ к родителю #133 | Наверх | Cообщить модератору

139. "В рамках проекта gonix, развивается реализация unix-утилит н..."  +/
Сообщение от имя on 12-Май-15, 11:37 
Их ржавые друзья опередили на целый год: http://www.opennet.dev/opennews/art.shtml?num=39989
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру