<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
>

  <channel rdf:about="http://lwn.net/headlines/Comments">
    <title>LWN.net comments</title>
    <link>http://lwn.net/Comments/</link>
    <description>
This feed contains the text of all comments posted to
the LWN.net site.

    </description>

    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>2</syn:updateFrequency>
    <items>
      <rdf:Seq>
	<rdf:li resource="http://lwn.net/Articles/551832/rss" />
	<rdf:li resource="http://lwn.net/Articles/551831/rss" />
	<rdf:li resource="http://lwn.net/Articles/551830/rss" />
	<rdf:li resource="http://lwn.net/Articles/551829/rss" />
	<rdf:li resource="http://lwn.net/Articles/551828/rss" />
	<rdf:li resource="http://lwn.net/Articles/551827/rss" />
	<rdf:li resource="http://lwn.net/Articles/551820/rss" />
	<rdf:li resource="http://lwn.net/Articles/551825/rss" />
	<rdf:li resource="http://lwn.net/Articles/551819/rss" />
	<rdf:li resource="http://lwn.net/Articles/551824/rss" />
	<rdf:li resource="http://lwn.net/Articles/551822/rss" />
	<rdf:li resource="http://lwn.net/Articles/551823/rss" />
	<rdf:li resource="http://lwn.net/Articles/551821/rss" />
	<rdf:li resource="http://lwn.net/Articles/551817/rss" />
	<rdf:li resource="http://lwn.net/Articles/551814/rss" />
	<rdf:li resource="http://lwn.net/Articles/551812/rss" />
	<rdf:li resource="http://lwn.net/Articles/551813/rss" />
	<rdf:li resource="http://lwn.net/Articles/551811/rss" />
	<rdf:li resource="http://lwn.net/Articles/551809/rss" />
	<rdf:li resource="http://lwn.net/Articles/551810/rss" />
	<rdf:li resource="http://lwn.net/Articles/551808/rss" />
	<rdf:li resource="http://lwn.net/Articles/551807/rss" />
	<rdf:li resource="http://lwn.net/Articles/551798/rss" />
	<rdf:li resource="http://lwn.net/Articles/551782/rss" />
	<rdf:li resource="http://lwn.net/Articles/551762/rss" />
	<rdf:li resource="http://lwn.net/Articles/551760/rss" />
	<rdf:li resource="http://lwn.net/Articles/551759/rss" />
	<rdf:li resource="http://lwn.net/Articles/551758/rss" />
	<rdf:li resource="http://lwn.net/Articles/551757/rss" />
	<rdf:li resource="http://lwn.net/Articles/551755/rss" />
	<rdf:li resource="http://lwn.net/Articles/551754/rss" />
	<rdf:li resource="http://lwn.net/Articles/551753/rss" />
	<rdf:li resource="http://lwn.net/Articles/551750/rss" />
	<rdf:li resource="http://lwn.net/Articles/551752/rss" />
	<rdf:li resource="http://lwn.net/Articles/551751/rss" />
	<rdf:li resource="http://lwn.net/Articles/551748/rss" />
	<rdf:li resource="http://lwn.net/Articles/551744/rss" />
	<rdf:li resource="http://lwn.net/Articles/551746/rss" />
	<rdf:li resource="http://lwn.net/Articles/551745/rss" />
	<rdf:li resource="http://lwn.net/Articles/551740/rss" />
	<rdf:li resource="http://lwn.net/Articles/551737/rss" />
	<rdf:li resource="http://lwn.net/Articles/551739/rss" />
	<rdf:li resource="http://lwn.net/Articles/551738/rss" />
	<rdf:li resource="http://lwn.net/Articles/551736/rss" />
	<rdf:li resource="http://lwn.net/Articles/551735/rss" />
	<rdf:li resource="http://lwn.net/Articles/551734/rss" />
	<rdf:li resource="http://lwn.net/Articles/551732/rss" />
	<rdf:li resource="http://lwn.net/Articles/551729/rss" />
	<rdf:li resource="http://lwn.net/Articles/551730/rss" />
	<rdf:li resource="http://lwn.net/Articles/551728/rss" />
      
      </rdf:Seq>
    </items>

  </channel>
    <item rdf:about="http://lwn.net/Articles/551832/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551832/rss</link>
      <dc:date>2013-05-25T00:49:31+00:00</dc:date>
      <dc:creator>dlang</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Every replacement system performs better when it's first introduced. It's simple and doesn't yet take into account all the real-world corner cases that users run into.&lt;br&gt;
&lt;p&gt;
the question is how much do things slow down by the time they are really ready for users. Is the result really still a lot faster than the old system (which may have picked up some optimizations along the way)&lt;br&gt;
&lt;p&gt;
There's also the question of if the difference in speed matters.&lt;br&gt;
&lt;p&gt;
shaving 0.1 sec off of a one hour job makes no difference, even if it saves 99% of the time that one particular function takes.&lt;br&gt;
&lt;p&gt;
in some cases, it's comparing apples to oranges, for example, see the raspberry pi post where they introduce wayland for the pi and crow about how much faster it is. It's faster because the wayland implementation does the acceleration in the GPU while the X implementation does it in the ARM core. If you were to update the X implementation the same way, the difference would shrink drastically.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551831/rss">
      <title>Debian GNU/Hurd 2013 released</title>
      <link>http://lwn.net/Articles/551831/rss</link>
      <dc:date>2013-05-25T00:30:07+00:00</dc:date>
      <dc:creator>marcH</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; I really don't care what kernel it uses. And that has little to do with the licensing [...] It's about quality and consistency. GNU makes the best userspace, IMO.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
