From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

DONE
DOING
Moo(se) support
Always
better subroutine/method return types; GRAMMAR
new() accept properties init values; GRAMMAR
subroutine arguments received via 'shift' instead of @ARG only; GRAMMAR
package 'integer' exports sub 'integer()' to check type, and friends
accessors & mutators available (only?) w/out using 'get_' & 'set_' prefixes; Class.pm PERLOPS_PERLTYPES, Properties.pm? CPPOPS_CPPTYPES
When Moo(se) is enabled
'use parent' should not exist, replaced by 'extends'; GRAMMAR
$properties should not exist, replaced by 'has'; GRAMMAR
new() from Moo(se) instead of RPerl
RPerl::Exporter
re-enable t/10 & t/11 <<< ==== DO THIS FIRST!!! === >>>
Class/Generator.pm, error if class name from 'use parent Foo' does not match class name from following 'use Foo' or '{ Foo->import(); }'
Class/Generator.pm & Package.pm & Include.pm: CPPOPS_CPPTYPES
fix & test *_CHECK*() exporting in rperlgmp.pm & rperlsse.pm, as hard-coded in rperlgsl.pm
enable qw(:all)
Learning RPerl
new subroutine headers
Learning RPerl
PhysicsPerl
MathPerl
Quick-Start Guide
finish
GSL support
add 'apt-get install libgsl-dev' (or libgsl0-dev) & 'cpanm Math::GSL::Matrix' in RPerl & LAMP Installers, document in INSTALL?
gsl_matrix_CHECK*() CPPOPS_CPPTYPES
tests for all EMAV00 - EMAV09
enable gsl_linalg.h & other gsl friends
Alien::PCRE2
ensure tests pass on both share & system installs
replace mirrored DEV version (Windows bug fix) w/ new official version when released
extend XS test
CPAN testers failures
Alien::JPCRE2
update tests to Test::Alien
fix AppVeyor Windows failures
add XS test
CPAN testers failures
regex support
substitution LHS must be variable
non-destructive regex /r
!~ logic
allow non-standard shebangs
Learning RPerl exercises, check on CloudForFree.org
RPerl-calling-Perl support
database support
MongoDB
PostgreSQL
MySQL
KICKSTARTER:
DONE??? Monolithic Modules, Fix Deps Warning & Create Tests
DONE! Parse::Eyapp regex fix & CPAN upload
DONE??? implement 10 ops in CPPOPS_CPPTYPES
CODE GENERATION, CPPOPS_CPPTYPES MODE
ForEach.pm
finish .pl body generation
subroutines, final operation must be return operator
WHAT ELSE?!?
Alien::GSL
Alien::Pluto
Alien::astyle upgrade to EU::MM
Alien::GMP
Alien::??? what else?
Inline::RPerl
update tests to emit more useful failure info, for CPAN testers debugging
update CPPOPS_DUALTYPES reference files
remove explicit properties inheritance, Generator.pm & Grammar.eyp
OO class properties, detect user-defined init() subroutine & call from C++ constructor
do not rearrange subs & methods in CPPOPS_CPPTYPES output code, as occurs w/ Bubble.pm,
or is rearranging necessary due to division of subs & methods in Bubble.h output file?
replace @_ with @ARG in system code
'cannot' -> 'can not' in all docs & source files
uncompile w/ corrupted or missing PMC, CPP, H files
uncompile delete EXE files
disable variable declaration w/out initial value, grammar & tests & docs
Learning RPerl
upgrade install instructions
add chapter 1 bonus exercise, create stand-alone executable for Hello World
add missing operator tables as with 2.4.13 chop & chomp, etc
add bitstrings to 2.1.15, mentioned in LP189
EAR17 & Exxx & any other new errors
update appendix with grammar changes: bitwise_negation_lparen, additional operators?
abs & mako's other new ops are no longer "Coming Soon"
print dot-to-comma in lib/RPerl/Test/*
templateperl
mv sort to standardperl
all servers online
rperl
shiny
sites
enable loop parallelization
handle gauss_seidel.openmp.cpp.pluto.cloog files
enable num_cores
fix print
fix loop labels
fix min/max
enable shorthand classes
add copyright notices to all files
pass tests on appveyor strawberry
ExtUtils::CppGuess bug fix w/ davido
update requirement for EU::MM to v7.14?
...
explain difference between .a, .o, and .so
.o can be combined into .so or .exe?
.a is "just a tarball of .o files"?
.so must always be stand-alone, like a .exe w/out a main()?
append 'L' to all numeric literals to force long int?
create macro to replace all conditional truth value checks with extra logic to include RPerl false values of '0', q{0}, and q{}, in both character and string type
INSTALL notes, update step 3 examples
travis enable dev Perl
fix dev Perl via P5P
chmod a-x *.so output if not on HP-UX
print comma-vs-dot to correct output
cpp output file post-processing for source code text alignment
split author tests (checking Changes file, etc) into xt/ directory,
split deps in Makefile.PL, possibly utilize AUTHOR_TESTING in travis-perl/helpers
INSTALLERS
Linux DEB (Debian, Ubuntu, Xubuntu, etc)
Linux RPM (RedHat, CentOS, etc)
Linux Portage
Android
iOS
Mac
Windows ActiveRPerl
Windows Strawberry RPerl
Tarball
CPAN
GitHub
OPERATORS, CPPOPS_CPPTYPES MODE
NAMED: croak chomp join keys pop push reverse sort split values wait
NAMED_UNARY: chdir cos defined exists -e -r -f -T length rand scalar sin sqrt (need create)
NOT YET SUPPORTED, requires at least Perl v5.16: fc
POSIX
ceil, floor, modf
NOT YET SUPPORTED, C99 functions require at least Perl v5.22: trunc, cbrt, fmax, round, lround, etc.
Math::Trig & Math::Complex
new, make, emake, cplx, cplxe
cbrt, root
tan; csc, cosec, sec, sec, cot, cotan; asin, acos, atan; acsc, acosec, asec, acot, acotan; sinh, cosh, tanh; csch, cosech, sech, coth, cotanh;
asinh, acosh, atanh; acsch, acosech, asech, acoth, acotanh; pi, pi2, pi4, pip2, pip4
overloaded complex arithmetic
+, -, *, /, **
~
abs, sqrt, exp, log
LEARNING RPERL
new subroutine headers!!!
tables on metacpan, fix headers and borders CSS
fix <noncode> on metacpan, elsewhere
check X<break_code_blocks> everywhere other than pod2rperlhtml
use unsigned_integer instead of integer in ex2.6 & 2.7, check all other exercises as well, change error checking accordingly
croak or die in exercise solutions?
L<> hyperlinks broken or missing in some outputs?
metacpan list newline fix, section 1.1
BEGIN INLINE CSS DIV comment should not appear in any output
docbook2html & sgmltools & sgml2html: Section 2.3 "Perl's Built-In Warnings" single-quote vs apostrophe
docbook2pdf segfault
sgml table cell padding
foreword
chapters 5 - 17
illustrations: images & ASCII art
covers
publish
video series
CLOUDATCOST.COM
new 8-core machine web server
cluster compute nodes
BOOK OF RPERL
chapter 5
MISC DOCUMENTATION
RPERL.ORG
Book of RPerl tome graphic
Roadie Roadrunner, add eye circle to website
shiny
RPERL COMMAND-LINE FRONT-END
--noWarnings option does not suppress WEXRP00, `export RPERL_WARNINGS=0` does
UNSIGNED INTEGER FIX
full boolean support via Boolean.cpp/h, rperltypes.pm, SvBOKp(), etc.
char type-testing subroutines in Character.pm
full character support via Character.cpp/h, rperltypes.pm, SvCOKp(), etc.
full unsigned_integer support via UnsignedInteger.cpp/h, rperltypes.pm, SvUIOKp(), etc.
CPPOPS_CPPTYPES conversion routines
TESTS
create EXECUTE_WARNING & PARSE_WARNING & GENERATE_WARNING for t/*, begin by testing for WCOPR00 & WCOPR01 in RPerl/Test/SubroutineArguments/*_10_*
split author (developer) tests from normal user tests
TypeConversion, all 42 normal conversions plus to_string()
add EXECUTE_SUCCESS to *good*.pl
uncompile w/ corrupted or missing PMC, CPP, H files
RPerl::EPSILON()
array size declaration compensation
package/subroutine/method names starting w/ underscore
variable redeclaration (masking)
properties & hash type-inner type-vs-key name mismatch (ECOGEASRP21: PERLOPS Class.pm properties accessors/mutators; CPPOPS entry & entrytyped)
accessors/mutators including get_*_element() & get_*_value()
subclasses Foo_raw type
$properties & VariableDeclaration array size on non-arrayref type
$properties array size PERLOPS_PERLTYPES generation
variable & retrieval type mismatches, etc (including ECOGEASCP30?)
get_raw() & set_raw()
t/13_compile_execute.t (?) for proper functionality
*_arrayref_arrayref_arrayref
while (my FOO)
<$FILEHANDLE>
@ARGV
%ENV
ERROR ECOGEASRP16... named operator [SOMEOP] requires exactly one argument, dying
ERROR ECOGEASRP17... named operator [SOMEOP] requires one or more arguments, dying
all currently-implemented named ops
all currently-implemented named_unary ops
invalid hash key starting with non-lowercase-letter ECOGEASRP23
invalid OO property name (hash key) starting with non-lowercase-letter ECOGEASRP24
invalid type inner redundant name starting with non-lowercase-letter ECOGEASRP25
CONSTANT_CALL_SCOPED
*_to_*() data type conversion functions
text literals, backslash vs double-backslash
string_to_NUMERIC*() (AKA all string conversion subroutines), test that underscores are accepted in numbers & non-numerics are rejected, in the following files:
String.pm, String.cpp, GMPInteger.pm, GMPInteger.cpp
fix RPerl/Test/ScopeTypeNameValue/program_5*_good.pl.DISABLED_PERL_V5_22
fix RPerl/Test/Expression/program_*_good.pl.DISABLED_NEED_FIX
fix lib/RPerl/Test/OperatorVoid01NamedVoidReturn/*.DISABLED_NEED_FIX
KICKSTARTER
determine remaining items
10 builtins?
1 New Benchmark Application?
Finish All CPPOPS_CPPTYPES Code Generation?
PARALLEL
manual loop test
automate
QUALITY ASSURANCE
Fix CPAN Testers Bugs
cpants
kwalitee
Devel::Cover
Devel::Cover::Report::Coveralls
coveralls.io
MEDIUM-MAGIC
start GrammarMedium.pm
start TestMedium/
start 30_parse_medium.t
pack "f*"
unpack same as above
sysopen
sysread
syswrite
STDPERL
merge sort
quick sort
MATHPERL
log_base_x
tan, cot, sec, csc
Math::Trig support
Math::Complex support
fractal, hsv coloring
PHYSICSPERL
n_body, add command-line option for SystemGasGiants.pm & SystemSSEGasGiants.pm
n_body, optimize graphics speed
WEB BACK-END
asm.js and/or webassembly backend
INSTALL NOTES
update to use installed dirs, ~/perl5/lib/perl5 for local::lib
DEV NOTES
warning & error codes
general code legend
specific codes
perlall
WINDOWS
Makefile.PL, replace pm_to_blib() with usage of File::Temp, do not modify files under lib/ or blib/lib or t/ etc.
gmp in windows
pass tests on vc2013
pass tests on appveyor activperl
pass tests on activestate activeperl
fix EU::MM + GNU make, missing slash; test building all of Perl & RPerl using gmake, CORRELATION #rp200
gmake: No rule to make target 'C:\...\libConfig.pm', needed by 'Makefile'. Stop.
MOBILEPERL
MACINTOSH
TEMP DISABLE Failed test 'Inline::CPP, call Airplane methods, return correct value 1' at t/03_inline_cpp.t line 146. '' doesn't match '/Object\ \(0x\w*\)/'
unknown warning option '-Wno-literal-suffix'; did you mean '-Wno-literal-range'? [-Wunknown-warning-option]
duplicate 'extern' declaration specifier [-Wduplicate-decl-specifier] XS_EXTERNAL(boot_eval_412_3a53); /* prototype to pass -Wmissing-prototypes */
/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE/XSUB.h:145:33: note: expanded from macro 'XS_EXTERNAL'
# define XS_EXTERNAL(name) extern "C" XSPROTO(name)
OPENBENCHMARKS.ORG
shiny
content
AUTOPARALLEL.COM
shiny
content
PARALLELAPPSTORE.COM
shiny
content
DATA TYPES & STRUCTURES
enable subroutine argument type-checking of user-defined Class types, see "NEED UPGRADE" in Class.pm create_symtab_entries_and_accessors_mutators()
disable use of 'constant_FOO' data types? currently converted in RPerl::Generator::type_convert_perl_to_cpp(), possible 'const const' conflict in RPerl::CompileUnit::Constant
sort hash keys when generating string output in *hashref_to_string() CPPOPS Hash.cpp, as is done with 'sort keys' in PERLOPS Hash/Subtypes.pm
determine if 'long long' or 'long double' can be used at all???
DEV NOTE, CORRELATION #rp041: GMP does not support 'long long' or 'long double', will cause t/07_type_gmp.t to fail
scalar, scalar_arrayref, scalar_hashref, scalar_*
implement 3-D arrays & hashes
implement *OPS_*TYPES *_arrayref_arrayref_to_string()
implement *OPS_*TYPES boolean_arrayref_to_string(), unsigned_integer_arrayref_to_string(), gmp_integer_arrayref_to_string(), character_arrayref_to_string()
implement CPPOPS_*TYPES *arrayref_to_string()
enable semi-dynamic auto-config of number format code for printf & friends in CPPOPS modes, replace %f by %"NUMBER"
add remaining generic overloaded type conversion subroutines to_boolean(), to_integer(), to_unsigned_integer(), to_gmp_integer(), to_character() in rperltypes.*
enable config of RPerl::NUMBER_EPSILON in RPerl/Config.pm to use either POSIX::FLT_EPSILON() or POSIX::DBL_EPSILON() http://perldoc.perl.org/POSIX.html#FLOAT
PERLOPS_CPPTYPES conversion routines
boolean_arrayref, unsigned_integer_arrayref, character_arrayref
boolean_hashref, unsigned_integer_hashref, character_hashref
gmp_integer_arrayref, gmp_integer_hashref
sse_number_pair_arrayref, sse_number_pair_hashref
enable looks_like_number() in *OPS_*TYPES (AKA all modes)
use in string_to_NUMERIC*() (AKA all string conversion subroutines) to reject non-numeric characters with RPerl error instead of Perl error
export ::*_*ref_to_*() conversion subroutines the same as ::*_to_*() subs in rperltypesconv.pm, remove leading scopes in all calls
remove all object* types
add arrayref::grow_capacity() as safe version of std::vector::resize()
Dumper() in C++, use as default overload for <<
implement remaining *_arrayref_arrayref_CHECK*() in lib/DataStructure/Array/SubTypes.cpp
pre-declare RPerl::DataTypes and RPerl::DataStructures, as discussed in RPerl/DataStructure/Array.pm $properties, so this works: 'use RPerl::DataStructure::Array;'
constant hashrefs and arrayrefs, via "use constant" pragma OR ":const" Perl internals attribute OR "constant_integer_hashref" data types
:const supported in cperl only at this time
add a sub integer::MODIFY_SCALAR_ATTRIBUTE, which handles :const
`my integer $i :const = 1;`
integer class need only to accept or reject attributes. new() is not needed, neither @ISA
the stash must exists. I do %int::; that creates the stash, so its valid syntax
for :const I added the MODIFY_SCALAR_ATTRIBUTE function (into xsutils.c?)
also MODIFY_HASH_ATTRIBUTE and so on, for every reftype, _ARRAY_, _CODE_, …
PERL::CRITIC BUGS
Eclipse EPIC Integration, Silent Failure https://github.com/Perl-Critic/Perl-Critic/issues/582
ProhibitMagicNumbers False Positive https://github.com/Perl-Critic/Perl-Critic/issues/631
Subroutines::RequireFinalReturn False Positive On Typed Loop Iterator https://github.com/Perl-Critic/Perl-Critic/issues/636
ControlStructures::ProhibitPostfixControls False Positives on Typed Loop Iterator https://github.com/Perl-Critic/Perl-Critic/issues/639
Argument "-" isn't numeric in exponentiation (**) at .../PPI/Token/Number/Exp.pm line 55 https://github.com/Perl-Critic/Perl-Critic/issues/665
InputOutput::RequireCheckedSyscalls False Positive On Typed Loop Iterator Without Final Newline https://github.com/Perl-Critic/Perl-Critic/issues/671
INLINE::CPP BUGS
file bug, I::CPP comments, 7 lines okay, 8 lines broken
file bug, I::CPP std::array
file bug, I::CPP when attempting to return object type, CORRELATION #pp04
In function ‘void XS_PhysicsPerl__Astro__System_get_bodies_element(PerlInterpreter*, CV*)’: ...
error: ‘CLASS’ was not declared in this scope ... sv_setref_pv( ST(0), CLASS, (void*)RETVAL );
hand-patched code below allows one-time use, then segfault
vi build/eval_637_3400/eval_637_3400.c
char * CLASS = (char *)"PhysicsPerl::Astro::Body"
chmod a-w build/eval_637_3400/eval_637_3400.c
PERLOPS_PERLTYPES
build each class' properties_inherited() once at compile time in Class::INIT{}, will optimize runtime performance
C++ subclasses using AV* instead of std::vector, etc?
add symtab building and checking
real SSE support (faster, not slower)
ERROR CODES
RPerl::CompileUnit::Module::Class (global base class) needs error codes added for all croak() or die() statements
GRAMMAR
allow comments with 3 or more chained octothorpe characters ### like this comment
undef values, either remove from all possible locations in grammar for C++ compatibility, OR enable in C++ by special strings, numeric values, etc.
fix 'x' string repeat operator vs 'x' string or bareword hash key, already fixed???
decide if we will allow '#!/usr/bin/env perl' as a SHEBANG, or only allow '#!/usr/bin/perl' style and allow EU::MM to mangle shebang on install?
add WORD_LPAREN & WORD_SCOPED_LPAREN to become WordScopedLParen, and friends, to disallow space between subroutine name and parens in subroutine call
update Learning RPerl section 4.2.1 & lib/RPerl/Test/Subroutine/program_* accordingly
COMPILER
uncompile, store list of compiled dependencies inside compiled files themselves, for optional use during uncompile
figure out <> vs "" and also long-path-deps in includes in Bubble.cpp & Bubble.h
compile Foo.pm
add mutators pass-by-reference for scalars? see SystemRenderer2D::show()
INTERPRETER
Class.pm, remove auto-export of subroutines from their package's namespace into main:: namespace?
RPerl::filter()
update to properly handle *.pl files
collapse newline characters from all added code to avoid artificially increasing line numbers in error messages, `rperl -t lib/RPerl/Test/Properties/Class_00_Bad_09.pm`