Giter Site home page Giter Site logo

raku-libcurl's Introduction

Raku LibCurl

Build Status

Simple Examples Options Header Options Special Options Errors Info Received headers Content Proxies Multi

A Raku interface to libcurl.

libcurl is a free and easy-to-use client-side URL transfer
library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS,
IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP,
SMTP, SMTPS, Telnet and TFTP. libcurl supports SSL certificates,
HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload,
proxies, cookies, user+password authentication (Basic, Digest,
NTLM, Negotiate, Kerberos), file transfer resume, http proxy
tunneling and more!

libcurl is highly portable, it builds and works identically on
numerous platforms, including Solaris, NetBSD, FreeBSD, OpenBSD,
Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows,
Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell
NetWare, DOS and more...

libcurl is free, thread-safe, IPv6 compatible, feature rich, well
supported, fast, thoroughly documented and is already used by many
known, big and successful companies and numerous applications.

Simple Examples

use LibCurl::Easy;

# GET
print LibCurl::Easy.new(URL => 'http://example.com').perform.content;

# GET (download a file)
LibCurl::Easy.new(URL => 'http://example.com/somefile',
                  download => 'somefile').perform;

# HEAD
say LibCurl::Easy.new(:nobody, URL => 'http://example.com')
    .perform.response-code;

# PUT (upload a file)
LibCurl::Easy.new(URL => 'http://example.com/somefile',
                  upload => 'somefile').perform;

# PUT (content from a string)
LibCurl::Easy.new(URL => 'http://example.com/somefile',
                  send => 'My Content').perform;

 # DELETE
LibCurl::Easy.new(URL => 'http://example.com/file-to-delete',
                  customrequest => 'DELETE').perform;

# POST
LibCurl::Easy.new(URL => 'http://example.com/form.html',
                  postfields => 'name=foo&opt=value').perform;

LibCurl::HTTP

If even those aren't easy enough, there is a tiny sub-class LibCurl::HTTP that adds aliases for the common HTTP methods:

use LibCurl::HTTP;

my $http = LibCurl::HTTP.new;

say $http.GET('http://example.com').perform.content;

say $http.GET('http://example.com', 'myfile').perform.response-code;

say $http.HEAD('http://example.com').perform.response-code;

$http.DELETE('http://example.com').perform;

$http.PUT('http://example.com', 'myfile').perform;

$http.POST('http://example.com/form.html', 'name=foo&opt=value').perform;

LibCurl::HTTP methods also enable failonerror by default, so any HTTP response >= 400 will throw an error.

You can even import very simple subroutines ala WWW:

use LibCurl::HTTP :subs;

# Just GET content (will return Failure on failure):
say get 'https://httpbin.org/get?foo=42&bar=x';

# GET and decode received data as JSON:
say jget('https://httpbin.org/get?foo=42&bar=x')<args><foo>;

# POST content (query args are OK; pass form as named args)
say post 'https://httpbin.org/post?foo=42&bar=x', :some<form>, :42args;

# And if you need headers, pass them inside a positional Hash:
say post 'https://httpbin.org/post?foo=42&bar=x', %(:Some<Custom-Header>),
    :some<form>, :42args;

# Same POST as above + decode response as JSON
say jpost('https://httpbin.org/post', :some<form-arg>)<form><some>;

Fancier Example

my $curl = LibCurl::Easy.new(:verbose, :followlocation);
$curl.setopt(URL => 'http://example.com', download => './myfile.html');
$curl.perform;
say $curl.success;
say $curl.Content-Type;
say $curl.Content-Length;
say $curl.Date;
say $curl.response-code;
say $curl.statusline;

Of course the full power of libcurl is available, so you aren't limited to HTTP URLs, you can use FTP, SMTP, TFTP, SCP, SFTP, and many, many more.

Options

Many of the libcurl options are available, mostly just skip the CURLOPT_, lowercase, and use '-' instead of '_'. For example, instead of CURLOPT_ACCEPT_ENCODING, use accept-encoding. When the options are really boolean (set to 1 to enable and 0 to disable), you can treat them like option booleans if you want, :option to enable, and :!option to disable.

Just like libcurl, the primary option is URL, and can take many forms depending on the desired protocol.

Options can be set on a handle either on initial creation with new(), or later with .setopt(). As a convenience, you can also just treat them like normal object methods. These are all equivalent:

my $curl = LibCurl::Easy.new(:verbose, :followlocation,
                             URL => 'http://example.com');

$curl.setopt(:verbose, followlocation => 1);
$curl.setopt(URL => 'http://example.com');

$curl.verbose(1);
$curl.followlocation(1);
$curl.URL('http://example.com');

postfields is actually CURLOPT_COPYPOSTFIELDS so it will always copy the fields.

Some of the normal options have _LARGE versions. LibCurl always maps the option to the _LARGE option where they exist, so you don't have to worry about overflows.

These are the current options (If you want one not in this list, let me know):

CAinfo CApath URL accepttimeout-ms accept-encoding address-scope append autoreferer buffersize certinfo cookie cookiefile cookiejar cookielist customrequest default-protocol dirlistonly failonerror followlocation forbid-reuse fresh-connect ftp-skip-pasv-ip ftp-use-eprt ftp-use-epsv ftpport header http-version httpauth httpget httpproxytunnel ignore-content-length) infilesize localport localportrange low-speed-limit low-speed-time maxconnects maxfilesize maxredirs max-send-speed max-recv-speed netrc nobody noprogress nosignal password path-as-is post postfields postfieldsize protocols proxy proxyauth proxyport proxytype proxyuserpwd proxy-ssl-verifypeer proxy-ssl-verifyhost range redir-protocols referer request-target resume-from ssl-verifyhost ssl-verifypeer tcp-keepalive tcp-keepidle tcp-keepintvl timecondition timeout timeout-ms timevalue unix-socket-path unrestricted-auth use-ssl useragent username userpwd verbose wildcardmatch xoauth2_bearer

Header Options

In addition to the normal libcurl special options that set headers (useragent, referer, cookie), there are some extra options for headers:

Content-MD5, Content-Type, Content-Length, Host, Accept, Expect, Transfer-Encoding.

$curl.Host('somewhere.com');  # or $curl.setopt(Host => 'somewhere.com')
$curl.Content-MD5('...');     # or $curl.setopt(Content-MD5 => '...')

You can also add any other headers you like:

$curl.set-header(X-My-Header => 'something', X-something => 'foo');

You can clear a standard header by setting the header to '', or send a header without content by setting the content to ';'

$curl.set-header(Accept => '');      # Don't send normal Accept header
$curl.set-header(Something => ';');  # Send empty header

If you are reusing the handle, you can also clear the set headers:

$curl.clear-header();

This only clears the 'extra' headers, not useragent/referer/cookie.

Special Options

In addition to the normal libcurl options, Raku LibCurl uses options for some special Raku functionality.

debugfunction replaces the libcurl CURLOPT_DEBUGFUNCTION callback, with one that looks like this:

sub debug(LibCurl::Easy $easy, CURL-INFO-TYPE $type, Buf $buf)
{...}

$curl.setopt(debugfunction => &debug);

xferinfo replaces the libcurl CURLOPT_XFERINFOFUNCTION (and CURLOPT_PROGRESSFUNCTION) with one that looks like this:

sub xferinfo(LibCurl::Easy $easy, $dltotal, $dlnow, $ultotal, $ulnow)
{...}

$curl.setopt(xferinfofunction => &xferinfo);

download specifies a filename to download into.

upload specifies a filename to upload from.

send specifies a Str or a Buf to send content from.

Finally there is a private option which replaces CURLOPT_PRIVATE, and you can safely store any object in it.

Errors

In most circumstances, errors from libcurl functions will result in a thrown X::LibCurl exception. You can catch these with CATCH. You can see the string error, or cast to Int to see the libcurl error code.

