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 with a graphic design donated by Six Apart, Ltd.