Microsoft abandons the C language

K

Keith Thompson

Keith Thompson said:
You are mistaken. MSVS's support for C90 is reasonably good; their
support for C99 and C11 is nearly nonexistent, and deliberately so.
[...]

Here's a citation for that:

http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/

"We do not plan to support ISO C features that are not part of either
C90 or ISO C++." -- Herb Sutter, speaking for Microsoft

And if you want to argue that C90 support verifies your claim, here's
a quotation from the ISO C99 standard:

This second edition cancels and replaces the first edition, ISO/IEC
9899:1990, as amended and corrected by ISO/IEC 9899/COR1:1994,
ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2:1996.

and another from (the N1570 draft of) the ISO C11 standard:

This third edition cancels and replaces the second edition,
ISO/IEC 9899:1999, as corrected by ISO/IEC 9899:1999/Cor
1:2001, ISO/IEC 9899:1999/Cor 2:2004, and ISO/IEC 9899:1999/Cor
3:2007.
 
J

jacob navia

Le 28/08/12 00:35, Keith Thompson a écrit :
here's
a quotation from the ISO C99 standard:

This second edition cancels and replaces the first edition, ISO/IEC
9899:1990, as amended and corrected by ISO/IEC 9899/COR1:1994,
ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2:1996.


Interesting Mr Thompson.

I remember that I cited the same paragraph in this same group some
years ago, and I was flamed by Mr Heathfield and the other regulars
that maintained that "standard c" means C90 (As microsoft does now).

Well, better late than never!

P.S.
Specifically here is a message that I wrote around November 28, 2009,
and your answer below:
 
J

jacob navia

Le 28/08/12 01:13, jacob navia a écrit :
Le 28/08/12 00:35, Keith Thompson a écrit :


Interesting Mr Thompson.

I remember that I cited the same paragraph in this same group some
years ago, and I was flamed by Mr Heathfield and the other regulars
that maintained that "standard c" means C90 (As microsoft does now).

Well, better late than never!

Look for instance another one from heathfield: (Dec 15 2006)

jacob navia said:
<snip>

[jacob navia]
The current standard is C99, and that standard makes
older standards obsolete.

[heathfield]

If that is true, then your own implementation is obsolete, since it doesn't
conform to C99.

In practice, of course, C90 *is* the C Standard, no matter what ISO say,
and
C99 is what will eventually replace it *only* if sufficient people can be
bothered to write conforming C99 implementations - which almost nobody has
seen fit to do, up to now.
 
M

Melzzzzz

That presumably applies to C too. In that case why all the fuss in
this thread? Or maybe:



(from an expert in writing C compilers specific to Windows) using COM
isn't as simple as you seem to be implying.

Let's write COM object in C ;)
But, seeing as you're the expert, perhaps you can give an example in
writing a simple task in C to run under Windows, without using
'stone-age' DLLs and without a console. Such as Hello, World (just an
alert box will do). You might need to explain exactly how the
executable that the C is compiled to, actually talks to Windows.

Heh, last book about writing COM objects is out of print 15 years ago ;)
(BTW my Windows 7 still seems to have some 19,000 DLL files;
somebody's got their work cut out if they're all going to be replaced
by Windows 8.)

;)))
 
S

s0suk3

That presumably applies to C too. In that case why all the fuss in this

thread? Or maybe:













(from an expert in writing C compilers specific to Windows) using COM isn't

as simple as you seem to be implying.

He was talking about reimplementing his compiler so that it ran as a metro app (which is pretty crazy to even think about, and as he's been told, he doesn't need to do that; the desktop still exists in Windows 8). He wasn't talking about using COM in general.
But, seeing as you're the expert, perhaps you can give an example in writing

a simple task in C to run under Windows, without using 'stone-age' DLLs and

without a console. Such as Hello, World (just an alert box will do). You

might need to explain exactly how the executable that the C is compiled to,

actually talks to Windows.

When I said "stone age" I was referring to DLL-exported functions, not about DLLs themselves. COM components are DLLs anyway (or EXEs sometimes).

Anyway, the easiest way to create a COM component in C++ is with ATL. Thereisn't an equivalent for C, but you can do it without ATL (be it C or C++),although you have to do manually a lot of the things VS does for you.

