OpenBSD Journal

g2k14: Andrew Fresh on Programming Perl

Contributed by tbert on from the do you take it with one hump or two? dept.

This was my first hackathon so I wasn't really sure what to do. I had some plans to possibly import perl 5.20, but I was hoping to include 5.20.1 which isn't out for at least a month and espie@ says that it is too close to lock. I will continue to push local patches upstream to get everyone using perl on OpenBSD to be using the same improvements that are in our base perl.

I was sure some project would present itself that I really wanted to work on, so I started out by slacking and working on the tool I've been playing with to make generating ports for things that keep track of their dependencies and have automated installers, such as things from perl's CPAN or Node's NPM Perl support is pretty good, but both Python and Nodejs, while started have run into roadblocks due to the different ways they handle dependencies. Talked some to abeiber@ about how to solve the nodejs problem and it sounds like someone will have to end up patching npm to add support for features we need, mostly the ability to install dependencies offline. Still not sure how to ask python packages for a list of their dependencies so automating that has ground to a halt.

During the time I was avoiding reading npm source or better understanding Python's different package systems, I got the last few dependencies updated so that I can update DBIx::Class to the current version. I actually submitted that update, but zhuk@ mentioned that he has examples of how to start up local database instances with their datafiles inside of the port's ${WRKDIR} so that I can run "live" tests automatically. That sounds like a great feature so I will figure out how to accomplish that and update the port before re-submitting.

I did submit a few bugs to perl upstream while at the hackathon, reporting an issue that ended up being unsolvable due to the way perl buffers output and also adding configure glue and other things for pelikan@'s POSIX international currency formatting additions. I need to do a little cleanup on it, but that should go in soon.

Eventually, there was discussion about why there are adduser, useradd, and "user add" commands and how terrible they were. There was a suggestion to get rid of the perl based adduser, but many people prefer the interactive interface because they add users so infrequently that the additional prompting is super helpful. Unfortunately, I fell for their trick and looked inside the file. I am now working on rewriting adduser with some more modern perl style, I got started on that on Friday evening and got about half way through an initial rewrite by Sunday night. The current design I am looking at is providing a module to do the heavy lifting so that people scripting system management tools (in perl) can talk to a better API than forking out and driving one of the existing scripts. I hope to make it easy to write your own tools to manage users safely and programmatically, while also providing a tool with a friendly, interactive frontend that is also easy to drive from a shell script.

Ljubljana is beautiful, the people were amazing and so much good, vegan food. Plus the weather was overcast, all of which kept me from getting too homesick for Portland, OR. I really enjoyed how friendly and welcoming all of the people we met there were and how well we worked around the surprisingly few language barriers.

As this was my first time in Europe, I left the hackathon on Monday morning and took a shuttle to Venice as recommended. The recommendations were always "Venice? Don't go there, it's so touristy! Oh, you've never been? You should go and see it at least once." So Lisa and I went and added to the number of tourists. We have learned that we really enjoy traveling the world and I am greatly looking forward to the next hackathon for an excuse to finally see more of the world. It did make me want to improve the number of human languages I can do basic things in.

I too need to be sure to mention what a good job Mitja did organizing the hackathon, many, many thanks to him and to Dijaski dom Tabor.

(Comments are closed)


Comments
  1. By Cabal (Cabal) Maybe Cabal on https://lobste.rs/

    Has there been any consideration to removing Perl from base?

    Comments
    1. By David The Machine (99.68.149.113) david@davidthemachine.org on http://davidthemachine.org

      > Has there been any consideration to removing Perl from base?

      Perl is an essential scripting language for use in all the system administration utilities, like the package system.

      So asking this is like asking Iron Man to not use his suit anymore.

      Comments
      1. By Still Cabal (Cabal) on https://lobste.rs/

        > > Has there been any consideration to removing Perl from base?
        >
        > Perl is an essential scripting language for use in all the system administration utilities, like the package system.
        >
        > So asking this is like asking Iron Man to not use his suit anymore.

        That's an interesting dependency.

    2. By Ed AHlsen-Girard (132.3.37.82) eagirard@cox.net on

      > Has there been any consideration to removing Perl from base?

      Whenever someone suggests this, a kitten dies.

      Comments
      1. Comments
        1. By Anonymous Coward (156.35.97.35) on

          kitten killer!

          Comments

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]