For HTTP transfers, you can access the response code with getinfo('response-code') or just .response-code. You can also check that the response code is in the 2xx range with .success.

You might find the failonerror option useful to force an error if the HTTP code is equal to or larger than 400. That will cause an exception in those cases.

On an error, you may find extra human readable error messages with the .error method.

$curl.perform;

CATCH {
    say "Caught!";
    when X::LibCurl {
        say "$_.Int() : $_";
        say $curl.response-code;
        say $curl.error;
    }
}

Info

After a transfer, you can retrieve internal information about the curl session with the .getinfo method.

You can explicitly request a single field, or a list of fields to get a hash, or just get all the fields as a hash. As in the options, there are also convenience methods for each info field.

say $curl.getinfo('effective-url');
say $curl.getinfo('response-code');

say $curl.getinfo(<effective-url response-code>);  # Hash with those keys

say $curl.getinfo;   # Hash of all info fields

say $curl.effective-url;
say $curl.response-code;

Fields currently defined are:

appconnect_time certinfo condition-unmet connect-time content-type cookielist effective-url ftp-entry-path header-size http-connectcode httpauth-avail lastsocket local-ip local-port namelookup-time num-connects os-errno pretransfer-time primary-ip primary-port proxyauth-avail redirect-url request-size response-code rtsp-client-cseq rtsp-cseq-recv rtsp-server-cseq rtsp-session-id size-download size-upload speed-download speed-upload ssl-engines total-time

Received header fields

You can retrieve the header fields in several ways as well.

say $curl.receiveheaders<Content-Length>;  # Hash of all headers

say $curl.get-header('Content-Length');

say $curl.Content-Length;

Content

If you did not specify the download option to download content into a file, the content will be stashed in memory in a Buf object you can access with the .buf() method.

If you understand that the content is decodable as a string, you can call the .content($encoding = 'utf-8') method which will decode the content into a Str, by default with the utf-8 encoding if not specified.

say "Got content", $curl.content;

Multi-part forms

Forms now uses the libcurl MIME capability, but requires verison 7.56 or greater for forms.

There is a special POST option for multipart/formdata.

my $curl = LibCurl::Easy.new(URL => 'http://...');

# normal field
$curl.formadd(name => 'fieldname', contents => 'something');

# Use a file as content, but not as a file upload
$curl.formadd(name => 'fieldname', filecontent => 'afile.txt');

# upload a file from disk, give optional filename or contenttype
$curl.formadd(name => 'fieldname', file => 'afile.txt',
              filename => 'alternate.name.txt',
              contenttype => 'image/jpeg');

# Send a Blob of contents, but as a file with a filename
$curl.formadd(name => 'fieldname', filename => 'some.file.name.txt',
              contents => "something".encode);

$curl.perform;

This will automatically cause LibCurl to POST the data.

Proxies

libcurl has great proxy support, and you should be able to specify anything needed as options to LibCurl to use them. The easiest for most common cases is to just set the proxy option.

By default, libcurl will also respect the environment variables http_proxy, ftp_proxy, all_proxy, etc. if any of those are set. Setting the proxy string to "" (an empty string) will explicitly disable the use of a proxy, even if there is an environment variable set for it.

A proxy host string can also include protocol scheme (http://) and embedded user + password.

Unix sockets

LibCurl can be used to communicate with a unix socket by setting the unix-socket-path option. You must still specify a host, but it is ignored. For example, you could use the docker REST API like this:

use LibCurl::Easy;
use JSON::Fast;

my $docker = LibCurl::Easy.new(unix-socket-path => '/var/run/docker.sock');

my $info = from-json($docker.URL("http://localhost/info").perform.content);
say $info<KernelVersion>;
say $info<OperatingSystem>;

Streaming

There is an experimental stream capability which can bind a Channel to the data stream. Instead of retrieving the buffered data at once, each time data comes in it is sent through to the Channel. This is useful for long-lived connections that periodically send more data.

You can access it with Something like this:

my $curl = LibCurl::Easy.new(URL => ...);

my $stream = $curl.stream-out;

start react whenever $stream -> $in {
    say "in: ", $in;
}

$curl.perform;

Suggestions for improving the interface for this capability welcome!

Multi

Raku LibCurl also supports the libcurl multi interface. You still have to construct LibCurl::Easy (or LibCurl::HTTP) handles for each transfer, but instead of calling .perform, just add the handle to a LibCurl::Multi.

use LibCurl::Easy;
use LibCurl::Multi;

my $curl1 = LibCurl::Easy.new(:verbose, :followlocation,
                     URL => 'http://example.com',
                     download => './myfile1.html');

my $curl2 = LibCurl::Easy.new(:verbose, :followlocation,
                     URL => 'http://example.com',
                     download => './myfile2.html');

my $multi = LibCurl:Multi.new;

$multi.add-handle($curl1);
$multi.add-handle($curl2);

$multi.perform;

say $curl1.statusline;
say $curl2.statusline;

You can also use an asynchronous callback to get a notification when an individual transfer has completed. The callback takes place in the same thread with all the transfers, so it should complete quickly (or start a new thread for heavy lifting as needed). You can add additional handles to the LibCurl::Multi at any time, even re-using completed LibCurl::Easy handles (after setting URL, etc. as needed).

use LibCurl::Easy;
use LibCurl::Multi;

my $curl1 = LibCurl::Easy.new(:followlocation,
                              URL => 'http://example.com',
                              download => 'myfile1.html');

my $curl2 = LibCurl::Easy.new(:followlocation,
                              URL => 'http://example.com',
                              download => 'myfile2.html');

sub callback(LibCurl::Easy $easy, Exception $e)
{
    die $e if $e;
    say $easy.response-code;
    say $easy.statusline;
}

my $multi = LibCurl::Multi.new(callback => &callback);

$multi.add-handle($curl1, $curl2);

$multi.perform;

INSTALL

LibCurl depends on libcurl, so you must install that prior to installing this module. It may already be installed on your system.

  • For debian or ubuntu: apt-get install libcurl4-openssl-dev
  • For alpine: apk add libcurl
  • For CentOS: yum install libcurl

SEE ALSO

There is another Raku interface to libcurl Net::Curl developed by Ahmad M. Zawawi. If you already use it and it works well for you, great, keep using it. Ahmad did a nice job developing it. I would encourage you to also take a look at this module. LibCurl provides a more 'rakuish' OO interface to libcurl than Net::Curl, and wraps things in a manner to make using it a little easier (IMHO).

LICENSE

Copyright © 2017 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. No copyright is claimed in the United States under Title 17, U.S.Code. All Other Rights Reserved.

See NASA Open Source Agreement for more details.

raku-libcurl's People

Contributors

bduggan avatar curttilmes avatar ddlws avatar jj avatar melezhik avatar ufobat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

raku-libcurl's Issues

Mac error loading lib

From: William Michels

I just updated to Rakudo-2020.06, and while updating many of my
modules to their latest versions I saw an error installing/updating
(Raku) LibCurl. Below, the first few lines of the error seen with
LibCurl::Easy (and EasyHandle):

===> Testing: LibCurl:ver<1.0>:auth<github:CurtTilmes>:api<1>
[LibCurl] # Failed test 'LibCurl::EasyHandle module can be use-d ok'
[LibCurl] # at t/01-load.t line 6
[LibCurl] # Cannot load native library 'libcurl.so.4'
[LibCurl] # Failed test 'LibCurl::Easy module can be use-d ok'
[LibCurl] # at t/01-load.t line 8
[LibCurl] # ===SORRY!=== Error while compiling
/Users/myuseraccount/.zef/store/raku-libcurl.git/random_40-character-alphanumeric/lib/LibCurl/Easy.rakumod
(LibCurl::Easy)
[LibCurl] # Cannot load native library 'libcurl.so.4'
[LibCurl] # at /Users/myuseraccount/.zef/store/raku-libcurl.git/random_40-character-alphanumeric/lib/LibCurl/Easy.rakumod
(LibCurl::Easy):2

So one caveat is that this install is on an OS which many would
consider to be "MacOS.10.ancient" [I'm posting here and not on Github
because we seem to have a number of Mac users on this mailing-list].
But the fact of the matter is Raku LibCurl:ver<0.9> worked just fine
with Rakudo-2020.02.1. Furthermore, now that I've downgraded back to
Raku LibCurl:ver<0.9>, LibCurl::Easy works once again on the latest
Rakudo-2020.06. So I really feel the problem is with LibCurl:ver<1.0>
on Macs, and not my particular install.

Questions for Mac-heads: Do newer versions of MacOS still install
LibCurl as part of the OS? Where does that reside? I know I have
libcurl in the following directories, however 'libcurl.so.4' is
conspicuously absent:

/opt/local/lib/libcurl.4.dylib
/opt/local/lib/libcurl.a
/opt/local/lib/libcurl.dylib

Are Mac-users able to use (Raku) LibCurl:ver<1.0> on their (newer)
systems? FYI, I've installed curl independently of MacOS via either
MacBrew or MacPorts, and in fact MacBrew reports upon attempting to
update: "Warning: curl 7.71.1 is already installed and up-to-date".

Any help appreciated, Thx, Bill.

MoarVM panic: Internal error: Unwound entire stack and missed handler

MoarVM panic: Internal error: Unwound entire stack and missed handler

Expected Behavior

No panic :)

