C

new language: programming that can speak to modern hardware easily

Submitted by olecom
on November 27, 2009 - 8:10am

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));
void handle_mcucsr(void)
{
    mcucsr = MCUCSR;
    MCUCSR = 0;
}

handle_mcucsr: sect[ion] .init3, naked!
	mcucsr = MCUCSR
	MCUCSR = 0

Language tools. Языковые приблуды

Submitted by olecom
on November 27, 2009 - 7:34am

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, итак, я снова на кернелтрап.орг. Вернулся на родину, добыл немного интернета, и думаю начать публиковать информацию также на русском языке. Посмотрим к чему это приведёт.
--

GCC 4.3.1, Bug Fixes

Submitted by Jeremy
on June 10, 2008 - 1:20am
Tools

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!"

GCC is the GNU Compiler Collection which includes C, C++, Objective-C, Fortran, Java, and Ada compilers. Download GCC 4.3.1 from your nearest gcc.gnu.org mirror.

GCC 4.2.4, Bug Fix Release

Submitted by Jeremy
on May 21, 2008 - 2:41pm
Tools

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!"

GCC is the GNU Compiler Collection which includes C, C++, Objective-C, Fortran, Java, and Ada compilers. Download GCC 4.2.4 from your nearest gcc.gnu.org mirror.

GCC 4.2.3, Bug Fix Release

Submitted by Jeremy
on February 4, 2008 - 12:33am
Linux news

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!"

GCC is the GNU Compiler Collection which includes C, C++, Objective-C, Fortran, Java, and Ada compilers. Download GCC 4.2.3 from your nearest gcc.gnu.org mirror.

C Semantics, Constants and Pointers

Submitted by Jeremy
on January 17, 2008 - 3:20pm
Linux news

"'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."

GCC 4.2.2 Released

Submitted by Jeremy
on October 9, 2007 - 11:52pm

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.

GCC is the GNU Compiler Collection which includes C, C++, Objective-C, Fortran, Java, and Ada compilers. Download GCC 4.2.2 from your nearest gcc.gnu.org mirror.

Improving checkpatch

Submitted by Jeremy
on September 30, 2007 - 3:27am
Linux news

"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.

Sparse v0.4 Released

Submitted by Jeremy
on September 17, 2007 - 12:06pm
Linux news

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."

Tools: GCC 4.2.1 Released

Submitted by Jeremy
on July 21, 2007 - 5:58pm
Applications and Utilities

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."

GCC is the GNU Compiler Collection which includes C, C++, Objective-C, Fortran, Java, and Ada compilers. Download GCC 4.2.1 from your nearest gcc.gnu.org mirror.

Tools: GCC 4.2.0 Released

Submitted by Jeremy
on May 16, 2007 - 12:03am
Applications and Utilities

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.

GCC is the GNU Compiler Collection which includes C, C++, Objective-C, Fortran, Java, and Ada compilers. Download GCC 4.2.0 from your nearest gcc.gnu.org mirror.