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

Reply via email to