Wait, let me guess... then you must belong to this strange species called... &quot;users&quot;? :-)&lt;br&gt;
&lt;p&gt;
&lt;p&gt;
Until a few years ago there was still a &quot;risk&quot; that non-geeks confuse Linux and GNU userspace. Android/Linux is so different and now so popular that I think this risk is mostly gone.&lt;br&gt;
&lt;p&gt;
So, does Richard feel better now? Maybe not...&lt;br&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551830/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551830/rss</link>
      <dc:date>2013-05-25T00:21:13+00:00</dc:date>
      <dc:creator>ras</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; P.S. I disagree with you about the Itanium. It wasn't a good design. They took far more silicon than other processors and ended up being less productive with it.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
I wasn't commenting whether it was a good design.  I don't know, as I haven't used it.  I was just saying Itanium marked the point when Intel went back to sticking to the knitting - in other words trying to design a new architecture whose sole goal was to run programs fast.  If you say they failed despite having that explicit goal then that's a shame.&lt;br&gt;
&lt;p&gt;
As I recall the Itanium tried to improve it's speed in a RISC like way - ie by keeping things simple on the hardware side and offloading decisions to the compiler.  In the Itanium's case those decisions were about parallelism.&lt;br&gt;
&lt;p&gt;
I think it's pretty clear now tuning the machine language to whatever hardware is available at the time is a mistake when you are going for speed.  It might work when the hardware is first designed, but then the transistor budget doubles and all those neat optimisations don't much so much sense anymore, but you are welded to them because there are hardwired into the instruction set.  Instead the route we have gone down is to implement a virtual CPU, rather like the JVM.  The real CPU then compiles the instruction set on the fly into something that can be run fast with todays transistor budget.  With tomorrows transistor budget it might be complied into something different.&lt;br&gt;
&lt;p&gt;
The x86 instruction set is actually good pretty in this scenario - better than ARM.  It's compact, and each instruction gives lots of opportunities to execute bits of it in parallel.  If this is true, then Intel ending up with an architecture that can run fast is just dumb luck, as they weren't planning for it 30 years ago.  Now that I think about it, the VAX instruction set would probably be even better again.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551829/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551829/rss</link>
      <dc:date>2013-05-25T00:10:34+00:00</dc:date>
      <dc:creator>butlerm</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; Because it's still useful in many cases (e.g. between machines on the same LAN) to run remote X clients over an SSH tunnel.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
That is why you would dynamically load it - use a library derived from the X server code to draw into something like a Wayland frame buffer when local, and use the X wire protocol when using an X server over a network connection.  As long as you are on the same machine, a large class of X applications should run much faster, with a higher degree of security, and so on.&lt;br&gt;
&lt;p&gt;
Even without a compositor, this is arguably the way it should have been done from the beginning.  What is the point of protecting access to the frame buffer on a typical embedded system?  It just slows things down.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551828/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551828/rss</link>
      <dc:date>2013-05-24T23:50:41+00:00</dc:date>
      <dc:creator>dlang</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; 8086 actually. It was their way of extending the address space of the 8080 to 20 bits.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
That's right, I forgot about that. And IIRC, with the 286 they only expanded it to 24 bits&lt;br&gt;
&lt;p&gt;
but in any case, my point was that the dawn of the AMD64 chip is eons past the point where segmentation was introduced, failed, and was rejected&lt;br&gt;
&lt;p&gt;
P.S. I disagree with you about the Itanium. It wasn't a good design. They took far more silicon than other processors and ended up being less productive with it.&lt;br&gt;
&lt;p&gt;
In part, the speed increases were the cause of this failure. As the speed differences between memory and the CPU core get larger, having a compact instruction set where each instruction can do more, becomes more important, and for all it's warts, the x86 instructions do rate pretty well on the size/capability graph.&lt;br&gt;
&lt;p&gt;
but in part the programmers really should NOT have to change their programs to work well on a new CPU where the hardware designers have implemented things differently. By hiding such changes in the microcode, instructions that get used more can be further optimized, and ones that aren't can be emulated so they take less silicon. It's a useful layer of abstraction.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551827/rss">
      <title>How Google plans to rule the computing world through Chrome (GigaOM)</title>
      <link>http://lwn.net/Articles/551827/rss</link>
      <dc:date>2013-05-24T23:39:46+00:00</dc:date>
      <dc:creator>dlang</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
you have no more right to criticize them for using their language of choice than they have a right to criticize you for being 'old fashioned' and using your language of choice (be it C, Java, or whatever)&lt;br&gt;
&lt;p&gt;
or for you to criticize them for what type of shoes they wear (or don't as the case may be)&lt;br&gt;
&lt;p&gt;
If your favorite language falls out of favor, find another one that you like and learn it.&lt;br&gt;
&lt;p&gt;
No language has, or will, ever succeed in completely replacing the 'preceding' languages. There are still good jobs programming in Fortran and Cobol for crying out loud&lt;br&gt;
&lt;p&gt;
Trying to prevent other people from spending their programming time the way that they want to (or the way the people who pay the bills want to) borders on &quot;Evil&quot;&lt;br&gt;
&lt;p&gt;
You really don't want that sort of power to exist, because fads change and someday you will be in the minority and people will wish your language would just go away.&lt;br&gt;
&lt;p&gt;
&lt;p&gt;
Remember how Linus was told that he was wasting his time writing Linux? that &quot;everyone&quot; knew that monolithic kernels and Unix were obsolete? what if they _could_ have prevented him from continuing to work on it?&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551820/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551820/rss</link>
      <dc:date>2013-05-24T23:31:43+00:00</dc:date>
      <dc:creator>ras</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; segmentation on the x86 came about with the 80286 (or possibly even the 80186, I'm not sure) CPU.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
8086 actually.  It was their way of extending the address space of the 8080 to 20 bits.&lt;br&gt;
&lt;p&gt;
It was just a slightly more sophisticated take on the way CPU designers have gone about extending the range of addressable memory beyond the natural size of internal registers for eons.  It had the advantage you could use separate address spaces for both code and data, giving you 64K for each.  So by using a small amount of extra silicon they effectively doubled the amount of address space you had over simple &quot;page extension&quot; hack everybody else was doing.  Kudos to them.&lt;br&gt;
&lt;p&gt;
So you are saying it was the 80286 is where the rot set it.  In the 80286 they had enough silicon to give the programmer true isolation between processes.  They could of gone the 32 bits + page table route everybody else did, but no we got segmentation (without page tables instead) and retained 16 bit registers.  Why?  Well this was also the time the hardware designers had enough silicon to implement microcode - so they could become programmers to!  And they decided they could do task switching, ACL's and god know what else better than programmers, so they did.  In other words somehow they managed to forget their job was to provide hardware that ran programs quickly, and instead thought their job was to do operating system design.&lt;br&gt;
&lt;p&gt;
It was a right royal mess.  Fortunately for them the transition from DOS to Windows / OS2 (which is where the extra protections and address space matters) took a while, and by then the i386 was released.  It added 32 bits and paging, so we could ignore all that 16 bit segmentation rubbish and get on with life.  It turned out the transition to multitasking operating systems wasn't waiting on programmers figuring out had to do it (who would have thunk it?), but rather the price of the RAM needed to hold several tasks at once had to come down.&lt;br&gt;
&lt;p&gt;
People here defending the segmentation model should try writing for the 80286, which could only address 64K of code and 64K of data at any one time.  There was no reason for it.  The 68000 family had a much better memory model at the time, so it wasn't silicon constrains.  Well there would have been enough silicon if they hadn't devoted so much of it to creating their own operating system on a chip.&lt;br&gt;
&lt;p&gt;
Intel finally came to their senses with Itanium. With it they used all that extra silicon to do what hardware designers should be doing - make programs run fast.  Sadly it came along too late.&lt;br&gt;
&lt;p&gt;
Back to your point - the time line.  The 80286 was released in 1982.  The iAPX432 was meant to be released in 1981.  The 80286 was the fall back position.  As Wikipedia points out, this is a part of its history Intel strives to forget.  You will find no mention of the iAPX432 on their web site, for instance.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551825/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551825/rss</link>
      <dc:date>2013-05-24T22:59:41+00:00</dc:date>
      <dc:creator>rqosa</dc:creator>
      <description>
      &lt;p&gt;&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; Why wouldn't we just have Xlib or XCBlib or whatever dynamically load a library that implements X in process then, instead of engaging in relatively pointless IPC?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Because it's still useful in many cases (e.g. between machines on the same LAN) to run remote X clients over an SSH tunnel.&lt;/p&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551819/rss">
      <title>How Google plans to rule the computing world through Chrome (GigaOM)</title>
      <link>http://lwn.net/Articles/551819/rss</link>
      <dc:date>2013-05-24T22:48:46+00:00</dc:date>
      <dc:creator>smokeing</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; nobody is asking you to write or modify core chromebook code&lt;/font&gt;&lt;br&gt;
Yeah, thanks for clarification.&lt;br&gt;
&lt;p&gt;
But no, I do take an issue with proliferation of code written in JavaScript. I am, these very days, being furious at having to change jobs a second time in half a year, for the reason that the code I had to deal with was crying for one thing: total deletion, whilst my job was to fix it. I'm just giving up. Ok, it wasn't JavaScript, but my argument still stands.&lt;br&gt;
&lt;p&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; Being picky about what languages you use is perfectly fine&lt;/font&gt;&lt;br&gt;
I am being picky precisely with languages others use.&lt;br&gt;
&lt;p&gt;
Ten minutes spent necessarily daily in casual company of PHP/JS developers A and B gets me nervous and excited for all the wrong reasons, such that I seek an hour every other week to hang out with Erlang developers C and D. With A and B coming in numbers --and C and D just getting old and grumpy-- I feel somewhat of an endangered species myself.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551824/rss">
      <title>NetBSD 6.1</title>
      <link>http://lwn.net/Articles/551824/rss</link>
      <dc:date>2013-05-24T22:48:11+00:00</dc:date>
      <dc:creator>Cyberax</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Sure. But sometimes there ARE significant differences and it's interesting to check why.&lt;br&gt;
&lt;p&gt;
Besides, you're inconsistent with nix - his gripe is that Phoronix also uses complex tests that stress various parts of the system :)&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551822/rss">
      <title>NetBSD 6.1</title>
      <link>http://lwn.net/Articles/551822/rss</link>
      <dc:date>2013-05-24T22:43:56+00:00</dc:date>
      <dc:creator>lsl</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; You might also note, that they ALSO test pure CPU-bound tasks.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
Yep, they do. They use them to show that GNU Hurd is just as fast as Linux. Compute-bound numbercrunching software seems just the right stuff to measure performance differences between different kernels.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551823/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551823/rss</link>
      <dc:date>2013-05-24T22:41:07+00:00</dc:date>
      <dc:creator>rleigh</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&quot;Git is easy once you understand how it's built. It's just a chain of diffs linked by their SHA1 hashes - everything else stems from that.&quot;&lt;br&gt;
&lt;p&gt;
Sorry for the pedantry here, but the git model is the exact /opposite/ of a chain of diffs.  It is blobs, trees and commits.  From the chain of commits, deltas can be computed between the trees /if required/, but diffs are not part of the model.  RCS, CVS, Arch, etc. are all based around chains of diffs, and much of the power of git stems from rejecting this model, since it's extremely inefficient, and writing algorithms to work on it is conceptually much harder.  Internally, the git packfiles can deltify objects for space efficiency, but that's purely an internal implementation detail which the git user need not care about.&lt;br&gt;
&lt;p&gt;
&lt;p&gt;
Regards,&lt;br&gt;
Roger&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551821/rss">
      <title>An &quot;enum&quot; for Python 3</title>
      <link>http://lwn.net/Articles/551821/rss</link>
      <dc:date>2013-05-24T22:36:33+00:00</dc:date>
      <dc:creator>flewellyn</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Why do we want enums, instead of symbols?&lt;br&gt;
&lt;p&gt;
Perhaps being able to create a type which is a &quot;symbol class&quot;, where each of its members is a symbolic constant that evaluates to itself, would solve the issue?  Particularly if two symbols only compare equal if they are literally the same, i.e., the same symbol class member.  &lt;br&gt;
&lt;p&gt;
For instance:&lt;br&gt;
&lt;p&gt;
class Color(Symbol)&lt;br&gt;
    red&lt;br&gt;
    green&lt;br&gt;
    blue&lt;br&gt;
&lt;p&gt;
And then this would work:&lt;br&gt;
&lt;p&gt;
isinstance(Color.blue, Color)&lt;br&gt;
=&amp;gt;  True&lt;br&gt;
&lt;p&gt;
And this (for some pixel object):&lt;br&gt;
&lt;p&gt;
pixel.setColor(Color.blue)&lt;br&gt;
&lt;p&gt;
pixel.getColor() == Color.blue&lt;br&gt;
=&amp;gt; True&lt;br&gt;
&lt;p&gt;
But if you had this:&lt;br&gt;
&lt;p&gt;
class Animal(Symbol)&lt;br&gt;
    cat&lt;br&gt;
    dog&lt;br&gt;
    elephant&lt;br&gt;
&lt;p&gt;
Color.green == Animal.dog&lt;br&gt;
=&amp;gt;  False&lt;br&gt;
&lt;p&gt;
&lt;p&gt;
Seriously.  Enums are a hack for languages that don't have symbol types.  Why not do things RIGHT?&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551817/rss">
      <title>Password scheme</title>
      <link>http://lwn.net/Articles/551817/rss</link>
      <dc:date>2013-05-24T21:54:47+00:00</dc:date>
      <dc:creator>diederich</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Selecting at random four words from the /usr/share/dict/words on my box (which contains 99171 entries) gives you more than 64 bits of entropy.  At one billion tries per second, it will take up to 584 years to find the right combo.&lt;br&gt;
&lt;p&gt;
You did say 'reduce'; most people select passwords that have less entropy, and are possibly not as easy to remember.&lt;br&gt;
&lt;p&gt;
I'm not aware of any system that allows me to remember that many bits of entropy so easily.&lt;br&gt;
&lt;p&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551814/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551814/rss</link>
      <dc:date>2013-05-24T21:16:19+00:00</dc:date>
      <dc:creator>Cyberax</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
You typically need only the first 4-6 letters of the hash which is less than a typical revision number in SVN.&lt;br&gt;
&lt;p&gt;
Besides, hashes is the only natural way to represent a code revision in a truly distributed system. Everything else are just attempts to paper over the distributed nature and they leak at most inappropriate moments.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551812/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551812/rss</link>
      <dc:date>2013-05-24T21:15:24+00:00</dc:date>
      <dc:creator>rahulsundaram</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Your request for &quot;factual&quot; arguments is amusing.  Let's inject some facts for the first time in this conversation then:&lt;br&gt;
&lt;p&gt;
If was designed to be harder to use and wasn't more powerful, it wouldn't be the most popular dvcs. Would it?&lt;br&gt;
&lt;p&gt;
The real reason why it was more harder to use originally had nothing to do with geek credence but simply because it was designed by a kernel developer to satisfy his needs and as soon as it was usable enough for him, he handed it over to a different maintainer who has made it substantially more usable while retaining the performance and power advantage that git has always had over other tools.  &lt;br&gt;
&lt;p&gt;
Btw, bazaar is mostly unmaintained these days with Canonical pulling off its investment and it has thousands of open and unanswered bug reports last time I checked. Mercurial is a reasonable alternative though. &lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551813/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551813/rss</link>
      <dc:date>2013-05-24T21:12:06+00:00</dc:date>
      <dc:creator>Baylink</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Well, perhaps that's the problem.  &lt;br&gt;
&lt;p&gt;
I have the perception that one *must*, rather than merely &quot;may&quot; interact with git using those big long ugly hashes.  &lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551811/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551811/rss</link>
      <dc:date>2013-05-24T21:06:56+00:00</dc:date>
      <dc:creator>Cyberax</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Git is easy once you understand how it's built. It's just a chain of diffs linked by their SHA1 hashes - everything else stems from that.&lt;br&gt;
&lt;p&gt;
For example, merge is simply linking two hash chains. Fast-forward is just appending new diffs on top of a hash chain. Rebase is editing one or more diffs in the middle of a chain, which causes all the upstream SHA1 revisions to change. Etc.&lt;br&gt;
&lt;p&gt;
Git command line set, on the other hand, is atrocious.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551809/rss">
      <title>dedent</title>
      <link>http://lwn.net/Articles/551809/rss</link>
      <dc:date>2013-05-24T21:02:28+00:00</dc:date>
      <dc:creator>deunan_knute</dc:creator>
      <description>
      &lt;p&gt;
scala has a nice method called &lt;a href=&quot;http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.StringLike&quot;&gt;stripMargin&lt;/a&gt; which is similar to textwrap.dedent.  it strips leading whitespace from a triple-quoted string, up to and including a separator character (by default '|').  with the separator, you don't need to worry about 'common whitespace', which may be difficult to visually distinguish.  it's not a python solution obviously, but seems trivial to add the separator functionality.
&lt;/p&gt;
&lt;p&gt;
the one downside of dedent is you have to evaluate everytime you want the string.  however, i think the only time i used concatenated strings in C was when formatting a help string, which is not exactly a critical path.
&lt;/p&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551810/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551810/rss</link>
      <dc:date>2013-05-24T20:58:50+00:00</dc:date>
      <dc:creator>Baylink</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
It is clear -- since git was by no means the *first* DVCS -- that there are other ways to do that work.  So if git is more complicated to understand and use (and there are lots of reports that it is) and there isn't a concomitant increase in power and utility (and there are enough reports that there is not), then I have to look elsewhere for reasons why a) it would be designed that way and b) it would be more popular.&lt;br&gt;
&lt;p&gt;
Geek hubris (and the fact that the kernel is maintained in it :-) are all I can come up with, but I invite factual counterarguments.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551808/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551808/rss</link>
      <dc:date>2013-05-24T20:40:07+00:00</dc:date>
      <dc:creator>rahulsundaram</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Git is the most popular dvcs by a fair margin.  While there are many users who might find it hard to use a particular piece of software but a claim that it was *designed that way* is nonsensical.  &lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551807/rss">
      <title>Google Code to deprecate downloads</title>
      <link>http://lwn.net/Articles/551807/rss</link>
      <dc:date>2013-05-24T20:16:51+00:00</dc:date>
      <dc:creator>Baylink</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Concur; bzr was my first dvcs, and I had no trouble figuring out how it worked.  Git, on the other hand, either a) I am too old for or b) was designed specifically to be hard to understand, as geek leetness.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551798/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551798/rss</link>
      <dc:date>2013-05-24T16:33:52+00:00</dc:date>
      <dc:creator>jg</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
