<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://blog.gmane.org/gmane.comp.ai.prolog.swi">
    <title>gmane.comp.ai.prolog.swi</title>
    <link>http://blog.gmane.org/gmane.comp.ai.prolog.swi</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9220"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9219"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9218"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9217"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9216"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9215"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9214"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9213"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9212"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9211"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9210"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9209"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9208"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9207"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9206"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9205"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9204"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9203"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9202"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9201"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9220">
    <title>Re: Need help</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9220</link>
    <description>Prolog is not an expert system shell.  It is a general purpose programming language that happens to be very adept for doing complex search algorithms, and symbolic manipulation.  Both of those features make it suitable for designing an expert system.  But Prolog doesn't prescribe any method of building an expert system.  

Tutorials commonly advise one of two methods to build Prolog programs.  One way is to make lots of facts in the Prolog database, and then build programs that query the facts and make connections.  This is easy and works well for smaller prorgrams.  The other is to use lists and other datastructures to manage and manipulate knowledge.  This is more complicated, but is also more scalable.

To learn the language, search "prolog tutorial", and choose one of the many.  After, lookup the book "The Craft of Prolog" by Richard O'Keefe.

Then we can talk about expert system building.

 Alan Baljeu





________________________________
From: menguele francois &lt;menguelef&lt; at &gt;yahoo.fr&gt;
To: swi-prolog&lt; at &gt;iai.uni-bonn.de
Sent: Monday, December 1, 2008 6:21:43 AM
Subject: [SWIPL] Need help


Good morning.
I'm a new delphi programmer and i want to be initiate to expert system.
I downloadded the delphiswi.zip which must help me to embbed prolog in delphi. The problem is that i don't know how to use it. So please can u help me. I really want to implement my first  expert system.
Thanks.


      __________________________________________________________________
Looking for the perfect gift? Give the gift of Flickr! 

http://www.flickr.com/gift/</description>
    <dc:creator>Alan Baljeu</dc:creator>
    <dc:date>2008-12-01T15:29:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9219">
    <title>Need help</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9219</link>
    <description>Good morning.
I'm a new delphi programmer and i want to be initiate to expert system.
I downloadded the delphiswi.zip which must help me to embbed prolog in delphi. The problem is that i don't know how to use it. So please can u help me. I really want to implement my first  expert system.
Thanks.



      </description>
    <dc:creator>menguele francois</dc:creator>
    <dc:date>2008-12-01T11:21:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9218">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9218</link>
    <description>Richard O'Keefe schrieb:

That's indeed a very nasty consequence of which I didn't think
before. Thanks for the explanation. Also to Ulrich and Jan.

Günter

</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-12-01T09:30:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9217">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9217</link>
    <description>-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Richard O'Keefe schrieb:

I think this is a good idea in most situations.

However if you want to parse data that contains arbitrary Prolog
expressions (I think this is what Günter needs), then your parser
probably won't be trivial: You would have to reimplement the parsing
used by SWI-Prolog, which is difficult *because* of user defined
operators, etc.

Here is what I would try. Not as elegant and probably not as robust as
having a single parser, but  -- I think -- easier to implement:

1) Use a very simple parser that only does a rough partitioning of the
input (filter out comments, make string/atom-literals opaque).

2) In a second pass, put quotes around all occurrences of !!! (or
whatever you are using) in the remaining regions of the input.

3) Then feed the result to SWI-Prolog.


Regards,
- --lu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkzpVQACgkQ6CpjlIRmaiCDjgCfYZ56/FNvu0F+KJ5WZajqAeTC
v9EAnAmRDi/BSgP19smRqMnyFbKE6Ieg
=bscn
-----END PGP SIGNATURE-----

</description>
    <dc:creator>Lukas Degener</dc:creator>
    <dc:date>2008-12-01T08:50:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9216">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9216</link>
    <description>
Even determining the end of a read-term would depend on the current
operator definitions.

