Page 1 of 2
newLISP development release 9.1.6
Posted: Mon May 21, 2007 12:25 pm
by Lutz
Version 9.1.6 contains only minor fixes and adjustments, no binary installers are available with this development release.
v.9.1.7, due around the end of May will contain the new GUI modules and come with binary installers.
http://newlisp.org/downloads/development/
Lutz
Posted: Mon May 21, 2007 4:45 pm
by Fanda
I got few ideas for improvement:
1) rest with optional number of elements to remove
(rest lst 2) = (rest (rest lst))
2) apply with negative 'int-reduce' - similar to fold right
http://newlisp-on-noodles.org/wiki/inde ... ts_-_folds
(apply op '(1 2 3 4 5) 2) = (op (op (op (op 1 2) 3) 4) 5)
(apply op '(1 2 3 4 5) -2) = (op 1 (op 2 (op 3 (op 4 5))))
3) (++ x) (-- x)
Very common +1 and -1 (for better readability).
4) destructive append
- similar to 'write-buffer', but for lists
(not sure about the name for this function)
5) function 'round' has 'int-digits' optional - currently not documented
> (round 123.49 0)
123
> (round 123.49)
123
Fanda
Posted: Mon May 21, 2007 7:10 pm
by Dmi
4) destructive append
- similar to 'write-buffer', but for lists
(not sure about the name for this function)
Heh... and, probably, a way to push a list in the middle of the list :-)
Code: Select all
(set 'lst (append (0 n lst) (lst-pushed) (n (length lst) lst)))
Posted: Tue May 22, 2007 1:37 am
by Jeremy Dunn
Add this to the list too:
1. Enhance the NOT function so that if it has multiple arguments it evals all of them so that you can write (not (= a 2)) as (not = a 2). This will get rid of a pair of parentheses almost every time.
2. Allow a negative integer in EXPLODE so that we break from the end rather than the beginning.
(explode "NewLISP" 2) -> ("Ne" "wL" "IS" "P")
(explode "NewLISP" -2) -> ("N" "ew" "LI" "SP")
Posted: Tue May 22, 2007 5:35 am
by HPW
Enhance the NOT function so that if it has multiple arguments it evals all of them so that you can write (not (= a 2)) as (not = a 2).
I do not get this.
(eval =) only returns the symbol adress. (eval a) returns nil.
(eval 2) returns itself.
So you want a (not(and(eval =)(eval a)(eval 2))) ?
Maybe your way is is less typing, but not easy to read and understandable at the first look. Also when the logik gets more complex with nested expressions it seems not real lispy.
Posted: Tue May 22, 2007 7:21 pm
by Jeremy Dunn
I'm sorry that I explained myself badly. Perhaps I'll do so again but I will retry. What I had in mind was that with multiple arguments the first one should be a boolean function name and the rest of the arguments should be the arguments to that function. The idea was that for simple logic expressions like the one I gave that one can throw out the parentheses. Obviously you are not required to do so if you don't want to. As for "unlispy" I can't judge that because I thought LISP was all about finding simplifications of expressions.
Posted: Thu May 24, 2007 7:46 am
by pjot
For your information, 9.1.6 still compiles and runs without errors and without problems on Tru64Unix.
Cheers
Peter
Posted: Wed May 30, 2007 1:24 pm
by Fanda
Fanda wrote:1) rest with optional number of elements to remove
(rest lst 2) = (rest (rest lst))
It might not be necessary to redo 'rest'. N-rest can be done using 'slice' and implicit rest.
Code: Select all
> (set 'lst '(1 2 3 4 5))
(1 2 3 4 5)
> (rest lst)
(2 3 4 5)
> (rest (rest lst))
(3 4 5)
> (2 lst)
(3 4 5)
> (slice lst 2)
(3 4 5)
Fanda
Re: newLISP development release 9.1.6
Posted: Thu May 31, 2007 12:09 pm
by newdep
Lutz wrote:v.9.1.7, due around the end of May will contain the new GUI modules and come with binary installers.
...The beer just hit the fridge... Im ready.. ;-)
newLISP development version 9.1.7
Posted: Thu May 31, 2007 1:38 pm
by Lutz
newLISP development version 9.1.7
Not the GUI version yet but some bug fixes I wanted to get out:
http://newlisp.org/download/development/
You can see a preview of what is coming next week here:
http://newlisp.org/download/development ... opment.png
The new GUI console app is entirely done using the new GUI facilities. The beautiful icons are created (*) by Michael Michaels from
http://neglook.com
Lutz
(*) this is work in progress, not licensed for usage/distribution yet
Posted: Thu May 31, 2007 2:02 pm
by HPW
The beer has to wait a few days.
Still curious what the communication technic between newLISP and the GUI-Server will be?
2 processes communicating?
1 process with a GUI-Lib?
And of cource curious on the list of the supported GUI-elements.
The preview shows us:
gs:frame
gs:button
gs:panel
Tabbed pane?
gs:set-flow-layout seems also very interesting!
So what is used for the GUI-Server and has this project its own documentation?
Posted: Thu May 31, 2007 2:39 pm
by newdep
Aaaa now im realy lost... Cant make up 100% what the widgets are
made of ... Ill double the beer in the fridge ;-)
Btw: thanks for the fix Lutz!
Posted: Thu May 31, 2007 3:50 pm
by Lutz
I wonder nobody has figured it out so far :-)
several of the terms used in the API gave it away ;-)
2 processes communicating?
yes, thats where the name server comes from. The server process links to a popular platform independent libray which comes preinstalled on Win32 and Mac OSX. On UBUNTU it also has been announced for 7.04, but not all kinks are worked out yet (have only been able to experiment with the life disk).
...and has this project its own documentation?
yes, that library used does have its own documentation, but that documentation (which is rather huge) is not necessary to study when building newLISP GUI apps. The newLISP GUI API is a high-level abstraction of the original API. I am working on the newLISP documentation right now, and only that documentation will be required.
Tabbed pane?
yes, it supports tabbed panes as the icon demo shows and also split-panes and scroll-panes. A split-pane is used in the console app to the left. You can drag the bar between the 2 windows up or down.
Lutz
Re: newLISP development version 9.1.7
Posted: Thu May 31, 2007 4:32 pm
by rickyboy
Ah yes, and it looks soooo good on the Mac! (No offense to other platforms.) :-)
Posted: Thu May 31, 2007 5:05 pm
by HPW
No offense to other platforms
We have not seen the other platforms yet!
;-)
So wait and see.
Posted: Thu May 31, 2007 5:38 pm
by cormullion
Looks good!
I'll start brewing the coffee...
Posted: Thu May 31, 2007 6:27 pm
by newdep
I realy cant figure it out..
What GUI run default on Windows and Mac and Ubuntu?? Beats me ;-)
Other Unices needs perhpas extra addons...? I realy dont know what that is...
Mmmmmm no the example names dont ring any bell yet....
I do know a lot of widget/GUI's but none of those fit in the above...
Ill start drinking..perhpas that lightens the mind ;-)
Posted: Thu May 31, 2007 7:23 pm
by newdep
I think the GUI picture killed newlisp.org ...too popular ;-)
Posted: Thu May 31, 2007 7:28 pm
by newdep
Is it MONO & .NET ?
Posted: Thu May 31, 2007 7:38 pm
by newdep
Or perhpas a JavaScript / Mozilla Gui Engine extention we dont know of yet ;-)
Posted: Fri Jun 01, 2007 8:07 am
by newdep
its JAVA ! (GlassFish)
Posted: Fri Jun 01, 2007 6:10 pm
by cormullion
coffee's brewed... :-)
Posted: Fri Jun 01, 2007 9:44 pm
by Ryon
Ptooie! (Hollywood spit take)
What?!!
Posted: Fri Jun 01, 2007 10:40 pm
by newdep
But it cant be JAVA..because JAVA is not default on Win32..
..It isnt default on any system...
So I give up!.. I realy dont know what Lutz is using...
Posted: Fri Jun 01, 2007 11:28 pm
by Lutz
But it cant be JAVA..because JAVA is not default on Win32..
..It isnt default on any system...
Not true, Java comes preinstalled on Mac OSX and installed on every Win32 computer I have tried (e.g. Dell machines out of the box). Guiserver just needs the Standard Java RE (runtime environment) as also used by browsers as MS IE and FireFox. Here some more facts about Java and the guiserver:
- standard installed/shipped on Win32 and MacOS X and UBUNTU since 7.04
- full featured, mature, open source (SUN is GPLing it)
- well supported by a large community
- guiserver is built on swing libs
- can switch look-and-feel between platform native, swing-metal and motif, guiserver by default shows platform native look and feel.
- good execution speed on a 2 year old PPC Mac/1.42GHz, very fast on the new Intel Macs, very fast on a 3 1/2 year old 1.8GHz XP-Home machine.
- startup speed on a fresh booted PPC is the first time 10+ seconds but all startups after that only about 2 seconds. On an Intel Win32 or Mac OSX machine 1.8GHz machine startup the first time about 7 seconds, but after that about 1 second or less.
- initially guiserver only supports GUI stuff, 2D graphics are added during June. A feature complete newLISP console for stable release 9.2 in August.
- The Tcl-tk stuff will be discontinued but example files show how to write Tcl/Tk apps (using Fanda's runtk, which is also featured here:
http://newlisp.org/index.cgi?page=Tk_and_newLISP
Lutz