Topic: Mojo is da bomb!!! (Was: Zero Unnecessary Temporary Objects: A Revolution)


Author: news_comp.std.c++_expires-2002-10-01@nmhq.net (Niklas Matthies)
Date: Wed, 16 Oct 2002 16:08:53 +0000 (UTC)
Raw View
On Wed, 16 Oct 2002 12:02:56 +0000 (UTC), "Edward Diener" <eldiener@earthlink.net> wrote:
>  OK, your MOJO is then a performance enhancement rather than a way to
>  add functionality to C++ as I understand it.

It's a tiny bit more than that. It saves you from writing "handle"
classes for objects that cannot be copied, and possibly worrying about
reference counting etc.

-- Niklas Matthies
--
Save Farscape - get informed and involved: http://farscape.wdsection.com/
Together, we can get Farscape back on air. Crackers *do* matter.

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: andrei@cs.washington.edu ("Andrei Alexandrescu")
Date: Wed, 16 Oct 2002 17:32:15 +0000 (UTC)
Raw View
"news user" <news@sisyphus.news.be.easynet.net> wrote in message
news:3dad12c8$0$30456$afc38c87@sisyphus.news.be.easynet.net...
> comp.std.c++ is moderated.  Well.
> But when a guy like Andrei Alexanderscu ask for volountaries for a review
of
> a new solution, on which criteria do the moderator reject someone ?
> If only guru can participate, I think it's not good.  C++ is more used by
> "normal" programmer than guru...

Sorry for the off-topic post. Just to set the record clear:

* Given the interest in move construction in standard C++, I believe my
posts here were on-topic

* I sent the article to *all* (87) of those who sent me email asking for it.
The csc++ moderators did not have any participation to this process.


Andrei


---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: google_mail@aristo.phpwebhosting.com (Corey Lubin)
Date: Wed, 16 Oct 2002 17:37:40 +0000 (UTC)
Raw View
===================================== MODERATOR'S COMMENT:

It's not clear that this is related to standardization.  This seems to
be
moving more toward issues of C++ programming technique, which
are more appropriate to comp.lang.c++.moderated.  I suggest that
further discussion of this topic move over to that newsgroup, except
for issues that are clearly standards-related.


===================================== END OF MODERATOR'S COMMENT
What are the cons to using "Mojo"? I can imagine two similar methods of
accomplishing what you claim, but they both introduce their own small
disadvantages. Are there any usage limitations to Mojo? Any unexpected
behaviour?

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: NOSPAMsjhowe@dial.pipex.com ("Stephen Howe")
Date: Thu, 17 Oct 2002 00:11:21 +0000 (UTC)
Raw View
> It's not clear that this is related to standardization.  This seems to
> be
> moving more toward issues of C++ programming technique, which
> are more appropriate to comp.lang.c++.moderated.  I suggest that
> further discussion of this topic move over to that newsgroup, except
> for issues that are clearly standards-related.

Why? All of Stroustrup's guidelines of possible new features to C++
mentioned in "Design and Evolution of C++" are relevant to this such as how
well MOJO integrates with existing C++ features in the standard. It is
entirely relevant here.

Any new feature that is a candidate for the next standard is worth
discussing here.

Stephen Howe




---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: dave@boost-consulting.com (David Abrahams)
Date: Thu, 17 Oct 2002 15:02:28 +0000 (UTC)
Raw View
NOSPAMsjhowe@dial.pipex.com ("Stephen Howe") writes:

> > It's not clear that this is related to standardization.  This seems to
> > be
> > moving more toward issues of C++ programming technique, which
> > are more appropriate to comp.lang.c++.moderated.  I suggest that
> > further discussion of this topic move over to that newsgroup, except
> > for issues that are clearly standards-related.
>
> Why? All of Stroustrup's guidelines of possible new features to C++
> mentioned in "Design and Evolution of C++" are relevant to this such as how
> well MOJO integrates with existing C++ features in the standard. It is
> entirely relevant here.
>
> Any new feature that is a candidate for the next standard is worth
> discussing here.

But mojo is not a new feature; it's a programming technique.

--
                    David Abrahams
dave@boost-consulting.com * http://www.boost-consulting.com

