Tuesday, 18 May 2021

Light in the end of the funnel

 Hi folks,


Hopefully wherever you are, things are getting better !

These last weeks, the months spent learning rust start to pay off and I decided to take a &[...] in couple of projects in github, especially the libc's to be able to make C code interacting with rust. Been focusing on BSD (as usual), a bit of Darwin and Haiku, some of my PR had been merged as I write. Other than that couple of memory allocators crates (snmalloc, rpmalloc wrappers)  It is definitively a great language !

Other than that, as usual been contributing to some projects I look after yquake2, php (the last thing occurring is trying to bring FreeBSD into the Continous Integration's workflow), openssl a little, swoole, mariadb, snmalloc ...

Looking forward to be out more with the restrictions easing and the nicer weather :-) wish you all well in the meantime.

Labels: , , , , , ,

View David Carlier's profile on LinkedIn

Wednesday, 14 August 2019

Ireland ... countryside

Hi folks,

Hopefully you re still enjoying relatively sunny weather, recently I have been visiting other parts of Ireland and most of the time the network was pretty feeble. Nevermind, that was the opportunity as well to be off open source contributions for a while ;-)

In the meantime, PHP is undergoing a thorough clean up for the future 8 major release, which manifest through those PR  ... Those kind of tasks are rarely interesting technically speaking but are necessary if the project in question wants to maintain a certain consistency. Indeed, some of PHP extensions were using modern coding while some others were a bit behind so here is the opportunity to make things a bit square ... To remain in language's realm here a little related discussion to FreeBSD and .NET technologies. This is the most pragmatic approach I believe and that surely works fine ; ideally the kqueue's approach instead would be beneficial also for performance matters.

In the LLVM realms, couple of little but interesting changes, here the getrandom interception ... I think it can be pretty easily made available for FreeBSD as well ... otherwise some planned improvements for clang frontend warnings  (personally interested by this particular bit). Little dream of mine if this GitHub project would be ported at least to major unixes first (if this is ever possible...) :-) but would require to rewrite DirectX layers to SDL as usual ... lot of work.

In the next couple of days, I will be back a bit on LLVM and little other ongoing little tasks I putted to a rest, in the meantime I wish you well :-)


Labels: , , , ,

View David Carlier's profile on LinkedIn

Wednesday, 24 July 2019

Shy sun

Hi folks,

Hopefully you are enjoying the sun, wherever you are ; resting from all high tech things and job possibly :-)
For the rest of us, there are still things ongoing. Little hook here, I wanted to mention the fact Diablo 1 works fully now under OpenBSD, it has been mentioned a couple of times in Twitter and so on, but now the multiplayer works too :-) Congratulations for this ; it must have given lot of joy that's for sure. The next important event in the BSD work would be the vBSDCon the program should appear not long after I write this post ; I hope you will enjoy it hopefully it will recorded.

Following up on the web technologies post, openjdk 11 and 12 ports on FreeBSD; 11 on OpenBSD had been updated, reflecting work from primary battleblow, bsdkurt and a bit myself. As well, I spent most of the time between nodejs (large pages had been accepted and now I try to fix few glitches here and there before next major release), php 7.4 and the future 8 (as I write the 7.4 branch will be frozen pretty soon) fixing little common bugs and improving support for FreeBSD and macOs ; also trying for the first time contributing to the v8 javascript engine to have a sense of their mindset and pace, basically a tiny change for macOs and a more significant one for FreeBSD. Also got to know better the main maintainer of Microsoft mimalloc who is very responsive to say the least, for now two/three changes (large pages for macOs and trying to make it more reliable for Linux) from my part but a lot ongoing for Windows ; it just comes from the daily usage then improvement ideas pop up time to time and I am glad he is open to these when they make sense.
Now time to rebuild the whole FreeBSD current machine, in the meantime I'll continue watching the Artic which is to me a very nice, if not the best, performance from the danish actor. Wish you well ;-)

