LINUX.ORG.RU

Состоялся релиз GNU bc 1.07 (и GNU dc 1.4)

 ,


0

1

Через ~16,5 лет после релиза GNU bc 1.06 (и dc 1.2) состоялся релиз GNU bc 1.07 (и dc 1.4).

GNU bc — язык вычислений с произвольной точностью. GNU dc — калькулятор с произвольной точностью.

Изменения в bc 1.07:

  • добавлены void-функции;
  • исправлен баг в load_code, который появился из за хранилища строк математической библиотеки в версии 1.06;
  • исправлена работа длинных опций;
  • почищен код сигналов;
  • исправлен баг в алгоритме AVL tree;
  • исправлен баг в работе математической библиотеки при ibase не равном 10;
  • исправлен баг символьной таблицы при более чем 32 именах;
  • исправлен баг с двойным освобождение памяти.

Изменения в dc 1.4:

  • распознавание и обработка хвостовых рекурсий;
  • добавлены команды 'r' и 'R' для управления стеком;
  • исправлен перехват прерываний в соответствии с документацией: прерывается выполнение макроса, но выход из программы не происходит;
  • исправлены баги;
  • разносторонняя чистка кода;
  • изменения в обнаружении директорий и генерировании ошибок;
  • обнаружение любых ошибок вывода и составление отчётов; выход при неудаче.

>>> Скачать

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Psych218 (всего исправлений: 3)

Бесит этот костыль. Лучше бы в bash и dash добавили нормальную арифметику как в других языках.

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

bash - это shell, и он должен выполнять только функции shell'а, в число которых арифметика произвольной точности не входит. Даже в Perl 5 по дефолту её нет, только через модуль. А вот в Perl 6 её, конечно, впихнули по дефолту.

saahriktu ★★★★★
() автор топика

Релиз раз в 16 лет, по одному изменению раз в два года. Вот это я понимаю - штабильность.

petrosyan ★★★★★
()

Изменения в dc 1.4:

наконец-то новая версия херни, которую случайно запускаешь, когда делаешь опечатку в cd!

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

наконец-то новая версия херни, которую случайно запускаешь, когда делаешь опечатку в cd!

Ни разу в жизни так не запускал я dc, но тем не менее за 17 лет бы уж могли

dc() { echo "Redirecting to cd..." >&2; cd "$@"; }
сделать например ^_+

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

Бесит этот костыль. Лучше бы в bash и dash добавили нормальную арифметику как в других языках.

Охренеть, и много Вы языков с вычислениями с произвольной точностью знаете?

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

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

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

Ни разу в жизни так не запускал я dc, но тем не менее за 17 лет бы уж могли

Novel родился позже, чем была выпущена предыдущая версия.

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

bash - это shell, и он должен выполнять только функции shell'а

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

Чистый шелл - это rc из plan 9.

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

Лучше бы в bash и dash добавили нормальную арифметику как в других языках.

Use zsh, Luke.

anonymous
()

чувствуется олдскульность. для сборки все еще хочет ed

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

наконец-то новая версия херни, которую случайно запускаешь, когда делаешь опечатку в cd!

Люто плюсую :)

anc ★★★★★
()

как там до сих пор с scale отличного от 0 и % можно отстрелить ногу? // лучше, конечно, чем приколы `expr', но малоприятно

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

Молодцы что избавили от необходимости писать одну строчку раз в сто скриптов?

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

Потому, что это не APL. А bc, кстати, входит в POSIX.

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

Это даже lynx распарсил в ASCII:

1.23 *10^4^5
> echo "1.23 *10^4^5" | bc -l
12300000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000.00

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

Что это за говно? Где символы соответствующие ГОСТ 7.71-96, ущербный?

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

хреново он у тебя распарсил. результат неверный

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

1.23 *10^4^5

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

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

предложи вариант, сохраняющий удобство редактирования

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

bash - это shell... арифметика произвольной точности не входит

Тут скорее всего речь шла не о «произвольной точности», а о нормальной поддержке float/double/int64. Если такая штука будет в дефолтном bash (а не где-то в bc или awk или альтернативном zsh), многие вещи будут проще и понятнее.

По поводу быстрее/не быстрее, меньше/не меньше и нужно/не нужно. В busybox запихнули все что только можно (включая и bc и некоторые сетевые утилиты), при этом и работает хорошо и размер небольшой и встречается даже в embedded. Было бы желание...

$ qsize bash
app-shells/bash-4.4_p12: 194 files, 22 non-files, 3140.766 KiB
$ qsize busybox
sys-apps/busybox-1.26.2: 54 files, 19 non-files, 2151.708 KiB
anonymous
()

а функцию atan2() до сих пор не внедрили. позор а не калькулятор. приходится арктангенс приходится считать непрофильной для этого awk

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

bash - это shell, и он должен выполнять только функции shell'а, в число которых арифметика произвольной точности не входит

Кто сказал?

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

работает хорошо

UTF-8 практически не поддерживается

Понятно.

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

а функцию atan2() до сих пор не внедрили

Зато есть обычный арктангенс. А координаты точки на окружности в тригонометрию переводятся элементарно. x -> cos(alpha), y -> sin(alpha). Таким образом, остаётся вычислить atan(y/x).

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

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

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

Комбинации клавиш - это медленно.

Если палец к мыши не прирос, то не медленнее, чем одиночные клавиши. Нажал же ты Shift+К в слове «комбинации».

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

Тем не менее, нажатие Shift'а всё равно замедляет ввод. И нажатие 2-х клавиш одновременно - это совсем не комбинации с 3-мя и ещё большим кол-вом клавиш. Две клавиши можно нажать двумя руками одновременно: одну клавишу одной, вторую - другой. А рук всего две.

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