Re: [Caml-list] Computing with big numbers?
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)
*** 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.
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?
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?
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?
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.
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