Re: [Caml-list] Computing with big numbers?

2008-12-04 Thread Alan Schmitt

On 4 déc. 08, at 17:06, Florian Hars wrote:


Alan Schmitt schrieb:

But I don't think this applies here, as the hashes I'm
looking at are the one used by Unison to identify file contents.


Then it is *especially* relevant, as it is quite trivial to generate
several files with  different content and the same MD5 hash, all you
need is a Playstation 3:
http://www.win.tue.nl/hashclash/Nostradamus/


Thanks for the link, but I wasn't considering a malicious attack: if  
someone were able to modify my files, I would not worry about Unison  
not detecting (thus not propagating) a malicious change.


Alan

PGP.sig
Description: This is a digitally signed message part
___
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs


[Caml-list] Finall Call For Papers (DSL WC)

2008-12-04 Thread Emir Pasalic

*** IFIP Working Conference on Domain Specific Languages (DSL WC) ***
 July 15-17, 2009, Oxford

http://www.hope.cs.rice.edu/twiki/bin/view/WG211/DSLWC

* Call for Papers
Domain-specific languages are emerging as a fundamental component of  
software engineering practice. DSLs are often introduced when new  
domains such as web-scripting or markup come into existence, but it is  
also common to see DSLs being introduced and adopted for traditional  
domains such as parsing and data description. Developing software  
using DSLs has many benefits. DSLs are often designed based on  
existing notations that are already in use by experts in a given  
domain. As such, successful DSLs often reduce or eliminate the effort  
needed to transform the concept or innovation produced by the domain  
expert into an executable artifact or even a deliverable software  
product. DSL implementations can capture and mechanize a significant  
portion of the repetitive and mechanical tasks that a domain expert  
traditionally needed to perform in order to produce an executable.  
DSLs can in many cases capture and make widely available special  
expertise that only top specialists in a given domain might have. By  
capturing expert knowledge and reducing repetitive tasks, DSLs often  
also lead to software that is significantly more portable, more  
reliable and more understandable than it would otherwise be.


DSLs can be viewed as having a dual role to general-purpose languages:  
whereas general purpose languages try to do everything as well as  
possible, DSLs are designed to find a domain where they can solve some  
class of problems -- no matter how small -- in the best possible way.  
Widely known examples of DSLs include Matlab, Verilog, SQL, LINQ,  
JavaScript, PERL, HTML, Open GL, Tcl/Tk, Macromedia Director,  
Mathematica/Maple, AutoLisp/AutoCAD, XSLT, RPM, Make, lex/yacc, LaTeX,  
PostScript, Excel, among many others. But while these tools have been  
widely successful, they still fall short of realizing the full idea  
behind them. The goal of this conference is to explore the extent to  
which incorporating modern principles of language design and software  
engineering can benefit existing and future domain-specific languages.


The ultimate goal of using DSLs is to improve programmer productivity  
and software quality. Often, this is achieved by reducing the cost of  
initial software development as well as maintenance costs. These  
improvements - programs being easier to write and maintain -  
materialize as a result of domain-specific guarantees, analyses,  
testing techniques, verification techniques, and optimizations.


*  Paper Criteria
Papers are sought addressing the research problems, fundamental  
principles, and practical techniques of DSLs, including but not  
limited to:
  -  Foundations, including semantics, formal methods, type  
theory, and complexity theory
  -   Language design, ranging from concrete syntax to semantic  
and typing issues
  -   Software engineering, including domain analysis, software  
design, and 	  round-trip engineering
  -   Software processes, including metrics for software and  
language evaluation
  -   Implementation techniques, including parsing, compiling,  
and program 	  generation

  -   Program analysis and automated transformation
  -  Reverse engineering, re-engineering, design discovery,  
automated refactoring

  -  Hardware/software codesign
  -  Programming environments, including visual languages,  
debuggers, and testing  infrastructure

  -   Teaching DSLs and the use of DSLs in teaching

Case studies, including engineering, bioinformatics, hardware  
specification languages, parallel computing languages, real-time and  
embedded systems, and networked and distributed domains
Papers will be judged on the depth of their insight and the extent to  
which they translate specific experience into general lessons for  
domain-specific language designers and implementers, and software  
engineers. Papers can range from the practical to the theoretical;  
where appropriate, they should refer to actual languages, tools, and  
techniques, provide pointers to full definitions and implementations,  
and include empirical data on results.


  * Important Dates
  -  July 23rd, 2008: First Call for Papers
  -  November 12th, 2008: Final Call for Papers
  - December 14th, 2008: Abstract submission due.
  - December 21st, 2008: Paper submission deadline.
  - February 23rd, 2009: Author notification of decisions
  - March 22nd, 2009: Camera ready manuscripts due

  * Instructions for Authors
