From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p2Q7NZF4022653 for ; Sat, 26 Mar 2011 08:23:35 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlMDADqTjU1CbwQbkWdsb2JhbACERZQejH4UAQEBAQkLCwcUBCGyC5BdBYEng0t3hT6LDw X-IronPort-AV: E=Sophos;i="4.63,247,1299452400"; d="scan'208";a="95014517" Received: from out3.smtp.messagingengine.com ([66.111.4.27]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 26 Mar 2011 08:23:29 +0100 Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by gateway1.messagingengine.com (Postfix) with ESMTP id 9164B20275 for ; Sat, 26 Mar 2011 03:23:28 -0400 (EDT) Received: from frontend2.messagingengine.com ([10.202.2.161]) by compute2.internal (MEProxy); Sat, 26 Mar 2011 03:23:28 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=message-id:date:from:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding; s=smtpout; bh=1aPxxK3GePtJdcWfIGeVBoGQuVo=; b=Q42sbUFXtSyjDaM+eKrHRdIAE39gvS9Kinuk41dGtnqq5PcWqJ4g2mosi/RPoNPbWLYAFdR8E02/QNn1MNvmjjNcreqKMsgFf+b3KYVNnxdyByFqBI/1B06AEGC47UCXR/edXrepckEM9Whrwoa9MBNVycHu+EGcQONwue2aph4= X-Sasl-enc: vPmf5v/xLUi0nsXKG4FLV1sNm/esUvRlJLbxD9Rk7y3c 1301124208 Received: from [192.168.2.3] (c-98-248-39-171.hsd1.ca.comcast.net [98.248.39.171]) by mail.messagingengine.com (Postfix) with ESMTPSA id 340814405C3 for ; Sat, 26 Mar 2011 03:23:28 -0400 (EDT) Message-ID: <4D8D9483.1040608@ens-lyon.org> Date: Sat, 26 Mar 2011 00:23:47 -0700 From: Martin Jambon User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20101023 Lightning/1.0b3pre Thunderbird/3.1.3 MIME-Version: 1.0 To: caml-list@inria.fr References: <20110326011208.GA3915@melkinpaasi.cs.helsinki.fi> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] What are "Language extensions"? On 03/25/11 21:30, Steven Shaw wrote: > Perhaps it doesn't mean much when there's only one implementation of > Objective Caml. However, if a second implementation came along then I > guess it may only implement the core language without extensions (and > still be considered a valid "Objective Caml"). The "language extensions" section of the manual describes features that are perfectly usable but may be gone in the next release of the official Objective Caml distribution (compilers etc.). For example, there used to be a special syntax for pattern matching against streams (Stream module). It was removed but can still be used by preprocessing .ml files with camlp4 or camlp5. Currently the least esoteric features that are commonly used among these "language extensions" are in my opinion: - assert - integer literals for int32 and int64 - lazy expressions (but not lazy patterns) - char range patterns - local open (new in 3.12) - record notations (new in 3.12) It is easy to see workarounds if these features were to disappear from the official implementation because they are mostly syntax. Not so sure about the other extensions. Martin