caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [OSR] Standard syntax extensions ?
@ 2008-04-24 15:49 David Teller
  2008-04-24 15:52 ` [Caml-list] " John Whitington
                   ` (5 more replies)
  0 siblings, 6 replies; 29+ messages in thread
From: David Teller @ 2008-04-24 15:49 UTC (permalink / raw)
  To: Caml

    Dear list,

 Now that the forge is up, it's time to (re)start thinking about the OSR
and what we want the future of the OCaml standard distribution to look
like. Other threads will be (re)spawned regarding various aspects of
that distribution, but for now, I'd like to discuss which syntax
extensions. Oh, and before this thread diverges again, let me underline
that we're *not* discussing delivery mechanisms or ocamlfind or
ocamlbuild or repositories or GODI or IDisposable or camlp4 vs.
camlp5... We're also not discussing original vs. revised syntax vs. twt
[yet], although if you consider that some extension would be much more
useful if rendered compatible with one of these syntaxes, please mention
it.

Now, a few subjects I'd like to see covered:
* which syntax extensions do you use so often that you consider they
should be part of the language ?
* which syntax extensions are very important to you but should not be
included in the core language [yet] ?
* which syntax extensions are good ideas and should go into one of the
previous categories but miss the mark because of dependencies / cosmetic
issues and/or incompatibilities with other extensions or with the latest
camlp4 ?
* what kind of syntactic sugar is absolutely missing from the language ?

As this may come into play later, whenever you suggest an extension,
don't hesitate to comment whether you believe whom this extension would
serve: beginners ? power-users ? some more specific category ?

Cheers,
 David
-- 
David Teller
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 15:49 [OSR] Standard syntax extensions ? David Teller
@ 2008-04-24 15:52 ` John Whitington
  2008-04-25  8:22   ` Richard Jones
  2008-04-24 16:16 ` [Caml-list] [OSR] Standard syntax extensions ? - voting Stefano Zacchiroli
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 29+ messages in thread
From: John Whitington @ 2008-04-24 15:52 UTC (permalink / raw)
  To: David Teller; +Cc: Caml


On 24 Apr 2008, at 16:49, David Teller wrote:
> * what kind of syntactic sugar is absolutely missing from the  
> language ?

I'd like a keyword "matches", so I can write

map (matches (0, _, _)) l

rather than

map (function (0, _, _) -> true | _ -> false) l

Had anyone done that or similar in camlp4?

-- 
John Whitington
Coherent Graphics Ltd
http://www.coherentpdf.com/


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ? - voting
  2008-04-24 15:49 [OSR] Standard syntax extensions ? David Teller
  2008-04-24 15:52 ` [Caml-list] " John Whitington
@ 2008-04-24 16:16 ` Stefano Zacchiroli
  2008-04-25 15:15   ` David Teller
  2008-04-24 16:41 ` [Caml-list] [OSR] Standard syntax extensions ? Martin Jambon
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 29+ messages in thread
From: Stefano Zacchiroli @ 2008-04-24 16:16 UTC (permalink / raw)
  To: caml-list

On Thu, Apr 24, 2008 at 05:49:42PM +0200, David Teller wrote:
> * which syntax extensions do you use so often that you consider they
> should be part of the language ?

Thanks for raising this up again.

I'm not going to make my nominations with this post, but rather a
methodological suggestion. Mailing lists are good to discuss things, but
not for deciding; they usually work for that when one solutions can be
arguably proven better than the others. In our case I fear that the
thread can diverge.

What about the following 2 phases:
1) prepare a list of nominations, maybe as a page on cocanwiki
2) vote on them using a Doodle poll

Of course, since we are a do-ocracy and you are doing the work, the vote
will be by no mean constraining; but I assume you are interested in
collecting the desire of the community, otherwise you wouldn't have
started this thread in the first place.

I think that a wiki page + a vote can give us they same feedback you
could have got on the list, and we will avoid tons of AOL messages :-)

Just my 0.02€
Cheers.

-- 
Stefano Zacchiroli -*- PhD in Computer Science ............... now what?
zack@{upsilon.cc,cs.unibo.it,debian.org}  -<%>-  http://upsilon.cc/zack/
(15:56:48)  Zack: e la demo dema ?    /\    All one has to do is hit the
(15:57:15)  Bac: no, la demo scema    \/    right keys at the right time


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 15:49 [OSR] Standard syntax extensions ? David Teller
  2008-04-24 15:52 ` [Caml-list] " John Whitington
  2008-04-24 16:16 ` [Caml-list] [OSR] Standard syntax extensions ? - voting Stefano Zacchiroli
@ 2008-04-24 16:41 ` Martin Jambon
  2008-04-24 17:02   ` Jon Harrop
  2008-04-24 17:05 ` Dario Teixeira
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 29+ messages in thread
From: Martin Jambon @ 2008-04-24 16:41 UTC (permalink / raw)
  To: David Teller; +Cc: Caml

On Thu, 24 Apr 2008, David Teller wrote:

> * which syntax extensions do you use so often that you consider they
> should be part of the language ?

None because it creates unneeded dependencies between unrelated 
libraries.
The problem is that software packages can only grow or be replaced 
because of compatibility issues.

What if a part of a package (such as one syntax extension among many) 
becomes unmaintainable?
The whole package dies.

I believe it's what happened to the Caml Development Kit (CDK).
I would love to hear some opinions from the CDK folks.


