Looks like I must separate the ClearAll[...] from the definition of holdAsgts in separate cells rather than pseudoseparated with semicolon (CompoundExpression). Seems like the ClearAll gets evaluated when I evaluate a call of holdAsgts. Might be a Notebook issue but I have a workaround.
@GeorgeWolfe WRI seem to be in denial about the slowness of date functions. I know finance users who just avoid using it altogether or write their own code. As of V9 the benchmark was that Excel was 80 times faster give or take. None of the date stuff seems to have been written with large scale finance usage in mind. Only toy usage with a few dates I think
@GeorgeWolfe if you are likely to be wanting the same plot types over and over then rolling your own using ListPlot or ListLinePlot will give you way better performance than using DateListPlot -- must be a lot of bloatware under the hood.
Interestingly, the behavior I reported above about the Internal`Bag functions in Linux goes away if you disable the predictive interface. Seems to be a whole set of functions affected by this predictive interface in V10.
@rm-rf Talking of "new stuff" being slow, the positive take might be that if they would succeed restructuring the kernel for high-performance JITting, the whole problem could just go away. The sad part about this is that there are almost no hints of that happening, and large portions of the implementation still depend on intricate, old C code.
In the long term, non-imperative code has so many possibilities for transforming it to efficient and parallelism-scalable versions. Less there is C code in the system, the better it is in the long term, but worse in the short term.
If I'd be leading WRI, I'd probably try to make LLVM the back-end of the kernel and something very like PyPy/RPyPy interpreter-to-JIT generator a "middle-end", if you mind the terminology.
... and write everything that's not strictly an central performance primitive (think of typical machine precision matrix ops) or low-level portion of the kernel in a high-level language, probably full or restricted set of Wolfram language.
@kirma This is exactly what I'd also do, and I have mentioned very similar ideas here and there, but in the context of Mathematica, that would be a large project. I think, making this all work may be much harder than it may look from a distance, for all kinds of reasons. I seriously doubt that project of such magnitude would be considered in the company any time soon (although this is just my rather uneducated opinion).
@LeonidShifrin Definitely the size of that project would be problematic, but it is not necessarily a single monolith. Mr. Wolfram does tend to brag that he has very long-term plans on software development, though.
@MikeHoneychurch I'm relieved to know that other users consider this "new stuff" slowness to be a problem too. I wonder if WRI is privately distraught these problems. They undermine the value of these new things.
I'd say it's business as usual in software business. It's not that uncommon that new features are almost unusable in the version that introduces them, apart from specific usage scenarios if a product allows complex configuration...
@GeorgeWolfe It has been said that a lot of the new stuff in Mathematica 10 comes from the Wolfram Alpha project. I don't think the performance is causing them any distraught, as long as it works for that product.
@GeorgeWolfe Yeah, DateDifference used to be slow, but it has become even slower. I quite often make up some quick date functions myself to speed up things.
Do you hate the guys trying to optimize every single part of a process? I'm one of those. Believe me, it's even harder for me. When I sit next to someone watching him writing something, taking the hand off the keyboard to mark a portion of text with the mouse, make a right-click just to copy&past...
@Szabolcs I have, it runs fine and both compiling and librarylink are OK
wait, now that I try again, Compile says that
Compile::nogen: A library could not be generated from the compiled function.
although this did happen before intermittently. I will investigate this further. In any case, I did not notice anything
@kirma However, it seems that with Mathematica you usually get little improvement in performance of existing stuff between versions. At least I haven't noticed any after the introduction of compilation to C
@Murta hm, just came here to tell Szabolcs the same thing (he asked recently)
@acl I think there have been mentions of some algorithms improving (typically jumping into another, less naive algorithm and better complexity class).
I believe the internal interpreter is quite a troublemaker in its' size and complexity, and it's a bit hard to tackle in a way that wouldn't make that code even more unmaintainable.
@acl Well, it's pretty hard to comment that meaningfully without seeing the actual implementation. But yes, I guess they're implemented something else than efficiency in mind.
Screenshot
Use /command shortcuts to perform common chat tasks:
See message history inline:
Easily preview replied-to messages:
And much, much more...
About
Legends tell of a prolific Meta Stack Overflow chatter who despised using their mouse above all things. In an effort to keep t...
Foreword: I have absolutely no idea what I did.
The above script did not work in Chrome. Therefore, I read through some documentation about user-scripts and found that Chrome does not support unsafeWindow. Digging further, I found this answer where @tghw describes how to mimic the behavior. Comb...
@rm-rf I have noticed a strange trend over the last week or so. It looks like someone is deliberately voting up those answers of mine which could, with just that vote, get me another silver badge of this or that kind. I don't mind having those, but this kind of manipulation (even if well-minded) makes me feel a bit uneasy. I wonder if you could, as a mod, have any comments on this matter - may be just confirming that I didn't become a complete paranoid.
@LeonidShifrin What isn't unusual is that when people stumble over an answer they like, that they sometimes scan all answers from that user and vote up.
@halirutan Trust me, this is more than just that. I have experienced that before. This time it is something special: the answers that got voted up had a unusually high percentage of those, where a single vote would bring me over certain barrier to get some silver badge. I am totally sure that this case is different from others in the past.
@halirutan Perhaps someone thinks that I need more silver badges. I have nothing against that, but such selective voting makes me feel a bit uneasy. Like if you were driving a car which is safe but where someone interferes with your driving, adding more gas or making a left turn, and you can just observe.
@halirutan Of course, there is always a chance that I am just paranoid, but as they say, being a paranoid doesn't mean that you aren't followed :) Anyway, I got used to trust my instincts.
@LeonidShifrin No, I believe too that this is surely possible. Since we have even user-scripts that show you the answers that need only one or two votes to come over certain levels, I guess there may be users doing the same.
If you like I can tactically downvote some of your answers and bring you under the badge level again.
@halirutan I have nothing against more badges, but I don't like when there are manipulations with the system, and more so when those manipulations directly affect me.
@halirutan At least this has been my impression. Folks like @rm-rf would know for sure.
@halirutan We are lucky as a community to have been spared from lots of games with the system, which on other SE sites people try to play all the time. I am sure @rm-rf has lots of interesting stories to tell about that, as I know that he was / is quite active on SO Meta and generally knows quite a bit about it, plus he is also a mod.
@halirutan Interesting. I am sure that this capability was introduced for a reason. I also don't recall anything like that in our chat room. But I can believe that in some others with much more people and more random people, this can become a problem.
@LeonidShifrin Btw, on another topic: I haven't written you for a very long time. I didn't forget you (or @RolfMertig) but I'm almost finished with the new living situation and I thought I wait until I can send some awesome pictures instead of something half-finished.
@LeonidShifrin Ah, and since you are here. Lately, I needed/wanted to implement a binary decision diagram in Mathematica. Is there maybe a package you are aware of or did you do something like this by yourself?
@halirutan That would be great! I have been quite busy myself during the last few months, and, how to put it, not being quite myself. So, I probably wouldn't be able to fully appreciate your pictures / email, before. Now things seem to gradually get better. So, I will be looking forward to your pictures! I will also reply and describe a bit what's been happening to me over the last few months.
Basically, I have a function f[b1,...,b26] which returns a boolean (and takes 26 boolean arguments). It's a black box function, but you can call it for each 2^26 possible permutations.
f takes quite some time, so I want to convert it into a BDD (basically, a reduced and optimised BDD = ROBDD).
@LeonidShifrin I want to store the BDD in a fast loadable way. The creation of the BDD may take several hours but if I could compile it into a Mathematica c-function, it would be very fast.
@LeonidShifrin A brute force way (slow and memory hungry) would be to make a table of f[..] with all permutations and use this as lookup table. The reduced and optimised tree is just very fast and doesn't need much memory because it collapses equivalent subtrees.
@LeonidShifrin And to turn my function f into that reduced and optimised tree.