Skip to content

Instantly share code, notes, and snippets.

@jkeenan
jkeenan / perlmaketargets.md
Created October 24, 2022 12:39
Perl 'make' targets on Unix (unofficial)

NAME

perlmaketargets - A guide to Perl's make targets

DESCRIPTION

This document provides an introduction to the make targets you are most likely to use when building perl.

This document should be considered as tips for your work on the core

@jkeenan
jkeenan / gist:4e1d977860f0d44709f38f0e0623b430
Last active October 14, 2018 01:41
Hey! Wasn't that what Parrot was supposed to do?
From https://github.com/Microsoft/xlang ...
"The xlang project enables developers to take existing shared libraries,
implemented in one programming language and make that library's APIs
available to client code using a different programming language. Thus
the name "xlang," for cross-language.
"Additionally, the xlang toolset will be available on multiple operating
systems. This means that if your shared library is portable to various
operating systems, then you can use the xlang tooling to make that shared
=pod
Here is a list of CPAN distributions which B<may> have external Makefiles.
I have not built or used any of these, so your mileage may vary.
=cut
my %distros = {
"$CPAN/authors/id/A/AG/AGENT/Lemplate-0.15.tar.gz" => { "doc/Makefile" => 1, "src/Makefile" => 1 },
@jkeenan
jkeenan / first-email.pl
Last active December 3, 2017 19:14
Send an email on a system where 'sendmail' is running
#!/usr/bin/env perl
use strict;
use warnings;
use 5.12.0;
use Email::Sender::Simple qw(sendmail);
use Email::Simple;
use Email::Simple::Creator;
my $instructions =
'http://search.cpan.org/~rjbs/Email-Sender-1.300031/lib/Email/Sender/Manual/QuickStart.pm';
@jkeenan
jkeenan / feedback-from-former-director-of-technology.mkdn
Created October 2, 2017 13:54
Feedback from a veteran Perl user for discussion at 2017 Perl 5 Core Hackathon

The following are comments I solicited from a veteran Perl user who has held positions at the "director of technology" level, spoken at Perl conferences and contributed to major CPAN projects. I do not necessarily agree with these comments but believe they are worthy of consideration at the 2017 Perl 5 Core Hackathon and in other contexts. -- jkeenan

I spend a lot of time thinking about this and in the end it comes down to two general categories of things. The first one is obvious stuff about how we communicate the worth of Perl to technology consumers, and support our existing user base. The second (and in my mind the most important one) has to

@jkeenan
jkeenan / how-to-bisect-a-perl-debugger-problem.mkdn
Last active September 22, 2018 15:56
How to Bisect a Problem in the Perl 5 Debugger

How to Bisect a Problem in the Perl 5 Debugger

Bisection and the Perl 5 Core Distribution

Bisection is a developer's technique used to locate the point in a series of commits to a repository where the behavior of an application changed. While this change could be a change for the better -- "When did this feature start accidentally working?" -- the change being sought is usually a change for the worse: "When did this feature stop working correctly?".

@jkeenan
jkeenan / cpan.river.csv
Created April 9, 2017 15:28
CPAN River in CSV format (as of 2017-04-09)
We can't make this file beautiful and searchable because it's too large.
count,distribution,core_upstream_status,maintainers,top_3_downstream
27572,perl,,,"PathTools:27554 Test-Simple:27554 Carp:27554 Pod-Simple:27554 Pod-Escapes:27554"
27554,Carp,blead-upstream,"DAPM DOM FLORA JESSE LBROCARD NWCLARK P5P RJBS ZEFRAM","File-Path:27554 PathTools:27554 File-Temp:27554 Exporter:27554 Pod-Simple:27554"
27554,Data-Dumper,blead-upstream,"EDAVIS GSAR ILYAM P5P SMUELLER","ExtUtils-MakeMaker:27554 CPAN-Meta:15702 ExtUtils-Manifest:14885 Module-Build:14784 ExtUtils-Config:8432"
27554,Encode,cpan-upstream,DANKOGAI,"podlators:27554 ExtUtils-MakeMaker:27554 CPAN-Meta:15702 Encode-Locale:7319 IO-HTML:7302"
27554,Exporter,blead-upstream,"FERREIRA FLORA NWCLARK P5P TODDR","File-Temp:27554 Carp:27554 Pod-Escapes:27554 Encode:27554 Module-Metadata:18384"
27554,ExtUtils-MakeMaker,cpan-upstream,"ABURLISON ANDK BINGOS CHORNY ETHER ETJ FLORA LEONT MMML MSCHWERN MSTROUT P5P","podlators:27554 Scalar-List-Utils:27554 Pod-Simple:27554 Test-Harness:27554 IO:27554"
27554,File-Path,cpan-upstream,"DLAND FLORA J
@jkeenan
jkeenan / valgrind.more.detail.texi2any.sh
Created November 7, 2016 21:22
valgrind with more leak detail
This file has been truncated, but you can view the full file.
valgrind --leak-check=full --show-leak-kinds=all $PERL -w -d ../texi2any.pl \
--set-customization-variable=TEXI2HTML \
--force \
--conf-dir ./../t/init/ \
--conf-dir ./../init -I formatting// -I ./ \
--set-customization-variable L2H_FILE=./../t/init/l2h.init \
--error-limit=1000 \
--set-customization-variable TEST=1 \
--set-customization-variable L2H_CLEAN=0 \
--output formatting//out_parser/simplest_test_prefix_info/ \
@jkeenan
jkeenan / valgrind.texi2any.sh
Created November 7, 2016 21:06
valgrind around script with panic
$ valgrind $PERL -w ../texi2any.pl --set-customization-variable=TEXI2HTML --force --conf-dir ./../t/init/ --conf-dir ./../init -I formatting// -I ./ --set-customization-variable L2H_FILE=./../t/init/l2h.init --error-limit=1000 --set-customization-variable TEST=1 --set-customization-variable L2H_CLEAN=0 --output formatting//out_parser/simplest_test_prefix_info/ --info --set-customization-variable 'PREFIX truc' ./formatting//simplest.texi
==1502== Memcheck, a memory error detector
==1502== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==1502== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==1502== Command: /home/jkeenan/testing/a5540cf/bin/perl -w ../texi2any.pl --set-customization-variable=TEXI2HTML --force --conf-dir ./../t/init/ --conf-dir ./../init -I formatting// -I ./ --set-customization-variable L2H_FILE=./../t/init/l2h.init --error-limit=1000 --set-customization-vari
@jkeenan
jkeenan / vagrant_up_failure.md
Created August 16, 2016 02:26
'vagrant up' does not complete smoothly

I have a FreeBSD 10.3 virtual machine running inside a VirtualBox 5.1 box sitting on a Linux x86-64 (Ubuntu 16.04 LTS) host. I control the virtual machine via Vagrant 1.8.5. From the Linux command-line I say:

$ cd ~/vagrant
$ vagrant up

... to which the output is:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...