Labels: , , , , , , ,

View David Carlier's profile on LinkedIn

Wednesday, 22 May 2019

To be continued ...

Hi folks,

This week, OpenBSD has again provided an interesting update, this time in the graphic driver department. That's quite some work ! For every owner of these components, user of snapshots or current, you re surely giving a try ;-) ... For this post release, I am trying to update the barony package I maintain ... we shall see.

Also, I found few projects worthy to look at ... for instance :

- Speaking of games, PGE Project giving opportunities to create nice games even to terrible game designers as me :-)
- Xonotic here I follow closely a fellow BSD porter for this pretty famous and funny game which works more or less well out of the box on BSD systems in general but it is good to improve the support while decreasing hackeries.
- Every one knows curl but I was pleasantly surprised they were using LLVM lib buzzer (among other things) and pretty cleverly.


These last days, I have been doing little developments lastly for botan, again for Android, to support better older devices (but not that old) regarding auxiliary vectors. Support BSD for the game (N)Blood, as it is based on Doom engine, was pretty straightforward to do ... PHP/swoole, a sort of go(lang) routine equivalent for php, ported for BSD as well ; professionally speaking I m trying to push few changes for python languages existing since last year (but with more than a thousand of pull requests that is a bit normal) the most trivial was merged, I hope the next will make it (ie blake2 module update I mentioned awhile ago) :-) (edit: it has been merged just the following day so all good ;-)). There are still ongoing changes (one of them concerns a little change for PHP and windows specifically ... and more important the capsicum api support).

Wish you well while sneezing due to spring allergy :-P


Labels: , , , , , , ,

View David Carlier's profile on LinkedIn

Friday, 26 April 2019

You are early again !!

Hi folks !!

The spring here goes smoothly, a bit rainy as usual in this country but temperature wise it is getting better :-) This week had witnessed the early release of OpenBSD 6.5 but not too far from the 1st of May this time. As you can see most of the packages are really up to date (despite the high level of patching Chromium is pretty current, for web development PHP 5.6.x had been dropped now only providing PHP 7.x, logically following up the end of life time for this version branch, Golang which has the last release, ...) but system-wise it has also its share of updates :
- unveil underwent some changes, it has been the main focus of improvement, as pledge was in the past, in order to fit program consumers for accessing configuration files and so on.
- kubsan to have decent undefined behaviour code coverage, the checks subset available (especially overflow/underflow and out of bounds) is good enough to find diverse types of subtle bugs. Very useful and glad to see the efforts put behind.
- clang on mips64 ... amazed how they achieve to push down the obstacles, architecture-wise, release after release :-)
- As a developer, interesting to see malloc now uses sysctl.
There are many more of course, depends where your own interests lie.

Todd Mortimer had updated his paper used for the last AsiaBSDCon ... Still the videos not available but the content of this very interesting talk can help to understand the importance of his work.

Toured again recently into some useful open source projects which I used recently :
- Google bloaty ... I needed to check binaries size efficiency and helped me to understand better how some were so important and how to reduce them eventually.
- opencv which I already mention I believe ... I used for picture treatments and happens to be (genuinely) Android friendly.
- Otherwise PHP Parallels ... To be able to do concurrent programming with PHP is quite something ... and it comes from krakjoe who is one of the most important php contributors, maybe one of these days it will be integrated upstream just like his phpdebug project, who knows...

Speaking of PHP, a lot of efforts are put towards the JIT for opcache feature for the next 8 version. dstogov, the main developer is very efficient in Linux development so I just need to check time to time if it works all right on BSD and fix it when necessary ; but usually it is a matter of few lines so it is very good considering the level of complexity ...
These last weeks I have been into botan a little bit, most notably improving slightly freebsd support for detecting cpu features and also using more reliable way for the thread pools creation (I had Android in mind at this moment). Otherwise a bit of usual radare fixes here and there and some other changes are waiting approvals.

Labels: , , , , , ,

View David Carlier's profile on LinkedIn

Thursday, 21 February 2019

Finally it made it !

Hi folks !

Nicely, warmer weather is coming here in Dublin, making pull over wearing unnecessary :-)
These few days I have been updating my FreeBSD machine and was pleasantly surprised to see ASLR support had been added, all the work from HardenedBSD and other individuals in past years came to fruition in a way. Its usefulness had been the subject of controversy over the years, both for possible performance concerns and low outcome in term of security but this mitigation technique among the others is a must have so even if it appears way later than other oses, I am still happy whatsoever :-) So basically you can set it for 32 bits and or 64 bits which is necessary in case old binaries still need to run with fixed addresses. I have personally enabled only for 64 bits since 2 days and noticed no real performance drop while its shuffling shows up here. For example, as a test, I have been running a 64 bits and 32 bits version of the same basic executable which request few memory regions and the results speak by themselves ...

dragonflame% ./a.out 
0x804b7f000-0x804d91000 diff: 18446744073707380736
0x80ae51000-0x80bab1000 diff: 18446744073696575488
0x80c56c000-0x80d008000 diff: 18446744073698426880
0x80d9e2000-0x80e537000 diff: 18446744073697669120
0x80e740000-0x80f01c000 diff: 18446744073700261888
0x80f809000-0x80ff86000 diff: 18446744073701699584
0x810c09000-0x8118c8000 diff: 18446744073696186368
0x811e0f000-0x812c97000 diff: 18446744073694314496
0x812f52000-0x8135b6000 diff: 18446744073702850560
0x813904000-0x814258000 diff: 18446744073699770368
0x8148f0000-0x81491f000 diff: 18446744073709359104
0x81588c000-0x81634f000 diff: 18446744073698267136
0x816442000-0x816607000 diff: 18446744073707696128
0x8171f9000-0x817778000 diff: 18446744073703788544
0x818214000-0x818aee000 diff: 18446744073700270080
0x819882000-0x819999000 diff: 18446744073708408832
dragonflame% ./a.out
0x805315000-0x806129000 diff: 18446744073694789632
0x80caa8000-0x80d352000 diff: 18446744073700466688
0x80de53000-0x80e333000 diff: 18446744073704439808
0x80f302000-0x81008b000 diff: 18446744073695358976
0x8107c3000-0x810a24000 diff: 18446744073707057152
0x811a16000-0x8124e8000 diff: 18446744073698205696
0x8126f8000-0x813452000 diff: 18446744073695551488
0x81345f000-0x813bac000 diff: 18446744073701896192
0x814603000-0x814ac8000 diff: 18446744073704550400
0x815346000-0x81599c000 diff: 18446744073702907904
0x816740000-0x8176c9000 diff: 18446744073693261824
0x817748000-0x817af1000 diff: 18446744073705713664
0x8187d3000-0x819287000 diff: 18446744073698328576
0x819d87000-0x81a968000 diff: 18446744073697095680
0x81b784000-0x81b970000 diff: 18446744073707536384
0x81bd21000-0x81bdcf000 diff: 18446744073708838912
dragonflame% ./a32.out 
0x2064b000-0x2064c000 diff: 4294963200
0x20657000-0x20658000 diff: 4294963200
0x20659000-0x2065a000 diff: 4294963200
0x2065b000-0x2065c000 diff: 4294963200
0x2065d000-0x2065e000 diff: 4294963200
0x2065f000-0x20660000 diff: 4294963200
0x20661000-0x20662000 diff: 4294963200
0x20663000-0x20664000 diff: 4294963200
0x20665000-0x20666000 diff: 4294963200
0x20667000-0x20668000 diff: 4294963200
0x20669000-0x2066a000 diff: 4294963200
0x2066b000-0x2066c000 diff: 4294963200
0x2066d000-0x2066e000 diff: 4294963200
0x2066f000-0x20670000 diff: 4294963200
0x20671000-0x20672000 diff: 4294963200
0x20673000-0x20674000 diff: 4294963200
dragonflame% ./a32.out 
0x2064b000-0x2064c000 diff: 4294963200
0x20657000-0x20658000 diff: 4294963200
0x20659000-0x2065a000 diff: 4294963200
0x2065b000-0x2065c000 diff: 4294963200
0x2065d000-0x2065e000 diff: 4294963200
0x2065f000-0x20660000 diff: 4294963200
0x20661000-0x20662000 diff: 4294963200
0x20663000-0x20664000 diff: 4294963200
0x20665000-0x20666000 diff: 4294963200
0x20667000-0x20668000 diff: 4294963200
0x20669000-0x2066a000 diff: 4294963200
0x2066b000-0x2066c000 diff: 4294963200
0x2066d000-0x2066e000 diff: 4294963200
0x2066f000-0x20670000 diff: 4294963200
0x20671000-0x20672000 diff: 4294963200
0x20673000-0x20674000 diff: 4294963200


There will be probably further work until the 13th branch will be released however at the moment that is promising ... I ve been added this feature support in radare just yesterday.

In a previous post, I mentioned further FreeBSD support in PHP, so the network flags one had been now accepted and merged... Another one ought to be reviewed soon-ish bringing FreeBSD rfork call into that language ... About the video game Stalker, the second batch of changes for FreeBSD had been also accepted and merged, that was one of the most important parts, there should be more to come but not until other folks had merged their clang support basically because at the moment it needs gcc 7 or so but under FreeBSD the code generation crashes.

More important, next events this year ought to be AsiaBSDCon and BSDCan, hopefully will try to be present in one of those two :-)

Labels: , , , ,

View David Carlier's profile on LinkedIn

Friday, 4 January 2019

Let's make all 2019's plans real ....

Happy new year folks !

Regardless the nature of your yearly endeavours ... from the very usual losing weight (but right after the last cake please ;-))/jogging 1 mile more/moving to this place you always wished ... to rewriting FreeBSD's userland in Rust (as a fork?) ... wish you, for most of them at least, successes !

In those last days, since my hacking slowed down for some days, I had the opportunity, among other things, to catch up with few BSDNow episodes. The 278th caught my attention the most, enjoyed the long Kirk McKusick interview. Always a pleasure to have hints and anecdots from people who have "seen things through" ... I recommend.

2018 was a nice year in retrospect, like giving a speech to EuroBSDCon or having my LLVM credentials




Hopefully, will do my best to keep up this year ... we ll see :-)
So back to my usual hacking time, slowly but surely coming back to normal pace ... As usual, radare2 plans a new release very soon, 3.2.0. We spent lot of time to fix lot of bugs, in my side I improved slightly the FreeBSD support in the debugging area as well.
For LLVM 8, I still try to push what I can into the api interceptions, focusing at the moment on the FreeBSD specifics though. For this year, I plan to port another game for BSD, at least I will try ; will keep you posted in due time for the progress.
For PHP, it s very actively moving towards 7.3.1, all most visible bugs fixes are actually merged. That slows down a bit the future 7.4 innovation but that worths it...

Labels: , , ,

View David Carlier's profile on LinkedIn

Thursday, 22 November 2018

LLVM I missed you

Hi folks,

About one month left before the usual Xmas craziness, even though with the time go in my side it starts to be less and less about toys and moving towards more meaningful gifts (thankfully) :-)

So since the last time, I started to go back a bit to LLVM especially the sanitizers. It might not be the same level of "breakthrough" compared to last year, I might say feature/operating system wise it's more fair now but there is still interesting code to do ;-) For now I try to add more specific functions to be intercepted at least for the next couple of days, the set*buf family functions is already merged.

