Spam detection software, running on the system "mx.qt-project.org",
has identified this incoming email as possible spam. The original
message has been attached to this so you can view it or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: Greetings, I wanted to let you all know that Fornux C++
Superset
now fully supports: - Nested classes and structures - Lambda functions -
Parallel compilations Here's a reminder of what I am referring to with a 3
min pitch: https://youtu.be/bkIzqclCOk4 [...]
Content analysis details: (4.1 points, 4.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60%
[score: 0.4818]
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider
(philippeb8[at]gmail.com)
1.0 RDNS_DYNAMIC Delivered to internal network by host with
dynamic-looking rDNS
2.3 FORGED_MUA_MOZILLA Forged mail pretending to be from Mozilla
The original message was not completely plain text, and may be unsafe to
open with some email clients; in particular, it may contain a virus,
or confirm that your address can receive spam. If you wish to view
it, it may be safer to save it to a file and open it with an editor.
--- Begin Message ---
Greetings,
I wanted to let you all know that Fornux C++ Superset now fully supports:
- Nested classes and structures
- Lambda functions
- Parallel compilations
Here's a reminder of what I am referring to with a 3 min pitch:
https://youtu.be/bkIzqclCOk4
I know Qt's QML / Javascript interpreters use a garbage collector, which
is a huge problem in terms of efficiency and predictability.
This solution is really important because it will make the resulting
software / server not crash or leaking its memory in the cyber-security,
stock market, aerospace, aeronautic, telecommunication and gaming
industries. Thus guaranteeing happy Qt customers!
If you are interested to give it a try then I will forward the scripts
to the respective person to try it out by piping the source code on a
server.
The attached examples and libarchive are perfectly stable in my testings.
Sincerely,
--
Phil Bouchard
Founder
www.fornux.com
/**
Fornux C++ Superset 2.3 -- Example.
Outputs:
Speed: 13602.559545 loops / s; Memory usage: 3936 kilobytes
*/
#include <stdlib.h>
#include <unistd.h>
#include <sys/resource.h>
#include <chrono>
#include <iostream>
#include <iomanip>
using namespace std;
using namespace std::chrono;
class A
{
int x;
int i;
int j;
};
struct B : virtual A
{
int k;
int l;
};
struct C : virtual A
{
int m;
int n;
};
struct D : B
{
int o;
int p;
};
struct E : C
{
int o;
int p;
};
struct list_node : D, E
{
struct parent
{
struct child
{
int i;
} j;
int i;
} j;
int q;
int r = 20;
list_node * p;
list_node() : q(10) {}
void foo()
{
int i;
double d;
auto n = i;
auto p = & n;
auto o = j;
auto f = [this, i, d](int a) { return r + a; };
cout << __PRETTY_FUNCTION__ << ": " << f(10) << endl;
}
};
typedef struct { int i; } test;
test * foo()
{
cout << __PRETTY_FUNCTION__ << endl;
return (test *) 0;
}
int main(int argc, char * argv_[])
{
char ** argv = new char *[argc];
for (int i = 0; i < argc; ++ i)
argv[i] = argv_[i];
list_node n;
list_node m(n);
foo();
n.foo();
milliseconds before, after;
before = duration_cast<milliseconds>(system_clock::now().time_since_epoch());
for (int i = 0; ; ++ i)
{
// cycle
struct list_node * p = new list_node;
p->p = new list_node;
p->p->p = new list_node;
p->p->p->p = p;
// stats
after = duration_cast<milliseconds>(system_clock::now().time_since_epoch());
struct rusage r_usage;
getrusage(RUSAGE_SELF, & r_usage);
cout << "\rSpeed: " << setprecision(11) << i * 1000.0 / (after - before).count() << " loops / s; Memory usage: " << r_usage.ru_maxrss << " kilobytes" << flush;
usleep(1);
}
return 0;
}
/**
Fornux C++ Superset 2.3 -- Example.
Outputs:
Speed: 14173.347815 loops / s; Memory usage: 3936 kilobytes
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
double time_diff(struct timeval x , struct timeval y);
struct list_node
{
struct list_node * p;
};
int main()
{
struct timeval before, after;
gettimeofday(& before, (struct timezone *) NULL);
for (int i = 0; ; ++ i)
{
// cycle
struct list_node * p = malloc(sizeof(struct list_node));
p->p = malloc(sizeof(struct list_node));
p->p->p = malloc(sizeof(struct list_node));
p->p->p->p = p;
// stats
gettimeofday(& after, (struct timezone *) NULL);
struct rusage r_usage;
getrusage(RUSAGE_SELF, & r_usage);
printf("\rSpeed: %f loops / s; Memory usage: %ld kilobytes", i * 1000000.0 / time_diff(before , after), r_usage.ru_maxrss);
fflush(stdout);
usleep(1);
}
return 0;
}
double time_diff(struct timeval x , struct timeval y)
{
double x_ms , y_ms , diff;
x_ms = (double)x.tv_sec*1000000 + (double)x.tv_usec;
y_ms = (double)y.tv_sec*1000000 + (double)y.tv_usec;
diff = (double)y_ms - (double)x_ms;
return diff;
}
--- End Message ---
_______________________________________________
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development