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)

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

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

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

Две клавиши можно нажать одной рукой

Особенно, такие клавиши как Shift + 6 (рядом с F4 и F5) и Shift + U, ага. Зачем так выкручивать руки? И это же в корне поломает слепую печать. По крайней мере, некоторые её виды. Поэтому я привык пользоваться только одним Shift'ом (правым), который чтобы не замедляться жму правой рукой, а левой рукой жму нужную клавишу.

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

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

Выкручивая руки и ломая слепую печать (см. выше).

нет необходимости удерживать Compose key

Всё равно чем больше клавиш тем медленнее.

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

Во-первых, я говорю про комбинации клавиш вообще и про нажатие Shift'а в частности. Во-вторых, ксли вводить все 1114112 символов через Compose, то тут придётся жать и не такое.

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

Если для нажатия Shift+U тебе нужно выкручивать руки, и при этом оно ломает слепую печать, то у меня для тебя плохие новости.

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

Не нужно, потому, что я жму двумя руками. Но, кое кто предлагает жать одной.

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

Особенно, такие клавиши как Shift + 6 (рядом с F4 и F5) и Shift + U

LShift зажимается левым мизинцем, 6 и u — правым указательным пальцем.

Поэтому я привык пользоваться только одним Shift'ом (правым)

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

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

У меня тоже слепая печать, хоть и не 10-ти пальцевая. В среднем 3,5-4,5 символа в секунду вполне набираю. Вслепую.

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

Взаимопротиворечивые параграфы. Пример с Shift+6 и Shift+U я привёл отвечая на последнее. Как пример того, что не надо жать одной рукой.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

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

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

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

Для 20-40 символов достаточно и однобайтовой кодировки. Но, нет, сторонники юникода орут, что его плюс в том, что можно писать на 50-ти языках одновременно в одном документе. При этом в юникоде есть ещё и математические символы, пиктограммы, алхимические знаки,... и т.д.

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

Для 20-40 символов достаточно и однобайтовой кодировки. Но, нет, сторонники юникода орут, что его плюс в том, что можно писать на 50-ти языках одновременно в одном документе.

Зачем на 50??? Знание 2-3 языков для более-менее образованного человека - это норма. И на кой держать все символы всех нужных языков на одной клавиатуре? Переключение раскладки для кого придумали?

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

Я, конечно, несколько утрирую, но, тем не менее,... Вот только через переключение раскладок скорость более-менее и сохраняется на всех раскладках, хотя из за него же и страдает. Есть ещё вариант ввода символов через их коды, но это, да, медленнее.

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

Я, конечно, несколько утрирую...

Ты выдумываешь проблему на пустом месте. Потерю скорости набора на пару процентов нормальный человек просто не заметит.

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

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

Зачем? Поставь funcs.bc из http://phodd.net/gnu-bc/ и вуаля. У меня уже давно стоит - очень полезные библиотеки. atan2 там называется at.

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

А это он ее переименовал. У меня стоит, видимо, более старая версия, в которой она at() называется.

# Arctangent (two arguments)
define at(x,y) { 
  auto p;
  if(x==0&&y==0)return(0)
  p=(1-sgn(y))*2*a(1)*(2*(x>=0)-1)
  if(x==0||y==0)return(p)
  return(p+a(x/y))
}
Zubok ★★★★★
()
Ответ на: комментарий от saahriktu

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

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

О, полезная библиотека.

Там и другие есть: convert.bc guess.bc logic.bc rand.bc complex.bc funcs.bc intdiff.bc primes.bc thermometer.bc. Но это у меня установлено. Возможно, что там уже обновились функции.

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

Да, я видел. Собственно, я говорил про весь phodd.net-gnu-bc-201302202200+pdb+html.zip, директорию code из которого я себе развернул в /usr/lib/bc.

     |-array.bc
     |-cf.bc
     |-cf_engel.bc
     |-cf_misc.bc
     |-cf_sylvester.bc
     |-collatz.bc
     |-collatz_continuous.bc
     |-complex.bc
     |-cosconst.bc
     |-digits.bc
     |-digits_describe.bc
     |-digits_happy.bc
     |-digits_misc.bc
     |-factorial.bc
     |-factorial_gamma.bc
     |-fibonacci.bc
     |-funcs.bc
     |-intdiff.bc
     |-interest.bc
     |-logic.bc
     |-logic_andm.bc
     |-logic_inverse.bc
     |-logic_otherbase.bc
     |-logic_striping.bc
     |-logic_striping_meta.bc
     |-melancholy.bc
     |-melancholy_b.bc
     |-misc_235.bc
     |-misc_ack.bc
     |-misc_anglepow.bc
     |-misc_perfectpow.bc
|-bc-|-misc_srr.bc
     |-orialc.bc
     |-output_formatting.bc
     |-output_graph.bc
     |-output_roman.bc
     |-primes.bc
     |
     |                           |-0000-0FFF.bc
     |                           |-1000-1FFF.bc
     |                           |-2000-2FFF.bc
     |                           |-3000-3FFF.bc
     |                           |-4000-4FFF.bc
     |                           |-5000-5FFF.bc
     |                           |-6000-6FFF.bc
     |-primes_db_bigpack---------|-7000-7FFF.bc
     |                           |-8000-8FFF.bc
     |                           |-9000-9FFF.bc
     |                           |-A000-AFFF.bc
     |                           |-B000-BFFF.bc
     |                           |-C000-CFFF.bc
     |                           |-D000-DFFF.bc
     |                           |-E000-EFFF.bc
     |                           |-F000-FFFF.bc
     |
     |-primes_db_bigpack_onefile-|-0000-FFFF.bc
     |-primes_db_code.bc
     |-primes_db_minipack.bc
     |
     |-primes_db_old-------------|-primes_db.bc
     |-primes_other.bc
     |-primes_twin.bc
     |
     |                           |-guess.bci
     |-rand----------------------|-rand.bc
     |                           |-randbc
     |-thermometer.bc

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