If more elaborate operators are desired, UTF-8 provides plenty of
characters.

What about
?- op(1175, xfx, '\u2225').

in place of ||| or '\u203c' in place of !!! ?

</description>
    <dc:creator>Ulrich Neumerkel</dc:creator>
    <dc:date>2008-12-01T06:54:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9215">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9215</link>
    <description>
On 1 Dec 2008, at 10:13 am, Günter Kniesel wrote:

YIKE!  There was a Prolog system that worked that way.
More than one, in fact.  Trying to figure out how to
parse it was a nightmare, because the operator declaration
that licensed a particular token might not be in the same
file as the token in question.

Some things just don't work well in practice.
It's an even worse idea than APL's "you can't even parse me
until run time" "cleverness".

The problem is that some people wanted to write "a:-!."
or "a:-!, b.", which means that "!" has to be in a different
character class from "-".  If you are happy to break that,
then there would be no problem in putting "!" in the same
character class as "-" and ":".


Nothing stops you designing your own new syntax
and plugging it in.

Certainly nothing stops you writing your own parser for
"data" and mapping that into some other Prolog; using
operator-heavy stuff *at run time* has a nasty habit of
leading to inefficiency, because what is optimised for
human reading is not optimised for machine processing.
(Prolog syntax itself is a good example of this.)

Bill Clocksin (co-author of "Programming in Prolog" with
Chris Mellish) once told me that the only major improvement
to Prolog he could think of would be to abolish user-defined
operators.  I often think he was right.
</description>
    <dc:creator>Richard O'Keefe</dc:creator>
    <dc:date>2008-12-01T06:23:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9214">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9214</link>
    <description>Ulrich Neumerkel schrieb:

Hi Ulrich,

I understand the historic reasons for the current state but not
why it wouldn't be possible to treat !!! as a token as soon as
there is a corresponding operator definition.

That wouldn't require extra space in other cases (such as
those you mentioned above).
It might require replacing the special treatment of ! and
friends in the parser to check for special tokens defined
by operator declarations.

I don't know how much work that is but I know it would
definitely help me a lot ;) The current state prevents
some very useful operator definitions. The exclamation
and pipe are very intuitive in many contexts, so it is
a pity that one cannot use them in operators.

Günter


</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-11-30T21:13:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9213">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9213</link>
    <description>
They are solo- and punctuation characters respectively. They do not
glue together with other characters and thus will always represent one
token unless quoted like '!!!'.  Other characters with similar
properties are ; , [ ] ( ) { } but not . which is not a punctuation
character but only a symbol character to make =.. work, a remainder
from the ancient ,.. notation for lists.

Without solos and punctuations we would have to add extra space to

a :- !.     L0 = [+,a,-|L1].

resulting in less compact text

a :- ! .     L0 = [ + ,a, - |L1] .

</description>
    <dc:creator>Ulrich Neumerkel</dc:creator>
    <dc:date>2008-11-30T14:03:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9212">
    <title>Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9212</link>
    <description>Hi SWI team,

in general, it is possible to write an operator that has
another one as prefix. For instance,
   :- op(1175, xfx, +++).
   :- op(1175, xfx, ---).
is OK, although + and - are operators too. This is what I
would like also for ! and | but:

?- op(1175, xfx, |||).
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] op/3: Type error: `list' expected, found `(|)||'

?- op(1175, xfx, !!!).
op(1175, xfx, !!!).
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] Syntax error: Operator expected
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] op(1175, xfx, set_stream(current_output,tty(true)),set_stream(current_input,tty(true))
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] ** here **
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] !) .

It seems that the symbols ! and | are treated by the parser
in a special way that makes it impossible to define operators
that contain these symbols without being forced to add ugly
quotes around the operator.

Could this be fixed?

Regards,
Günter


</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-11-30T12:27:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9211">
    <title>RE: help about programing with prolog</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9211</link>
    <description>The program is

parent(tom,socrates).

