Graham Ollis

  • Website:
  • About: Perl programmer with an interest in Alien and FFI technologies. Primary developer of FFI::Platypus and Alien::Build.
  • Posted Constant Platypus to Graham Ollis

    A common challenge in calling C functions from any language other than C or C++ is dealing with constants. In C these are usually implemented using ="font-family: monospace,monospace;font-size: 85%;background-color: rgba(27,31,35,.05);border-radius: 3px;margin: 0;padding: .2em…

  • Commented on Bundling With Platypus
    I don't know a lot about TensorFlow, but a quick look at the tensorflow/c/c_api.h header file looks pretty FFI friendly....
  • Posted Bundling With Platypus to Graham Ollis

    If you've heard of FFI::Platypus you probably know that you can use it to easily write Perl bindings for existing system libraries:

  • Posted Platypus Next Generation to Graham Ollis

    Platypus is getting an update. It’s not backward compatible, so you have to opt-in when you create the platypus instance. That makes it backward compatible for all the old code you may or may not have written. Please spread the word.

  • Posted The many ways to use Alien to Graham Ollis

    A while back I introduced the alienfile recipe system and we wrote a simple alienfile that provides in a CPAN context the tool xz and the library liblzma

  • Posted Integrating alienfile to Graham Ollis

    Last week I introduced xz and the library liblzma. I also showed ho…

  • Posted alienfile to Graham Ollis

    Alien::Base was first released in alpha form five years ago this month! The good things that Alien::Base (runtime) and Alien::Base::ModuleBuild (its installer ABMB) did when it was…

  • Posted Alien::Build vs. Alien::Base::ModuleBuild to Graham Ollis

    I have been working on the next generation of Alien::Base installer which is called Alien::Build. It is already quite usable, and I encourage it's use for anyone who is considering building a…

  • Commented on Alien::Base and Module::Build
    Alien::Base is already completely independent of installer logic. The modules that have configure_requires of Alien::Base are simply wrong. Alien::Base could be an empty isa of Alien::Base::Core I suppose, though I think there are educational and branding challenges there. I'm open...
  • Posted Alien::Base and Module::Build to Graham Ollis

    TL;DR - if you have an Alien::Base based Alien module, please update configure_requires so that it depends on Alien::Base::ModuleBuild instead of

  • Commented on Improved reliability with Alien and Test::Alien
    Thanks for the heads up on the Russian interest in Rusty Perl. I have been wanting to go deeper into using Rust from Perl (or failing that find someone with a deeper understanding to take over the module). What Russian...
  • Posted Improved reliability with Alien and Test::Alien to Graham Ollis

    With the gracious collaboration with Cosimo,Text::Hunspell made the switch from ExtUtils::PkgConfig to Alien::Hunspell late late year. Despite the somewhat complicated dependency requirements, this immediately made the spell checker more reliable as reported by cpantesters, as many machines do…

  • Posted Making Alien::Base more reliable to Graham Ollis

    The Alien::Base (AB) team has done a number of things over the past year with AB to make the installing packages more reliable. For AB based Alien developers who have created their own Alien::Libfoo this is great because they get the benefit of…

  • Commented on Convert::Binary::C anyone?
    Great. Thanks for connecting us. Everything has been resolved....
  • Posted Convert::Binary::C anyone? to Graham Ollis

    I'm interested in getting Convert::Binary::C into a properly maintained state once again. It has a pod test that is failing (which should be an author or release test) and a regex deprecation warning in 5.22 that will likely render it…

  • Posted Alien::Base: System Integrators vs. CPAN Authors to Graham Ollis

    Last week I promised (or threatened depending on your outlook) to talk about Alien::Base in the context of system integration and distribution packagers.


    The philosophy for ="…

  • Posted Alien::Base 0.020 and #native to Graham Ollis

    This week we rolled out the latest version of Alien::Base which includes a new feature and a bug fix. The most important change in this version are the two new avenues of communication that we have adopted, so I will discuss that first.


  • Commented on Alien::Base past, present and future (upcoming change in behavior)
    I apologize for typing your name wrong. Also agree Joel is still very much involved especially in design discussions, did not intend to imply otherwise....
  • Posted Alien::Base past, present and future (upcoming change in behavior) to Graham Ollis

    Alien::Base has made a great deal of progress since last September when Joel Berger turned over day to day development for the project to the then newly created Alien::Base team. We’ve closed most of the major issues and pull requests. One remaining important issue will hopefully be solved…

  • Commented on File::Which, pwhich and App::pwhich
    Reading comprehension is key. Reading the documentation I see you can get the list context version from IPC::Cmd too, but you need to set a global variable: twin% perl -MIPC::Cmd=can_run -E '$IPC::Cmd::INSTANCES=1; say $_ for can_run("perl")' /home/user/perl5/perlbrew/perls/perl-5.20.2t/bin/perl /usr/bin/perl /usr/bin/X11/perl...
  • Commented on File::Which, pwhich and App::pwhich
    File::Which can be called in list context: twin% perl -MFile::Which -E 'say $_ for which("perl")' /home/user/perl5/perlbrew/perls/perl-5.20.2t/bin/perl /usr/bin/perl /usr/bin/X11/perl Which may be useful for some applications, I've needed that capability at times in the past. Also the IPC::Cmd variant seems...
  • Posted File::Which, pwhich and App::pwhich to Graham Ollis

    I recently took over maintenance of File::Which in order to fix some outstanding bugs. For those that are unawares, File::Which implements the unix capability of the which command as a portable Perl API. This allows you to search for commands in the system PATH,…

  • Commented on Adopting in the hope to improve maintenance
    Ah good news, Nicholas Clark has released a new version of PerlIO::gzip, that works with Perl 5.20, so at least that one is taken care of :)...
  • Posted Adopting in the hope to improve maintenance to Graham Ollis

    I am interested in getting these modules under good maintenance again:

    • Term::EditLine (Ulrich Burgbacher) (update thanks to Neil Bowers and Ulrich Burgbacher I am now the maintainer of this dist)
    • Win32API::ProcessStatus (Ferdinand Prantl)
  • Commented on Practical FFI with Platypus
    I'm sorry I didn't see your comment until just now. The Inline::Perl5 stuff sounds exciting I will have to dig in and find out more about it. As far as compatibility, I don't see any reason that it Inline::Perl5 shouldn't...
  • Commented on Practical FFI with Platypus
    I like the way that you did that though, I think it is more intuitive than the existing way, so I might add it as a Platypus feature:
  • Commented on Practical FFI with Platypus
    Try this: my $packed = $c->pack('SYSTEMTIME', $dateStruct); my $pointer = $ffiObj->cast(string => opaque => $packed); #Call the function by passing the structure reference GetLocalTime($pointer);...
  • Commented on Practical FFI with Platypus
    Thanks for your feedback Sam. Compared to FFI::Raw, Platypus allows you to easily address some common C patterns for passing arguments like: - pointers to native types (int, float, etc) for pass by reference - fixed arrays of native types...
  • Posted Practical FFI with Platypus to Graham Ollis

    At YAPC::NA 2014 I talked about FFI and Perl. FFI is an alternative to XS that I think is worthy of consideration. My talk was well attended, I think primarily because I jokingly subtitled my talk "Never Need To Write XS Again". So there is a market for this idea. I mostly talked about…

  • Posted Intent to adopt Win32API::ProcessStatus to Graham Ollis

    A while ago I was playing around with Win32API::ProcessStatus which provides an interface to psapi.dll on Windows. It had an undeclared dependency on Win32API::Process and needed just a minor correction to get it working on cygwin, so I emailed the author on February 6, 2014 with the changes and…

Subscribe to feed Recent Actions from Graham Ollis

  • Aristotle commented on Alien::Base and Module::Build
    The modules that have configure_requires of Alien::Base are simply wrong.

    How many are there? If there are only a handful, then OK – I guess we can eat the breakage and move on. But, maybe we still shouldn’t. And if there’s a substantial amount of them, then it would definitely be really good to avoid having to roll over everything on CPAN and breaking the historical record.

    Has this always been a wrong thing to do, or did declaring a configure_requires on Alien::Base used to be the advertised way of doing it? If it used to be sanctio…

  • Yuki Kimoto commented on Alien::Base and Module::Build

    FFI::Platypus seems to be good product. I am reading documentation now.

  • Veesh commented on Bundling With Platypus

    Hey, I'm planning on working on that too! I was just gonna wait until they release the c api for version 2.

    If you start, please let me know and we'll work on it together.

  • Yuki Kimoto commented on Bundling With Platypus

    > tensorflow/c/c_api.h header file looks pretty FFI friendly.

    Thank you for the information.

  • Yuki Kimoto commented on Bundling With Platypus

    Oh, I can do some bits of help when that time!

Subscribe to feed Responses to Comments from Graham Ollis

About is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.