q-lang-users Mailing List for Q - Equational Programming Language (Page 13)
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: Albert G. <Dr....@t-...> - 2007-10-07 12:52:18
|
I've just uploaded the latest RPMs for RC2, which now also include the latest faust2pd script and some minor fixes in qfsynth. -- 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-...> - 2007-10-06 09:00:38
|
Hi everybody, just in time before my autumn vacation, the second release candidate for Q 7.8 is now available. Compared to RC1, it features some minor bugfixes in the compiler, and all the addon modules have been ported to the new version. You can get the new stuff here: http://sourceforge.net/project/showfiles.php?group_id=96881&package_id=188958&release_id=544135 This release also includes tarballs for all updated addon modules (all contained in the addons-7.8rc2.tar.gz tarball), which are otherwise only available in cvs right now. (Note that all addons had to be updated, to accommodate for the new slim prelude, except q-openal, q-opengl and q-sqlite3 which work with Q 7.8 just fine.) Source and binary (openSUSE 10.1) "all in one" RPM packages are now also available. (Windows users please note that the native Windows port still needs to be done, sorry. I'll work on this when I'm back from vacation.) The "all in one" package now also includes the new ncurses and Qt/Q modules, as well as the PureData plugin and the multimedia examples (qaudioplayer, qmidicc, etc.), for the most complete Q experience in a single package ever. ;-) Please note that the source rpm also contains all the source tarballs needed to build everything Q, so if you get this, there's no need to also download the addons-7.8rc2 tarball. As usual, please check the NEWS files and ChangeLogs in the source tarballs for details. And please report any issues building the new version, or other bugs asap. I promise a couple of beers to anyone who finds the a bug in this RC *before* the final release. (You'll have to come to Mainz, Germany to collect your prize, though. ;-) 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. <ed...@ri...> - 2007-10-05 15:35:10
|
> Remember -w is your friend for a quick check. :) It may report some > constructor symbols you didn't declare as such, but other than that most > undeclared symbols it reports *will* give you trouble. BTW, you can now > also set the QWARN environment variable to force a default warning level > other than zero. The QWARN environment variable is now set. > Hope you enjoy the new release. It works great over here (I already took > it through its paces with some of the multimedia programs). The Windows > port will still need some time, though, as I'm off for a trip to the > Netherlands starting Monday. I'm definitely looking forward to it! Have a great trip! Eddie |
From: Albert G. <Dr....@t-...> - 2007-10-05 14:21:42
|
ed...@ri... wrote: > OH STUPID ME. I didn't put "reg" on the import; > > from system import regex; > > instead of > > from system import regex, reg; > > Then it works fine. Yeah, if you use a qualified import, then you really need to list everything you need (even constructors do *not* get imported automatically with an imported type). Remember -w is your friend for a quick check. :) It may report some constructor symbols you didn't declare as such, but other than that most undeclared symbols it reports *will* give you trouble. BTW, you can now also set the QWARN environment variable to force a default warning level other than zero. I'll probably upload RC2 tonight -- I still found a few minor bugs, such as the automatic qualified import 'from foo import;' also importing private symbols of foo ;-). Meanwhile I also updated all addon modules in cvs, I'm ready to release all this (including q-ncurses-1.0 and qt-q-1.0) and an all-in-one RPM as soon as I have sorted out some 'make install' issues with some of the packages... Hope you enjoy the new release. It works great over here (I already took it through its paces with some of the multimedia programs). The Windows port will still need some time, though, as I'm off for a trip to the Netherlands starting Monday. 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: <ed...@ri...> - 2007-10-05 12:54:34
|
=0D OH STUPID ME. I didn't put "reg" on the import;=0D =0D from system import regex;=0D =0D instead of =0D =0D from system import regex, reg;=0D =0D Then it works fine.=0D =0D Eddie=0D =0D On Thu Oct 4 19:30 , Albert Graef sent:=0D =0D Strange. This works just fine over here! "make test" surely would have= =0D uncovered a bug like that before.=0D =0D Could you please run 'make test' on your system (in the main source=0D directory) and report what that gives you?=0D =0D Also, what system did you test on?=0D =0D Albert=0D =0D ed...@ri... wrote:=0D > Regex is busted.=0D >=0D > =3D=3D> regex "G" "[A-Za-z][A-Za-z0-9]*" "1var foo 99 BAR $%&" (reg 0= )=0D > [reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0]=0D >=0D > Suppose to return=0D >=0D > ["var","ar","r","foo","oo","o","BAR","AR","R"]=0D =0D =0D -- =0D Dr. Albert Gr"af=0D Dept. of Music-Informatics, University of Mainz, Germany=0D Email: Dr....@t-..., ag...@mu...=0D WWW: http://www.musikinformatik.uni-mainz.de/ag=0D =0D |
From: Albert G. <Dr....@t-...> - 2007-10-05 00:25:40
|
Strange. This works just fine over here! "make test" surely would have uncovered a bug like that before. Could you please run 'make test' on your system (in the main source directory) and report what that gives you? Also, what system did you test on? Albert ed...@ri... wrote: > Regex is busted. > > ==> regex "G" "[A-Za-z][A-Za-z0-9]*" "1var foo 99 BAR $%&" (reg 0) > [reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0] > > Suppose to return > > ["var","ar","r","foo","oo","o","BAR","AR","R"] -- 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: <ed...@ri...> - 2007-10-04 19:27:29
|
=0D Regex is busted.=0D =0D =3D=3D> regex "G" "[A-Za-z][A-Za-z0-9]*" "1var foo 99 BAR $%&" (reg 0)=0D [reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0,reg 0]=0D =0D Suppose to return =0D =0D ["var","ar","r","foo","oo","o","BAR","AR","R"]=0D =0D Eddie=0D =0D =0D |
From: <ed...@ri...> - 2007-10-04 17:02:13
|
=0D >> Umm... Where is qt-q?=0D =0D > In cvs, where else should it be? ;-)=0D =0D > Note that I'm still updating the addon packages. There are so many of=0D > them, it will take a few days. During that process, I'll also release=0D > the 1.0 versions of q-ncurses and qt-q. Have a little patience. :)=0D =0D Oh, Sorry! I'm just going to have to learn patience ;)=0D No bugs so far. I hope to get a bit of time this afternoon to work on the X= Ref.=0D Depends on what the VP and Pres needs.=0D =0D Eddie=0D =0D =0D =0D |
From: Albert G. <Dr....@t-...> - 2007-10-04 16:23:40
|
ed...@ri... wrote: > Umm... Where is qt-q? In cvs, where else should it be? ;-) Note that I'm still updating the addon packages. There are so many of them, it will take a few days. During that process, I'll also release the 1.0 versions of q-ncurses and qt-q. Have a little patience. :) 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: <ed...@ri...> - 2007-10-04 14:47:36
|
<p><br />Umm... Where is qt-q?</p><p>BTW, the string stuff is way cool!&nbs= p;</p><p>Eddie<br /> <br /><br /><strong>On Thu Oct 4 0:38 , Albert Graef= sent:<br /><br /></strong><blockquote style=3D"border-left: 2px solid rgb= (245, 245, 245); margin-left: 5px; margin-right: 0px; padding-left: 5px; pa= dding-right: 0px;">Grab it while it's hot... here:<br />=0D <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttp%3A%2F%2Fsourceforg= e.net%2Fproject%2Fshowfiles.php%3Fgroup_id%3D96881%26package_id%3D188958%26= release_id%3D544135">http://sourceforge.net/project/showfiles.php\?group_id= =3D96881&package_id=3D188958&release_id=3D544135</a><br />=0D <br />=0D Special acknowledgements this time go to John Cowan, Alexander Nickolsky<br= />=0D and Eddie Rucker for reporting bugs, contributing examples and<br />=0D suggesting improvements. Thanks guys!<br />=0D <br />=0D Here's a brief overview of the most important changes in this release:<br /= >=0D <br />=0D - Lots of bugfixes (most notably, the annoying 'where' bug found by<br />= =0D Eddie has been fixed, and a couple of obscure segfaults in the bytecode<br = />=0D compiler, too).<br />=0D <br />=0D - Qualified import clauses ("from module import ...").<br />=0D <br />=0D - Slim prelude (stdtypes.q and POSIX interface not in the prelude anymore).= <br />=0D <br />=0D - New tuple and string operations. Tuple enumerations and comprehensions<br= />=0D are now supported, as well as cat, map, do, dowith, dowith3, reverse on<br = />=0D tuples (cf. tuple.q), and all the stdlib.q list operations now work on<br /= >=0D strings, too (cf. string.q).<br />=0D <br />=0D - Special support for mutable containers, as recently discussed here;<br />= =0D see reftypes.q. (2D sequences and indexed containers like array and dict<br= />=0D now work, too.)<br />=0D <br />=0D - Various improvements in compiler and interpreter (better diagnostics,<br = />=0D new whois command, ...).<br />=0D <br />=0D - Updated documentation. For the new features, check in particular<br />=0D Chapter 4 and Sections 11.2, 11.3 and 12.14. Appendices B.1, B.2 and B.4<br= />=0D might also worth taking a look at. The q.1 manpage has had an overhaul, too= .<br />=0D <br />=0D The only known backward compatibility issues are due to the new slim<br />= =0D prelude. You are kindly asked to check your scripts with -w to see<br />=0D whether any of the following explicit imports may be needed with the new<br= />=0D version: getopt.q, stdtypes.q, system.q.<br />=0D <br />=0D As usual, please check the NEWS file and the ChangeLog for details. And<br = />=0D please report any issues building the new version, or other bugs asap.<br /= >=0D <br />=0D Enjoy! :)<br />=0D Albert<br />=0D <br />=0D -- <br />=0D Dr. Albert Gr"af<br />=0D Dept. of Music-Informatics, University of Mainz, Germany<br />=0D Email: <a href=3D"javascript:top.opencompose('Dr....@t-...','','',= '')">Dr....@t-...</a>, <a href=3D"javascript:top.opencompose('ag@mu= wiinfa.geschichte.uni-mainz.de','','','')">ag...@mu...schichte.uni-mainz= .de</a><br />=0D WWW: <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttp%3A%2F%2Fww= w.musikinformatik.uni-mainz.de%2Fag">http://www.musikinformatik.uni-mainz.d= e/ag</a><br />=0D <br />=0D -------------------------------------------------------------------------<b= r />=0D This SF.net email is sponsored by: Splunk Inc.<br />=0D Still grepping through log files to find problems? Stop.<br />=0D Now Search log events and configuration files using AJAX and a browser.<br = />=0D Download your FREE copy of Splunk now >> <a target=3D"_blank" href=3D= "../parse.pl?redirect=3Dhttp%3A%2F%2Fget.splunk.com%2F">http://get.splunk.c= om/</a><br />=0D _______________________________________________<br />=0D q-lang-users mailing list<br />=0D <a href=3D"javascript:top.opencompose('q-l...@li...',= '','','')">q-l...@li...</a><br />=0D <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttps%3A%2F%2Flists.sou= rceforge.net%2Flists%2Flistinfo%2Fq-lang-users">https://lists.sourceforge.n= et/lists/listinfo/q-lang-users</a><br />=0D </blockquote>=0D </p><BR>= |
From: Albert G. <Dr....@t-...> - 2007-10-04 10:25:10
|
Albert Graef wrote: > BTW, talking about sparse matrices, the Array data type already makes > for a very nice sparse vector and matrix data structure, [...] Did I really say that? Nonsense. :) Right now, 'array' always produces a full binary tree, so it's *not* suitable for sparse arrays. But a simple variation of the same idea should actually work for that purpose. If only the paths with a nonzero value are actually present in the tree, then AFAICS the space requirements for N nonzero elements would be O(N log N) which should be good enough for sparse arrays. It should actually be possible to do this without adding much overhead. I'll see whether I can modify Array along these lines, it should make it much more useful than it is now... 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-...> - 2007-10-04 10:06:55
|
Albert Graef wrote: > The only known backward compatibility issues are due to the new slim > prelude. You are kindly asked to check your scripts with -w to see > whether any of the following explicit imports may be needed with the new > version: getopt.q, stdtypes.q, system.q. More precisely: - If your program uses the getopt function: import getopt; - If your program uses any of the POSIX system functions: import system; (Usual/most likely suspects are: regex, glob/fname, ctime/localtime, socket, open, system, exec, rename/unlink/chdir.) - If your program uses any of the Array, Bag, Dict, HDict, Heap and Set types: import stdtypes; (Or 'import array', 'import bag', etc., if you don't need the entire container collection.) You'll have to add the necessary import clauses to every module in your program which produces a warning message about an undeclared function symbol with -w. (Quick method: Just adding 'import getopt, system, stdtypes;' at the beginning of each script should make *all* old scripts work, simple as that.) HTH, 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-...> - 2007-10-04 05:33:40
|
Grab it while it's hot... here: http://sourceforge.net/project/showfiles.php?group_id=96881&package_id=188958&release_id=544135 Special acknowledgements this time go to John Cowan, Alexander Nickolsky and Eddie Rucker for reporting bugs, contributing examples and suggesting improvements. Thanks guys! Here's a brief overview of the most important changes in this release: - Lots of bugfixes (most notably, the annoying 'where' bug found by Eddie has been fixed, and a couple of obscure segfaults in the bytecode compiler, too). - Qualified import clauses ("from module import ..."). - Slim prelude (stdtypes.q and POSIX interface not in the prelude anymore). - New tuple and string operations. Tuple enumerations and comprehensions are now supported, as well as cat, map, do, dowith, dowith3, reverse on tuples (cf. tuple.q), and all the stdlib.q list operations now work on strings, too (cf. string.q). - Special support for mutable containers, as recently discussed here; see reftypes.q. (2D sequences and indexed containers like array and dict now work, too.) - Various improvements in compiler and interpreter (better diagnostics, new whois command, ...). - Updated documentation. For the new features, check in particular Chapter 4 and Sections 11.2, 11.3 and 12.14. Appendices B.1, B.2 and B.4 might also worth taking a look at. The q.1 manpage has had an overhaul, too. The only known backward compatibility issues are due to the new slim prelude. You are kindly asked to check your scripts with -w to see whether any of the following explicit imports may be needed with the new version: getopt.q, stdtypes.q, system.q. As usual, please check the NEWS file and the ChangeLog for details. And please report any issues building the new version, or other bugs asap. 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: <ed...@ri...> - 2007-10-03 16:56:39
|
<p><br />Go for it! I'm getting impatient (only jesting). ;)</p><p>Eddie<br= /> <br /><br /><strong>On Wed Oct 3 11:51 , Albert Graef sent:<br /><br = /></strong><blockquote style=3D"border-left: 2px solid rgb(245, 245, 245); = margin-left: 5px; margin-right: 0px; padding-left: 5px; padding-right: 0px;= ">Albert Graef wrote:<br />=0D > John Cowan wrote:<br />=0D >> Using lists to implement put and putmap for tuples is not really g= ood,<br />=0D >> because the whole idea of mutable vectors is to avoid copying them= --<br />=0D >> that is, to update them in various ways using only O(1) space.<br = />=0D > <br />=0D > Well spotted. :) My excuse is that this is only a prototype... ;-)<br = />=0D <br />=0D Ok, this is all fixed now. As a nice side-effect, cat, map, do/dowith<br />= =0D and enumerations and comprehensions now all work with tuples, too.<br />=0D <br />=0D All right, if there aren't any other complaints about reftypes.q, I'm<br />= =0D ready to do RC1 now...<br />=0D <br />=0D Albert<br />=0D <br />=0D -- <br />=0D Dr. Albert Gr"af<br />=0D Dept. of Music-Informatics, University of Mainz, Germany<br />=0D Email: <a href=3D"javascript:top.opencompose('Dr....@t-...','','',= '')">Dr....@t-...</a>, <a href=3D"javascript:top.opencompose('ag@mu= wiinfa.geschichte.uni-mainz.de','','','')">ag...@mu...schichte.uni-mainz= .de</a><br />=0D WWW: <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttp%3A%2F%2Fww= w.musikinformatik.uni-mainz.de%2Fag">http://www.musikinformatik.uni-mainz.d= e/ag</a><br />=0D <br />=0D -------------------------------------------------------------------------<b= r />=0D This SF.net email is sponsored by: Splunk Inc.<br />=0D Still grepping through log files to find problems? Stop.<br />=0D Now Search log events and configuration files using AJAX and a browser.<br = />=0D Download your FREE copy of Splunk now >> <a target=3D"_blank" href=3D= "../parse.pl?redirect=3Dhttp%3A%2F%2Fget.splunk.com%2F">http://get.splunk.c= om/</a><br />=0D _______________________________________________<br />=0D q-lang-users mailing list<br />=0D <a href=3D"javascript:top.opencompose('q-l...@li...',= '','','')">q-l...@li...</a><br />=0D <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttps%3A%2F%2Flists.sou= rceforge.net%2Flists%2Flistinfo%2Fq-lang-users">https://lists.sourceforge.n= et/lists/listinfo/q-lang-users</a><br />=0D </blockquote>=0D </p><BR>= |
From: Albert G. <Dr....@t-...> - 2007-10-03 16:47:27
|
Albert Graef wrote: > John Cowan wrote: >> Using lists to implement put and putmap for tuples is not really good, >> because the whole idea of mutable vectors is to avoid copying them -- >> that is, to update them in various ways using only O(1) space. > > Well spotted. :) My excuse is that this is only a prototype... ;-) Ok, this is all fixed now. As a nice side-effect, cat, map, do/dowith and enumerations and comprehensions now all work with tuples, too. All right, if there aren't any other complaints about reftypes.q, I'm ready to do RC1 now... 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-...> - 2007-10-03 00:55:08
|
ed...@ri... wrote: > Except for sparce matrices, shouldn't matricies be built using the tuples as John > describes? Yes, but it would be nice to have some additional convenience functions for creating those (reftuple2, mkreftuple2, etc.), which would take a tuple of tuples of values, or an initial value and two dimensions, and turn that into a tuple of tuple of references. Just like reftuple and mkreftuple now, but for two dimensions, ok? It's all about convenience functions. Of course one can argue whether these would be needed for reference lists and streams, too, but for consistency it might be nice to provide them anyway. Do we need higher-dimensional tensors as well? Oh well, John, you opened a can of worms there. ;-) > Or, are you talking about another type array2? Nope, that was only an analogy, as array::Array already offers the kind of convenience functions alluded to above (array2, mkarray2). Also note that we're not really talking about new types here, it's just convenience functions added on top of the existing types. A tuple of references is still a tuple after all. BTW, talking about sparse matrices, the Array data type already makes for a very nice sparse vector and matrix data structure, since it's space-efficient and member lookup and update both works in logarithmic time. And it also lets you add and remove members efficiently at the beginning and the end, which should be useful for mathematical applications. But note that John's proposal is about something else, namely *mutable* vectors and matrices. For that you still need references. But, as I already noted, this functionality can be added to Array, Dict and HDict just as easily as to tuples, lists and streams. Well, at least that's what I hope. ;-) 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: <ed...@ri...> - 2007-10-02 23:38:48
|
On Tue Oct 2 18:00 , Albert Graef <Dr....@t-...> sent:=0D =0D >> Using lists to implement put and putmap for tuples is not really good,= =0D >> because the whole idea of mutable vectors is to avoid copying them --=0D >> that is, to update them in various ways using only O(1) space.=0D =0D >Another issue that I still need to solve is support for higher=0D >dimensions, matrices at least. Something along the lines of array2.=0D =0D Except for sparce matrices, shouldn't matricies be built using the tuples a= s John =0D describes? Or, are you talking about another type array2?=0D =0D Eddie=0D |
From: <ed...@ri...> - 2007-10-02 23:31:07
|
Understood.=0D =0D On Tue Oct 2 17:38 , Albert Graef sent:=0D =0D >ed...@ri... wrote:=0D >> For RC1: are you going to have a msi to install on Windows or strictly c= vs?=0D >=0D >As usual, I will first release a source tarball only, so that ppl can=0D >report portability issues. Before I can do the binary packages, I still=0D >have to update most of the addon modules and test them with the new=0D >version, this will take some time...=0D >=0D >Albert=0D >=0D >-- =0D >Dr. Albert Gr"af=0D >Dept. of Music-Informatics, University of Mainz, Germany=0D >Email: Dr....@t-..., ag...@mu...=0D >WWW: http://www.musikinformatik.uni-mainz.de/ag=0D =0D =0D |
From: Albert G. <Dr....@t-...> - 2007-10-02 22:56:44
|
John Cowan wrote: > (:=) is a good feature, but has really nothing to do with this, and > should be in some generic place like stdlib (or in clib itself). I agree. In fact, eventually the entire stuff in reftypes.q should go into clib.q. My idea was to offer it as a separate package until some more testing has been done and the interface stabilizes. But I can also do that right away. > Using lists to implement put and putmap for tuples is not really good, > because the whole idea of mutable vectors is to avoid copying them -- > that is, to update them in various ways using only O(1) space. Well spotted. :) My excuse is that this is only a prototype... ;-) There used to be some reason why I didn't extend 'do' and the other generic list operations to tuples, but I can't remember now what it was... Maybe now is the time to make the interface to tuples more list-like. Oh well, one thing leads to the next. :) Maybe it would be useful to have tuple comprehensions as well? Another issue that I still need to solve is support for higher dimensions, matrices at least. Something along the lines of array2. 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-...> - 2007-10-02 22:33:59
|
ed...@ri... wrote: > For RC1: are you going to have a msi to install on Windows or strictly cvs? As usual, I will first release a source tarball only, so that ppl can report portability issues. Before I can do the binary packages, I still have to update most of the addon modules and test them with the new version, this will take some time... 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: John C. <co...@cc...> - 2007-10-02 18:51:03
|
Albert Graef scripsit: > All right, I have this implemented for reference tuples, lists and > streams now. You can find the source here: > http://q-lang.cvs.sourceforge.net/q-lang/q/stdlib/reftypes.q?view=log (:=) is a good feature, but has really nothing to do with this, and should be in some generic place like stdlib (or in clib itself). Using lists to implement put and putmap for tuples is not really good, because the whole idea of mutable vectors is to avoid copying them -- that is, to update them in various ways using only O(1) space. Mapping to lists and back requires O(n) space. I'd suggest adding "dotuple", "dotuplewith", "dotuplewith3" to stdlib.q and using them for tuple operations. -- John Cowan co...@cc... http://ccil.org/~cowan This great college [Trinity], of this ancient university [Cambridge], has seen some strange sights. It has seen Wordsworth drunk and Porson sober. And here am I, a better poet than Porson, and a better scholar than Wordsworth, somewhere betwixt and between. --A.E. Housman |
From: <ed...@ri...> - 2007-10-02 17:40:55
|
<p>For RC1: are you going to have a msi to install on Windows or strictly c= vs?</p><p>I would like to see if one of my ODBC scripts on the Windows box = works correctly after the new Q updates. I cannot test this on Linux for va= rious reasons.<br /></p><p>Eddie </p><p><br /><strong>On Tue Oct 2 11= :28 , Albert Graef sent:<br /><br /></strong><blockquote style=3D"border-l= eft: 2px solid rgb(245, 245, 245); margin-left: 5px; margin-right: 0px; pad= ding-left: 5px; padding-right: 0px;">Albert Graef wrote:<br />=0D > So then the entire thing would boil down to providing the creation and= <br />=0D > type-checking convenience functions, as well as implementing the three= <br />=0D > operations 'get', 'put' and 'putmap' (or whatever we call them) on<br = />=0D > containers, and add some convenient syntactic sugar, which could easil= y<br />=0D > be done in an afternoon, I guess.<br />=0D <br />=0D All right, I have this implemented for reference tuples, lists and<br />=0D streams now. You can find the source here:<br />=0D <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttp%3A%2F%2Fq-lang.cvs= .sourceforge.net%2Fq-lang%2Fq%2Fstdlib%2Freftypes.q%3Fview%3Dlog">http://q-= lang.cvs.sourceforge.net/q-lang/q/stdlib/reftypes.q\?view=3Dlog</a><br />= =0D <br />=0D Here are a few examples to show how this all works:<br />=0D <br />=0D =3D=3D> import reftypes // needs to be imported explicitly<br = />=0D <br />=0D =3D=3D> def Xs =3D reflist [1..10] // create a new reference list<br />= =0D <br />=0D =3D=3D> get (Xs!5) // get a member<br />=0D 6<br />=0D <br />=0D =3D=3D> Xs!!5 // syntactic sugar for the above<br />= =0D 6<br />=0D <br />=0D =3D=3D> put (Xs!5) 77 // change a member<br />=0D ()<br />=0D <br />=0D =3D=3D> Xs!5 :=3D 77 // syntactic sugar for the above<br = />=0D ()<br />=0D <br />=0D =3D=3D> Xs!!5<br />=0D 77<br />=0D <br />=0D =3D=3D> get Xs // get all members<br />=0D [1,2,3,4,5,77,7,8,9,10]<br />=0D <br />=0D =3D=3D> putmap (*2) Xs // destructive map<br />=0D ()<br />=0D <br />=0D =3D=3D> get Xs<br />=0D [2,4,6,8,10,154,14,16,18,20]<br />=0D <br />=0D =3D=3D> fill Xs 0 // fill with given value<br />=0D ()<br />=0D <br />=0D =3D=3D> get Xs<br />=0D [0,0,0,0,0,0,0,0,0,0]<br />=0D <br />=0D =3D=3D> Xs :=3D [1..10] // update all values at once<br />= =0D ()<br />=0D <br />=0D =3D=3D> get Xs<br />=0D [1,2,3,4,5,6,7,8,9,10]<br />=0D <br />=0D Tuples and streams work in an analogous fashion. (If you look at the<br />= =0D script, you will notice that reference streams are always memoized, so<br /= >=0D that they properly remember their reference values.) Infinite streams<br />= =0D work, too, provided that you don't try to apply the strict fill, put and<br= />=0D putmap operations to the entire stream -- a finite subsection of the<br />= =0D stream works, though:<br />=0D <br />=0D =3D=3D> def Xs =3D refstream {1..}<br />=0D <br />=0D =3D=3D> Xs!!5<br />=0D 6<br />=0D <br />=0D =3D=3D> Xs!5 :=3D 77<br />=0D ()<br />=0D <br />=0D =3D=3D> Xs!!5<br />=0D 77<br />=0D <br />=0D =3D=3D> def Ys =3D take 10 Xs // apply putmap only to this finite subse= quence<br />=0D <br />=0D =3D=3D> strict $ get Ys<br />=0D {1,2,3,4,5,77,7,8,9,10}<br />=0D <br />=0D =3D=3D> putmap (*2) Ys<br />=0D ()<br />=0D <br />=0D =3D=3D> strict $ get Ys<br />=0D {2,4,6,8,10,154,14,16,18,20}<br />=0D <br />=0D =3D=3D> Xs!!5<br />=0D 154<br />=0D <br />=0D Note that at this point only the first 10 members of the stream have<br />= =0D actually been evaluated, the rest of the stream is still ``thunked'':<br />= =0D <br />=0D =3D=3D> Xs<br />=0D {,,,,,,,,<br />=0D ,,ref 11|lazy (map ref (iterate (+1) ((+1) 11)))}<br />=0D <br />=0D <br />=0D John, is that what you wanted (more or less)? Any comments?<br />=0D <br />=0D Ok, I'm ready to do a first release candidate now. Any last-minute bug<br /= >=0D reports? :)<br />=0D <br />=0D Cheers,<br />=0D Albert<br />=0D <br />=0D -- <br />=0D Dr. Albert Gr"af<br />=0D Dept. of Music-Informatics, University of Mainz, Germany<br />=0D Email: <a href=3D"javascript:top.opencompose('Dr....@t-...','','',= '')">Dr....@t-...</a>, <a href=3D"javascript:top.opencompose('ag@mu= wiinfa.geschichte.uni-mainz.de','','','')">ag...@mu...schichte.uni-mainz= .de</a><br />=0D WWW: <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttp%3A%2F%2Fww= w.musikinformatik.uni-mainz.de%2Fag">http://www.musikinformatik.uni-mainz.d= e/ag</a><br />=0D <br />=0D -------------------------------------------------------------------------<b= r />=0D This SF.net email is sponsored by: Microsoft<br />=0D Defy all challenges. Microsoft(R) Visual Studio 2005.<br />=0D <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttp%3A%2F%2Fclk.atdmt.= com%2FMRT%2Fgo%2Fvse0120000070mrt%2Fdirect%2F01%2F">http://clk.atdmt.com/MR= T/go/vse0120000070mrt/direct/01/</a><br />=0D _______________________________________________<br />=0D q-lang-users mailing list<br />=0D <a href=3D"javascript:top.opencompose('q-l...@li...',= '','','')">q-l...@li...</a><br />=0D <a target=3D"_blank" href=3D"../parse.pl?redirect=3Dhttps%3A%2F%2Flists.sou= rceforge.net%2Flists%2Flistinfo%2Fq-lang-users">https://lists.sourceforge.n= et/lists/listinfo/q-lang-users</a><br />=0D </blockquote>=0D </p><BR>= |
From: Albert G. <Dr....@t-...> - 2007-10-02 16:24:00
|
Albert Graef wrote: > So then the entire thing would boil down to providing the creation and > type-checking convenience functions, as well as implementing the three > operations 'get', 'put' and 'putmap' (or whatever we call them) on > containers, and add some convenient syntactic sugar, which could easily > be done in an afternoon, I guess. All right, I have this implemented for reference tuples, lists and streams now. You can find the source here: http://q-lang.cvs.sourceforge.net/q-lang/q/stdlib/reftypes.q?view=log Here are a few examples to show how this all works: ==> import reftypes // needs to be imported explicitly ==> def Xs = reflist [1..10] // create a new reference list ==> get (Xs!5) // get a member 6 ==> Xs!!5 // syntactic sugar for the above 6 ==> put (Xs!5) 77 // change a member () ==> Xs!5 := 77 // syntactic sugar for the above () ==> Xs!!5 77 ==> get Xs // get all members [1,2,3,4,5,77,7,8,9,10] ==> putmap (*2) Xs // destructive map () ==> get Xs [2,4,6,8,10,154,14,16,18,20] ==> fill Xs 0 // fill with given value () ==> get Xs [0,0,0,0,0,0,0,0,0,0] ==> Xs := [1..10] // update all values at once () ==> get Xs [1,2,3,4,5,6,7,8,9,10] Tuples and streams work in an analogous fashion. (If you look at the script, you will notice that reference streams are always memoized, so that they properly remember their reference values.) Infinite streams work, too, provided that you don't try to apply the strict fill, put and putmap operations to the entire stream -- a finite subsection of the stream works, though: ==> def Xs = refstream {1..} ==> Xs!!5 6 ==> Xs!5 := 77 () ==> Xs!!5 77 ==> def Ys = take 10 Xs // apply putmap only to this finite subsequence ==> strict $ get Ys {1,2,3,4,5,77,7,8,9,10} ==> putmap (*2) Ys () ==> strict $ get Ys {2,4,6,8,10,154,14,16,18,20} ==> Xs!!5 154 Note that at this point only the first 10 members of the stream have actually been evaluated, the rest of the stream is still ``thunked'': ==> Xs {<<Ref>>,<<Ref>>,<<Ref>>,<<Ref>>,<<Ref>>,<<Ref>>,<<Ref>>,<<Ref>>, <<Ref>>,<<Ref>>,ref 11|lazy (map ref (iterate (+1) ((+1) 11)))} John, is that what you wanted (more or less)? Any comments? Ok, I'm ready to do a first release candidate now. Any last-minute bug reports? :) 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-...> - 2007-10-01 08:39:42
|
ed...@ri... wrote: > How about "restricted" like "restricted quantifiers" in mathematics. As you > recall "For all, X in A implies P(X)" restricts X to A instead of the universe. I > know quantifier is not qualifier but it kinda has the same tone. Well, "restrictive" surely sounds right for a mathematician, and in fact its meaning _is_ similar to "qualified", but for programmers it carries bad connotations, as if the access to the imported symbols would be restricted in some way, which it isn't. Two other ideas I had: "named" ("named import" sounds about right, but "named import clause" doesn't), and "explicit" (but I already use that for explicitly stated imports in contrast to the prelude). Also, I'm still looking for something that better conveys the idea that the 'from' clause also redeclares the imported symbols in the client's namespace, but I don't think that there's a simple word to describe that. Maybe "qualified import" (in Wirth's sense) isn't so bad after all? If we take it in the sense that the import clause itself is qualified, not the symbols that are imported... But I agree that there's a source of confusion there. 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-...> - 2007-10-01 07:57:48
|
Hi John, thanks for the research, it seems to confirm my observation that there's no widely accepted standard terminology there. John Cowan wrote: > I suggest "selective" and "en masse". As I said, "selective" is o.k. for me, but "en masse imports" doesn't sound right to me. Then I'd rather go with "selective" vs. "non-selective". 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 |