Skip to content
Commits on May 24, 2010
  1. Added caches to eliminate repeatable run-time bindings of functions, …

    Dmitry Stogov committed
    …classes, constants, methods and properties
Commits on May 20, 2010
  1. - Added scalar typehinting.

    Derick Rethans committed
Commits on Apr 22, 2010
  1. Implemented Traits for PHP as proposed in the RFC [TRAITS]

    Stefan Marr committed
    # RFC http://wiki.php.net/rfc/horizontalreuse#traits_-_reuse_of_behavior
    # Ok, here we go, I guess that will result in more discussion, which is fine
    # by me. But now, the patch is here, and properly archived.
    # 
    # See below a list of notes to the patch, it also includes a list of
    # points which should be fixed
    # 
    # Internals of the Traits Patch
    # -----------------------------
    # 
    # Open TODOs
    # """"""""""
    # 
    # - Reflection API
    # - support for traits for internal classes
    #   - currently destroy_zend_class does not handle that case 
    # 
    # Introduced Structures
    # """""""""""""""""""""
    # 
    # Data structures to encode the composition information specified in the
    # source:
    #  - zend_trait_method_reference
    #  - zend_trait_precedence
    #  - zend_trait_alias
    # 
    # Changes
    # """""""
    # 
    # zend_class_entry
    #  - uses NULL terminated lists of pointers for
    #    - trait_aliases
    #    - trait_precedences
    #    - do you prefer an explicit counter?
    #    - the information is only necessary during class composition
    #      but might be interesting for reflection
    #    - did not want to blow up class further with not really necessary length counters
    # 
    # added keywords
    #   - trait
    #   - insteadof
    # 
    # Added opcodes
    #  ZEND_ADD_TRAIT
    #    - similar to ZEND_ADD_INTERFACE
    #    - adds the trait to the list of traits of a class, no actual composition done
    #  ZEND_BIND_TRAITS
    #    - emitted in zend_do_end_class_declaration
    #    - concludes the class definition and will initiate the trait composition
    #      when the class definition is encountered during runtime
    # 
    # Added Flags
    #   ZEND_ACC_TRAIT = 0x120
    #   ZEND_ACC_IMPLEMENT_TRAITS = 0x400000
    #   ZEND_FETCH_CLASS_TRAIT = 14
    # 
    # zend_vm_execute.h
    #  - not sure whether the handler initialization (ZEND_ADD_TRAIT_SPEC_HANDLER,
    #    ZEND_BIND_TRAITS_SPEC_HANDLER) is correct, maybe it should be more selective
    # 
    # zend_compile.c
    #  - refactored do_inherit_method_check
    #    split into do_inherit_method_check and do_inheritance_check_on_method
    #  - added helper functions use a '_' as prefix and are not mentioned in the
    #    headers
    #  - _copy_functions
    #    prepare hash-maps of functions which should be merged into a class
    #    here the aliases are handled
    #  - _merge_functions
    #    builds a hash-table of the methods which need to be added to a class
    #    does the conflict detection
    #  - reused php_runkit_function_copy_ctor
    #    - it is not identical with the original code anymore, needed to update it
    #      think I fixed some bugs, not sure whether all have been reported back to runkit
    #    - has to be renamed, left the name for the moment, to make its origin obvious
    #    - here might be optimization potential
    #    - not sure whether everything needs to be copied
    #      - copying the literals might be broken
    #        - added it since the literals array is freed by efree and gave problems
    #          with doubled frees
    #      - all immutable parts of the zend_op array should not be copied
    #        - am not sure which parts are immutable
    #        - and not sure how to avoid doubled frees on the same arrays on shutdown
    #  - _merge_functions_to_class
    #    does the final merging with the target class to handle inherited
    #    and overridden methods
    #  - small helper for NULL terminated lists
    #    zend_init_list, zend_add_to_list
    # 
    # zend_language_parser.y
    #  - reused class definition for traits
    #    - there should be something with regard to properties
    #      - if they get explicitly defined, it might be worthwhile to
    #        check that there are no collisions with other traits in a composition
    #        (however, I would not introduce elaborate language features to control that
    #         but a notice for such conflicts might be nice to the developers)
  2. Optimized access to global constants using values with pre-calculated…

    Dmitry Stogov committed
    … hash_values from litersls table
