Journal Pythran, en plein délire

Posté par (page perso) . Licence CC by-sa
Tags :
49
23
mai
2018

Cher journal, je dois te confesser que j'ai déclenché quelque chose dont j'ai un peu honte.

Tu te souviens bien sûr de Pythran, ce compilateur pour noyau scientifiques écrit en Python, et de ce petit détail d'implémentation qui veut que le compilateur commence par transformer les fonctions Python en fonctions C++ template (a.k.a. transformer du code Python en meta-programme C++ pour faire stylé voire pédant).

Un choix de design a été de faire en sorte que ces fonctions ne (...)

vcpkg, un gestionnaire de bibliothèque pour C++

Posté par . Édité par Davy Defaud, Nÿco et Benoît Sibaud. Modéré par Yvan Munoz. Licence CC by-sa
20
25
avr.
2018
C et C++

Depuis 2016, Microsoft développe vcpkg, un outil bien sympathique qui permet de télécharger et compiler un ensemble de bibliothèques et leurs dépendances. Jusqu’à présent, cet outil était disponible uniquement pour la plate‐forme Windows. Depuis le 24 avril 2018, cet outil prend également en charge les plates‐formes GNU/Linux et macOS. vcpkg est publié sous licence MIT.

Une limite cependant est que la compilation des bibliothèques sur GNU/Linux est uniquement statique. La raison invoquée est qu’il est plus compliqué d’utiliser des bibliothèques sur GNU/Linux (LD_LIBRARY_PATH, rpath, etc.) que sous Windows, où l’on peut tout mettre dans un seul répertoire.

Quoi qu’il en soit, c’est une bonne nouvelle. Même si les paquets des distributions resteront une source privilégiée pour obtenir les fichiers de développement d’une bibliothèque, vcpkg offre une alternative intéressante pour ceux qui voudraient tout construire en statique de manière à fournir un seul binaire pour toutes les variantes de GNU/Linux.

C++17 libère size(), data() et empty()

Posté par (page perso) . Édité par David Marec, Benoît Sibaud, Oliver H, Davy Defaud, palm123, gbdivers, whity, audionuma, Xavier Claude et kp. Modéré par Davy Defaud. Licence CC by-sa
Tags :
36
17
mar.
2018
C et C++

Cette évolution est dans la continuité de la libération de begin() et end() en C++11. Ces trois nouvelles fonctions, size(), data() et empty(), avaient été oubliées lors des deux dernières évolutions. Le C++17 corrige le tir.

Tout d’abord, nous allons revenir sur les raisons de cette évolution. Puis, nous détaillerons ce qu’apporte chacune de ces trois fonctions. Et, pour conclure, nous verrons comment on va pouvoir les utiliser.

Les fonctions empty(), data() et size() sortent de la prison « class » et rejoignent les fonctions begin() et end() qui les accueillent. Ces deux dernières fonctions accueillent également string_view. Derrières les barreaux de la prison des spécifications techniques, Unified-Call-Syntax va devoir y rester trois ans pour tenter de sortir avec C++20

Journal 'Markdown presentation processor' (ou de l'intérêt des fichiers texte).

20
25
fév.
2018

Cherchant à réaliser une présentation vidéo, et utilisant déjà par ailleurs Writer de Libre Office, je me suis naturellement tourné vers Impress pour cela. C'est peut-être un très bon logiciel dans le genre, mais, personnellement, le fait de devoir m'occuper, en même temps, et du contenu, et de sa mise en forme, le peu de motivation que je pouvais avoir disparaissait comme neige au soleil. C'est la première fois que je rédigeais une telle présentation, et c'est le genre (...)

Forum général.petites-annonces Changements mineurs dans le créateur/gestionnaire de projets mk-project.

0
17
nov.
2017

Description de mk-project

mk-project prend la forme d'une barre de menu:

  • Projects
  • Terminals
  • Targets
  • Configuration
  • Info

Et de 2 sortes de terminaux, implémentés grâce a libvte-2.91.

Make terminal

Ici l'on voit la sortie des nombreux make targets que mk-project implémentes, si vous utilisez l'élément du menu Targets afin de lancer les commandes que vous voulez.

Edit terminal

Ce notebook de terminaux servira aux utilisateurs de ed, vim, emacs…

Afin d'éditer des fichiers car l'ont peut bien sur ajouter des onglet/terminaux (...)

Journal Compilateur trop intelligent

Posté par (page perso) . Licence CC by-sa
Tags :
30
1
nov.
2017

Une belle illustration des decisions radicales que peut prendre l'optimiseur de clang quand il rencontre des comportements indéfinis :

exemple en c++ sur https://gcc.godbolt.org

L'explication se trouve ici , je ne spoile pas pour ceux qui veulent trouver tout seuls comment le compilateur a choisi d'effacer le disque dur.

Journal Calculs numériques en précision absolue.

Posté par (page perso) . Licence CC by-sa
13
28
sept.
2017

Introduction

La lecture de ce journal m'a remémoré une bibliothèque de calcul numérique que j'ai développée et qui pourrait peut-être en intéresser quelques-uns ici.

J'ai rarement utilisé les nombres flottants à cause de leur précision limitée, et les entiers se sont parfois révélés inadaptés de par leur intervalles limités. Aussi ai-je développé une bibliothèque de gestion d'entiers dynamiques, et, en m'appuyant sur cette dernière, une bibliothèque de gestion de nombres rationnels qui prend en charge les 4 opérations mathématiques de (...)

Journal Pythran 0.8.2 — compilation de noyaux scientifiques écrits en Python

Posté par (page perso) . Licence CC by-sa
Tags :
38
14
sept.
2017

Mâtin, quel journal !

Pythran est bien vivant
Un vrai compilateur !
Et heure après heure,
Le bonheur vient en codant !

Mais des mois s’écoulèrent,
Sans que je postasse,
Le moindre mot dans l’air,
Ça manque un peu de classe

Et là, tout à coup, soudainement, surgit la version 0.8.2 de Pythran. Que s’est‐il passé depuis mon dernier soliloque sur LinuxFr.org ? Allez, plongeons dans le journal des modifications, mais avant ça, un petit rappel sur Pythran, par l’exemple.

Vous voyez ce bout (...)

Journal Un Python qui rivalise avec du C++

15
27
août
2017

Rencontre avec un code de calcul scientifique open-source - écrit en Python - qui tente de rivaliser avec du C++ sur des supercalculateurs, spectralDNS!

Quelques liens:

La publication initiale : https://arxiv.org/pdf/1602.03638v1.pdf
Une seconde publication : https://arxiv.org/pdf/1607.00850.pdf
Une publication plus récente : https://arxiv.org/pdf/1701.03787v1.pdf
Le dépôt GitHub : https://github.com/spectralDNS/spectralDNS

Première réaction?

Je ne sais pas quelle est votre première réaction. Moi j'y croyais pas trop. Puis j'ai potassé les articles, j'ai fait quelques tests avec le code, j'ai contacté l'auteur principal, et (...)

Forum Programmation.autre [Umbrello] sélection multiple

Posté par . Licence CC by-sa
Tags :
1
31
août
2017

J'essaie d'utiliser Umbrello, l'outil de KDE qui permets de générer un modèle objet à partir d'un code source (C++ dans mon cas) et a priori le dernier open source avec un potentiel correct (non, dia ne fait pas le taf. Il y avait bien bouml mais d'une part il n'est plus libre et la dernière version freeze anyway. Quant à son fork, il faut mingw pour le compiler, hors, la, pas de bol je suis au taf sous windows, et (...)

Journal Code natif et Node.js - parser et préprocesseur XML

Posté par (page perso) . Licence CC by-sa
10
1
sept.
2017

Histoire de diversifier mon activité, et aussi parce que j'aime bien me lancer des défis, j'ai décidé de me mettre à Node.js. Cependant, compte tenu de ma faible appétence pour Javascript, lui préférant de loin C++, j'ai bien entendu cherché un moyen de coder pour Node.js avec mon langage fétiche. Et c'est tout à fait possible, grâce aux addons. Bon, ce n'était pas vraiment une surprise, n'ayant jusqu'à présent jamais rencontré d'environnement d'exécution logiciel qui (...)

Forum général.petites-annonces TETRANE 1/3: multiples offres d'emplois / stages : Ingé R&D C++

Posté par . Licence CC by-sa
1
10
fév.
2017

TETRANE est un éditeur de logiciel français créé en 2011, l'équipe comporte actuellement une dizaine d'ingés. Nous sommes basés à Mâcon (50m de la gare, plusieurs ingés habitent à LYON). Notre produit REVEN, basé sur notre simulateur de CPU, aide au debugging avancé et au reverse-engineering. REVEN est actuellement utilisé par des équipes d'experts du monde de la défense sur 4 continents.
Forts de notre succès, nous souhaitons renforcer l'équipe R&D pour adresser le marché des éditeurs de logiciels civils (...)

Journal Epeios Meta Mail User Agent : le protocole IMAP.

Posté par (page perso) . Licence CC by-sa
11
30
jan.
2017

Suite des aventures concernant le développement d'un MUA, dont le début vous est rapporté ici.

Après POP3 (RFC 1939) et Mail Internet Format (RFC 5322), voici le tour d'IMAP (RFC 3501 et 5530) d'être implémenté (partiellement pour le moment), et notamment la structure générale des messages qui sont échangés entre client et serveur IMAP, ce qui facilitera la future implémentation des commandes manquantes.

La prise en compte d'IMAP n'ayant qu'un impact réduit (...)

Journal BinMake : pour construire un fichier binaire décrit en texte

Posté par . Licence CC by-sa
21
12
jan.
2017

BinMake est un logiciel libre permettant de créer des fichiers binaires en décrivant par du texte leur contenu.
Il peut également être inclus dans du code C++ et être utilisé comme un flux.

Le texte décrivant le binaire à générer permet d'indiquer des nombres de bases décimale, hexadécimale, octale et binaire, de fournir du texte brute (sur une ligne). Il permet également de modifier l'endianness.
(Il devrait prochainement proposer des nombres flottants et du texte multi-lignes)

Version programme exécutable

La (...)