[ruby_ocaml.rb: added. Mauricio Fernandez **20070610100415] [extconf.rb: added. Mauricio Fernandez **20070610100443] [mv extconf.rb ruby_ocaml_extconf.rb. Mauricio Fernandez **20070610101049] [ruby_ocaml.rb: fixed Array#caml_to_ruby_helper. Mauricio Fernandez **20070610104804] [ruby_ocaml.rb: Module contexts use singleton methods, moved emit_method_definitions to subclasses. Mauricio Fernandez **20070610104820] [ruby_ocaml_extconf.rb: meant to be required in the actual extconf.rb, which must set some constants. Mauricio Fernandez **20070610105002] [ruby_ocaml_extconf.rb: Module contexts also accept :under => "Some::NameSpace". Mauricio Fernandez **20070610111148] [extconf.rb: added sample extconf.rb. Mauricio Fernandez **20070610111305] [ruby_ocaml.rb: fixed Unit's conversion methods. Mauricio Fernandez **20070610125631] [ruby_ocaml.rb: added Abstract type. Mauricio Fernandez **20070610143849] [ruby_ocaml.rb: Class#emit_helpers emits abstract type helpers for its associated type. Mauricio Fernandez **20070610145748] [ruby_ocaml.rb: Array#caml_to_ruby should also use CAMLreturn (?). Mauricio Fernandez **20070610145923] [extconf.rb: expanded example. Mauricio Fernandez **20070610145951] [ruby_ocaml.rb: fixed abstract type helpers. Mauricio Fernandez **20070610150556] [ruby_ocaml.rb: use container name as abstract type name in Class context. Mauricio Fernandez **20070610150610] [ruby_ocaml.rb (Mapping, Class): handle self passed as abstract type. Mauricio Fernandez **20070610154522] [ruby_ocaml.rb (Mapping#caml_param_list): caml_* is reserved. Mauricio Fernandez **20070610173603] [ruby_ocaml_extconf.rb, ruby_ocaml.rb: reworked OCaml->Ruby exceptions, need Printexc.to_string. Mauricio Fernandez **20070610173727] [examples/simple/: added basic example. Mauricio Fernandez **20070610174156] [ruby_ocaml.rb (Class#emit_method_definitions): emit singleton methods if pass_self is false. Mauricio Fernandez **20070610212711] [ruby_ocaml.rb, examples/simple/fib.ml: functions are registered as Module.fun. Mauricio Fernandez **20070610212804] [examples/oo/: minimalistic example with abstract types ("OO style"). Mauricio Fernandez **20070610213055] [extconf.rb: expanded example. Mauricio Fernandez **20070611080728] [ruby_ocaml.rb (Mapping): changed wrapper names, diff names for singleton vs. plain methods. Mauricio Fernandez **20070611081655] [ruby_ocaml_extconf.rb: instead of appending to Makefile, write to depend (appended by create_makefile). Mauricio Fernandez **20070611081754] [mv ruby_ocaml.rb rocaml.rb, mv ruby_ocaml_extconf.rb rocaml_extconf.rb, updated references. Mauricio Fernandez **20070611082209] [**/*/extconf.rb, rocaml.rb: wrapper dumped to *_rocaml_wrapper.c by default. Mauricio Fernandez **20070611084334] [rocaml_extconf.rb, **/*/extconf.rb: CAML_TARGET is set automatically (EXTNAME_rocaml_runtime.o). Mauricio Fernandez **20070611084524] [rocaml_extconf.rb: added distclean_rocaml target plus distclean dep. Mauricio Fernandez **20070611084621] [rocaml_extconf.rb, **/*/extconf.rb: CAML_OBJS is autodetected if left empty. Mauricio Fernandez **20070611085441] [extconf.rb: some documentation. Mauricio Fernandez **20070611090214] [rocaml.rb (Interface#def_class): use instance_exec on 1.9, since it doesn't pass self to instance_eval's block anymore. Mauricio Fernandez **20070611105350] [GPL, LICENSE, README.en: added license & documentation. Mauricio Fernandez **20070611105453] [rocaml.rb, rocaml_extconf.rb: added copyright. Mauricio Fernandez **20070611105825] [README.en: braino. Mauricio Fernandez **20070611110952] [rocaml.rb, rocaml_extconf.rb: typo in copyright notice. Mauricio Fernandez **20070611145215] [rocaml.rb, extconf.rb: support FLOAT (and ARRAY(FLOAT)) types. Mauricio Fernandez **20070611145426] [examples/simple/*: use FLOAT types in example, renamed some functions. Mauricio Fernandez **20070611145438] [examples/oo/*: expanded example. Mauricio Fernandez **20070611150054] [rocaml.rb: add message to generated wrappers. Mauricio Fernandez **20070611152635] [rocaml.rb (Abstract#caml_to_ruby_helper): must free() the TDATA pointer. Mauricio Fernandez **20070611152905] [rocaml.rb: support ruby_to_caml_safe in several Types, used by Mapping if :safe => true (default). Mauricio Fernandez **20070614101900 In unsafe mode, there might be a memleak when a Ruby -> OCaml type conversion fails (e.g. StringValuePtr which calls #to_str). ] [rocaml.rb: fixed String#ruby_to_caml_helper. Mauricio Fernandez **20070614102618] [rocaml.rb: minor refactoring: use respond_to? instead of need_helper? and empty helpers. Mauricio Fernandez **20070614102649] [rocaml.rb (Object#do_instance_eval): refactored the 1.8-1.9 instance_exec/instance_eval helper. Mauricio Fernandez **20070614141509] [rocaml.rb (String#ruby_to_caml_helper): added cast to avoid warning. Mauricio Fernandez **20070614141607] [rocaml.rb (Variant, Interface): added support for variants (only constant constructors for the time being). Mauricio Fernandez **20070614141708] [examples/variants/: show variants at work. Mauricio Fernandez **20070614141844] [rocaml.rb (Mapping, Interface#def_helper): support :aliased_as option for method/function defs. Mauricio Fernandez **20070614143711] [examples/variants/test_variants.rb, extconf.rb: show how :aliased_as works. Mauricio Fernandez **20070614143841] [extconf.rb: use :aliased_as in template. Mauricio Fernandez **20070614144112] [rocaml_extconf.rb, **/*/extconf.rb: honor CAML_INCLUDES, CAML_LIBS in generated Makefile. Mauricio Fernandez **20070614145021] [extconf.rb, rocaml_extconf.rb: prepend depend.in to the generated OCaml rules if existent. Mauricio Fernandez **20070614145808] [rocaml.rb (CodeGeneratorHelper, Interface, Type): handle type dependencies when emitting helpers. Mauricio Fernandez **20070614180721] [rocaml.rb: Variant should inherit Type. Mauricio Fernandez **20070614180908] [rocaml.rb: added Tuple type. Mauricio Fernandez **20070614180933] [examples/variants/*: some tuple examples. Mauricio Fernandez **20070614180957] [rocaml.rb (Tuple#initialize): try to avoid ambiguity with nested tuples. Mauricio Fernandez **20070615081304] [rocaml.rb: fixed Array#type_dependencies. Mauricio Fernandez **20070615081813] [rocaml.rb: added some helpers to the generated code (do_raise_exception, do_raise_exception_tag). Mauricio Fernandez **20070615101612] [rocaml.rb: Tuple can be given the tag (last param to #initialize); also #with_tag. Mauricio Fernandez **20070615101732] [rocaml.rb: Variant supports non-constant constructors; rely on Tuple. Mauricio Fernandez **20070615101856] [examples/variants/: updated to use non-constant constructors. Mauricio Fernandez **20070615101956] [rocaml.rb, examples/variants/test_variants.rb: take/return [tag, value] where value is not an array too. Mauricio Fernandez **20070615103739] [rocaml.rb (Interface#def_module, #def_class): return the new context, block optional for Class context. Mauricio Fernandez **20070616145247] [rocaml_extconf.rb: use -linkpkg if needed, link against libunix.a in addition to libasmrun.a by default. Mauricio Fernandez **20070616145406] [rocaml.rb (Types::SymbolicVariant, Interface#sym_variant): support symbolic variant types. Mauricio Fernandez **20070616145524 Like normal variants, but using symbols instead of tag numbers. ] [examples/variants/*: show how symbolic variants work. Mauricio Fernandez **20070616145638] [rocaml.rb: exception checks must be done with if(status && *status). Mauricio Fernandez **20070616150329] [rocaml.rb (SymbolicVariant): avoid problems with st_lookup on 64-bit platforms. Mauricio Fernandez **20070616150404] [rocaml_extconf.rb: must use $^ instead of $? when generating the runtime. Mauricio Fernandez **20070616150522] [rocaml.rb (Variant): fixed error messages corresponding to invalid tags. Mauricio Fernandez **20070616150836] [rocaml.rb: typo in do_raise_exception_tag, fixed segfault. Mauricio Fernandez **20070616152312] [rocaml.rb (SymbolicVariant): clarified exception messages for unknown tags. Mauricio Fernandez **20070616152617] [rocaml.rb (SymbolicVariant): list allowed tags on type conversion errors. Mauricio Fernandez **20070616153434] [rocaml.rb: all types with helpers have {caml_to_ruby,ruby_to_caml}_prototype, used by Context#emit_prototypes and Interface#generate. Mauricio Fernandez **20070616180419] [rocaml.rb (emit_helper_aux): support recursive types. Mauricio Fernandez **20070616180611] [examples/tree: added example showcasing symbolic variants and recursive types. Mauricio Fernandez **20070616180824] [examples/simple/*: added function accepting and returning float * float * float. Mauricio Fernandez **20070618110745] [examples/records/: example with record types. Mauricio Fernandez **20070618135500] [rocaml.rb (Types::Record): added support for record types. Mauricio Fernandez **20070618140014] [rocaml.rb (String, Float#ruby_to_caml_helper): fix *status checks. Mauricio Fernandez **20070618141007] [rocaml.rb (Types::Record, FloatRecord, RECORD): support unboxed float records. Mauricio Fernandez **20070618144245] [examples/records/*: use unboxed float records in the example. Mauricio Fernandez **20070618144605] [examples/tree/*: expanded example to include a RB tree + comparison with rbtree. Mauricio Fernandez **20070619175056] [rocaml.rb: fixed Array#caml_to_ruby_helper. Mauricio Fernandez **20070620173610] [rocaml.rb (Types::Array): forgot to define ruby_to_caml_safe, fixed helpers. Mauricio Fernandez **20070620173929] [examples/simple/: added conversions.ml with some additional examples involving arrays and float tuples. Mauricio Fernandez **20070620174027] [rocaml_extconf.rb, **/*/extconf.rb: clarify how to use CAML_INCLUDES. Mauricio Fernandez **20070621135237] [rocaml.rb, rocaml_extconf.rb: added pointer to eigenclass.org. Mauricio Fernandez **20070621135320] [README.en: updated. Mauricio Fernandez **20070621135555] [test/extconf.rb, conversions.ml, test_conversions.rb: unit tests. Mauricio Fernandez **20070621154935] [test/conversions.ml: forgot to add it. Mauricio Fernandez **20070621160646] [test/test_conversions.ml, extconf.ml: test tuples. Mauricio Fernandez **20070621160702] [test/test_conversions.rb, extconf.r, conversions.ml: test complex tuples with several diff. types. Mauricio Fernandez **20070621161524] [rocaml.rb (Mapping, Context): allow :yield => [yield_src_type, yield_dst_type] in fun/method definitions, which generates the rb_yield wrapper. Mauricio Fernandez **20070621181922] [examples/tree/*: added an iteration function which uses the rb_yield wrapper. Mauricio Fernandez **20070621182155] [rocaml.rb (Record): also accept Structs in addition to Hashes. Mauricio Fernandez **20070628181038] [rocaml.rb, test/test_conversions.rb: support strings with nulls. Mauricio Fernandez **20070628181458] [examples/marshal/: added fast serialization example. Mauricio Fernandez **20070628181958] [rocaml.rb (Mapping#mangled_name): use the (mangled) Ruby name instead of the OCaml one. Mauricio Fernandez **20070628212658] [examples/marshal/*: generate a family of specialized marshallers, compare to Marshal. Mauricio Fernandez **20070628212900] [rocaml.rb (Types::List), rocaml_extconf.rb: support LIST types. Mauricio Fernandez **20070628221643] [test/extconf.rb, test_conversions.rb: test LIST types. Mauricio Fernandez **20070628221730] [rocaml_extconf.rb: $LOCAL_LIBS is inferred from CAML_LIBS to add the required lib*.a automagically. Mauricio Fernandez **20070702181450] [rocaml.rb: recognize :as => ruby_name in method/function definitions (same as :aliased_as). Mauricio Fernandez **20070703091316] [rocaml.rb: optimize Ruby to Caml float conversion in Float and Array. Mauricio Fernandez **20070703092031] [rocaml.rb (Mapping): the function/method name can be given as SomeMod.f, overriding the default prefix. Mauricio Fernandez **20070705104923] [rocaml.rb (Class): the :under=>scope parameter is eval()ed. Mauricio Fernandez **20070705105415] [rocaml.rb (Abstract): include caml_to_ruby prototype in ruby_to_caml's, since the order cannot be guaranteed. Mauricio Fernandez **20070705144356] [rocaml.rb (Mapping#initialize): cope with Mod.func names given to fun/method declarations. Mauricio Fernandez **20070705144454] [rocaml.rb (Array#caml_to_ruby_helper): set array len before element assig., to prevent dead objects when GC is called in between. Mauricio Fernandez **20070705153038] [rocaml_extconf.rb: register Big_int.big_int_of_string,string_of_big_int; link against nums.cmxa by default. Mauricio Fernandez **20070711111109] [rocaml.rb, test/extconf.rb, conversions.ml, test_conversions.ml: added BIGINT type support (Bit_int.big_int), conversion via strings. Mauricio Fernandez **20070711111200] [rocaml.rb: fixed typo in List#caml_to_ruby_prototype (thx to Jos Backus for finding it). Mauricio Fernandez **20070801212239] [rocaml.rb: fixed Array, List#name, missing #include. Patch by Chris Waterson. Mauricio Fernandez **20070802083550] [examples/variants: added a new constructor of TUPLE(LIST(STRING)). Mauricio Fernandez **20070802083711] [examples/variants: the extra boxing in variant types is automatic. Mauricio Fernandez **20070802093751] [rocaml.rb: #include for caml_failwith. Mauricio Fernandez **20070805093006] [rocaml.rb, test/conversions.ml, test_conversions.rb: check class when unwrapping RData values. Mauricio Fernandez **20070807144111] [rocaml_extconf.rb: support pa_rocaml extension. Mauricio Fernandez **20070919173459] [rocaml_extconf.rb: changed pa_rocaml's syntax extensions, fixed camlp4 detection. Mauricio Fernandez **20070919182647] [examples/*: use the pa_rocaml syntax ext in all but tree. Mauricio Fernandez **20070919183229] [test/conversions.ml: use pa_rocaml extension. Mauricio Fernandez **20070919183901] [README.en: ref to the camlp4 extension (namespace, export). Mauricio Fernandez **20071017141658] [TAG 0.6.0 Mauricio Fernandez **20071017141853] [rocaml_extconf.rb: fix camlp[45] detection. Mauricio Fernandez **20071017212108] [rocaml_extconf.rb: fixed native compiler detection. Mauricio Fernandez **20071017212910] [TAG 0.6.1 Mauricio Fernandez **20071017213504] [rocaml_extconf.rb: add ocaml_native_lib_path to the INCFLAGS (-Idir). Mauricio Fernandez **20071018171458] [rocaml_extconf.rb: try to link against libgcc (required for Sparc). Mauricio Fernandez **20080125104656] [rocaml_extconf.rb, **/extconf.rb: create_makefile must be called by the user. Mauricio Fernandez **20080125111051] [rocaml_extconf.rb: link against stub libraries from the OCAML_PACKAGES. Mauricio Fernandez **20080125111725] [rocaml_extconf.rb: CAML_TARGET is added to $LOCAL_LIBS just before create_makefile. Mauricio Fernandez **20080125122643 Otherwise, have_library and friends will fail. ]