CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

printf("blabla");

GreatLife
GreatLife
Niveau 11
13 novembre 2013 à 19:53:42

Du coup j'ai fais un système de score et une sauvegarde/load de ce score possible :oui:
Faut que je comprenne comment lire une ligne d'un fichier texte aléatoirement pour faire un "dictionnaire" de mot à deviner :oui:

Code_shrek
Code_shrek
Niveau 4
13 novembre 2013 à 21:26:13

Salut!
N'ayant fait que du C++, vous auriez des recommendations pour certains sites pour apprendre le javascript? J'voudrais un truc qui traine pas sur les bases quoi mais j'arrive pas trop à faire confiance à ce que je trouve sur google. Que pensez-vous de ce site http://yuiblog.com/crockford/ conseillé sur Stackoverflow par exemple?

Code_shrek
Code_shrek
Niveau 4
13 novembre 2013 à 21:27:51

J'viens de me rendre compte que j'ai link sur sa page perso, je demandais un avis sur son livre :d) http://www.amazon.com/dp/0596517742/?tag=stackoverfl08-20

dark_drow
dark_drow
Niveau 15
15 novembre 2013 à 15:18:57

je regarde distraitement des sources de CoreFoundation écrite en C en ce moment et je me demandais comment ce genre de code était possible:

  1. if defined(__ppc__)
  2. define __CFSendObjCMsg 0xfffeff00
  3. else

extern void * (*__CFSendObjCMsg)(const void *, SEL, ...);

  1. endif

Comment est-ce possible pour assigner une fonction à une adresse mémoire en particulier ?
Je suppose que ça se passe assez bas niveau mais j'avoue que ça me rend perplexe

godrik
godrik
Niveau 30
15 novembre 2013 à 16:28:36

dark_drow, toutes les fonctions sont quelques part en memoire une fois le binaire charge. La position exacte peut etre dynamique ou statique en fonction du systeme d'exploitation ou de la facon que l'on a de compiler le binaire. J'imagine que sur power pc, le prgorammeur sait d'une facon ou d'une autre que la fonction est a cette addresse en particulier.
Sinon, tu lis l'adresse depuis la table des symboles, ou tu laisses le compilateur te dire ou elle est.

Pseudo supprimé
Pseudo supprimé 15 novembre 2013 à 23:22:12

c'est pour éviter une double déférencement. comme le compilateur ne connait pas
l’adresse de la variable __CFSendObjCMsg au moment de la compilation, il va
implicitement utiliser une autre variable qui recevra l’adresse de __CFSendObjCMsg
lors du liage dynamique au lancement du programme. pour dire simplement, un variable
externe devient un pointer et un pointeur externe devient un double pointeur.

pour que la fonction se retrouve toujours a la même adresse. le kernel réserve une
partie bien précise de la mémoire virtuelle du processus et ensuite la runtime d'objc
copie les fonctions critiques dedans (c'est une vraie copie des instructions, pas
un tableau d'adresses). de cette facon la fonction X se retrouve toujours a l'adresse
Y même avec un liage dynamique. c'est toujours moins rapide qu'avec un liage statique.

l'arrangement de la mémoire virtuelle d'un processus sur macos est comme ceci [1]:
[0x0 - 0x1000] protégé, ne peut etre lu ou ecrit (a cause des pointeurs vers NULL :o)) )
[0x1000 - 0x8FDFFFFF] zone a disposition du programmeur
[0x8FE00000 - 0xFFFFFFFF] réserve par l'os (runtime d'objc et d'autre truc)

contrairement a windows ou linux, macos n'utilise pas de high memory.

[1] Mac OS X Internals: A Systems Approach, page 907

Pseudo supprimé
Pseudo supprimé 16 novembre 2013 à 21:32:22

"Interrupt-Based Computation" ou comment utiliser les exceptions des cpu x86 comme une machine de turing pour faire des calculs sans instructions :mort:

présentation et papier: https://www.usenix.org/conference/woot13/page-fault-weird-machine-lessons-instruction-less-computation

"We show that powerful computation on x86 processors is possible without executing any CPU instructions. We demonstrate a Turing-complete execution environment driven solely by the IA32 architecture’s interrupt handling and memory translation tables, in which the processor is trapped in a series of page faults and double faults, without ever successfully dispatching any instructions. The "hard-wired" logic of handling these faults is used to perform arithmetic and logic primitives, as well as memory reads and writes. This mechanism can also perform branches and loops if the memory is set up and mapped just right."

john-lock
john-lock
Niveau 6
26 novembre 2013 à 01:04:53

salut à tous,

je poste sur ce topic pour éviter d'en créer un nouveau juste pour une question.

vous savez comment fixer un core à un thread sur OpenMP ? si c'est possible bien sur.

J'ai regardé un peu du coté de sched_affinity et pour le moment j'arrive à choisir les cores de mon processeur pour l'exécution (3 cores sur les 4 par exemple), mais j'arrive pas à affecter un thread à un core précis.

en effet le prototype de la fonction est :
int sched_setaffinity(pid_t pid, size_t cpusetsize,cpu_set_t *mask);

selon dans mon cas j'ai qu'un seul pid :(

Merci pour votre aide :)

godrik
godrik
Niveau 30
26 novembre 2013 à 01:21:11

