addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscontroller-playcrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1light-bulblinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Know where you stand: the `pwd` program

This meetup concentrates on the common and simple commands; this time: pwd.

The pwd command prints your current working directory. We will start with a brisk walk through the Solaris pwd.c, then through the garden of BSD with Open, Net, and Free. After leaving the BSD brotherhood we trek on to the ksh, bash, and zsh builtins before landing in GNU.

With the many different authors and distinct cultures we will be sure to have much to discuss and compare. Some things to think about: The -P flag caused quite a stir; how do various programmers express this? In many cases this program is a wrapper around getcwd(); what complexities did getcwd() ignore that the program had to deal with? Why does this program exist?

The POSIX documentation on pwd:

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pwd.html

Just in case you don't have eight copies of pwd.c sitting on your hard drive, you can find them online:

GNU Bash:

http://code.adamrisi.com/p/prestryke/source/tree/master/src/bash/bash-4.1/builtins/cd.def

FreeBSD:

http://svnweb.freebsd.org/base/head/bin/pwd/pwd.c?revision=141578&view=co

GNU:

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/pwd.c

NetBSD:

http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/bin/pwd/pwd.c?rev=1.22

OpenBSD:

http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/src/bin/pwd/pwd.c?rev=1.11;content-type=text%2Fplain

pdksh:

https://github.com/bobertlo/openbsd-pdksh/blob/master/c_ksh.c#L161

OpenSolaris:

https://github.com/illumos/illumos-gate/blob/master/usr/src/cmd/pwd/pwd.c

zsh:

https://github.com/zsh-users/zsh/blob/master/Src/builtin.c#L669

This should all take about three hours. Food and drinks will be provided by thoughtbot.

About us:

This is a reading group for code. Our focus is the classics and tools we use every day. The inspiration is the shared metaphors and expressions we have in natural language due to common books (e.g.  Hitchhiker's Guide to the Galaxy, Romeo and Juliet) and movies (e.g.  Hackers, A Christmas Carol).

Join or login to comment.

  • Zeke V.

    Some day we might even be able to do echo, cp, ls, chmod and kill.

    December 2, 2013

    • Bengt B.

      Baby steps! Baby steps :-)

      December 2, 2013

  • Fredrik H.

    Just as good as the last time! Really interesting diskussions.

    December 2, 2013

  • Magnus B.

    Lookin' forward to this evening!

    November 28, 2013

  • John-Philip J.

    I'm on the waitinglist, but I'm wondering how this meetup works. Do we bring laptops to try things? Is this a open discussion area? A presentation by someone?

    November 27, 2013

    • Mikael M.

      We have one guy display the code with a projector, then we analyse it, make remarks about all kinds of things and compare the different versions of the same kind of application.

      November 27, 2013

    • Mike B.

      It is an open discussion. Picture a bookclub or reading group.

      November 27, 2013

  • Jerker K.

    I'm so sad that I'm not able to attend :(. The last time was so fun!

    October 31, 2013

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy