Now i'm doing some kind of translator (to C), that can turn second to its functional equivalent -- first:
void handle_mcucsr(void) __attribute__((section(".init3"))) __attribute__((naked));
mcucsr = MCUCSR;
MCUCSR = 0;
handle_mcucsr: sect[ion] .init3, naked! mcucsr = MCUCSR MCUCSR = 0
I'm back too. Back to my native places, native laguage etc. I've got some internet access and will share something (hopefully).
Want to start publication also in russian laguage. Let's see what will happen.
So, итак, я снова на кернелтрап.орг. Вернулся на родину, добыл немного интернета, и думаю начать публиковать информацию также на русском языке. Посмотрим к чему это приведёт.
Jakub Jelinek announced the availability of GCC 4.3.1 saying, "GCC 4.3.1 is a bug-fix release, containing fixes for regressions in GCC 4.3.0 relative to previous GCC releases." He adds the standard tag, "as always, a vast number of people contributed to this GCC release -- far too many to thank individually!"
Joseph Myers announced the availability of GCC 4.2.4 saying, "GCC 4.2.4 is a bug-fix release, containing fixes for regressions in GCC 4.2.3 relative to previous GCC releases." He adds, "as always, a vast number of people contributed to this GCC release -- far too many to thank individually!"
Joseph Myers announced the availability of GCC 4.2.3 saying, "GCC 4.2.3 is a bug-fix release, containing fixes for regressions in GCC 4.2.2 relative to previous GCC releases." He adds, "as always, a vast number of people contributed to this GCC release -- far too many to thank individually!"
"'Const' has *never* been about the thing not being modified. Forget all that claptrap. C does not have such a notion," began Linus Torvalds, responding to a query about why kfree() takes a const pointer. He continued, "'const' is a pointer type issue, and is meant to make certain mis-uses more visible at compile time. It has *no* other meaning, and anybody who thinks it has is just setting himself up for problems." He offered two explanations, beginning with simple C semantics, "from a very obvious and very *real* caller perspective, 'free()' really doesn't change the thing the pointer points to. It does something totally different: it makes the *pointer* itself invalid." He then added his second reason, "anything that *can* take a const pointer should always do so. Why? Because we want the types to be as tight as possible, and normal code should need as few casts as possible." When it was pointed out that GCC 4.2 displays warnings when casting a const pointer to a non-const, Linus replied:
"Either don't use a broken compiler (casting a const pointer to a non-const is definitely not a bug), or cast to 'unsigned long' (if it still complains, now the compiler is not just stupid, it's broken). The whole point of memory management is that we know how pointers work, and understand that they have a *bit* representation, not just the C semantics."
Mark Mitchell announced the availability of GCC 4.2.2 saying, "GCC 4.2.2 is a bug-fix release, containing fixes for regressions in GCC 4.2.1 relative to previous GCC releases." He adds, "the compilers in this release are covered by GNU General Public License version 3," making GCC 4.2.2 the first released under the GPLv3.
"This version brings a number of new checks, and a number of bug fixes," Andy Whitcroft noted in his announcement for version 0.10 of checkpatch.pl, used by Linux kernel developers to scan their code for common mistakes. Ingo Molnar expressed concern, "your checkpatch patch itself produces 22 warnings." He pointed out that there were numerous bogus warnings generated by the script, "ever since v8 the quality of checkpatch.pl has been getting worse and worse as there are way too many false positives. I'm still stuck on v8 for my own use, v9 and v10 is unusable." Ingo continued, "what matters is that only items should be displayed that i _can_ fix. With v8 i was able to make kernel/sched*.c almost noise-free, but with v9 and v10 that's not possible anymore." He noted that he was fine with there being a flag that would cause the script to generate additional questionable warnings, "but these default false positives are _lethal_ for a tool like this. (and i made this point before.) This is a _fundamental_ thing".
Andy added a new option to make it possible to disable some of the more subjective tests, noting that he preferred the tests to be enabled by default, "fundamentally I am not trying to help the people who are careful but those who do not know better. As for the false positives, those I am always interested in and always striving to remove, as they annoy me as much as the next man." Andrew Morton disagreed with the option being enabled by default, suggesting, "off, I'd say. That way people are more likely to use it. Or, more accurately, will have less excuses to not use it." Andy acquiesced, "off it is." He added, "I will also review the tests which are warnings and checks (subjective) and see if any are now miss-categorised." He pointed out that as the script is not a C language parser, instead detecting C language style validations using regular expressions, it won't ever be 100% accurate and is instead only intended as a useful guide.
Josh Triplett announced the release of Sparse v0.04. Originally written by Linux creator Linus Torvalds, Sparse has been maintained by Josh since 2006. Highlights of the new release include a new automated test suite invoked via '
make check', a new utility named '
c2xml' for generating an XML representation of C files, man pages for '
sparse' and '
cgcc', improved graphing, and numerous bug fixes. The project's web page explains:
"Sparse, the semantic parser, provides a compiler frontend capable of parsing most of ANSI C as well as many GCC extensions, and a collection of sample compiler backends, including a static analyzer also called 'sparse'. Sparse provides a set of annotations designed to convey semantic information about types, such as what address space pointers point to, or what locks a function acquires or releases."
Mark Mitchell announced the availability of GCC 4.2.1 saying, "GCC 4.2.1 is a bug-fix release, containing fixes for regressions in GCC 4.2.0 relative to previous GCC releases." He went on to note that future versions of GCC will be released under a new license, "GCC 4.2.1 will be the last release of GCC covered by version 2 of the GNU General Public License. All future releases will be released under GPL version 3."
Mark Mitchell announced the availability of GCC 4.2 saying, "GCC 4.2.0 is a major release, containing new functionality not available in GCC 4.1.x or previous GCC releases." He then linked the GCC 4.2 Release Series Changes, New Features, and Fixes document for more details as to what is new in this release.