the redis's lead developer had finally merged my little DragonFlyBSD build fix, a tiny fix into h2o to make sure the mem secure feature stands by its word (one the reasons I decided to be involved in LLVM last year was because of the great usage of libFuzzer in h2o). radare2, as always, might be close to a next release even though there still rewriting to do and as usual fixes. PHP now has advertised their last RC6 today and some PR start to be unfolded and merged ... We ll see.

Labels: , , , ,

View David Carlier's profile on LinkedIn

Friday, 9 November 2018

Post (about) meetup

Hi folks,

Finally we made it happen and was the opportunity to get to know Tom Smyth, very well versed into network, ISP and also a big fan, in a personal and business level, of OpenBSD. I quickly saw him in EuroBSDCon but in the meetup I could witness his taste of convincing how OpenBSD can serve his security priorities, how well it is to fund worthy open source developers for the greater good and so on ... Was a great discussion to listen to. Of course seeing the other usual folks was great too ;-) which lead to think we should go on on "reviving" our group so we will see each other again in December (hopefully), the topics will be make public soon-ish but we will basically expand on topics we did not have time to reach.

Apart of this, my little redis changes had been merged, I may have further plans while also thinking of redis "mindset" i.e "not too much platform "boilerplate" please..." ; to summarise. radare2, again, merged some of my fixes and especially the DragonflyBSD build, thankfully despite being different than FreeBSD still have, to some extent, a similar-ish API.

At last php has moved towards the 7.3.0 release, at least the RC5 had been sorted out in due time so not so long after we should be "back in business" about taking care of new features for future versions. Definitely, the opcache.preload feature/directive will be one of the main point of attention (in my opinion). Finally, my merge request for openssl refactoring had been accepted.


Labels: , , , ,

View David Carlier's profile on LinkedIn

Monday, 5 November 2018

Time changes ... or changes time

Hi folks,

Reading this past PR when we can see finally Kamil is moving on. Whoever takes over, there is quite a legacy ! Without him, the NetBSD support into LLVM would not be where it is now that's for sure (not counting his contributions to NetBSD itself). Thanks for the numerous reviews since last year ;-)

Also quick reminder, on Thursday our little noisy discussion about ZFS in Dublin 2 ... Seemingly there is an additional talk/introduction about OpenBSD ... nice.

These days, it has been more radare than anything else, to the project itself also trying to update BSD packages (the OpenBSD's version should be merged today or so ... while I write, the two maintainers agreed it was really time to do so, it was very old version).

But I also had my little take into memcached to improve a bit the FreeBSD support, hopefully some will land into the next release.

After that, I am waiting patiently php master "unlocks" (maybe after RC5) so new features will get merged.

Labels: , , , , ,

View David Carlier's profile on LinkedIn

Saturday, 6 October 2018

Having an impact and feeling the weight of it

Hi folks,

Here, the number of meetup groups are rising, for various topics ; but just for IT matters, there is either ones which cover wide range of points some much more specific (related to a programming language, even a specific framework). Prove that people will always need to reunite face to face ; even more for technologies ... "ironically". They are mostly interesting in general even though I distantiate myself from it a little, at least at the moment.

Speaking of communication, finally the work I did for porting a subset of LLVM/compiler-rt to OpenBSD get noticed and some people reached me out about this. You kind of expect this, but in the same time catch you "out of guard" nevertheless :-) That proves it had been useful doing so, that solves real problems and grows a little bit the toolbox of the OpenBSD developer ...

To go on this, finally the first half of esan for FreeBSD had been committed, still waiting the frontend part thought to be fully usable ; in the meantime I spent few hours to abstract/refactor the php openssl module which seems to be an accepted idea, still wait to be merged then I will expand on this idea further more all of this, hopefully, for the future 7.4 release.

Also ... I had another take on nginx/njs recently after the little sandbox contribution. Basically improving a bit the crypto module. You can see the summary here ... Apart of this, the usual ... little video games fixes here and there.

This is it for now, waiting for late autumn releases (FreeBSD 12, php 7.3 and so on).

Labels: , , , , ,

View David Carlier's profile on LinkedIn

Wednesday, 19 September 2018

Last post pre-EuroBSDCon

Hi folks,

September and its usual accelerating "things-being-made" pace, some events were/are occurring since the last time.

As previously planned LLVM 7.0 is finally released and announced. With so many new items (llvm-mca/exegesis and so on) I am so surprised my small contributions are mentioned :-) Thanks to the resilience of the testers it s done and behind. Starts to be available in some systems, for the Mac users you would have to wait a little bit to see whether in Homebrew (will happen shortly though, PR seems accepted) or simply as final binaries (just got uploaded) ... even more patient to see it landed in Xcode (most likely next year) :-) FreeBSD taking his time to import it as a package (still RC3 when I write) but since the differences are mainly about documentations ... it is pretty safe to still use this version.

Also, nginx/njs had accepted my little contribution, a basic sandbox mode, and released a new 0.2.4 version just this week here. It is always nice to be able to make a difference in such popular softwares :-)

Still contribute to radare2, more about fixing these days, to be able to have a more solid version than 2.9.0. Speaking of this, one of my old fixes got a CVE identifier here.

PHP 7.3 had really entered its RC phase now on master it s the future 7.4 and will start to think to provide few ideas (at least a small percentage of them) I kept wrapped until now.

After the incoming EuroBSDCon, LLVM 8 development with other usual folks like kamil or vitalybuka and so on will finally really start as there is still things (but exciting) ahead of us :-)

For now ... see you in Bucharest (for who is masochist enough for :-P)

Labels: , , , , ,

View David Carlier's profile on LinkedIn

Sunday, 9 September 2018

Rainy end of summer updates

Hi folks,

Hopefully you are enjoying the last sun rays batch !

Couple of updates ... For LLVM normally the 7th release was expected for the 5th of September but is postponed obviously ... there will be first a RC3 just to fix the last blockers and hopefully still a release within the month ... We shall see. Speaking of the 7th, FreeBSD is importing it at slow pace and was decided to make it available for releases post 12 due to releases dates colliding. For now the only new sanitizer enabled compared to LLVM 6 is Msan (and for amd64 only for now). Finally, maybe OpenBSD will have this version before FreeBSD :-) well ... at this stage it s just a wild guess.
After this, for LLVM 8, I start to push changes here and there, porting CFI from compiler-rt to FreeBSD and NetBSD.

After that, Barony underwent a hotfix, versioned 3.2.1 but still need some further fixes. I had personally fixed two issues which are both merged. It is very pleasant, in an user point of view, there is still significant game and content updates (and not sold as DLC).

Also, radare really has a fast pace for releasing version, since the last time a lot bug fixes from various sources. I fixed mostly memory leaks and couple of workflow breakages. Now aiming for 3.0 ...

At last, PHP 7.3 finally enter its RC phase, it is pretty already solid at this stage even though i would not recommend for production :-) since the last time I finally did the fixed map fix only for FreeBSD, postponing the Linux version for 7.4 or after, waiting 4.18 kernels distributions being available widely.

Labels: , , , , , ,

View David Carlier's profile on LinkedIn

Wednesday, 15 August 2018

Pre-release weather

Hi folks,

These days have been slightly more on FreeBsD than OpenBSD but now I m less into LLVM 7 and start to focus on the future 8 version. Starting with static code analysis where more BSD functions can be checked. My jemalloc little change had been merged, was always frustrated the unit tests never ran ... Also, finally, Barony made its way to the FreeBSD ports tree with similar approaches as its OpenBSD's counterpart. Speaking of this game, a new Gog.com version should occur as many developments had been done since the 3.1.4 version even though a lot of are related to Steam workshop. But still lot of bug fixes and now the game saves data into the user's folder instead. And there is few new contents I believe ... To finish with FreeBSD, the device atlas package had been updated to the last 2.1.4 version (with a little additional surprise within)...

