pre release version newLISP 8.8.0-p2

Started by Lutz, February 12, 2006, 01:04:33 PM

Previous topic - Next topic

Lutz

Various bug fixes and doc changes, the PDF version of the manual, now has clickable links.



For files and release notes see: http://newlisp.org/downloads/development/">http://newlisp.org/downloads/development/  



Lutz



ps: thanks to Nigel for cleaning up the HTML in the manual, this made suddenly clickable links work in the OpenOffice 2.0 PDF conversion.

Dmi

#1
Quoteload:

This function now will never change the current runtime context, regardless what of context switches inside the loaded file. If no context switch is specified in the loaded file or as an additional parameter in load, it will be loaded/compiled into the MAIN context.

Definitely good improvement!



But this makes some unuseful restrictions:

1. This isn't really a security protection (because any loaded code may then directly change MAIN's contents and load new files into it). But mostly a sanity improvement.

2. We must pre-know the context's names for any trusted module and library we want to load.

3. The loaded code always isn't fully functional as a main program. But this is useless because of #1.



Is it possible not to restrict the context switches when the loading context is MAIN? - Loading into MAIN is either the higest trusting, so the loaded code can feel free to do anything.



Just an opinion: probably, load w/o a context argument must to load to the current context - not to MAIN.
WBR, Dmi

nigelbrown

#2
The bookmarks in the pdf now are just what I needed, thanks Lutz.



Please see my note on the Bayes chain example in the doc RFC thread for a suggested clarification of the requirement of the chain calculation that the test and retest results should 'conditionally independent'.

Perhaps adding:



Note that  it is assumed the test and retests are conditionally independent. That is, the likelihood of a given test result depends on the gold standard diagnosis alone rather than on the gold standard and results of the other test.



would cover it.



Nigel

Lutz

#3
The philosophy how it works now is best described as behavior of least surprise:



When the loaded file doesn't start with a context switch, it 'looks' like a MAIN context file and that is where it gets loaded.



This puts a little bit more emphasis on the perspective from the file beeing loaded than on the loader/caller, which is Ok in object oriented thinking, where the module decides it's own behaviour.



The caller can overwrite this specifying an optional context as last parameter in 'load'.



What prompted me to all these changes in context behaviour and addition of the context parameters to 'load' and 'eval-string', was my experience in working with a team of (very smart) programmers at Kozoru.com and the assumptions they made how certain things should work. That is why  I call it the  behavior of least surprise ;).



Lutz

Lutz

#4
Nigel, thanks for your comment on the Bayes chapter, I completely had missed out on your earlier comments on this in the doc-thread.



Lutz

Dmi

#5
Oh! Sorry! I just made an additional check - my interpretation of load functionality was slightly wrong. I somehow figure out that you supress (context) switches when evaluating a loaded file - not only restore original context after loading. - My mistake.



So, the the new load behavior is definitely good! ;-)
WBR, Dmi