Martin


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 16:41 ` [Caml-list] [OSR] Standard syntax extensions ? Martin Jambon
@ 2008-04-24 17:02   ` Jon Harrop
  2008-04-24 20:53     ` Berke Durak
  2008-04-25 15:32     ` David Teller
  0 siblings, 2 replies; 29+ messages in thread
From: Jon Harrop @ 2008-04-24 17:02 UTC (permalink / raw)
  To: caml-list

On Thursday 24 April 2008 17:41:17 Martin Jambon wrote:
> On Thu, 24 Apr 2008, David Teller wrote:
> > * which syntax extensions do you use so often that you consider they
> > should be part of the language ?
>
> None because it creates unneeded dependencies between unrelated
> libraries.

Agreed. There are some glaring omissions, like try..finally, but they should 
be fixed properly in the compiler and not using camlp<n> macros.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 15:49 [OSR] Standard syntax extensions ? David Teller
                   ` (2 preceding siblings ...)
  2008-04-24 16:41 ` [Caml-list] [OSR] Standard syntax extensions ? Martin Jambon
@ 2008-04-24 17:05 ` Dario Teixeira
  2008-04-25 13:57   ` Peng Zang
  2008-04-25 20:37 ` Arthur Chan
  2008-04-25 22:25 ` Mike Lin
  5 siblings, 1 reply; 29+ messages in thread
From: Dario Teixeira @ 2008-04-24 17:05 UTC (permalink / raw)
  To: David Teller, Caml

Hi,

Thanks for your initiative, David!

> * which syntax extensions do you use so often that you consider they
> should be part of the language ?

Though there are a few so useful (open_in, list comprehensions) they
can almost be considered "standard", I still don't think their inclusion
by default is of paramount importance.  The reason?  As long as they
are properly packaged and widely available (namely in the "big three":
GODI, Debian, and Fedora), it makes little difference if they are included
by default or not.  After all, they're just a godi_console/apt-get/yum
away.

Remember the recent thread about ocamlbuild+findlib+camlp4 and the OSR
about standardising naming conventions for syntax extensions [1].  Using
a special ocamlbuild plugin [2], the barrier to using syntax extensions
is so low that you can almost consider them as standard language features.

(In theory, anyway.  For the above-described nirvana to become reality,
P4ck needs to be integrated into GODI.  Have you considered it, Martin?).

Cheers,
Dario Teixeira


[1]:
http://www.cocan.org/osr/meta_files_for_packages_containing_syntax_extensions
[2]: http://brion.inria.fr/gallium/index.php/Using_ocamlfind_with_ocamlbuild



      __________________________________________________________
Sent from Yahoo! Mail.
A Smarter Email http://uk.docs.yahoo.com/nowyoucan.html


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 17:02   ` Jon Harrop
@ 2008-04-24 20:53     ` Berke Durak
  2008-04-25  8:24       ` Richard Jones
  2008-04-25 10:33       ` Andrej Bauer
  2008-04-25 15:32     ` David Teller
  1 sibling, 2 replies; 29+ messages in thread
From: Berke Durak @ 2008-04-24 20:53 UTC (permalink / raw)
  To: Jon Harrop; +Cc: caml-list

[-- Attachment #1: Type: text/plain, Size: 401 bytes --]

We absolutely need a standard serialization solution.

I'm thinking of Sexplib of course but it could be another one.  The reason
it must be standard is that it's difficult to provide
serialization/deserialization functions outside the imlementation.

So Sexplib should be a standard extension, or better, it should be included
in the compiler and used for the .cmo/.cmi/.cmxa files.

-- 
Berke Durak

[-- Attachment #2: Type: text/html, Size: 444 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 15:52 ` [Caml-list] " John Whitington
@ 2008-04-25  8:22   ` Richard Jones
  2008-05-01  7:45     ` Richard Jones
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Jones @ 2008-04-25  8:22 UTC (permalink / raw)
  To: John Whitington; +Cc: David Teller, Caml

On Thu, Apr 24, 2008 at 04:52:50PM +0100, John Whitington wrote:
> On 24 Apr 2008, at 16:49, David Teller wrote:
> >* what kind of syntactic sugar is absolutely missing from the  
> >language ?
> 
> I'd like a keyword "matches", so I can write
> 
> map (matches (0, _, _)) l
> 
> rather than
> 
> map (function (0, _, _) -> true | _ -> false) l
> 
> Had anyone done that or similar in camlp4?

That's a good idea.  Attached is a trivial camlp4 implementation which
works to a first approximation.  ('when'-clauses don't seem to work
but no doubt would be very simple to fix/add).

Rich.

-------------------------------------------------- pa_matches.ml
(* matches keyword.
 * Copyright (C) 2008 Red Hat Inc., Richard W.M. Jones
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 *
 * $Id$
 *
 * Compile with:
 *   ocamlfind ocamlc -I +camlp4 camlp4lib.cma \
 *     -pp camlp4of.opt -c pa_matches.ml -o pa_matches.cmo
 * Test with:
 *   ocamlfind ocamlc -pp "camlp4o pa_matches.cmo" test.ml -o test
 *)

open Camlp4.PreCast
open Syntax
open Ast

let output_matches _loc patt =
  <:expr< function $patt$ -> true | _ -> false >>

EXTEND Gram
  GLOBAL: expr;

  expr: LEVEL ";" [
    [ "matches"; p = patt ->
	output_matches _loc p
    ]
  ];

END