parent(john,tom).

succ(A,B):-parent(A,B).

succ(A,B):-parent(A,C),succ(C,B).

 

Try it with queries such as

succ(john,socrates).

 

regards

Faiz ul haque Zeya

 

 

 

 

 

 

 

From: swi-prolog-admin&lt; at &gt;iai.uni-bonn.de
[mailto:swi-prolog-admin&lt; at &gt;iai.uni-bonn.de] On Behalf Of Setareh Rastad
Sent: Sunday, November 30, 2008 12:33 AM
To: swi-prolog&lt; at &gt;iai.uni-bonn.de
Subject: [SWIPL] help about programing with prolog

 


excuseme I want a simple program prolog that contains rules and fact.

Thank you very much.

 

</description>
    <dc:creator>Faiz ul haque Zeya</dc:creator>
    <dc:date>2008-11-30T10:23:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9210">
    <title>help about programing with prolog</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9210</link>
    <description>excuseme I want a simple program prolog that contains rules and fact.
Thank you very much.


      </description>
    <dc:creator>Setareh Rastad</dc:creator>
    <dc:date>2008-11-29T19:32:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9209">
    <title>Re: delphiswi.zip</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9209</link>
    <description>

menguele francois wrote:

http://gollem.science.uva.nl/twiki/pl/bin/view/Foreign/DelphiInterface This
link  works fine.
</description>
    <dc:creator>leledumbo</dc:creator>
    <dc:date>2008-11-26T08:44:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9208">
    <title>Re: open/4 and invalid options</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9208</link>
    <description>Hi Matt,


To me, ignoring unknown options seems least user-friendly; silent
failure is already better, and a domain error seems best.

All the best,
Markus

</description>
    <dc:creator>Markus Triska</dc:creator>
    <dc:date>2008-11-25T11:37:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9207">
    <title>Re: depth &amp; breadth first search</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9207</link>
    <description>
On 22 Nov 2008, at 8:46 am, Ralf Meermeier wrote:

So this is a homework problem.


This can *only* be a homework problem, because for
serious work, iterative deepening is preferred to
breadth first.

Recommendation 1:
    GO TO YOUR LECTURER AND ASK FOR HELP.
    I'm a lecturer myself.  One of the things that *REALLY* upsets
    me is students who flounder around wasting their and other
    people's time when they could just come and ASK me.
    I don't bite.  Neither does your lecturer.
    We are PAID to explain stuff to our own students.

    Amongst other things, your lecturer needs to know when students
    are having difficulty so that s/he can revise the material
    appropriately.  Going behind the lecturer's back is a species of
    deception which does nobody any good.

Recommendation 2:
    Buy my book if you can find a copy.  (The Craft of Prolog.)
    If you can't, buy, or at least borrow, practically ANY book
    about Prolog.

Recommendation 3:
    Google for (Prolog breadth first search).


What tree?
If you mean the state space, you already _have_ a clause there
to catch cycles, so you've done it.


A little English lesson.
There are distinct two words, "SEEK" and "SEARCH".
Someone SEEKS something in a place.
Someone SEARCHES a place for something.
Someone SEARCHES FOR something in a place.

You are seeking a number.
You are searching a graph.

Three little style lessons about Prolog.

1. Put a space after argument-separating commas.
    E.g., solve(STATE, PREVSTATES, [])
    rather than solve(STATE,PREVSTATES,[]).

2. Don't use ALLCAPS and do Separate_Words.
    E.g., solve(State, Prev_States, [])
    rather than solve(STATE,PREVSTATES,[]),
    and dead_end rather than deadend.
    (deadend looks too much like deadened.)

3. You can be brief without excessive abbreviation,
    and if you are worried about typing, text editors
    can expand abbreviations as you type.  Make life
    easy for your reader.
    E.g., solve(State, Previous_States, [])
    rather than solve(State, Prev_States, []).


