News for hackers. Stuff that matters.
Re:A deeper introduction to Unix DC by arexxbifs on Monday June 08, 2020 @08:34AM (#23455935)
Related fun fact: bc is a dc preprocessor[0].

[0] https://en.wikipedia.org/wiki/Bc_(programming_language)#Hist...

Re:A deeper introduction to Unix DC by staycoolboy on Monday June 08, 2020 @03:20PM (#23459801)
I love reading examples of these "great-great-grandparent" applications hidden in /bin. I've used dc in shell scripts for years, but for the simplest of simple computations (e.g., automating FDISK partitioning and doing sector math). Had no idea it could do this.

TIL this and a cool CSS trick.

Re:A deeper introduction to Unix DC by c0l0 on Monday June 08, 2020 @09:21AM (#23456237)
dc is worth having installed because of this CLI gem alone:

    echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq" | dc
I've never tried to understand what's really going on to produce the result, but also wouldn't really know where to start - maybe someone in HN's audience can enlighten me? :)
Re:A deeper introduction to Unix DC by em500 on Monday June 08, 2020 @09:39AM (#23456372)
dc and bc are standard POSIX utils (and also part of busybox for embedded systems) so for most unix-like systems they're installed by default unless you take active measures to exclude them.
Re:A deeper introduction to Unix DC by c0l0 on Monday June 08, 2020 @09:56AM (#23456494)
POSIX.1-2017 describes the `dc` program as "excluded" from the standard; check https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu... for details.

Many GNU/Linux distros (at least Debian and RHEL) install neither `dc` nor `bc` by default, afaik.

Re:A deeper introduction to Unix DC by yjftsjthsd-h on Monday June 08, 2020 @05:59PM (#23461283)
> Many GNU/Linux distros (at least Debian and RHEL) install neither `dc` nor `bc` by default, afaik.

Yeah, I recently wrote a script that used bc and immediately discovered that it didn't work on at least Arch Linux (and I think others, although I only seem to have added it to the Arch ansible config...); conveniently, I only needed the most trivial of calculations, so I just shifted to awk, which has better default availability.

Re:A deeper introduction to Unix DC by akira2501 on Monday June 08, 2020 @02:59PM (#23459615)
Gentoo doesn't include it in the common 'stage3' tarball, either. Which is annoying because it's actually required to compile the linux kernel.
Re:A deeper introduction to Unix DC by em500 on Monday June 08, 2020 @01:15PM (#23458480)
I stand corrected, only bc is included in POSIX.
Re:A deeper introduction to Unix DC by na85 on Monday June 08, 2020 @04:29PM (#23460417)
Re:A deeper introduction to Unix DC by kps on Monday June 08, 2020 @11:14AM (#23457187)

    echo '1033333377708482P' | dc
produces the same output using Unix dc but not in the GNU near-clone. (To understand why, you have to R the P as well as the M.)
Re:A deeper introduction to Unix DC by m463 on Monday June 08, 2020 @11:58PM (#23463508)

  echo 'EGSZ%%%'|tr 'E-Z%' 'R-ZA-M!'
Re:A deeper introduction to Unix DC by Hitton on Monday June 08, 2020 @08:37AM (#23455953)
Funny. Despite being long time Linux user this is the first time I remember hearing about dc. I only knew bc.
Re:A deeper introduction to Unix DC by m463 on Tuesday June 09, 2020 @12:00AM (#23463517)
I have a way of looking at this. More people are familiar with apples than okra. (there's a reason for that)
Re:A deeper introduction to Unix DC by seryoiupfurds on Monday June 08, 2020 @05:46PM (#23461171)

    [Monte Carlo approximation of Pi.
    Registers:
    u - routine : execute i if sum of squares less than 1
    i - routine : increment register x
    z - routine : iterator - execute u while n > m++
    r - routine : RANDU PRNG
    m - variable: number of samples
    x - variable: number of samples inside circle
    s - variable: seed for r
    k - variable: scale for division
    n - variable: number of iterations (user input)
    ]c
    [lrx 2^ lrx 2^ + 1>i]su
    [lx 1+ sx]si
    [lu x lm 1+ d sm ln>z]sz
    [0k ls 65539 * 2 31^ % d ss lkk 2 31 ^ /]sr
    ? sn
    5dksk
    1 ss
    lzx
    lx lm / 4*
    p

    $ dc pi.dc
    100000
    3.13372
Re:A deeper introduction to Unix DC by azizsaya on Monday June 08, 2020 @01:08PM (#23458409)
Aah! command I encounter and ignore when I mistype cd
Re:A deeper introduction to Unix DC by yjftsjthsd-h on Tuesday June 09, 2020 @01:35PM (#23468782)
At least it's not sl ;)
Re:A deeper introduction to Unix DC by 082349872349872 on Monday June 08, 2020 @08:55AM (#23456064)
6581840dnP
Re:A deeper introduction to Unix DC by kps on Monday June 08, 2020 @10:56AM (#23457014)

    156 is unimplemented
Is that a gnuism?
Re:A deeper introduction to Unix DC by 082349872349872 on Monday June 08, 2020 @11:05AM (#23457118)
Yes, sorry. Try:

    6582352
    dpP
(at least we now know the error is old enough to be in octal)