Building C/C++ Extensions for Python: Dec 9-11, Austin, TX
http://www.enthought.com/training/building_extensions.html

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: K.Hagan@thermoteknix.co.uk ("Ken Hagan")
Date: Thu, 17 Oct 2002 16:38:30 +0000 (UTC)
Raw View
""Stephen Howe"" <NOSPAMsjhowe@dial.pipex.com> wrote...
>
> Any new feature that is a candidate for the next standard is worth
> discussing here.

Since it isn't even in the public domain yet, I think I have some
sympathy
with the moderator. In any case, anyone who is anyone is already
following
the debate in comp.lang.c++.moderated or gmane.comp.lib.boost.devel.
Multiple fora merely disrupt the discussion.


---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: andrei@cs.washington.edu ("Andrei Alexandrescu")
Date: Tue, 15 Oct 2002 23:41:45 +0000 (UTC)
Raw View
> Would you explain what, if any, are the advantages of your innovation
> outside of the space issues ? I am not trying to discourage you from
working
> on your idea and being innovative in general, but I do not understand what
> your innovation adds to the C++ language/library itself.

Mojo (this is the final name, stands for MOve of Joint Objects) is a
technique and a framework for eliminating unnecessary copying of
temporaries. It can eliminate copying 100%. The only condition is that
objects must be cheap to move. Mojo enables comfortable return by value of
large objects and creation of efficient, expressive operators.

Mojo also allows creating types with new interesting properties.

One of the nicest applicabilities of Mojo is in the generic containers area.
Mojo allows creating owning containers with well-defined semantics, a la
that mythical vector< auto_ptr<T> >. Also, Mojo allows efficient compound
containers such that vector< vector<string> > becomes a truly viable
efficient container.

Of course, the legendary YASLI, the one implementation of the STL that puts
all others on welfare, already uses Mojo for all of its containers. The
performance difference on certain compound container operations is in the
orders of magnitude.

The turnaround on the first round of reviews was fantastic. Now Mojo is
provable 100% standard-compliant. Grace to a cool idea by Dave Abrahams and
an important bug fix prompted by Rani Sharoni, Mojo now looks really slick.

Oh, and I almost forgot. I've been told to turn the marketing hype a notch
down.


Andrei the teasing one :o)

--
Now mojoed!  THE C++ Seminar: Oct. 28-30 in Vancouver, WA.
http://www.thecppseminar.com/



---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: eldiener@earthlink.net ("Edward Diener")
Date: Wed, 16 Oct 2002 12:02:56 +0000 (UTC)
Raw View
OK, your MOJO is then a performance enhancement rather than a way to add
functionality to C++ as I understand it. I have no problem with that but it
might be seen as less of a revolution than you think, especially for those
less interested in performance and more interested in functionality. Where
is MOJO to be found and with what compilers/implementations does it
currently work ?

BTW, I am glad you got your MOJO working ( that's a joke which you might be
too young to appreciate and has nothing to do with those godawful Mike Myers
movies ).

""Andrei Alexandrescu"" <andrei@cs.washington.edu> wrote in message
news:H41qoK.1y6s@beaver.cs.washington.edu...
> > Would you explain what, if any, are the advantages of your innovation
> > outside of the space issues ? I am not trying to discourage you from
> working
> > on your idea and being innovative in general, but I do not understand
what
> > your innovation adds to the C++ language/library itself.
>
> Mojo (this is the final name, stands for MOve of Joint Objects) is a
> technique and a framework for eliminating unnecessary copying of
> temporaries. It can eliminate copying 100%. The only condition is that
> objects must be cheap to move. Mojo enables comfortable return by value of
> large objects and creation of efficient, expressive operators.

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: tzvetanmi@yahoo.com ("Tzvetan Mikov")
Date: Wed, 16 Oct 2002 12:11:01 +0000 (UTC)
Raw View
===================================== MODERATOR'S COMMENT:
 This thread is drifting off-topic for comp.std.c++.
Please ensure that any followups are topical.




===================================== END OF MODERATOR'S COMMENT
""Andrei Alexandrescu"" <andrei@cs.washington.edu> wrote in message
news:H41qoK.1y6s@beaver.cs.washington.edu...
> Mojo (this is the final name, stands for MOve of Joint Objects) is a
> technique and a framework for eliminating unnecessary copying of
> temporaries. It can eliminate copying 100%. The only condition is that
> objects must be cheap to move. Mojo enables comfortable return by value of
> large objects and creation of efficient, expressive operators.