All I can say is that in 1984-1988 it was a very, very different world. We're talking about &amp;gt; 25 years ago; many LWN readers weren't born then. &lt;br&gt;
&lt;p&gt;
There weren't bad guys out there.  I remember the Morris worm hitting when I was working on the X11 protocol bindings.  And Kevin Mitnick had just reared his head a year or two before.&lt;br&gt;
&lt;p&gt;
Some of the bugs I clearly wrote in that period, and others copied my mistakes (and clearly made more of their own).  Others of the just couldn't happen in practice on machines of that era (say, 2 megabyte MicroVax's).&lt;br&gt;
&lt;p&gt;
And X is still used widely remotely: just usually via SSH tunnels.&lt;br&gt;
&lt;p&gt;
But the case you really worry about is different: remoting you application to an untrusted/untrustworthy X server, which may want to break into your machine/device.  This is still a thing of desire (but SSH has highly discouraged this capability).  So these problems, in practice, don't happen much.&lt;br&gt;
&lt;p&gt;
I'm still happy to see the bugs get fixed, of course.&lt;br&gt;
&lt;p&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551782/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551782/rss</link>
      <dc:date>2013-05-24T16:12:14+00:00</dc:date>
      <dc:creator>Wol</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
And remote X is still used today - I use it!&lt;br&gt;
&lt;p&gt;
It's a great way for repurposing old hardware, I use it as an X-terminal while my wife is on the main machine.&lt;br&gt;
&lt;p&gt;
The big pain is the Cygwin X server (on Win 7) does not seem to work very well at all.&lt;br&gt;
&lt;p&gt;
Cheers,&lt;br&gt;
Wol&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551762/rss">
      <title>Name</title>
      <link>http://lwn.net/Articles/551762/rss</link>
      <dc:date>2013-05-24T13:57:05+00:00</dc:date>
      <dc:creator>zonker</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
