Winelib Hobbled by Exception-Handling Patent
davidwr writes "UKBuilder.com reports that Borland's structured exception handling (SEH) patent affects Winelib. Winelib allows you to compile Windows-targeted code to run natively on Linux. Because of the patent, gcc does not include support for SEH, which is widely used in the MS-Windows world. There are workarounds, but you won't like them."
I'm sure that Wine was looking for a Microsoft-based patent attack, but this one probably caught many off guard.
Who else may have submarine patents might affect the development of Wine?
"Rocky Rococo, at your cervix!"
This is where Borland needs to step in by giving the patent (or providing a legal exception) to the OSS community.
Guess I've been doing too much Unix...
There are workarounds, but you won't like them.
Use Windows? (ducks)
E.
Never rub another man's rhubarb - The Joker
It doesn't, just use wine to compile wine applications.
Since Borland USED Winelib in Kylix.....
Amazing how thing like this rear their head AFTER a company that holds the Patent actually used the app in their OWN product, can you say STINGY
Again, I hate software patents. There's no point.
Most of what you'd want to protect is covered by copyright. If it can't be covered by copyright, well, then it's something so basic (like "the dog is big") that it's almost impossible to express something without doing it that way.
Again, this is where the idea of a software patent is stupid. Don't allow people to do things in ways that you really couldn't cover with copyright?
Ok, now I find myself back to the argument that source code is speech, and hence not patentable.
Linux - because it doesn't leave that Steve Ballmer aftertaste.
Of course this was discussed on the gcc list, the thread starts here.
Links to an implementation of this can be found in this mail, the legality of this implementation is discussed in the followup.
The inevitable prior-art discussion begins here.
More likely is that Intel would arrange (ie. throw some money, tech, patent licenses, whatever) at Borland in return for such a thing. Borland doesn't have any motivation to make stack-based SEH available to free x86-targeting compilers [the patent's irrelevant on RISC], but Intel arguably does.
Winelib is covered by the LGPL. If Borland has shipped Winelib in Kylix, they may already have given people a license to use the code. Perhaps they can wiggle out of that, but they can't continue to ship Winelib if they claim a patent on something in it.
I am not a developer, but how difficult is it to create a space in Wine for a SEC patent legal module to "plug in" to Wine? Winers could either use Wine without SEC or purchase a licenced module. Of course, some good hearted soul would release the source code, and then those who wanted to run the module illegally could do so as well. (Did I say that out loud?)
Even worse, this makes it clear that using patent-encumbered software has a genuinely unpleasant viral effect on all your software.
The pro-patent folks will eventually realize that the best solution is to avoid ALL patent-encumbered software COMPLETELY -- and look even more skeptically at all proprietary software, too. This will have the opposite effect of what they had intended.
There is not nearly enough love in the world, but there is far too much trust.
gcc also doesn't support register allocation with interference graphs just because of a patent.
There are workarounds, but you won't like them.
Thanks Marvin!
Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree. -Martin Luther
This is the patent in question.
IIRC there is a version of DeCSS that works similarly:
/* */ style comment at the end of the file.
,that can then be compiled.
1. Take function.c, where function.c is the patented software.
2. Add a
3. gzip the file
4. Write a program that evalautes the entire contents of the file as a single number, and check if that number is prime.
5. If it's not, increment the crap inside the comment, repeat steps 3 and 4 and check again for prime. Eventually, you will find a prime.
Now, you have a prime number, that if you run gzip on it, will product a file, function.c
Since you can't copyright a number this works for DeCSS vs the DMCA.
Patent law and copyright law are different so this may not apply, but still, wouldn't Fedora be allowed to distribute a prime number in their distribution? How could that be illegal? Then, it's up to the end user to actually unzip it and use it. It's the end user then that is violating the patent. Catch that!
There are workarounds, but you won't like them.
Wow, sounds like he's depressed, like he has a pain in all the diodes down his left side or something.
-- If god wanted me to have a sig, he'd have given me a sense of humor.
I am sure that Borland might appreciate the opportunity to strike back at Microsoft in a substantial way.
LedgerSMB: Open source Accounting/ERP
Next, a wave of Slashdotters will hassle Borland to release the patent, or exempt Wine. The objective is worthy, the self-organized social wave of independent activists is meaningful. But the style will most likely be counterproductive.
I recently advised a graphic designer/artist friend whose Flash app (advertising a minor celebrity pool player) drew the ire of an OSS "advocate". They demanded that the Flash movie be replaced with something that didn't require any "closed source" software to use it. My friend and I replied politely with their cost:benefit analysis (>95% of desktops can use Flash), the fact that Flash is an open standard (SWF), and the reality of making choices that can't please everyone, so the best alternative is chosen. The "advocate" devolved into namecalling and refusal to accept any of the designer/artist's reasons as valid. Which not only lost that private argument on facts, but alienated any possiblity of the designer/artist exploring OSS possibilities, as long as reliable old Flash still works.
If you're going to request that Borland release its constraints on Winelib, remember that you catch more flies with sugar than with vinegar. And that invitations to a company to join the OSS "community" makes you an ambassador from your community. Which demands high performance in charm and persuasion, rather than represent the community as a barbarian horde.
--
make install -not war
Remember, patents don't mean you can't code it. You can code it. You can use it for personal non-commercial use. You can distribute the code. But you can't use it commercially, distribute binaries, or sell it.
So the coders can continue doing their merry work, producing code that would violate patents were it compiled and distributed, and the distributors can continue merrily distributing the code in Europe.
The only people who are left out of this are Americans who would have to buy licenses from Borland to use the code in the US. That's fine; Americans should either pay according to their laws or change their laws.
But we shouldn't let American laws affect the rest of the world where they don't apply.
We need to start doing this for all open source software. There is no way to avoid trampling on patents if you're writing any fairly large or complex piece of software these days, especially any software that involves codecs, pre-existing APIs, and pre-existing file formats. Well, just about any useful piece of large software involves such things. Rather than getting into a hissy-fit on Slashdot every time some patent issue is discovered, open source developers should just plan for the problem and plan to bypass it.
The patent situation is not like the copyright situation. Copyright laws are roughly similar everywhere in the world and they are enforcable everywhere in the world. There are wide divergences in patent law around the world and most of the world is not burdened by America's folly in this regard. Why should developers bear the burden of one country's legal folly? Answer: developers shouldn't, and should simply pick the right jurisdiction for hosting the project.
This isn't some radical idea here. MPlayer, for example, could not possibly exist as a US-based project. US coders can and do contribute to it, but it's based in Hungary, where it's safe.
Since this is a patented technology used in other compilers, I assume Borland licenses it but it can't be part of the C++ standard. This just seems to me like another great example of problems introduced when programmers rely on things that are not part of the standard. Whether it is Microsoft's custom portions of Java (which meant Java apps suddenly were no longer compatible with Sun's JVM) or vendor extensions to error handling, if you use a tool that does not meet defined standards, then you develop software that is much less useful (it may implement something cool but it has a more limited audience and an almost guaranteed shortened lifespan).
What is SEH? How is it different from exceptions found in C++, Java, python, etc.?
___
If you think big enough, you'll never have to do it.
The patent is at
T O1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm &r=1&f=G&l=50&s1=5,628,016.WKU.&OS=PN/5,628,016&RS =PN/5,628,016
http://patft.uspto.gov/netacgi/nph-Parser?Sect1=P
The Patent Number is 5,628,016
There are two dates:
May 6, 1997
and
Filed: June 15, 1994
I assume the 1997 date is the "granted" date. Why is this problem surfacing now, almost ten years later??
Stephan
http://stephan.sugarmotor.org
Finally someone who actually bothered to RTFA and use their brain.
So what about this SEH is an issue.
Last I knew, when you compile code that'll run under an OS, you're more or less stuck supporting the way that OS/hardware expects to run code. Is there some more optional/vendor specific stuff that is happening? On a UNIX system, at least, I can always peek at things with gdb no matter the compiler I used for it.
Does this SEH stuff produce code that executes differently than other code? Is this unique to Windows?
I'm just a little confused. =)
Lost at C:>. Found at C.
Funny how this comes out right after WINE gets legal support
Because Even Emulators Rock
So its a moot point even if it did use SEH which it did not. It still used Winelib based SEH macros rather than compiler based exceptions.
-sedwards
From Microsoft,
.H and .INC files to piece together what constitutes Win32 SEH, one of the best sources of information turned out to be the IBM OS/2 header files (particularly BSEXCPT.H). This shouldn't be too surprising if you've been in this business for a while. The SEH mechanisms described here were defined back when Microsoft was still working on OS/2. For this reason, you'll find SEH under Win32 and OS/2 to be remarkably similar.
In digging through obscure
Article here:
A Crash Course on the Depths of Win32(TM) Structured Exception Handling;
Enjoy,
It's just the normal noises in here.
So all that's broken here, is the ability to complile code, that was written for Windows, into *nix binaries. That's all.
Is there really that much Windows code, getting ported to *nix? Seems like virtually all FOSS development flows the other way.
Large commercial companies that develop for Windows first, will have the resources to fix the code to compile the other direction.
And is WINE/WINELIB really a good solution? By taking something written for a particular platform, and just recompiling it straight over to a new platform aren't you going to end up with horribly unoptimized code no matter what? Rewriting the code to use non Windows specific calls will buy you a LOT of speed, and whatnot, I would think.
"Politicians are interested in people. Not that this is always a virtue. Fleas are interested in dogs." P.J. O'Rourke
This isn't a submarine patent as it was filed in 94 and granted 3 years later. And I'd assume borland was probably using it before the patent was granted instead of patenting vaporware and trying to delay the process long enough till invention becomes viable.
Have you ever been to a turkish prison?
Its a GCC problem, not a Wine problem. Wine can't do it because GCC doesn't support it.
Unless Borland added it to GCC, the grandparent isn't the one who needs to RTFA and use their brain.
I know most of us here assembled are sick of all this software licensing crap. Slashdotter jokes notwithstanding, we are some of the most intelligent people on the planet. What say we combine that intellect and come up with a way to combat all this software patent madness?
First suggestion: Elect a steering committee to form an organization/lobbying group.
What do you think?
Ignorance is curable, stupid is forever.
When porting Delphi to Linux (Kylix)?
Articulos para gente geek: Poleras, linux, libros y mas
Man, I wish I knew what that meant. It sounds pretty frickin' sweet.
--grendel drago
Laws do not persuade just because they threaten. --Seneca
Just move Wine servers offshore somewhere like Hungary and set up (virtual) shop there.
It worked for MPlayer.
Guess I've been doing too much Linix...
"Even worse, this makes it clear that using patent-encumbered software has a genuinely unpleasant viral effect on all your software."
Hmmm, I thought the GPL was the one with the unpleasent viral effects?
Hopefully somebody investigates OpenVMS as potential prior art here. The OpenVMS Condition Handling Facility provides substantially the same exception-handling functionality as SEH and has had much of it since the 80's. http://h71000.www7.hp.com/doc/72final/5841/5841pro _038.html#chf_vaxalpha
Funny, but its current home page doesn't exactly give me warm and fuzzy "safe" feelings. Methinks you chose a bad example there :-)
what exactly is a "minor celebrity pool player"?
is it something like "minor celebrity hair dresser" or "minor celebrity cab driver" ??
Actually, SEH is entirely orthogonal to the language issue.
MSVC provides non-standard extensions for C and C++ code, sure, but even if you compile C++ compliant exceptions with MSVC, it translates it behind the scenes to SEH.
SEH is the way that exceptions are implemented, and is thus not connected to language features.
Now, discussions whether that should apply to physical inventions only or software is a topic I'm not getting into here.
I'm not going to touch how long those patents or copyrights should be - that war rages in enough other threads.
The financial gain for the inventor/creator is part of the motivation for inventing/creating. As much as I dislike MS, they are entitled to the rights afforded by their patents. Like it or not software is patentable around here, so we are stuck with the consequences.
-2, unpopular concept
Why, oh why, didn't I take the Blue Pill?
How about someone from GCC and/or Wine contact Borland and ask how much a license would cost to include SEH in these products? Or, ask them how much they'd be willing to part with the patent for?
If it's feasible, organize a fundraising effort from the OSS community, buy the license/patent from Borland, and immediately release the code under the appropriate xGPL. Many OSS contributors are corporations with a fair bit of money, so I see this as being at least worth discussing.
If nothing else, this is a straightforward way to 'play fair', rather than all the wrangling about submarine patents and how the patent system is so obviously broken. I personally agree with these sentiments, but we've never going to get anywhere yelling about a currently unsolvable problem. Rather than bash Borland in this instance, why not give them a chance to demonstrate how reasonable they could be?
eskwayrd = m^2c^4
Since this problem only affects porting existing windows code to Linux, it could be solved by
using the MS tools and linking the app with winlib.
Before you flame this, consider who would be doing this....someone who has a closed source application already working on Windows and wants to sell his application to the Linux market. IIRC, winlib is licensed under the LGPL, so this approach would be legal. (and this is EXACTLY how Coral ported Wordperfect 2000 from windows to Linux).
Guess I've been doing too much mind melding with the Horta.
KFG
so how does this C++ SEH stuff differ from the elaborate
exception handling that PL/1 has had since the '60s, '70s ??
and wouldn't almost any PL/1 implementation have used
the the patented technique ??
"Again, I hate software patents. There's no point."
Hmmm. I didn't know that slashdot had the highest concentration of lawyers on the planet.
"Most of what you'd want to protect is covered by copyright. If it can't be covered by copyright, well, then it's something so basic (like "the dog is big") that it's almost impossible to express something without doing it that way."
Maybe the "I hate patents" and the "I hate copyright" people can get together and hammer out an agreement, because as it stands, you both are talking against each other.
"Again, this is where the idea of a software patent is stupid. Don't allow people to do things in ways that you really couldn't cover with copyright?"
Considering how much this group is a stickler for definitions. e.g. copyright violations vs pirating. You all seem to be having some trouble discerning the differences between copyright and patents and why that's so.
"Ok, now I find myself back to the argument that source code is speech, and hence not patentable."
And speech is executable on human being. Love those bugs. How do you crash a human?
There are workarounds, but you won't like them.
I swear I heard Alan Rickman's voice reading this line to me.
I stole this sig from someone cleverer than me.
Agreed. I think I'm going to switch back to IE on Windows. Because Firefox is stopping a group of people from installing spyware on my computer and, thus, preventing one group of people from getting what they want.
Trust me. This is an inactive account. Regardless of what the
I could calculate your chances of a workaround... but you wouldn't like it.
Just cause you feel it doesn't mean it's there.
My first thought was, gee, that's not been my experience--as I recall, although it was complicated, it was rather well documented. So I did a bit of Google and found that other people seemed to agree with me (i.e., they say things like "Furthermore, compared to the other compiler projects, GCC offered the most comprehensive documentation for backend porters." and so forth).
The only thing I could find that even sort of suport your claim was RMS's thing about not wanting the backend to drift into becoming an LGPL black-box (thus chilling the development of new GPL'd front ends).
So, do you care to back your claim up?
--MarkusQ
This is completely untrue and misinformed. The original patent on graph coloring has expired (or will expire soon), and IBM granted the right to use it in any GPL'd software anyway. Rice University also granted the use of the patent on Preston Brigg's improvements to GPL'd software. So GCC could, and in fact has, implemented graph coloring register allocation (see the new-regalloc branch), over 2 years ago.
"Anything that stops one group of people from getting what they want is bad."
Sounds like this was written by a spoiled brat!
That should be in the past tense. Kylix is toast. Has been for a year or two. Borland screwed the pooch royally with it.
Reason #372 to never trust anything important to a proprietary platform.
It sounds like SEH is abstracted in such a way that application developers have no knowledge of its details.
By that it should be entirely possible to code a work-alike to SEH that doesn't use the same methods, correct?
I am not a US citizen, software patents are not in force here, do I really have to care?
I used to work for a large bank, the largest investment bank in the world in fact. A couple of years ago they sent an internal memo around proclaiming that they had just lodged their first patent and were well proud of it. They said something like "we have another several hundred in the pipeline". I wrote an semi-anonymous email back to the global head of the division of IT where I work, basically saying that that he'd better be ready to reap the whirlwind once all the banks started realising that they could patent ridiculously simple concepts (like using a PDA with realtime updates to enhance the productivity of specialists on the floor of the exchange, which was we had apparently 'invented').
I never heard another thing about software patents and a few months go I left.
So, what is pattented exactly? Is it the SEH syntax - or - the way the compiler works with the syntax? I'm not a C++ developer, so this is probably extremely stupid. But could there be a way that the SEH syntax is interpreted differently by the compiler so that the behaviour doesn't (exactly) match the behaviour defined in the patent? This way, people can leave the SEH syntax unchanged in their code.
There are plenty of countries who don't allow software patents. Just move the "official" location of WINE to one of those, and voilà, instant immunity.
And if those who still want software patents insist, well, let them put customs posts on the Internet to prevent them from downloading it.
> This is a story about a shortcoming of gcc and Winelib because so many
> Windows C++ developers use SEH instead of sticking to standard C++.
There are a lot of things that standard C++ does not cover:
UI, Device I/O, Threading, Synchronization, Async I/O, Interprocess Communications, Virtual Memory management, Registry access, Networking, etc.
For that, you must use the underlying OS features (either directly or via a library that abstracts it).
SEH is one such element. It allows you to catch "system" exceptions such as access violations. It is an OS feature that standard C++ does not address.
Quoting form the MSDN:
[The] difference is that the structured exception handling model is referred to as "asynchronous" in that exceptions occur secondary to the normal flow of control. The C++ exception handling mechanism is fully "synchronous," which means that exceptions occur only when they are thrown.
Patch set could be maintained outside the corporate reich of america (USA), or something?
Yes! Exactly! I just droped my last foe to add you to my friends list.
I can't recall who said it first, but I agree with the adage "any idea that can't be convincingly explained without using several different colours has a serious flaw in it somewhere."
--MarkusQ
Let's just start our own country and be done with all these stupid laws.
what sig?
nothing to do with running any MS code, this affects us how?
I see people wringing their hands like this is the end of the world.
Hey, this is the "GNU/Linux" world were talking about, isn't it?
I dumped MS a few years ago and switched to Linux because I wanted to dump MS and run Linux, not because I wanted to run Linux so I could run MS.
I'm sorry but I fail to see why everyone is so gung-ho to run MS apps under Linux. I don't.
Yeah, I have wine installed on my Suse 9.3 machine but I have no use for it.
I can't think of or name ONE windows program that I would want to run.
So far I've been able to find an equivalent Linux program for all of my needs.
OOTB, my Suse 9.3 pro does HUNDREDS of times more things than an OOTB MS XP "Pro" system does.
And for the few things that it doesn't do OOTB, there's apt-get & Synaptic. A few minutes of following the instructions at the "guru" page to install apt & synaptic and I'm totally taken care of. EVERYTHING I want my PC to do, it does.
I really wish people would quit trying so hard to make Linux into Windows. It ain't windows and that's exactly why I love it so much!
"Hmmm. I didn't know that slashdot had the highest concentration of lawyers on the planet."
Hmmm. I didn't know you had to be a lawyer to recognize stupidity.
Or maybe you have to be a lawyer to pretend it doesn't exist.
Would this poor, but European, entity shield foreign users of their software from the laws of other nations?
If the RIAA can do it....
(Although Sony looking down the barrel for stealing that guy's song on two Britney Spears albums is freaking HILLARIOUS)
"The right tool for the job"
There was another guy who used to say that, some Finnish guy, some "Torvalds" guy.
There's a rumor, though, that that kind of turbocharged pragmatism didn't go so well for him.
Some times it's good to think beyond development costs, and into the consequences of what we do.
For a flash site, well, you say it, adobe just bought Macromedia, so now nothing is certain in the future of Flash, it could be great, good, or become the animated equivalent of Acrobat for the web. And you wouldn't have any options.
Using an standard like GIF, which is not anymore encumbered with patents, you are in a safer place, with a known future, and you are using standards.
Plus, 95% is too small a percentage for a promotional site. 99%, at least, would be more like it, if you can't acheive 100%.
Disabling Flash does have an effect on a *large* number of worthwhile sites; namely, you can't see the ads.
Of course, the editorial is still normally usable. Even worse, by using Flash instead of animated GIFs for their annoying ads (I already had GIF-animation disabled; I disabled Flash *specifically* when they started using it for pseudo-animated-GIFs), I don't see *anything* except the "missing plugin" message.
An animated GIF that is prevented from animating can still intrigue (often more so than if it were allowed to move, since I get to see the enticing first frame, but have to click on it to find out the punchline). The disabled Flash replacement, OTOH, is 100% useless for selling to me. I know *nothing* about the ad that's meant to be there.
If I ever need Flash, I'll use IE under Windows, but otherwise, it's just not worth the hassle 99% of the time.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
Let me see if I get the Slashdot mentality about patents straight.
Nice troll - but you *didn't* get it straight.
Company A spends a lot of time and money to develop technology X
Look! A straw man based on an unfounded assumption!
Go crawl back under your rock, fucktard.
I don't see anyone disputing that Borland has a valid claim to this invention. If they hired developers, paid them, invented this way of doing it, and patented it, they get to say who can use it until the patent expires.
There's a fundamental disagreement here about what constitutes an "invention" - what deserves patent protection. Most developers and techies I know believe pretty strongly that patenting software is somewhat akin to allowing Agatha Christie to patent the mystery novel. Agatha's books, like software, are more appropriately protected by copyright. Patent protection in such a case, many of us believe, does not do what patents are designed to do - promote the useful arts and sciences.
Agree or disagree, but that is the issue in a nutshell. I don't think it's fair to dismiss disagreement on this vitally important issue as mere "whining," especially when most of the industrialized world (so far) disagrees with the American stand on this issue.
I pushed an error routine address on the stack in an X.25 implementation for the PDP-11 in the mid-70's and I didn't think it was anything but OBIOUS then. Pop the address if no error and return. BFD. Geez, the USPTO sucks.
You know, hasn't anyone heard of patent searches? Why is this a surprise? Why wasn't someone involved with Wine looking for patent encumbrances a long time ago?
Some people would drive their car into a tree and then bitch about the mean nasties who planted the damn thing.
-- Slashdot: When Public Access TV Says "No"
What are you talking about? Linux hasn't worked out so well for Torvalds? And the Flash player, with >95% desktop penetration is going to go away before the lifetime of an ad for a minor pool celebrity? And >95% isn't popular enough for a promotional site, when IE-only (much smaller percentage) sites are very successful?
Maybe your irony is too subtle for me. Or maybe everything you posted is completely, unjustifiably wrong.
--
make install -not war
A reading of the patent looks like they are reserving space on the stack for each function that can serve as exception "registration" information.
This feature was available in VAX/VMS in the late 70's, a function could establish an exception handling routine on the current stack frame by issuing a Lib$Establish() call (or just storage the exception rouitne address directly on the stack in assembler).
and they won because they played as rough or ruffer than the romans, and because the romans were 'past' the 'tipping' point of destruction
i believe companies and organization like macromedia, m$ and the riaa are past the 'tipping' point also, and that is why THEY are the ones acting like the barbarians (sorry Barbarians for making you look so bad!!) ;)
I will gladly loose all of life's battles.. in order to win the war..
...here's an idea that maybe nobody has tried yet.
Ask them.
Rather than do the collective F/OSS thing and lose our minds about a software patent that's in the way...how about asking Borland if we may write something their patent covers?
Has it at least been tried yet?
Yes, software patents are evil. And yes, exception handling has tons of prior art. And still yes, this is freaking obvious. But still. It's only a problem if they complain, and they're less likely to do so if we just simply do the good manners thing and ask first.
Weaselmancer
rediculous.
Since C++ is a superset, you don't even have to change the code, just change the extension to .cpp
The onus is definitely on Borland.
Comment removed based on user account deletion
I recall that VMS had asynchronous traps (ASTs) that would unwind the stack until caught and were usable from higher level code for catching exceptions (not called that then). Not being an internals guru, would someone knowledgeable be willing to explain how this differs (if it does) from the Borland patent?
Great minds think alike; fools seldom differ.
so why doesn't Wine just relocate their servers!??!
They better do this quick before a court order is made to prevent them from doing so. Dunno what you call them in the US, but in Australia they are Mareva orders.
1. In a development system for compiling source listings into program code for operating a digital computer, said digital computer having a microprocessor and a system memory, said source listings
:-p
So once we get nano-processors, patents such as this won't apply?
The revolution will not be televised... but it will have a page on Wikipedia
Now, a feature that would benefect me is disabled by default... and that's just because of you, since most coutries doesn't allow software patents.
Well... looking at the bright side this may give a reason for some devellopers out there to switch to a more platform independent codebase. Like QT for example.
---- You know how some doctors have the Messiah complex - they need to save the world? You've got the "Rubik's" complex
That guy needs to get a grip...
There aren't that many sensible ways to register exception handlers on the call stack; choosing one isn't some kind of amazing insight. Give a guy some x86 experience and a few constraints, and he should be able to recreate SEH immediately.
Wine Is Not an Emulator
michael jackson prefers jesus juice.
as far as teh barbarians are concerned, they are the accendents of the germany we all know and love from wwII..sooooo, i suspect that i know which side my 'bread is buttered on', next time teh &^%#%* hits the fan. :)
I will gladly loose all of life's battles.. in order to win the war..
I didn't have time to thorougly study the patent but besides looking like it is an invalid patent, it also looks like there may be some gaping holes allowing other implementations that are better than the pattented version.
It looks like they are describing a version where variables modified during a try block do not retain their new values unless the entire block succeeds. Either that or they are very ineptly including the normal stack arrangement in their patent claim as if it were part of the "invention" rather than the environment where the invention is used.
The patent refers to moving data on and off the stack using push and pop CPU instructions (not merely push and pop mechanisms). There are other ways to move data on and off the stack. The stack pointer can be moved by arithmetic and the data can be moved by byte/word/block copy operations. Given the amount of data they are putting there, push and pop are probably an inefficient way to do that.
A significant portion of the patent seems to deal with storing the state of all local variables on the stack and then restoring them if the __try block fails. This is actually a pretty silly way to implement this feature unless you DO NOT have the ability to modify the compiler code and are trying to code around compiler limitations. But an alternative and more sensible implementation is copy in, copy out. Instead of saving a copy to be restored later, each __try block has its own private copies of variables and the compiler copies in only those variables used (and only those written to) in the block when the block is invoked and then only copies them back out to the parent block if the block succeeds. Very similar to an ADA "in out" function parameter. Copy in/copy out vs. save restore appears to be enough to stay clear of the relevant sections of the patent and even copying only those variables which can actually be modified by the sub block appears to be enough to break this section (a patent on saving "all" variables does not affect code saving only those variables that are modified.
Using the existing processor call/return stack to store the data breaks the patent because the patent stipulates that the variables must be stored in a stack allocated specifically for the purpose of saving and restoring variables. The processor return stack was previously allocated for a different purpose, namely storing return addresses and is already being used as storage space for the local variables themselves. The patent says to allocate space for a stack not to allocate space within an already allocated stack. Again, this is a method you would use if you were trying to retrofit this capability into an unmodified compiler (and even then, you could even declare a variable save_regs) in your own code or with a pre-processing compiler front end.
A typo where "paid" was used instead of "said" could invalidate another section. And, of course, this section has prior art going back decades.
patent claims are rather specific about where in a stack frame certain exception information is to be stored - there is no need to duplciate that order.
Just because the OS has a function call you can invoke in each function to register the location of the exception record doesn't mean you need to call it. You can simply create one function that is registered with the OS that in turn knows to look in a global variable for a pointer to the latest record and does the unwinding itself. The variable can be restored on exit. Or you put the information at a fixed offset from the frame pointer. No need for system call overhead with each function or try block.
there is probably a lot of prior art in early ADA compilers (circa 1982) which had compiler supported exception handling long before C++.
The gcc devs are unlikely to accept such a thing. Unless Borland gives everyone a licenses anyway. Software patents are bad enough that they won't touch them even if they could get a GPL compatible license, just to protest them. Long term this is a good idea.
I don't know if this counts as prior art, though, becuase I don't know when RTFiles was introduced. The earliest mention of it on Usenet was in 1998.
Remember, patents don't mean you can't code it.
Wrong.
You can code it. You can use it for personal non-commercial use.
Wrong. Personal non-commercial use has nothing to do with it. Patent use outside of proper licensed use is limited to experimental use, not non-commercial use. Your personal use for non-experimental purposes would not qualify.
You can distribute the code.
Wrong, known as contributory infringement. You would be even more liable.
But you can't use it commercially, distribute binaries, or sell it.
Wrong. You cannot: make, use, sell, offer for sale or import the invention.
Seriously, 99.9% of coders are totally patent-ignorant, but feign like they understand the patent laws.
screw the lameness filter.
BECAUSE they PATENTED MICROSOFT BOOB!!!
Only slashdot has a lame lameness filter.Only slashdot has a lame lameness filter.Only slashdot has a lame lameness filter.Only slashdot has a lame lameness filter.Only slashdot has a lame lameness filter.Only slashdot has a lame lameness filter.
Invention is an art of composition. Inventors take existing technologies and compose them into new products. Technology moves faster when we can freely compose new inventions into new technologies, and so on. Patenting stifles this by making it more difficult to use new elements in a competition. Thus, patents are anametha to the advancement of arts and sciences and thus run counter to very constitutional clause which permits them.
This is my sig.
Great idea, but er... what would be our new country's native language? C? Perl?
*ducks*
Seriously, why are there countries where they create all this overhead? I think that some countries are pricing themselve out of the market by using this kind of marketing.
I believe Windows implements this in the "kernel" or as part of the operating system libraries. The Borland patent pretty specifically refers to a "software development system".
So, if this were incorporated into a separate library, independent of a development system, or if it were implemented via a kernel call, it might not infringe.
The basic ideas, in any case, are not patentable because they have been in use much longer than Borland. There are also plenty of ways of implementing something functionally equivalent that work completely differently; only Windows programs that rely on the exact layout of the stack would fail then.
And when it doesn't? And when you want to change things?
I don't think you have done any serious web development.
You're looking at this completely backwards. Wine is not trying to innovate, they're trying to use someone else's innovation. They're not even trying to claim that they're innovating. They merely want to use someone else's method of handling exceptions.
Wine is trying to appropriate technology for a particular community's benefit: the Linux community. The Linux community is not everyone. Even if it were, Wine is not _adding_ anything to the store of knowledge in the public domain. The purpose of patents is to get people to bring forth innovations. The purpose is not to incentivize moving workable applications from one platform to another to serve the interests of a particular community.
Anyway, the point is that Borland had a patentable idea, and Wine simply wants to use it, even though they could do it in other ways.
Knock knock
Who's there?
Data Portability/Migratability/Accessibility
Oh... fudge.
Thanks. I hate registries, directories and shizzle. In this connected world, give me a 1gb usb stick for my ~
~ sweet ~, where the data is.
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
Check out the Cobol Compile options on OS/360.
Then you had first and second level interrupt handing, traps (SYSUDUMP etc). But I believe the even older MVT source code from MIT had it. A search of the Hercules will soon settle things.
Maybe IBM can settle up, becuse current systems of their have unlimited interrupt handling, plus some beauties like cpu fault and core memory fault, which Borroughs and NCR also had in their Algol and PL/I implementations.
See pthread_cleanup_push and pthread_cleanup_pop, in conjunction with asynchronous cancellations. They (usually) work by maintaining an explicit chain of trapping structures on the stack, just like SEH. That's not filtering on exception types, though, so maybe it doesn't come under the patent's claims.
See the C source for GNU Emacs (and Xemacs), which has done something like this for >20 years. It uses an explicit chain of structures on the stack, some handlers filter on the type of exception being thrown.
-- Jamie
Danny Thorpe, Borland's chief scientist replies to the patent issue here...2 94.aspx
http://blogs.borland.com/dcc/archive/2005/05/12/4
It is troubling to see so many mindless f**** here What do you, Slashdot people, know about the amount of original research needed to develop, for example, an advanced speech recognition system ? It's all software, a bunch of mathematical algorithms if you want. And it took decades of research at places like Bell Labs and IBM to achieve the present state-of-the-art. The "productive" people in your definition are people who do not produce and publish original algorithms, but just code existing published algorithms into products without feeling any need to compensate the original inventors. That's why software patents are needed. Of course, I am talking about real software inventions, the likes of RSA, LZW, Karmarkar etc.
I don't know the Borland patent, but I am intimately familiar with the VMS call frames, signal handling as well as exception handling. It is *very* similar to SEH. If someone wants prior, I believe I have a VAX architecture guide from way long ago!
See my journal, I write things there
I don't know the patent but I do know SEH from VMS extremely well (call frames, signal and exception handling). It is very similar to that implemented for NT and I have a VAX architecture guide for prior art.
See my journal, I write things there
Borland chief scientist, Danny Thorpe, made an interesting blog entry on the Delphi Compiler Core site. "If you're seeking reassurance that some artifact won't be used to sabotage a project, just ring the doorbell and ask. There are much better ways to open a discussion than throwing a brick through the window." The full entry is available here.
Truly throwaway code, for example, special purpose code that will be run for once or at most for a few days, then discarded.
Caution:
99% of "throwaway" code isn't.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
If you're seeking reassurance that some artifact won't be used to sabotage a project, just ring the doorbell and ask. There are much better ways to open a discussion than throwing a brick through the window.
But would it be as much fun?
Seriously, a comment like that deserves a brick through the window. As though they owned this sort of thing.
This incident, alone, will make sure that Borland gets no more of my business, whereas they have repeatedly had my business in the past.
Responding by asking for a nice request, even if it were an appropriate thing to do, can be just like SCO telling all the Linux users that they will sit down and work it out -- it looks great for the court record to have everyone suddenly acknowledging your fraudulent patent. As with others here, I used this sort of exception handling extensively on VAXes in many languages since the early '80s.
As with others, I have been ignoring Borland lately after they screwed up so often with stuff I paid good money for, so now, like SCO, they seem to want to register on the dark side of the register.
Anyway, the point is that Borland had a patentable idea, and Wine simply wants to use it, even though they could do it in other ways.
How does their attempt to steal the obvious designs of others qualify as innovation. Only Microsoft is allowed to claim that.
They are liars and frauds.
Borland patent protect particular implementation of SEH, you can found this code in xx.cpp of C++ Builder 6 RTL source. Do not use this model and this file in your applications - thus you avoid patent restrictions, it's easy.
Note that this argument only applies well to the not-for-profit aspects of programs like Wine & Winelib.
My reaction to this and other situations is:
We must be able to get around all these problems if we had a system like freenet supporting free speech transparently.
There's the CVS part of i2p (i2p.net). But it's unfortunate that these measures still cripple.
I want to say that there's a way, to perk views up from troll thoughts, that at the very least we can quietly swap books of contraband source code as they did with PGP.
When something is patented it normally stops other companies from making a product. With software patents you're not only stopping software companies but non profit organisations and individuals from making the product themselves ; compiling the sourcecode and simply chatting.
A possible defense can be boiling the code down to the critical banned text. You then have a set of words rather than a product. Then, at the very least it's clear that communications are being banned as well as a product resulting from it.
You can now begin to argue for your right to free speech.
Patents damaging the economy is one problem. Patents being hijacked for censorship is a bigger problem.
A blog I run for the wealth