Proceedings will be published in the Springer LNCS series. Submissions  
and final manuscripts are to follow the LNCS stylesheet formatting  
guidelines, and are not to exceed 25 pages. Please submit your  
manuscripts online using the EasyChair conference management system.


  * Program Committee
Jon Bentley, Ava

Re: [Caml-list] OCaml version 3.11.0 released.

2008-12-04 Thread Rich Neswold
On Thu, Dec 4, 2008 at 8:52 AM, Damien Doligez <[EMAIL PROTECTED]>wrote:

> It is available here: < http://caml.inria.fr/download.en.html >
>
> Please note: at this time it is only available as source and as
> binary for Mac OS X on Intel processors.  Other binary versions
> will be added to the Web site next week.


The link to the Mac .dmg, on your web page, file appears to be incorrect. It
should be http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0.dmg.

Many thanks to the development team! I'm looking forward to using 3.11...

-- 
Rich

LOI: https://www.google.com/reader/shared/00900594587109808626
___
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs


Re: [Caml-list] Computing with big numbers?

2008-12-04 Thread Martin Jambon
Florian Hars wrote:
> Alan Schmitt schrieb:
>> But I don't think this applies here, as the hashes I'm
>> looking at are the one used by Unison to identify file contents.
> 
> Then it is *especially* relevant, as it is quite trivial to generate
> several files with  different content and the same MD5 hash, all you
> need is a Playstation 3:
> http://www.win.tue.nl/hashclash/Nostradamus/

It's like being able to manufacture a lock and the key that goes with
it: big deal!

:-)


Martin

-- 
http://mjambon.com/

___
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs


Re: [Caml-list] Computing with big numbers?

2008-12-04 Thread David Thomas
That depends on the threat model.  If the question is, "presuming no active 
attack, how likely is it to break?", then the cryptanalytic results against the 
hash are irrelevant.  If the question is "how secure is it if someone is 
maliciously manipulating files", then they are certainly relevant.

If you're operating between reasonably secure machines, where an attacker 
having write access is already more catastrophic than a failure of Unison, then 
the first is what matters.  If someone else has control over some of the files, 
then you've gotta watch the second.


--- On Thu, 12/4/08, Florian Hars <[EMAIL PROTECTED]> wrote:

> From: Florian Hars <[EMAIL PROTECTED]>
> Subject: Re: [Caml-list] Computing with big numbers?
> To: "Alan Schmitt" <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED]
> Date: Thursday, December 4, 2008, 8:06 AM
> Alan Schmitt schrieb:
> > But I don't think this applies here, as the hashes
> I'm
> > looking at are the one used by Unison to identify file
> contents.
> 
> Then it is *especially* relevant, as it is quite trivial to
> generate
> several files with  different content and the same MD5
> hash, all you
> need is a Playstation 3:
> http://www.win.tue.nl/hashclash/Nostradamus/
> 
> - Florian
> -- 
> But our moral language is fragmented; our contemporaries
> reject the Kantian
> hunch that choosing those things most admirable and
> plausible as ends in
> themselves is the best practice; autonomous sources of the
> good are everywhere
> brown and broken. Thus we have PHP.
> http://lambda-the-ultimate.org/node/1463
> 
> ___
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list:
> http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs


  

___
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs


Re: [Caml-list] Computing with big numbers?

2008-12-04 Thread Florian Hars
Alan Schmitt schrieb:
> But I don't think this applies here, as the hashes I'm
> looking at are the one used by Unison to identify file contents.

Then it is *especially* relevant, as it is quite trivial to generate
several files with  different content and the same MD5 hash, all you
need is a Playstation 3:
http://www.win.tue.nl/hashclash/Nostradamus/

- Florian
-- 
But our moral language is fragmented; our contemporaries reject the Kantian
hunch that choosing those things most admirable and plausible as ends in
themselves is the best practice; autonomous sources of the good are everywhere
brown and broken. Thus we have PHP. http://lambda-the-ultimate.org/node/1463

___
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs


[Caml-list] OCaml version 3.11.0 released.

2008-12-04 Thread Damien Doligez

Dear OCaml users,