Apart of this, the PHP 7.3 Beta is for soon, at least the GitHub repo has tagged the version, still expecting first Release Candidates in September ... Very minor code changes in my side. As usual, I still commit few fixes/changes to radare2, now it can display if a binary is compiled with retguards for example.


Labels: , , , , ,

View David Carlier's profile on LinkedIn

Sunday, 22 July 2018

Peak of the summer

Hi folks,

Hopefully you're enjoying the summer wherever it occurs :-)

Few updates since the last time, php7.3 will now use getrandom to have stronger randomness for random_* family functions. And speaking of randomness, finally nginx unit accepted my first patch :-)

Apart of this came back to static code analysis for LLVM a little, again string family functions checking while LLVM release freeze is approaching. Otherwise, the usual, fixing radare2 and couple of video games.

Also first time getting involved into programming language specs discussion targeted mainly for low resources machines but already multiplatform, Windows included, P# (not to be confused with the .NET one) while I fix few virtual machines bugs or adding few new functions. It is under active development ; we'll see how it goes ...

Some few events are scheduled for in some months but will keep you posted in due time as usual ;-)

Labels: , , , , , , ,

View David Carlier's profile on LinkedIn

Tuesday, 3 July 2018

Sunny summer ?

Hi folks,

The sun is surprisingly present these days in the emerald island !

Couple of tiny updates, took my first take at golang mainly targeted at FreeBSD (anyway the usual OpenBSD contributors are already doing an excellent work :-)), small things really just adding get random support for FreeBSD 12.x we ll see in November ...

About the future php 7.3 version, the feature freeze time is for August ; so i try to push in similar manner this new getrandom usage ... Beyond that a lot of zend engine optimisations had been done since 7.2 among other things.

And LLVM, as promised now OpenBSD is able to run most of UBsan unit tests, for next will try to make available X-ray and maybe fuzzer ones.

Also noted gzdoom is going to be available as package on OpenBSD, after LMMS ; things start to be visible slowly but surely ;-) ...

Finally contributed to musl libc, pretty well reputated, to add explicit_bzero. They just started to discuss adding an arc4random implementation, the hardest part is the blocking side as always ... I do not think they will choose Chacha family though but ... we ll see.

Professionally a little loop back to Windows programming very shortly back to unixes :)

Enjoy your summer !

Labels: , , , , , , , ,

View David Carlier's profile on LinkedIn

Thursday, 30 November 2017

Autumn's releases

Hi folks,

Soon it is Christmas, but before that there are couple of releases worth to mention :

- Haproxy 1.8.0 which represents a tremendous amount of work (HTTP2 is the most noticeable new feature). But since there are so many additions, this is not a release for the "fainted hearts", thus I m not advising for everybody but only to people ready to face bugs and to help to make precise reports. Otherwise I would recommend waiting Q1 2018 at least. Also to mention W. Tarreau had spent ~15 years working in Haproxy project apparently ... that s quite a commitment :-)

- PHP 7.2.0 ... lot of bug fixes (since 7.0 they really take things seriously, the code quality had increased noticeably) and enough nice new features.

For which I made my shares of pull requests ... There also numerous projects to which I contributed ... Cassandra c++ driver ... mod security/mod_defender ... mariadb ... h2o ... and even more tiny pull requests here and there ... I did a bit a pause with video games (I still look strongly at barony though mainly) and try to port to *BSD what can be :-)

Seemingly OpenBSD is going to (finally) support TLS (for Thread Local Storage) natively :-) lot of softs I contribute to needs this and using gcc from ports with emulated TLS is just a "band aid" at the moment (not counting the C++14 and > projects )... We can count on @kettenis to provide it for 6.3 :-)

Labels: , , , , , ,

View David Carlier's profile on LinkedIn

Monday, 27 March 2017

Plumbing again

Hi folks,

