Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 99b497aa90ed7db99d29a301b47c91fba65c9cb3
https://github.com/Perl/perl5/commit/99b497aa90ed7db99d29a301b47c91fba65c9cb3
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M MANIFEST
M Makefile.SH
A class.c
M cv.h
M embed.fnc
M embed.h
M ext/Opcode/Opcode.pm
M feature.h
M gv.c
M hv.h
M keywords.c
M keywords.h
M lib/B/Deparse-core.t
M lib/B/Op_private.pm
M lib/feature.pm
M lib/warnings.pm
M op.c
M opcode.h
M opnames.h
M pad.c
M pad.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perldiag.pod
M pp_proto.h
M proto.h
M regen/feature.pl
M regen/keywords.pl
M regen/opcodes
M regen/warnings.pl
A t/class/class.t
A t/class/construct.t
A t/class/destruct.t
A t/class/field.t
A t/class/method.t
A t/class/phasers.t
A t/lib/croak/class
A t/lib/warnings/class
M t/op/coreamp.t
M t/op/coresubs.t
M t/porting/diag.t
M toke.c
M warnings.h
M win32/GNUmakefile
M win32/Makefile
Log Message:
-----------
Initial attack at basic 'class' feature
Adds a new experimental warning, feature, keywords and enough parsing to
implement basic classes with an empty `new` constructor method.
Inject a $self lexical into method bodies; populate it with the object
instance, suitably shifted
Creates a new OP_METHSTART opcode to perform method setup
Define an aux flag to remark which stashes are classes
Basic implementation of fields.
Basic anonymous methods.
Commit: 24c33697796a1556af3f58e15fc4fb6b0d1538dc
https://github.com/Perl/perl5/commit/24c33697796a1556af3f58e15fc4fb6b0d1538dc
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M dump.c
M ext/B/B.pm
M ext/B/B.xs
M perl.h
M sv.c
M sv.h
M sv_inline.h
M t/class/construct.t
Log Message:
-----------
Create a specific SV type for object instances
Commit: ca8d92cfddc9cc3d4904712f7e0dfc3b2598561d
https://github.com/Perl/perl5/commit/ca8d92cfddc9cc3d4904712f7e0dfc3b2598561d
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M pod/perldiag.pod
M sv.c
M t/lib/croak/class
Log Message:
-----------
Disallow bless hackery around classes and instances
Commit: fd11211b37c20262922903f6435c1c09ac046e5c
https://github.com/Perl/perl5/commit/fd11211b37c20262922903f6435c1c09ac046e5c
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M MANIFEST
M ext/Pod-Functions/t/Functions.t
M pod/perl.pod
A pod/perlclass.pod
M pod/perlfunc.pod
M win32/pod.mak
Log Message:
-----------
Initial attack at pod/perlclass.pod
Commit: 185929a010d6025e1b146d410a0f1581cc336b75
https://github.com/Perl/perl5/commit/185929a010d6025e1b146d410a0f1581cc336b75
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M MANIFEST
M Makefile.SH
A class.c
M cv.h
M dump.c
M embed.fnc
M embed.h
M ext/B/B.pm
M ext/B/B.xs
M ext/Opcode/Opcode.pm
M ext/Pod-Functions/t/Functions.t
M feature.h
M gv.c
M hv.h
M keywords.c
M keywords.h
M lib/B/Deparse-core.t
M lib/B/Op_private.pm
M lib/feature.pm
M lib/warnings.pm
M op.c
M opcode.h
M opnames.h
M pad.c
M pad.h
M perl.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perl.pod
A pod/perlclass.pod
M pod/perldiag.pod
M pod/perlfunc.pod
M pp_proto.h
M proto.h
M regen/feature.pl
M regen/keywords.pl
M regen/opcodes
M regen/warnings.pl
M sv.c
M sv.h
M sv_inline.h
A t/class/class.t
A t/class/construct.t
A t/class/destruct.t
A t/class/field.t
A t/class/method.t
A t/class/phasers.t
A t/lib/croak/class
A t/lib/warnings/class
M t/op/coreamp.t
M t/op/coresubs.t
M t/porting/diag.t
M toke.c
M warnings.h
M win32/GNUmakefile
M win32/Makefile
M win32/pod.mak
Log Message:
-----------
Merge stage 1 of 'feature-class' into blead
Implements the most basic `class`, `field` and `method` keywords.
Commit: 69953ef3f17b02d83fb922e406db19fbd39f6fa3
https://github.com/Perl/perl5/commit/69953ef3f17b02d83fb922e406db19fbd39f6fa3
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M embed.fnc
M embed.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perldiag.pod
M proto.h
M toke.c
Log Message:
-----------
Initial attack at parsing attribute syntax for class blocks; though no attrs
are yet defined
Commit: 9bf25cf083493be6ba4df71fd884626369153fce
https://github.com/Perl/perl5/commit/9bf25cf083493be6ba4df71fd884626369153fce
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M MANIFEST
M class.c
M hv.h
M pod/perlclass.pod
M pod/perldiag.pod
A t/class/inherit.t
Log Message:
-----------
Initial implementation of subclassing, via :isa class attribute
Commit: e51627afd15d704290c8201fdfc02bd7951564f3
https://github.com/Perl/perl5/commit/e51627afd15d704290c8201fdfc02bd7951564f3
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M gv.c
M t/class/inherit.t
M t/lib/croak/class
Log Message:
-----------
Make @ISA a readonly array on class stashes so user code can't fiddle with it
and break stuff
Commit: 0bb17957e5474866af5b126cf584f2f7aa6340fb
https://github.com/Perl/perl5/commit/0bb17957e5474866af5b126cf584f2f7aa6340fb
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M pod/perldiag.pod
M t/lib/croak/class
Log Message:
-----------
Refuse to create a class if its package already contains a non-empty @ISA
array
Commit: 25d7fad339e5b78ac9a2a40f147a903c1aedf095
https://github.com/Perl/perl5/commit/25d7fad339e5b78ac9a2a40f147a903c1aedf095
Author: bbrtj <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M .mailmap
M AUTHORS
M pod/perlclass.pod
Log Message:
-----------
perlclass: work out the initial document structure
Commit: 37092b6e0002a66af75919be7f9d04c810a962c2
https://github.com/Perl/perl5/commit/37092b6e0002a66af75919be7f9d04c810a962c2
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M .mailmap
M AUTHORS
M MANIFEST
M class.c
M embed.fnc
M embed.h
M gv.c
M hv.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perlclass.pod
M pod/perldiag.pod
M proto.h
A t/class/inherit.t
M t/lib/croak/class
M toke.c
Log Message:
-----------
Merge stage 2 of 'feature-class' into blead
Implements the `:isa` class attribute and the ability to create
subclasses.
Commit: e3b003dd8ca8d881450f6c96297ffa35f6a92ed1
https://github.com/Perl/perl5/commit/e3b003dd8ca8d881450f6c96297ffa35f6a92ed1
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M hv.h
Log Message:
-----------
Create an initfields CV in each class rather than a static function, so
eventually it can store OP fragments
Commit: 054ceeebc7f6acad2772faa4fa88617c35f4a88a
https://github.com/Perl/perl5/commit/054ceeebc7f6acad2772faa4fa88617c35f4a88a
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M embed.fnc
M embed.h
M ext/Opcode/Opcode.pm
M hv.h
M lib/B/Op_private.pm
M op.c
M opcode.h
M opnames.h
M pad.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perldiag.pod
M pp_proto.h
M proto.h
M regen/op_private
M regen/opcodes
M t/class/field.t
M t/class/inherit.t
M t/lib/croak/class
M t/lib/warnings/class
Log Message:
-----------
Accept field VAR = EXPR on field vars
Allows non-constant expressions with side effects. Evaluated during the
constructor of each instance.
Commit: 311ca5baa9210d88e6008e4989d0907e2b5e4982
https://github.com/Perl/perl5/commit/311ca5baa9210d88e6008e4989d0907e2b5e4982
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M embed.fnc
M embed.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perldiag.pod
M proto.h
Log Message:
-----------
Parse an optional attribute list for fields; currently no attributes are
defined
Commit: 07c4c053ee9ee2dac36d7eadd6d2558d94a7a802
https://github.com/Perl/perl5/commit/07c4c053ee9ee2dac36d7eadd6d2558d94a7a802
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M t/class/construct.t
M t/class/field.t
Log Message:
-----------
Use field initialiser expressions in unit tests to avoid some ADJUST blocks
Commit: d8b29a3430b219e3ab3dae2947a0ff22885c1b5e
https://github.com/Perl/perl5/commit/d8b29a3430b219e3ab3dae2947a0ff22885c1b5e
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M class.c
M embed.fnc
M embed.h
M hv.h
M lib/B/Op_private.pm
M opcode.h
M pad.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perldiag.pod
M proto.h
M regen/op_private
M t/class/field.t
M t/class/inherit.t
M t/lib/croak/class
M toke.c
Log Message:
-----------
Field :param attributes, //= and ||= default assignments
Commit: b45c1f8aeb97b765fe1c30fe69a0b0bbff9d9925
https://github.com/Perl/perl5/commit/b45c1f8aeb97b765fe1c30fe69a0b0bbff9d9925
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M MANIFEST
M pod/perl.pod
M pod/perlclass.pod
A pod/perlclassguts.pod
M win32/pod.mak
Log Message:
-----------
Many documentation updates for new class syntax
* perlclass.pod: Document field initialising expressions and :param attribute
* perlclass.pod: Add a TODO section to explain what more is to be added
* Added pod/perlclassguts.pod which contains internal implementation notes and
details about how the class system works.
Commit: acee1843dcda81799810ca980dca0713d9e9206f
https://github.com/Perl/perl5/commit/acee1843dcda81799810ca980dca0713d9e9206f
Author: Paul "LeoNerd" Evans <[email protected]>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
M MANIFEST
M class.c
M embed.fnc
M embed.h
M ext/Opcode/Opcode.pm
M hv.h
M lib/B/Op_private.pm
M op.c
M opcode.h
M opnames.h
M pad.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perl.pod
M pod/perlclass.pod
A pod/perlclassguts.pod
M pod/perldiag.pod
M pp_proto.h
M proto.h
M regen/op_private
M regen/opcodes
M t/class/construct.t
M t/class/field.t
M t/class/inherit.t
M t/lib/croak/class
M t/lib/warnings/class
M toke.c
M win32/pod.mak
Log Message:
-----------
Merge stage 3 of 'feature-class' into blead
Implements field initializer expressions and `:param` attributes on
fields.
Compare: https://github.com/Perl/perl5/compare/b40895ae558e...acee1843dcda