<commit_before># PackUnpack

An attempt at implementing Perl 5's pack/unpack functionality
efficiently in Perl 6, if for no other reason we're going to need
it to support "use v5".

#Description
Exports 3 subroutines:
* pack
* unpack
* parse-pack-template

##pack
Provide functionality of Perl 5's pack statement.  Currently supported
directives are: a A c C h H i I l L n N q Q s S U v V x Z

## unpack
Provide functionality of Perl 5's pack statement.  Currently supported
directives are: a A c C h H i I l L n N q Q s S U v V x Z

##parse-pack-template
Parses a given template into an internal format.  If many calls are made
to pack/unpack with the same template, efficiency will improve by parsing
the template only once and feeding its result to pack/unpack instead of
the original template string.

 use PackUnpack;

 say pack("ccxxcc",65,66,67,68); # "AB\0\0CD";

 my @template = parse-pack-template("ccxxcc");
 say pack(@template,65,66,67,68); # same

#Copying
Copyright (c) 2016 <NAME>.  All rights reserved.

This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

Recent changes can be (re)viewed in the public GIT repository at
https://github.com/lizmat/PackUnpack

Feel free to clone your own copy:
 $ git clone https://github.com/lizmat/PackUnpack

#Prerequisites
* perl6 v6.c

#Build/Installation

 $ panda install PackUnpack

#Author
<NAME> <<EMAIL>>
<commit_msg>Make the README.md real markup<commit_after># PackUnpack

An attempt at implementing Perl 5's pack/unpack functionality
efficiently in Perl 6, if for no other reason we're going to need
it to support "use v5".

# Description
Exports 3 subroutines:
* pack
* unpack
* parse-pack-template

## pack
Provide functionality of Perl 5's pack statement.  Currently supported
directives are: a A c C h H i I l L n N q Q s S U v V x Z

## unpack
Provide functionality of Perl 5's pack statement.  Currently supported
directives are: a A c C h H i I l L n N q Q s S U v V x Z

## parse-pack-template
Parses a given template into an internal format.  If many calls are made
to pack/unpack with the same template, efficiency will improve by parsing
the template only once and feeding its result to pack/unpack instead of
the original template string.

 use PackUnpack;

 say pack("ccxxcc",65,66,67,68); # "AB\0\0CD";

 my @template = parse-pack-template("ccxxcc");
 say pack(@template,65,66,67,68); # same

# Copying
Copyright (c) 2016 <NAME>.  All rights reserved.

This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

Recent changes can be (re)viewed in the public GIT repository at
https://github.com/lizmat/PackUnpack

Feel free to clone your own copy:
 $ git clone https://github.com/lizmat/PackUnpack

# Prerequisites
* perl6 v6.c

# Build/Installation

 $ panda install PackUnpack

# Author
<NAME> <<EMAIL>>

{'fraction_non_alphanumeric': 0.07641770401106501, 'fraction_numerical': 0.02074688796680498, 'mean_word_length': 4.048865619546248, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1285076', 'n_tokens_mistral': 957, 'n_tokens_neox': 883, 'n_words': 428}