q-lang-users Mailing List for Q - Equational Programming Language (Page 3)
Brought to you by:
agraef
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(3) |
Feb
(27) |
Mar
|
Apr
(4) |
May
(11) |
Jun
(5) |
Jul
(5) |
Aug
(6) |
Sep
(15) |
Oct
(28) |
Nov
(8) |
Dec
|
2005 |
Jan
(9) |
Feb
(5) |
Mar
(10) |
Apr
(43) |
May
(8) |
Jun
(31) |
Jul
(45) |
Aug
(17) |
Sep
(8) |
Oct
(30) |
Nov
(2) |
Dec
(6) |
2006 |
Jan
(4) |
Feb
(20) |
Mar
(1) |
Apr
|
May
(92) |
Jun
(179) |
Jul
(26) |
Aug
(65) |
Sep
(36) |
Oct
(38) |
Nov
(44) |
Dec
(68) |
2007 |
Jan
(11) |
Feb
(25) |
Mar
(37) |
Apr
(7) |
May
(83) |
Jun
(77) |
Jul
(44) |
Aug
(4) |
Sep
(28) |
Oct
(53) |
Nov
(12) |
Dec
(21) |
2008 |
Jan
(66) |
Feb
(45) |
Mar
(30) |
Apr
(50) |
May
(9) |
Jun
(18) |
Jul
(11) |
Aug
(6) |
Sep
(4) |
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Keith T. <kaz...@ea...> - 2008-05-01 10:24:15
|
Hello All -- >Libor Spacek wrote: >> I think "Pure" is rather asking for dirty jokes :) Thank you, Libor! I was too polite to mention that... ;-) >Albert Graef wrote: >>Wait until the "virgin" module comes out. ;-) Can we have "gorilla" and "volcano" modules to go with that? ;-) And if this were (cough) Perl (cough), you'd have to have an "impure" pragma. ;-) Yes, Albert, you have stepped into it with your choice of name. Luckily, you can always call on "Clean" to help out. As for the web, "HTML Tidy" is yours! (groan) Btw., interesting choice of font in the Pure "logo"! I wonder, which font is the "most pure of all" ("purest of the pure")...plus...is it a TrueType font? Before this gets too ridiculous, I'll take this "advise": "Be gone with you!" Cheers! Keith |
From: Albert G. <Dr....@t-...> - 2008-05-01 08:25:14
|
Libor Spacek wrote: > I think "Pure" is rather asking for dirty jokes :) Wait until the "virgin" module comes out. ;-) (Sorry, I hope that nobody feels offended by my bad jokes.) -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Libor S. <li...@gm...> - 2008-05-01 08:00:22
|
I think "Pure" is rather asking for dirty jokes :) |
From: Albert G. <Dr....@t-...> - 2008-05-01 07:15:40
|
Keith Trenton wrote: > and as night became day... the baleful language "PuQe" heaved into existence. ROFL, I'll have to start a file with Pure-related jokes. ;-) Like the adventures of Roo-Man and Joey in the HP-75 Internal Design Specification, does anyone else know these? Great stuff, from the good old (pre-Carly) times at Hewlett Packard. Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Keith T. <kaz...@ea...> - 2008-05-01 02:25:56
|
Hello Albert -- >Albert Graef wrote: >>Yeah, that gazillion of Pure downloads must have brought it to its >>knees, crying for mercy. ;-) <tongue-in-cheek> Me thinks that another explanation is closer to the truth. Seems that a webmaster at sf.net got confused, what with one bloke authoring *two* different programming languages (even the great and all-powerful Larry Wall constrains his munificence to only one language), and decided that Pure was in fact a prank, or worse... So he attempted to merge the repositories for Pure and Q...(cover your ears) !!!CRAAAAACK!!! as a thousand motherboards fractured from the heat of fusion and as night became day... the baleful language "PuQe" heaved into existence. then all the sf.net servers followed PuQe's example, and um... er... "puked"! Which is why sf.net went down. Seriously. Fortunately, the Great Wizards of Gnu quickly restored order to the universe. A happy ending! </tic> Yes, I'm a prat. ;-) Cheers! Keith |
From: Albert G. <Dr....@t-...> - 2008-04-30 18:20:22
|
Albert Graef wrote: > Ryan Schmidt wrote: >> I tried building on Mac OS X 10.4.11 PPC and got this: >> >> Command output: make: *** No rule to make target `/usr/local/include/ >> llvm/DerivedTypes.h', needed by `expr.o'. Stop. > > Hmm yes, the distributed Makefile shouldn't have all those LLVM > dependencies, I'll fix that. Fixed. >> interpreter.cc:1325: error: no match for 'operator!=' in 'it != >> std::list<_Tp, _Alloc>::rend() [with _Tp = rule, _Alloc = >> std::allocator<rule>]()' > > I'll look at that tomorrow. I don't get that error here, maybe it's an > incompatibility in the STL. That's a bug in older GNU STL versions: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11729 I changed the reverse_const_iterator there to an ordinary reverse_iterator, that should fix it. Ryan, can you please check that the trunk from SVN compiles now? >> interpreter.cc:2243: warning: passing negative value 'INT' for >> argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const >> llvm::Type*, uint64_t, bool)' > > Those are annoying but harmless. I don't get them. I added the appropriate cast to uint64_t, so that should be fixed now, too. >> interpreter.cc: In member function 'llvm::Value* interpreter::fbox >> (Env&, bool)': >> interpreter.cc:3269: warning: control reaches end of non-void function >> interpreter.cc: In member function 'llvm::Value* interpreter::fref >> (int32_t, uint8_t, bool)': >> interpreter.cc:3494: warning: control reaches end of non-void function > > I don't get these either, probably a bogus warning, but I'll have a look > at that, too. These warnings are certainly bogus, probably related to: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16558 You can just ignore these, and they should go away when you upgrade to a newer gcc version. Thanks for reporting, Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Albert G. <Dr....@t-...> - 2008-04-30 16:45:53
|
Tim Haynes wrote: > Seems to have taken a couple of hours to get through. sf.net was down much > of the morning from my perspective. Guess they can't cope with us :) Yeah, that gazillion of Pure downloads must have brought it to its knees, crying for mercy. ;-) Fortunately it works for me again now. I already committed a bunch of changes which should resolve all reported bugs, will follow up with detailed comments and a new release asap. Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Tim H. <q...@st...> - 2008-04-30 13:13:47
|
Albert Graef <Dr....@t-...> writes: > I haven't been able to get to sf.net for the past hour or so. Slashdot > doesn't work either, the connections just time out. Does anyone else > have this problem? > > (This is also to test whether at least the mail server works.) Seems to have taken a couple of hours to get through. sf.net was down much of the morning from my perspective. Guess they can't cope with us :) ~Tim -- <http://spodzone.org.uk/> |
From: Orlarey Y. <or...@gr...> - 2008-04-30 12:45:43
|
Albert Graef a écrit : > (Crossposted to q-lang-users and faudiostream-devel.) > > (Yann, I hope that it's ok to crosspost to the Faust list? I think that > at least some Faust programmers may be interested in this, too.) > > For the impatient: Pure (a.k.a. the "Pure Universal Rewriting Engine", > slated to become Q's successor) has been released. For downloads and > info see http://pure-lang.sf.net. > I have tried to compile Pure with LLVM 1.8 (the packaged version for my ubuntu 7.10) but it seems to be really too old and some files are missing (llvm/Support/LLVMBuilder.h). I will have to install LLVM 2.2... Yann > For the not-so-impatient: > > ** Pure 0.1 2008-04-29 > > Release 0.1 of Pure is now available. Like Q, Pure is a modern-style FPL > based on term rewriting, which is slated to eventually become Q's much > improved successor. Pure offers many new and powerful features (most > notably: local functions, block structure, lexical closures, incremental > compilation, direct C interface, and a much improved interpreter > environment) and a completely new and cleaner design and C++-based > implementation. > > Compared to Q, Pure programs also run *much* faster (typically by a > factor of at least 20-30). That's because the Pure interpreter has an > LLVM backend (http://llvm.org) which compiles Pure scripts to native > code on the fly. The code generated by the current interpreter is > already fairly good -- on the "recursive" benchmark of the "Language > Shootout" it has a performance factor of about 34 (measured against gcc > -O3) which puts it in about the same league as MZScheme. > > This is the much-awaited initial release. ;-) The interpreter is already > fully functional, but of course there's still a lot to be done (see the > TODO file for details). Please note that this is a preliminary, "beta" > release, so expect some bugs (and please report them!). > > The Pure project is hosted by SourceForge, see http://pure-lang.sf.net > for more information and downloads. A mailing list for discussing Pure > is now available there, too. > > You'll need LLVM to compile and run the interpreter (LLVM 2.2 has been > tested). Please see the INSTALLATION section in the README file in the > sources to get up and running quickly. After Pure is installed, read the > Pure manual page (also available in various formats from the Pure > website) and have a look at the stuff in the examples subdir, especially > hello.pure, and at the standard library modules (lib/*.pure). > > Enjoy! :) > > Albert > > |
From: Albert G. <Dr....@t-...> - 2008-04-30 12:45:25
|
I haven't been able to get to sf.net for the past hour or so. Slashdot doesn't work either, the connections just time out. Does anyone else have this problem? (This is also to test whether at least the mail server works.) Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Albert G. <Dr....@t-...> - 2008-04-30 00:16:09
|
Ryan Schmidt wrote: > I tried building on Mac OS X 10.4.11 PPC and got this: > > Command output: make: *** No rule to make target `/usr/local/include/ > llvm/DerivedTypes.h', needed by `expr.o'. Stop. Hmm yes, the distributed Makefile shouldn't have all those LLVM dependencies, I'll fix that. For the time being, just run 'make depend' before doing 'make', that should fix it. > interpreter.cc:1325: error: no match for 'operator!=' in 'it != > std::list<_Tp, _Alloc>::rend() [with _Tp = rule, _Alloc = > std::allocator<rule>]()' I'll look at that tomorrow. I don't get that error here, maybe it's an incompatibility in the STL. > interpreter.cc:2243: warning: passing negative value 'INT' for > argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const > llvm::Type*, uint64_t, bool)' Those are annoying but harmless. I don't get them. What version of gcc did you use? > interpreter.cc: In member function 'llvm::Value* interpreter::fbox > (Env&, bool)': > interpreter.cc:3269: warning: control reaches end of non-void function > interpreter.cc: In member function 'llvm::Value* interpreter::fref > (int32_t, uint8_t, bool)': > interpreter.cc:3494: warning: control reaches end of non-void function I don't get these either, probably a bogus warning, but I'll have a look at that, too. Thanks, Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Albert G. <Dr....@t-...> - 2008-04-30 00:08:46
|
Dear Sarino, (I'm cc'ing the mailing list since these questions have been asked a lot the past few days.) > I am a big fan of the Q language. I am most impressed with the spread sheet demonstration, and because of it, I have spent some time learning the language and the many libraries that come with it. Yeah, I really need to port the Qt3 interface and QCalc over to Pure asap. > how is it different from Q? Short answer: Execution speed, better C interface, and some useful new language features. Pure JIT-compiles to native code, and so programs run *much* (typically 20-30 times) faster than equivalent Q programs. Pure also has a direct C interface, so you can just call C functions from Pure, and soon it will also be possible to export Pure modules so that you can link them directly into other programs written in any language that can call C functions. Pure also uses term rewriting as its computational model, so it offers the same kind of flexibility and unrestricted polymorphism. But it also has local functions and lexical closures, which is something that Q users often asked for. I also took the opportunity to straighten out the syntax and get rid of the lexical distinction between function and variable symbols, and as a result the language is much prettier now (IMHO of course). The Pure interpreter was implemented from scratch in C++, so it's hopefully better designed and easier to maintain. It should also be ready for 64 bit systems, although I haven't tested that yet. Moreover, the interactive interpreter environment is much nicer, try it and see. The only thing that is still missing there is a symbolic debugger, but the necessary hooks are already there, so that should be easy to add. OTOH, Pure still lacks some of Q's features, most notably special forms, Wadler views, and the extensive system, graphics and multimedia library. So it's currently a bit experimental and not ready to replace Q just yet. But I'm working on that. ;-) > And what will happen to Q in the meantime? Well, the current Q codebase is fairly mature and isn't going anywhere. I'm still fixing bugs and keeping it up-to-date, and will continue to do so for the time being (or until someone else takes over). Pure might become the next Q, but it still has to prove itself. Everybody has been asking for a "compiled Q", and Pure attempts to be just that, only that the language got an (admittedly substantial) facelift, too. So let's see how the further development goes, and "give Pure a chance", ok? Cheers, Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Albert G. <Dr....@t-...> - 2008-04-29 21:28:48
|
Hi John, thanks for reporting. I'm forwarding this to the list so that maybe Ryan Schmidt can have a look at it, he's already working on a MacOS port of Pure for http://www.macports.org/. Greetings, Albert -------- Original Message -------- Subject: Pure Programming Langauge: Compile bugs on Mac OS X Date: Tue, 29 Apr 2008 16:50:22 +0100 From: John Lunney <lu...@tc...> To: Dr....@t-... Dear Albert, I downloaded your new Pure programming language release this morning when I saw it linked on Reddit. I have to say it looks very interesting! I was particularly intrigued by the use of LLVM, having studied Compiler Design in this my final year of university (Computer Science, Linguistics and French). I downloaded the tar-ball from the SourceForge page, and downloaded and installed LLVM, all on my Mac OS X 10.4.11 system. Unfortunately, I get some errors when I run "make": g++ -g -Wall `llvm-config --cppflags` -c -o expr.o expr.cc g++ -g -Wall `llvm-config --cppflags` -c -o interpreter.o interpreter.cc interpreter.cc: In member function ‘expr* interpreter::mkwhen_expr (expr*, rulel*)’: interpreter.cc:1325: error: no match for ‘operator!=’ in ‘it != std::list<_Tp, _Alloc>::rend() [with _Tp = rule, _Alloc = std::allocator<rule>]()’ interpreter.cc: In member function ‘llvm::Function* interpreter::declare_extern(std::string, std::string, const std::list<std::string, std::allocator<std::string> >&, bool, void*, std::string)’: interpreter.cc:2243: warning: passing negative value ‘INT’ for argument 2 to ‘static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)’ ... repeated about 10 times ... interpreter.cc: In member function ‘llvm::Value* interpreter::fbox (Env&, bool)’: interpreter.cc:3269: warning: control reaches end of non-void function interpreter.cc: In member function ‘llvm::Value* interpreter::fref (int32_t, uint8_t, bool)’: interpreter.cc:3494: warning: control reaches end of non-void function make: *** [interpreter.o] Error 1 I decided to try out the version from the SVN repository. With it, I get the following errors: g++ -g -Wall `llvm-config --cppflags` -c -o expr.o expr.cc bison -v -o parser.cc parser.yy g++ -g -Wall `llvm-config --cppflags` -c -o interpreter.o interpreter.cc /usr/local/include/llvm/CallingConv.h:26: error: expected identifier before numeric constant /usr/local/include/llvm/CallingConv.h:26: error: expected unqualified- id before numeric constant interpreter.cc: In member function ‘void interpreter::compile(expr)’: interpreter.cc:609: error: expected unqualified-id before numeric constant ... many hundreds of lines of errors ... interpreter.cc:2959: warning: control reaches end of non-void function interpreter.cc: In member function ‘llvm::Value* interpreter::fbox (Env&, bool)’: interpreter.cc:3269: warning: control reaches end of non-void function interpreter.cc: In member function ‘llvm::Value* interpreter::fref (int32_t, uint8_t, bool)’: interpreter.cc:3494: warning: control reaches end of non-void function make: *** [interpreter.o] Error 1 I hope this feedback will be of some use to you. Yours sincerely, John Lunney -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Ryan S. <rya...@us...> - 2008-04-29 19:50:31
|
On Apr 29, 2008, at 7:58 AM, Albert Graef wrote: > Ok, a minimal website is now online at http://pure-lang.sf.net/, and > both the SVN repository and the 0.1 release are now available. I tried building on Mac OS X 10.4.11 PPC and got this: Command output: make: *** No rule to make target `/usr/local/include/ llvm/DerivedTypes.h', needed by `expr.o'. Stop. I installed llvm using MacPorts, so it's not in /usr/local. Replacing all occurrences of /usr/local with the MacPorts prefix in the Makefile got me to this: g++ -g -Wall `llvm-config --cppflags` -c -o expr.o expr.cc g++ -g -Wall `llvm-config --cppflags` -c -o interpreter.o interpreter.cc interpreter.cc: In member function 'expr* interpreter::mkwhen_expr (expr*, rulel*)': interpreter.cc:1325: error: no match for 'operator!=' in 'it != std::list<_Tp, _Alloc>::rend() [with _Tp = rule, _Alloc = std::allocator<rule>]()' interpreter.cc: In member function 'llvm::Function* interpreter::declare_extern(std::string, std::string, const std::list<std::string, std::allocator<std::string> >&, bool, void*, std::string)': interpreter.cc:2243: warning: passing negative value 'INT' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2255: warning: passing negative value 'INT' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2267: warning: passing negative value 'INT' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2279: warning: passing negative value 'INT' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2291: warning: passing negative value 'DBL' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2303: warning: passing negative value 'STR' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2313: warning: passing negative value 'PTR' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2325: warning: passing negative value 'PTR' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2349: warning: passing negative value 'PTR' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2350: warning: passing negative value 'STR' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc:2351: warning: passing negative value 'BIGINT' for argument 2 to 'static llvm::ConstantInt* llvm::ConstantInt::get(const llvm::Type*, uint64_t, bool)' interpreter.cc: In member function 'llvm::Value* interpreter::fbox (Env&, bool)': interpreter.cc:3269: warning: control reaches end of non-void function interpreter.cc: In member function 'llvm::Value* interpreter::fref (int32_t, uint8_t, bool)': interpreter.cc:3494: warning: control reaches end of non-void function make: *** [interpreter.o] Error 1 Now I don't know how to proceed. |
From: Eddie R. <er...@bm...> - 2008-04-29 17:43:36
|
> > I just tried to compile the latest SVN release, plus bootstrap compile > > the latest front-end (llvm-gcc 4.2) but failed miserably with a > > "can not build table" error, after hours of compilation. > > Um, bad luck there. :( LLVM 2.2 compiled cleanly for me, out of the box > (on both SUSE 10.1 and 10.3, that is). AFAIR the build process *is* a > bit involved, though, maybe some kind soul here could write a brief > summary of the necessary steps that I could put in the Pure README file > or on the website? The only package I *HAD* to install was g++. GNU make and development files were previously installed to compile Q but, I don't remember what they were. Eddie |
From: Albert G. <Dr....@t-...> - 2008-04-29 14:54:04
|
Hi Libor, > I think maybe static strong typing is too high a price to pay for efficiency :) Yes. And you can always do the really heavy number crunching stuff in Fortran and call those functions from Pure. Pure doesn't support alternative calling conventions in its extern declarations yet (only C), but I think that LLVM already does at least Fortran and Ada, so support for that should be trivial to add in Pure. > The speed is good and will definitely make Pure a practical language. Yes, I think so, too. And it's just the first version of the compiler, I'm pretty sure that it can still be improved. Once you've all got Pure up and running, many eyes will be able to look at the generated code (yes, you can do that; the interpreter's interactive 'list -d' command disassembles the LLVM IR code of a Pure function) and I hope that we can then identify places where we can still bum a few instructions. And I didn't even employ LLVM's inter-procedure optimization passes yet, and inlining some critical runtime calls should also give another speed boost. > I just tried to compile the latest SVN release, plus bootstrap compile > the latest front-end (llvm-gcc 4.2) but failed miserably with a > "can not build table" error, after hours of compilation. Um, bad luck there. :( LLVM 2.2 compiled cleanly for me, out of the box (on both SUSE 10.1 and 10.3, that is). AFAIR the build process *is* a bit involved, though, maybe some kind soul here could write a brief summary of the necessary steps that I could put in the Pure README file or on the website? Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Albert G. <Dr....@t-...> - 2008-04-29 14:33:12
|
Keith Trenton wrote: > Congratulations! A new functional language is born! ...Hope I'm not too late! Thanks Keith. No, in fact you're early to the party. I'm still busy doing all the announcements, while Pure-related emails (and bug reports!) already started trickling in, but you're the first to congratulate. I wish we could all drink a couple of bottles of champaign together, I'm quite proud of this release. ;-) Cheers, Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Albert G. <Dr....@t-...> - 2008-04-29 13:41:42
|
(Crossposted to q-lang-users and faudiostream-devel.) (Yann, I hope that it's ok to crosspost to the Faust list? I think that at least some Faust programmers may be interested in this, too.) For the impatient: Pure (a.k.a. the "Pure Universal Rewriting Engine", slated to become Q's successor) has been released. For downloads and info see http://pure-lang.sf.net. For the not-so-impatient: ** Pure 0.1 2008-04-29 Release 0.1 of Pure is now available. Like Q, Pure is a modern-style FPL based on term rewriting, which is slated to eventually become Q's much improved successor. Pure offers many new and powerful features (most notably: local functions, block structure, lexical closures, incremental compilation, direct C interface, and a much improved interpreter environment) and a completely new and cleaner design and C++-based implementation. Compared to Q, Pure programs also run *much* faster (typically by a factor of at least 20-30). That's because the Pure interpreter has an LLVM backend (http://llvm.org) which compiles Pure scripts to native code on the fly. The code generated by the current interpreter is already fairly good -- on the "recursive" benchmark of the "Language Shootout" it has a performance factor of about 34 (measured against gcc -O3) which puts it in about the same league as MZScheme. This is the much-awaited initial release. ;-) The interpreter is already fully functional, but of course there's still a lot to be done (see the TODO file for details). Please note that this is a preliminary, "beta" release, so expect some bugs (and please report them!). The Pure project is hosted by SourceForge, see http://pure-lang.sf.net for more information and downloads. A mailing list for discussing Pure is now available there, too. You'll need LLVM to compile and run the interpreter (LLVM 2.2 has been tested). Please see the INSTALLATION section in the README file in the sources to get up and running quickly. After Pure is installed, read the Pure manual page (also available in various formats from the Pure website) and have a look at the stuff in the examples subdir, especially hello.pure, and at the standard library modules (lib/*.pure). Enjoy! :) Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Eddie R. <er...@bm...> - 2008-04-29 13:12:39
|
Hi Albert, When I run make, I get the following error: flex -o lexer.cc lexer.ll lexer.ll:610: unrecognized rule Eddie On Tue, 2008-04-29 at 14:58 +0200, Albert Graef wrote: > > I have some more news. The Pure project was just approved by the sf.net > > staff, so I can now set up a website and source code repository. After > > finding and fixing a few more bugs in the compiler today I should be > > ready for an initial release tomorrow. > > Ok, a minimal website is now online at http://pure-lang.sf.net/, and > both the SVN repository and the 0.1 release are now available. > > I've also set up a mailing list pure-lang-users for discussion (member > posts only) and another one (pure-lang-svn) for SVN commits. You can > subscribe to these here: http://sourceforge.net/mail/?group_id=226193 > > The pure-lang-svn list may still need a few hours to be created, but > pure-lang-users should be working already, and I will heartily welcome > everyone who joins me there. ;-) > > Cheers, > Albert > |
From: Albert G. <Dr....@t-...> - 2008-04-29 12:44:16
|
> I have some more news. The Pure project was just approved by the sf.net > staff, so I can now set up a website and source code repository. After > finding and fixing a few more bugs in the compiler today I should be > ready for an initial release tomorrow. Ok, a minimal website is now online at http://pure-lang.sf.net/, and both the SVN repository and the 0.1 release are now available. I've also set up a mailing list pure-lang-users for discussion (member posts only) and another one (pure-lang-svn) for SVN commits. You can subscribe to these here: http://sourceforge.net/mail/?group_id=226193 The pure-lang-svn list may still need a few hours to be created, but pure-lang-users should be working already, and I will heartily welcome everyone who joins me there. ;-) Cheers, Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Libor S. <li...@gm...> - 2008-04-29 08:08:34
|
Albert, Great news about Pure! Thanks for your reassuring comments. I think maybe static strong typing is too high a price to pay for efficiency :) The speed is good and will definitely make Pure a practical language. I think you are right about sticking to a stable release of LLVM. I just tried to compile the latest SVN release, plus bootstrap compile the latest front-end (llvm-gcc 4.2) but failed miserably with a "can not build table" error, after hours of compilation. I will try the LLVM 2.2 next. Libor On Tue, 29 Apr 2008 03:17:24 +0100, Albert Graef <Dr....@t-...> wrote: > Libor Spacek wrote: >> Would it be worth shooting for this latest version, or is it likely to break Pure? > > No idea. I've only used LLVM 2.2 so far, and I don't know when I'll have > the time to install the latest (I'll probably wait for a stable release, > though.) > |
From: Keith T. <kaz...@ea...> - 2008-04-29 06:43:54
|
Hello Albert, Long time no post, but I've been following recent developments with interest! "I have some more news. The Pure project was just approved by the sf.net staff, so I can now set up a website and source code repository." Congratulations! A new functional language is born! ...Hope I'm not too late! Cheers! Keith |
From: Albert G. <Dr....@t-...> - 2008-04-29 02:02:45
|
Libor Spacek wrote: > Would it be worth shooting for this latest version, or is it likely to break Pure? No idea. I've only used LLVM 2.2 so far, and I don't know when I'll have the time to install the latest (I'll probably wait for a stable release, though.) -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Albert G. <Dr....@t-...> - 2008-04-29 01:52:49
|
Hi everybody, and sorry for the latency... Libor Spacek wrote: > It is great to hear about your progress! I have some more news. The Pure project was just approved by the sf.net staff, so I can now set up a website and source code repository. After finding and fixing a few more bugs in the compiler today I should be ready for an initial release tomorrow. For your bookmarks: The project page: http://sf.net/projects/pure-lang/ The website will be here once it goes live: http://pure-lang.sf.net/ > I suspect the answer to beating even more languages lies in making your > matcher as fast as possible, so that it can approach the speed of a fixed > function call that most other languages use. I doubt it. The pattern-matching code is already as good as I can make it, I challenge you to do any better! ;-) (In fact, the compiler *will* already compile a call to a definition like foo x = ...; to just a simple function call.) AFAICS, if one really wants to get C-like performance, then you have to avoid boxed values at all costs. Which pretty much means static strong typing. If you don't believe me, have a look at the recursive benchmark: http://shootout.alioth.debian.org/debian/benchmark.php?test=recursive&lang=all (Well, there's a Lisp at an astonishing performance factor of 3.1 there, but if you take a look at the benchmark code then you'll find that it's riddled with type annotations.) Pure is currently around factor 34 (measured against the C benchmark, with gcc 4.1, -O3 on AMD), and actually I'm quite happy with that. After all there's more interesting stuff to program than Ackerman and Fibonacci functions. ;-) Cheers, Albert -- Dr. Albert Gr"af Dept. of Music-Informatics, University of Mainz, Germany Email: Dr....@t-..., ag...@mu... WWW: http://www.musikinformatik.uni-mainz.de/ag |
From: Eddie R. <er...@bm...> - 2008-04-28 17:27:46
|
Ok, I cannot find a Debian package so it looks like a manual install from the source code is the easy way to go. Eddie On Mon, 2008-04-28 at 15:43 +0100, Libor Spacek wrote: > Eddie, > > Sorry, I must be dyslexic too, I meant 8.04., 64bit. > It took a dislike to my ATA disks, though previous Ubuntus were OK with them. > However, I found some "magic incantation" boot options and it works now. > You were lucky to get an easy ride, I think. > I will look for the LLVM software sources, > I like them for their automatic updates. > > Libor > > On Mon, 28 Apr 2008 14:14:04 +0100, Eddie Rucker <er...@bm...> wrote: > > > On Mon, 2008-04-28 at 11:45 +0100, Libor Spacek wrote: > > > >> I have installed Ubuntu 4.08, which was, unexpectedly, a pain in the neck. > > > > This is off topic but, why such an old version? I'm using 8.04 (I'm > > dyslexic so I didn't catch that at first) and it was fairly painless to > > install. You can get LLVM 2.3 through the Synaptic Package Manager by > > adding more software sources but I don't know what they are. Sometimes I > > prefer the manual install ;) I installed Ubuntu, then Ubuntu 64bit, then > > back to Ubunto. Although not Linux, I think I liked FreeBSD of all the > > OSs I've used and that is quite a list. > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > q-lang-users mailing list > q-l...@li... > https://lists.sourceforge.net/lists/listinfo/q-lang-users |