-------------------------------------------------- test.ml
open Printf

let () =
  let xs =
    List.filter (matches 7)
      [ 1; 2; 3; 4; 5; 6; 7; 7; 7; 8; 9; 10 ] in
  printf "result = %s\n" (String.concat ";" (List.map string_of_int xs))


--------------------------------------------------

-- 
Richard Jones
Red Hat


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 20:53     ` Berke Durak
@ 2008-04-25  8:24       ` Richard Jones
  2008-04-25 16:59         ` Berke Durak
  2008-04-25 10:33       ` Andrej Bauer
  1 sibling, 1 reply; 29+ messages in thread
From: Richard Jones @ 2008-04-25  8:24 UTC (permalink / raw)
  To: caml-list

On Thu, Apr 24, 2008 at 10:53:36PM +0200, Berke Durak wrote:
> We absolutely need a standard serialization solution.
> 
> I'm thinking of Sexplib of course but it could be another one.  The reason
> it must be standard is that it's difficult to provide
> serialization/deserialization functions outside the imlementation.

It isn't though.  There are several serialization modules (sexplib,
deriving, ...), all of them are packaged up so using them is a simple
'apt-get' away.

> So Sexplib should be a standard extension, or better, it should be included
> in the compiler and used for the .cmo/.cmi/.cmxa files.

Why?

Rich.

-- 
Richard Jones
Red Hat


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 20:53     ` Berke Durak
  2008-04-25  8:24       ` Richard Jones
@ 2008-04-25 10:33       ` Andrej Bauer
  1 sibling, 0 replies; 29+ messages in thread
From: Andrej Bauer @ 2008-04-25 10:33 UTC (permalink / raw)
  To: Caml

Consider these three options:

(1) There is a "standard set" of syntax extensions which is not
officially part of Ocaml distribution.

(2) Official Ocaml syntax is extended with a conservative set of syntax
extensions, maybe just "open in" and "try finally".

(3) There is an unofficial, full blown "Ocaml on steroids" distribution
which contains everybody's bells and whistles.

I support (2).

I do not support (1) because it will just lead to annoyances. There is a
reason why programming languages have fixed syntax. The revised syntax
is "official" and has never been widely adopted. Why should we then
expect that an "unofficial" set of syntax extensions would be widely
adopted? I certainly would not use any in source code that I intend to
distribute.

Option (3) sounds like an interesting experiment. Someone should try it
without trying to first reach a concensus within the community. It 
should have a name that distinguishes it from official "pure Ocaml". It 
should be marketed correctly, for example as a development enviroment, 
or "even more than GODI", but NOT as an alternative to pure Ocaml. It 
does not matter if it is neither of these, I am talking about marketing.

Best regards,

Andrej



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 17:05 ` Dario Teixeira
@ 2008-04-25 13:57   ` Peng Zang
  2008-04-25 15:04     ` David Teller
  0 siblings, 1 reply; 29+ messages in thread
From: Peng Zang @ 2008-04-25 13:57 UTC (permalink / raw)
  To: caml-list; +Cc: Dario Teixeira, David Teller

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thursday 24 April 2008 01:05:44 pm Dario Teixeira wrote:
> Remember the recent thread about ocamlbuild+findlib+camlp4 and the OSR
> about standardising naming conventions for syntax extensions [1].  Using
> a special ocamlbuild plugin [2], the barrier to using syntax extensions
> is so low that you can almost consider them as standard language features.
>

I was all about to advocate my favorite extensions until I read this.  It 
makes a lot of sense.  If build scripts can pull syntax extensions like 
libraries, and directly from the web, there is no reason to have a set 
of "standard extensions".

Everyone can just use what they like, and distribute the source in that 
fashion.  The makefile (or whatever build script) takes care of the rest.

Peng
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQFIEeNpfIRcEFL/JewRAvhxAJ99a9aZ/OJk5PkioMmN0SfbPF5qngCfcQnH
r5IINNF4dq8NgF/11phIx3c=
=xnyA
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-25 13:57   ` Peng Zang
@ 2008-04-25 15:04     ` David Teller
  2008-04-25 16:11       ` Peng Zang
  0 siblings, 1 reply; 29+ messages in thread
From: David Teller @ 2008-04-25 15:04 UTC (permalink / raw)
  To: peng.zang; +Cc: caml-list

The current plans are to have two sets of extensions inside Batteries
Included:
* a few will be opened by default
* some others will just be part of the distribution, with instructions
in a common format, regarding how to activate & use them

In either case, we will probably have a slightly customized ocamlbuild
which doesn't need special plug-ins for these extensions (that's part of
Edgar's side of the work).

Cheers,
 David

On Fri, 2008-04-25 at 09:57 -0400, Peng Zang wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On Thursday 24 April 2008 01:05:44 pm Dario Teixeira wrote:
> > Remember the recent thread about ocamlbuild+findlib+camlp4 and the OSR
> > about standardising naming conventions for syntax extensions [1].  Using
> > a special ocamlbuild plugin [2], the barrier to using syntax extensions
> > is so low that you can almost consider them as standard language features.
> >

-- 
David Teller
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ? - voting
  2008-04-24 16:16 ` [Caml-list] [OSR] Standard syntax extensions ? - voting Stefano Zacchiroli
@ 2008-04-25 15:15   ` David Teller
  2008-04-26  0:16     ` Stefano Zacchiroli
  0 siblings, 1 reply; 29+ messages in thread
