<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6374583985636407395.post6065577597713247493..comments</id><updated>2011-09-19T03:29:53.671-07:00</updated><category term='user_group'/><category term='scala'/><category term='PL research'/><category term='scala-blogs.org'/><category term='actors'/><category term='tutorial'/><category term='monad'/><category term='teaser'/><category term='community'/><category term='XML'/><category term='parsing'/><category term='new release'/><category term='reified types'/><category term='meta-programming'/><category term='pdx'/><category term='lift'/><category term='links'/><category term='sample'/><category term='mapreduce'/><category term='hadoop'/><category term='scala static dynamic'/><category term='comet'/><category term='user group'/><category term='osgi'/><category term='manifests'/><category term='smr'/><category term='combinators'/><category term='brisbane'/><category term='official'/><category term='type erasure'/><category term='twitter'/><category term='portland'/><category term='typechecking'/><category term='project euler'/><category term='class'/><category term='gdata'/><category term='variable binding'/><category term='october'/><category term='release'/><category term='sxr'/><category term='boston'/><category term='melbourne'/><category term='tool:maven'/><title type='text'>Comments on Scala Blog: Manifests: Reified Types</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.scala-blogs.org/feeds/6065577597713247493/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html'/><author><name>Steve Jenson</name><uri>http://www.blogger.com/profile/09686593839106107926</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-z-C5VW1Iqcc/TssXb0xNUWI/AAAAAAAAAYU/9HTuwKzKAGo/s220/stevej_ded_profile-1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-829144360763195477</id><published>2011-09-19T03:29:53.671-07:00</published><updated>2011-09-19T03:29:53.671-07:00</updated><title type='text'>your example is great, it helped more than anythin...</title><content type='html'>your example is great, it helped more than anything else&lt;a href="http://custom-essay.ws/custom_reserch_paper.php" rel="nofollow"&gt;buy research papers&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/829144360763195477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/829144360763195477'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html?showComment=1316428193671#c829144360763195477' title=''/><author><name>alia</name><uri>http://www.blogger.com/profile/03163304952115153691</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-6065577597713247493' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/6065577597713247493' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1760819433'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-8924919732826326108</id><published>2011-01-31T20:12:56.125-08:00</published><updated>2011-01-31T20:12:56.125-08:00</updated><title type='text'>Richard:

That&amp;#39;s a very neat trick! I&amp;#39;m im...</title><content type='html'>Richard:&lt;br /&gt;&lt;br /&gt;That&amp;#39;s a very neat trick! I&amp;#39;m impressed. The downsides are that you can&amp;#39;t retrofit others&amp;#39; generic classes with type parameters, there&amp;#39;s no way to guarantee such a class is instantiated in such a reified manner, and you can&amp;#39;t propagate a requirement that a generic type be reified up the call stack.&lt;br /&gt;&lt;br /&gt;To answer your question though: Scala can compile multiple specialized implementations of a class. Look at Scala&amp;#39;s @specialized annotation.&lt;br /&gt;&lt;br /&gt;--j</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/8924919732826326108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/8924919732826326108'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html?showComment=1296533576125#c8924919732826326108' title=''/><author><name>Jorge Ortiz</name><uri>http://www.blogger.com/profile/14454965475839432618</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-6065577597713247493' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/6065577597713247493' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-139858654'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-6108353591666819835</id><published>2011-01-31T18:37:22.930-08:00</published><updated>2011-01-31T18:37:22.930-08:00</updated><title type='text'>Actually, you can obtain compile time information ...</title><content type='html'>Actually, you can obtain compile time information at runtime with Java, overcoming type erasure.&lt;br /&gt;&lt;br /&gt;This is possible if you employ anonymous classes. It&amp;#39;s a dirty trick, in fact, but it can be done. See my article about this:&lt;br /&gt;http://www.jquantlib.org/index.php/Using_TypeTokens_to_retrieve_generic_parameters&lt;br /&gt;&lt;br /&gt;So, once ...&lt;br /&gt;&lt;br /&gt;1. it is possible to keep type information at runtime (as I explained in my article)&lt;br /&gt;&lt;br /&gt;2. scalac is a compiler which can potentially &amp;quot;implement it right&amp;quot;, creating all data structures needed at runtime when RTTI is needed (and eventually not needing at all any trick like I explained),&lt;br /&gt;&lt;br /&gt;...my question is:&lt;br /&gt;&lt;br /&gt;Why scalac is not able to produce multiple &amp;quot;incarnations&amp;quot; of a class, pretty much what C++ templates do?&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;br /&gt;Richard Gomes&lt;br /&gt;http://www.jquantlib.org/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/6108353591666819835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/6108353591666819835'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html?showComment=1296527842930#c6108353591666819835' title=''/><author><name>Richard</name><uri>https://me.yahoo.com/a/aYbi2EsI3fJfNaIRjjbbUSxoR.FNFKs-</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/openid16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-6065577597713247493' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/6065577597713247493' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1648771694'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-4173558487118225125</id><published>2008-12-16T20:48:00.000-08:00</published><updated>2008-12-16T20:48:00.000-08:00</updated><title type='text'>Hi Jorge,&lt;br&gt;&lt;br&gt;Yes, I agree that .NET got it rig...</title><content type='html'>Hi Jorge,&lt;BR/&gt;&lt;BR/&gt;Yes, I agree that .NET got it right in that respect.&lt;BR/&gt;&lt;BR/&gt;I would also like to see a compiler plugin for that. In fact, I wanted to work on one, but time (or lack thereof) is the issue as usual.&lt;BR/&gt;&lt;BR/&gt;Yes, I am quite interested to see how those efforts turn out.&lt;BR/&gt;&lt;BR/&gt;By the way, two related things that are interesting are the -optimise flag for scalac and scalar replacement for HotSpot. I intend to do some tests with the former, and I've done some with the latter:&lt;BR/&gt;&lt;BR/&gt;http://blog.juma.me.uk/2008/12/17/objects-with-no-allocation-overhead/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/4173558487118225125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/4173558487118225125'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html?showComment=1229489280000#c4173558487118225125' title=''/><author><name>Ismael Juma</name><uri>http://www.blogger.com/profile/17398483226873559286</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-6065577597713247493' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/6065577597713247493' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-461114199'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-1834743983478900293</id><published>2008-12-03T07:05:00.000-08:00</published><updated>2008-12-03T07:05:00.000-08:00</updated><title type='text'>Hi Ismael,&lt;br&gt;&lt;br&gt;Yup, there are lots of pitfalls ...</title><content type='html'>Hi Ismael,&lt;BR/&gt;&lt;BR/&gt;Yup, there are lots of pitfalls on the JVM. Unfortunately this is another area where C# "got it right".&lt;BR/&gt;&lt;BR/&gt;As you explore in your blog post, this can be remedied with some compiler hacking. It'd be interesting to see an open source compiler plugin that produced specialized generic functions for use with primitive collections.&lt;BR/&gt;&lt;BR/&gt;And thanks for the links! I wasn't aware of those efforts, and they certainly are interesting.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/1834743983478900293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/1834743983478900293'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html?showComment=1228316700000#c1834743983478900293' title=''/><author><name>Jorge Ortiz</name><uri>http://www.blogger.com/profile/14454965475839432618</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-6065577597713247493' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/6065577597713247493' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-139858654'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-4667562591507507760</id><published>2008-12-03T02:42:00.000-08:00</published><updated>2008-12-03T02:42:00.000-08:00</updated><title type='text'>Hi Jorge,&lt;br&gt;&lt;br&gt;Just be careful not to use anonym...</title><content type='html'>Hi Jorge,&lt;BR/&gt;&lt;BR/&gt;Just be careful not to use anonymous functions to work with the primitive collections or the results might not be what you &lt;A HREF="http://blog.juma.me.uk/2008/09/15/efficient-scala-with-primitive-collections/" REL="nofollow"&gt;expect&lt;/A&gt;.&lt;BR/&gt;&lt;BR/&gt;In terms of generic specialisations, the following links are interesting:&lt;BR/&gt;&lt;BR/&gt;https://lampsvn.epfl.ch/trac/scala/changeset/16665&lt;BR/&gt;&lt;BR/&gt;https://lampsvn.epfl.ch/trac/scala/wiki/AnnotatedTypeParams&lt;BR/&gt;&lt;BR/&gt;Ismael</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/4667562591507507760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/6065577597713247493/comments/default/4667562591507507760'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html?showComment=1228300920000#c4667562591507507760' title=''/><author><name>Ismael Juma</name><uri>http://www.blogger.com/profile/17398483226873559286</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/10/manifests-reified-types.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-6065577597713247493' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/6065577597713247493' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-461114199'/></entry></feed>
