Thanks, Kai and Surendra, for running behind me and tapping on my shoulder via eMail.
>>> Pls. SourceForge
The usual thing first: Pls., if you are aware of the wxCL SourceForge page, don't send questions on wxCL to my private eMail addresses. Instead, leave a message on the SF boards. Others may be able to answer your questions way sooner than I am.
>>> Where's Sanjay?
Some eMails concerning wxCL were sent to me and Sanjay in parallel, and I'm not aware if he already responded (but I would be if you were messaging via SF *g*).
Sanjay restartet wxCL (then named wxLisp, but this name is already in use, see http://www.olivfabric.de/content/on-wxcl.html#wxlisp ) in 2002 or 2003; as far as I know he is currently occupied by an employment. We're both Xeebras (see http://www.xeebra.org\), and hang out there now and then. His username is sanjaypande, mine is joerg_pr.
>>> wxCL and all
The overall state of wxCL today is more or less the same than a year ago in the summer of 2004, although I announced V 0.0.2 on SourceForge long ago (shame on me!). For the past month, I put the little time that I can spend on this project for the moment (some hours per month) into Web-A-Rama, a syntax generator and parser (conceptually decending from Franz Allegro's HTMLGEN), and Thing Tang, a prototype-intance, constraint-propagation object system, both of which I intented to use in the wxCL that I think of.
I put the priority on these two parts, because I can use them with other projects as well and basically was working on wxCL alone, but of course other people that join the project may want to set other priorities and should feel free to do so.
>>> Don't wait
I know my communication on the project was not as regular as it should have been, due to my lack of time; for the same reason I took Olivfabric.de more or less of the web half a year ago. (I often stressed on Xeebra that people who talk proper Lisp are always busy, but the C hackers there tend not to trust me on this. Why is it so? *g*). Especially the code I wrote so far for Web-A-Rama and Thing Tang are still going unpublished.
Therefore I suggest that no one waits for me working on wxCL or publishing code. I can only say that I'll try to publish as soon as I can take breath: I may be able to do so somewhen in August or September, but I already thought this a year ago, so I'm afraid I'm not very reliable.
If you want to go ahead in the meantime, I encourage you to go.
>>> Wrap, Wrap
Also, my ideas on how to "wrap wxWidgets" my appear strange to a programmer who wants to achieve a straightforward semantic parallelism between CPP-style wxWidgets and CL-style wxWidgets. All approaches that I've seen so far tried to wrap wxWidgets (= CPP) classes into CLOS classes, such that were you would say
i+=this_that(foo)
in CPP, you would say
(incf i (this-that foo))
in wxCL.
But as Sam Steingold, one of the gurus behind CLISP once put it, CPP re-invents CL structures as classes. Since standard conformant and portable Common Lisp does not support full semantic encapsulation (neither based on packages nor based on classes) and since CLOS is a dynamic object system you can end up having the users redefine the wrapper classes at the runtime of an application, even unintentionally. When you use CLOS, the Common Lisp compiler is also forced to keep information handy at application runtime that may never be needed, just in case, for example, someone wants to redefine the wxApplication class. Such dynamic extra functionality is not present in CPP and thus the concept in CL which comes closest to CPP classes and performance are structures. In addition, CL structures with read-only slots are the only save place where you can leave pointers that lead to objects in the wxWidgets address space.
My answer to all of this was to start designing a new object system (Thing Tang) in order to efficiently bind wxWidgets to CL.
However, I understand that at some point in time we want to see results, even if they are slow and not so stable at first. Also, it may be much more convenient for a programmer that jumps over from CPP to CL if she finds semantics that - on the surface - resemble the CPP object system. This may also speed up porting applications from CPP to CL (but slow down the applications itselfs).
Therefore, if you want to give wxCL a try based on CLOS, it would be perfectly OK for me if you want to use the name "wxCL" for such an implementation and depart from what I do and think. It would also be OK if you want to use the wxCL SourceForge page for this (the page where you are now). I think I should not stand in your way here and I can still find another project name for what I develop.
>>> Talk Talk
What I can anyway help you with is skimming and reviewing source code, commenting on performance and (conceptual) design issues, or describe Thing Tang and Web-A-Rama more detailed.
However, I've a problem with using IRC which is once again due to a lack of time: It is much less time-consuming for me to swap in the whole wxCL project into my brain from a page like SourceForge, Xeebra, or On wxCL than from IRC because I don't have to collect together the communication from bits and pieces. Distilling IRC conversations takes too long for me. Do you have any other suggestions on how to organize this?
Take care,
Jrg ( = George )
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
>>>private eMail
Sorry, I didn't knew if you still check the sourceforge mail forum, so I thought a personal email would be faster way to get response.
>>>want to use the wxCL SourceForge
Yes, I would want to use the current SourceForge project page and stuff, can you please give me admin access to it.
>>> help you with is skimming and reviewing source code, commenting on performance and (conceptual) design issues
Sure, your help is very much appreciated. In fact, I will be using many of your suggestions as the starting point. I hope you can spare some time to mentor people who might be working on this project, and help us in making design decisions.
>>>have any other suggestions on how to organize this
I have requested for a mailing list on free list and then I will add it to gmane, and I think a mailing list will help in having a much better discussion. Another drawback of irc, is different time zones and different schedules of the people, besides using a mailing list can help us in getting feedback from many other people (clisp developers).
>>>start designing a new object system
I think a new sourceforge project instead of making it a part of this project will be a better idea. For instance, currently I am working on clisp interface to SWIG, which will be useful for this project; but instead of making it a part of this project I plan to make it a separate project so that it remains independent and can grow on its. (keeping things modular is always a good idea).
>>> Thing Tang and Web-A-Rama
they sound like and interesting and useful ideas. It doesn't matter if so your code is not in a state to be released, put it up on the web, because other people might be interested in it and contribute to it.
Regards,
Surendra Singhi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks, Kai and Surendra, for running behind me and tapping on my shoulder via eMail.
>>> Pls. SourceForge
The usual thing first: Pls., if you are aware of the wxCL SourceForge page, don't send questions on wxCL to my private eMail addresses. Instead, leave a message on the SF boards. Others may be able to answer your questions way sooner than I am.
>>> Where's Sanjay?
Some eMails concerning wxCL were sent to me and Sanjay in parallel, and I'm not aware if he already responded (but I would be if you were messaging via SF *g*).
Sanjay restartet wxCL (then named wxLisp, but this name is already in use, see http://www.olivfabric.de/content/on-wxcl.html#wxlisp ) in 2002 or 2003; as far as I know he is currently occupied by an employment. We're both Xeebras (see http://www.xeebra.org\), and hang out there now and then. His username is sanjaypande, mine is joerg_pr.
>>> wxCL and all
The overall state of wxCL today is more or less the same than a year ago in the summer of 2004, although I announced V 0.0.2 on SourceForge long ago (shame on me!). For the past month, I put the little time that I can spend on this project for the moment (some hours per month) into Web-A-Rama, a syntax generator and parser (conceptually decending from Franz Allegro's HTMLGEN), and Thing Tang, a prototype-intance, constraint-propagation object system, both of which I intented to use in the wxCL that I think of.
I put the priority on these two parts, because I can use them with other projects as well and basically was working on wxCL alone, but of course other people that join the project may want to set other priorities and should feel free to do so.
>>> Don't wait
I know my communication on the project was not as regular as it should have been, due to my lack of time; for the same reason I took Olivfabric.de more or less of the web half a year ago. (I often stressed on Xeebra that people who talk proper Lisp are always busy, but the C hackers there tend not to trust me on this. Why is it so? *g*). Especially the code I wrote so far for Web-A-Rama and Thing Tang are still going unpublished.
Therefore I suggest that no one waits for me working on wxCL or publishing code. I can only say that I'll try to publish as soon as I can take breath: I may be able to do so somewhen in August or September, but I already thought this a year ago, so I'm afraid I'm not very reliable.
If you want to go ahead in the meantime, I encourage you to go.
>>> Wrap, Wrap
Also, my ideas on how to "wrap wxWidgets" my appear strange to a programmer who wants to achieve a straightforward semantic parallelism between CPP-style wxWidgets and CL-style wxWidgets. All approaches that I've seen so far tried to wrap wxWidgets (= CPP) classes into CLOS classes, such that were you would say
i+=this_that(foo)
in CPP, you would say
(incf i (this-that foo))
in wxCL.
But as Sam Steingold, one of the gurus behind CLISP once put it, CPP re-invents CL structures as classes. Since standard conformant and portable Common Lisp does not support full semantic encapsulation (neither based on packages nor based on classes) and since CLOS is a dynamic object system you can end up having the users redefine the wrapper classes at the runtime of an application, even unintentionally. When you use CLOS, the Common Lisp compiler is also forced to keep information handy at application runtime that may never be needed, just in case, for example, someone wants to redefine the wxApplication class. Such dynamic extra functionality is not present in CPP and thus the concept in CL which comes closest to CPP classes and performance are structures. In addition, CL structures with read-only slots are the only save place where you can leave pointers that lead to objects in the wxWidgets address space.
And there's yet much more to consider, see http://www.olivfabric.de/content/on-wxcl.html#014 and http://www.olivfabric.de/content/on-wxcl.html#015 .
My answer to all of this was to start designing a new object system (Thing Tang) in order to efficiently bind wxWidgets to CL.
However, I understand that at some point in time we want to see results, even if they are slow and not so stable at first. Also, it may be much more convenient for a programmer that jumps over from CPP to CL if she finds semantics that - on the surface - resemble the CPP object system. This may also speed up porting applications from CPP to CL (but slow down the applications itselfs).
Therefore, if you want to give wxCL a try based on CLOS, it would be perfectly OK for me if you want to use the name "wxCL" for such an implementation and depart from what I do and think. It would also be OK if you want to use the wxCL SourceForge page for this (the page where you are now). I think I should not stand in your way here and I can still find another project name for what I develop.
>>> Talk Talk
What I can anyway help you with is skimming and reviewing source code, commenting on performance and (conceptual) design issues, or describe Thing Tang and Web-A-Rama more detailed.
However, I've a problem with using IRC which is once again due to a lack of time: It is much less time-consuming for me to swap in the whole wxCL project into my brain from a page like SourceForge, Xeebra, or On wxCL than from IRC because I don't have to collect together the communication from bits and pieces. Distilling IRC conversations takes too long for me. Do you have any other suggestions on how to organize this?
Take care,
Jrg ( = George )
>>>private eMail
Sorry, I didn't knew if you still check the sourceforge mail forum, so I thought a personal email would be faster way to get response.
>>>want to use the wxCL SourceForge
Yes, I would want to use the current SourceForge project page and stuff, can you please give me admin access to it.
>>> help you with is skimming and reviewing source code, commenting on performance and (conceptual) design issues
Sure, your help is very much appreciated. In fact, I will be using many of your suggestions as the starting point. I hope you can spare some time to mentor people who might be working on this project, and help us in making design decisions.
>>>have any other suggestions on how to organize this
I have requested for a mailing list on free list and then I will add it to gmane, and I think a mailing list will help in having a much better discussion. Another drawback of irc, is different time zones and different schedules of the people, besides using a mailing list can help us in getting feedback from many other people (clisp developers).
>>>start designing a new object system
I think a new sourceforge project instead of making it a part of this project will be a better idea. For instance, currently I am working on clisp interface to SWIG, which will be useful for this project; but instead of making it a part of this project I plan to make it a separate project so that it remains independent and can grow on its. (keeping things modular is always a good idea).
>>> Thing Tang and Web-A-Rama
they sound like and interesting and useful ideas. It doesn't matter if so your code is not in a state to be released, put it up on the web, because other people might be interested in it and contribute to it.
Regards,
Surendra Singhi