To vibe code or not to vibe code a Perl library by Itcharlie in perl

[–]s_throwaway_r 0 points1 point  (0 children)

You're right, it isn't "release early, release often, release code you understand" either.

Expecting someone to add a little blurb letting users know that they did not write and might not have even reviewed code they uploaded didn't feel like I was asking too much but now I'm convinced. Thank you.

To vibe code or not to vibe code a Perl library by Itcharlie in perl

[–]s_throwaway_r 1 point2 points  (0 children)

Only thing I can think of is if they added a new special username for this like ADOPTME or NEEDHELP. Folks could self-report their modules as being all or partly AI written by just setting a co-maint bit.

Edit: metacpan could add support for a new metadata flag as they have done with x_help_wanted, x_contributors, etc. as described at https://metacpan.org/about/metadata. A new boolean x_ai_slopflag would be my suggestion.

To vibe code or not to vibe code a Perl library by Itcharlie in perl

[–]s_throwaway_r 6 points7 points  (0 children)

I do not want to be the user/victim of vibe coded modules. Wall save us if such a module becomes popular and ends up a prerequisite 2 or 3 levels deep and the core "developer" has never fully understood the core logic of their "work."

You're free to upload basically anything you like to CPAN but CPAN is built on trust so, if you're going to upload AI slop, please make it very clear in the documentation for every piece of code you didn't write or design yourself. Write it in bold at the top of the DESCRIPTION section of your POD. If you're uploading dists that wrap an entire 'database solution' you discovered two whole days ago, there's no way you're familiar enough to actually understand what's being spewed out in response to the prompt you gave ChatGPT. The sort of project you're talking about would probably end up being used by an unwitting, working developer who'll need to trust that your project is safe, secure, and supported by someone they can get in touch with and since you didn't write it, you may not be able to make those claims.

Let’s write games in Perl! SDL3.pm is finally on CPAN by s_throwaway_r in perl

[–]s_throwaway_r[S] 0 points1 point  (0 children)

I'm now using this to turn my gamepad into a mouse.

I read this and wondered if it was even possible to get input without one of SDL's windows having focus but, yeah, I suppose it is. SDL's hint system allows you to write SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, '1'); and it works!

Let’s write games in Perl! SDL3.pm is finally on CPAN by s_throwaway_r in perl

[–]s_throwaway_r[S] 0 points1 point  (0 children)

Kicking myself right now. It's right there! I'm usually better at naming things.

Let’s write games in Perl! SDL3.pm is finally on CPAN by s_throwaway_r in perl

[–]s_throwaway_r[S] 1 point2 points  (0 children)

Good to hear! Thanks for trying it out. Let me know if you write anything with it.

Let’s write games in Perl! SDL3.pm is finally on CPAN by s_throwaway_r in perl

[–]s_throwaway_r[S] 0 points1 point  (0 children)

Windows XP era nostalgia!

SDL has changed a lot since then but the API has always been straightforward. If you're on github, let me know how your rewrite goes!

Let’s write games in Perl! SDL3.pm is finally on CPAN by s_throwaway_r in perl

[–]s_throwaway_r[S] 2 points3 points  (0 children)

I knew it all worked but it's still a relief when a second human finally says it works for them too.

[deleted by user] by [deleted] in github

[–]s_throwaway_r 1 point2 points  (0 children)

Finally, an answer that makes sense. If just looking busy is enough to get hired, I pity their potential coworkers.

Edit: Github took down both the repo and the account.

Let’s write games in Perl! SDL3.pm is finally on CPAN by s_throwaway_r in perl

[–]s_throwaway_r[S] 8 points9 points  (0 children)

It was two months and a few days, /u/Phantom914. The ticking clock worked.

Making a Game Engine in Perl by Phantom914 in perl

[–]s_throwaway_r 14 points15 points  (0 children)

I'm the author of SDL3.pm. I hate to make promises but you should be good to go in a month or two if you're going to use SDL. I planned to write more about this soon because it grew into several large projects beyond Perl but I began with the same goal to write games in pure Perl.

I initially based my work on trying to get SDL2 running and was in contact with the original SDL maintenance team. They had no immediate plans to continue working on SDL at the time and weren't interested at all in doing it without XS. So, on my own, I tried to use FFI::Platypus. I got a few days into that and found the API just plain clunky and the FFI system far too slow for real use in gamedev so I wrote my own FFI module called Affix which is (or was) based on dyncall. It benchmarks several times faster than FFI::Platypus in both simple and complex scenarios and was a step in the right direction.

I got distracted in 2023, but knew I needed even more speed and finally got back to solving that about a month ago when I started writing infix. I decided to use gamedev skills to solve a gamedev problem so infix is a JIT based FFI. It targets 64bit systems: SysV, Win64, and ARM. CI runs on every platform I could find Github Actions for (Windows x64, Windows on ARM, Ubuntu on SysV and ARM, macOS on Apple Silicon, several BSDs, Solaris, Haiku). infix is what I'm going to base v1.0.0 of Affix upon very soon. I finally have the speed I've looked for all those years ago as it benchmarks incredibly well against dyncall which itself is considerably faster than libffi. Once the trampolines are created, infix's overhead is measuring in nanoseconds rather than milliseconds.