I think the name is intentional, though. I've been informed that &quot;Qt&quot; is supposed to be pronounced &quot;cute&quot; so what you have is &quot;Boot to Cute.&quot; &lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551760/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551760/rss</link>
      <dc:date>2013-05-24T13:40:45+00:00</dc:date>
      <dc:creator>dlang</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
you aren't going nearly far enough back&lt;br&gt;
&lt;p&gt;
segmentation on the x86 came about with the 80286 (or possibly even the 80186, I'm not sure) CPU.&lt;br&gt;
&lt;p&gt;
It was intended as a way to allow programs to continue to use 16 bit 8086 addressing but be able to use more than 64K of ram in a system (by setting a segment offset and then running the 16 bit code inside that segment)&lt;br&gt;
&lt;p&gt;
It never was an effective security measure, because to avoid wasting tons of memory on programs that didn't need it, the segments overlap, allowing one program to access memory of another program.&lt;br&gt;
&lt;p&gt;
When the 80386 came out and supported paging and real memory protection, everyone stopped using segments real fast&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551759/rss">
      <title>x32 ABI support by distributions</title>
      <link>http://lwn.net/Articles/551759/rss</link>
      <dc:date>2013-05-24T13:18:02+00:00</dc:date>
      <dc:creator>deater</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt;  In fact arm64 is not a traditional RISC instruction set like PPC, &lt;/font&gt;&lt;br&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; mips, sparc :&lt;/font&gt;&lt;br&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; - the instruction size is 32 (and not 64 bits)&lt;/font&gt;&lt;br&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; - it works on 32 or 64 bits data&lt;/font&gt;&lt;br&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; - register/instruction are different between native 32 bits &lt;/font&gt;&lt;br&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt;   mode and 64 bits mode.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
As far as I know there aren't any RISC chips with 64-bit long instructions (if that's what you mean).  Usually they are fixed 4-byte (32bits).&lt;br&gt;
&lt;p&gt;
Also the 64-bit RISC chips can operate on 32-bit (and smaller) values just fine.  If you mean you can't operate on the bottom 32-bits with ALU instructions while ignoring the top 32-bit, that might be true.&lt;br&gt;
&lt;p&gt;
I'll give you the last point though.  ARM is unusual in that the instruction encoding is completely different between 32 and 64-bit.  Even x86 didn't go to that full extreme&lt;br&gt;
	&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551758/rss">
      <title>Anyone remember Qtopia?</title>
      <link>http://lwn.net/Articles/551758/rss</link>
      <dc:date>2013-05-24T13:13:56+00:00</dc:date>
      <dc:creator>tsdgeos</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