Actual Behavior

$ perl6
To exit type 'exit' or '^D'
> use LibCurl::HTTP;
Nil
> my $browser=LibCurl::HTTP.new;
LibCurl::HTTP.new(handle => LibCurl::EasyHandle.new, header-slist => LibCurl::slist, form => LibCurl::Form, receiveheaders => {}, statusline => Any, upload-fh => NativeCall::Types::Pointer, download-fh => NativeCall::Types::Pointer, sendbuf => Blob, sendindex => Int, buf => Blob, errorbuffer => NativeCall::Types::CArray[uint8].new, debugfunction => Callable, xferinfofunction => Callable, private => Any)
> say $browser.GET("http://google.com").perform.content;
MoarVM panic: Internal error: Unwound entire stack and missed handler

Steps to Reproduce

$ zef install LibCurl::HTTP
$ perl6 -MLibCurl::HTTP -e 'my $ua=LibCurl::HTTP.new; say $ua.GET("http://google.com").perform.content;'
MoarVM panic: Internal error: Unwound entire stack and missed handler

Environment

$ uname -a
Linux hostname 4.14.49-1-ARCH #1 SMP Fri Jun 15 02:09:36 UTC 2018 armv7l GNU/Linux
$ perl6 -v
This is Rakudo version 2018.05 built on MoarVM version 2018.05
implementing Perl 6.c.
$ pacman -Qi curl
Name            : curl
Version         : 7.60.0-1
Description     : An URL retrieval utility and library
Architecture    : armv7h
URL             : https://curl.haxx.se
Licenses        : MIT
Groups          : None
Provides        : libcurl.so=4-32

The machine is a Raspberry Pi 3B1, running ArchLinuxARM, and rakudo was installed using the AUR (Arch User repository) package https://aur.archlinux.org/packages/rakudo/.

I also posted on the rakudo issue tracker as I was not sure what in my previous script was causing it to crash, but now I have picked it apart a little I have narrowed it down to this.
Let me know if you need anything else from me to help debug it.
Best regards,
Mark.

question: how do I get the content in non "success" cases

I dont manage to figure out how I get the content of a HTTP response if the status-code is not < 400.

> perl6 -e 'use LibCurl::HTTP; sub MAIN(Str $url) { my $h = LibCurl::HTTP.new; try { $h.GET($url).perform; CATCH{ default {.say}}}; say $h.content }' "www.google.com/fas"
HTTP response code said error
  in method perform at /home/martin/.rakudobrew/moar-2017.09/install/share/perl6/site/sources/08E9B748943417E15B3A29F01E431CF45AD845BC (LibCurl::Easy) line 583
  in sub MAIN at -e line 1
  in block <unit> at -e line 1
