[PRES] [presentations] master: DPC Extensions Tutorial
| From: | Derick Rethans | Date: | Tue, 12 Mar 2024 16:25:58 +0000 |
| Subject: | [PRES] [presentations] master: DPC Extensions Tutorial | ||
| Groups: | php.pres | ||
| Request: | Send a blank email to pres+get-2441@lists.php.net to get a copy of this message | ||
Author: Derick Rethans (derickr)
Date: 2024-03-12T16:12:07Z
Commit: https://github.com/php/presentations/commit/3a8fa4b8dcd42770094f8fea8bee5c814f8c6d96
Raw diff: https://github.com/php/presentations/commit/3a8fa4b8dcd42770094f8fea8bee5c814f8c6d96.diff
DPC Extensions Tutorial
Changed paths:
A phpext-dpc24.xml
A slides/internals/live-coding.xml
M slides/internals/extension-parts.xml
M slides/internals/rdp_simplify-part1b.xml
Diff:
diff --git a/phpext-dpc24.xml b/phpext-dpc24.xml
new file mode 100644
index 00000000..de33519c
--- /dev/null
+++ b/phpext-dpc24.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>Writing A PHP Extension</title>
+<event>Dutch PHP Conference</event>
+<location>Amsterdam, The Netherlands</location>
+<date>March 14th, 2024</date>
+<speaker>Derick Rethans</speaker>
+<email>derick@php.net</email>
+<twitter>derickr</twitter>
+<mastodon>@derickr@phpc.social</mastodon>
+<url>https://derickrethans.nl/talks/phpext-dpc24</url>
+<joindin></joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/internals/extension-agenda.xml</slide>
+<slide>slides/internals/extension-agenda2.xml</slide>
+<slide>slides/internals/extension-what1.xml</slide>
+<slide>slides/internals/extension-why1.xml</slide>
+<slide>slides/internals/extension-why-wrap.xml</slide>
+<slide>slides/internals/extension-why-not-possible.xml</slide>
+<slide>slides/internals/extension-why-speed.xml</slide>
+
+<slide>slides/internals/extension-why-not1.xml</slide>
+
+<slide>slides/internals/rdp-intro.xml</slide>
+<slide>slides/internals/rdp-intro2.xml</slide>
+<slide>slides/internals/rdp-intro3.xml</slide>
+<slide>slides/internals/rdp-intro4.xml</slide>
+
+<slide>slides/internals/extension-parts.xml</slide>
+<slide>slides/internals/config.m4.xml</slide>
+<slide>slides/internals/config.w32.xml</slide>
+<slide>slides/internals/phpize.xml</slide>
+
+<slide>slides/internals/extension.h.xml</slide>
+<slide>slides/internals/extension.c-part1.xml</slide>
+<slide>slides/internals/extension.c-part1-arginfo.xml</slide>
+<slide>slides/internals/extension.c-part2.xml</slide>
+<slide>slides/internals/extension.c-part3.xml</slide>
+
+<slide>slides/internals/function.xml</slide>
+<slide>slides/internals/rdp_simplify-part1.xml</slide>
+<slide>slides/internals/rdp_simplify-zedval.xml</slide>
+<slide>slides/internals/rdp_simplify-part1b.xml</slide>
+<slide>slides/internals/rdp_simplify-convert-data.xml</slide>
+<slide>slides/internals/rdp_simplify-run-algorithm.xml</slide>
+<slide>slides/internals/rdp_simplify-php.xml</slide>
+<slide>slides/internals/rdp_simplify-c.xml</slide>
+<slide>slides/internals/rdp_simplify-return-result.xml</slide>
+<slide>slides/internals/rdp_simplify-return-scalars.xml</slide>
+<slide>slides/internals/memory-management.xml</slide>
+
+<slide>slides/internals/tests.xml</slide>
+<slide>slides/internals/rdp-test.xml</slide>
+
+<slide>slides/internals/debug.xml</slide>
+
+<slide>slides/mongodb/questions.xml</slide>
+
+<slide>slides/internals/live-coding.xml</slide>
+<slide>slides/mongodb/resources.xml</slide>
+</presentation>
diff --git a/slides/internals/extension-parts.xml b/slides/internals/extension-parts.xml
index dac40477..60f5860d 100644
--- a/slides/internals/extension-parts.xml
+++ b/slides/internals/extension-parts.xml
@@ -5,7 +5,7 @@
<bullet>%config.m4% / %config.w32%<br/>configure options and build
instructions</bullet>
<bullet>%php_extension.h%<br/>header files and glue</bullet>
<bullet>%extension.c%<br/>extension definition and function
implementation</bullet>
- <bullet>%algorithms.c%<br/>C implementation of algorithms</bullet>
+ <bullet>%lib/algorithm.c%<br/>C implementation of algorithms</bullet>
<bullet>%tests/*.phpt%<br/>Tests written in PHP</bullet>
</list>
</slide>
diff --git a/slides/internals/live-coding.xml b/slides/internals/live-coding.xml
new file mode 100644
index 00000000..19f0156e
--- /dev/null
+++ b/slides/internals/live-coding.xml
@@ -0,0 +1,18 @@
+<slide>
+<title>Let's Get Practical</title>
+
+<blurb>*Directory:*<br/>%mkdir tutorial-geospatial && cd
tutorial-geospatial && git init%</blurb>
+
+<blurb>*Algorithms:*<br/>%wget https://derickrethans.nl/files/dump/rdp.tgz
-O /tmp/rdp.tgz%<br/><br/>%mkdir lib && cd lib && tar
xvzf /tmp/rdp.tgz && cd -%</blurb>
+
+<blurb>*Skeleton:*<br/>%php
~/dev/php/php-src.git/ext/ext_skel.php%<br/>%    --ext
geospatial --author "Your Name" --dir . --onlyunix%</blurb>
+
+<blurb>*Test File:*<br/>%https://derickrethans.nl/files/dump/geojson-belgium.json%</blurb>
+<break lines="2"/>
+
+<div effect="fade-in">
+<blurb>*PDF with Code as Diffs:*<br/>%https://derickrethans.nl/files/dump/tutorial-geospatial.pdf%</blurb>
+<blurb>*GIT repository:*<br/>%https://github.com/derickr/tutorial-geospatial%</blurb>
+</div>
+
+</slide>
diff --git a/slides/internals/rdp_simplify-part1b.xml b/slides/internals/rdp_simplify-part1b.xml
index bdf7329c..0cd37adf 100644
--- a/slides/internals/rdp_simplify-part1b.xml
+++ b/slides/internals/rdp_simplify-part1b.xml
@@ -15,7 +15,7 @@
</table>
<break lines="2"/>
-<blurb class="centre">%docs/parameter-parsing-api.md%</blurb>
+<blurb class="centre">%https://wiki.php.net/rfc/fast_zpp%</blurb>
<break lines="2"/>
<image filename="inputs.jpg" attr="Clive Darra - https://www.flickr.com/photos/fsse-info/3414368958/
- CC-BY-SA"/>