Slashdot Mirror


Perlbox: A Unix Desktop Written in Perl

cascadefx writes "It appears that this programmer has created an Open Sourced Unix Desktop, PerlBox, written in Perl and Tk. I found this posted in response to an article on Perl Monks asking if Perl was obsessed with CGI?. Apparently not. Check it out, it looks pretty interesting." I wonder how fast it runs?

9 of 264 comments (clear)

  1. Re:I wish... by Shiny+Metal+S. · · Score: 4, Informative

    I wish that PERL had a GUI abstraction layer, similar to DBI for databases.

    See Gtk, Gnome, Tk, Qt and Wx CPAN distros.

    --

    ~shiny
    WILL HACK FOR $$$

  2. B - The Perl Compiler by Shiny+Metal+S. · · Score: 3, Informative

    It's actually (almost) compiled each run, instead of being raw interpreted. In the camel book it describes it in detail, but briefly it parses it to bytecode, optimizes it, then executes it (any evals will re-do the process mid program, ect).

    Modules to play with and more info about it:

    • B The Perl Compiler
    • B::Asmdata Autogenerated data about Perl ops, used to generate bytecode
    • B::Assembler Assemble Perl bytecode
    • B::Bblock Walk basic blocks
    • B::Bytecode Perl compiler's bytecode backend
    • B::C Perl compiler's C backend
    • B::CC Perl compiler's optimized C translation backend
    • B::Concise Walk Perl syntax tree, printing concise info about ops
    • B::Debug Walk Perl syntax tree, printing debug info about ops
    • B::Deparse Perl compiler backend to produce perl code
    • B::Disassembler Disassemble Perl bytecode
    • B::Lint Perl lint
    • B::Showlex Show lexical variables used in functions or files
    • B::Stackobj Helper module for CC backend
    • B::Terse Walk Perl syntax tree, printing terse info about ops
    • B::Xref Generates cross reference reports for Perl programs
    --

    ~shiny
    WILL HACK FOR $$$

    1. Re:B - The Perl Compiler by Shiny+Metal+S. · · Score: 5, Informative

      Damn it, I @#%!$& up the links! Of course it's Overrated since it's broken. Here:

      • B The Perl Compiler
      • B::Asmdata Autogenerated data about Perl ops, used to generate bytecode
      • B::Assembler Assemble Perl bytecode
      • B::Bblock Walk basic blocks
      • B::Bytecode Perl compiler's bytecode backend
      • B::C Perl compiler's C backend
      • B::CC Perl compiler's optimized C translation backend
      • B::Concise Walk Perl syntax tree, printing concise info about ops
      • B::Debug Walk Perl syntax tree, printing debug info about ops
      • B::Deparse Perl compiler backend to produce perl code
      • B::Disassembler Disassemble Perl bytecode
      • B::Lint Perl lint
      • B::Showlex Show lexical variables used in functions or files
      • B::Stackobj Helper module for CC backend
      • B::Terse Walk Perl syntax tree, printing terse info about ops
      • B::Xref Generates cross reference reports for Perl programs

      See also perlcompile, perlhack, perlguts, perlxstut, perlxs, perldebtut, perldebug and perldebguts manpages.

      (Note to self: Check those URLs!)

      --

      ~shiny
      WILL HACK FOR $$$

  3. Re:I wish... by Shiny+Metal+S. · · Score: 5, Informative

    Now, if someone wanted to write a real abstraction layer, maybe one that would let you use either Perl/Tk, Perl/GTK+, or something else... that coule be interesting :-)

    See Wx.

    --

    ~shiny
    WILL HACK FOR $$$

  4. Re:I wish... by Shiny+Metal+S. · · Score: 3, Informative

    That's entirely missing the point. It's as if asked "I wish perl had a unified database handling module", somebody had answered: "well, you've got the oracle module, the sybase module and the mysql module. They don't have the same API, but they all allow you to connect to the database you're using.".

    You haven't checked out Wx. It's a Perl module for using wxWindows:

    What is wxWindows?
    wxWindows gives you a single, easy-to-use API for writing GUI applications on multiple platforms. Link with the appropriate library for your platform (Windows/Unix/Mac, others coming shortly) and compiler (almost any popular C++ compiler), and your application will adopt the look and feel appropriate to that platform. On top of great GUI functionality, wxWindows gives you: online help, network programming, streams, clipboard and drag and drop, multithreading, image loading and saving in a variety of popular formats, database support, HTML viewing and printing, and much much more.

    See the wxWindows supported platforms.

    --

    ~shiny
    WILL HACK FOR $$$

  5. Re:Perl and XUL by RevAaron · · Score: 3, Informative

    You can already create your own window managers in perl. Perlwm comes with what you need. I have a feeling you're not talking about creating window managers, but simply GUI apps. Not sure why you'd create a WM in XUL. For creating RAD GUI apps, you can use one of the GUI builders for Tk, Qt, or GTK+ (among others, probably) and create a GUI for perl.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  6. Re:Speed by Fweeky · · Score: 5, Informative

    > Don't Perl scripts get compiled every time they are run?

    Yes, but it's compiled into an internal bytecode format, not an executable binary.

    In this sense it's more like Java -> Bytecode -> JVM (hence Perl -> Bytecode -> PVM) than, say, C -> Object code -> Native Binary. Not quite, but near enough.

    Python has the same property, as do many otherwise interpreted languages. Parrot (the engine Perl 6 will use) is also bytecode based, and probably has more in common with a Java VM, in that it impliments a sort of dynamic-language CPU with registers and instructions, rather than just a tree of tokens the interpreter can easily walk along.

  7. Camelot Naturals? by PD · · Score: 3, Informative

    Something really funky is going on. I type in www.perlbox.org, and the page that loads up is www.camelotnaturals.com

    What the hell?

    1. Re:Camelot Naturals? by yomahz · · Score: 3, Informative


      Something really funky is going on. I type in www.perlbox.org, and the page that loads up is www.camelotnaturals.com

      What the hell?


      I think they removed the entry from the virtual hosts once the ISP saw the slashdotting. Apache (it's running apache 1.3.20) defaults to the first virtual host if a entry isn't found for the domain being requested. www.camelotnaturals.com is probably that entry.

      Looks like they've realized it and replaced it with a blank page. I don't think it was meant as a deceptive advertisement or anything like that.

      --
      "A mind is a terrible thing to taste."