Aha, another Powerpuff Girls fan ! :-)

[...]
> The turnaround on the first round of reviews was fantastic. Now Mojo is
> provable 100% standard-compliant. Grace to a cool idea by Dave Abrahams
and
> an important bug fix prompted by Rani Sharoni, Mojo now looks really
slick.

So, when can we see it ?!? Waiting for two months will kill me.

-tzvetan


---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: werner.salomon@kratzer-automation.de (Werner Salomon)
Date: Wed, 16 Oct 2002 15:08:21 +0000 (UTC)
Raw View
andrei@cs.washington.edu ("Andrei Alexandrescu") wrote in message news:<H41qoK.1y6s@beaver.cs.washington.edu>...
> Mojo (this is the final name, stands for MOve of Joint Objects) is a
> technique and a framework for eliminating unnecessary copying of
> temporaries. It can eliminate copying 100%. The only condition is that
> objects must be cheap to move. Mojo enables comfortable return by value of
> large objects and creation of efficient, expressive operators.
>
> [...]
> Oh, and I almost forgot. I've been told to turn the marketing hype a notch
> down.
>
> Andrei the teasing one :o)
>
> --
> Now mojoed!  THE C++ Seminar: Oct. 28-30 in Vancouver, WA.
> http://www.thecppseminar.com/
Hi Andrei,

it seems to be a great thing for the c++ community. How can I benefit
from Your innovation, if I can't partake in the 'the cpp seminar',
because of distance, time and costs?

Greetings
Werner (very curious how Mojo works)

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]





Author: news@sisyphus.news.be.easynet.net (news user)
Date: Wed, 16 Oct 2002 16:08:19 +0000 (UTC)
Raw View
Hi,

comp.std.c++ is moderated.  Well.
But when a guy like Andrei Alexanderscu ask for volountaries for a review of
a new solution, on which criteria do the moderator reject someone ?
If only guru can participate, I think it's not good.  C++ is more used by
"normal" programmer than guru...

Have a good Day.
Stephane Bronsart


""Andrei Alexandrescu"" <andrei@cs.washington.edu> wrote in message
news:H41qoK.1y6s@beaver.cs.washington.edu...
> > Would you explain what, if any, are the advantages of your innovation
> > outside of the space issues ? I am not trying to discourage you from
> working
> > on your idea and being innovative in general, but I do not understand
what
> > your innovation adds to the C++ language/library itself.
>
> Mojo (this is the final name, stands for MOve of Joint Objects) is a
> technique and a framework for eliminating unnecessary copying of
> temporaries. It can eliminate copying 100%. The only condition is that
> objects must be cheap to move. Mojo enables comfortable return by value of
> large objects and creation of efficient, expressive operators.
>
> Mojo also allows creating types with new interesting properties.
>
> One of the nicest applicabilities of Mojo is in the generic containers
area.
> Mojo allows creating owning containers with well-defined semantics, a la
> that mythical vector< auto_ptr<T> >. Also, Mojo allows efficient compound
> containers such that vector< vector<string> > becomes a truly viable
> efficient container.
>
> Of course, the legendary YASLI, the one implementation of the STL that
puts
> all others on welfare, already uses Mojo for all of its containers. The
> performance difference on certain compound container operations is in the
> orders of magnitude.
>
> The turnaround on the first round of reviews was fantastic. Now Mojo is
> provable 100% standard-compliant. Grace to a cool idea by Dave Abrahams
and
> an important bug fix prompted by Rani Sharoni, Mojo now looks really
slick.
>
> Oh, and I almost forgot. I've been told to turn the marketing hype a notch
> down.
>
>
> Andrei the teasing one :o)
>
> --
> Now mojoed!  THE C++ Seminar: Oct. 28-30 in Vancouver, WA.
> http://www.thecppseminar.com/
>
>
>
> ---
> [ comp.std.c++ is moderated.  To submit articles, try just posting with ]
> [ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
> [              --- Please see the FAQ before posting. ---               ]
> [ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]
>


---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]