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?

18 of 264 comments (clear)

  1. Re:perl is teh sux0rz by zapfie · · Score: 2, Informative

    I know this is a troll, but you're correct in that it's actually quite viable. Check out ROX-filer, an excellent file manager (also on the site is ROX-session for session management, and a load of tools to use with it, all in Python). ROX-Filer is an excellent example of how to use Python to create a desktop environment.

    --
    slashdot!=valid HTML
  2. Re:Speed by si1k · · Score: 2, Informative

    Well, Perl is an interpreted language but it does go through an internal compile phase. You *can* design an interpreter that doesn't do this.

  3. Re:Does it matter? by Anonymous Coward · · Score: 2, 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).

    Non-proc consuming optimizations are done each time also. Perl6 is supposed to allow it to be permanently compiled to a bytecode with extensive optimizations much easier. Currently the methods of creating a pre-bytecoded perl script is (almost) a black magic.

  4. 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 $$$

  5. 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 $$$

  6. 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 $$$

  7. Re:I wish... by pnatural · · Score: 2, Informative

    i can't attest to the speed of the wx bindings for perl, but i can tell you that the wx bindings for python (wxpython, here.) are fast. very, very fast.

  8. Re:It's a speed demon by oever · · Score: 2, Informative

    The speed should be comparable to JOS (Java Operating System).

    --
    DNA is the ultimate spaghetti code.
  9. 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 $$$

  10. What someone wrote about Glibc by Anonymous Coward · · Score: 1, Informative
    > This gets announced, but GlibC 2.2.5 when it
    > came out was not announced. Slashdot has become
    > shit.

    Grossly offtopic, agreed, but why would you expect a minor glibc update (which is only really of worth to distro packagers) to have a big announcement? There's not a lot to be said about it. Then again, maybe there is. I had to statically link a small text-based tool with glibc the other day. The binary (stripped) came to 380k. Finding this to be a tad weighty, I booted up FreeBSD and statically linked it to their libc. Result? 18k stripped binary.

    I've seen Linus et al. make comments about Glibc's bloat before, and now I'm starting to wonder. Is this as bad as it looks? I'm aware of small substitute projects like dietlibc, and I know Glibc has a lot of features, but how far will it go?

    Not a troll; offtopic; mod down; ah well; whatever. :)

  11. javascript errors by loconet · · Score: 2, Informative

    For those of you who can't get to the screenshots because of those annoying javascript errors: http://perlbox.org/screenshots.shtml

    --
    [alk]
  12. Re:I wish... by qweqwe · · Score: 2, Informative

    I suppose you mean something like Python's AnyGUI:
    http://anygui.sourceforge.net/screenshots .php

    The good news is that while it's possible to port it to Perl, you don't have to if you're willing to wait for Parrot.

  13. 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
  14. 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.

  15. 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."
  16. Site redirection? by Magius_AR · · Score: 2, Informative
    Ummm, when I try to go to PerlBox.org, it redirects me to http://www.camelotnaturals.com/ which is some bath & body site. Now, I know the camel has always been a Perl mascot, but isn't this a step too far?

    Magius_AR