This is not a project of the Qt community but a project from Digia, and from reading the blog i understand it's a non free.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551757/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551757/rss</link>
      <dc:date>2013-05-24T12:43:55+00:00</dc:date>
      <dc:creator>helge.bahmann</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Sparc has instructions &quot;load from foreign address space&quot; and &quot;store to foreign address space&quot; (and even &quot;compare and swap in foreign address space&quot;).&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551755/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551755/rss</link>
      <dc:date>2013-05-24T12:00:39+00:00</dc:date>
      <dc:creator>ras</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
As a &quot;bearded guy&quot; (I have no beard) who has written designed and written bios's and protected mode operating systems x86, and who had to look at the x86 architecture in detail again in mind numbing detail (as in reading the 4 Intel x86 &quot;data sheets&quot; several times in order to port linux-abi system to AMD64), I recall my thoughts at the time as being &quot;my - AMD has cleaned this mess up&quot;.&lt;br&gt;
&lt;p&gt;
For those of you defending Intel's decisions at this time - I lived through it.  At the time Intel regarded all programmers as idiots, and decided to solve the problem with hardware.  Thus we have the absurdly complex designs we see today, with x86 interrupts taking 2000 cycles (?!?!? - that was back when Intel was game enough to publish cycles) and it wasn't the slowest instruction.  Can anyone remember a Task Gate Descriptor?&lt;br&gt;
&lt;p&gt;
Yet that wasn't the worst of it. The worst of the worst died.  It was a new Intel architecture called iAPX432.  It caused more excitement than Haswell in it's day.  I am sure it's forebears would prefer we forgot it entirely.  It remains in my mind the ultimate testimony to the arrogance caused by ignorance, in this case the Electrical Engineers thinking they could tell Software Engineers how we should do our jobs.  But I exaggerate.  Back then we weren't allowed to call ourselves Engineers.&lt;br&gt;
&lt;p&gt;
Still they got their revenge with x86.  In it they made it plain we could not be trusted to swap between two tasks quickly.  Only 30 years later with the advent of ARM has their folly been made plain to everyone.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551754/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551754/rss</link>
      <dc:date>2013-05-24T11:21:01+00:00</dc:date>
      <dc:creator>ajmacleod</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Re: Fran Taylor -- What complete nonsense.  Remote X has worked remarkably well for decades and is incredibly useful and flexible.  No doubt it harks back to an era where security was less of an issue but still today in the real world it just gets the job done, limitations accepted and understood.&lt;br&gt;
&lt;p&gt;
I really wish the clueless idiots who don't understand or use this flexibility would stop shouting loudly about X being a worthless disaster with remote display abilities that nobody uses when these same abilities have been making life simple for so many people for such a long time; we don't usually shout about that because we've taken it for granted for so long.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551753/rss">
      <title>DeadDrop and Strongbox</title>
      <link>http://lwn.net/Articles/551753/rss</link>
      <dc:date>2013-05-24T10:41:34+00:00</dc:date>
      <dc:creator>ras</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
So this will be the legacy of Julian Assange.  To show the world how it could be done, but perhaps not how not it should be run.&lt;br&gt;
&lt;p&gt;
That is enough I think.  Well done Julian.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551750/rss">
      <title>Unsure whether this is good or bad</title>
      <link>http://lwn.net/Articles/551750/rss</link>
      <dc:date>2013-05-24T10:39:51+00:00</dc:date>
      <dc:creator>edeloget</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
