<div dir="ltr"><div><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(0,0,0)"><span style=""><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"></span></span></span></span><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">Hey folks,</span></span></span></span></div><div><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><br></span></span></span></span></div><div><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">We have started work on <a href="https://gitlab.com/libvirt/libvirt/-/issues/11 ">issue 11</a>, and we have some questions to ensure we tackle the issue properly.<br></span></span></span></span></div><div><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"></span></span></span></span><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><br></span></span></span></span></div><ul><li><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">What are the different use cases for g_autoptr vs g_autofree? We found that g_autofree is preferred for anything that uses g_malloc according to the <a href="https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#g-autofree">Glib documentation</a>, and g_autoptr is for types with custom destructors. However, when using g_autoptr, we got compile errors when trying to pass the g_autoptr as an argument (the argument seems to be converted to an integer). When should we use each of these, and when should we not convert them at all?<br><br></span></span></span></span></li><li><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"></span></span></span></span><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">We see that some work has been done to convert files to use the Glib API. In some cases, files contain code that uses both the old memory management API and the Glib API. Should we focus our attention on files where these conversions are not yet underway? Or should we expect that many of the files are only partially converted?<br><br></span></span></span></span></li><li><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">In some cases, we found that converting to the Glib API might require cascading changes to code structure (function parameter types, function return types). Is it advisable to pursue these cases as well, or should we limit changes to pointers which are declared and then freed within one method?<br><br></span></span></span></span></li><li><span style="color:rgb(220,221,222);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;background-color:rgba(4,4,5,0.07);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">Do you know of a directory or set of files where the conversions to the Glib API are needed?</span></span></span></span></li></ul><div><br></div><div>We appreciate the correspondence, and we hope to use this information to make a good contribution to the project!<br></div><div><br></div><div><font size="2">Best regards,</font></div><div><font size="4"><br></font></div><div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">Dustan Helm</span><a href="mailto:dustan.helm@yahoo.com" style="text-decoration:none" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span></a></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">Barrett Schonefeld</span><a href="mailto:bschoney@utexas.edu" style="text-decoration:none" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span></a></p><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">Ryan Gahagan</span><a href="mailto:ryangahagan18@gmail.com" style="text-decoration:none" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"></span></a></div><div><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span style="font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:break-spaces;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"></span></span></span></span></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 16, 2020 at 4:35 AM Michal Privoznik <<a href="mailto:mprivozn@redhat.com">mprivozn@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 9/15/20 10:39 PM, Barrett J Schonefeld wrote:<br>
> Hey libvirt team,<br>
> <br>
> <br>
> We (Ryan Gahagan, Dustan Helm, and Barrett Schonefeld) are computer <br>
> science students at the University of Texas at Austin. We are taking a <br>
> course in virtualization, and we’d like to contribute to the libvirt <br>
> repository as part of this course. Here are the issues we are most <br>
> interested in:<br>
> <br>
> <br>
> <a href="https://gitlab.com/libvirt/libvirt/-/issues/11" rel="noreferrer" target="_blank">https://gitlab.com/libvirt/libvirt/-/issues/11</a> <br>
> <<a href="https://gitlab.com/libvirt/libvirt/-/issues/11" rel="noreferrer" target="_blank">https://gitlab.com/libvirt/libvirt/-/issues/11</a>><br>
> <br>
> <a href="https://gitlab.com/libvirt/libvirt/-/issues/16" rel="noreferrer" target="_blank">https://gitlab.com/libvirt/libvirt/-/issues/16</a><br>
> <br>
> <br>
> Additionally, we would like to take a look at issue 4 <br>
> (<a href="https://gitlab.com/libvirt/libvirt/-/issues/4" rel="noreferrer" target="_blank">https://gitlab.com/libvirt/libvirt/-/issues/4</a> <br>
> <<a href="https://gitlab.com/libvirt/libvirt/-/issues/4" rel="noreferrer" target="_blank">https://gitlab.com/libvirt/libvirt/-/issues/4</a>>), the UDP slowdown for <br>
> QEMU. We expect issue 4 to be more time-intensive, and we would like to <br>
> communicate with you to ensure we’re solving the problem effectively.<br>
> <br>
> <br>
> Our course only runs until the end of the fall semester, so our time to <br>
> contribute to this project is somewhat limited. If you think any of the <br>
> issues we picked would be too difficult to accomplish during that time <br>
> frame, we would appreciate alternative suggestions. We really hope to <br>
> contribute to this project and help make improvements where we can.<br>
<br>
Hey,<br>
<br>
it's always nice to see people interested in libvirt.<br>
<br>
Another area that I can offer (not listed on the issues page) is writing <br>
virsh completers. These are callback functions which are run when a user <br>
hits <TAB><TAB>, for instance:<br>
<br>
   virsh start --domain<TAB><TAB><br>
<br>
brings up a list of shut off guests. It's really regular autocompletion <br>
like we're used to from bash and/or other projects.<br>
<br>
I'd say writing a completer is more beneficial if one wants to learn how <br>
to use libvirt public APIs because that's basically what a completer <br>
callback does. I've reviewed some completer patches recently:<br>
<br>
<a href="https://www.redhat.com/archives/libvir-list/2020-September/msg00592.html" rel="noreferrer" target="_blank">https://www.redhat.com/archives/libvir-list/2020-September/msg00592.html</a><br>
<br>
I'm happy to help,<br>
<br>
Michal<br>
<br>
</blockquote></div>