Previous week Up Next week

Hello

Here is the latest Caml Weekly News, for the week of May 30 to June 06, 2006.

  1. immutable strings
  2. Mac x86 shared libraries

immutable strings

Archive: http://caml.inria.fr/pub/ml-archives/caml-list/2006/05/f603bc5e2fec357d8a36d807664072e6.en.html

John Harrison said and Martin Jambon answered:
> With immutable strings, you'd never need to do conversions at the module
> interfaces. As with any other functional data structure, you only copy
> when you want to change part of it.

OK, but let's be pragmatic: what kind of interface and implementation do 
you have in mind?

(and then: isn't it possible to implement in OCaml?)


If anyone is interested:

Before posting I tried a polymorphic (wrt mutability) string type.
It was fun enough, but it doesn't scale very well. I put it there:

   http://martin.jambon.free.fr/ocaml.html#gstring
      

Mac x86 shared libraries

Archive: http://caml.inria.fr/pub/ml-archives/caml-list/2006/05/01b5942372f9f155c9634207f593a366.en.html

Nicolas Cannasse asked and Xavier Leroy answered:
> One of the users of the haXe compiler (http://haxe.org) is trying to run 
> the install script on a new Macbook. He gets the following error :
> 
> ocaml install.ml
>
> Cannot load required shared library dllunix.
> Reason: dynamic loading not supported on this platform.
> Reference to undefined global `Unix'
>
> He checked on OCaml CVS and same error.
> Any idea ?

Well, as it says: dynamic loading of C stub code is not currently
supported under MacOSX/x86, so you can't do #load "unix.cma" from the
standard toplevel.  Remember, this is not guaranteed to work
everywhere, only on platforms that support DLL loading.

Someone posted a small patch to configure that enables loading of DLL
on MacOSX/x86.  It's not yet in CVS because I'd like to test some
more, and that will have to wait until my new shiny MacBook Pro
arrives.  Feel free to fish the patch from the mailing list archives
and give it a try.

Alternatively, fix the Makefile to compile install.ml to a bytecode
executable and run that.  This would work everywhere.
      

Using folding to read the cwn in vim 6+

Here is a quick trick to help you read this CWN if you are viewing it using vim (version 6 or greater).

:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM

If you know of a better way, please let me know.


Old cwn

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe online.


Alan Schmitt