Topic: Fornux C++ Superset
Author: Phil Bouchard <philippeb8@gmail.com>
Date: Sun, 22 Apr 2018 21:33:41 -0700 (PDT)
Raw View
------=_Part_23348_1586649490.1524458021269
Content-Type: multipart/alternative;
boundary="----=_Part_23349_1747290290.1524458021269"
------=_Part_23349_1747290290.1524458021269
Content-Type: text/plain; charset="UTF-8"
Greetings,
Because there was a conflict of interests in the past then I feel obliged
to give an update regarding the status of the "Fornux C++ Superset"
(formerly "Fornux C Leak Detector"). This way corporations will not claim
ownership of the idea.
- Fornux C++ Superset harnesses the power of Clang.
- It now supports, as you have guessed, C++98 syntax.
- It's deterministic so it will not slow down your application randomly
like with Java.
- You can see attached examples memory leaks in C & C++ with cyclic
references which are correctly handled and the memory usage never increases.
Like I mentioned previously, I am working hard on a free version I will be
able to share in a month or two.
Regards,
Phil Bouchard
www.fornux.com
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/275992cb-a80b-41bf-a0d4-d9c05ade603b%40isocpp.org.
------=_Part_23349_1747290290.1524458021269
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Greetings,<div><br></div><div>Because there was a conflict=
of interests in the past then I feel obliged to give an update regarding t=
he status of the "Fornux C++ Superset" (formerly "Fornux C L=
eak Detector"). This way corporations will not claim ownership of the =
idea.</div><div><br></div><div>- Fornux C++ Superset harnesses the power of=
Clang.</div><div>- It now supports, as you have guessed, C++98 syntax.</di=
v><div>- It's deterministic so it will not slow down your application r=
andomly like with Java.</div><div>- You can see attached examples memory le=
aks in C & C++ with cyclic references which are correctly handled and t=
he memory usage never increases.</div><div><br></div><div>Like I mentioned =
previously, I am working hard on a free version I will be able to share in =
a month or two.</div><div><br></div><div><br></div><div>Regards,</div><div>=
Phil Bouchard</div><div>www.fornux.com</div><div><br></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/275992cb-a80b-41bf-a0d4-d9c05ade603b%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/275992cb-a80b-41bf-a0d4-d9c05ade603b=
%40isocpp.org</a>.<br />
------=_Part_23349_1747290290.1524458021269--
------=_Part_23348_1586649490.1524458021269
Content-Type: text/x-c++src; charset=US-ASCII; name=memoryleak.cpp
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=memoryleak.cpp
X-Attachment-Id: 812b8956-2ac2-4277-8b2b-e25fc4969a8b
Content-ID: <812b8956-2ac2-4277-8b2b-e25fc4969a8b>
/**
Fornux C++ Superset -- Example.
Outputs:
Speed: 16043.546433 loops / s; Memory usage: 4552 kilobytes
*/
#include <stdlib.h>
#include <unistd.h>
#include <sys/resource.h>
#include <chrono>
#include <iostream>
#include <iomanip>
using namespace std;
using namespace std::chrono;
struct 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
{
int q;
int r;
list_node * p;
};
int main()
{
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;
}
------=_Part_23348_1586649490.1524458021269
Content-Type: text/x-csrc; charset=US-ASCII; name=memoryleak.c
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=memoryleak.c
X-Attachment-Id: a0338cc0-16ad-4bed-9341-ae5a6fbde47b
Content-ID: <a0338cc0-16ad-4bed-9341-ae5a6fbde47b>
/**
Fornux C++ Superset -- Example.
Outputs:
Speed: 16563.387712 loops / s; Memory usage: 4544 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;
}
------=_Part_23348_1586649490.1524458021269--
.
Author: Phil Bouchard <philippeb8@gmail.com>
Date: Tue, 6 Nov 2018 20:52:54 -0800 (PST)
Raw View
------=_Part_2658_191700534.1541566374028
Content-Type: multipart/alternative;
boundary="----=_Part_2659_41218827.1541566374028"
------=_Part_2659_41218827.1541566374028
Content-Type: text/plain; charset="UTF-8"
Greetings,
Given the importance of memory management on embedded systems and to
quickly follow up on the deterministic memory manager I was referring to
earlier this year you are welcome to watch part of the following video:
https://youtu.be/vZL5X2FlZKU?t=84
You are welcome to try it out also, if you are interested, on your own
laptops running Linux (disconnected from the LAN) with a script you can
request from me that will pipe data through Fornux' server.
It was tested with GNU GCC 5 & 6, Clang 4 & 5.
Lastly, I already recompiled "libarchive" with minor modifications to the
original code and it works correctly:
https://github.com/philippeb8/libarchive/commit/5858b5c047301123ffdf05f247f7d191829d5a9b
Let me know what you think!
Sincerely,
--
*Phil Bouchard*
Founder
phil@fornux.com
[image: Fornux] <http://www.fornux.com>
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/6e0acf63-d78d-4418-acdb-273994a1f359%40isocpp.org.
------=_Part_2659_41218827.1541566374028
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><p>Greetings,</p><p><br></p><p>Given the importance of mem=
ory management on embedded systems and to quickly follow up on the determin=
istic memory manager I was referring to earlier this year you are welcome t=
o watch part of the following video:</p><p><br></p>
<p><a class=3D"moz-txt-link-freetext" href=3D"https://youtu.be/vZL5X2Fl=
ZKU?t=3D84">https://youtu.be/vZL5X2FlZKU?t=3D84</a></p><p><br></p>
<p>You are welcome to try it out also, if you are interested, on your o=
wn laptops running Linux (disconnected from the LAN) with a script you can =
request from me that will pipe data through Fornux' server.</p><p><br><=
/p><p>It was tested with GNU GCC 5 & 6, Clang 4 & 5. <br>
</p><p><br></p><p>Lastly, I already recompiled "libarchive" w=
ith minor modifications to the original code and it works correctly:</p><p>=
<br></p><p><a class=3D"moz-txt-link-freetext" href=3D"https://github.com/ph=
ilippeb8/libarchive/commit/5858b5c047301123ffdf05f247f7d191829d5a9b">https:=
//github.com/philippeb8/libarchive/commit/5858b5c047301123ffdf05f247f7d1918=
29d5a9b</a><br>
</p><p><br></p><p>
=20
=20
</p><p>Let me know what you think!</p><p><br></p><p><br></p><p>Sincerel=
y,</p><p><br></p><p>-- <br>
<br>
<b>Phil Bouchard</b><br>Founder</p><p>phil@fornux.com<br>
<br>
<a href=3D"http://www.fornux.com"><img class=3D"logo-main
scale-with-grid" src=3D"http://www.fornux.com/wp-content/uploads/=
2017/10/memory-leak-detection-Fornux.png" data-retina=3D"http://www.fornux.=
com/wp-content/uploads/2017/10/memory-leak-detection-Fornux.png" data-heigh=
t=3D"60" alt=3D"Fornux" shrinktofit=3D"true" style=3D""></a><br></p></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/6e0acf63-d78d-4418-acdb-273994a1f359%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/6e0acf63-d78d-4418-acdb-273994a1f359=
%40isocpp.org</a>.<br />
------=_Part_2659_41218827.1541566374028--
------=_Part_2658_191700534.1541566374028--
.