_______________________________________________
SWI-Prolog mailing list
SWI-Prolog&lt; at &gt;iai.uni-bonn.de
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog

</description>
    <dc:creator>Richard O'Keefe</dc:creator>
    <dc:date>2008-11-24T23:05:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9206">
    <title>[XPCE] how tu execute item actions in a popup ?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9206</link>
    <description>Hello

I'd like to use a context-menu, so I create a popup but it doesn't work : the popup is showed, but when I clik on an item, nothing happens !

Thank you for any remark .

Joel

Here is my code, with different tests.

:- pce_begin_class(my_popup, popup,  "Gestion du menu des popup ").

initialise(P) :-&gt;
     send(P, send_super, initialise, message := message(&lt; at &gt;prolog, init)),
    send_list(P, append, [new(_, menu_item('item 1',  message := message(&lt; at &gt;prolog, test_item1))),
                                    new(_, menu_item('item 2',  message := message(&lt; at &gt;prolog, test_item2)))]).

/*
 % essai 4 creation toute simple
 send_list(P, append, ['item 1','item 2']).
*/
/*
 % essai 3 sans création avec new
 send_list(P, append, [menu_item('item 1',&lt; at &gt;default),
         menu_item('item 2',&lt; at &gt;default)]).
*/
/*
 % essai numero 2 avec messages par défaut
 send_list(P, append, [new(_, menu_item('item 1',&lt; at &gt;default)),
         new(_, menu_item('item 2',&lt; at &gt;default))]).
*/
/*
 % essai numero 1 avec des messages associés
 send_list(P, append, [new(_, menu_item('item 1', message(&lt; at &gt;prolog, test_item1))),
         new(_, menu_item('item 2',message(&lt; at &gt;prolog, test_item2)))]).
*/

% I think this is stupid !
execute(P) :-&gt;
      writeln(execute),
     send(P, send_super, execute).
 

% this works
close(P) :-&gt;
     writeln(close),
     send(P, send_super, close).

:- pce_end_class.

init :-
     writeln('init').

test_item1 :-
     writeln('item 1').


test_item2 :-
     writeln('item 2').


set_popup(B) :-
    new(P, my_popup),
    send(P, open, on :=B).
 
 test :-
     new(D, window('test')),
     new(B, box(100, 100)),
     send(D, display, B, point(10,10)),
     send(B, recogniser, click_gesture(right,'', single,  message(&lt; at &gt;prolog, set_popup, B))),
     send(D, open).

</description>
    <dc:creator>Joel Foutelet</dc:creator>
    <dc:date>2008-11-24T18:18:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9205">
    <title>Re: depth &amp; breadth first search</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9205</link>
    <description>Just a hint Ralf.  If you have further questions you should consult with the teacher or assistant.  I won't offer more:

Think of a search algorithm as generating a sequence of nodes and then selecting the matches.  When you visit the first node, you find a bunch more nodes.  Where do those belong in the sequence?  Put them there, and then proceed to process the next "first" node.  

If this isn't clear yet, try running the algorithm by hand generating your sequence of nodes using DFS and BFS, and see the pattern.  Write your code according to the pattern.
-------------------
Hallo,

In the lecture there were some remarks and restriction on how to implement
the depth first search. I have been able to accomplish this assignment, but
since two day I cant (I must) figure out how to convert this implementation
to breadth first search! 



      __________________________________________________________________
Looking for the perfect gift? Give the gift of Flickr! 

http://www.flickr.com/gift/

</description>
    <dc:creator>Alan Baljeu</dc:creator>
    <dc:date>2008-11-24T14:59:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9204">
    <title>delphiswi.zip</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9204</link>
    <description>please i try to download delphiswi.zip without succes.
So can you send me it even by mail. Thank you!!!!!!


      </description>
    <dc:creator>menguele francois</dc:creator>
    <dc:date>2008-11-24T13:25:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9203">
    <title>open/4 and invalid options</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9203</link>
    <description>Hi,