Commits on Apr 20, 2010
  1. Updated version numbers

    Dmitry Stogov committed
  2. Added a number of small performance tweaks and optimizations

    Dmitry Stogov committed
      . ZEND_RECV now always has IS_CV as its result
      . ZEND_CATCH now has to be used only with constant class names
      . ZEND_FETCH_DIM_? may fetch array and dimension operans in a different order
  3. Added concept of interned strings. All strings constants known at com…

    Dmitry Stogov committed
    …pile time are allocated in a single copy and never changed.
Commits on Mar 30, 2010
  1. @johannes
Commits on Jan 15, 2010
  1. @rlerdorf
Commits on Jan 5, 2010
  1. sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

    Sebastian Bergmann committed
Commits on Dec 8, 2009
  1. @felipensp
Commits on Sep 6, 2009
  1. @pierrejoye
  2. - Fix leaks.

    Moriyoshi Koizumi committed
Commits on Aug 6, 2009
  1. Fix bug #48575 - Use dlopen() just like all the other *nixes instead …

    Scott MacVicar committed
    …of OSX specific code.
Commits on Jun 17, 2009
  1. @rlerdorf
Commits on Jun 5, 2009
  1. @rlerdorf
Commits on Jun 1, 2009
  1. @nunoplopes

    fix compiler warnings by moving all std includes after include of zen…

    nunoplopes committed
    …d_config.h.
    
    this also fixes the build with stricter compilers than gcc (like clang)
  2. @arnaud-lb
Commits on Mar 18, 2009
Commits on Feb 18, 2009
Commits on Dec 31, 2008
  1. - Sync with HEAD, no ability to not start builtin functions

    Marcus Boerger committed
  2. MFH: Bump copyright year, 3 of 3.

    Sebastian Bergmann committed
Commits on Nov 11, 2008
  1. @smalyshev

    Namespace resolution streamlining patch

    smalyshev committed
    [DOC] new resolution rules should be documented soon
Commits on Aug 15, 2008
  1. @felipensp
Commits on Aug 12, 2008
  1. @felipensp
Commits on Aug 11, 2008
  1. - MFH Fix memleak with new error handling stack'ing

    Marcus Boerger committed
Commits on Aug 8, 2008
  1. - MFH error handling, now with save, replace, restore

    Marcus Boerger committed
Commits on Jul 14, 2008
  1. Added support for lambda functions and closures

    Dmitry Stogov committed
Commits on Jun 27, 2008
  1. @smalyshev

    enable on MSVC too

    smalyshev committed
  2. @smalyshev
Commits on Jun 11, 2008
  1. - Removed direct executor recursion.

    Dmitry Stogov committed
    - Use fastcall calling convention in executor on x86.
Commits on Mar 18, 2008
  1. @rlerdorf

    Make the sigsetjmp change more robust. On systems that don't have

    rlerdorf committed
    sigsetjmp use setjmp.  Windows is of course weird in that it seems to
    have sigsetjmp but not sigjmp_buf (??) so force it to use setjmp in
    config.w32.h.in
  2. @rlerdorf

    Use sigsetjmp and siglongjmp instead of setjmp/longjmp in order to be

    rlerdorf committed
    consistent in how we deal with the signal mask.  POSIX doesn't specify
    what to do with the signal mask in setjmp/longjmp which has resulted in
    the signal mask getting saved on *BSD and not getting saved on Linux.
    Making the behaviour explicit via sigsetjmp/siglongjmp gives us
    consistency and saves expensive sigprocmask() syscalls on *BSD.
Commits on Mar 8, 2008
  1. @felipensp
Something went wrong with that request. Please try again.