Christmas tree I made this year
Merry Christmas!
do BLOCK does not count as a loop, so the loop control statements next, last, or redo cannot be used to leave or restart the block. See perlsyn for alternative strategies.
We sometimes do this trick to avoid dirtying lots of cachelines
which already held the correct value. It'll be extra-benefical
when dealing with other CPU's data, I expect.
Words of wisdom by Linus Torvalds
"..I do feel that actually seeing the merge conflicts really does help me get a feel
for what I'm merging.."
On Sat, Oct 30, 2010 at 6:51 AM, Chris Mason wrote:
>
> There were some minor conflicts with Linus' current tree, so my branch
> is merged with Linus' tree as of this morning.
Gaah. Please don't do this. Unless it's a _really_ messy merge, I
really do want to do the merge. It's fine to have an alternate
pre-merged branch for me to compare against, but please do that
separately.
So what I did was to just instead merge the state before your merge,
and in the process I:
(a) noticed that your merge was incorrect (you had left around a
unused "error:" label in btrfs_mount()), since I did use your merge as
something to compare against (see above). That label had been removed
in your branch by commit 0e78340f3c1f, but your merge resurrected it.
(b) saw just how horribly nasty your writeback_inodes_sb() end result
was, and decided to clean up the estimation of dirty pages in order to
not end up with the function call argument from hell.
Now, it's obviously totally possible that I screwed things up entirely
in the process, but as mentioned elsewhere, I do feel that actually
seeing the merge conflicts really does help me get a feel for what I'm
merging, and what the points of conflict are.
And yes, maybe it's just me showing my insecurities again. I have
various mental hangups, and liking to feel like I know roughly what is
going on is one of them. Doing the merges and looking at the code that
clashes makes me feel like I have some kind of awareness of how things
are interacting in the development process.
{"mail_check_recent",DT_BOOL, R_NONE, OPTMAILCHECKRECENT, 1 },
When set, Mutt will only notify you about new mail that has been received
since the last time you opened the mailbox. When unset, Mutt will notify
you if any new mail exists in the mailbox, regardless of whether you have
visited it recently.
2010-09-13 17:25 -0700 Michael Elkins (20b2d496349f)
* init.h: make $mail_check_recent set by default
Author: Ulrich Drepper
Date: Tue Oct 19 12:56:42 2010 -0400
Provide FP_FAST_FMA{,F,L} definitions for x86/x86-64.
diff --git a/sysdeps/x86_64/bits/mathdef.h b/sysdeps/x86_64/bits/mathdef.h
index 7b16189..9146392 100644
--- a/sysdeps/x86_64/bits/mathdef.h
+++ b/sysdeps/x86_64/bits/mathdef.h
[..]
+/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
+ builtins are supported. */
+# if __FP_FAST_FMA
+# define FP_FAST_FMA 1
+# endif
+
+# if __FP_FAST_FMAF
+# define FP_FAST_FMAF 1
+# endif
+
+# if __FP_FAST_FMAL
+# define FP_FAST_FMAL 1
+# endif
+
#endif /* ISO C99 */
On processors which do not implement multiply-add in hardware,fma
can be very slow since it must avoid intermediate rounding. `math.h' defines the symbolsFP_FAST_FMA
,FP_FAST_FMAF
, andFP_FAST_FMAL
when the corresponding version offma
is no slower than the expression `x*y + z'. In the GNU C library, this always means the operation is implemented in hardware.
Wired.com: Most programmers are particular about the music they listen to while coding or writing. What do you listen to?...
Stroustrup: Tchaikovsky’s Fifth, Wagner’s The Ring Without Words, Grieg’s Peer Gynt Suite, Sibelius, Nielsen’s The Inextinguishable, various Mozart concertos, The Dixie Chicks, Beatles’ Abbey Road, Handel’s Messiah and Water Music, Eric Clapton, Beethoven’s Fifth and Seventh. I looked to see what my laptop had been playing lately.
Wired.com: Any advice for young programmers?
Stroustrup: I guess giving advice is easy compared to taking it. Know your fundamentals (algorithms, data structures, machine architecture, systems) and know several programming languages to the point where you can use them idiomatically.Know some non-computer field of study well — math, biology, history, optics, whatever. Learn to communicate effectively in speech and in writing. Spend an unreasonable amount of time on some difficult topic to really master it. Try to do something that might make a difference in the world.
/2 ... if the value of the operand of delete is the null pointer the
operation has no effect.
/7 The delete-expression will call a deallocation function (3.7.3.2).
/2 ... the value of the operand of delete may be a null pointer value.
/7 If the value of the operand of the delete-expression is not a
null pointer value, the delete-expression will call a deallocation
function (3.7.4.2). Otherwise, it is unspecified whether the
deallocation function will be called. [ Note: The deallocation
function is called regardless of whether the destructor for the
object or some element of the array throws an exception. -- end note ]
Benford's law, also called the first-digit law, states that in lists of
numbers from many (but not all) real-life sources of data, the leading
digit is distributed in a specific, non-uniform way. According to this
law, the first digit is 1 almost one third of the time, and larger
digits occur as the leading digit with lower and lower frequency, to the
point where 9 as a first digit occurs less than one time in twenty.
1 30.1%
2 17.6%
3 12.5%
4 9.7%
5 7.9%
6 6.7%
7 5.8%
8 5.1%
9 4.6%
Following this idea, Mark Nigrini showed that Benford's law could be used
as an indicator of accounting and expenses fraud.
In the United States, evidence based on Benford's law is legally admissible
in criminal cases at the federal, state, and local levels.
Good catch! Thanks for the patch. I will include this into ext4
tree, and I will probably push it separately to Linus so that it gets
into 2.6.36, since this is a regresssion.
> By the way, isn't print_daily_error_info racy? Is it safe to call
> print_daily_error_info
> (by timer event (softirq)) when we're remounting fs, etc.?
It should be fine. Remounting doesn't actually change out the struct
superblock. There is a chance that the information might not be fully
complete if an error is printed exactly as the same time as
print_daily_error_info() is run, but I'm not sure it's worth trying to
protect against that race, since the worst that this will mean is a
confusing report in the /var/log/messages file, and the ext4 error
message will be printed right next to it, which will have all of the
information the system administrator will need.
What is the point of const iterators being unusable for elementsI mean that if I have a const collection object then no matter what
removal?
iterators I have I will not be able to erase any element. But if I
have a non-const collection object then why am I not allowed to erase
its elements with a const iterator? After all I could as well take new
non-const begin and advance it until it is equal to the const iterator
and use such iterator for erasure.
You are right, this will be fixed in the next standard, C++0x.
Perfectly right - therefore the Standard Library has fixed this
awful state by accepting LWG issue: lwg-defects
It is the constness of the container which should control whether it can be modified through a
member function such as erase(), not the constness of the iterators.
We no longer support gcc 3.x, so remove the workaround for it.
This patchset bumps the minimum supported gcc version to 3.4 for the
general kernel, and to 4.1 for x86.
Please read lkml.org/lkml/2010/9/13/464 and http://lkml.org/lkml/2010/9/13/73
Some of you have noticed that the last update was released 7 months ago. This is long, but these days, very few of the issues reported on 2.6 also affect 2.4, so basically the number of bug reports on 2.4 fades out quite fast.
So I'm releasing 2.4.37.10 here. If nothing happens before September 2011, it's possible that there won't be any 2.4.37.11 at all. By that time, the 2.6 kernel will have been available for almost 8 years, this should have been enough for anyone to have a look at it. Users now have one year to migrate or to report critical bugs.
At one point, I envisaged to start a 2.4.38 with a bunch of updated drivers. Now I'd prefer that the users migrate to 2.6.
If an attempt is made to modify the result of a conditional operator
or to access it after the next sequence point, the behavior is undefined.
If the second and third operands are lvalues and have the same type,5.16/5
the result is of that type and is an lvalue.
Otherwise, the result is an rvalue.
[..]
It is buggy by nature.
[..]
The problem is on the caller. Considering such udelays loop:
* if it's in a irq disabled section, call touch_nmi_watchdog(), because this
could prevent the nmi watchdog irq from firing
* if it's in a non-preemptable section, call touch_softlockup_watchdog(), because
this could prevent the softlockup watchdog task from beeing scheduled
* if it's from a preemptable task context, this should call cond_resched() to
avoid huge latencies on !CONFIG_PREEMPT
But acpi_os_stall() seem to be called from 4 different places, and these places
may run in different context like the above described.
#define ACPI_PREEMPTION_POINT() \
do { \
- if (!in_atomic_preempt_off() && !irqs_disabled()) \
+ if (!irqs_disabled()) \
cond_resched(); \
} while (0)
+#endif