{"id":20011281,"url":"https://github.com/pdlporters/app-prima-repl","last_synced_at":"2026-05-13T09:33:29.099Z","repository":{"id":2423791,"uuid":"3392564","full_name":"PDLPorters/App-Prima-REPL","owner":"PDLPorters","description":"A PDL-centric GUI REPL written with Prima.","archived":false,"fork":false,"pushed_at":"2024-09-30T13:26:14.000Z","size":165,"stargazers_count":11,"open_issues_count":4,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-12T14:47:37.329Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PDLPorters.png","metadata":{"files":{"readme":"README.pod","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-02-08T23:36:22.000Z","updated_at":"2024-09-30T13:26:18.000Z","dependencies_parsed_at":"2024-11-13T07:29:05.160Z","dependency_job_id":"905454c4-4b14-48e2-83ab-0ae93e274039","html_url":"https://github.com/PDLPorters/App-Prima-REPL","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PDLPorters%2FApp-Prima-REPL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PDLPorters%2FApp-Prima-REPL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PDLPorters%2FApp-Prima-REPL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PDLPorters%2FApp-Prima-REPL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PDLPorters","download_url":"https://codeload.github.com/PDLPorters/App-Prima-REPL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241447644,"owners_count":19964336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T07:25:08.612Z","updated_at":"2026-05-13T09:33:29.032Z","avatar_url":"https://github.com/PDLPorters.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"=head1 App::Prima::REPL\n\nA Run-Eval-Print-Loop written with Prima targetting the PDL community.\n\n=head1 Alpha Version\n\nThis is a script that I started writing in January, 2011. At the time it was\na hack to let me play with a GUI REPL, but it was a huge hack. Since that\ntime I have begun extracting the modular pieces into library pieces, the\nmost complete of which is Prima::InputHistory. However, much work remains\nto be done, and much documentation remains to be written. Do not be\nsurprised if the user-interface changes, and certainly do not be surprised\nif the (currently undocumented) Tab API changes. However, for the daily use\nof hacking on data and making simple plots, these will not much matter.\n\n=head1 Roadmap\n\nUnfortunately, this project has been on a hiatus since roughly June. I have\nthree major widgets that I want to write and test, and then integrate fully into\nthe system.\n\nThe first is Prima::InputHistory, which I wrote quite a while ago and for which\nI have already implemented a test suite.\n\nThe second is Prima::CaptureStdOut, which has a first draft implementation of a\nbigger concept. I wrote the Prima::CaptureStdOut widget and initial test suite\nback in June. An even better implementation would break the widget into two\npieces: one that listened for events on stdout and stderr and fired callbacks\n(called perhaps Prima::StdOutTee), and another that prettily displays the output\nof those events (called perhaps Prima::StdOutText). Then, it would be possible\nfor different widgets to subscribe to the IO events. You could have the same\noutput going to different widgets, and have those widgets get updates\nsimultaneously. It would be neat. A more sophisticaed output handler could also\nbe given Perl objects to display, and then could query the objects to see if\nthey had their own custom display widgets. A PDL spreadsheet-like explorer comes\nto mind, for example. This sort of advanced display widget would make it\npossible to sanely display an output piddle. That, in turn, would allow me to\nput the \"P\" back into the REPL. In combination with InputHistory, this would\nalso allow a natural evolution of the REPL into a Notebook.\n\nFinally, I want to integrate an IRC client into the GUI so that beginners can\nimmediately get one-on-one help. I have a basic IRC client in Prima that I've\nmeant to convert to a widget, but I got too busy. I'm also unsure how I would\nwrite a good test suite for it.\n\nOnce I have those major components, I need to work finalizing and testing the\ntab API and improving the file buffer tabs.\n\n=head1 Supported Platforms and Filing Bugs\n\nprima-repl is supposed to work on Windows, Mac, and Linux. If you find\ntrouble, please report it to the issue tracker on Github at\nL\u003chttps://github.com/run4flat/App-Prima-REPL/issues\u003e.\n\n=head1 Installation\n\nCurrently, this software is only distributed on Github. I intend to release\nit to CPAN at the same time that I release PDL::Drawing::Prima and\nPDL::Graphics::Prima. Strictly speaking, this application does not depend on\neither of those packages, but they provide very nice plotting capabilities\nfor PDL, so if you use PDL I highly recommend installing them.\n\nAt any rate, you cannot install this software with a simple C\u003ccpan\u003e or\nC\u003ccpanm\u003e. Instead, do the following:\n\n=over\n\n=item install Prima\n\nPrima is available on CPAN, you will need version 1.33. If you are on a\nLinux machine B\u003cyou must install your X11 header files\u003e, which are\nconsidered C\u003cdev\u003e files on many flavors of Linux. If you are a Windows or\nMac user, you should be fine as long as you have a C compiler for your\nsystem.\n\nThere may be a couple of errors on test stage. I recommend to ignore them.\n\nNote for Mac users: I have found that Prima will fail to build/install if I\nhave libjpeg or libtiff installed. That's a real bummer, and it's something\nthat I'm going to try to work on. If you have those installed and you\nC\u003cdon't\u003e run into trouble, please let me know. If you run into trouble, you\ncan either uninstall them or you can try to help me and Dmitry figure out\nwhat's wrong.\n\n=item optional: install PDL::Drawing::Prima\n\nPDL::Drawing::Prima is needed for the plotting library that I mention next.\nNote that you should only install this if you are a PDL user and you have\nPDL installed.\n\n git clone git://github.com/run4flat/PDL-Drawing-Prima.git\n cd PDL-Drawing-Prima\n perl Build.PL\n ./Build\n # try running some of the scripts in examples/\n ./Build install\n\n=item optional: install PDL::Graphics::Prima\n\nPDL::Graphics::Prima is a fantastic plotting library that is currently in\nalpha. It will be changing in the next month or so. The Simple interface\nshould remain unchanged, but the underlying PlotType and DataSet systems are\nundergoing a substantial reorganization. That partially-completed\nreorganization is currently in the master branch (sorry), but the last\nusable version of the library has been tagged. To install it, do the\nfollowing (Windows users may need to use C\u003cnmake\u003e or C\u003cdmake\u003e instead or\nC\u003cmake\u003e):\n\n git clone git://github.com/run4flat/PDL-Graphics-Prima.git\n cd PDL-Graphics-Prima\n git checkout v0.01\n perl Makefile.PL\n make\n # try running example scripts in test, though\n # they are not really tests\n make install\n\n=item install App::Prima::REPL\n\nOne more piece, the actual REPL:\n\n git clone git://github.com/run4flat/App-Prima-REPL.git\n cd App-Prima-REPL\n perl Buld.PL\n ./Build\n # You can play with it like so:\n perl -Mblib blib/script/prima-repl\n # OK, now install!\n ./Build install\n\n=back\n\n=head1 Copyright and License\n\nCopyright (C) 2011, 2012 David Mertens\n\nThis library is free software; you can redistribute it and/or modify it\nunder the same terms as Perl itself.\n\nAuthor: David Mertens \u003cdcmertens.perl.csharp@gmail.com\u003e\n\nNote that my email is intentionally obfuscated. Knowing that I am a\nPerl programmer, you can probably remove the part that does not belong.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdlporters%2Fapp-prima-repl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdlporters%2Fapp-prima-repl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdlporters%2Fapp-prima-repl/lists"}