Человек может быть сам заинтересован сделать как можно больше (и не обязательно для работы). Но, скорость печати ограничивает.

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

/usr/lib/bc.

Такие вещи, если тебе system-wide нужно, лучше в /usr/local/lib ставить, а еще логичнее, на мой взгляд, в /usr/local/share

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

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

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

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

Это bc, калькулятор, скорость печати роли не играет.

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

Вообще без проблем жму Shift+6 левой рукой — мизинец же есть!

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

если бы меня ограничивала только скорость набора, то я бы уже был богаче билла гейтса :)

mrdeath ★★★★★
()

Мозоли? В биореактор.

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

Просто шикарно, вместо обычного для всех языков программирования стандартного использования в формулах atan2() вы предлагаете простую формулу превратить распределенные деревья из IF ELSE. Я понимаю, что все это просто, но atan(y/x) выдаст ошибку при x=0. Если формула состоит не из одного atan2(), но он используется там несколько раз, следуя вашим советам вместо одной строчки придется писать целый скрипт по отлову исключительных случаев.

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

Сорян, ниже прочитал. Изучаю решение проблемы

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

А как же правильные арифметические знаки (которые в bc, насколько я знаю, не работают)?

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

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

На самом деле должно быть не больше клавиш, чем пельцев на руках - дальше растут расстояния и промахи. С привычными методами работы этого очень мало. Компромисное решение с 2х или даже 3кратным запасом клавиш всё равно не удовлетворяет ни одного известного мне естественного алфавита. 84 - решение уже 4го сорта, и то не обходится без аккордов даже в англиях с их всего 26 буквами. Итого, мы обсуждаем проблемы отличий решений 5го сорта от 6го. Вместо того, чтобы заняться делом и устранять корень проблемы - баги языков и алфавитов.

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

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

Мы работаем над этим. Уже есть первые успехи — комментарий из одних скобочек уже вполне сходит за осмысленный.

redgremlin ★★★★★
()

а что такое dc, и с чем его едят, расскажите кто-нибудь?
bc знаю, иногда использую, в консоли быстрее набрать, чем в графический калькулятор пердолиться, а dc что за зверь?

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

Не шлангуй.

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

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

Если на клаве символа нет, то он не общеупотребимый.

Если тебе постоянно приходится набирать ~3*10^6 символов, то даже наличие их всех на клаве не очень-то поможет — искать нужный забодаешься, и никакой слепой набор не поможет. Если же регулярно употребимых (не обще-, а лично тобой) символов — всего десяток-другой, а клавиатура — твое основное устройство ввода, то ты сам не заметишь, как на моторном уровне запомнишь соответствующие последовательности без зубрежки. А какой-нибудь раз в год (а тем более раз в жизнь) понадобившийся иероглиф можно и скопипастить откуда-нибудь.

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

Если тебе постоянно приходится набирать ~3*10^6 символов

А нужно стремиться обходиться имеющимися в 8 битной кодовой странице.

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

А нужно стремиться обходиться…

Кому и для чего это нужно?

Кстати, на 105-клавишной PC keyboard — 105 клавиш. В 8-битной кодовой странице — 256 символов. Даже за вычетом управляющих символов и даже с учетом Shift клавиатуры на все не хватит.

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

Кому и для чего это нужно?

Пользователям ПК чтобы не изобретать геморрой на свою голову. Полной поддержки юникода из коробки в системе нет! А раз нет, то и нефиг заморачиваться с лишними символами.

Кстати, на 105-клавишной PC keyboard — 105 клавиш. В 8-битной кодовой странице — 256 символов. Даже за вычетом управляющих символов и даже с учетом Shift клавиатуры на все не хватит.

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

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

Для удобства.

Пожалуйста, не говори о том, о чем ничего не знаешь.

дельта всё равно меньше чем в случае миллионов символов

Тебе регулярно приходится набирать миллионы символов? Сочувствую.

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

Полной поддержки юникода из коробки в системе нет!

Того, что есть, в основном хватает.

Часть символов давно похерена мелкософтом

Во-первых, мы на linux.org.ru и микрософт нам — не указ. Во-вторых, это микрософт отобрал у тебя запятые перед «чтобы» и деепричастными оборотами, дефис в слове «по-русски» и пробел в «т. к.»?

dexpl ★★★★★
()

разводящим неуемный оффтоп в треде лопату говна за шиворот. Утилиты нужные и полезные, всегда пользуюсь ими вместо очередного (G|K|YA)alculator'а. Долгой жизни им!

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

Того, что есть, в основном хватает.

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

Во-первых, мы на linux.org.ru и микрософт нам — не указ.

Указ, IBM866 в вэбе используется мало, хоть ты из какой ОС смотри, а благодаря какой организации не вспомнишь?

Во-вторых, это микрософт отобрал у тебя запятые перед «чтобы» и деепричастными оборотами, дефис в слове «по-русски» и пробел в «т. к.»?

В IBM866 было также, то есть зашибись. Зачем в «пишущей машинке» нужны 100 000 видов закорючек - тайна сия велика есть.

Napilnik ★★★★★
()
Последнее исправление: Napilnik (всего исправлений: 1)
Ответ на: комментарий от Napilnik

IBM866 в вэбе используется мало

Кроме IBM866 м CP1251 в твоей реальности кодировок нет?

Зачем в «пишущей машинке» нужны 100 000 видов закорючек - тайна сия велика есть.

Запятые, дефисы и пробелы в твоей реальности — закорючки, а вычислительная техника не далеко ушла от пишмашинок?

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