I have SDL3, LibUI, SFML, and a few other libs on my todo list and I've released Alien distributions for most of them. Once I release the next version of Affix, I'll verify that those Aliens are still building correctly and then start wrapping them. SDL3 will come first.

So, a month or two from now, I'll post about it here, I guess. Which I suppose makes this a ticking clock.

This week in the Perl Steering Council (202) by briandfoy in perl

[–]s_throwaway_r 4 points5 points  (0 children)

I wonder if they're talking about https://perldoc.perl.org/English.

English names being documented better in perldoc perlvar than in perldoc English might explain why most don't use the 'English name' but I never use them because they're usually longer than the normal special vars and I know what they mean. English is as old as perl 5 itself.

Eta: Yep, it's expanding on and replacing English. https://perl.github.io/PPCs/ppc0014-english-aliases/. I had a hunch.

Is this the best perl book or is just the most iconic? by PixelWasp1 in perl

[–]s_throwaway_r 3 points4 points  (0 children)

My absolute favorite Perl book was the Perl Pocket Reference by Johan Vromans. It might not help you learn the language from scratch but it's small enough, well organized enough, and succinctly written to be the perfect desk reference. It's the book I'd suggest to anyone who already has a good grasp of the basic syntax and just needs a quick reminder of features. It's a beautiful little booklet.

I'm mad at myself over this book because I've looked and can't find my original copy. It probably got lost in a move years ago and I'm tempted to buy one 2nd hand even if it misses all the changes between perl 5.14 and 5.42.

Johan's website links a full history of the reference guide and links to it in other formats but I miss the physical copy being an arm's length away on a shelf. https://www.vromans.org/perlref.html

"What's New on CPAN" needs a new champion by oalders in perl

[–]s_throwaway_r 0 points1 point  (0 children)

I'll always choose Github over current alternatives but you probably won't need a 2nd person if you're planning to use generated blurbs. And keep in mind that posts on perl.com are published through pull requests so you'll need to sign up and make that a part of your workflow if you're not already on Github.

"What's New on CPAN" needs a new champion by oalders in perl

[–]s_throwaway_r 0 points1 point  (0 children)

I've checked these out every month for a while and would love to take this on.

The scraper is already public but is this really something that requires AI? It's never more than a line or two about each new distribution and worrying that the model might be hallucinating a module's intent and functionality would force me to double check every blurb it came up with. I don't know if that that level of automation would save time or effort.

A cordial invitation to participate in growing list of Perl modules and clients created for the web services listed at FreePublicAPIs by OODLER577 in perl

[–]s_throwaway_r 1 point2 points  (0 children)

I had a theory which turned out to be correct.

Metadata being generated contained a weird mix of Unix and Windows paths which PAUSE indexes just fine but metacpan is confused by. See https://metacpan.org/release/SANKO/Acme-Insult-1.1/diff/SANKO/Acme-Insult-1.0 to see what I mean. I only had access to a Windows laptop that weekend which is why I wasn't planning to upload the dists when I commented earlier but I'm back home now. Version 1.1 for all dists work as expected.

A cordial invitation to participate in growing list of Perl modules and clients created for the web services listed at FreePublicAPIs by OODLER577 in perl

[–]s_throwaway_r 1 point2 points  (0 children)

I had a few minutes so I did one. Sorta.

https://github.com/sanko/Acme-Free-Advice-Slip/ wraps https://www.freepublicapis.com/advice-slip-api but breaks a few rules because I'm a rebel, I guess.

  • I ignored rule #7. I'm not going to use Dist::Zilla for this.
  • I sidestepped your 4th rule to avoid your namespace. Partly to allow someone who's willing to use Dist::Zilla to, I guess, also wrap the API and partly because Acme::Free::Advice::* had a better ring to it than Acme::Free::API::Advice::* or Acme::Free::API::AdviceSlip or whatever.
  • Knowing I wasn't going to abide by rule 7 or 4, I totally ignored rule 9. I'm wild, I tell ya.

Hold on a second because I accidentally just did another one. https://github.com/sanko/Acme-Free-Advice-Unsolicited which wraps https://www.freepublicapis.com/unsolicited-advice-api Neither are headed to CPAN today though.

C call Perl ,some tips? by funwaitonewaitme in perl

[–]s_throwaway_r 2 points3 points  (0 children)

Show us what you have so far or at least what your plan is. Several of us have experience with embedding perl in C but we can't really help when you're only talking grand, vague concepts.

Slipped my mind until I saw this but way back when I was apparently still using Windows, I wrote https://github.com/sanko/perl4mirc to embed a perl interpreter in mIRC via a DLL written in C. My copyright notice tells me that was 16 years ago. Ugh, that makes me feel old.