> curl -v "www.google.com/fas"
*   Trying 172.217.19.68...
* TCP_NODELAY set
* Connected to www.google.com (172.217.19.68) port 80 (#0)
> GET /fas HTTP/1.1
....
< Date: Mon, 29 Jan 2018 16:35:07 GMT
< 
<!DOCTYPE html>
<html lang=en>
.... more content....

my real world example is:
I am working with an rest api that returns errors as json as well as having error codes in the http response. i cant figure out how to display those json errors from my api.

fetching binary content

Hello,
I have got a "broken" webserver that offers me a chunk of binary data but unfortunatelly sets this header:
Content-Type: text/plain;charset=UTF-8.
Bechause the $encoding information in the header overrides the $encoding provided in the method call to content it is impossible to fetch the data. ( I was assuming that i could decode $random_data with latin1 )

Segfault when calling `getinfo` method

Here's a repro MVM_SPESH_DISABLE=1 raku -MLibCurl::Easy -e 'my $c = LibCurl::Easy.new(URL => "https://example.com").perform; my $s; $s = $c.getinfo for ^100' and some debugging info below (I disabled spesh because there's another MoarVM bug until MoarVM/MoarVM#1627 is merged). According to @nine at https://logs.liz.nl/moarvm/2021-12-26.html#09:49 LibCurl::Easy isn't quite using NativeCall correctly and may need a short term fix until he enables the not-really-implemented-yet functionality that LibCurl::Easy is using.

[dan@alexandria perl6]$ raku -v
Welcome to Rakudo™ v2021.12-4-g9237926eb.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2021.12-5-g06170c973.
[dan@alexandria perl6]$ zef info LibCurl::Easy
===> Updating fez mirror: https://360.zef.pm/
===> Updated fez mirror: https://360.zef.pm/
===> Updating cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
===> Updating p6c mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/p6c1.json
===> Updated p6c mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/p6c1.json
===> Updated cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
- Info for: LibCurl::Easy
- Identity: LibCurl:ver<1.5>:auth<github:CurtTilmes>:api<1>
- Recommended By: Zef::Repository::LocalCache
- Installed: Yes
Description:     Raku bindings for LibCurl
License:         NASA-1.3
Provides: 6 modules
Support:
#   source:     https://github.com/CurtTilmes/raku-libcurl.git
#   bugtracker: https://github.com/CurtTilmes/raku-libcurl.git
#   email:      [email protected]
Depends: 8 items
[dan@alexandria perl6]$ MVM_SPESH_DISABLE=1 raku -MLibCurl::Easy -e 'my $c = LibCurl::Easy.new(URL => "https://example.com").perform; my $s; $s = $c.getinfo for ^100'
free(): invalid pointer
Aborted (core dumped)
[dan@alexandria perl6]$ MVM_SPESH_DISABLE=1 valgrind ./install/bin/raku -MLibCurl::Easy -e 'my $c = LibCurl::Easy.new(URL => "https://example.com").perform; my $s; $s = $c.getinfo for ^100'
==744076== Memcheck, a memory error detector
==744076== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==744076== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==744076== Command: ./install/bin/raku -MLibCurl::Easy -e my\ $c\ =\ LibCurl::Easy.new(URL\ =\>\ "https://example.com").perform;\ my\ $s;\ $s\ =\ $c.getinfo\ for\ ^100
==744076== 
==744076== Invalid free() / delete / delete[] / realloc()
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2F29: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2F29: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2F29: MVM_gc_allocate_frame (allocation.c:99)
==744076==    by 0x4A78363: MVM_frame_move_to_heap (frame.c:641)
==744076==    by 0x4A7AADA: MVM_frame_force_to_heap (frame.h:131)
==744076==    by 0x4A7AADA: MVM_frame_takeclosure (frame.c:1145)
==744076==    by 0x4A6BBC0: MVM_interp_run (interp.c:1153)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0xfcee5b4 is 5,252 bytes inside a block of size 5,360 alloc'd
==744076==    at 0x4843A83: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x1009CE3F: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10058B25: curl_easy_init (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x4BB5B04: ??? (in /home/dan/Source/perl6/install/lib/libmoar.so)
==744076==    by 0x1FFEFFF82F: ???
==744076==    by 0x4BB593E: dc_callvm_call_x64 (in /home/dan/Source/perl6/install/lib/libmoar.so)
==744076==    by 0x10058AEF: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0xEB246EF: ???
==744076== 
==744076== Invalid read of size 1
==744076==    at 0x4844D16: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADB93C: make_wrapper.isra.0 (CArray.c:241)
==744076==    by 0x4ADC0AF: at_pos (CArray.c:321)
==744076==    by 0x4A5DE02: MVM_interp_run (interp.c:2017)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0x1053d3c0 is 0 bytes inside a block of size 32 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2F29: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2F29: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2F29: MVM_gc_allocate_frame (allocation.c:99)
==744076==    by 0x4A78363: MVM_frame_move_to_heap (frame.c:641)
==744076==    by 0x4A7AADA: MVM_frame_force_to_heap (frame.h:131)
==744076==    by 0x4A7AADA: MVM_frame_takeclosure (frame.c:1145)
==744076==    by 0x4A6BBC0: MVM_interp_run (interp.c:1153)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E7A9: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x100585C0: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10079BEF: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007A921: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B2CB: curl_mvaprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B3D9: curl_maprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x100A2DCF: curl_url_get (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1009E427: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007F86F: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10080B05: curl_multi_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10058D0B: curl_easy_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x4BB5B04: ??? (in /home/dan/Source/perl6/install/lib/libmoar.so)
==744076== 
==744076== Invalid read of size 1
==744076==    at 0x4844D24: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADB93C: make_wrapper.isra.0 (CArray.c:241)
==744076==    by 0x4ADC0AF: at_pos (CArray.c:321)
==744076==    by 0x4A5DE02: MVM_interp_run (interp.c:2017)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0x1053d3c1 is 1 bytes inside a block of size 32 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2F29: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2F29: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2F29: MVM_gc_allocate_frame (allocation.c:99)
==744076==    by 0x4A78363: MVM_frame_move_to_heap (frame.c:641)
==744076==    by 0x4A7AADA: MVM_frame_force_to_heap (frame.h:131)
==744076==    by 0x4A7AADA: MVM_frame_takeclosure (frame.c:1145)
==744076==    by 0x4A6BBC0: MVM_interp_run (interp.c:1153)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E7A9: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x100585C0: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10079BEF: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007A921: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B2CB: curl_mvaprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B3D9: curl_maprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x100A2DCF: curl_url_get (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1009E427: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007F86F: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10080B05: curl_multi_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10058D0B: curl_easy_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x4BB5B04: ??? (in /home/dan/Source/perl6/install/lib/libmoar.so)
==744076== 
==744076== Invalid read of size 1
==744076==    at 0x4B3B255: MVM_string_utf8_decode (utf8.c:175)
==744076==    by 0x4ADB957: make_wrapper.isra.0 (CArray.c:241)
==744076==    by 0x4ADC0AF: at_pos (CArray.c:321)
==744076==    by 0x4A5DE02: MVM_interp_run (interp.c:2017)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0x1053d3c0 is 0 bytes inside a block of size 32 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2F29: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2F29: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2F29: MVM_gc_allocate_frame (allocation.c:99)
==744076==    by 0x4A78363: MVM_frame_move_to_heap (frame.c:641)
==744076==    by 0x4A7AADA: MVM_frame_force_to_heap (frame.h:131)
==744076==    by 0x4A7AADA: MVM_frame_takeclosure (frame.c:1145)
==744076==    by 0x4A6BBC0: MVM_interp_run (interp.c:1153)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E7A9: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x100585C0: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10079BEF: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007A921: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B2CB: curl_mvaprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B3D9: curl_maprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x100A2DCF: curl_url_get (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1009E427: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007F86F: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10080B05: curl_multi_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10058D0B: curl_easy_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x4BB5B04: ??? (in /home/dan/Source/perl6/install/lib/libmoar.so)
==744076== 
==744076== Invalid read of size 1
==744076==    at 0x4B3B347: MVM_string_utf8_decode (utf8.c:195)
==744076==    by 0x4ADB957: make_wrapper.isra.0 (CArray.c:241)
==744076==    by 0x4ADC0AF: at_pos (CArray.c:321)
==744076==    by 0x4A5DE02: MVM_interp_run (interp.c:2017)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0x1053d3c1 is 1 bytes inside a block of size 32 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2F29: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2F29: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2F29: MVM_gc_allocate_frame (allocation.c:99)
==744076==    by 0x4A78363: MVM_frame_move_to_heap (frame.c:641)
==744076==    by 0x4A7AADA: MVM_frame_force_to_heap (frame.h:131)
==744076==    by 0x4A7AADA: MVM_frame_takeclosure (frame.c:1145)
==744076==    by 0x4A6BBC0: MVM_interp_run (interp.c:1153)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E7A9: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x100585C0: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10079BEF: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007A921: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B2CB: curl_mvaprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007B3D9: curl_maprintf (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x100A2DCF: curl_url_get (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1009E427: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x1007F86F: ??? (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10080B05: curl_multi_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x10058D0B: curl_easy_perform (in /usr/lib/libcurl.so.4.7.0)
==744076==    by 0x4BB5B04: ??? (in /home/dan/Source/perl6/install/lib/libmoar.so)
==744076== 
WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

==744076== Invalid read of size 2
==744076==    at 0x4AEA961: gc_free (MVMCapture.c:55)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0xd04f718 is 8 bytes inside a block of size 24 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E899: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4A50C83: MVM_malloc (alloc.h:2)
==744076==    by 0x4A50C83: MVM_callsite_drop_positionals (callsite.c:376)
==744076==    by 0x4AEB6E5: MVM_capture_drop_args (MVMCapture.c:355)
==744076==    by 0x4B04335: MVM_disp_program_record_capture_drop_args (program.c:1325)
==744076==    by 0x4B0B4A8: dispatcher_drop_arg_impl (syscall.c:152)
==744076==    by 0x4B07C14: MVM_disp_program_run (program.c:3569)
==744076==    by 0x4AFC89B: dispatch_monomorphic (inline_cache.c:107)
==744076==    by 0x4A631BE: MVM_interp_run (interp.c:5345)
==744076==    by 0x1097D7: main (main.c:474)
==744076== 
==744076== Invalid read of size 1
==744076==    at 0x4AEA982: gc_free (MVMCapture.c:57)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0xd04f71f is 15 bytes inside a block of size 24 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E899: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4A50C83: MVM_malloc (alloc.h:2)
==744076==    by 0x4A50C83: MVM_callsite_drop_positionals (callsite.c:376)
==744076==    by 0x4AEB6E5: MVM_capture_drop_args (MVMCapture.c:355)
==744076==    by 0x4B04335: MVM_disp_program_record_capture_drop_args (program.c:1325)
==744076==    by 0x4B0B4A8: dispatcher_drop_arg_impl (syscall.c:152)
==744076==    by 0x4B07C14: MVM_disp_program_run (program.c:3569)
==744076==    by 0x4AFC89B: dispatch_monomorphic (inline_cache.c:107)
==744076==    by 0x4A631BE: MVM_interp_run (interp.c:5345)
==744076==    by 0x1097D7: main (main.c:474)
==744076== 
==744076== Invalid read of size 2
==744076==    at 0x4A4FE41: MVM_callsite_destroy (callsite.c:136)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0xd04f718 is 8 bytes inside a block of size 24 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E899: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4A50C83: MVM_malloc (alloc.h:2)
==744076==    by 0x4A50C83: MVM_callsite_drop_positionals (callsite.c:376)
==744076==    by 0x4AEB6E5: MVM_capture_drop_args (MVMCapture.c:355)
==744076==    by 0x4B04335: MVM_disp_program_record_capture_drop_args (program.c:1325)
==744076==    by 0x4B0B4A8: dispatcher_drop_arg_impl (syscall.c:152)
==744076==    by 0x4B07C14: MVM_disp_program_run (program.c:3569)
==744076==    by 0x4AFC89B: dispatch_monomorphic (inline_cache.c:107)
==744076==    by 0x4A631BE: MVM_interp_run (interp.c:5345)
==744076==    by 0x1097D7: main (main.c:474)
==744076== 
==744076== Invalid read of size 8
==744076==    at 0x4A4FE70: MVM_free (alloc.h:43)
==744076==    by 0x4A4FE70: MVM_callsite_destroy (callsite.c:137)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0xd04f710 is 0 bytes inside a block of size 24 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E899: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4A50C83: MVM_malloc (alloc.h:2)
==744076==    by 0x4A50C83: MVM_callsite_drop_positionals (callsite.c:376)
==744076==    by 0x4AEB6E5: MVM_capture_drop_args (MVMCapture.c:355)
==744076==    by 0x4B04335: MVM_disp_program_record_capture_drop_args (program.c:1325)
==744076==    by 0x4B0B4A8: dispatcher_drop_arg_impl (syscall.c:152)
==744076==    by 0x4B07C14: MVM_disp_program_run (program.c:3569)
==744076==    by 0x4AFC89B: dispatch_monomorphic (inline_cache.c:107)
==744076==    by 0x4A631BE: MVM_interp_run (interp.c:5345)
==744076==    by 0x1097D7: main (main.c:474)
==744076== 
==744076== Invalid read of size 8
==744076==    at 0x4A4FE78: MVM_free (alloc.h:44)
==744076==    by 0x4A4FE78: MVM_callsite_destroy (callsite.c:137)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0xd04f720 is 16 bytes inside a block of size 24 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E899: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4A50C83: MVM_malloc (alloc.h:2)
==744076==    by 0x4A50C83: MVM_callsite_drop_positionals (callsite.c:376)
==744076==    by 0x4AEB6E5: MVM_capture_drop_args (MVMCapture.c:355)
==744076==    by 0x4B04335: MVM_disp_program_record_capture_drop_args (program.c:1325)
==744076==    by 0x4B0B4A8: dispatcher_drop_arg_impl (syscall.c:152)
==744076==    by 0x4B07C14: MVM_disp_program_run (program.c:3569)
==744076==    by 0x4AFC89B: dispatch_monomorphic (inline_cache.c:107)
==744076==    by 0x4A631BE: MVM_interp_run (interp.c:5345)
==744076==    by 0x1097D7: main (main.c:474)
==744076== 
==744076== Invalid free() / delete / delete[] / realloc()
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Address 0xd04f710 is 0 bytes inside a block of size 24 free'd
==744076==    at 0x484127F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4ADBE8F: MVM_free (alloc.h:43)
==744076==    by 0x4ADBE8F: gc_cleanup (CArray.c:145)
==744076==    by 0x4ADBE8F: gc_free (CArray.c:155)
==744076==    by 0x4AA6383: MVM_gc_collect_free_nursery_uncopied (collect.c:599)
==744076==    by 0x4AA183E: finish_gc (orchestrate.c:245)
==744076==    by 0x4AA183E: run_gc (orchestrate.c:448)
==744076==    by 0x4AA2907: MVM_gc_enter_from_allocator (orchestrate.c:599)
==744076==    by 0x4AA2C10: MVM_gc_allocate_nursery (allocation.c:37)
==744076==    by 0x4AA2E97: MVM_gc_allocate (allocation.h:15)
==744076==    by 0x4AA2E97: MVM_gc_allocate_zeroed (allocation.h:21)
==744076==    by 0x4AA2E97: MVM_gc_allocate_object (allocation.c:86)
==744076==    by 0x4A5514B: MVM_args_slurpy_named (args.c:1028)
==744076==    by 0x4A6BD06: MVM_interp_run (interp.c:1129)
==744076==    by 0x1097D7: main (main.c:474)
==744076==  Block was alloc'd at
==744076==    at 0x483E899: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==744076==    by 0x4A50C83: MVM_malloc (alloc.h:2)
==744076==    by 0x4A50C83: MVM_callsite_drop_positionals (callsite.c:376)
==744076==    by 0x4AEB6E5: MVM_capture_drop_args (MVMCapture.c:355)
==744076==    by 0x4B04335: MVM_disp_program_record_capture_drop_args (program.c:1325)
==744076==    by 0x4B0B4A8: dispatcher_drop_arg_impl (syscall.c:152)
==744076==    by 0x4B07C14: MVM_disp_program_run (program.c:3569)
==744076==    by 0x4AFC89B: dispatch_monomorphic (inline_cache.c:107)
==744076==    by 0x4A631BE: MVM_interp_run (interp.c:5345)
==744076==    by 0x1097D7: main (main.c:474)
==744076== 
WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
X::StubCode with no message
  in method getinfo_certinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 943
  in block  at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 701
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 687
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

Malformed UTF-8 near bytes 9f 30 at line 1 col 1
  in method <anon> at /home/dan/Source/perl6/install/share/perl6/core/sources/8660F65A7B3492675BB3B2058DB30E411A4C4E54 (NativeCall::Types) line 170
  in method getinfo_str at /home/dan/Source/perl6/install/share/perl6/site/sources/4C3E08F15178D3444F73775C0B6BADC1E61100A6 (LibCurl::EasyHandle) line 924
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 690
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 722
  in method getinfo at /home/dan/Source/perl6/install/share/perl6/site/sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy) line 729
  in block <unit> at -e line 1

==744076== 
==744076== HEAP SUMMARY:
==744076==     in use at exit: 79,596,024 bytes in 311,532 blocks
==744076==   total heap usage: 875,309 allocs, 564,026 frees, 194,368,259 bytes allocated
==744076== 
==744076== LEAK SUMMARY:
==744076==    definitely lost: 21,371 bytes in 691 blocks
==744076==    indirectly lost: 64,344 bytes in 1,408 blocks
==744076==      possibly lost: 3,708,427 bytes in 11,224 blocks
==744076==    still reachable: 75,801,882 bytes in 298,209 blocks
==744076==         suppressed: 0 bytes in 0 blocks
==744076== Rerun with --leak-check=full to see details of leaked memory
==744076== 
==744076== For lists of detected and suppressed errors, rerun with: -s
==744076== ERROR SUMMARY: 5335 errors from 11 contexts (suppressed: 0 from 0)
[dan@alexandria perl6]$ MVM_SPESH_DISABLE=1 gdb --args ./install/bin/raku -MLibCurl::Easy -e 'my $c = LibCurl::Easy.new(URL => "https://example.com").perform; my $s; $s = $c.getinfo for ^100'
GNU gdb (GDB) 11.1
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./install/bin/raku...
(gdb) r
Starting program: /home/dan/Source/perl6/install/bin/raku -MLibCurl::Easy -e my\ \$c\ =\ LibCurl::Easy.new\(URL\ =\>\ \"https://example.com\"\).perform\;\ my\ \$s\;\ \$s\ =\ \$c.getinfo\ for\ \^100
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff2e73640 (LWP 744143)]
[Thread 0x7ffff2e73640 (LWP 744143) exited]
free(): invalid pointer

Thread 1 "raku" received signal SIGABRT, Aborted.
0x00007ffff7493d22 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff7493d22 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff747d862 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff74d5d28 in __libc_message () from /usr/lib/libc.so.6
#3  0x00007ffff74dd92a in malloc_printerr () from /usr/lib/libc.so.6
#4  0x00007ffff74decfc in _int_free () from /usr/lib/libc.so.6
#5  0x00007ffff74e29e8 in free () from /usr/lib/libc.so.6
#6  0x00007ffff78eae90 in MVM_free (p=<optimized out>) at src/core/alloc.h:43
#7  gc_cleanup (data=0x7ffff43cdf88, st=<optimized out>, tc=<optimized out>) at src/6model/reprs/CArray.c:145
#8  gc_free (tc=<optimized out>, obj=0x7ffff43cdf70) at src/6model/reprs/CArray.c:155
#9  0x00007ffff78b5384 in MVM_gc_collect_free_nursery_uncopied (executing_thread=executing_thread@entry=0x55555555a120, tc=tc@entry=0x55555555a120, limit=0x7ffff44fb000) at src/gc/collect.c:599
#10 0x00007ffff78b083f in finish_gc (is_coordinator=<optimized out>, gen=<optimized out>, tc=0x55555555a120) at src/gc/orchestrate.c:245
#11 run_gc (tc=tc@entry=0x55555555a120, what_to_do=what_to_do@entry=0 '\000') at src/gc/orchestrate.c:448
#12 0x00007ffff78b1908 in MVM_gc_enter_from_allocator (tc=0x55555555a120) at src/gc/orchestrate.c:599
#13 0x00007ffff78b1c11 in MVM_gc_allocate_nursery (tc=0x55555555a120, size=48) at src/gc/allocation.c:37
#14 0x00007ffff78b1e98 in MVM_gc_allocate (size=<optimized out>, tc=0x55555555a120) at src/gc/allocation.h:15
#15 MVM_gc_allocate_zeroed (size=<optimized out>, tc=0x55555555a120) at src/gc/allocation.h:21
#16 MVM_gc_allocate_object (tc=0x55555555a120, st=<optimized out>) at src/gc/allocation.c:86
#17 0x00007ffff7877939 in MVM_interp_run (tc=0x2, initial_invoke=0x7fffffffd5d0, initial_invoke@entry=0x7ffff7998780 <toplevel_initial_invoke>, invoke_data=0x7fffffffd5d0, invoke_data@entry=0x7ffff7998780 <toplevel_initial_invoke>, 
    outer_runloop=0x7ffff7493d22 <raise+322>, outer_runloop@entry=0x0) at src/core/interp.c:1629
#18 0x00007ffff7999895 in MVM_vm_run_file (instance=instance@entry=0x555555559590, filename=filename@entry=0x555555559520 "/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm") at src/moar.c:505
#19 0x00005555555557d8 in main (argc=<optimized out>, argv=0x7fffffffe338) at src/vm/moar/runner/main.c:474
(gdb) f 9
#9  0x00007ffff78b5384 in MVM_gc_collect_free_nursery_uncopied (executing_thread=executing_thread@entry=0x55555555a120, tc=tc@entry=0x55555555a120, limit=0x7ffff44fb000) at src/gc/collect.c:599
599                     REPR(obj)->gc_free(tc, obj);
(gdb) call MVM_dump_backtrace(tc)
   at SETTING::src/core.c/Array.pm6:23  (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.c.setting.moarvm:push)
 from SETTING::src/core.c/List.pm6:592  (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.c.setting.moarvm:push-until-lazy)
 from SETTING::src/core.c/List.pm6:107  (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.c.setting.moarvm:reify-until-lazy)
 from SETTING::src/core.c/List.pm6:273  (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.c.setting.moarvm:from-slurpy-flat)
 from site#sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy):718  (/home/dan/.raku/precomp/9FC383D0CB840589EBEA7A812873CFBBE417B2E6/91/917D98459B37845C474AF03923465900BC1B0D1F:getinfo)
 from site#sources/917D98459B37845C474AF03923465900BC1B0D1F (LibCurl::Easy):729  (/home/dan/.raku/precomp/9FC383D0CB840589EBEA7A812873CFBBE417B2E6/91/917D98459B37845C474AF03923465900BC1B0D1F:getinfo)
 from -e:1  (<ephemeral file>:)
 from -e:1  (<ephemeral file>:<unit>)
 from -e:1  (<ephemeral file>:<unit-outer>)
 from gen/moar/stage2/NQPHLL.nqp:1949  (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:eval)
 from gen/moar/stage2/NQPHLL.nqp:2059  (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:)
 from gen/moar/stage2/NQPHLL.nqp:2058  (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
 from gen/moar/Compiler.nqp:111  (/home/dan/Source/perl6/install/share/perl6/lib/Perl6/Compiler.moarvm:command_eval)
 from gen/moar/stage2/NQPHLL.nqp:2039  (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_line)
 from gen/moar/rakudo.nqp:127  (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:MAIN)
 from gen/moar/rakudo.nqp:1  (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<mainline>)
 from <unknown>:1  (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<main>)
 from <unknown>:1  (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<entry>)
(gdb) call MVM_dump_bytecode(tc)
00000      checkarity         2, 2
00001      param_rp_o         loc_3_obj, 0
00002      dispatch_o         loc_7_obj, 'lang-hllize', Callsite_1, loc_3_obj
00003      set                loc_3_obj, loc_7_obj
00004      decont             loc_7_obj, loc_3_obj
00005      set                loc_12_obj, loc_7_obj
00006      wval_wide          loc_7_obj, 0, 33712
00007      istype             loc_13_int, loc_12_obj, loc_7_obj
00008      assertparamcheck   loc_13_int
00009      set                loc_0_obj, loc_12_obj
00010      param_rp_o         loc_4_obj, 1
00011      dispatch_o         loc_7_obj, 'lang-hllize', Callsite_1, loc_4_obj
00012   -> set                loc_4_obj, loc_7_obj
00013      set                loc_2_obj, loc_4_obj
00014      param_sn           loc_5_obj
     annotation: SETTING::src/core.c/Array.pm6:23
00015      wval_wide          loc_6_obj, 0, 33712
00016      getattr_o          loc_7_obj, loc_0_obj, loc_6_obj, '$!target', 0
00017      wval               loc_8_obj, 2, 28
00018      create             loc_8_obj, loc_8_obj
00019      wval               loc_9_obj, 2, 28
00020      wval_wide          loc_10_obj, 0, 33712
00021      getattr_o          loc_11_obj, loc_0_obj, loc_10_obj, '$!descriptor', 1
00022      bindattr_o         loc_8_obj, loc_9_obj, '$!descriptor', loc_11_obj, -1
00023      set                loc_6_obj, loc_8_obj
00024      decont             loc_8_obj, loc_2_obj
00025      dispatch_v         'raku-assign', Callsite_9, loc_6_obj, loc_8_obj
00026      push_o             loc_7_obj, loc_6_obj
00027      wval               loc_6_obj, 2, 25
00028      return_o           loc_6_obj
(gdb)

"Failed writing received data to disk/application" error on windows

Testing the module on windows by running this simple script:

use LibCurl::Easy;

print LibCurl::Easy.new(URL => 'http://google.com').perform.content;

produces the below error:

Failed writing received data to disk/application
  in method throw at 'SETTING::'src/core.c/Exception.pm6 line 65
  in sub die at 'SETTING::'src/core.c/control.pm6 line 255
  in method perform at
C:\Users\grunt-win\libcurl-test\..\raku-libcurl\lib\LibCurl\Easy.rakumod
(LibCurl::Easy) line 673
  in block <unit> at .\t\libcurl.rakutest line 8

curl.dll file installed on my windows system by downloading from libcurl website, then copying it to C:\Windows\System32\curl.dll

Installation fails on OpenBSD

Installing with zef install -v --exclude="curl:ver<4>:from<native>" LibCurl:

===> Fetching [OK]: LibCurl:ver<1.5>:auth<github:CurtTilmes>:api<1> to /tmp/.zef/
1712656322.33248/1712656343.33248.1251.6143559529203/
LibCurl%3Aver%3C1.5%3E%3Aauth%3Cgithub%3ACurtTilmes%3E%3Aapi%3C1%3E.tar.gz                                                                                                                                                                          ===> Extraction [OK]: LibCurl to /tmp/.zef/1712656322.33248/
LibCurl%3Aver%3C1.5%3E%3Aauth%3Cgithub%3ACurtTilmes%3E%3Aapi%3C1%3E.tar.gz                                                       
===> Extraction [OK]: JSON::Fast to /tmp/.zef/1712656322.33248/
JSON%3A%3AFast%3Aver%3C0.19%3E%3Aauth%3Ccpan%3ATIMOTIMO%3E.tar.gz                                                             
===> Extraction [OK]: Test::When to /tmp/.zef/1712656322.33248/
Test%3A%3AWhen%3Aver%3C1.001009%3E%3Aauth%3Czef%3Araku-community-modules%3E.tar.gz                                            
===> Extraction [OK]: NativeLibs:ver<0.0.7+>:auth<github:salortiz> to /tmp/.zef/1712656322.33248/
NativeLibs%3Aver%3C0.0.9%3E%3Aauth%3Cgithub%3Asalortiz%3E.tar.gz                            
===> Staging NativeLibs:ver<0.0.9>:auth<github:salortiz>                                                                                                                                     
===> Staging [OK] for NativeLibs:ver<0.0.9>:auth<github:salortiz>                                                                                                                            
===> Staging JSON::Fast:ver<0.19>:auth<cpan:TIMOTIMO>                                                                                                                                        
===> Staging [OK] for JSON::Fast:ver<0.19>:auth<cpan:TIMOTIMO>                                                                                                                               
===> Staging Test::When:ver<1.001009>:auth<zef:raku-community-modules>                                                                                                                       
===> Staging [OK] for Test::When:ver<1.001009>:auth<zef:raku-community-modules>                                                                                                              
===> Staging LibCurl:ver<1.5>:auth<github:CurtTilmes>:api<1>                                                                                                                                 
===SORRY!=== Error while compiling /home/examples.raku.org/examples/home#sources389530C42F82C4B2540AF14B99A5580F7EDFCD1B (LibCurl::HTTP)                                              
      Cannot locate native library 'curl': File not found                                                                                                                                          
at /home/examples.raku.org/examples/home#sources/389530C42F82C4B2540AF14B99A5580F7EDFCD1B 
(LibCurl::HTTP):3                                                                                      
andinus@ /usr/local/lib> ls -lAh *curl*                                                                                                                                                                                                                                                                      
-rw-r--r--  1 root  bin     9.8M Feb  5 23:32 libcurl.a                                                                                                                                      
-rw-r--r--  1 root  bin     894B Feb  5 23:32 libcurl.la                                                                                                                                     
lrwxr-xr-x  1 root  wheel    16B Apr  9 09:32 libcurl.so@ -> libcurl.so.26.24                                                                                                                
-rw-r--r--  1 root  bin     879K Feb  5 23:32 libcurl.so.26.24 

Installation without exclude flag fails with:

===> Searching for: LibCurl                                                                                                                                                                  
===> Found: LibCurl:ver<1.5>:auth<github:CurtTilmes>:api<1> [via Zef::Repository::Ecosystems<rea>]                                                                                           
===> Searching for missing dependencies: NativeLibs:ver<0.0.7+>:auth<github:salortiz>, JSON::Fast, 
curl:ver<4>:from<native>, Test::When                                                      ===> Failed to find 
dependencies: curl:ver<4>:from<native>                                                                                                                                   
Failed to resolve some missing dependencies (use e.g. --exclude="curl" to skip)  

LibCurl fails to install

seems to look for curl.dll and not libcurl.dll that comes with the curl windows binary dist; Renaming libcurl.dll to curl.dll does work fine. Could the install also look for libcurl.dll ?

zef install LibCurl
===> Searching for: LibCurl
===> Testing: LibCurl:ver('0.5.1')

Failed test 'LibCurl::Easy module can be use-d ok'
at t\01-load.t line 9
Cannot locate native library 'curl.dll': error 0x7e

Failed test 'LibCurl::HTTP module can be use-d ok'
at t\01-load.t line 11
===SORRY!===
Cannot locate native library 'curl.dll': error 0x7e

Failed test 'LibCurl::Multi module can be use-d ok'
at t\01-load.t line 15
===SORRY!===
Cannot locate native library 'curl.dll': error 0x7e

Looks like you failed 3 tests of 5
===> Testing [FAIL]: LibCurl:ver('0.5.1')
Aborting due to test failure: LibCurl:ver('0.5.1') (use --force-test to override)
in code at C:\rakudo\share\perl6\site\sources\1C5B2A3EA861108A89345CD9B974CE9BF1FEE32F (Zef::Client) line 375
in method test at C:\rakudo\share\perl6\site\sources\1C5B2A3EA861108A89345CD9B974CE9BF1FEE32F (Zef::Client) line 353
in code at C:\rakudo\share\perl6\site\sources\1C5B2A3EA861108A89345CD9B974CE9BF1FEE32F (Zef::Client) line 530
in sub at C:\rakudo\share\perl6\site\sources\1C5B2A3EA861108A89345CD9B974CE9BF1FEE32F (Zef::Client) line 527
in method install at C:\rakudo\share\perl6\site\sources\1C5B2A3EA861108A89345CD9B974CE9BF1FEE32F (Zef::Client) line 633
in sub MAIN at C:\rakudo\share\perl6\site\sources\8CF719A0E6E0BBDC883C69273F5806F53CE89B08 (Zef::CLI) line 152
in block at C:\rakudo\share\perl6\site\resources\31793EAD9570EB4504E3FFB7B7A8A54BCD5B0D99 line 1
in sub MAIN at C:\rakudo\share\perl6\site\bin\zef line 2
in block at C:\rakudo\share\perl6\site\bin\zef line 2

difference between curl / libcurl

Not sure if this is a Raku module problem. See output from terminal below. Different responses to what I thought should be equivalent requests.

Please not how curl -I yields a reponse-code of 200, and via libcurl a response-code of 403.

 $ raku -MLibCurl::Easy -e 'LibCurl::Easy.new(:nobody,URL=>"https://tools.ietf.org/html/rfc3339").perform.response-code.say'
403
$ curl -I  https://tools.ietf.org/html/rfc3339
HTTP/1.1 200 OK
Date: Mon, 15 Mar 2021 12:10:53 GMT
Server: Apache/2.2.22 (Debian)
<snip>

I have so far not been able to discover using a websearch how to replicate curl -I using libcurl, though it does seem that :nobody is the right option. I have not tried to replicate using libcurl in another language.

However, curl and libcurl are supposed to be related.

SSL connect error

I successfully use LibCulrl::HTTP once or twice, but now I get:
SSL connect error
in method perform at /usr/local/rakudo.d/share/perl6/site/sources/08E9B748943417E15B3A29F01E431CF45AD845BC (LibCurl::Easy) line 583
in sub get-hosts-list at ./get-namecheap-dns-data.p6 line 98
in block at ./get-namecheap-dns-data.p6 line 88

See apparent offending code chunk at:

https://gist.github.com/tbrowder/1edc730800580626b359fe560c495353

Note that the same API call works in a bash script using:

curl "$call"

Setting "download" option for existing handle results in "An unhandled exception" error

Getting this error when executing the below code.

error:

An unhandled exception occurred in a native callback.
This situation is not recoverable, and the program will terminate.
The stack trace below helps indicate which library needs fixing.

The full output is here

code:

#!usr/bin/env raku

use LibCurl::Easy;

my $curl = LibCurl::Easy.new;
$curl.verbose(1);

$curl.setopt: :URL<recman.pakku.org/meta?name=Grid>;
$curl.perform;

# URL is for tar.gz file
$curl.setopt: :URL<http://recman.pakku.org/archive/a1b27322a7eed869553c5807346d4c6d90a833274d009a168f1ee16166a1859a>, :download</tmp/delme.tar.gz>;
$curl.perform;

Connection leak

This module leaks connections. How to reproduce:

I have the following code:

use LibCurl::Easy;

repeat while True {
	my $content = LibCurl::Easy.new(URL => 'http://rss.cnn.com/rss/edition.rss').perform.content;
	say "The news now have {$content.chars} chars!";
	sleep(10*60);	
}

Leave it running.

While the above code is running. Do every 10 mins:

lsof -p <PID> | grep -i tcp

Initially we will see only one entry:

> lsof -p 274420 | grep -i tcp
raku    274420 demanuel    5u  IPv4             913757      0t0     TCP archlinux:49866->mia07s47-in-f19.1e100.net:http (ESTABLISHED)

After 40 mins:

> lsof -p 274420 | grep -i tcp
raku    274420 demanuel    5u  IPv4             913757      0t0     TCP archlinux:49866->mia07s47-in-f19.1e100.net:http (ESTABLISHED)
raku    274420 demanuel    8u  IPv4             919707      0t0     TCP archlinux:50804->mia07s47-in-f19.1e100.net:http (ESTABLISHED)
raku    274420 demanuel   11u  IPv4             919091      0t0     TCP archlinux:51960->mia07s47-in-f19.1e100.net:http (ESTABLISHED)
raku    274420 demanuel   14u  IPv4             920435      0t0     TCP archlinux:53018->mia07s47-in-f19.1e100.net:http (ESTABLISHED)

error calling cleanup

Hi Curt,

When I call cleanup(), I get

Unknown method clear-form

Seems that maybe this method is not being found?

thanks
Brian

WRITEFUNCTION

It's be nice if this (and perhaps the corresponding READFUNCTION libcurl options were made available to the end user.

I've got an application sending chunked responses which does so upon events occuring on the server.
The connection is kept-alive and data arrives from every 1 second, to maybe never.
The connection never gets torn down.

This module lacks the ability to receive these partial messages and it appears it just buffers them until a full response is received.
Being able to set my own handler would be kinda nice.

If this option exists, I apologize in advance. I looked through the source code and was unable to find anything that would indicate a function pointer exists for such a thing. (There is a call to CURLOPT_WRITEFUNCTION but it's hard-coded pointing to a sub).

Cannot POST with proper json headers with libcurl 7.82.0

Hi Curt,

It doesn't seem possible to send both Accept: application/json and Content-Type: application/json using LibCurl with version 7.82.0 of the library. This may be an issue with libcurl, not sure. Here are a couple of the things I've tried:

use LibCurl::HTTP :subs;
say jpost('https://httpbin.org/post', %(Content-Type => 'application/json', Accept => 'application/json'));
# sends "Accept => */*"
say jpost('https://httpbin.org/post', %(Content-Type => 'application/json', Accept => 'application/json'), :x<z>);
# sends "Content-Type => application/x-www-form-urlencoded"
my $curl = LibCurl::Easy.new(URL => 'http://httpbin.org/post');
$curl.setopt(post => 1);
$curl.set-header(Accept => 'application/json');
$curl.set-header(Content-Type => 'application/json');
say $curl.perform.content;
# sends "Accept": "*/*",

For the last one -- changing the order of calling set-header seems to make a difference:

my $curl = LibCurl::Easy.new(URL => 'http://httpbin.org/post');
$curl.setopt(post => 1);
$curl.set-header(Content-Type => 'application/json');
$curl.set-header(Accept => 'application/json');
say $curl.perform.content;
# Sends "Content-Type": "application/x-www-form-urlencoded"

Not sure if there is some other order of calling these methods that will work -- as far as I can tell, it's impossible to set both the Accept and the Content-Type header to application/json for a POST request.

Brian

Unable to locate libcurl.so (ubuntu)

Installation fails (on Ununtu 2018.10) as it cannot find "libcurl.so".

i have the following libraries:

lrwxrwxrwx  1 root root       19 okt.  29 13:08 libcurl-gnutls.so.3 -> libcurl-gnutls.so.4
lrwxrwxrwx  1 root root       23 okt.  29 13:08 libcurl-gnutls.so.4 -> libcurl-gnutls.so.4.5.0
-rw-r--r--  1 root root   526776 okt.  29 13:08 libcurl-gnutls.so.4.5.0
lrwxrwxrwx  1 root root       16 okt.  29 13:08 libcurl.so.4 -> libcurl.so.4.5.0
-rw-r--r--  1 root root   530872 okt.  29 13:08 libcurl.so.4.5.0

Is this a problem with LibCurl, or a NativeCall issue?

Raku-test fails, and it's my fault

Because it's now in userspace, you can't install additional libraries. It probably makes sense to either go back to root, in the original, or else provide for clients such as these a different option.

Help with calling the library.

Greetings
I have the following curl cli command , I am converting into part of a Raku script using raku-libcurl.

curl --location --request PUT "${URL}" <some headers>  --data-raw '<json formatted string>'

I have tried the following code snippet.

my $payload = "<json data string>"
my $curl = LibCurl::Easy.new(:followlocation,  URL => $url, send => $payload);
# set some headers.
$curl.perform;

The API call fails. The server doesn't seem to recognize an item in the payload.
Is there some subtlety with '--data-raw' that I need to do?
Or something extra for the PUT ?

Appreciate your time.
pj

I on Max OS X. And have no issues using the library for other actions (like GET)

fails to install in Android terminal emulator due to supposedly missing curl dependency

I am on Android 10 running Termux. It's a terminal emulator that's allowed me to build and install raku, zef, etc.

I have a curl executable:

$ curl --version
curl 7.74.0 (aarch64-unknown-linux-android) libcurl/7.74.0 OpenSSL/1.1.1i zlib/1.2.11 libssh2/1.9.0 nghttp2/1.42.0
Release-Date: 2020-12-09
Protocols: dict file ftp ftps gopher http https imap imaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets

Nevertheless:

$ zef install LibCurl
===> Searching for: LibCurl
===> Searching for missing dependencies: NativeLibs:ver<0.0.7+>:auth<github:salortiz>, curl:ver<4>:from<native>, Test::When
===> Failed to find dependencies: curl:ver<4>:from<native>
Failed to resolve some missing dependencies

Should I be reporting this in the zef repo instead? In any case, it somehow fails to resolve that dependency when trying to install this module.

Edit:

There's now also a zef issue regarding this.

FeatureRequest: Let `.content` use the charset specified by the server

Unless the user specifies something different, the .content method currently decodes the response content as utf-8.

But HTTP actually has a way for the server to tell us how the content should be interpreted:

Content-Type: text/html; charset=utf-8

It's cumbersome for users of the module to have to manually parse this after every request.

Any chance the module could do it automatically, and use that charset by default for decoding the content?
It could still fall back to utf-8 if no Content-Type header was received.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.