From: David Teller @ 2008-04-25 15:15 UTC (permalink / raw)
  To: Stefano Zacchiroli; +Cc: caml-list

Good idea. Would you handle this wiki ?

Cheers,
 David

On Fri, 2008-04-25 at 00:16 +0800, Stefano Zacchiroli wrote:
> What about the following 2 phases:
> 1) prepare a list of nominations, maybe as a page on cocanwiki
> 2) vote on them using a Doodle poll

-- 
David Teller
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 17:02   ` Jon Harrop
  2008-04-24 20:53     ` Berke Durak
@ 2008-04-25 15:32     ` David Teller
  1 sibling, 0 replies; 29+ messages in thread
From: David Teller @ 2008-04-25 15:32 UTC (permalink / raw)
  To: Jon Harrop; +Cc: caml-list

If you want to work on patching the compiler itself, please get in touch
with Edgar Friendly. He's getting some work done on that side. I'm more
interested in libraries and camlp4.

Cheers,
 David

On Thu, 2008-04-24 at 18:02 +0100, Jon Harrop wrote:
> Agreed. There are some glaring omissions, like try..finally, but they should 
> be fixed properly in the compiler and not using camlp<n> macros.
> 
-- 
David Teller
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-25 15:04     ` David Teller
@ 2008-04-25 16:11       ` Peng Zang
  0 siblings, 0 replies; 29+ messages in thread
From: Peng Zang @ 2008-04-25 16:11 UTC (permalink / raw)
  To: David Teller; +Cc: caml-list

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ahh, sounds good.  Thanks,

Peng

On Friday 25 April 2008 11:04:35 am David Teller wrote:
> The current plans are to have two sets of extensions inside Batteries
> Included:
> * a few will be opened by default
> * some others will just be part of the distribution, with instructions
> in a common format, regarding how to activate & use them
>
> In either case, we will probably have a slightly customized ocamlbuild
> which doesn't need special plug-ins for these extensions (that's part of
> Edgar's side of the work).
>
> Cheers,
>  David
>
> On Fri, 2008-04-25 at 09:57 -0400, Peng Zang wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > On Thursday 24 April 2008 01:05:44 pm Dario Teixeira wrote:
> > > Remember the recent thread about ocamlbuild+findlib+camlp4 and the OSR
> > > about standardising naming conventions for syntax extensions [1]. 
> > > Using a special ocamlbuild plugin [2], the barrier to using syntax
> > > extensions is so low that you can almost consider them as standard
> > > language features.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQFIEgLJfIRcEFL/JewRAjfWAKDQ9n50OG86N0qtebNzkpDeGWxBwgCePXKs
Q6pxZYriFE2xlATVe1FTShw=
=bufD
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-25  8:24       ` Richard Jones
@ 2008-04-25 16:59         ` Berke Durak
  2008-04-25 17:31           ` Gerd Stolpmann
  2008-04-25 17:38           ` Richard Jones
  0 siblings, 2 replies; 29+ messages in thread
From: Berke Durak @ 2008-04-25 16:59 UTC (permalink / raw)
  To: Richard Jones; +Cc: caml-list

[-- Attachment #1: Type: text/plain, Size: 1484 bytes --]

On Fri, Apr 25, 2008 at 10:24 AM, Richard Jones <rich@annexia.org> wrote:

> On Thu, Apr 24, 2008 at 10:53:36PM +0200, Berke Durak wrote:
> > We absolutely need a standard serialization solution.
> >
> > I'm thinking of Sexplib of course but it could be another one.  The
> reason
> > it must be standard is that it's difficult to provide
> > serialization/deserialization functions outside the imlementation.
>
> It isn't though.  There are several serialization modules (sexplib,
> deriving, ...), all of them are packaged up so using them is a simple
> 'apt-get' away.


But we need at least to enrich standard container datatypes with
serialization functions...  Do we want to have n copies of each datatype
for each serialization library? I think we must agree on one such solution
and ensure it is always available.

As those solutions all involve syntax extensions, this means that it must go
into the list of standard sytnax extensions.

> So Sexplib should be a standard extension, or better, it should be
> included
> > in the compiler and used for the .cmo/.cmi/.cmxa files.
>
> Why?


That would allow people to easily write tools that examine object files
without
relying on the unnecessarily britlle binary format.  At the very least you
could open it in a text editor and see if everything's OK inside, or simply
grep
it.  Yes, there is CMI grep, but that one would be even better.  Do this,
and
you will instantly see 10 to 20 new metatools for Ocaml.
-- 
Berke Durak

[-- Attachment #2: Type: text/html, Size: 2082 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-25 16:59         ` Berke Durak
@ 2008-04-25 17:31           ` Gerd Stolpmann
  2008-04-25 17:38           ` Richard Jones
  1 sibling, 0 replies; 29+ messages in thread
From: Gerd Stolpmann @ 2008-04-25 17:31 UTC (permalink / raw)
  To: Berke Durak; +Cc: Richard Jones, caml-list