I've noticed that open/4 doesn't reject invalid options passed in - 
specifically I just spent a while trying to work out why my test program 
to copy files in Windows was creating files that were shorter than the 
ones copied in Linux. It would've been more obvious had my program not 
contained so many other, more subtle errors, but the thing which got me 
in the end was that once I realised the 0x0d bytes were being stripped 
out, I passed mode(binary) to open/4, and was further puzzled as to why 
this didn't solve the problem. (For those who are similarly surprised, 
the correct option is type(binary)). Adding to my confusion at this 
point was the documentation stated that streams opened in iso_latin_1 
encoding are read 'fully-untranslated', and I suppose that's right, 
except that stripping out all 0x0d bytes seems to qualify as 
'translation' on at least some level to me...

I imagine that ignoring unknown options is useful for 
forward-compatibility, but perhaps we could have a system flag which 
would make option-list checking a bit stricter, or at least a debug flag 
so that a warning could be Sdprintf'd? Does anyone else have any views 
on this?

Thanks,
Matt

</description>
    <dc:creator>Matt Lilley</dc:creator>
    <dc:date>2008-11-24T01:40:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9202">
    <title>Re: Using the profiler to choose good command-line memory allocations?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9202</link>
    <description>
I think so.  I'd assume the difference is in the micro-second range, max
milliseconds.

---- Jan

_______________________________________________
SWI-Prolog mailing list
SWI-Prolog&lt; at &gt;iai.uni-bonn.de
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog

</description>
    <dc:creator>Jan Wielemaker</dc:creator>
    <dc:date>2008-11-23T20:05:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9201">
    <title>Re: Using the profiler to choose good command-line memory allocations?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9201</link>
    <description>
Hi Jan,

That's interesting. I have a little program at
http://www.j-paine.org/cgi-bin/spin.php that generates SF plots. Prolog
source code length: trivial, fits on two pages of browser output,
including plenty of white space: see http://www.j-paine.org/spin.html .

For a long time, I started it using no command-line arguments. Then, a few
months ago, I did a few experiments to see what memory limits it seemed
happy to fit into, and added a
  -L128k -G128k -T128k -A128k
to the command line.

I have always thought after that that it started faster. Is this just my
imagination?

Cheers,
Jocelyn

_______________________________________________
SWI-Prolog mailing list
SWI-Prolog&lt; at &gt;iai.uni-bonn.de
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog

</description>
    <dc:creator>Jocelyn Paine</dc:creator>
    <dc:date>2008-11-23T18:27:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9200">
    <title>Re: Using the profiler to choose good command-line memory allocations?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9200</link>
    <description>Hi Jocelyn,

On Sunday 23 November 2008 18:21:15 Jocelyn Paine wrote:

Some clarifications:

    * It won't start noticably (most probably not even measurably) slower
    when using larger stacks.All that is done with the stack limit is
    allocate *virtual* memory.  Even using "pl -g10G" doesn't start
    measurably slower on my machine.

    * The stack limit indeed does limit how big your program
    may grow, which can be an important factor in annoying other users.


Hmmm. Would require keeping a high watermark on the stacks. Note that
the highest reached level isn't always required. The system will do a GC
if the stacks have grown enough since the last check OR it gets close to
the limit. This means that programs that operate close to the limit may
show a significant slowdown.

Still, implementing a high watermark with the resolution of a page on
the stacks is fairly trivial as each page overflow calls a routine to
see whether GC is appropriate.  Not now, but I'll keep it in mind (or
course, if someone wants to contribute it ...).

Cheers --- Jan


_______________________________________________
SWI-Prolog mailing list
SWI-Prolog&lt; at &gt;iai.uni-bonn.de
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog

</description>
    <dc:creator>Jan Wielemaker</dc:creator>
    <dc:date>2008-11-23T17:39:19</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.ai.prolog.swi">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.ai.prolog.swi</link>
  </textinput>
</rdf:RDF>