But then, as you say, you can't provide any rpm, deb... to your users (unless you store them elsewhere - GDrive or any other host will do fine). &lt;br&gt;
&lt;p&gt;
Being able to download the source as an archive is of interest, but then most of the time the distributed source can differ from the git tree (especially if you plan to deliver a configure script instead of a configure.ac file). You may also want to autogen your ChangeLog from your git history... So proposing a source tarball which is not identical to your development tree makes sense (and not being able to store both at the same place doesn't make much sense). &lt;br&gt;
&lt;p&gt;
Now, the feature cannot disapear completely and you can recreate it quite easily. Create a new git repo download (administer, source), and push your tarball there. Add a link (administer, project summary) on you mainpage to the branch itself and voila. You also have to explain to your users how to download a file from this new git repo (a bit more convoluted than the plain old download).&lt;br&gt;
&lt;p&gt;
For scripters, wget &lt;a href=&quot;https://PROJECT.googlecode.com/git/PATH/TO/FILE&quot;&gt;https://PROJECT.googlecode.com/git/PATH/TO/FILE&lt;/a&gt; will be goog enough. &lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551752/rss">
      <title>Next week's edition will be published on May 31</title>
      <link>http://lwn.net/Articles/551752/rss</link>
      <dc:date>2013-05-24T10:35:21+00:00</dc:date>
      <dc:creator>ras</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
So the delay will be caused by will be sushi and sake instead?&lt;br&gt;
&lt;p&gt;
Cheers!&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551751/rss">
      <title>A look at the PyPy 2.0 release</title>
      <link>http://lwn.net/Articles/551751/rss</link>
      <dc:date>2013-05-24T10:31:44+00:00</dc:date>
      <dc:creator>zack</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; Getting PyPy 2.0 is a bit tricky, at least for now. Those who are on Ubuntu 10.04 or 12.04 can pick up binaries from the download page (as can Mac OS X and Windows users). While many distributions carry PyPy in their repositories, 2.0 has not arrived yet.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
FWIW, on the very same this article went out, PyPy 2.0 has been uploaded to Debian unstable &lt;a href=&quot;http://packages.qa.debian.org/p/pypy/news/20130515T180110Z.html&quot;&gt;http://packages.qa.debian.org/p/pypy/news/20130515T180110...&lt;/a&gt;&lt;br&gt;
&lt;p&gt;
Call it a race condition :)&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551748/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551748/rss</link>
      <dc:date>2013-05-24T09:16:39+00:00</dc:date>
      <dc:creator>helge.bahmann</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Just as an addendum... Don't get me wrong, you are right to complain that a mechanism that was usable for security purposes was removed while nobody bothered to add a suitable substitute, and that all of the pretty architectural ideas that had already been present and demonstrated to be workable for 25+ years now had been ignored, but the &quot;proper&quot; way going forward is not to revive segmentation but implement comparable semantics with mechanisms that are performance-neutral. SMEP and SMAP are actually quite &quot;easy&quot; from a hardware conceputal point of view, so it is kind of annoying that it took so long.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551744/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551744/rss</link>
      <dc:date>2013-05-24T08:53:31+00:00</dc:date>
      <dc:creator>helge.bahmann</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
1. Sure it's not a single 80s style alu anymore, rather it is a set of independently operating arithmetic units; typically two are adders, and whatever is needed is scheduled to them (addr gen or general arithmetic alike). Doing anything else is wasteful (which is to say that it is done nevertheless occasionally *if* it can speed up a fast-path, which for address calculations it cannot).&lt;br&gt;
&lt;p&gt;
2. TLS is not a fast path, profiling shows around 1 in 1000 to 10000 instructions is TLS, so no one bothers paying a 1 cycle penalty for that.&lt;br&gt;
&lt;p&gt;
3. ASIDs are cheaper because they just become part of the tag in the TLB. You do the TLB lookup (which you do anyways) and compare the tag for equality which is cheaper than a &quot;greater than&quot; comparison against an address space limit (which, incidentally, is just another adder), end of story.&lt;br&gt;
&lt;p&gt;
4. Enforcing read-only is easily done at the page level, so what's the point?&lt;br&gt;
&lt;p&gt;
5. What segmentation has been designed for? To map the concept of program object segments (the name may be a hint, right?) directly to hardware, facilitate sharing and relocatability this way. This is also where the security model for them originates from. It was conceived when people were somehow not yet certain paging was scalable, but I am too young to have been involved back then, you would have to ask the 'bearded guys'.&lt;br&gt;
&lt;p&gt;
And to answer your last question: Paging is cheaper because hashed lookup (TLB) and equality comparison are cheaper than &quot;less than&quot; comparisons in hardware. Segmentation is a conceptual dead-end, live with it :)&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551746/rss">
      <title>x32 ABI support by distributions</title>
      <link>http://lwn.net/Articles/551746/rss</link>
      <dc:date>2013-05-24T08:52:50+00:00</dc:date>
      <dc:creator>Matc</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; Doing this with ARM will be a hassle&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
Arm have the same problem than x86 : arm64 is completly different from arm (32 bit).&lt;br&gt;
It is new instruction, different registers, ...&lt;br&gt;
&lt;p&gt;
But because arm64 have instruction for working on 32bits or 64bits data/register, it should be easy to do something like x32 on arm.&lt;br&gt;
&lt;p&gt;
In fact arm64 is not a traditional RISC instruction set like PPC, mips, sparc :&lt;br&gt;
- the instruction size is 32 (and not 64 bits)&lt;br&gt;
- it works on 32 or 64 bits data&lt;br&gt;
- register/instruction are different between native 32 bits mode and 64 bits mode.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551745/rss">
      <title>Debian GNU/Hurd 2013 released</title>
      <link>http://lwn.net/Articles/551745/rss</link>
      <dc:date>2013-05-24T08:29:05+00:00</dc:date>
      <dc:creator>drothlis</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
No point; it was a complete tangent. I genuinely wonder how hard it would be.&lt;br&gt;
GNU Make seems like a significant piece of software but at the same time very&lt;br&gt;
self-contained and conceptually quite simple.&lt;br&gt;
&lt;p&gt;
What I want from a make implementation:&lt;br&gt;
&lt;p&gt;
+ Parser accessible as a library (for IDEs, static analysis tools, etc).&lt;br&gt;
+ Be able to switch features on and off; issue warnings if a makefile uses&lt;br&gt;
  a particular feature.&lt;br&gt;
