Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
C JavaScript Perl Other
branch: master

grammar

latest commit 9a6dd55e77
mucker authored
Failed to load latest commit information.
lib Working web_repl
t Working web_repl
web_repl Working web_repl
.gitignore Working web_repl
AUTHORS Working web_repl
EXTERN.h Working web_repl
INTERN.h Working web_repl
LICENSE Working web_repl
Makefile Working web_repl
Makefile_emcc Issues were fixed.
README grammar
TestInit.pm Working web_repl
XSUB.h Working web_repl
av.c Working web_repl
av.h Working web_repl
charclass_invlists.h Working web_repl
cop.h Working web_repl
cv.h Working web_repl
deb.c Working web_repl
doio.c Working web_repl
doop.c Working web_repl
dquote_static.c Working web_repl
dump.c Working web_repl
embed.h Working web_repl
embedvar.h Working web_repl
entry_point.js Working web_repl
feature.h Working web_repl
files_from_perl5163 Working web_repl
form.h Working web_repl
generate_uudmap.c Working web_repl
globals.c Working web_repl
gv.c Working web_repl
gv.h Working web_repl
handy.h Working web_repl
hv.c Working web_repl
hv.h Working web_repl
intrpvar.h Working web_repl
iperlsys.h Working web_repl
keywords.c Working web_repl
keywords.h Working web_repl
l1_char_class_tab.h Working web_repl
locale.c Working web_repl
mathoms.c Working web_repl
mg.c Working web_repl
mg.h Working web_repl
mg_names.c Working web_repl
mg_raw.h Working web_repl
mg_vtable.h Working web_repl
miniperlmain.c Working web_repl
miniperlmain_bak.c Working web_repl
mro.c Working web_repl
mydtrace.h Working web_repl
numeric.c Working web_repl
op.c Working web_repl
op.h Working web_repl
op_reg_common.h Working web_repl
opcode.h Working web_repl
opnames.h Working web_repl
overload.c Working web_repl
overload.h Working web_repl
pad.c Working web_repl
pad.h Working web_repl
parser.h Working web_repl
patch-plu-js.pl Add the script to fix the output plu.js file.
patchlevel.h Working web_repl
perl.c Working web_repl
perl.h Working web_repl
perlapi.c Working web_repl
perlapi.h Working web_repl
perlio.c Working web_repl
perlio.h Working web_repl
perlsdio.h Working web_repl
perlvars.h Working web_repl
perly.act Working web_repl
perly.c Working web_repl
perly.h Working web_repl
perly.tab Working web_repl
perly.y Working web_repl
pp.c Working web_repl
pp.h Working web_repl
pp_ctl.c Working web_repl
pp_hot.c Working web_repl
pp_pack.c Working web_repl
pp_proto.h Working web_repl
pp_sort.c Working web_repl
pp_sys.c Working web_repl
proto.h Working web_repl
reentr.c Working web_repl
reentr.h Working web_repl
regcharclass.h Working web_repl
regcomp.c Working web_repl
regcomp.h Working web_repl
regexec.c Working web_repl
regexp.h Working web_repl
regnodes.h Working web_repl
run.c Working web_repl
scope.c Working web_repl
scope.h Working web_repl
sv.c Working web_repl
sv.h Working web_repl
taint.c Working web_repl
thread.h Working web_repl
time64.c Working web_repl
time64.h Working web_repl
time64_config.h Working web_repl
toke.c Working web_repl
uconfig.h Working web_repl
uconfig.sh Working web_repl
uconfig64.sh Working web_repl
universal.c Working web_repl
unixish.h Working web_repl
utf8.c Working web_repl
utf8.h Working web_repl
util.c Working web_repl
util.h Working web_repl
warnings.h Working web_repl

README

Live
^^^^
http://themucker.github.io/plu/
Tested with FF17, FF20, C29
Does not work on mobile browsers

ABOUT
^^^^^
plμ  is perl without CPAN/POSIX/XS/Bundled Modules, aka just
perl and none of the fluff. It is derived from microperl
and miniperl build files of the perl-5.16.3 code.

INSTALLING
^^^^^^^^^^
* Linux
> make
> make plutest
> plu -e "print 'hello world'"

* Emscripten (Console)
> CONSOLE=1 make -f Makefile_emcc
> (modify entry_point.js to add virtual files)**
> cat entry_point.js plu.js** > plu.run.js
> node plu.run.js virtual_file.pl

* Emscripten (for Web)
> make -f Makefile_emcc
> cp plu.js** to web_repl/js/microperl.js
> open web_repl/repl.html in the browser !

** https://github.com/kripken/emscripten/wiki/Filesystem-Guide
** the generated js file has two problemtic lines, in init
   method.

(near)1291: var devFolder = FS.createFolder('/', 'dev', true, true);
     change it to
     var devFolder = FS.findObject('/dev') || FS.createFolder('/', 'dev', true, true);


(near)1348: ... ALLOC_DYNAMIC ...
      change it to
      ALLOC_STATIC or ALLOC_NORMAL

**NOTE**
These two issues are fixed in emscripten as of Jun 3 2013.
see: https://github.com/kripken/emscripten/commit/e94f8f736b347d23d714f3b07cd44629f5b1ab93

web_repl/js/microperl.js has these patches applied

There is also a CONSOLE=1 make option which generates
plu.console.js, for debugging.

SHOUTOUT
^^^^^^^^
* http://kripken.github.io/lua.vm.js/lua.vm.js.html
  (for inspiration)
* Shlomi Fish (http://www.shlomifish.org/) from #perl for his patient testing
  and support.

TODO
^^^^
* unit test emscripten code
* write limitations
* select a few CPAN modules for bundling
* repl oriented towards beginners
* s/js/perl/ ? (Don't think so, but a possibility)
* experiment with perl source code for fun and profit !

LICENSE
^^^^^^^
(tl;dr Artistic License 1)

Something went wrong with that request. Please try again.