First thing is to create an interface in an IDL (Interface Definition Language) file for the functionality you need:

[uuid(CBC6B4ED-107C-43b3-BA0A-054E6430F435), object]
interface IHelloCom : IUnknown
{
HRESULT SayHello();
}

Then you compile the IDL file with the MIDL compiler, which creates the equivalent interfaces in C or C++. For C++ it gives:

MIDL_INTERFACE("CBC6B4ED-107C-43b3-BA0A-054E6430F435")
IHelloCom : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE SayHello( void) = 0;

};

For C it gives:

typedef struct IHelloComVtbl
{
BEGIN_INTERFACE

HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IHelloCom * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);

ULONG ( STDMETHODCALLTYPE *AddRef )(
IHelloCom * This);

ULONG ( STDMETHODCALLTYPE *Release )(
IHelloCom * This);

HRESULT ( STDMETHODCALLTYPE *SayHello )(
IHelloCom * This);

END_INTERFACE
} IHelloComVtbl;

interface IHelloCom
{
CONST_VTBL struct IHelloComVtbl *lpVtbl;
};

Then you need to implement the interface:

class __declspec(uuid("7A5F33E4-F4B8-4932-9207-1EF2B642C910")) HelloCom : public IHelloCom
{
public:
// IUnknown methods:
HRESULT __stdcall QueryInterface(REFIID riid, void** ppvObject) { ... }
ULONG __stdcall AddRef() { ... }
ULONG __stdcall Release() { ... }

// IHelloCom methods:
HRESULT __stdcall SayHello()
{
MessageBox(nullptr, L"Hello COM!", L"Hello COM", 0);
return S_OK;
}
};

I don't really know how to do that one in C.

You also need to implement IClassFactory so that COM can instantiate our HelloCom class:

class HelloComFactory : public IClassFactory
{
public:
// ...
// same IUnknown methods
// ...

// IClassFactory methods:
HRESULT __stdcall CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject)
{
if (pUnkOuter != nullptr)
return CLASS_E_NOAGGREGATION;

HelloCom* pObject = new HelloCom();
pObject->AddRef();
HRESULT hr = pObject->QueryInterface(riid, ppvObject);
pObject->Release();
return hr;
}

HRESULT __stdcall LockServer(BOOL fLock) { ... }
};

And finally you need to write a function that will be called by COM in order to obtain the class factory:

STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppvObject)
{
IUnknown* pClassFactory;

if (rclsid == __uuidof(HelloCom))
pClassFactory = new HelloComFactory();
else
{
*ppvObject = nullptr;
return CLASS_E_CLASSNOTAVAILABLE;
}

pClassFactory->AddRef();
HRESULT hr = pClassFactory->QueryInterface(riid, ppvObject);
pClassFactory->Release();
return hr;
}

That's it for the server (the COM DLL containing the COM classes and interfaces). You need to build it and register the class and the interface in theWindows registry (that's something VS will do automatically for ATL projects).

And this could be the client:

int main()
{
CoInitialize(nullptr);

IHelloCom* pHelloCom;
HRESULT hr = CoCreateInstance(
__uuidof(HelloCom),
nullptr,
CLSCTX_INPROC_SERVER,
__uuidof(IHelloCom),
reinterpret_cast<void**>(&pHelloCom)
);

if (FAILED(hr))
return -1;

pHelloCom->SayHello(); // or IHelloCom_SayHello(pHelloCom) in C
pHelloCom->Release(); // IHelloCom_Release(pHelloCom)
CoUninitialize();
}

It looks way involved but it does have advantages for any real app, and like I said it's easier with ATL.