Ce n'est pas possible avec openmp. La facon propre de pinner un thread logique a un thread physique depend de ton systeme d'exploitation et du runtime openmp que tu utilise. Le compilateur d'intel expose les fonctions kmp pour faire ces choses la.
Sous linux avec GCC, le runtime [1] n'a l'air d'exposer ca qu'a travers la variable d'environnement GOMP_AFFINITY. Si tu veux fixer les threads dynamiquement au runtime, j'ai peur que tu n'ai que le choix de hacker le fait que ca se base sur des threads posix et faire des pthread_setaffinity_np.

[1] http://gcc.gnu.org/onlinedocs/libgomp/

john-lock
john-lock
Niveau 6
26 novembre 2013 à 10:55:47

Ok merci godrik :) tu as répondu à ma question

dark_drow
dark_drow
Niveau 15
13 décembre 2013 à 11:33:25

yop, il aurait quelqu'un qui saurait m'expliquer pourquoi j'ai des résultats bizarre avec wireshark ?
Quand je lance une application externe qui tourne sur le protocole TCP je vois bien chaque packets défiler (header TCP, header du packet+data), et moi quand j'essaye de faire la même chose mes trames sont 'assemblées' en un seul packet de MTU maximale (header TCP, (header de mon packet+data)x3 )
Du coup ça plante totalement du côté du serveur évidement -_-

au niveau de mon code code pour envoyer mes packets (je vous épargne les controles d'erreurs) :

// initialisation de la connexion
_tcp = socket(AF_INET,SOCK_STREAM,0)
// ...initialisation de mon sockaddr _servaddr
connect(_tcp, (sockaddr*)&_servaddr, sizeof(_servaddr))

// envoi :
send(_tcp,packet,pckSize,0)

dark_drow
dark_drow
Niveau 15
13 décembre 2013 à 17:44:08

double post, problème résolu, c'est surement wireshark qui merdouille car mon vrai problème était ailleurs :)

Par je lutte un peu pour essayer de monitorer une connexion grâce aux TCP [ACK] ça me permettrai de savoir si mes transmissions se passent bien ou pas (genre si j'ai 1s entre l'envoi du paquet et la réception de l'ACK il faut que je calme mon débit)
Si j'ai bien compris il faut utiliser les raw packets mais je comprends pas tout :P

Pseudo supprimé
Pseudo supprimé 15 décembre 2013 à 19:21:01

http://www.cppgm.org/index.html

"What is the C++ Grandmaster Certification?

The C++ Grandmaster Certification is an online course in which each student single-handedly develops their own complete standalone C++ toolchain - including a preprocessor, compiler frontend/backend, assembler, linker, and full hosted implementation of the C++ standard library.

The toolchain will produce executable applications for a target of (a) the Linux operating system, and (b) the x86-64 (Intel 64 / AMD 64) computer architecture ABI.

The toolchain is developed piece by piece as a series of programming assignments.

In the end, all parts of the toolchain have been written by the student, and as a grand finale, the student builds the toolchain with itself (a self-hosting build) and passes final system testing. Apart from a bootstrapping compiler and a small amount of skeleton code to harness the provided test suites, no third-party tools or libraries are used."

ya des prétendants ? :noel:

caelacanthe
caelacanthe
Niveau 10
15 décembre 2013 à 20:37:01

Il y a des prétendants qui ont déjà réussi cette certification, où c'est comme la 1-million km run à laquelle participe Matt Mahoney, qui est une course où il faut courir un million de kilomètres? :oui:

Pseudo supprimé
Pseudo supprimé 16 décembre 2013 à 12:55:57

c'est la premier année et c'est sérieux apparemment.

sinon je vous présente le c+=

https://bitbucket.org/FeministSoftwareFoundation/c-plus-equality

:rire:

dark_drow
dark_drow
Niveau 15
16 décembre 2013 à 13:05:39

faut voir les commentaires des samples aussi :hap:

Paulop
Paulop
Niveau 12
16 décembre 2013 à 17:06:42

Pour la grand master certification, je vais pas le faire par manque de temps, mais si on peut avoir accès aux cours ce serait cool.

Pseudo supprimé
Pseudo supprimé 16 décembre 2013 à 17:27:39

Magad ça a l'air terrible le master :rire:
Et jerry des mots clés changés pour le C+= :rire:

dark_drow
dark_drow
Niveau 15
27 décembre 2013 à 15:51:32

j'ai un projet divisé en plein de "couches", c'est à dire
-L'interface graphique
- Controlleur (qui gère entre l'ui et le moteur)
- Moteur global
- Classes Spécifiques appelées par le moteur

Le problème - qui doit être récurent pour toutes les applications - c'est que le flux de données fait ça :

UI->Contrôleur->Moteur->Classes
|
UI<-Contrôleur<-Moteur<--

A partir de quel moment il vaut mieux avoir des classes "globales" de paramétrage pour aller transmettre des infos de l'UI vers les Classes spécifiques directement ?

dark_drow
dark_drow
Niveau 15
27 décembre 2013 à 15:55:33

arf je me suis fait avoir par les espaces (ça fait une boucle quoi)

UI->Contrôleur->Moteur->Classes
                                            |
UI<-Contrôleur<-Moteur<---

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment