Install & live cd
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
Install & live cd
I'm trying out newlisp and ClusterKnoppix - a live CD distribution that
has OpenMosix clustering 'off the shelf'. I've booted two of my home network
with V3.4 and found openmosix works fine and downloading newlisp source
compiling and running newlisp from the compilation directory works fine as expected.
Run multiple compute intensive newlisp programs and openmosix moves them between the nodes fine!
However, I wanted to use newlsip-tk and found the make install fails because on the 'live cd'
/usr/share is read-only. I tried running newlisp-tk from the ource directory but it
looks for images in the usr/share tree (the default place). I then wanted to change the .config
file for newlisp-tk (as suggested in the docs for running in a different directory)
but you have to be able to start newlisp-tk to generate the first .config
file but I can't start newlisp-tk without a modified .config file?
To get to my point could a default .config file be in the source tree? - it could be in
a few versions for different systems eg .config.linux that could be renamed.
Any other suggestions for running newlisp-tk without images etc being in /usr/share
Nigel
has OpenMosix clustering 'off the shelf'. I've booted two of my home network
with V3.4 and found openmosix works fine and downloading newlisp source
compiling and running newlisp from the compilation directory works fine as expected.
Run multiple compute intensive newlisp programs and openmosix moves them between the nodes fine!
However, I wanted to use newlsip-tk and found the make install fails because on the 'live cd'
/usr/share is read-only. I tried running newlisp-tk from the ource directory but it
looks for images in the usr/share tree (the default place). I then wanted to change the .config
file for newlisp-tk (as suggested in the docs for running in a different directory)
but you have to be able to start newlisp-tk to generate the first .config
file but I can't start newlisp-tk without a modified .config file?
To get to my point could a default .config file be in the source tree? - it could be in
a few versions for different systems eg .config.linux that could be renamed.
Any other suggestions for running newlisp-tk without images etc being in /usr/share
Nigel
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
I will include a 'node.lsp' for running newLISP clusters in the upcomming release. It will work somehow like this:
(process "newlisp -p 1001")
(net-connect "localhost" 1001) => sock
(net-send sock "(foo)\n") ;; don't forget the finishing "\n"
(if (net-select sock "r") (net-receive sock 'buff (peek sock)))
etc.
node.lsp will hide socket numbers so the user is only concerned with ports:
(Node:start 1001)
(Node:start 1002)
(Node:eval-str 1001 "(+ 3 4)")
(Node:ready 1001 (Node:read 1001)) => "7"
etc.
Lutz
(process "newlisp -p 1001")
(net-connect "localhost" 1001) => sock
(net-send sock "(foo)\n") ;; don't forget the finishing "\n"
(if (net-select sock "r") (net-receive sock 'buff (peek sock)))
etc.
node.lsp will hide socket numbers so the user is only concerned with ports:
(Node:start 1001)
(Node:start 1002)
(Node:eval-str 1001 "(+ 3 4)")
(Node:ready 1001 (Node:read 1001)) => "7"
etc.
Lutz
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
Looks good Lutz!
As an extra consider being able to copy a context when a node is created. Ie once a socket
is set up commands are sent that recreate a context.
eg
(Node:start 1001 'CHESS)
(Node:start 1002 'CHESS)
(Node:eval-str 1001 "(CHESS:try-move 'KB4)")
(Node:eval-str 1002 "(CHESS:try-move 'KK4)")
(Node:ready 1001 (Node:read 1001)) => "Bad Move"
(Node:ready 1002 (Node:read 1002)) => "Good Move"
etc.
Or maybe sends a file name and loads it on node start
or maybe just show example code for doing this.
Or parhaps is able to start an arbitarily named newlisp that is the exe
linked with some code eg (Node:start 1001 "newlisp-chess.exe")
Nigel
As an extra consider being able to copy a context when a node is created. Ie once a socket
is set up commands are sent that recreate a context.
eg
(Node:start 1001 'CHESS)
(Node:start 1002 'CHESS)
(Node:eval-str 1001 "(CHESS:try-move 'KB4)")
(Node:eval-str 1002 "(CHESS:try-move 'KK4)")
(Node:ready 1001 (Node:read 1001)) => "Bad Move"
(Node:ready 1002 (Node:read 1002)) => "Good Move"
etc.
Or maybe sends a file name and loads it on node start
or maybe just show example code for doing this.
Or parhaps is able to start an arbitarily named newlisp that is the exe
linked with some code eg (Node:start 1001 "newlisp-chess.exe")
Nigel
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
To expand on the last suggestion maybe allow specification of "exe" and some args
when starting node
eg
(Node:start 1001 "newlisp-chess.exe" "initboard.lsp position1.lsp")
(Node:start 1002 "newlisp-chess.exe" "initboard.lsp position2.lsp")
maybe this would be preferable to
"Or maybe sends a file name and loads it on node start
or maybe just show example code for doing this. "
as with the args being specified memory switches could be specified
Nigel
when starting node
eg
(Node:start 1001 "newlisp-chess.exe" "initboard.lsp position1.lsp")
(Node:start 1002 "newlisp-chess.exe" "initboard.lsp position2.lsp")
maybe this would be preferable to
"Or maybe sends a file name and loads it on node start
or maybe just show example code for doing this. "
as with the args being specified memory switches could be specified
Nigel
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
Hi Lutz,
Looking back at earlier makefiles from the initial rpm building stuff
I see there was an option for specifying the directories on the
command line but this was not used. I'll try out using that code for installing to home.
My interest in doing it that way is that with Knoppix there is a facility
to create a permanent home directory (either on usb stick or hard drive)
that can be activated when the cd is booted - thus if you have favourite
personal programs installed there they will persist from reboot to reboot.
It would also suit me to be able to take a cd and usb stick around with
me and always have newLisp ready to go on boot.
I'll see how it pans out.
Nigel
Looking back at earlier makefiles from the initial rpm building stuff
I see there was an option for specifying the directories on the
command line but this was not used. I'll try out using that code for installing to home.
My interest in doing it that way is that with Knoppix there is a facility
to create a permanent home directory (either on usb stick or hard drive)
that can be activated when the cd is booted - thus if you have favourite
personal programs installed there they will persist from reboot to reboot.
It would also suit me to be able to take a cd and usb stick around with
me and always have newLisp ready to go on boot.
I'll see how it pans out.
Nigel
I suggest you make an install_knoppix, which I can include in the distribution. I took out the ifdefs for the rpm directories because some make utilities on some OS would choke on it.
What also has to be taken care of is the IDE(imageDir) spec in newlisp-tk.conf and I could include newlisp-tk.conf.knoppix , which would have to be copied by install_knoppix into the users HOME directory.
The TK frontend will look for $HOME/newlisp-tk.conf and load it if present.
Thanks for doing this work
Lutz
What also has to be taken care of is the IDE(imageDir) spec in newlisp-tk.conf and I could include newlisp-tk.conf.knoppix , which would have to be copied by install_knoppix into the users HOME directory.
The TK frontend will look for $HOME/newlisp-tk.conf and load it if present.
Thanks for doing this work
Lutz
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
Thanks for the tips, Lutz.
Another issue is getting newlisp-tk to start newlisp from $HOME/bin (say).
Thinking about this brought up the general issue of:
Is it possible to have newlisp-tk start-up a specific newlisp (say a different version
than is installed by sysadmin in /usr/bin)? I couldn't see from newlisp-tk the docs and
quick look at newlisp-tk itself how to do it without the manual startup of newlisp.
Would it be reasonable to have it as an optional config line in newlisp.config? say-
set Ide(newLispProgram) "/home/nigel/bin/newlisp"
I'm unsure how this would fit in with how newlisp-tk operates now.
Nigel
PS I'll try to do a generic install_livecd that could do Mandrake Move and the like as well.
Another issue is getting newlisp-tk to start newlisp from $HOME/bin (say).
Thinking about this brought up the general issue of:
Is it possible to have newlisp-tk start-up a specific newlisp (say a different version
than is installed by sysadmin in /usr/bin)? I couldn't see from newlisp-tk the docs and
quick look at newlisp-tk itself how to do it without the manual startup of newlisp.
Would it be reasonable to have it as an optional config line in newlisp.config? say-
set Ide(newLispProgram) "/home/nigel/bin/newlisp"
I'm unsure how this would fit in with how newlisp-tk operates now.
Nigel
PS I'll try to do a generic install_livecd that could do Mandrake Move and the like as well.
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
the following seems to work (I'll test other distros):
#for install to systems where usual install dirs are read-only eg knoppix live cd etc
#
#
# directopry definitions for livecd
datadir=$(HOME)/share
bindir=$(HOME)/bin
mandir=$(HOME)/share/man
install_livecd:
-install -d $(bindir)
-install -d $(mandir)/man1
-install -d $(datadir)/newlisp/doc
-install -d $(datadir)/newlisp/newlisp-tk/images
-install -m 755 newlisp $(bindir)/newlisp
-install -m 755 newlisp-tk/newlisp-tk.tcl $(bindir)/newlisp-tk
-install -m 644 init.lsp $(datadir)/newlisp/init.lsp
-install -m 644 examples/link.lsp $(datadir)/newlisp/link.lsp
-install -m 644 modules/mysql.lsp $(datadir)/newlisp/mysql.lsp
-install -m 644 modules/pop3.lsp $(datadir)/newlisp/pop3.lsp
-install -m 644 modules/ftp.lsp $(datadir)/newlisp/ftp.lsp
-install -m 644 modules/infix.lsp $(datadir)/newlisp/infix.lsp
-install -m 644 modules/smtp.lsp $(datadir)/newlisp/smtp.lsp
-install -m 644 modules/odbc.lsp $(datadir)/newlisp/odbc.lsp
-install -m 644 modules/sqlite.lsp $(datadir)/newlisp/sqlite.lsp
-install -m 644 modules/cgi.lsp $(datadir)/newlisp/cgi.lsp
-install -m 644 modules/stat.lsp $(datadir)/newlisp/stat.lsp
-install -m 644 modules/hash.lsp $(datadir)/newlisp/hash.lsp
-install -m 644 modules/txt2pdf.lsp $(datadir)/newlisp/txt2pdf.lsp
-install -m 644 doc/COPYING $(datadir)/newlisp/COPYING
-install -m 644 doc/CREDITS $(datadir)/newlisp/CREDITS
-install -m 644 doc/newlisp_manual.html $(datadir)/newlisp/doc/newlisp_manual.html
-install -m 644 doc/newlisp_index.html $(datadir)/newlisp/doc/newlisp_index.html
-install -m 644 doc/manual_frame.html $(datadir)/newlisp/doc/manual_frame.html
-install -m 644 newlisp-tk/newlisp-tk.html $(datadir)/newlisp/doc/newlisp-tk.html
-install -m 644 newlisp-tk/*.lsp $(datadir)/newlisp/newlisp-tk/
-install -m 644 newlisp-tk/images/* $(datadir)/newlisp/newlisp-tk/images/
-install -m 644 doc/newlisp.1 $(mandir)/man1/newlisp.1
-install -m 644 doc/newlisp-tk.1 $(mandir)/man1/newlisp-tk.1
uninstall_livecd:
# undo above install
-rm $(HOME)/bin/newlisp
-rm $(HOME)/bin/newlisp-tk
-rm -rf $(HOME)/share/newlisp
-rm $(HOME)/share/man/man1/newlisp.1
-rm $(HOME)/share/man/man1/newlisp-tk.1
Where will the newlisp-tk.config.livecd file be in the tree so I can rename/install it?
Nigel
PS Lutz would
Ide(newLispProgram) "$HOME/bin/newlisp"
work in .config or does expansion have to be used?
#for install to systems where usual install dirs are read-only eg knoppix live cd etc
#
#
# directopry definitions for livecd
datadir=$(HOME)/share
bindir=$(HOME)/bin
mandir=$(HOME)/share/man
install_livecd:
-install -d $(bindir)
-install -d $(mandir)/man1
-install -d $(datadir)/newlisp/doc
-install -d $(datadir)/newlisp/newlisp-tk/images
-install -m 755 newlisp $(bindir)/newlisp
-install -m 755 newlisp-tk/newlisp-tk.tcl $(bindir)/newlisp-tk
-install -m 644 init.lsp $(datadir)/newlisp/init.lsp
-install -m 644 examples/link.lsp $(datadir)/newlisp/link.lsp
-install -m 644 modules/mysql.lsp $(datadir)/newlisp/mysql.lsp
-install -m 644 modules/pop3.lsp $(datadir)/newlisp/pop3.lsp
-install -m 644 modules/ftp.lsp $(datadir)/newlisp/ftp.lsp
-install -m 644 modules/infix.lsp $(datadir)/newlisp/infix.lsp
-install -m 644 modules/smtp.lsp $(datadir)/newlisp/smtp.lsp
-install -m 644 modules/odbc.lsp $(datadir)/newlisp/odbc.lsp
-install -m 644 modules/sqlite.lsp $(datadir)/newlisp/sqlite.lsp
-install -m 644 modules/cgi.lsp $(datadir)/newlisp/cgi.lsp
-install -m 644 modules/stat.lsp $(datadir)/newlisp/stat.lsp
-install -m 644 modules/hash.lsp $(datadir)/newlisp/hash.lsp
-install -m 644 modules/txt2pdf.lsp $(datadir)/newlisp/txt2pdf.lsp
-install -m 644 doc/COPYING $(datadir)/newlisp/COPYING
-install -m 644 doc/CREDITS $(datadir)/newlisp/CREDITS
-install -m 644 doc/newlisp_manual.html $(datadir)/newlisp/doc/newlisp_manual.html
-install -m 644 doc/newlisp_index.html $(datadir)/newlisp/doc/newlisp_index.html
-install -m 644 doc/manual_frame.html $(datadir)/newlisp/doc/manual_frame.html
-install -m 644 newlisp-tk/newlisp-tk.html $(datadir)/newlisp/doc/newlisp-tk.html
-install -m 644 newlisp-tk/*.lsp $(datadir)/newlisp/newlisp-tk/
-install -m 644 newlisp-tk/images/* $(datadir)/newlisp/newlisp-tk/images/
-install -m 644 doc/newlisp.1 $(mandir)/man1/newlisp.1
-install -m 644 doc/newlisp-tk.1 $(mandir)/man1/newlisp-tk.1
uninstall_livecd:
# undo above install
-rm $(HOME)/bin/newlisp
-rm $(HOME)/bin/newlisp-tk
-rm -rf $(HOME)/share/newlisp
-rm $(HOME)/share/man/man1/newlisp.1
-rm $(HOME)/share/man/man1/newlisp-tk.1
Where will the newlisp-tk.config.livecd file be in the tree so I can rename/install it?
Nigel
PS Lutz would
Ide(newLispProgram) "$HOME/bin/newlisp"
work in .config or does expansion have to be used?
Thanks Nigel, regarding $HOME: what probably will work is:
set Ide(newLispProgram) "$env(HOME)/bin/newlisp"
or
set Ide(newLispProgram) "$Ide(HOME)/bin/newlisp"
Because both are used and defined in newlisp-tk.tcl. The newlisp-tk.conf file is just a TCL program file which gets run/sourced by newlisp-tk.tcl on startup.
newlisp-tk.conf.livecd will live in newlisp-x.x.x/newlisp-tk/
Lutz
set Ide(newLispProgram) "$env(HOME)/bin/newlisp"
or
set Ide(newLispProgram) "$Ide(HOME)/bin/newlisp"
Because both are used and defined in newlisp-tk.tcl. The newlisp-tk.conf file is just a TCL program file which gets run/sourced by newlisp-tk.tcl on startup.
newlisp-tk.conf.livecd will live in newlisp-x.x.x/newlisp-tk/
Lutz
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
Re newlisp-tk manual:
"On startup newLISP-tk tries to read a file called newlisp-tk.config"
Is there a heirachy of places newlisp-tk tries for the .config . I thought this
had been mentioned in the forum but couldn't find it. I'm wonderling where to
put it for knoppix - in $HOME directory or under $HOME/share?
Nigel
"On startup newLISP-tk tries to read a file called newlisp-tk.config"
Is there a heirachy of places newlisp-tk tries for the .config . I thought this
had been mentioned in the forum but couldn't find it. I'm wonderling where to
put it for knoppix - in $HOME directory or under $HOME/share?
Nigel
newlisp-tk.config goes into $HOME, newlisp-tk/Linux when starting up will alweays look for it in the home directory of the user who started it.
I just finished integrating your new install scripts and renamed to install_home and uninstall_home after I realized that this feature is not only useful for live CD installation but for a lot of useres on Linux/UNIX machines without root access.
Lutz
ps: thanks rounding suggestion in 'sleep'
I just finished integrating your new install scripts and renamed to install_home and uninstall_home after I realized that this feature is not only useful for live CD installation but for a lot of useres on Linux/UNIX machines without root access.
Lutz
ps: thanks rounding suggestion in 'sleep'
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
-
- Posts: 429
- Joined: Tue Nov 11, 2003 2:11 am
- Location: Brisbane, Australia
I've downloaded 8.1.2 and tries some live CDs.
My comments are
For the distros without readline could we have a make linux_noreadline so a newbie doesn't
need to edit makefile - perhaps the make linux could detect absence of readline and
do it automatically?
For the distros without gcc (eg DSL Damn Small Linux, Mandrake Move) could there be
the static compile available to install to home?
Some distros don't have Mozilla so newlisp-tk.config needs editing - could this
be detected by the install?
If distro has gcc, readline, and Mozilla all is fine.
I'll do a bit of a table on which distro has what soon.
Nigel
PS So far I've tried live CDs of DSL, Mandrake Move, ClusterKnoppix, Quantian, Knoppix, Gnoppix, & Dynebolic. I'll get some less Knoppix based offerings.
My comments are
For the distros without readline could we have a make linux_noreadline so a newbie doesn't
need to edit makefile - perhaps the make linux could detect absence of readline and
do it automatically?
For the distros without gcc (eg DSL Damn Small Linux, Mandrake Move) could there be
the static compile available to install to home?
Some distros don't have Mozilla so newlisp-tk.config needs editing - could this
be detected by the install?
If distro has gcc, readline, and Mozilla all is fine.
I'll do a bit of a table on which distro has what soon.
Nigel
PS So far I've tried live CDs of DSL, Mandrake Move, ClusterKnoppix, Quantian, Knoppix, Gnoppix, & Dynebolic. I'll get some less Knoppix based offerings.
Pretty much everything could be done with more complex makefiles, but makefiles get unreadable and things get very time consuming to maintain and test. Because of the simple makefile, many people could resolve build problems themselves. The INSTALL file and the headers of the makefiles talks about READLINE and NANOSLEEP.
At one point I thought to go with autoconf and configure, but it turns out you still have to test everything and customize to make sure it works,
I will stay with the simple makefiles and try to document, what has to be changed.
Having a table, of what works where would be a great help for users to address build problems.
For the browser configuration, perhaps somethng can be added to the GUI itself, so the browser for help can be configured from inside the GUI, just like fonts and sizes. What is your experience with browsers? which once are installed typically? Should I put Konqueror as a default con Linux?
Lutz
At one point I thought to go with autoconf and configure, but it turns out you still have to test everything and customize to make sure it works,
I will stay with the simple makefiles and try to document, what has to be changed.
Having a table, of what works where would be a great help for users to address build problems.
For the browser configuration, perhaps somethng can be added to the GUI itself, so the browser for help can be configured from inside the GUI, just like fonts and sizes. What is your experience with browsers? which once are installed typically? Should I put Konqueror as a default con Linux?
Lutz