Besides, COM was succeeded by .NET. That's what puts me (and lots of other people, even inside Microsoft) off about Windows 8: they have downgraded ontechnologies. They went from .NET back to C++ and COM and (worse still) HTML and JavaScript.
(BTW my Windows 7 still seems to have some 19,000 DLL files; somebody's got

their work cut out if they're all going to be replaced by Windows 8.)

The destkop and everything there is in Windows 7 is still there...
 
A

Ansel

Stephen said:
Their own internal memos, both leaked to the press and discovered
during various anti-trust lawsuits, show that this was (and is) a
deliberate strategic decision on their part.

Have you really never heard of "Embrace, Extend, and Extinguish"?

I'll get back to David's post "shortly". The above cliche quotation probably
sums up his whole post accurately, and it reaks of the behavior of
politicians who have nothing to offer over their opponents: they lack any
substance, so they go looking for fault in their opponents. Hello? Does
anyone care how bad the others are? They want to know what *YOU* can do.

Is there actually an ISO C group (I don't know what to call it formally)
that doesn't include MS as a constituent? Because if not, then y'all should
stop singling MS out as not one of your own or take away their membership
card or something if you don't want them in your religion.
 
A

Ansel

David said:
Let me get this straight - you think that Microsoft took active part
in the standards committee,
Yes.

then the committee fixed and

I don't know what you mean by that. Explain.
published the
standard without Microsoft's agreement,

I think that the ISO process/managment may be deficient. (?)
and it is therefore it is the
standards committee, not Microsoft, that is to blame when Microsoft's
compiler doesn't follow the standard?

You said "blame". I am still trying to figure out if there is a problem and
if so, what the problem is. No one, though, as of yet, is forthcoming with
any relevant information.
Perhaps you are playing catchup with the world Microsoft lives in,
but this is the usual way Microsoft treats standards.
They like to be
part of lots of standardisation committees, and they like to push and
pull them in various directions (sometimes for the better, of
course). But they never consider themselves bound by the standards
in any way.

So your case against MS is done and now you want to talk about other things?
Hello? You have not given any substantive information that I suggested you
should if you have a beef with them. (Not *you* specifically--don't take
anything I say personally please).
In the case of C99, MS took part in and agreed on the standards.

"agreed" how? What does that mean? That they said, "oh yeah, that document
looks just fine"? Did they say they were going to use the document as a
requirements specification? Or is it just you that thinks that "sleeping
together really means something" (ref: Vanilla Sky)?
Some
parts of C99 were included almost entirely at MS's insistence,

Do they get more votes or something because they pay more? Are you saying
you went to the casino and the casino "stole" your money?
despite
the fact that they never supported them in the compiler
(unfortunately I can't remember the details or references - so I
can't object if you give that claim no credit). The main point is
that MS agreed to the standard, but decided not to implement it.

Definition required: what does "agreed to" mean?

Did they "agree" to use the standard as a requirements document?
If you want see an even clearer example of this behaviour, look at the
OOXML farce.

Whoa! One "standard" at a time please!
 
A

Ansel

James said:
They've never even fully adopted C99; they've barely even started to
support it, 13 years after original adoption.

To which I say, and have been saying in this thread: so what?! They went to
your church and didn't become <whatever your religion is> and now you are
pissed off? Well now, isn't your religion, "nice". Is it that you want MS to
bless your holy standard so that it can ride on MS's coattail?
MS C compilers have never supported more than a tiny sub-set of the
changes that were made in C99.

So what?!
 
A

Ansel

Keith said:
[Dropping comp.compilers.lcc, since this has nothing to do with the
lcc or lcc-win compiler]

rashid said:
Sorry this is garbage. MSVC supports all C/C++ standards, also extra
features (eg C++ style // comments will be accepted in C programs
too)

You are mistaken. MSVS's support for C90 is reasonably good; their
support for C99 and C11 is nearly nonexistent, and deliberately so.

Time out!! What does that mean?! "deliberately so". Is that an accusation?
Or a just a little boy throwing rocks?
 
A

Ansel

jacob said:
Le 28/08/12 00:35, Keith Thompson a écrit :


Interesting Mr Thompson.

I remember that I cited the same paragraph in this same group some
years ago, and I was flamed by Mr Heathfield and the other regulars
that maintained that "standard c" means C90 (As microsoft does now).

Well, better late than never!

P.S.
Specifically here is a message that I wrote around November 28, 2009,
and your answer below:

Shouldn't you be diligently preparing for your debut performance at the
committee meeting just 4 weeks away instead of "I, I, I-ing" in here? Maybe
take the next week off and/or eliminate/minimize anything that may hinder
your performance and then turn off your USENET/forum connections for the
next 3 and immerse yourself in your cause? And stop with the "oh I need
plane fair.. blah, blah", for that will hurt your cause immensely I think.
You buy the best webcam you can afford, set up an office where you live,
tell everyone else in the house to be quiet (or send them all off to the
in-laws) while you practice your presentation and get the technology working
with aplomb. You have 3 weeks until the big day. Stop procrastinating.

That said, will you be using a slide-deck? Powerpoint? Throw it on up here
(or other place/way)--I promise to "tear it to shreds" (I promise to not be
nice). (Note, I do not want to read your detailed papers and such).
 
A

Ansel

Stephen said:
I don't find it sensational;

Well then I am bored, and "disappointed". I'm serious about this stuff, and
you're just a bullshitter (or a wanker).
everyone who looks into the business side
of how Microsoft works comes to the same conclusions,

Citation required.
and they're
common knowledge in the industry by now.

What does that mean? Are you frustrated? Feeling oppressed? Do you hate
Microsoft? Jim Gates? What does that mean?!

That is true. Umm, .. did you mean *IT* does, or *THEY* do? Please clarify.

"other proprietary"? You're supposed to be programmers and careful at every
character typed, yet you write obtuse English? Oh wait, someone in this
thread suggested that clc was just a hangout for programmers and nothing
should be taken seriously as this is not a place to talk tech or science,
but rather to... what? Masturbate? My bad?

"Communism vs. capitalism"? That kind of quip may "place" you in your time.

Oh, OK.. ears perked now for this "most important" thought.

Who pushed whom?

And wouldn't *that* concept be in opposition to "K&R C is all we or anyone
will ever need".

"they force potential competitors"? Would you like to think about that some
more (I probably don't have that much time left for you to do that, but
hey)? As I don't have all the time you have, I will offer some assistance:
You can quibble

Are you suggesting that I am "quibbling"? With whom? You? Whom? Do tell.
over their motivations for doing so

You mean that you *wish* I was so that you would have something to do?
, but their track
record clearly demonstrates

"clearly". Irrefutably (sp). So let it be written, then, that clearly, not
everyone signed "the declaration of independence", but nary that, who gives
a shit about that, "the constitution" is much more important (sad to say).
that _is_ what they're doing.

I missed it, please "reitterate". What are *they* doing? Platform yours, do
tell (don't "blow it", this is your big chance!).
Once or
twice I could chalk up to a mistake, but their patterns of behavior is
consistent enough to be considered deliberate. They're not idiots; if
they wanted to do something different, they would.

You mean, "if they really *wanted* to be in our college fraternity, they
would not puke when a gallon of vodka was poured down their throat after
being bound and gagged by the "clearly" superior regime"?
Are you really a "leader" if your "followers" are a chain gang?

Ironic.
 
A

Ansel

Stephen said:
Actually,

SHUT UP!!! You tried to make it look like MS had 2 profitable products.
Enough is enough. I know you f'd up and just shot of a NG post, but now
you're trying to defend it? OK, noted: you're a hen-pecked "husband,
kinda-a-man-or-something-but-my-wife-won't-let-me"? Stop typing and put your
wife online. Um, I mean, let her type here if she is actually "the man
behind the man". (God forbid we'd have to endure *your* existence by seeing
her fat ass!). Dude, I'm not here to say "I told you so", but I'm also not
here to sacrifice for your mistakes.

(I am making up for missing Friday, cuz I was working). ;)
Microsoft sets up their divisions by market, each of which
make several products targeted at those markets--and share products,
eg. Windows is sold by the divisions targeting consumers, businesses,
etc., but packaged differently for each.

And there was some relevance in typing that? (I'm tough).
I think the term you are looking for is "product lines",

Hello. No. You said "products". OK, "I get it", most people here are
"dipping their toes" into adulthood/reality, and I'm "stupid" for addressing
everyone here as mature and intelligent adults?
and yes, the
Windows and Office product _lines_ contain several different products.

OK. I recognize now that the problem needs a solution. Ha! That was a lie!
(Hmm keith?).
The point was to distinguish those two products (product lines, to be
precise)

No, no. If you are that lucy-goosey, maybe programming is not your
fortition. I didn't call you out. I gave you vehicle to contextualize your
post. You chose to "regroup and armor".
from the rest of what Microsoft sells, and that was obvious
from the context.

It would seem, then, that either I am an idiot, or you are a liar.
 
A

Ansel

Stephen said:
Look at Microsoft's own financial reports, as referenced by others.

No, you said, you provide the link.You said: "Microsoft only has two
profitable products".

Are you standing by that or did you f-up royally saying that? (Dude, give it
up, you f-d up).
100%? I doubt it.

But you tried to make it look like C more than just historic incident. You
were not propagandizing, you were trying to sell snake oil.
But that's the primary language, i.e. that of the
core product features.

Citation required.

Do you work for MS as a programmer, developer, architect, designer? Why are
you speaking for MS's "coke formula" if you are not the "mixer of the
chemicals"? As you are "in the know", tell me, how has the codebase of
desktop Windows changed over the years. Explicitly, qualify and quantify the
use of C vs C++ iin the raw materials that sits on millions of desktops. I
ask, because I "am all ears" to know this (well, not really).
The flowery stuff around the edges, which
changes in every release, may well be in another language.

And you assert that from what you have said in the last few posts that you
are "smart" rather than "a sheeple"?
Statements from several current or former employees of Microsoft who
work(ed) on those products.

Are you sure you want to pursue your masturbatory episodes? You and
"disgruntled" MS employees? Waging what war? Tainted and now you have the
disease and expect that innocent life would even touch you? You don't have a
war. You want everyone else to have a war. Children, across generations you
want to perpetuate war. Yes?

(I make it up as I go along. In response to your hot air, fan-boy
(adolescent) ism. I actually do come here for technical information. I see
that "y'all" may be in the proverbial "rut" (and so many years!))

(Yes, I "folded" when he threatened to post a pic of his wife!)
Explicit statements from both Gates and Ballmer on the topic.

That is not a citation. You need schooling apparently, if you want to be
taken seriously. You are mildly less annoying than Oo Tiib. Of course, it is
illegal to "discriminate" upon IQ, for then, how could else any politician
be "president"?
Yes, I know none of the above are specific citations that would be
acceptable in an academic paper,

You "know", but still you spew? I suggest it differently: if it can't hang
on Wikipedia, .. um, then say so!
but they are solid enough for me to
be comfortable with my position--especially since I have never seen
even an _unsupported_ claim to the contrary.

Ahch (sp). Rebellious youth with nothing to do. Why don't you go to space?
(As in Mars). Oh, wait, "I know", why don't you sign up to "build" the
high-speed railway between Chicago and Detroit!!!

Problem solved! Huh? You have a purpose in life now. (Don't thank me! It was
Barrack's idea.)
 
J

Jens Gustedt

Am 28.08.2012 06:46, schrieb Ansel:
Throw it on up here
(or other place/way)--I promise to "tear it to shreds" (I promise to not be
nice). (Note, I do not want to read your detailed papers and such).

Interesting, if this isn't a declaration of war, I don't know what
would be. Good to know in what spirit you are. Makes discussions
effectively quite useless.

Jens
 
J

Jens Gustedt

Am 28.08.2012 07:47, schrieb Ansel:
Stephen Sprunk wrote:
SHUT UP!!!

you seem to have run out of arguments here

I have already seen quite a number of "interesting" people in NG, but
I rarely have seen somebody as rude as you.

Jens
 
A

Ansel

Jens said:
Am 28.08.2012 07:47, schrieb Ansel:

you seem to have run out of arguments here

I have already seen quite a number of "interesting" people in NG, but
I rarely have seen somebody as rude as you.

Jens

Insulting are you? Don't you worry your ugly head. I'm not here to save you.
Your "attitude" is history. I don't like it. Make your point. Wage your war.
Else shut up. (Well, no, don't fester it: you're a dick and your mommie
loves you.. ).

Psychopathic "society". (What I learned from clc?). :p

Next.
 
R

Rui Maciel

Ansel said:
It's not valid for the citation I called for though. You'd have to go back
a few posts in the thread to see to what "Citation needed." was being
applied to (which Tiib conveniently snipped to which he then provided
non-relevant information).

You did wrote this:

Also, don't forget that Microsoft only has two profitable products,
Windows and Office,

Citation needed.
</quote>


The link that Nick Keighley provided is a detailed description of where
Microsoft earns its money and what product lines are responsible for that.

Your attempt to blindly label a reference as "not valid", without even
looking into it and in spite of corroborating a specific statement that you
called into question, leads me to believe that you aren't really interested
in facts, and instead you are here specifically to put up a staunch defense
of all which is Microsoft, no matter what it costs and on what nonsense it
is based on.


Rui Maciel
 
B

BartC

Anyway, the easiest way to create a COM component in C++ is with ATL.
There isn't an equivalent for C, but you can do it without ATL (be it C or
C++), although you have to do manually a lot of the things VS does for
you.

First thing is to create an interface in an IDL (Interface Definition
Language) file for the functionality you need:

[uuid(CBC6B4ED-107C-43b3-BA0A-054E6430F435), object]
interface IHelloCom : IUnknown ....
Then you compile the IDL file with the MIDL compiler, which creates the
equivalent interfaces in C or C++. For C++ it gives:
MIDL_INTERFACE("CBC6B4ED-107C-43b3-BA0A-054E6430F435")

For C it gives:

typedef struct IHelloComVtbl
Then you need to implement the interface:

class __declspec(uuid("7A5F33E4-F4B8-4932-9207-1EF2B642C910")) HelloCom :
public IHelloCom
I don't really know how to do that one in C.

OK; I was hoping for something I could compile and use.
You also need to implement IClassFactory so that COM can instantiate our
HelloCom class:

class HelloComFactory : public IClassFactory
And finally you need to write a function that will be called by COM in
order to obtain the class factory:

STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppvObject)
That's it for the server (the COM DLL containing the COM classes and
interfaces). You need to build it and register the class and the interface
in the Windows registry (that's something VS will do automatically for ATL
projects).

And this could be the client:
IHelloCom* pHelloCom;
HRESULT hr = CoCreateInstance(
It looks way involved but it does have advantages for any real app, and
like I said it's easier with ATL.

It looks impossible. I've no idea what ATL and MIDL are for a start. (Google
eventually tells me it's the Active Template Library, and not the Atlas
Transformation Language!)

I'm sure these things can be made to work, but they are getting more
complex, and more difficult to use from simple languages. Here is my example
in plain C:

#include <windows.h>

int main(void){
MessageBox(0,"Hello, World!","Caption",0);
}

Even using CreateWindow() and a message loop, it's about 90 lines (thanks
Petzold). The MSDN documentation of these early Win32 functions now use C++,
but it's simple C++ that doesn't use classes, so
it can be used from C.