It is our pleasure to celebrate the 51st birthday of Eric S. Raymond
by releasing OCaml version 3.11.0.

This release brings you many bug fixes and a few much-wanted
features such as dynamic linking in native code (not available
on all architectures, though).  See below for the complete
list of changes from the previous version.

It is available here: < http://caml.inria.fr/download.en.html >

Please note: at this time it is only available as source and as
binary for Mac OS X on Intel processors.  Other binary versions
will be added to the Web site next week.

Happy hacking,

-- Damien Doligez for the OCaml team.



Objective Caml 3.11.0:
--

(Changes that can break existing programs are marked with a "*"  )

Language features:
- Addition of lazy patterns: "lazy " matches suspensions whose  
values,

  after forcing, match the pattern .
- Introduction of private abbreviation types "type t = private expr>",

  for abstracting the actual manifest type in type abbreviations.
- Subtyping is now allowed between a private abbreviation and its  
definition,

  and between a polymorphic method and its monomorphic instance.

Compilers:
- The file name for a compilation unit should correspond to a valid
  identifier (Otherwise dynamic linking and other things can fail, and
  a warning is emitted.)
* Revised -output-obj: the output name must now be provided; its
  extension must be one of .o/.obj, .so/.dll, or .c for the
  bytecode compiler. The compilers can now produce a shared library
  (with all the needed -ccopts/-ccobjs options) directly.
- -dtypes renamed to -annot, records (in .annot files) which function  
calls

  are tail calls.
- All compiler error messages now include a file name and location, for
  better interaction with Emacs' compilation mode.
- Optimized compilation of "lazy e" when the argument "e" is
  already evaluated.
- Optimized compilation of equality tests with a variant constant  
constructor.

- The -dllib options recorded in libraries are no longer ignored when
  -use_runtime or -use_prims is used (unless -no_auto_link is
  explicitly used).
- Check that at most one of -pack, -a, -shared, -c, -output-obj is
  given on the command line.
- Optimized compilation of private types as regular manifest types
  (e.g. abbreviation to float, float array or record types with only
   float fields).

Native-code compiler:
- New port: Mac OS X / Intel in 64-bit mode (configure with -cc "gcc - 
m64").

- A new option "-shared" to produce a plugin that can be dynamically
  loaded with the native version of Dynlink.
- A new option "-nodynlink" to enable optimizations valid only for code
  that is never dynlinked (no-op except for AMD64).
- More aggressive unboxing of floats and boxed integers.
- Can select which assembler and asm options to use at configuration  
time.


Run-time system:
- New implementation of the page table describing the heap (two-level
  array in 32 bits, sparse hashtable in 64 bits), fixes issues with  
address

  space randomization on 64-bit OS (PR#4448).
- New "generational" API for registering global memory roots with the  
GC,

  enables faster scanning of global roots.
  (The functions are caml_*_generational_global_root in memory.h>.)

- New function "caml_raise_with_args" to raise an exception with several
  arguments from C.
- Changes in implementation of dynamic linking of C code:
  under Win32, use Alain Frisch's flexdll implementation of the dlopen
  API; under MacOSX, use dlopen API instead of MacOSX bundle API.
- Programs may now choose a first-fit allocation policy instead of
  the default next-fit.  First-fit reduces fragmentation but is
  slightly slower in some cases.

Standard library:
- Parsing library: new function "set_trace" to programmatically turn
  on or off the printing of a trace during parsing.
- Printexc library: new functions "print_backtrace" and "get_backtrace"
  to obtain a stack backtrace of the most recently raised exception.
  New function "record_backtrace" to turn the exception backtrace  
mechanism

  on or off from within a program.
- Scanf library: fine-tuning of meta format implementation;
  fscanf behaviour revisited: only one input buffer is allocated for  
any

  given input channel;
  the %n conversion does not count a lookahead character as read.

Other libraries:
- Dynlink: on some platforms, the Dynlink library is now available in
  native code. The boolean Dynlink.is_native allows the program to
  know whether it has been compiled in bytecode or in native code.
- Bigarrays: added "unsafe_get" and "unsafe_set"
  (non-bound-checking versions of "get" and "set").
- Bigarrays: removed limitation "array dimension < 2^31".
- Labltk: added support for TK 8.5.
- Num: added conversions between big_int and int32, nativeint, int64.
  More efficient implementation of Num.quo_num and Num.mod_num.
- Threads: improved efficiency of mutex and condition variable  
operations;

  improved interaction with Unix.f