1. 21 Apr, 2006 1 commit
    • Roland Levillain's avatar
      Lay the foundation stone of abstract::image. · 649d49ab
      Roland Levillain authored
      	* oln/core/abstract/any.hh, oln/core/typedefs.hh,
      	* oln/core/abstract/image.hh,
      	* oln/core/abstract/internal/image_impl.hh
      	* oln/core/abstract/image_entry.hh
      	* oln/core/abstract/image_dimension.hh: New files (imported from
      	Olena proto-1.0, and modified).
      	* oln/core/abstract/macros.hh: New file.
      	* tests/image_entry.cc: New test.
      	* Makefile.am, oln/Makefile.am, tests/Makefile.am: New files.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@462 4aad255d-cdde-0310-9447-f3009e2ae8c0
      649d49ab
  2. 20 Apr, 2006 4 commits
  3. 11 Apr, 2006 2 commits
    • Thierry Geraud's avatar
      Fix some icpc remarks and update operator traits. · 1f570ebc
      Thierry Geraud authored
      - xtd/res.hh (macros): Add spaces to fix pb with icpc preproc.
      - xtd/args.hh (xtd_nargs): Likewise.
      - xtd/math/abs.hh (internal::int_): Handwrite code.
      - xtd/math/pow.hh: Cosmetics.
      - xtd/math/arith.hh: Add comments.
      - xtd/literal.hh (argument): Remove reference so that temporaries
      are copied.
      - xtd/abstract/fun_nary_expr.hh: Likewise.
      - xtd/bind.hh: Likewise.
      - xtd/abstract/any.hh: Remove cause obsolete.
      - xtd/abstract/fun.hh: Add doc.
      (abstract::fun_): Disable imperative operators.
      - xtd/abstract/plain_fun.hh: Add doc.
      - xtd/optraits.hh: Rewrite.
      - xtd/traits.hh: New.
      - xtd/builtin/traits.hh: Replace dummy code by effective one.
      - xtd/internal/opmacros.hh: Rewrite.
      - xtd/internal/mlc.hh: Add include.
      - tests: Add ignore rule for '.deps'.
      - tests/cfun.cc: Fix icpc remark.
      - tests/abs.cc: New.
      - tests/optraits.cc: New.
      - tests/Makefile.am: Update.
      - tests/bi_traits: New directory to test builtin op traits.
      - tests/bi_traits/bool.cc: New.
      - tests/bi_traits/char.cc: New.
      - tests/bi_traits/sint.cc: New.
      - tests/bi_traits/uint.cc: New.
      - tests/bi_traits/schar.cc: New.
      - tests/bi_traits/slong.cc: New.
      - tests/bi_traits/uchar.cc: New.
      - tests/bi_traits/sshort.cc: New.
      - tests/bi_traits/ulong.cc: New.
      - tests/bi_traits/ushort.cc: New.
      - tests/bi_traits/float.cc: New.
      - tests/bi_traits/ldouble.cc: New.
      - tests/bi_traits/double.cc: New.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@457 4aad255d-cdde-0310-9447-f3009e2ae8c0
      1f570ebc
    • Thierry Geraud's avatar
      Fix some warnings with icpc; add is_built_in_. · 93db4c3a
      Thierry Geraud authored
      - tests (svn:ignore): Add '.deps'.
      - tests/case.cc: Fix warning with icpc.
      - tests/gcase.cc: New file.
      - mlc/abstract: New directory.
      - mlc/type.hh: Rename as...
      - mlc/abstract/type.hh: ...this.
      - mlc/bexpr.hh (abstract::bexpr): Move to...
      - mlc/abstract/bexpr.hh: ...this new file.
      - mlc/flags.hh: Update include.
      - mlc/value.hh: Update include.
      - mlc/ret.hh: Add separators in macros to fix error with icpc.
      - mlc/assert.hh: Add dtor to fix warning with icpc.
      - mlc/case.hh (internal::a_get_case): New flag.
      (get_case_): New class; it differs from case_ in remaining silent
      when no case matches.
      - mlc/cmp.hh (is_builtin_): New class with its specializations.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@453 4aad255d-cdde-0310-9447-f3009e2ae8c0
      93db4c3a
  4. 04 Apr, 2006 3 commits
    • Thierry Geraud's avatar
      Add some math functions and clean up file deps. · 47f9e9c3
      Thierry Geraud authored
      - xtd/math.hh: Add includes.
      - xtd/math/log.hh: New.
      - xtd/math/floor.hh: New.
      - xtd/math/log10.hh: New.
      - xtd/math/tan.hh: New.
      - xtd/math/atan.hh: New.
      - xtd/math/cos.hh: New.
      - xtd/math/trigo.hh: Remove; dispatch contents into several files.
      - xtd/math/acos.hh: New.
      - xtd/math/sin.hh: New.
      - xtd/math/sqrt.hh: New.
      - xtd/math/asin.hh: New.
      - xtd/math/tanh.hh: New.
      - xtd/math/exp.hh: New.
      - xtd/math/cosh.hh: New.
      - xtd/math/id.hh: Update includes.
      - xtd/math/sinh.hh: New.
      - xtd/math/atan2.hh: New.
      - xtd/math/abs.hh: New.
      - xtd/math/pow.hh: New.
      - xtd/math/includes.hh: New.
      - xtd/math/constraints.hh: New.
      - xtd/math/ceil.hh: New.
      - xtd/ops_expr.hh: Remove; dispatch contents into...
      - xtd/internal/opmacros.hh: ...this new file and the following three
      files.
      - xtd/math/arith.hh: Update.
      - xtd/math/cmp.hh: New.
      - xtd/math/logic.hh: New.
      - xtd/traits.hh: Rename as...
      - xtd/optraits.hh: ...this; update.
      - xtd/builtin/traits.hh: Update.
      - tests/cos.cc: Update.
      - tests/Makefile.am: Update.
      - tests/math.cc: New.
      - tests/cast.cc: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@450 4aad255d-cdde-0310-9447-f3009e2ae8c0
      47f9e9c3
    • Roland Levillain's avatar
      Add mlc::any. · 19b21d7a
      Roland Levillain authored
      	* mlc/contract.hh: New (imported from Olena proto-1.0).
      	* mlc/any.hh: New (imported from Olena proto-1.0).
      	Aesthetic changes.
      	(any__simple): New class.
      	* mlc/is_a.hh (mlc_is_a, mlc_is_not_a): Use the `template' keyword
      	to remove an ambiguity w.r.t the nature of the template struct
      	`ret' within mlc::form::of.
      	* tests/any.cc: New test.
      	* tests/Makefile.am (check_PROGRAMS): Add any.
      	(any_SOURCES): New.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@449 4aad255d-cdde-0310-9447-f3009e2ae8c0
      19b21d7a
    • Roland Levillain's avatar
      Static: Catch up with current Metalic. · 6a1f674e
      Roland Levillain authored
      	* tests/entry.cc (mlc::abort_): Remove this fake and use
      	mlc/abort.hh instead.
      	* stc/properties.hh: s/mlc::is_found/mlc::is_found_/g.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@448 4aad255d-cdde-0310-9447-f3009e2ae8c0
      6a1f674e
  5. 03 Apr, 2006 1 commit
    • Thierry Geraud's avatar
      Add protection mechanism to case definitions and update. · f9cbcc14
      Thierry Geraud authored
      - tests/switch.cc: Update.
      - tests/protected.cc: New file.
      - tests/Makefile.am (protected): New entry.
      - mlc/ret.hh (mlc_ret_, mlc_ret_found_in): New macros.
      (ret_found_in_): Update.
      - mlc/if.hh (FIXME): Remove.
      (if_): Change inheritance into composition.
      - mlc/typedef.hh: Cosmetics.
      - mlc/switch.hh (mlc_switch, mlc_switch_): New macros.
      - mlc/TODO: Update.
      - mlc/case.hh (mlc_case, mlc_case_): New macros.
      (ERROR): Update and augment.
      (WARNING): New.
      (mlc_case_equipment_for_namespace): Update to handle protected_.
      - mlc/cmp.hh (mlc_is_found, mlc_is_not_found): New macros.
      (mlc_is_undefined, mlc_is_defined): New macros.
      (mlc_is_ok, mlc_is_not_ok): New macros.
      (is_value, is_not_value): Update.
      (is_not_found_, is_found_): Update.
      (is_not_ok_, is_ok_): Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@447 4aad255d-cdde-0310-9447-f3009e2ae8c0
      f9cbcc14
  6. 31 Mar, 2006 1 commit
  7. 27 Mar, 2006 1 commit
    • Thierry Geraud's avatar
      Remove remaining dependencies between Boolean values and exprs. · 3c5601e0
      Thierry Geraud authored
      - mlc/bool.hh (bool_): Remove inheritance from bexpr_is_.
      - mlc/bexpr.hh (bexpr_is_): Rename as...
      (bexpr_): ...this.
      (bexpr_<b>::bexpr): New typedef so that bexprs can be simplified.
      - tests/if.cc: Update.
      - mlc/logic.hh: Add macros; add static checks; update.
      - mlc/if.hh: Add static check.
      - mlc/implies.hh: Add static check and update.
      - mlc/abort.hh: Update.
      - mlc/is_a.hh (where_): Add static check.
      Update.
      - mlc/case.hh: Update.
      - mlc/cmp.hh: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@444 4aad255d-cdde-0310-9447-f3009e2ae8c0
      3c5601e0
  8. 25 Mar, 2006 2 commits
    • Thierry Geraud's avatar
      Add a lot of material for operators (arith, logical, cmp). · 6f877e1b
      Thierry Geraud authored
      - xtd/cast.hh: Fix doc.
      - xtd/cfun.hh: New file dedicated to C functions.
      - xtd/traits.hh: Add a lot of material.
      - xtd/math/arith.hh: Update.
      - xtd/ops_expr.hh: Update.
      - xtd/builtin/traits.hh: Update.
      - xtd/literal.hh: Add static assertions.
      - xtd/abstract/fun_expr.hh (nargs): Move to...
      - xtd/abstract/nary_fun.hh: ...this file.
      (n): New method.
      - tests/cfun.cc: New file.
      - tests/Makefile.am: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@443 4aad255d-cdde-0310-9447-f3009e2ae8c0
      6f877e1b
    • Thierry Geraud's avatar
      Separate xtd function expressions from meta functions. . · 78661f06
      Thierry Geraud authored
      The design has changed: now an nary_fun_expr is not a subclass of
      meta_nary_fun.  Both fun_nary_expr and meta_nary_fun inherit from
      open_nary_fun, which contains the shared part of nary_fun_expr
      and meta_nary_fun.  Precisely, it provides the operator() that accepts
      different input: values or function expressions.
      
      - xtd/res.hh: Update.
      - xtd/cast.hh: Update.
      - xtd/math/trigo.hh: Update.
      - xtd/math/arith.hh: Update.
      - xtd/math/id.hh: Update.
      - xtd/mexpr.hh: Update.
      - xtd/args.hh: Update.
      - xtd/literal.hh: Update.
      - xtd/ops_expr.hh: Update.
      - xtd/abstract/open_nary_fun.hh: New.
      - xtd/abstract/plain_nary_fun.hh: New.
      - xtd/abstract/fun_expr.hh: Update.
      - xtd/abstract/meta_nary_fun.hh: New.
      - xtd/abstract/fun.hh: Update.
      - xtd/abstract/open_fun.hh: New.
      - xtd/abstract/plain_fun.hh: Update.
      - xtd/abstract/meta_fun.hh: Update.
      - xtd/abstract/fun_nary_expr.hh: New.
      - xtd/mfun.hh: Update.
      - xtd/TODO: New.
      - xtd/arg.hh: Update.
      - xtd/case.hh: Remove.
      - xtd/bind.hh: New.
      - xtd/internal: New.
      - xtd/internal/mlc.hh: New.
      - tests/id.cc: Update.
      - tests/bind.cc: Update.
      - tests/lit.cc: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@442 4aad255d-cdde-0310-9447-f3009e2ae8c0
      78661f06
  9. 24 Mar, 2006 2 commits
    • Thierry Geraud's avatar
      Add material for literals, binding arguments, and static checks. · e0e8db22
      Thierry Geraud authored
      - xtd/res.hh (xtd_res_0_ et al.): New; versions without typename.
      (xtd_internal_res_0, internal::get_res_0_unchecked): New; this
      equipment is for use in hierarchies to avoid partial definitions.
      - xtd/mexpr.hh: Add static assertions.
      - xtd/literal.hh (literal_): Rename as...
      (plain_literal_): ...this.
      (meta_literal_): New class.
      (literal_expr_): Add static assertions.
      (lit): New routine.
      (bind_1, bind_2, bind_3): New; method implementation for
      nary_fun_expr_<n, E>::bind_i. 
      - xtd/arg.hh (xtd_nargs): Remove this duplicate.
      - xtd/args.hh (xtd_nargs, nargs_): Move to...
      - xtd/abstract/fun_expr.hh: ...this file.
      (fun_expr_<E>::nargs): Remove; xtd_nargs does it.
      (xtd_res_0): Replace by...
      (xtd_internal_res_0): ...this.
      (bind_1, bind_2, bind_3): New methods.
      - xtd/abstract/exact.hh: Remove; the routine exact_of has moved...
      - xtd/abstract/fun.hh: ...here.
      - xtd/abstract/plain_fun.hh (operator()): Add static check.
      - xtd/abstract/meta_fun.hh: Add static checks.
      - tests/id.cc: Add xfail tests.
      - tests/bind.cc: New.
      - tests/lit.cc: New.
      - tests/Makefile.am: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@440 4aad255d-cdde-0310-9447-f3009e2ae8c0
      e0e8db22
    • Thierry Geraud's avatar
      Add mlc::abort_ for use in invalid code blocks. · 452aebf2
      Thierry Geraud authored
      - mlc/abort.hh: New.
      - mlc/TODO: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@439 4aad255d-cdde-0310-9447-f3009e2ae8c0
      452aebf2
  10. 23 Mar, 2006 3 commits
  11. 22 Mar, 2006 4 commits
    • Thierry Geraud's avatar
      First draft of extended functions. · de320d4b
      Thierry Geraud authored
      - xtd/math.hh: New file.
      - xtd/res.hh: New file.
      - xtd/cast.hh: New file.
      - xtd/math: New file.
      - xtd/math/trigo.hh: New file.
      - xtd/math/arith.hh: New file.
      - xtd/math/id.hh: New file.
      - xtd/mexpr.hh: New file.
      - xtd/args.hh: New file.
      - xtd/literal.hh: New file.
      - xtd/ops_expr.hh: New file.
      - xtd/abstract: New file.
      - xtd/abstract/nary_fun.hh: New file.
      - xtd/abstract/exact.hh: New file.
      - xtd/abstract/fun_expr.hh: New file.
      - xtd/abstract/any.hh: New file.
      - xtd/abstract/fun.hh: New file.
      - xtd/abstract/plain_fun.hh: New file.
      - xtd/abstract/meta_fun.hh: New file.
      - xtd/mfun.hh: New file.
      - xtd/traits.hh: New file.
      - xtd/builtin: New file.
      - xtd/builtin/traits.hh: New file.
      - xtd/arg.hh: New file.
      - xtd/case.hh: New file.
      - tests/id.cc: New file.
      - tests/cos.cc: New file.
      - tests/cast.cc: New file.
      - tests/Makefile.am: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@434 4aad255d-cdde-0310-9447-f3009e2ae8c0
      de320d4b
    • Thierry Geraud's avatar
      Tiny fix. · 6a732930
      Thierry Geraud authored
      - mlc/logic.hh: Fix missing include.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@433 4aad255d-cdde-0310-9447-f3009e2ae8c0
      6a732930
    • Thierry Geraud's avatar
      Re-enable or_list_ and and_list_. · f613e55f
      Thierry Geraud authored
      - tests/or.cc: New file.
      - tests/Makefile.am: Update.
      - mlc/logic.hh (or_list_, and_list_): Uncomment, update, and bug fix.
      - mlc/assert.hh: Fix missing include.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@432 4aad255d-cdde-0310-9447-f3009e2ae8c0
      f613e55f
    • Roland Levillain's avatar
      Catch up with changes in Metalic. · 0d1e44a1
      Roland Levillain authored
      	* stc/properties.hh (stc_equip_namespace_with_properties): Use
      	mlc_bool to extract the value of mlc::abstract::bexpr's.
      	* stc/properties.hh: Update test (use mlc::assert_).
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@430 4aad255d-cdde-0310-9447-f3009e2ae8c0
      0d1e44a1
  12. 21 Mar, 2006 3 commits
    • Thierry Geraud's avatar
      Disambiguate Boolean value types and Boolean expression types. · b14a413a
      Thierry Geraud authored
      - tests/ret.cc: Update.
      - mlc/ret.hh: Fix missing include.
      
      The Boolean value classes are re-written and internal::value_ is
      removed; this class was too ambiguous since precise types, e.g.,
      int_<i>, are provided and it was weirdly located in the value class
      hierarchy.
      
      - mlc/bool.hh (bool_<true>, bool_<false>): Merge those
      specializations into the single and once for all written class
      bool_<b>.
      (bool_<true>::is_true): Remove since this mark is now factored
      in the base class bexpr_is_<b>.
      (bool_<b>): Add inheritance so that a Boolean value can be
      considered as a Boolean expression type.
      (internal::value_<bool, b>): Remove this specialization since
      the class internal::value_ is also removed.
      (logic.hh): Remove inclusion.
      (mlc_bool): Move to...
      
      The Boolean expression types are now handled by special classes.
      Yet mlc::true_ and mlc::false_ remain expression types in addition
      of value types.
      
      - mlc/bexpr.hh: ...this file.  This macro only applies on Boolean
      expression types.
      (bexpr_): Remove this obsolete wrapper.
      (bexpr_is_<b>): New base class with its couple of specializations
      which act as a replacement for bool_<b> for expression types.
      (internal::bool_of_): Replace the meta-code for mlc_bool.
      
      Those changes induce a lot of updates described below.
      
      - mlc/pair.hh: Update includes.
      - mlc/logic.hh: Update.  Instead of deriving from bool_<b>
      Boolean expression types now derive from bexpr_is_<b>.
      (and_list_, or_list_): Comment to postpone updating while keeping
      code compile.
      - mlc/implies.hh: Update inheritance.
      - mlc/if.hh: Update includes and add assertion.
      - mlc/assert.hh: Update includes.
      - mlc/valist.hh: Likewise.
      - mlc/wrap.hh: Remove obsolete code.
      - mlc/is_a.hh: Update inheritance.
      (bexpr_): Replace by wrap_.
      - mlc/case.hh: Update.  Now use mlc_bool instead of ::value.
      - mlc/cmp.hh: Update inheritance.
      (eq_::ensure): Remove this obsolete feature.
      - mlc/value.hh: Move sub-classes of value to...
      - mlc/int.hh, mlc/char.hh: ...these new files.
      - mlc/values.hh: New file that includes the whole value types material.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@429 4aad255d-cdde-0310-9447-f3009e2ae8c0
      b14a413a
    • Thierry Geraud's avatar
      First step towards explicit bexpr. · 7a02f045
      Thierry Geraud authored
      - mlc/bool.hh: Fix doc typo.
      - mlc/TODO: Update.
      - mlc/wrap.hh (unwrap): Remove cause useless.
      (value_wrap_, boolean_wrap_): New dedicated wrappers.
      - mlc/bexpr.hh: New file. It provides an explicit wrapper for Boolean
      expression types; it is a first step towards the disambiguation between
      the Boolean value type and the many Boolean expression types.
      - mlc/is_a.hh (mlc_is_a): Update; now use bexpr_ instead of wrap_.
      - mlc/value.hh (mlc_value): Suggest this macro.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@428 4aad255d-cdde-0310-9447-f3009e2ae8c0
      7a02f045
    • Thierry Geraud's avatar
      Create assert.hh from bool.hh contents. · 93e8723d
      Thierry Geraud authored
      - mlc/bool.hh (mlc_type_iff, mlc::type_iff_): Remove cause soon obsolete.
      (bool_<true>::ensure()): Remove to force the client to use assert_.
      (bool_): Add using clauses to make contents explicit.
      (internal::check_, internal::check_item_): Move to...
      (literal_, no_error_message, no_bexpr): Move to...
      (assert_, multiple_assert_): Move to...
      - mlc/assert.hh: ... this new file.
      - tests/is_a.cc: Update.
      - tests/if.cc: Update.
      - tests/typedef.cc: Update.
      - mlc/logic.hh: Update.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@427 4aad255d-cdde-0310-9447-f3009e2ae8c0
      93e8723d
  13. 14 Mar, 2006 4 commits
    • Roland Levillain's avatar
      Set the pseudosuper link using a separate class instead of an · 3b7cf14a
      Roland Levillain authored
      	internal virtual type.
      
      	* stc/properties.hh (stc_equip_namespace_with_properties):
      	Generate a set_pseudosuper_type struct.  Use it to get the
      	pseudosuper links in recursive vtype retrieval algorithms.
      	(stc_set_pseudosuper, stc_pseudosuper, stc_pseudosuper_): New
      	macros.
      	* tests/properties.cc: Adjust.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@426 4aad255d-cdde-0310-9447-f3009e2ae8c0
      3b7cf14a
    • Roland Levillain's avatar
      * ChangeLog, metalic/ChangeLog: Clean up ChangeLogs. · 462384ca
      Roland Levillain authored
      	* extended/ChangeLog: New.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@425 4aad255d-cdde-0310-9447-f3009e2ae8c0
      462384ca
    • 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_):
      	...this.
      	Adjust.
      	* metalic/tests/properties.cc: Move...
      	* static/tests/properties.cc: ...here.
      	Adjust.
      	* 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
      	properties.hh.
      	* metalic/tests/Makefile.am (check_PROGRAMS): Remove properties.
      	(properties_SOURCES): Remove.
      	* extended/tests/Makefile.am (AM_CPPFLAGS): Add
      	-I$(top_srcdir)/metalic.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@424 4aad255d-cdde-0310-9447-f3009e2ae8c0
      1eadf52f
    • 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
      	ensure().
      	* metalic/tests/ret.cc: Include mlc/ret.hh instead of
      	mlc/typedef.hh.
      	* 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
      8b4beec4
  14. 10 Mar, 2006 1 commit
  15. 07 Mar, 2006 1 commit
  16. 03 Mar, 2006 2 commits
  17. 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
      found".
      (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
      55d35dcf
  18. 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
      vtypes).
      (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
      119255ef
  19. 17 Feb, 2006 2 commits
  20. 16 Feb, 2006 1 commit