Thanks for this Git version of Poplog. It's really great! I have compile the latest Git version (commit 3243718bda2a118e2fd5b02dc9f1a105f96b7d6f, per Tue Aug 10) without any problems on my Linux Ubuntu 18.05.
I've now also tested it with my Pop-11/Poplog programs from http://hakank.org/poplog/ as well as some other programs not published on that page (since they are just from the TEACH files etc). Compared to what I call the "Poplog official version" (Sussex Poplog Version 16.0, the one installed via http://www.cs.bham.ac.uk/research/projects/poplog/V16/getpoplog.sh ), there are some differences. Note: here's my init.p file which is loaded in some of the programs: http://www.hakank.org/poplog/init.p * First the positive differences The "official version" has problems running some of programs from the command line, and one has to first load the pop11 executable and load the program, otherwise there's an infinite loop or getting some error message regarding "<termin>" etc. These programs are mostly expert systems that interact with input from the user, and they are all from some of the TEACH examples. The Git version don't have this problem, so I can now run directly them as $ poplog pop11 program.p Here are some of these programs that now works nicely from the command line: - http://hakank.org/poplog/emycin_test.p - http://hakank.org/poplog/eprospect_test.p - http://hakank.org/poplog/eshell_test.p - http://hakank.org/poplog/poprulebase_medrules.p (I'm quite sure that I reported this problem with the "official version" some years ago.) * Some things that don't work in the Git version Here are some things that work in the Poplog "official version", but not the Git version. - evans analogy My test program is http://hakank.org/poplog/evans_test.p and the error can be reproduced by: $ poplog pop11 : uses teaching; ;;; LOADING LIB analogy ;;; MISHAP - CAN'T OPEN FILE (Invalid directory) ;;; INVOLVING: '$usepop/pop/lib/turtle/turtle.p' ;;; FILE : /home/hakank/poplog/git/hebish/poplog/pop/packages/lib/../teaching/auto/turtle.p LINE NUMBER: 16 ;;; PRINT DOING ;;; DOING : discin proglist_new_state section Do_expr_syntax_opener ;;; Comp_expr_seq search nextitem Comp_expr_seq search loadlib pop_setpop_ ;;; compiler """ Note: turtle.p is located in ./pop/packages/teaching/auto/turtle.p but is not loaded for some reason. - Schemata test This is from TEACH SCEMATA, and my test program is http://hakank.org/poplog/schemata_test.p The error can be reproduced with: """ $ poplog pop11 Setpop : lib schema; ;;; LOADING LIB schema : lib someschemata; ;;; LOADING LIB someschemata ;;; MISHAP - LIBRARY FILE NOT FOUND ;;; INVOLVING: 'someschemata' ;;; PRINT DOING ;;; DOING : loadlib pop_setpop_compiler """ The missing program "someschemata.p" is in the "official Poplog here: poplog_base/pop/lib/data/someschemata.p However, the Git version don't have the directory pop/lib/data/ That directory includes these files: blockdata.p cube.p domains.p edgepic.p grammar1.p grammar2.p greypic.p lexicon.p overlay.p personpicture.p someschemata.p tetra.p tetrapic.p vacmaze.p I also checked which other directories that are missing from the Git version's pop/lib directory (compared to the "official" version's directory poplog_base_pop/lib). Here are the missing directories: - poplog_base/pop/lib: data - poplog_base/pop/lib: demo - poplog_base/pop/lib: obsolete - poplog_base/pop/lib: proto - poplog_base/pop/lib: psv - poplog_base/pop/lib: sun - poplog_base/pop/lib: turtle (I don't know much about these directories, just noticed that they are not in the Git version.) * Performance One of my standard performance tests is to run the euler*.p programs (problems 1..50, see http://hakank.org/poplog/) . The Git version is about of the same speed as the "official version" - about 10.4s to run all 50 programs - so there's no detectable difference there. About the only program that is discernible better when running in the Git version is http://hakank.org/poplog/lucas_lehmer_test.p (from http://www.rosettacode.org/wiki/Lucas-Lehmer_test ). The "official version" (often but not always) throws an "MEMORY ACCESS VIOLATION" mishap after printing M127 but I've not seen this problem using the Git version. Best, Hakan On Wed, Aug 11, 2021 at 12:08 AM <[email protected]> wrote: > I have now improved build system in git repo. It now > supports packages and more flexible configuration. To > test build with packages do: > > 0. Go to directory where you will build poplog > > 1. Fetch core sources: > > git clone --depth=1 https://github.com/hebisch/poplog . > > 2. Fetch packages: > > cd pop > git clone --depth=1 https://github.com/hebisch/poplog_packages packages > cd .. > > 3. Make directory for corepop: > > mkdir -p target/pop > > 4. Fetch corepop: > > wget https://www.math.uni.wroc.pl/~hebisch/poplog/corepop.amd64 > > 5. Turn on executable bits on fetched corepop: > > chmod 755 corepop.amd64 > > 6. Move corepop to proper place: > > mv corepop.amd64 target/pop/corepop > > 7. Run configure: > > ./configure > > 8. Make new corepop: > > make stamp_new_corepop > > 9. Replace old corepop by new: > > mv target/pop/new_corepop target/pop/corepop > > 10. Build: > > make > > 11. Clean up files not needed for normal use: > > make buildclean > > Above I assumed build on 64-bit PC. If you have PC > with 32-bit OS replace corepop.amd64 above by > corepop.i386 > > configure detects capabilities of build machine and > by default disables unsupported features: if you have > no support for X developement, then X support will be > disabled, if you have Xt, but no Motif, then Poplog > will use Xt. If you have Motif, then Poplog will > be linked with Motif. If this choice is not > satisfactory, configure supports options: > --with_no_x will disable X support even if machine > has X libraries. --with_xt will insist on Xt, that > is ignore Motif and fail if there are no machine > does not suppot Xt. --with_motif will insist on > Motif, if there are no Motif it will fail. > > As I wrote earlier, by defult binaries are created > in subdirectory 'target'. But this is configurable > now. To get directory layout similar to traditional > Poplog distribution in instructions above > replace 'target' by 'pop' (that is put fetched > corepop in 'pop/pop') and use --target_subdir=pop > option to configure. > > Even with --target_subdir=pop there will be some > difference in layout: binary external libraries > will go to 'pop/exlibs' and saved images will > go to 'pop/psv'. Also, I modified ppovision > so that libraries needed by popvision are in > target/packages/popviosion/bin subdirectory > (or pop/packages/popviosion/bin if you use > -target_subdir=pop). Note also that neural > and popvision in git package repo are modifed > so that normally libraries are taken relative > to 'popsys'. > > I intend to provide a tarball with core parts, > packages and corepop so that most steps above > will be replaced by fetching and unpacking the > tarball. > > -- > Waldek Hebisch > > -- Hakan Kjellerstrand http://www.hakank.org/ http://www.hakank.org/webblogg/ http://www.hakank.org/constraint_programming_blog/ http://twitter.com/hakankj https://www.facebook.com/hakankj