Am Freitag, den 25.04.2008, 18:59 +0200 schrieb Berke Durak:
> 
> 
> On Fri, Apr 25, 2008 at 10:24 AM, Richard Jones <rich@annexia.org>
> wrote:
>         On Thu, Apr 24, 2008 at 10:53:36PM +0200, Berke Durak wrote:
>         > We absolutely need a standard serialization solution.
>         >
>         > I'm thinking of Sexplib of course but it could be another
>         one.  The reason
>         > it must be standard is that it's difficult to provide
>         > serialization/deserialization functions outside the
>         imlementation.
>         
>         
>         It isn't though.  There are several serialization modules
>         (sexplib,
>         deriving, ...), all of them are packaged up so using them is a
>         simple
>         'apt-get' away.
> 
> But we need at least to enrich standard container datatypes with
> serialization functions...  Do we want to have n copies of each
> datatype
> for each serialization library? I think we must agree on one such
> solution
> and ensure it is always available.
> 
> As those solutions all involve syntax extensions, this means that it
> must go
> into the list of standard sytnax extensions.
> 
> 
>         > So Sexplib should be a standard extension, or better, it
>         should be included
>         > in the compiler and used for the .cmo/.cmi/.cmxa files.
>         
>         
>         Why?
> 
> That would allow people to easily write tools that examine object
> files without
> relying on the unnecessarily britlle binary format. 

You are very optimistic here. I'm a power user of a number of
serializers (JSON, XDR, ICEP), and it is not the problem that one format
is binary, and the other text, but that serialized representations are
usually not self-describing. So even if you could simply read in a cmi
into your program, the problem remains how to interpret it. You cannot
overcome the dependency on a certain O'Caml version by switching to a
text format.

>  At the very least you
> could open it in a text editor and see if everything's OK inside, or
> simply grep
> it.  

You can do that already for cmi's. Just create a file "dummy.ml" with

include Name_of_cmi

in it and run "ocamlc -c -i dummy.ml" on it which prints the definitions
of the cmi as readable text. Ok, there's more in it than only
definitions, but the ocaml distribution includes a program called
objinfo that allows you to inspect cmi's, cmo's and cma's, e.g. you can
view the MD5 sums.

> Yes, there is CMI grep, but that one would be even better.  Do this,
> and
> you will instantly see 10 to 20 new metatools for Ocaml.

Which tools for example?

Gerd

-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
Phone: +49-6151-153855                  Fax: +49-6151-997714
------------------------------------------------------------



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-25 16:59         ` Berke Durak
  2008-04-25 17:31           ` Gerd Stolpmann
@ 2008-04-25 17:38           ` Richard Jones
  1 sibling, 0 replies; 29+ messages in thread
From: Richard Jones @ 2008-04-25 17:38 UTC (permalink / raw)
  To: caml-list

On Fri, Apr 25, 2008 at 06:59:50PM +0200, Berke Durak wrote:
> That would allow people to easily write tools that examine object
> files without relying on the unnecessarily britlle binary format.
> At the very least you could open it in a text editor and see if
> everything's OK inside, or simply grep it.  Yes, there is CMI grep,
> but that one would be even better.  Do this, and you will instantly
> see 10 to 20 new metatools for Ocaml.

But you'll also kill OCaml compiler development.  The *.cm* files
contain representations of the type system, and research on the type
system is the main point of OCaml which is why it changes so much.

Anyway we already have (safe) meta-tools.  We don't need ones which
hack away at internal representations, even if that is a common
development model for Java class files.

Rich.

-- 
Richard Jones
Red Hat


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 15:49 [OSR] Standard syntax extensions ? David Teller
                   ` (3 preceding siblings ...)
  2008-04-24 17:05 ` Dario Teixeira
@ 2008-04-25 20:37 ` Arthur Chan
  2008-04-26  7:41   ` Richard Jones
  2008-04-25 22:25 ` Mike Lin
  5 siblings, 1 reply; 29+ messages in thread
From: Arthur Chan @ 2008-04-25 20:37 UTC (permalink / raw)
  To: David Teller; +Cc: Caml