But try and use something more recent, such as GDI Plus, and it's all
defined in terms of classes. How the hell do you access those from C? Or
from my language (which just copies whatever C has to do!)? How would COM
help here?
Besides, COM was succeeded by .NET. That's what puts me (and lots of other
people, even inside Microsoft) off about Windows 8: they have downgraded
on technologies. They went from .NET back to C++ and COM and (worse still)
HTML and JavaScript.

The Metro thing (I'm not even sure what that is), is a side-issue; it is
more of simple, non-MS languages being gradually locked out. MS doesn't seem
to understand the problem:

"Windows GDI+ is a class-based API for C/C++ programmers"

I think they mean for C++ programmers. They're not even aware of C as a
language in it's own right.
 
A

Ansel

Rui said:
You did wrote this:



Citation needed.
</quote>


The link that Nick Keighley provided is a detailed description of
where Microsoft earns its money and what product lines are
responsible for that.

Your attempt

Whoa, I am doing what?

to blindly label a reference as "not valid", without ever

I am blind? and "without ever"?

looking into it]]] and in spite of corroborating a specific statement
that you called into question, leads me to believe that you aren't
really interested in facts, and instead you are here specifically to
put up a staunch defense of all which is Microsoft, no matter what it
costs and on what nonsense it is based on.

OK. I accept that completely.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,780
Messages
2,569,609
Members
45,254
Latest member
Top Crypto TwitterChannel

Latest Threads

Top