Hacker News new | ask | show | jobs
by justinsaccount 3959 days ago
Right.. and the actual BSD stuff is frozen in time as well:

  $ strings `which cp`|grep src
  $FreeBSD: src/bin/cp/utils.c,v 1.46 2005/09/05 04:36:08 csjp Exp $
  $FreeBSD: src/bin/cp/cp.c,v 1.52 2005/09/05 04:36:08 csjp Exp $

  $ strings `which ls`|grep src
  $FreeBSD: src/bin/ls/cmp.c,v 1.12 2002/06/30 05:13:54 obrien Exp $
  $FreeBSD: src/bin/ls/ls.c,v 1.66 2002/09/21 01:28:36 wollman Exp $
  $FreeBSD: src/bin/ls/print.c,v 1.57 2002/08/29 14:29:09 keramida Exp $
  $FreeBSD: src/bin/ls/util.c,v 1.38 2005/06/03 11:05:58 dd Exp $

https://svnweb.freebsd.org/base/head/bin/cp/cp.c?view=log and https://svnweb.freebsd.org/base/head/bin/ls/ls.c?view=log

show various fixes and new features added since then.

  $ strings /bin/* /sbin/* /usr/bin/* /usr/sbin/*|grep ,v
paints a pretty dismal picture.

One interesting way to look at this. The first commit from freebsd for ls.c is:

  Added Thu May 26 06:18:55 1994 UTC (21 years, 2 months ago) by rgrimes
  Original Path: vendor/CSRG/dist/bin/ls/ls.c
  File length: 13099 byte(s)
  BSD 4.4 Lite bin Sources

The last commit apple has is:

  Modified Fri Jun 3 11:05:58 2005 UTC (10 years, 2 months ago) by dd 
So apples version is almost closer in time to the original 4.4 sources as to the current version.
1 comments

string `which ls`|grep src shows cvs strings. FreeBSD switched over to svn a long time ago and cvs id strings are not updated anymore. But svn log ls.c on the head branch shows the last change was on 20-July-2015.

In any case, why keep fiddling with the source code if the program does what it is intended to do?

Here's a good example. Came up just the other day.

    $ du -hs big.log;time cat big.log  > /dev/null
    199M	big.log

    real	0m0.045s
    user	0m0.002s
    sys	0m0.043s
    $ time gtr a b < big.log > /dev/null

    real	0m0.334s
    user	0m0.182s
    sys	0m0.142s
    $ time tr a b < big.log > /dev/null

    real	0m33.105s
    user	0m31.757s
    sys	0m0.488s
    $
I don't have a freebsd machine around to see if it's just apples tr that is broken.

I'm sure it's related to unicode bullshit, but the usual env var tricks don't seem to help.