1. 14 Mar, 2006 2 commits
    • Roland Levillain's avatar
      New subproject: Static (`stc' for short). · 1eadf52f
      Roland Levillain authored
      	Move the SCOOP machinery (virtual types/properties) from Metalic
      	to Static.
      	* configure.ac (static/Makefile, static/stc/Makefile)
      	(static/tests/Makefile): Configure these files.
      	* metalic/stc/properties.hh: Move...
      	* static/stc/properties.hh: ...here.
      	(mlc_internal_get_typedef, mlc_equip_namespace_with_properties)
      	(mlc_set_super, mlc_super, mlc_super_, mlc_typeof, mlc_typeof_):
      	Rename as...
      	(stc_internal_get_typedef, stc_equip_namespace_with_properties)
      	(stc_set_super, stc_super, stc_super_, stc_typeof, stc_typeof_):
      	* metalic/tests/properties.cc: Move...
      	* static/tests/properties.cc: ...here.
      	* Makefile.am (SUBDIRS): Add static.
      	* static/Makefile.am, static/stc/Makefile.am,
      	* static/tests/Makefile.am: New.
      	* metalic/mlc/Makefile.am (nobase_mlc_HEADERS): Remove
      	* metalic/tests/Makefile.am (check_PROGRAMS): Remove properties.
      	(properties_SOURCES): Remove.
      	* extended/tests/Makefile.am (AM_CPPFLAGS): Add
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@424 4aad255d-cdde-0310-9447-f3009e2ae8c0
    • Roland Levillain's avatar
      Catch up with recent changes and fix some tests of Metalic. · 8b4beec4
      Roland Levillain authored
      	* metalic/mlc/properties.hh (mlc_equip_namespace_with_properties):
      	Catch up with recent changes in typedef.hh/ret.hh.
      	Don't declare a local `ret' typedef; include mlc/ret.hh, and use
      	the `mlc_ret' macro instead.
      	* metalic/mlc/cmp.hh (eq_<T, T>): Solve ambiguous calls to
      	* metalic/tests/ret.cc: Include mlc/ret.hh instead of
      	* extended/tests/Makefile.am (mlcdir, nobase_mlc_HEADERS): Remove.
      	(AM_CPPFLAGS): New.
      	* extended/xtd/Makefile.am: New file.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@423 4aad255d-cdde-0310-9447-f3009e2ae8c0
  2. 10 Mar, 2006 1 commit
  3. 07 Mar, 2006 1 commit
  4. 03 Mar, 2006 2 commits
  5. 02 Mar, 2006 1 commit
    • Thierry Geraud's avatar
      Add meta switch-case; disambiguate typedef_. · 55d35dcf
      Thierry Geraud authored
      	"typedef exists but its value is not_found" and "typedef is
      	not found because it does not exist".
      - tests/case.cc: New file.
      - tests/switch.cc (where_): Precise name.
      - tests/ret.cc: New file.
      - mlc/bool.hh (assert): Remove is_true to avoid cryptic error
      message such as "is_true" inaccessible.
      - mlc/flags.hh (found): New class.
      - mlc/typedef.hh (result2): New inner class to disambiguate between
      "typedef is found but its value is not_found" and "typedef is not
      (mlc_ret, mlc_decl_typedef(ret)): Move to...
      - mlc/ret.hh: ...this new file.
      - mlc/switch.hh: Change that makes this file soon obsolete.
      - mlc/case.hh: New file.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@415 4aad255d-cdde-0310-9447-f3009e2ae8c0
  6. 20 Feb, 2006 1 commit
    • Roland Levillain's avatar
      Revamp the virtual types (aka properties) system. · 119255ef
      Roland Levillain authored
      No longer use the C++'s inheritance mechanism to ``pack'' the
      internal vtypes of a class.  Rely on a metacode algorithm to
      recursively look for vtypes in internal and external vtypes
      instead, using both the super link and a ``pseudosuper'' link to
      visit the upper classes.  The set/get classes have been replaced
      by a single class (in fact, by two classes, one for internal
      vtypes, the other for external vtypes).  The pseudosuper link is
      used to inherit (or fetch) the vtypes from a given class, without
      needing to inherit from this class.
      - metalic/mlc/properties.hh (mlc_equip_namespace_with_properties):
      Rewrite this macro.
      (set_types, set_ext_types): Rename as...
      (vtypes, ext_vtypes): ...this.
      (get_types, get_ext_type): Remove.
      - metalic/tests/properties.cc: Update the test.
      Check for new cases (external vtype, pseudo inheritance of
      (rec_get_vtype, rec_get_ext_vtype): New.
      This class holds the algorithm for the recursive retrieval of
      internal/external vtypes.
      (typeof_): Adjust.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@414 4aad255d-cdde-0310-9447-f3009e2ae8c0
  7. 17 Feb, 2006 2 commits
  8. 16 Feb, 2006 3 commits
  9. 15 Feb, 2006 2 commits
  10. 14 Feb, 2006 5 commits
  11. 10 Feb, 2006 1 commit
  12. 09 Feb, 2006 1 commit
  13. 07 Feb, 2006 1 commit
    • Thierry Geraud's avatar
      Add documentation. · 5993f282
      Thierry Geraud authored
      - mlc/is_a.hh (wrap): Move to...
      - mlc/wrap.hh: ...this new file.
      - mlc/bool.hh (ensure_): Take just one parameter; the former variadic
      version is now handled by...
      (ensure_list_): ...this new class.
      - mlc/typedef.hh: Rename some internals.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@388 4aad255d-cdde-0310-9447-f3009e2ae8c0
  14. 26 Jan, 2006 2 commits
    • Roland Levillain's avatar
      Static `if'. · 4495d6c7
      Roland Levillain authored
      - mlc/if.hh: New file.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@387 4aad255d-cdde-0310-9447-f3009e2ae8c0
    • Thierry Geraud's avatar
      Add mlc::ensure_ and update. . · 58791344
      Thierry Geraud authored
      - mlc/bool.hh: Update documentation.
      (internal::value_<bool,b>::ret): Rename as...
      (internal::value_<bool,b>::eval): ...this.
      (bool_<true>::ensure_t): Rename as...
      (bool_<true>::internal_ensure_): ...this.
      (internal::ensure_item<i,expr>): New class.
      (internal::none_): Relocate.
      (internal::none_::internal_ensure_): New typedef.
      (ensure_): New class.
      - mlc/value.hh (is_value, is_not_value): Move to...
      - mlc/cmp.hh (is_value, is_not_value): ...here.
      (eq_, neq_): Update static checks.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@386 4aad255d-cdde-0310-9447-f3009e2ae8c0
  15. 25 Jan, 2006 2 commits
    • Roland Levillain's avatar
      Move Metalic-related entries in their own ChangeLog. · 34bd6bb2
      Roland Levillain authored
      - metalic/mlc: Move Metalic-related entries...
      - metalic/ChangeLog: ...here (new).
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@385 4aad255d-cdde-0310-9447-f3009e2ae8c0
    • Thierry Geraud's avatar
      Clean up of core mlc classes and add some documentation. · e398d9d6
      Thierry Geraud authored
      A lot of cleanups.  Client concrete classes in mlc are now all
      postfixed by '_'.  For instance, we have and_, int_, and so on.
      - metalic: New.
      - metalic/mlc: New.
      - metalic/mlc/type.hh: New.
      - metalic/mlc/bool.hh: New.
      (abstract::boolean): New class.
      (bool_): New class.
      (value, true_type, false_type): Rename as...
      (value_, true_, false_): ...these.
      (ors, ands): Rename as...
      (ors_, ands_): ...these.
      (internal): Cosmetic change.
      (is_true, is_false): Remove.
      (true_, false_): New typedef ensure_t.
      - metalic/mlc/is_a.hh: New.
      (form): Move in the internal namespace cause names are too long
      for a decent client use.
      - metalic/mlc/value.hh: New.
      (value): Rename as...
      (value_): ...this.
      (mlc_internal_decl_unsigned_): New macro.
      (mlc_internal_decl_signed_): New macro.
      (uchar_, ushort_, uint_, ulong_): New classes.
      (schar_, short_, int_, long_): New classes.
      (is_value, is_not_value): New meta-functions.
      - metalic/mlc/flags.hh: New.
      (flag): New abstract class.
      (undefined_type, unknown_type, no_type): Rename as...
      (undefined, unknown, none): ...these.
      (not_ok): Remove cause useless.
      - metalic/mlc/cmp.hh: New.
      (eq, neq): Rename as...
      (eq_, neq_): ...these.
      (is_found, is_not_found, is_ok): Remove cause irrelevant here.
      (mlc_is_found, mlc_is_not_found): Likewise.
      - metalic/mlc/typedef.hh: New.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@384 4aad255d-cdde-0310-9447-f3009e2ae8c0
  16. 24 Jan, 2006 3 commits