diff options
author | Eugene Grosbein <eugen@FreeBSD.org> | 2020-11-23 21:26:14 +0800 |
---|---|---|
committer | Eugene Grosbein <eugen@FreeBSD.org> | 2020-11-23 21:26:14 +0800 |
commit | 5973cbeb09c236864961e043b4509b6cb01d1c8a (patch) | |
tree | a6699450e0714ddfda4a039c70f7c879b992bb99 /lang/gprolog | |
parent | 3a7b87ef5a5b0c9df4e75e4c19ba1872d231282e (diff) | |
download | freebsd-ports-gnome-5973cbeb09c236864961e043b4509b6cb01d1c8a.tar.gz freebsd-ports-gnome-5973cbeb09c236864961e043b4509b6cb01d1c8a.tar.zst freebsd-ports-gnome-5973cbeb09c236864961e043b4509b6cb01d1c8a.zip |
lang/gprolog: recover GNU Prolog under FreeBSD.
Update to version 1.4.5 released in 2020.
Make it build and run with Clang 10:
- clang has no register reservation for x86, hence patch-EnginePl_machine.h
and -DNO_MACHINE_REG_FOR_REG_BANK to prevent using missing feature;
- add patch-Ma2Asm_x86__64__any.c fetched from upstream SourceForge
post-release commit dealing with PIC issues;
- disable usage of spinlocks that results in a hang eating all available
CPU cycles; fixed with -DUSE_LOCKS=1 -DUSE_RECURSIVE_LOCKS=1
-DUSE_SPIN_LOCKS=0;
- the software uses bundled dlmalloc dated back 2011 that replaces
functions like calloc() with own implemenations and it's calloc()
sometimes fails to clear allocated memory; this results in SIGSEGV
when its own hash-table implementation dereferences junk that
supposed to be NULL pointer, so it fails to complete build;
fixed with MMAP_CLEARS=0.
PR: 231393
Diffstat (limited to 'lang/gprolog')
-rw-r--r-- | lang/gprolog/Makefile | 41 | ||||
-rw-r--r-- | lang/gprolog/distinfo | 3 | ||||
-rw-r--r-- | lang/gprolog/files/patch-EnginePl_machine.h | 20 | ||||
-rw-r--r-- | lang/gprolog/files/patch-Ma2Asm_x86__64__any.c | 57 | ||||
-rw-r--r-- | lang/gprolog/pkg-descr | 20 | ||||
-rw-r--r-- | lang/gprolog/pkg-plist | 185 |
6 files changed, 326 insertions, 0 deletions
diff --git a/lang/gprolog/Makefile b/lang/gprolog/Makefile new file mode 100644 index 000000000000..cec993a7827d --- /dev/null +++ b/lang/gprolog/Makefile @@ -0,0 +1,41 @@ +# Created by: Douglas Anestad <yotta@dougdidit.com> +# $FreeBSD$ + +PORTNAME= gprolog +PORTVERSION= 1.4.5 +CATEGORIES= lang +MASTER_SITES= http://www.gprolog.org/ + +MAINTAINER= ports@FreeBSD.org +COMMENT= Free Prolog compiler + +LICENSE= GPLv2 + +ONLY_FOR_ARCHS= amd64 i386 + +USES= gmake +CFLAGS+= -DUSE_LOCKS=1 -DUSE_RECURSIVE_LOCKS=1 -DUSE_SPIN_LOCKS=0 \ + -DMMAP_CLEARS=0 -DNO_MACHINE_REG_FOR_REG_BANK + +PLIST_SUB= GPROLOG_VER=${PORTVERSION} +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --with-c-flags="${CFLAGS}" \ + --with-doc-dir="${DOCSDIR}" \ + --with-examples-dir="${EXAMPLESDIR}" +CONFIGURE_TARGET= ${ARCH:S/amd64/x86_64/}-portbld-${OPSYS:tl}${OSREL} +MAKE_JOBS_UNSAFE= yes +WRKSRC_SUBDIR= src + +OPTIONS_DEFINE= FD DOCS EXAMPLES +OPTIONS_DEFAULT= FD +OPTIONS_SUB= yes + +FD_DESC= Enable finite domain constraint solver +FD_CONFIGURE_OFF= --disable-fd-solver + +post-patch: + @${REINPLACE_CMD} \ + '/LINKS_DIR/s|$$(INSTALL_DIR)|../${PORTNAME}-${PORTVERSION}|' \ + ${WRKSRC}/Makefile.in + +.include <bsd.port.mk> diff --git a/lang/gprolog/distinfo b/lang/gprolog/distinfo new file mode 100644 index 000000000000..c3faef75a827 --- /dev/null +++ b/lang/gprolog/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1606049432 +SHA256 (gprolog-1.4.5.tar.gz) = ce5335d1607f0b01d5567252211ae2b19e6a5e52b62978717880524748afb9a2 +SIZE (gprolog-1.4.5.tar.gz) = 3585704 diff --git a/lang/gprolog/files/patch-EnginePl_machine.h b/lang/gprolog/files/patch-EnginePl_machine.h new file mode 100644 index 000000000000..69bb186b924b --- /dev/null +++ b/lang/gprolog/files/patch-EnginePl_machine.h @@ -0,0 +1,20 @@ +--- EnginePl/machine.h.orig 2015-01-13 18:00:19 UTC ++++ EnginePl/machine.h +@@ -124,7 +124,7 @@ void M_Check_Magic_Words(void); /* not c + # define M_USED_REGS {"$9", "$10", "$11", "$12", "$13", "$14", 0} + + /* on M_ix86_darwin : %ebx is used by gcc for pic base */ +-#elif defined(M_ix86) && !defined(_MSC_VER) && !defined(M_ix86_darwin) ++#elif defined(M_ix86) && !defined(_MSC_VER) && !defined(M_ix86_darwin) && !defined(__clang__) + + #ifdef NO_USE_EBP + # define M_USED_REGS {"ebx", 0} +@@ -137,7 +137,7 @@ void M_Check_Magic_Words(void); /* not c + # define M_USED_REGS {"15", "20", 0} + + /* on M_x86_64_darwin Lion r12-r15 do not work (why ?) */ +-#elif defined(M_x86_64) && !defined(_MSC_VER) && !defined(M_x86_64_darwin) ++#elif defined(M_x86_64) && !defined(_MSC_VER) && !defined(M_x86_64_darwin) && !defined(__clang__) + + # define M_USED_REGS {"r12", "r13", "r14", "r15", 0} + diff --git a/lang/gprolog/files/patch-Ma2Asm_x86__64__any.c b/lang/gprolog/files/patch-Ma2Asm_x86__64__any.c new file mode 100644 index 000000000000..20af1004559d --- /dev/null +++ b/lang/gprolog/files/patch-Ma2Asm_x86__64__any.c @@ -0,0 +1,57 @@ +--- Ma2Asm/x86_64_any.c.orig 2018-10-23 15:17:17 UTC ++++ Ma2Asm/x86_64_any.c +@@ -112,6 +112,9 @@ + * Global Variables * + *---------------------------------*/ + ++int can_produce_pic_code = 1; /* overwritte var of ma2asm.c */ ++extern int pic_code; ++ + static double dbl_tbl[MAX_DOUBLES_IN_PRED]; + static int nb_dbl = 0; + static int dbl_lc_no = 0; +@@ -149,7 +152,6 @@ static const char *fpr_arg[MAX_FPR_ARGS] + #endif + /* variables for ma_parser.c / ma2asm.c */ + +-int can_produce_pic_code = 1; + char *comment_prefix = "#"; + #ifdef M_x86_64_darwin + char *local_symb_prefix = "L"; +@@ -210,10 +212,8 @@ Asm_Start(void) + strcpy(asm_reg_cp, Off_Reg_Bank(MAP_OFFSET_CP)); + #endif + +-#if defined(M_x86_64_darwin) || defined(M_x86_64_bsd) +- pic_code = 1; /* NB: on darwin and BSD everything is PIC code */ +-#elif defined(M_x86_64_linux) && __GNUC__ >= 6 /* gcc >= 6 needs PIC for linux */ +- pic_code = 1; ++#ifdef M_x86_64_darwin ++ pic_code = 1; /* NB: on darwin everything is PIC code */ + #elif defined(_WIN32) + pic_code = 0; /* NB: on MinGW nothing is needed for PIC code */ + #endif +@@ -1199,9 +1199,9 @@ Dico_Long(char *name, int global, VType + size_bytes = value * 8; + #ifdef M_x86_64_darwin + if (!global) +- Label_Printf(".zerofill __DATA,__bss," UN "%s,%" PL_FMT_d ",4", name, size_bytes); ++ Label_Printf(".zerofill __DATA,__bss," UN "%s,%" PL_FMT_d ",3", name, size_bytes); + else +- Inst_Printf(".comm", UN "%s,%" PL_FMT_d ",4", name, size_bytes); ++ Inst_Printf(".comm", UN "%s,%" PL_FMT_d ",3", name, size_bytes); + #else + #if defined(M_x86_64_linux) || defined(M_x86_64_sco) || \ + defined(M_x86_64_solaris) || defined(M_x86_64_bsd) +@@ -1226,11 +1226,6 @@ Dico_Long(char *name, int global, VType + case INITIAL_VALUE: + if (global) + Inst_Printf(".globl", UN "%s", name); +-#ifdef M_x86_64_darwin +- Inst_Printf(".align", "3"); +-#else +- Inst_Printf(".align", "8"); +-#endif + #if !(defined(M_x86_64_darwin) || defined(_WIN32)) + Inst_Printf(".size", UN "%s,8", name); + #endif diff --git a/lang/gprolog/pkg-descr b/lang/gprolog/pkg-descr new file mode 100644 index 000000000000..c64552c8a47c --- /dev/null +++ b/lang/gprolog/pkg-descr @@ -0,0 +1,20 @@ +GNU Prolog is a free Prolog compiler with constraint solving over finite +domains developed by Daniel Diaz. + +GNU Prolog accepts Prolog+constraint programs and produces native binaries +(like gcc does from a C source). The obtained executable is then stand-alone. +The size of this executable can be quite small since GNU Prolog can avoid to +link the code of most unused built-in predicates. The performances of GNU +Prolog are very encouraging (comparable to commercial systems). + +Beside the native-code compilation, GNU Prolog offers a classical interactive +interpreter (top-level) with a debugger. + +The Prolog part conforms to the ISO standard for Prolog with many extensions +very useful in practice (global variables, OS interface, sockets,...). + +GNU Prolog also includes an efficient constraint solver over Finite Domains +(FD). This opens contraint logic pogramming to the user combining the power +of constraint programming to the declarativity of logic programming. + +WWW: http://www.gprolog.org/ diff --git a/lang/gprolog/pkg-plist b/lang/gprolog/pkg-plist new file mode 100644 index 000000000000..8dc74bb4ba1b --- /dev/null +++ b/lang/gprolog/pkg-plist @@ -0,0 +1,185 @@ +%%FD%%bin/fd2c +bin/gplc +bin/gprolog +bin/hexgplc +bin/ma2asm +bin/pl2wam +bin/wam2ma +gprolog-%%GPROLOG_VER%%/COPYING +gprolog-%%GPROLOG_VER%%/ChangeLog +gprolog-%%GPROLOG_VER%%/NEWS +gprolog-%%GPROLOG_VER%%/README +gprolog-%%GPROLOG_VER%%/VERSION +%%FD%%gprolog-%%GPROLOG_VER%%/bin/fd2c +gprolog-%%GPROLOG_VER%%/bin/gplc +gprolog-%%GPROLOG_VER%%/bin/gprolog +gprolog-%%GPROLOG_VER%%/bin/hexgplc +gprolog-%%GPROLOG_VER%%/bin/ma2asm +gprolog-%%GPROLOG_VER%%/bin/pl2wam +gprolog-%%GPROLOG_VER%%/bin/wam2ma +gprolog-%%GPROLOG_VER%%/gprolog.ico +gprolog-%%GPROLOG_VER%%/include/fd_to_c.h +gprolog-%%GPROLOG_VER%%/include/gprolog.h +%%FD%%gprolog-%%GPROLOG_VER%%/lib/all_fd_bips.o +gprolog-%%GPROLOG_VER%%/lib/all_pl_bips.o +gprolog-%%GPROLOG_VER%%/lib/debugger.o +%%FD%%gprolog-%%GPROLOG_VER%%/lib/libbips_fd.a +gprolog-%%GPROLOG_VER%%/lib/libbips_pl.a +%%FD%%gprolog-%%GPROLOG_VER%%/lib/libengine_fd.a +gprolog-%%GPROLOG_VER%%/lib/libengine_pl.a +gprolog-%%GPROLOG_VER%%/lib/liblinedit.a +gprolog-%%GPROLOG_VER%%/lib/top_level.o +%%PORTDOCS%%%%DOCSDIR%%/compil-scheme.eps +%%PORTDOCS%%%%DOCSDIR%%/compil-scheme.pdf +%%PORTDOCS%%%%DOCSDIR%%/contents_motif.gif +%%PORTDOCS%%%%DOCSDIR%%/debug-box.eps +%%PORTDOCS%%%%DOCSDIR%%/debug-box.pdf +%%PORTDOCS%%%%DOCSDIR%%/gprolog.chm +%%PORTDOCS%%%%DOCSDIR%%/gprolog.dvi +%%PORTDOCS%%%%DOCSDIR%%/gprolog.html +%%PORTDOCS%%%%DOCSDIR%%/gprolog.pdf +%%PORTDOCS%%%%DOCSDIR%%/gprolog.ps +%%PORTDOCS%%%%DOCSDIR%%/html_node/contents_motif.gif +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog-idx.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog.css +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog001.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog002.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog003.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog004.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog005.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog006.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog007.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog008.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog009.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog010.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog011.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog012.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog013.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog014.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog015.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog016.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog017.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog018.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog019.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog020.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog021.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog022.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog023.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog024.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog025.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog026.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog027.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog028.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog029.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog030.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog031.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog032.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog033.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog034.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog035.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog036.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog037.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog038.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog039.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog040.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog041.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog042.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog043.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog044.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog045.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog046.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog047.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog048.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog049.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog050.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog051.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog052.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog053.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog054.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog055.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog056.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog057.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog058.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog059.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog060.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog061.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog062.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog063.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog064.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog065.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog066.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog067.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog068.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog069.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog070.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog071.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog072.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog073.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/index.html +%%PORTDOCS%%%%DOCSDIR%%/html_node/next_motif.gif +%%PORTDOCS%%%%DOCSDIR%%/html_node/previous_motif.gif +%%PORTDOCS%%%%DOCSDIR%%/logo.eps +%%PORTDOCS%%%%DOCSDIR%%/logo.pdf +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/Makefile +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/README +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/examp.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/examp_c.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/new_main.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/new_main_c.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/Makefile +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/alpha.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/array.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bdiag.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bdonald.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bpigeon.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bqueens.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bramsey.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bridge.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bridge1.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bschur.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bsend.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/cars.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/crypta.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/digit8.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/donald.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/eq10.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/eq20.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/five.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/gardner.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/interval.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/langford.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/magic.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/magsq.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/multipl.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/partit.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/qg5.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/queens.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/queens_fd.fd +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/send.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/square.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/srq.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/Makefile +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/PROGS +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/README +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/boyer.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/browse.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/cal.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/chat_parser.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/common.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/crypt.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/ham.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/hook.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/meta_qsort.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/nand.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/nrev.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/poly_10.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/qsort.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/queens.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/queensn.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/query.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/reducer.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/sdda.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/sendmore.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/tak.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/tak_gvar.pl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/zebra.pl |