+ Well-documented source code; easy to implement new features.&lt;br&gt;
&lt;p&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551740/rss">
      <title>Does Tickless supports for Octeon-2 and ARM as well ?</title>
      <link>http://lwn.net/Articles/551740/rss</link>
      <dc:date>2013-05-24T07:56:51+00:00</dc:date>
      <dc:creator>ajaycavium</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Can anybody please tell this feature is supported for Octeon-2 and ARM as well or it is for x86 only.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551737/rss">
      <title>An &quot;enum&quot; for Python 3</title>
      <link>http://lwn.net/Articles/551737/rss</link>
      <dc:date>2013-05-24T07:49:03+00:00</dc:date>
      <dc:creator>jezuch</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; You could make enums an intrinsically unnumbered type, or a type whose numbering is hidden and could not be specified at all, but it would drastically limit their usefulness&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
Or you could allow enums to have members - fields and methods - and provide the conversion yourself when needed. You could also add some syntactic sugar for the common case. That's one of the great things about enums in Java - they are almost-regular classes, so they can engage in (interface) inheritance and polymorphism at will. Oh, and you can switch() on them ;)&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551739/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551739/rss</link>
      <dc:date>2013-05-24T07:48:47+00:00</dc:date>
      <dc:creator>dlang</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
if they were so fully separated, how could you pass data between them?&lt;br&gt;
&lt;p&gt;
Even if true, it just shows that price and performance trump low probability security benefits once again, so what's new?&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551738/rss">
      <title>An &quot;enum&quot; for Python 3</title>
      <link>http://lwn.net/Articles/551738/rss</link>
      <dc:date>2013-05-24T07:46:12+00:00</dc:date>
      <dc:creator>mgedmin</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Heh.  I got into the habit of using print(&quot;one value only&quot;) to be compatible with Python 2 and 3 at once, without a __future__ import.  And then I discovered that print() is also valid in this mode, but does something completely different on Python 2.  ;-)&lt;br&gt;
&lt;p&gt;
All my blank lines became&lt;br&gt;
&lt;p&gt;
  ()&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551736/rss">
      <title>An unexpected perf feature</title>
      <link>http://lwn.net/Articles/551736/rss</link>
      <dc:date>2013-05-24T07:35:04+00:00</dc:date>
      <dc:creator>ballombe</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
From a security point of view amd64 _is_ bad, especially compared to older architecture like sparc which provide fully separated kernel and user address space.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551735/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551735/rss</link>
      <dc:date>2013-05-24T07:28:48+00:00</dc:date>
      <dc:creator>ortalo</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
Entirely agreed. I'd go even further: these classes of vulnerability probably still exists in other big pieces of software not as well scrutinized as the major ones. Such examples should make us worry much more about our database clients, our spreadsheets, our mail clients, etc.&lt;br&gt;
 Fortunately for open source, these examples give us even more inspiring ideas about the situation with proprietary or industrial software...&lt;br&gt;
&lt;p&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551734/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551734/rss</link>
      <dc:date>2013-05-24T07:27:03+00:00</dc:date>
      <dc:creator>renox</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; Ok, let me paraphrase: modern X windows applications mostly does not use network for drawing ;)&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
You're doubly wrong: &lt;br&gt;
1) you can configure KDE|Qt to use XRender.&lt;br&gt;
2) as Cyberax said, even the oldest &quot;draw stipple line&quot; that noone use are still part of the protocol, of course this matter more for the server than for the clients.&lt;br&gt;
&lt;p&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551732/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551732/rss</link>
      <dc:date>2013-05-24T07:02:02+00:00</dc:date>
      <dc:creator>geofft</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
What does this have to do with the network, at all? It's about a binary protocol between two components of different privilege. The same class of vulnerabilities could as well exist in D-Bus, in the Windows syscall API, in packet filtering, in communication between Chrome and its tabs, in SATA or SCSI or Android intents or systemd talking to services -- nothing here is specific to X being on the network.&lt;br&gt;
&lt;p&gt;
And fundamentally, this entire class of vulnerabilities could equally well exist in every single other display architecture, even though they don't use &quot;network&quot; connections.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551729/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551729/rss</link>
      <dc:date>2013-05-24T06:58:30+00:00</dc:date>
      <dc:creator>butlerm</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; Yep. Having a private X server for each application is also an interesting idea.&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
Why wouldn't we just have Xlib or XCBlib or whatever dynamically load a library that implements X in process then, instead of engaging in relatively pointless IPC?  The lower level server would be handling all the compositing and arbitration.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551730/rss">
      <title>Numerous security issues in X Window System clients</title>
      <link>http://lwn.net/Articles/551730/rss</link>
      <dc:date>2013-05-24T06:51:51+00:00</dc:date>
      <dc:creator>micka</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
&lt;font class=&quot;QuotedText&quot;&gt;&amp;gt; I'm waiting to see how Wayland protocol will look like and behave after 20 years...&lt;/font&gt;&lt;br&gt;
&lt;p&gt;
You'll just have to wait 20 years.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/551728/rss">
      <title>Name</title>
      <link>http://lwn.net/Articles/551728/rss</link>
      <dc:date>2013-05-24T06:09:13+00:00</dc:date>
      <dc:creator>epa</dc:creator>
      <description>
      &lt;div class=&quot;FormattedComment&quot;&gt;
They missed an opportunity to call it Bt to Qt.&lt;br&gt;
&lt;/div&gt;

      
      </description>
    </item>
</rdf:RDF>