Next OpenBSD release will be 6.1, the first without CD release. Here the actual changelog if you are curious. A lot of work for ARM architectures have been done so far and recently quite an update of vmm as well among those changes. Impressive as always :-) My only contribution to the system is bringing back a handy function to dump memory statistics into gdb, since there is several memory pools, it was quite lost :-)

In my side I have been pushing around mainly fixes to some video games, programming languages so far ... or porting  ... mainly for OpenBSD, sometimes FreeBSD benefits it. To name some ... AssaultCube, php (the programming language I contribute the most apparently ...), LMMS (the expected release has delays but due to the complexity of the software ... plugins ... that s understable), OpenTomb, Daemon Engine, ... Apart of this I enjoy my article reviewer role for BSDMag and SDJournal pretty much :-)

I have some pending updates, I ll bring those up in near future hopefully ;-)

Labels: , , , , , , ,

View David Carlier's profile on LinkedIn

Wednesday, 19 October 2016

PHP and more ...

Hi folks,

First of all thanks for the readers of my previous post, I did not expect such high rates, although I am very far to be a top blogger, it is good enough for my level ;-)

So, actually, I did quite a few about PHP, pushed an experimental version of an OpenBSD's pledge wrapper into suhosin. Created two pull requests to php itself, nothing incredible thought, mainly bringing OpenBSD's explicit_bzero on php and using it where it is relevant. This one has more chances to get merged than the other maybe.

Apart of this, I pushed a Go wrapper for the DeviceAtlas enterprise C api few weeks ago so whoever is interested (I know some customers asked for) can have a look.

Still few things ongoing keep you posted as always ;-)

Labels: , , , ,

View David Carlier's profile on LinkedIn

Sunday, 16 October 2016

Static code analysis

Hi folks,

In the software development process, the static code analysis is an important step and I am personally convinced by its utility (although knowing it is a difficult science) even when I contribute to open source projects. Usually I use either the popular clang scan-build command line tool and/or the excellent online solution Scan Coverity. Sometimes cppcheck as well.

But today, I m going to present another set of tools, PVS-Studio from viva64.com which has originally a Windows version with an integration with Visual Studio but appears to have been working on a Linux version as well which I will be focusing with. It works with my main languages C / C++ and in addition with .NET/C#

With the Linux version 6.09.18904, we have the choice between a simple tgz archive, a RedHat family rpm and a Debian family package. I did all my tests under Linux Mint 18 and the GCC suite.

1/ Choice of a project

Let's try with one well known open source project, the PHP programming language, which is basically uses the not less famous trio configure/make/make install ... Thus after setting our preferences via the configure script, we can now use pvs-studio on top of the make build system.

pvs-studio-analyser trace -- make













pvs-studio-analyser analyse -o php.plog -l <path to licence file> -j<number of parallel jobs>













Which produces an output file in the PLOG format which can be converted to xml, task files with the provided plog-converter command line. Fortunately as the process can take a certain time, it is possible to parallelize via the j flag.

2/ Outcomes

The output gotten, here in XML, contains well known useful good practices like about realloc http://www.viva64.com/en/w/V701/






or the return check for strcmp http://www.viva64.com/en/w/V526/


 some rules specific to C++ obviously like implementing the copy constructor but not the assignment operator http://www.viva64.com/en/w/V690/
 or the uselessness of checking null from a raw pointer after a new operator use
http://www.viva64.com/en/w/V668/
 ... and many more, there is a list available here.

PVS-studio was successfully exploited by another user in another open source project I pushed a pull request to recently, Unvanquished

3/ Conclusion

One of the few criticisms I may have is it seems not able to catch resource / memory leaks even very simple cases, whether it is C or C++.  Another proof that using more than one analyser is mandatory.

Maybe a Mac OS version with an integration with Xcode would be a plus in the future, although I perfectly understand the cost of development but ... might be worthy.

Labels: , ,

View David Carlier's profile on LinkedIn