RE: Prothon on CPython intrepreter? [PROTHON]
"Mark Hahn" <[email protected]> Wed, 11 Aug 2004 19:50:23 -0700
| Newsgroups | gmane.comp.lang.prothon.user |
|---|---|
| Message-ID | <000201c48017$1d5ddbb0$0d01a8c0@MarkVaio> |
Christian Tismer wrote: > No, you'd better push me to move on to the next version, > or you would get *really* ugly update problems of a triply-=20 > stacked implementation :-( >=20 > ... >=20 > >>>I would give up on the minimum number of ideas to make this > >>>work. I would have to give up OS native threads and use your=20 > >>>threads. I would probably give up on object locking. The > >>> idea is to make the CPython C extensions work with Prothon. >=20 > This is what can be included under the "whore" thing :-) I chose my words carefully. :-) =20 > >>This would immortalize the GIL, since CPython C extensions=20 > expect it. > >=20 > > For the CPython version of Prothon this is true. >=20 > Yeeks, he is true! Mark, Nooo, why? I thought you'd be happy I was using only your tasklets. > Stick with youself, do what *you* feel is right for you. > Whatever you do, don't think to acquire the BDFL's sympathy, > this is impossible, especially if you are so mad to make your > code base based upon Stackless. <2.75 wink> :-) >=20 > [how, the heck! ] Actually I'm not sure Guido likes this idea. I sent the email 1.5 days = ago and he hasn't responded. Maybe he wants me to do the CProthon so he can learn from my new interpreter. He specifically said he thought my = object locking was interesting. Also I don't think he would necessarily like = my mucking with his Python. > > Imagine that the Prothon interpreter is a superset of the CPython > > interpreter, but the Prothon language is just Prothon. >=20 > Doing everything completely like the CPython intpr does, > *and* doing everything what the Prothon intpr does. > Wouldn't it be *way* simpler to just have two interpreters? > I proposed this at some time (not being the first one), > and you vehemently rejected. But this seems to do *much* more? >=20 > [me old fart grumbling on masochism] I thought it would be simpler, but I may be wrong. You know better than = me. I don't know the CPython code. I just got done looking at the IronPython code and Jim made that look simple. I made the big conceptual leap that it could be done in CPython also. That leap might be too big. :-) ..<snip>.. =20 > You were almost releasing Prothon 1.0. > Why can't you just let this happen? > There is a chance to get something halfway > useful go out, and then you need to revert, > and increase the problem by a factor of three? I was working on the 1.0 release before I knew there was a possibility = of a solution that would get a library. I would find it hard to be motivated = to go back and work on 1.0 knowing what I know now. It would be a month to = get to alpha and the end of the year to get to a production release then I'd have no library. ..<snip>.. > If you are really on the path to "the real solution", I hope > nopt to hinder you. But if you are on the path to shoot > yourself into the foot, I want to protect you, if I can. > Unfortunately, I can't determine this. Luckily I can switch rapidly when I realize I make a mistake (as I often do). The investment into the Prothon design made thus far this year is = not in danger of being lost. The worst that can happen is that I will be embarrassed and I don't embarrass easily. > > I haven't made the decision to do this yet. I haven't=20 > announced it. I'm > > still waiting for feedback from everyone on the idea. I'm=20 > taking your > > feedback as saying "this will be messy" and "I wouldn't do it". >=20 > I would love to tell you the opposite. I love the way how > you tackle problems, and how you extrapolate into the next > level of abstraction. You have reached much more than I was ever > able to reach. > Now I would like to see you succeed, and I'm willing to support > you wherever I can. Wow! I am really flattered. Thanks for the kind words. > I may be completely wrong: My perception is that by going the > CPython way, you are gathering all the problems that Prothon > was able to surround so far, by its novelty, and by its radically > different aproach. This is the big Prothon promise! >=20 > By going .NET, you get into some difficulties, your working > set of tools is changed, partially for the better partially > for worse. That's ok, so far. >=20 > By going CPython, you are entering a completely different > world. This world is optimized for CPython, and only for > CPython, and all its paradigms are promoted through > CPython in an almost unchangeable way. This is so hard > to break, and so impossible to change, that the only way to > really overcome it is a complete re-implementation from > scratch.=20 Ouch! It appears that my optimism may be unfounded. > This is why I started PyPy, in January 2003. > I knew that it is impossible, even (or maybe just) for me, > to get around this in any other way than to have 10 people > on a radically different approach: I didn't know you started PyPy. How did you get 10 people to work on = it? > Don't do it in C at all, but write it in the target language. > If you follow the current path, you are overwhelmed by the > massive code base, and you are dead-born by definition. > Reality strikes back, and in such a hard way! >=20 > I spent 5+ years of my life to keep that crazy Stackless > project alive, always fighting this accelerating optimization > and featurism of CPython, which was not there when I started, > and if I had known before, I would not have started Stackless > at all! (or maybe I had, because I'm known as mad enough). You are making .Net sound better all the time. :-) > The simpler thing that I might propose to you as a friend is > something like: Try to marry the two, as I said a while before. > Maybe steal the stackless interpreter, whatever fits you, > but don't try to solve the big problems. Let CPython have > the GIL, don't have it, yourself. Make your own interpreter, > let the other one co-exist. Make your own objects, and find > a mapping. I have never liked the dual-interpreter idea as you know. Trying to = keep two interpreters in sync sounds like a real headache. Now this may be a better idea than my current one, but if so then my current one really = sucks and I need to drop it. > But defining your own language on top of the monthly-moving > target of an always-changing code base, which is not to any > rate compatible with your basic goals, and even worse > morphing your goals just to get the full python-dev support? > I guess you can have the latter, even if you are completely > ignoring CPython. None of my goals are to get support from Prothon-dev or Guido. I was = just trying to be friendly. > If you want to do Prothon, do Prothon and f**k the rest. As long as I can do it with a library and a community. I have = discovered in this whole experience that the community is as important to me as the technology. I really enjoyed meeting everyone at the VanPy Python = workshop and I want Prothon to have a community like Python. > If you want to do .NET, be aware of Jim Hugunin and > IronPython. I would never try to compete with him > because he has proved as a genious, but you might very > likely be superior enough. I'd personally retract early. The more genious he is the more I can steal from him. :-) Maybe I can = even get him to help like I have gotten you, Greg, and Paul to help. :-) > If you want to do a better CPython, ignore CPython and > come to PyPy. There you can find a group of people of > at least your craziness, and you'll have great support. Will it run all the CPython libraries? How fast is it? How close is it = to beta? =20 > Having said all this, I'm offering my help, of course. > If I can help at all. But please find a path that > provides your fans (count me in) with a result in 2004. That's what I want to do. From what you say, it appears I may be doing = .Net first. In that case I won't be using stackless until next year. I = would hate to lose lightweight threads though. Running coroutines with heavy threads is kind of a joke. If I could figure out how to do lightweight threads on .Net I'd have the only language with them though. I will take a more in-depth look at the Cpython code over the next = couple of days. If I see a way to do what I want to do I will ask you for verification that my ideas will work. If I can't figure out a way to do = it then I will agree that it is a bad idea and move on to other ideas, = probably .Net. Thank you very much for your valuable feedback.