- cmsg cancel <ntj6ad$u0r$13@dont-email.me> - 3 Updates
- Universal Scalability Law program - 1 Update
- C++ synchronization objects library - 1 Update
- Scalable Parallel C++ Conjugate Gradient Linear System Solver,Library version 1.53 - 1 Update
- Eternal life - 5 Updates
- "US judge: end software patents, copyright is sufficient" - 7 Updates
- Std::deque is really quite bad - 4 Updates
- "using" and "typedef" - 3 Updates
bleachbot <bleachbot@httrack.com>: Oct 11 07:08PM +0200 |
bleachbot <bleachbot@httrack.com>: Oct 11 07:10PM +0200 |
bleachbot <bleachbot@httrack.com>: Oct 11 07:19PM +0200 |
Ramine <ramine@1.1>: Oct 11 01:19PM -0400 Hello.......... Universal Scalability Law program Author: Amine Moulay Ramdane. Email: aminer@videotron.ca Description: This program analyzes system performance data with the Universal Scalability Law. You can download it from and read about it from here https://sites.google.com/site/aminer68/universal-scalability-law-for-delphi-and-freepascal Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: Oct 11 01:10PM -0400 Hello...... C++ synchronization objects library Author: Amine Moulay Ramdane Email: aminer@videotron.ca Description: This library contains 9 synchronization objects, first one is my scalable SeqlockX that is a variant of Seqlock that eliminates the weakness of Seqlock that is "livelock"of the readers when there is more writers, and second is my scalable MLock that is a scalable lock , and third is my SemaMonitor that combines all characteristics of a semaphore and an eventcount and also a windows Manual-reset event and also a windows Auto-reset event, and fourth is my scalable DRWLock that is a scalable reader-writer lock that is starvation-free and it does spin-wait, and five is is my scalable DRWLockX that is a scalable reader-writer lock that is starvation-free and it doesn't spin-wait, but it waits on the Event objects and my SemaMonitor, so it is energy efficient, and six one is my scalable asymmetric DRWLock that doesn't use any atomic operations and/or StoreLoad style memory barriers on the reader side, so it look like RCU, and it is fast. This scalable Asymmetric Distributed Reader-Writer Mutex is FIFO fair on the writer side and FIFO fair on the reader side and of course it is starvation-free and it does spin-wait, and seven one is my scalable asymmetric DRWLockX that doesn't use any atomic operations and/or StoreLoad style memory barriers on the reader side, so it look like RCU, and it is fast. This scalable Asymmetric Distributed Reader-Writer Mutex is FIFO fair on the writer side and FIFO fair on the reader side and of course it is starvation-free, and it does not spin-wait, but it waits on Event objects and my SemaMonitor, so it is energy efficient, and eight is my LW_Asym_RWLockX that is a lightweight scalable Asymmetric Reader-Writer Mutex that uses a technic that looks like Seqlock without looping on the reader side like Seqlock, and this has permited the reader side to be costless, it is FIFO fair on the writer side and FIFO fair on the reader side and it is of course Starvation-free and it does spin-wait, and nine is my Asym_RWLockX, a lightweight scalable Asymmetric Reader-Writer Mutex that uses a technic that looks like Seqlock without looping on the reader side like Seqlock, and this has permited the reader side to be costless, it is FIFO fair on the writer side and FIFO fair on the reader side and it is of course Starvation-free and it does not spin-wait, but waits on my SemaMonitor, so it is energy efficient. My scalable Asymmetric Reader-Writer Mutex calls the windows FlushProcessWriteBuffers() just one time, but my scalable Asymmetric Distributed Reader-Writer Mutex calls FlushProcessWriteBuffers() many times. You can download it from: https://sites.google.com/site/aminer68/c-synchronization-objects-library I have implemented my inventions with FreePascal and Delphi compilers that don't reorder loads and stores even with compiler optimization, and this is less error prone than C++ that follows a relaxed memory model when compiled with optimization, so i have finally compiled my algorithms implementations with FreePascal into Dynamic Link Libraries that are used by C++ in a form of my C++ Object Synchronization Library. If you take a look at the zip file , you will notice that it contains the DLLs Object pascal source codes, to compile those dynamic link libraries source codes you will have to download my SemaMonitor Object pascal source code and my SeqlockX Object pascal source code and my scalable MLock Object pascal source code and my scalable DRWLock Object pascal source code from here: https://sites.google.com/site/aminer68/ I have compiled and included the 32 bit and 64 bit windows Dynamic Link libraries inside the zip file, if you want to compile the dynamic link libraries for Unix and Linux and OSX on (x86) , please download the source codes of my SemaMonitor and my scalable SeqlockX and my scalable MLock and my scalable DRWLock and compile them yourself. My SemaMonitor of my C++ synchronization objects library is easy to use, it combines all characteristics of a semaphore and an eventcount and also a windows Manual-reset event and also a windows Auto-reset event, here is its C++ interface: class SemaMonitor{ SemaMonitor(bool state, long1 InitialCount1=0,long1 MaximumCount1=INFINITE); ~SemaMonitor(); void wait(signed long mstime=INFINITE); void signal(); void signal_all(); void signal(long1 nbr); void setSignal(); void resetSignal(); long2 WaitersBlocked(); }; So when you set the first parameter that is state of the constructor to true. it will add the characteristic of a Semaphore to the to the Eventcount, so the signal will not be lost if the threads are not waiting for the SemaMonitor objects, but when you set the first parameter of the construtor to false, it will not behave like a Semaphore because if the threads are not waiting for the SemaCondvar or SemaMonitor the signal will be lost.. the parameters InitialCount1 and MaximumCount1 is the semaphore InitialCount and MaximumCount. The wait() method is for the threads to wait on the SemaMonitor object for the signal to be signaled. and the signal() method will signal one time a waiting thread on the SemaMonitor object. the signal_all() method will signal all the waiting threads on the SemaMonitor object. the signal(long2 nbr) method will signal nbr number of waiting threads the setSignal() and resetSignal() methods behave like the windows Event object's methods that are setEvent() and resetEvent(). and WaitersBlocked() will return the number of waiting threads on the SemaMonitor object. As you have noticed my SemaMonitor is a powerful synchronization object. Please read the readme files inside the zip file to know more about them.. Here is my new invention that is my new algorithm: I have invented a new algorithm of my scalable Asymmetric Distributed Reader-Writer Mutex, and this one is costless on the reader side, this one doesn't use any atomic operations and/or StoreLoad style memory barriers on the reader side, my new algorithm has added a technic that looks like Seqlock, but this technic doesn't loop as Seqlock. Here is my algorithm: On the reader side we have this: -- procedure TRWLOCK.RLock(var myid:integer); var myid1:integer; id:long; begin myid1:=0; id:=FCount5^.fcount5; if (id mod 2)=0 then FCount1^[myid1].fcount1:=1 else FCount1^[myid1].fcount1:=2; if ((FCount3^.fcount3=0) and (id=FCount5^.fcount5) and (FCount1^[myid1].fcount1=1)) then else begin LockedExchangeAdd(nbr^.nbr,1); if FCount1^[myid1].fcount1=2 then LockedExchangeAdd(FCount1^[myid1].fcount1,-2) else if FCount1^[myid1].fcount1=1 then LockedExchangeAdd(FCount1^[myid1].fcount1,-1); event2.wait; LockedExchangeAdd(FCount1^[myid1].fcount1,1); LockedExchangeAdd(nbr^.nbr,-1); end; end; -- The writer side will increment FCount5^.fcount5 like does a Seqlock, and the reader side will grap a copy of FCount5^.fcount5 and copy it on the id variable, if (id modula 2) is equal to zero that means the writer side has not modified yet Fcount3^.fcount3, and the reader side will test again if FCount3^.fcount3 equal 0, and if id=FCount5^.fcount5 didn't change and if FCount1^[myid1].fcount1 that we have assigned before didn't change and that means that we are sure that the writer side will block on FCount1^[myid1].fcount1 equal 1. And notice with me that i am not looping like in Seqlock. And the rest of my algorithm is easy to understand. This technic that looks like Seqlock without looping like Seqlock will allow us to be sure that although the x86 architecture will reorder the loads of the inside reader critical section , the loads inside the reader critical section will not go beyond the load of FCount5^.fcount5 and this will allow my algorithm to work correctly. My algorithm is FIFO fair on the writer side and FIFO fair on the Reader side , and of course it is Starvation-free, and it is suitable for realtime critical systems. My Asym_RWLockX and LW_Asym_RWLockX algorithms work the same. You will find the source code of my new algorithm here: https://sites.google.com/site/aminer68/scalable-distributed-reader-writer-mutex It is the version 2 that is my own algorithm. and you can download the source code of my Asym_RWLockX and LW_Asym_RWLockX algorithms that work the same from here: https://sites.google.com/site/aminer68/scalable-rwlock Language: GNU C++ and Visual C++ and C++Builder Operating Systems: Windows, Linux, Unix and Mac OS X on (x86) Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: Oct 11 01:08PM -0400 Hello... Scalable Parallel C++ Conjugate Gradient Linear System Solver Library version 1.53 Author: Amine Moulay Ramdane Description: This library contains a Scalable Parallel implementation of Conjugate Gradient Dense Linear System Solver library that is NUMA-aware and cache-aware, and it contains also a Scalable Parallel implementation of Conjugate Gradient Sparse Linear System Solver library that is cache-aware. Please download the zip file and read the readme file inside the zip to know how to use it. Language: GNU C++ and Visual C++ and C++Builder You can download it from: https://sites.google.com/site/aminer68/scalable-parallel-c-conjugate-gradient-linear-system-solver-library Thank you, Amine Moulay Ramdane. |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 11 04:43AM -0700 Did you know you are an eternal being? And that you will go on after you leave this world? What's on the other side? What will it be like? We see this world today and we shudder to think about an eternity lived in something similar. Hate, disease, war, unknowns, variations, it all adds up to a quagmire of uncertainty day by day. Well rest assured. Our future is not like that. The world here exists this way because of sin. Disobedience to God allowed sin to enter in, and it's been destroying ever since. But God did not leave us, or forsake us despite our sin. He stepped into our world to rescue us, to secure a real future in the proper (sin-free) form. Jesus is our rescuer. He was born as a man, under our same laws so that He could save us. He was born of a virgin, so He didn't have any sin. He lived a sin-free life and God arranged it so He would go to the cross innocent, so He could take on our sin and die, and in that way our sin would die with Him, setting us free from sin, restoring us to eternal life. Jesus came into this world to rescue us. He loves us, wants to forgive us of our sin, and asks us to come to Him and say, "Jesus, forgive my sin." All who do are forgiven and immediately pass from death to life, being completely changed from within in that selfsame moment. After asking forgiveness of sin from Jesus, no longer are we the same. Our thinking changes. Our wants and wishes change. We are literal new creations. Though still here in the same body, our innermost parts, the invisible parts of our core, they are all changed, made shiny and new by Jesus Christ, His gift to us. Unmerited. Undeserved. It is simply His pleasure to give us forgiveness. Eternity will come to all people after death. For those who aren't forgiven of their sin, judgment awaits you for the sin you've committed, and with judgment ... condemnation. All people are guilty of some sin, and all people need to be forgiven. Jesus is willing to forgive all people, and He forgives all who come to Him asking forgiveness. He will forgive you right now. All you have to do is ask Him. Come to Jesus and ask forgiveness for your sin, and begin your life anew knowing that when you leave this world you will be in Heaven, with God, safe and secure forever. It is the most weight-on-the-chest lifting experience you'll ever know. Real freedom. Real inner change. I love you. It's why I teach you these things. But Jesus loves you more. Best regards, Rick C. Hodgin |
Wouter van Ooijen <wouter@voti.nl>: Oct 11 05:24PM +0200 Op 11-Oct-16 om 1:43 PM schreef Rick C. Hodgin: > Did you know you are an eternal being? Yuk! I am not a static constexpr, I am a run-time object with limited lifetime and a well-defined a destructor. W |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 11 08:35AM -0700 On Tuesday, October 11, 2016 at 11:25:02 AM UTC-4, Wouter van Ooijen wrote: > > Did you know you are an eternal being? > Yuk! I am not a static constexpr, I am a run-time object with limited > lifetime and a well-defined a destructor. That's where you're headed today. Jesus Christ has the ability to change your fate. All you have to do is come to Him and ask Him to forgive your sin. He supernaturally changes you (a miracle of God, just like the miracle of your first birth, by the way). Best regards, Rick C. Hodgin |
Jerry Stuckle <jstucklex@attglobal.net>: Oct 11 12:31PM -0400 On 10/11/2016 11:24 AM, Wouter van Ooijen wrote: > Yuk! I am not a static constexpr, I am a run-time object with limited > lifetime and a well-defined a destructor. > W One thing about it. There may or may not be eternal life. But having to put up with Rick's continued proselytizing makes life seem eternal! -- ================== Remove the "x" from my email address Jerry Stuckle jstucklex@attglobal.net ================== |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 11 09:44AM -0700 On Tuesday, October 11, 2016 at 7:47:26 AM UTC-4, Rick C. Hodgin wrote: > safe and secure forever. It is the most weight-on-the-chest lifting > experience you'll ever know. Real freedom. Real inner change. > I love you. It's why I teach you these things. But Jesus loves you more. There is an active enemy at work in this world. He works by injecting thoughts, emotions, feelings, into our flesh. These come in the form of teachings from high places, our leaders actions, and down to the levels of personal interaction between people. Some forms are obvious like addiction, depression, road rage. Others are more subtle and are easily categorized as just "people being people" by many. That enemy wants you to believe he doesn't exist, and that there aren't spiritual influences in this world. He wants you to think it's all just flesh and it isn't tied to anything more, or that there isn't anything beyond this world, that evolution produced us, and we will just wink out when our time is up. It's a lie. It's a lie given by a heinous enemy of God who is trying to prevent you from being freed from the sin he's trapped you in, so that you can be restored to the glorious and beautiful eternal beings God original created you to be. Jesus Christ has come to make it possible. He takes your sin away so you are without sin before a Holy God, restored rightly unto Him, alive forevermore. We are made in the image and likeness of God, and we will live on in eternity like the angels ... if Jesus Christ takes away our sin. If He doesn't take away our sin, we will live on in eternity in the fires of Hell, contained in our sin for all time, never able to influence another minute aspect of His universe as by our unchecked sin-loving desires. Jesus Christ literally saves people from Hell. All who call upon His name asking forgiveness are saved. Be one of them. Live on in eternity in a body like the angels that never tires, never hungers, never thirsts, but is beautiful and always operating at peak efficiency, in God's great and glorious Kingdom where love and joy abound forever. It sounds like a "And they lived happily ever after" story ... but it's even more than that, as there are some things in Heaven we can't even talk about here, but they await all who are saved: http://biblehub.com/kjv/2_corinthians/12-4.htm 4 How that he was caught up into paradise [the third Heaven], and heard unspeakable words, which it is not lawful for a man to utter. The first Heaven is the air. The second is space and everything visible. But there's a third Heaven which we cannot see, and it is of such a kind that the things spoken there cannot even be uttered lawfully by a man. Glorious things await on the other side of death for all who are in Jesus Christ. But for those who are not in Him, forgiven by Him, then their sin remains upon them and they are lost forever to the fires and torments of Hell. Best regards, Rick C. Hodgin |
woodbrian77@gmail.com: Oct 10 06:11PM -0700 On Monday, October 10, 2016 at 5:57:20 PM UTC-5, Rick C. Hodgin wrote: > http://biblehub.com/kjv/1_corinthians/10-24.htm > 24 Let no man seek his own, but > every man another's wealth. The King James Version is poetic and all, but isn't that great in my opinion. The New American Standard Bible translates that last verse like this: "Let no one seek his own good, but that of his neighbor." And I think writing it as: Let no one only seek his own good, but that of his neighbor. may be close to the intent. Brian |
"Chris M. Thomasson" <invalid@invalid.invalid>: Oct 10 06:41PM -0700 On 10/9/2016 6:07 PM, Rick C. Hodgin wrote: > Profit isn't bad. A purposed pursuit of profit without labor is bad. > And it's something different if you're handed wealth. Such unexpected > gifts are to be uses to help God's people, to employ, gift, etc. Damn it Rick! Okay... The next time somebody hands you wealth, give some to everybody on this group! |
woodbrian77@gmail.com: Oct 10 06:46PM -0700 On Monday, October 10, 2016 at 8:41:53 PM UTC-5, Chris M. Thomasson wrote: Chris, please don't swear here. Brian Ebenezer Enterprises - Sheep may safely graze. http://webEbenezer.net |
"Chris M. Thomasson" <invalid@invalid.invalid>: Oct 10 06:53PM -0700 > On Monday, October 10, 2016 at 8:41:53 PM UTC-5, Chris M. Thomasson wrote: > Chris, please don't swear here. Ummm, the word _damn_ actually offends you? Wow. Just, wow. |
"Chris M. Thomasson" <invalid@invalid.invalid>: Oct 10 07:02PM -0700 On 10/10/2016 6:41 PM, Chris M. Thomasson wrote: >> Profit isn't bad. A purposed pursuit of profit without labor is bad. >> And it's something different if you're handed wealth. Such unexpected >> gifts are to be uses to help God's people, to employ, gift, etc. Now wait a minute here... You are saying that I can only pay employees with "unexpected gifts", or else I will go to Hell? |
Melzzzzz <mel@zzzzz.com>: Oct 11 04:02AM +0200 On Mon, 10 Oct 2016 18:53:25 -0700 > > wrote: > > Chris, please don't swear here. > Ummm, the word _damn_ actually offends you? Wow. Just, wow. God does not like such ;) -- press any key to continue or any other to quit |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 11 05:03AM -0700 On Monday, October 10, 2016 at 10:02:14 PM UTC-4, Chris M. Thomasson wrote: > >> gifts are to be uses to help God's people, to employ, gift, etc. > Now wait a minute here... You are saying that I can only pay employees > with "unexpected gifts", or else I will go to Hell? Chris, if you want to know the truth ... pursue the truth. You are demonstrating yourself to be an individual who doesn't seek the truth, either purposefully so as to mock my posts and mock God, or because you simply are not seeking the truth and therefore honestly do not understand. In both cases I advise you: seek the truth. Approach the material with an inquisitive mind. Consider what it says, ponder on it before you react. If you press in and ask questions within your mind, God will know you are doing this and He will give you those answers. Some will come immediately, or shortly thereafter. Others might need to be revealed to you differently, and something will happen in your life some hours or days later where you'll be in a circumstance where it will then make sense to you. Be patient. God moves with purpose, deliberately, with a plan. Satan moves upon our emotions, our feelings, our flesh, trying to get us to respond in the moment. You can remember this by the example God gave us: weeds grow up quickly, but are useless weeds. True plants, true fruit, true vegetables, those that are good for eating full of vitamins and minerals, these take time to grow. They require cultivation, to keep the weeds away, protection from the wild animals which come to eat them up. It is the same with God's word. Give it that same type of attention, protecting it from the weeds, protecting it from the wild animals that will come to consume it (unholy people, false teachings, false doctrines), and you will be on your path. In short: Dig deep in your thinking on the things of God, and be patient. Best regards, Rick C. Hodgin |
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 11 05:49AM +0200 > For now I took OO Tiib's advice to use std::queue. That > resulted in an 80 byte reduction in the size of the executable. Wow! :-o Cheers!, - Alf |
Juha Nieminen <nospam@thanks.invalid>: Oct 11 06:08AM > It's also much more efficient to delete items from the beginning or > middle of std::deque than std::vector. From the beginning sure, of course. But from the middle? It requires as many operations as with std::vector. If there are differences, I don't think they are so big. --- news://freenews.netfront.net/ - complaints: news@netfront.net --- |
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 11 09:10AM +0200 On 11.10.2016 08:08, Juha Nieminen wrote: > From the beginning sure, of course. But from the middle? It requires as > many operations as with std::vector. If there are differences, I don't > think they are so big. In the formal, yes, but reportedly a typical std::deque implementation uses a sequence of blocks of items. Only the items within a block then need to be shifted. Not all items till the end of the item sequence. E.g. see <url: http://stackoverflow.com/questions/5728359/stl-internals-deque-implementation> I am not sure how constant time [] access is provided with this implementation. That's an interesting question that maybe can be answered by inspecting some source code. Now that I think of it. ;-) The standard's requirements instead makes it seem more like a cursor gap array, with the gap fixed to be between end and beginning. With a cursor gap there's no problem providing constant time [] access, and your "requires as many operations as with std::vector" would be true also for the in-practice. Cheers & hth., - Alf |
mark <mark@invalid.invalid>: Oct 11 02:02PM +0200 On 2016-10-11 09:10, Alf P. Steinbach wrote: > need to be shifted. Not all items till the end of the item sequence. > E.g. see <url: > http://stackoverflow.com/questions/5728359/stl-internals-deque-implementation> "Only the items within a block then need to be shifted." Which deque implementation is capable of that? I haven't seen any. All the ones I have looked at use arrays of fixed-size buckets and shift everything either to the front or the back on insertion. None have buckets with a variable number of items (except front and back bucket). |
"Öö Tiib" <ootiib@hot.ee>: Oct 10 04:46PM -0700 On Tuesday, 11 October 2016 00:20:38 UTC+3, Juha Nieminen wrote: > In practice the need is so exceedingly rare that it just doesn't make > sense to always use the more cumbersome syntax just so that the 0.01% > of cases where it's actually needed would fit. Is it really more cumbersome on 99.99% of cases? In practice if member functions returns something at all then it is often object of some nested type or typedef. Lot of the member functions are not defined inline. Such definition will actually have slightly less stutter while declaration will have more: // class class Holder { using Value = int; // or whatever other nested type // ... Value getter(); // less bloat auto taker()->Value; // more bloat }; // stutter bloat Holder::Value Holder::getter() { return 41; } // no stutter auto Holder::taker()->Value { return 42; } I don't like it that much anyway ... but perhaps it is because I'm getting old. > (Also, how many of those trailing return type examples are such that > it wouldn't work with just the 'auto' return type without explicitly > specifying the trailing type, as per C++14?) That variant wastes my time. I want to see some type not to conclude it out from body. |
Juha Nieminen <nospam@thanks.invalid>: Oct 11 06:05AM >> specifying the trailing type, as per C++14?) > That variant wastes my time. I want to see some type not to conclude it > out from body. I would say that if you are using an 'auto' return type, then the actual type doesn't matter. Also, C++17 will allow the return type to actually be variable, and depend on the parameter types. --- news://freenews.netfront.net/ - complaints: news@netfront.net --- |
"Öö Tiib" <ootiib@hot.ee>: Oct 11 03:55AM -0700 On Tuesday, 11 October 2016 09:05:41 UTC+3, Juha Nieminen wrote: > > out from body. > I would say that if you are using an 'auto' return type, then the actual > type doesn't matter. When type of what a function returns does not matter? To me it usually matters (if the function matters at all). Why it returns it if it does not matter what it is? I think about that 'auto' in function declaration as 'function' keyword of Ada (as opposed to 'void' that can be imagined as 'procedure' keyword of Ada). > Also, C++17 will allow the return type to actually be variable, and > depend on the parameter types. It is possible that there won't ever be C++17 and also no one knows what it will be. C++14 already did bring more damage than benefits. Currently it seems that in committee are left only saboteurs from companies like Apple, Oracle, Google, Microsoft, Amazon and IBM that try to screw with it to each other. Perhaps we should boycott those companies. |
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page. To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com. |
No comments:
Post a Comment