[-- Attachment #1: Type: text/plain, Size: 2796 bytes --]

Hey David,

Would it be difficult to have python-like syntax for List.exists?  Could we
add it to Hashtbl and Array too?  I'm not too fond of python's general
sloppiness, but the (x in mylist) syntax seemed very pretty to me.  At the
least, it correspondes directly to mathematical syntax (x \in blah, for
Latex ppl).

Does this already exist in a syntax extension?

-Arthur Chan



On Thu, Apr 24, 2008 at 8:49 AM, David Teller <David.Teller@univ-orleans.fr>
wrote:

>    Dear list,
>
>  Now that the forge is up, it's time to (re)start thinking about the OSR
> and what we want the future of the OCaml standard distribution to look
> like. Other threads will be (re)spawned regarding various aspects of
> that distribution, but for now, I'd like to discuss which syntax
> extensions. Oh, and before this thread diverges again, let me underline
> that we're *not* discussing delivery mechanisms or ocamlfind or
> ocamlbuild or repositories or GODI or IDisposable or camlp4 vs.
> camlp5... We're also not discussing original vs. revised syntax vs. twt
> [yet], although if you consider that some extension would be much more
> useful if rendered compatible with one of these syntaxes, please mention
> it.
>
> Now, a few subjects I'd like to see covered:
> * which syntax extensions do you use so often that you consider they
> should be part of the language ?
> * which syntax extensions are very important to you but should not be
> included in the core language [yet] ?
> * which syntax extensions are good ideas and should go into one of the
> previous categories but miss the mark because of dependencies / cosmetic
> issues and/or incompatibilities with other extensions or with the latest
> camlp4 ?
> * what kind of syntactic sugar is absolutely missing from the language ?
>
> As this may come into play later, whenever you suggest an extension,
> don't hesitate to comment whether you believe whom this extension would
> serve: beginners ? power-users ? some more specific category ?
>
> Cheers,
>  David
> --
> David Teller
>  Security of Distributed Systems
>  http://www.univ-orleans.fr/lifo/Members/David.Teller
>  Angry researcher: French Universities need reforms, but the LRU act brings
> liquidations.
>
> _______________________________________________
> 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
>



-- 
-----------------------------------------------------------------------
(\__/)
(='.'=)This is Bunny. Copy and paste Bunny into your
(")_(")signature to help him gain world domination.
------------------------------------------------------------------------

[-- Attachment #2: Type: text/html, Size: 3654 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-24 15:49 [OSR] Standard syntax extensions ? David Teller
                   ` (4 preceding siblings ...)
  2008-04-25 20:37 ` Arthur Chan
@ 2008-04-25 22:25 ` Mike Lin
  5 siblings, 0 replies; 29+ messages in thread
From: Mike Lin @ 2008-04-25 22:25 UTC (permalink / raw)
  To: Caml

[-- Attachment #1: Type: text/plain, Size: 802 bytes --]

On Thu, Apr 24, 2008 at 11:49 AM, David Teller <David.Teller@univ-orleans.fr>
wrote:

>
> camlp5... We're also not discussing original vs. revised syntax vs. twt
> [yet], although if you consider that some extension would be much more
> useful if rendered compatible with one of these syntaxes, please mention
> it.


FWIW, most quickie syntactic sugar extensions that are confined to single
lines of code work seamlessly with twt. I use pa_compr all the time, for
example. I think open_in and try...finally are currently problematic, but if
they do become some kind of de facto standard then I would have no problem
hacking them into this already-badly-hacked preprocessor. In the future,
someone needs to do twt right; it works well enough for me right now that I
have no motivation to do so.

-Mike

[-- Attachment #2: Type: text/html, Size: 1092 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ? - voting
  2008-04-25 15:15   ` David Teller
@ 2008-04-26  0:16     ` Stefano Zacchiroli
  0 siblings, 0 replies; 29+ messages in thread
From: Stefano Zacchiroli @ 2008-04-26  0:16 UTC (permalink / raw)
  To: Inria Ocaml Mailing List; +Cc: David Teller

On Fri, Apr 25, 2008 at 05:15:00PM +0200, David Teller wrote:
> Good idea. Would you handle this wiki ?

Sure, here is the wiki page: http://wiki.cocan.org/osr/batteriesincluded
Beside that, the wiki is self-handling :) Just point the people to it
and kindly ask to add their favorite extension.

Cheers.

-- 
Stefano Zacchiroli -*- PhD in Computer Science ............... now what?
zack@{upsilon.cc,cs.unibo.it,debian.org}  -<%>-  http://upsilon.cc/zack/
(15:56:48)  Zack: e la demo dema ?    /\    All one has to do is hit the
(15:57:15)  Bac: no, la demo scema    \/    right keys at the right time


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-25 20:37 ` Arthur Chan
@ 2008-04-26  7:41   ` Richard Jones
  2008-04-26  7:53     ` Till Crueger
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Jones @ 2008-04-26  7:41 UTC (permalink / raw)
  To: Arthur Chan; +Cc: David Teller, Caml

On Fri, Apr 25, 2008 at 01:37:47PM -0700, Arthur Chan wrote:
> Would it be difficult to have python-like syntax for List.exists?  Could we
> add it to Hashtbl and Array too?  I'm not too fond of python's general
> sloppiness, but the (x in mylist) syntax seemed very pretty to me.  At the
> least, it correspondes directly to mathematical syntax (x \in blah, for
> Latex ppl).
> 
> Does this already exist in a syntax extension?

I'm guessing that there will be ambiguity because you're wanting to
add yet another meaning to the reserved word 'in'.

However I'm not sure why you don't just use 'List.mem', or even:

  let mem = List.mem ;;

  mem 1 [1;2;3]

Did I miss something about how the Python syntax works?

Rich.

-- 
Richard Jones
Red Hat


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-26  7:41   ` Richard Jones
@ 2008-04-26  7:53     ` Till Crueger
  2008-04-26 21:32       ` Arthur Chan
  2008-04-27 17:44       ` David Teller
  0 siblings, 2 replies; 29+ messages in thread
From: Till Crueger @ 2008-04-26  7:53 UTC (permalink / raw)
  To: Richard Jones, Arthur Chan; +Cc: Caml, David Teller

On Sat, 26 Apr 2008 09:41:57 +0200, Richard Jones <rich@annexia.org> wrote:

> I'm guessing that there will be ambiguity because you're wanting to
> add yet another meaning to the reserved word 'in'.
>
> However I'm not sure why you don't just use 'List.mem', or even:
>
>   let mem = List.mem ;;
>
>   mem 1 [1;2;3]

Since I am reading the "Haskell School of expressions" right now (to  
become better at functional Programming, not to leave my favourite  
language :)) I am starting to like the way you can turn any function into  
an infix operator by using quotes. Wouldn't it be possible to have  
something similar to this in OCaml? I don't think there is an easy way to  
do this yet, since I didn't find anything on this topic.

I am posting this in this thread, because this would allow us to write the  
above more elegantly as:
1 `mem` [1;2;3], which is close to what was originally proposed.

What do you think of this?

bye,
   Till


-- 
There once was a man from the sticks
Who liked to compose limericks.
But he failed at the sport,
For he wrote 'em too short.


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-26  7:53     ` Till Crueger
@ 2008-04-26 21:32       ` Arthur Chan
  2008-04-27  6:58         ` Andrej Bauer
  2008-04-27 17:41         ` [Caml-list] " David Teller
  2008-04-27 17:44       ` David Teller
  1 sibling, 2 replies; 29+ messages in thread
From: Arthur Chan @ 2008-04-26 21:32 UTC (permalink / raw)
  To: Till Crueger; +Cc: Richard Jones, Caml, David Teller

[-- Attachment #1: Type: text/plain, Size: 2571 bytes --]

As Till Crueger suggested, sometimes the infix syntax makes more sense.
More than that, one of the intents of the original ML language was to create
a language that was clear in its intents and *provably correct* (at least
that was what I was taught in school.  ocaml apparently isn't completely
provably correct but the functional parts of it are).  That said, there are
some of us who feel that that the python infix syntax is clearer, and as it
corresponds more directly to the mathematical notation, it is just as
provably correct as the List.mem notation is.  If reusing "in" is a big
deal, then maybe we could do "in_list" or "inlist"?  That'd be more
type-safe too.

The python syntax goes further than just the "in" bit, in fact.  They can do
list comprehensions like [for x in blah if f(x)].  Now every functional guru
will recognize this immediately as the bastardization of List.filter.  While
it'd be nice to have that, I come across List.filter much less than
List.exists/mem.

Whatever....  it's just a minor quibble, but this thread was about syntax
extensions, after all.




On Sat, Apr 26, 2008 at 12:53 AM, Till Crueger <
crueger@informatik.uni-bonn.de> wrote:

> On Sat, 26 Apr 2008 09:41:57 +0200, Richard Jones <rich@annexia.org>
> wrote:
>
>  I'm guessing that there will be ambiguity because you're wanting to
> > add yet another meaning to the reserved word 'in'.
> >
> > However I'm not sure why you don't just use 'List.mem', or even:
> >
> >  let mem = List.mem ;;
> >
> >  mem 1 [1;2;3]
> >
>
> Since I am reading the "Haskell School of expressions" right now (to
> become better at functional Programming, not to leave my favourite language
> :)) I am starting to like the way you can turn any function into an infix
> operator by using quotes. Wouldn't it be possible to have something similar
> to this in OCaml? I don't think there is an easy way to do this yet, since I
> didn't find anything on this topic.
>
> I am posting this in this thread, because this would allow us to write the
> above more elegantly as:
> 1 `mem` [1;2;3], which is close to what was originally proposed.
>
> What do you think of this?
>
> bye,
>  Till
>
>
> --
> There once was a man from the sticks
> Who liked to compose limericks.
> But he failed at the sport,
> For he wrote 'em too short.
>



-- 
-----------------------------------------------------------------------
(\__/)
(='.'=)This is Bunny. Copy and paste Bunny into your
(")_(")signature to help him gain world domination.
------------------------------------------------------------------------

[-- Attachment #2: Type: text/html, Size: 3333 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-26 21:32       ` Arthur Chan
@ 2008-04-27  6:58         ` Andrej Bauer
  2008-04-27 14:14           ` Christopher L Conway
  2008-04-27 17:41         ` [Caml-list] " David Teller
  1 sibling, 1 reply; 29+ messages in thread
From: Andrej Bauer @ 2008-04-27  6:58 UTC (permalink / raw)
  To: Caml

Arthur Chan wrote:
> That
> said, there are some of us who feel that that the python infix syntax is
> clearer, and as it corresponds more directly to the mathematical
> notation, it is just as provably correct as the List.mem notation is. 
> If reusing "in" is a big deal, then maybe we could do "in_list" or
> "inlist"?  That'd be more type-safe too.

Just a small correction, if you will alow me. When we speak of
correctness of a programming language we do not say that "syntax is
provably correct" but rather that the "implementation is correct".

For example, we could say "Ocaml has a correct compiler" in the sense
that type-safe programs don't explode (which is false), or "functional
core of Ocaml has correct operational semantics" with respect to
standard domain-theoretic denotational semantics. But we do not say "the
mem syntax is provably correct".

Actually, the whole phrase "provably correct" is often misused in
computer science, at least the way I understand it. If you prove
something then it is "proved correct", while a thing is "provably
correct" if we _could_ prove it correct. Perhaps a native speaker of
English can clarify this point.

> The python syntax goes further than just the "in" bit, in fact.  They
> can do list comprehensions like [for x in blah if f(x)].  Now every
> functional guru will recognize this immediately as the bastardization of
> List.filter.  While it'd be nice to have that, I come across List.filter
> much less than List.exists/mem.

I rather like the Python comprehension syntax, as well as Haskell's. I
also really like Haskell's infix notation x `op` y.

> Whatever....  it's just a minor quibble, but this thread was about
> syntax extensions, after all.

Isn't everything on this list a minor quibble? ;-)

Best regards,

Andrej


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSR] Standard syntax extensions ?
  2008-04-27  6:58         ` Andrej Bauer
@ 2008-04-27 14:14           ` Christopher L Conway
  0 siblings, 0 replies; 29+ messages in thread
From: Christopher L Conway @ 2008-04-27 14:14 UTC (permalink / raw)
  To: caml-list

Andrej Bauer <Andrej.Bauer <at> andrej.com> writes:
> Arthur Chan wrote:
> > That
> > said, there are some of us who feel that that the python infix syntax is
> > clearer, and as it corresponds more directly to the mathematical
> > notation, it is just as provably correct as the List.mem notation is. 
> > If reusing "in" is a big deal, then maybe we could do "in_list" or
> > "inlist"?  That'd be more type-safe too.
> 
> Just a small correction, if you will alow me. When we speak of
> correctness of a programming language we do not say that "syntax is
> provably correct" but rather that the "implementation is correct".

I think what Arthur meant by "provably correct" was "has well-defined semantics,
aiding proofs of correctness."

> Actually, the whole phrase "provably correct" is often misused in
> computer science, at least the way I understand it. If you prove
> something then it is "proved correct", while a thing is "provably
> correct" if we _could_ prove it correct. Perhaps a native speaker of
> English can clarify this point.

You have a point, from a prescriptive point of view. But in the common usage
"provable" and "proved" are sometimes interchanged. Most computer scientists
aren't Platonists: "provable" means "I could describe the proof for you, step by
step, if you like, but let's save some time by skipping it." Saying a claim is
"provable" without working out the proof begs the question.

> Isn't everything on this list a minor quibble? 

Happy quibbling,
Chris




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-26 21:32       ` Arthur Chan
  2008-04-27  6:58         ` Andrej Bauer
@ 2008-04-27 17:41         ` David Teller
  1 sibling, 0 replies; 29+ messages in thread
From: David Teller @ 2008-04-27 17:41 UTC (permalink / raw)
  To: Arthur Chan; +Cc: Till Crueger, Richard Jones, Caml

We can do that in OCaml, actually. I've seen at least three versions of
this in the Net, one of them by me. Plus it also works with streams,
arrays, etc.

Cheers,
 David
On Sat, 2008-04-26 at 14:32 -0700, Arthur Chan wrote:
> The python syntax goes further than just the "in" bit, in fact.  They
> can do list comprehensions like [for x in blah if f(x)].  Now every
> functional guru will recognize this immediately as the bastardization
> of List.filter.  While it'd be nice to have that, I come across
> List.filter much less than List.exists/mem.
> 
> Whatever....  it's just a minor quibble, but this thread was about
> syntax extensions, after all.

-- 
David Teller
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-26  7:53     ` Till Crueger
  2008-04-26 21:32       ` Arthur Chan
@ 2008-04-27 17:44       ` David Teller
  1 sibling, 0 replies; 29+ messages in thread
From: David Teller @ 2008-04-27 17:44 UTC (permalink / raw)
  To: Till Crueger; +Cc: Richard Jones, Arthur Chan, Caml

I think this would be useful. However, you can already do it in a
slightly more complex fashion.

>From the top of my mind, with

let ( /* ) f g = f g
let ( */ ) f g x = g f x

you can achieve

1 /* mem */ [1;2;3]

with the added bonus that a C programmer will never be able to read your
code :)

Cheers,
 David

On Sat, 2008-04-26 at 09:53 +0200, Till Crueger wrote:
> I am posting this in this thread, because this would allow us to write the  
> above more elegantly as:
> 1 `mem` [1;2;3], which is close to what was originally proposed.
> 
> What do you think of this?
> 
> bye,
>    Till
> 
> 
-- 
David Teller
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Caml-list] [OSR] Standard syntax extensions ?
  2008-04-25  8:22   ` Richard Jones
@ 2008-05-01  7:45     ` Richard Jones
  0 siblings, 0 replies; 29+ messages in thread
From: Richard Jones @ 2008-05-01  7:45 UTC (permalink / raw)
  To: caml-list


For the record, here's a better version by bluestorm:

  http://bluestorm.info/camlp4/pa_matches.ml.html

Rich.

-- 
Richard Jones
Red Hat


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2008-05-01  7:46 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-24 15:49 [OSR] Standard syntax extensions ? David Teller
2008-04-24 15:52 ` [Caml-list] " John Whitington
2008-04-25  8:22   ` Richard Jones
2008-05-01  7:45     ` Richard Jones
2008-04-24 16:16 ` [Caml-list] [OSR] Standard syntax extensions ? - voting Stefano Zacchiroli
2008-04-25 15:15   ` David Teller
2008-04-26  0:16     ` Stefano Zacchiroli
2008-04-24 16:41 ` [Caml-list] [OSR] Standard syntax extensions ? Martin Jambon
2008-04-24 17:02   ` Jon Harrop
2008-04-24 20:53     ` Berke Durak
2008-04-25  8:24       ` Richard Jones
2008-04-25 16:59         ` Berke Durak
2008-04-25 17:31           ` Gerd Stolpmann
2008-04-25 17:38           ` Richard Jones
2008-04-25 10:33       ` Andrej Bauer
2008-04-25 15:32     ` David Teller
2008-04-24 17:05 ` Dario Teixeira
2008-04-25 13:57   ` Peng Zang
2008-04-25 15:04     ` David Teller
2008-04-25 16:11       ` Peng Zang
2008-04-25 20:37 ` Arthur Chan
2008-04-26  7:41   ` Richard Jones
2008-04-26  7:53     ` Till Crueger
2008-04-26 21:32       ` Arthur Chan
2008-04-27  6:58         ` Andrej Bauer
2008-04-27 14:14           ` Christopher L Conway
2008-04-27 17:41         ` [Caml-list] " David Teller
2008-04-27 17:44       ` David Teller
2008-04-25 22:25 ` Mike Lin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).