Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:120041 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 23691 invoked from network); 14 Apr 2023 15:29:11 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 14 Apr 2023 15:29:11 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id A9732180084 for ; Fri, 14 Apr 2023 08:29:10 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: ** X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,PDS_OTHER_BAD_TLD,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Fri, 14 Apr 2023 08:29:10 -0700 (PDT) Received: by mail-ej1-f47.google.com with SMTP id xi5so46479029ejb.13 for ; Fri, 14 Apr 2023 08:29:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=basereality-com.20221208.gappssmtp.com; s=20221208; t=1681486149; x=1684078149; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=oSXgiXb5bqce1GPBqI9059m9I7CSj1Z6W510yvpCX8Y=; b=bTSsONdO21UpOFy/rGkyvTdGZx1obrqmIJcZwaa41LKSOf3xcfbJ+2BP4pfgOPG6f7 ADQSrZZqS2eBdOgQUYv+JfUon+CqQU6txLJtT4Izqi1g3Z06VUi7HTdqUTGxQexoHalh 8sdJ/LMMfdr3fabg+aT+/1B0RFY84SV5jJHDky7uG6nSELBoaIMwxCgzycXiOzrvuvmh L5R8y8zQDvM9WRz2xloZjidsd15qL2Ex+nyFbXDLUHqfcFwC//IVbSr/13q6V7TKngl2 6EvarMymVRgt4Ql5rwOJRoQC8qVjyTKkh8pMOidfPnL8bG8GFU3dO6VfgWx/55wQx0mV A4FQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681486149; x=1684078149; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=oSXgiXb5bqce1GPBqI9059m9I7CSj1Z6W510yvpCX8Y=; b=Q+HWVBbQCbe/nV9yqM3+AdRXOIWqX2dKCiFja9CXHUOkAorGToOaFVZvPEJMvunwwa Z0tO+iw7UkLOGEJ8aUaeXH+3QTfd7SkpVATJjTA5+r27jNw3pOo1wurNt+YaO04sD4Ur kn8sdfyPyMIF6k1mA5QZU76MWCvbpd2ClzdDc3Jc/k0zSKeivmQzhbU9UWTGGbr82PAW oLwgaR7V0sQZbY4iOtMN+znI2fzEOYXlCOziDlruhI6z91H6KvHeIxo+khMdj8UB5CtA p2dy4ciNWnbOPuR3gm4C6T/far5jWFOz9i4hpfpMZ2mhIqPmpLrbcfXXVeNPCK0Y2gDo 4zeQ== X-Gm-Message-State: AAQBX9dO7yhL8bCAx65Efackr2Z/yPP/3Sit+0bEXeK29oWb9+g9U6z9 BEuQ/yAyeSymOTZ7Cy4gsdhrpSgo+cmL7iCVr4d0vPD+lZwg8t4iT7A= X-Google-Smtp-Source: AKy350bRU2Az9rGgj65LKnqjg0jTMVD37xRk398RuO4RVIFHwNtBSQQVy8At5k6TzjXWvL1Z6YDsLp3Hmh4RVPYGpU8= X-Received: by 2002:a17:906:911:b0:94a:a819:ca06 with SMTP id i17-20020a170906091100b0094aa819ca06mr3214707ejd.8.1681486148767; Fri, 14 Apr 2023 08:29:08 -0700 (PDT) MIME-Version: 1.0 Date: Fri, 14 Apr 2023 16:28:58 +0100 Message-ID: To: PHP internals Content-Type: text/plain; charset="UTF-8" Subject: An invitation to chat and some useful links about PHP internals and extensions development From: Danack@basereality.com (Dan Ackroyd) Hi Internals, If anyone is looking for help either developing extensions or work on internals/PHP core then the PHP chat room ('Room 11' aka R11) on StackOverflow quite often has some internals contributors lurking around, waiting for interesting conversations to take part in: https://chat.stackoverflow.com/rooms/11/php There are guidelines for do's and don'ts here https://room-11.github.io/ but the main thing I would strongly recommend is that asking questions is a way more effective of gaining knowledge than "declaring solutions to a problem", particularly when not everyone agrees what the problem is. Unfortunately being able to write in StackOverflow chat does require 20 fake internet points (aka reputation). If anyone is desperate to join with a specific question and doesn't currently have enough reputation, feel free to contact me on Twitter (@MrDanack) and something can be arranged/manipulated. ## Thoughts on English + communication problems I realise I am lucky to be a native speaker of the language that happened to be the one most widely used for international communication, and so I've never had to endure having to ask technical questions in a language other than my own. Having said that ... ### Most people seem to underestimate their English skills Non-native English speaker: I am awfully sorry at the terrible state of my English abilities, as for the English language is not my mother tongue. I hope you forgive me for every foolish mistake I make. Native English speaker: lol, it okei. Most of the time, I am only reminded that someone is not a native English speaker, when they explicitly say it. ### There is no standard English There is 'quite' a bit of diversity in how English speakers talk. Even amongst native English speakers, there may be a small amount of effort needed by the recipient to understand what is being said. https://www.youtube.com/watch?v=bzDtmMXJ1B4 https://www.youtube.com/watch?v=WjTIFkWJctY * https://www.youtube.com/watch?v=G8LeDANQ7UE In Britain, it's always on the recipient to put the effort into understanding, or apologise for not understanding with something like "sorry, I don't quite get what you mean." Anyone who thinks less of someone else for not being fluent in English, probably isn't someone you would want to interact with anyway. ### There are more fundamental problems There's a couple of patterns I see, that seem to get in the way of having productive conversations. Some people write like this all the time not writing fully formed thoughts just typing as they think putting words in the chat room without forming long sentences into comprehensible thoughts Other people seem fundamentally unable to actually ask a question. i.e. they will describe a problem they have (sometimes with some code attached) and they expect someone to be able to read their mind, to see what precise question they want help with. Even when someone says "what is your exact question?", they don't seem to understand that a question needs to be asked, before it can be answered. There are other patterns, but this email is long enough already. But if anyone wants advice on how to communicate better, particularly if you're feeling frustrated about not feeling able to get your point across, feel free to ask me on twitter or Room11 (I check those more frequently than email). ## Other resources for internals development. At https://heap.space/ there is an instance of OpenGrok setup for PHP. OpenGrok is a search tool for code, and this site allows searching and navigating through various versions of PHP. The PHP Internals Book (http://www.phpinternalsbook.com/) is the most comprehensive resource for learning how PHP works internally, and how the functionality can be updated. I'd recommend reading all of it, but here are a few choice articles which are pretty vital to read. * Learning the PHP lifecycle: https://www.phpinternalsbook.com/php7/extensions_design/php_lifecycle.html * Zvals: https://www.phpinternalsbook.com/php7/zvals.html * Zend Memory Manager: https://www.phpinternalsbook.com/php7/memory_management/zend_memory_manager.htm Zend have a guide to 'Writing PHP Extensions' here: https://www.zend.com/resources/writing-php-extensions which apparently might be more up-to-date on some parts of PHP's internals. Thomas Weinert has a comprehensive set of examples (https://github.com/ThomasWeinert/php-extension-sample) of how to implement features in PHP internals, where each branch implements a single feature. The way to use this set of examples is to find the branch that contains what you want to implement, check it out, and then look at the commits in that branch to see what was done. cheers Dan Ack * the gentlemen in the second video were from less than 50 miles away from me. I am reasonably certain I understand spoken Dutch more than I understand them. I do not speak Dutch.