00:00:01 pitlimit: did you download *binaries*, or did you compile them? (CCL's SVN repository contains binaries, too) 00:00:20 Mococa [~Mococa@187.59.135.54] has joined #lisp 00:00:46 pitlimit: try starting CCL from a command line (in some terminal emulator: xterm, konsole, rxvt...) instead of clicking 00:00:57 rtoym [~chatzilla@c-67-180-54-112.hsd1.ca.comcast.net] has joined #lisp 00:01:05 I did akovalenko and it runs in command line 00:01:10 in termina l - i want the separate ide 00:01:35 pitlimit: I'm unsure whether CCL's ide is even ported to Linux... 00:01:41 akovalenko: I certainly did my share :-) 00:02:07 If need be I'd refer the logs or cll history. 00:02:16 Murphy's law in effect! 00:02:18 pjb``: and I get away with doing nothing but language-lawyer-talk, because I use SBCL :) 00:02:21 replore_ [~replore@203.152.213.161.static.zoot.jp] has joined #lisp 00:03:49 -!- kleppari_ [~spa@bitbucket.is] has quit [Ping timeout: 240 seconds] 00:03:53 -!- Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has quit [Ping timeout: 276 seconds] 00:04:23 -!- MimiEA [~Mimi@97-88-37-119.dhcp.roch.mn.charter.com] has quit [Remote host closed the connection] 00:06:31 akovalenko: If I just use the command line setup, do I just need to load the saved file then? 00:07:33 -!- stepnem [~stepnem@176.119.broadband10.iol.cz] has quit [Ping timeout: 252 seconds] 00:07:56 pitlimit: well, if you have a file... CCL binary accepts --load option for loading files before entering REPL (also, try --help option for more info). 00:07:56 kleppari [~spa@bitbucket.is] has joined #lisp 00:08:06 stepnem [~stepnem@176.119.broadband10.iol.cz] has joined #lisp 00:09:16 akovalenko: but what if i make changes to the file 00:09:29 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Quit: Leaving...] 00:09:31 do I have to keep reloading it? 00:09:55 pitlimit: then you reload it (either by typing (load "/my/file") in REPL, or by restarting the whole thing 00:10:03 :) 00:10:05 thank you! 00:10:20 everyone in here has always been so helpful. I really appreciate it. 00:11:03 yet whenever someone blogs about us, it's always about how awful we are 00:11:24 pitlimit: perhaps you could blog about how nice we are? :-) 00:11:42 what is it called when a program does twice as many calculations as it needs? 00:11:53 unoptimal. 00:11:57 pitlimit: with Emacs and SLIME, changes and experiments with your code are going to be way easier. If you tried Emacs and rejected it, maybe it's time to give it a chance again... 00:12:04 a redundancy of 2 ? 00:12:09 Samian: but it's still the same time complexity. 00:12:54 Samian: also: self-checking. 00:13:09 but that's only theoretical. In real life, people rather wait 2:30 rather than 5 minutes. 00:13:11 (if it does it with two different methods and compare the results). 00:13:32 pnq [~nick@AC812741.ipt.aol.com] has joined #lisp 00:13:38 Samian: in real life, programs are often much slower than x2... 00:13:49 well sucks to be them 00:14:01 x2 is still the same O() complexity. In real life, you have higher order O()s... 00:15:03 *akovalenko* tried (write ''s :pretty nil) in ABCL. ABCL avoids an "unwanted prettiness" bug by doing nothing special to (quote ...) for *any* value of *print-pretty*. 00:17:42 *akovalenko* tried Allegro CL 8.2 (express), got a (non-trivialized) conforming behavior... 00:18:56 pjb``: there are other complexity measures that do not use landau notation. 00:20:58 pkhuong: there's () and o() and (). But I don't know other measures. (perhaps Chaitin information complexity could be used too?). 00:21:09 gienah [~mwright@ppp121-44-130-151.lns20.syd7.internode.on.net] has joined #lisp 00:22:29 vjacob [~vjacob@78-105-184-157.zone3.bethere.co.uk] has joined #lisp 00:22:50 *akovalenko* was silly: *pretty-print* on ABCL defaults to false. Got a pretty quote from ABCL when requested... 00:22:58 -!- pnq [~nick@AC812741.ipt.aol.com] has quit [Ping timeout: 252 seconds] 00:23:12 pjb``: these operators from functions to sets of functions are collectively called "Landau notation". 00:23:56 *akovalenko* tried LW personal 5.1: both pretty and "ugly" QUOTEs are fine... 00:24:30 Yes. Chaitin's or Kolmogorof complexity that could be used, but AFAIK, it's not used to analyze algorithmic complexity (given that in general, algorithms stand on one sheet of paper). 00:24:38 Well-explored fields in which performance is essential often count actual operations; see linear algebra and FFT literature, in which computational cost is often counted in exact FP multiplication or multiply-accumulate. 00:24:59 sogeking99 [~sogeking9@5ac58a4e.bb.sky.com] has joined #lisp 00:25:51 pkhuong: cryptographers don't normally stop at O//o(something), too 00:26:09 pkhuong: indeed, exact complexity is often more useful than asymptotic one. 00:26:18 Other, more coarse-grained, performance models also count operations exactly: number of passes for streaming models, number of communication rounds, etc. 00:26:26 hey guys, in this if statement what is the test? (defun my-length (list) (if list (1+ (my-length (cdr list))) 0)) 00:26:43 and these are all used by bona fide academics. 00:26:44 pkhuong: (in cryptography, *non-performance* is essential sometimes :) 00:27:09 sogeking99: list 00:27:22 sogeking99: any lisp object that is not CL:NIL is true. 00:27:29 sogeking99: only CL:NIL is false. 00:27:39 -!- homie [~levgue@xdsl-78-35-160-56.netcologne.de] has quit [Read error: Operation timed out] 00:27:49 akovalenko: I hear they just love caches and hyperthreading ;) 00:27:54 pjb``, how can 'list' be a test? 00:27:58 wbooze` [~levgue@xdsl-78-35-175-181.netcologne.de] has joined #lisp 00:28:08 homie` [~levgue@xdsl-78-35-175-181.netcologne.de] has joined #lisp 00:28:13 -!- deke [~deke@fl-71-54-184-132.dhcp.embarqhsd.net] has left #lisp 00:28:15 sogeking99: list is an expression which evaluates to the value bound to the variable named list. 00:28:30 This value can be CL:NIL or not. 00:29:36 sogeking99: one could write (defun my-length (list) (if (null list) 0 (1+ (my-length (cdr list))))), but the idiomatic way is the former. 00:29:45 i understand some simpler examples of if statements, but i cant seem to make sense of this one 00:31:02 You can read it as: (defun my-length (list) (if list #|is null|# (1+ (my-length (cdr list))) 0)) 00:31:11 -!- wbooze [~levgue@xdsl-78-35-160-56.netcologne.de] has quit [Ping timeout: 276 seconds] 00:31:39 er, if list is not null, you mean? 00:31:47 Right. (defun my-length (list) (if list #|is not null|# (1+ (my-length (cdr list))) 0)) 00:32:08 -!- LiamH [~healy@pool-108-18-161-45.washdc.east.verizon.net] has quit [Quit: Leaving.] 00:33:05 sogeking99: it the same as in C, where any non 0 value is true: int myLength(list_t* list){ return(list?1+myLength(cdr(list)):0); } 00:33:25 vs. int myLengthp(list_t* list){ return((list!=0)?1+myLength(cdr(list)):0); } 00:33:32 ok thanks, but what is this bit doing? (1+ (my-length (cdr list))) 00:33:51 -!- fisxoj [~fisxoj@ool-45766193.dyn.optonline.net] has quit [Ping timeout: 248 seconds] 00:34:28 (cdr list) gives the rest of the list. (my-length (cdr list)) computes the length of the rest of the list. (1+ (my-length (cdr list))) computes the length of the list. 00:34:29 sogeking99: is that homework? (this bit adds 1 to your-length of list's tail) 00:34:51 sogeking99: for lists, it should rather be written as: (defun my-length (list) (if (endp list) 0 (1+ (my-length (rest list))))) 00:35:33 null (or testing nil), car, cdr, etc are low level operators. List operators are LIST, ENDP, FIRST, REST, not CONS, NULL, CAR, CDR. 00:35:41 akovalenko, no, i'm not at college or anything. 00:36:34 pjb``, oh thanks i get it 00:37:18 sogeking99: notably, if you test for nil, it'll break haphasardly for dotted list. If you use endp, it'll signal a meaningful error on dotted lists. 00:37:44 ok thanks 00:38:12 sogeking99: let's think "what this bit means", not what it's doing. The whole thing provides such definition of MY-LENGTH that: (1) MY-LENGTH of NIL is always 0, (2) MY-LENGTH of non-NIL is 1+ (my-length of the "rest") 00:40:55 I have used defconstant to define a constant string. I want to compare strings against this constant string, but even if the strings are the same, I get a mismatch. Can anyone tell me what I am doing wrong here? 00:41:00 sogeking99: pjb`` 's version (with ENDP) is based on the same meaning, but it behaves better with wrong kind of data (non-lists, for example): type error is better than running forever 00:41:37 pitlimit: SBCL is outstandingly harsh here 00:41:37 endp doesn't detect circular lists thought. 00:41:41 thanks akovalenko, this helps, never seen recursion before. 00:41:52 SBCL> 00:42:25 pitlimit: sorry, I was confused :( 00:42:32 oh... yes I noticed code that worked on my other machine is not working on my linux box :( 00:42:41 pitlimit: use string= (or equal) for string comparison 00:43:07 akovalenko: I use (equal constant_string other_string) 00:43:22 oh wait 00:43:42 pitlimit: defconstant means that the compiler is free to inline the data. 00:43:54 ok 00:44:00 a function calling itself feels like the terminators 'send dad back in time to become my father' paradox :\ 00:44:10 pitlimit: therefore (defconstant +s+ "A") (defun g () +s+) (defun h () +s+) (eq (g) (h)) ==> NIL is possible. 00:44:17 I'm confused as to why using ccl on both boxes, on one code works and the other it does not 00:44:31 pjb``: is there a better construct to use? 00:44:36 I just want a global string variable 00:44:39 pitlimit: with defconstant, you are explicitely giving the authorization to the compiler to duplicate the string! 00:44:41 pitlimit: defparameter 00:44:44 pjb``: no, that's not possible. 00:44:46 pitlimit: use defparameter. 00:45:10 pkhuong: AFAIK, the compiler can assume any copy of a constant value will be EQL. 00:45:22 Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has joined #lisp 00:45:25 gko [~gko@220-135-201-90.HINET-IP.hinet.net] has joined #lisp 00:45:26 ppl, pitlimit said he uses EQUAL -- what could be wrong with duplication here? 00:45:27 pjb``: you just gave an example in which they weren't. 00:45:56 akovalenko: the spec says that constants can be rebound to EQL values. 00:46:00 hm 00:46:00 pkhuong: yes. defconstant of a string is a lie to the compiler. 00:46:16 so... not sure what to do then 00:46:25 pitlimit: try with defparameter 00:46:29 ok 00:46:29 pitlimit: just avoid defconstant, and use defparameter. 00:46:37 pitlimit: don't use defconstant. alexandria has another version with a weaker equality check. 00:46:54 can anyone tell me why ccl is dif on linux and mac? same version of ccl 00:47:02 It worked on my other machine - it's disturbing 00:47:08 pkhuong: IIRC alexandria's take on it is subtly wrong in another way.. 00:47:08 pitlimit: there are some inoncent-looking operators in CL that are actually highly hairy and best not used. defconstant is one of them. 00:47:12 -!- BrokenCog [~daniel@ip98-162-173-207.pn.at.cox.net] has quit [Quit: leaving] 00:47:15 Of course, I'd rather use the stricter one, but it's still annoying 00:47:33 I would not have known my code was "bad" if my mac wouldn't have died 00:47:39 pitlimit: you did not do the same thing on linux and mac. 00:47:46 ccl pkhuong 00:47:54 pitlimit: that's where I find it important to stick to strict conformity. 00:48:08 pjb``: it's hard to know if the compiler accepts anything and runs anything 00:48:13 The more conforming your code is, the best chance it has to run uniformly on all targets and plateforms. 00:48:34 also... when comparing strings, is it more "correct" to assume case insensitivity or case sensitivity 00:48:35 pitlimit: yes, you cannot trust the implementation, you have to read clhs, and perhaps use clall. 00:48:55 clall: http://paste.lisp.org/display/123280 00:49:30 and also: all-host: http://paste.lisp.org/display/124783 00:49:36 :-) 00:49:38 pitlimit: CL is very much stateful. Loading a file twice isn't the same thing as loading in two different processes. 00:49:51 -!- xharkonnen [~charles@host86-141-143-76.range86-141.btcentralplus.com] has quit [Ping timeout: 248 seconds] 00:49:53 pitlimit: case sensitivity depends on the function you use; it's always fully specified. 00:50:19 [modulo internationalisation issues] 00:50:23 yes, but... I think well... since LISP capitalizes everything, isn't it safer to assume case insensitivity? 00:50:55 pitlimit: CL does not capitalize *everything*, and case sensitivity is always fully specified. Read the documentation and choose which comparison you want. 00:50:56 -!- frhodes [~user@168-103-97-250.albq.qwest.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 00:51:09 and when i swap out defconstant with defparameter, I get error: can't redefine constant 00:51:38 pitlimit: loading a file twice in the same process isn't the same as loading it once. Start a fresh process. 00:51:49 pitlimit: constants should be named with + 00:51:55 pitlimit: special variables should be named with * 00:51:59 so you cannot have this problem. 00:52:05 and defparameter is consider a constant? 00:52:09 (defconstant +s+ "A") vs. (defparameter *s* "A") 00:52:26 constants aren't, variables won't. 00:52:27 oh defparameter is actually creating a global variable then 00:52:35 Yes. 00:52:56 pitlimit: that said, you could use define-symbol-macro to make your own "constants". 00:53:05 pitlimit: yes, but if you don't assing to it, it will remain constant :) 00:53:08 pkhuong: every time I want to rerun my program, I have to start a fresh process? 00:53:19 But unless you want to check sloppy programming, it's really not worth the pain. 00:53:31 pitlimit: that's what you did on mac. If your program is coded right, you don't have to. 00:53:39 pitlimit: not necessarily, if you take some precautions. 00:53:42 pitlimit: you don't *have* to, but it's a good advice to do it until you know when you can avoid it 00:54:08 thanks - I'm very appreciative for your comments 00:54:23 pitlimit: smart and discriminated use of defvar and defparameter in your sources help allow you to run anew or continue running a program after reloading. 00:54:47 ok 00:55:01 I should be glad my mac crashed in a way. Otherwise, my code would not be quite as ... strict 00:56:24 _danb_ [~user@124-149-162-79.dyn.iinet.net.au] has joined #lisp 00:59:03 Sorry, one more q... if I want my code to comply to the strictest of standards... what should I use? 00:59:45 pitlimit: I don't think any implementation would have caught your defconstant issue at compile-time. 01:00:27 *akovalenko* will never forget his first experience in real-life remote CL "debugging". After two hours of tinkering with a running daemon (it was handling GPS data from several terminals all this time), I realised that a new message format support was added.. with no reboot, no restart, no downtime and no harm to existing connections (serial ports and TCP). 01:01:50 pkhuong: but even at runtime, it did not catch it. 01:02:43 pitlimit: are you sure you loaded the file multiple times in the same environment? 01:04:18 -!- dwim [~dwim@117.Red-79-156-36.staticIP.rima-tde.net] has quit [Quit: dwim] 01:05:56 -!- gko [~gko@220-135-201-90.HINET-IP.hinet.net] has quit [Ping timeout: 258 seconds] 01:06:31 -!- dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has quit [Quit: dnolen] 01:06:51 -!- zenlunatic [~justin@c-68-48-40-231.hsd1.md.comcast.net] has quit [Quit: Ex-Chat] 01:08:39 hugod [~hugod@70.24.176.95] has joined #lisp 01:10:40 heh 01:11:33 pkhuong: you mean am I sure I did not? 01:11:44 I'm not sure of anything. 01:11:57 *maxm-* had a story to beat that, I had SAS ground crew about to start striking, coz portal website they were promised for 2 years and delayed and delayed crashed like 70% of the time 01:12:01 I keep loading it over and over... is that wrong? 01:12:27 pitlimit: no, just that this isn't about mac VS linux. You just did different things in each environment. 01:13:03 pkhuong: I'm confused as to how (last alist) can be exactly the same as alist 01:13:20 But when I do (first alist) it's just one element from the list - the first element 01:13:28 had to spend 20 hour hacking session over remote desktop to germany, debugging a really fancy toolchain of ASP pages -> vb -> custom wrapper DLL, -> our app -> tuxedo -> db 01:13:38 pitlimit: read the documentation. 01:13:48 -!- mjonsson [~mjonsson@38.109.95.133] has quit [Remote host closed the connection] 01:13:54 . 01:14:25 Yes, I've seen that .... I know what it SHOULD do 01:14:42 surely if First grabs the first element then last should grab the last, but for some reason first works but not last 01:15:11 pitlimit: no. you know what you think it should do. The documentation describes what it does. 01:15:57 pitlimit: last returns the list, ie (last '(a b c)) returns (c) not c 01:16:36 Yes... but mine returns (a b c) 01:16:50 pkhuong is just using the (sarcastic socrates) method of explaining 01:19:06 Deathaholic [~Mococa@187.59.135.54] has joined #lisp 01:19:13 pitlimit: generally, any automatic error detection is helpful (1) against some *known* pitfall that you were going to overlook, (2) as an *indication* that you entered some yet unknown area where you need more learning. I recommend not to *learn* from error messages; don't rely on your conclusions from the mere fact that your code ceased to work or began to work again. Two possible valid conclusions from unexpected error: (1) oh, silly 01:19:13 me, let's fix this obvious bug, (2) I need to read more on the things I've used here. 01:19:16 eh using last then first seems to fix it 01:19:27 -!- Mococa [~Mococa@187.59.135.54] has quit [Read error: Connection reset by peer] 01:19:28 yes :( 01:19:44 -!- gffa [~gffa@unaffiliated/gffa] has quit [Quit: sleep] 01:19:58 lisp programming is quite different from c programming 01:20:09 it's hard to think differently 01:22:37 -!- Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has quit [Ping timeout: 240 seconds] 01:26:47 from the mouth of babes 01:28:41 neoesque [~neoesque@210.59.147.232] has joined #lisp 01:31:24 LiamH [~healy@pool-108-18-161-45.washdc.east.verizon.net] has joined #lisp 01:32:32 -!- lanthan [~ze@i5E878529.versanet.de] has quit [Ping timeout: 260 seconds] 01:35:37 maxm-: Re SLIME.. were there any attempts of specifying an IDE-independent way to provide metadata on indentation, arguments etc.. as part of a system definition? (Adding ad hoc support for popular packages within slime looks very wrong) 01:39:17 pitlimit: it's more useful that last returns the last CONS cell of the list instead of the last element of the list. 01:39:26 akovalenko: well the current infrastructure not very suitable for it, the entry point is arglist-dispatch, which specializes only on the (car) of the form 01:39:44 pitlimit: this allows to add a new cons cell at the end of the list: (setf (cdr (last list)) (cons 'new-last-element nil)) 01:40:12 pitlimit: otherwise, you can always (defun last-element (list) (first (last list))). 01:40:16 the rest of the matching is done using (match) macro 01:40:19 when some systems are related in some intimate way, yet there are no *dependencies*.. it's illicit. 01:40:52 akovalenko: named-readtable is weakly related. 01:41:05 need to come up with more generic framework.. IMHO if you going to do framework allowing one to specify syntaxes for your DML, and how slime should deal with them, then emacs indentation should also be part of the deal, so you don't have to specify stuff twice 01:41:08 pitlimit: most of the CL operators that may look strange are actually operators that have been refined during 50 years, and used in innumerable programs. That's why they're quite practical. 01:43:13 maxm-: you've done the right thing for short-term relief: as much as you could for current implementation. For a scalable long-term solution, rewriting (match) and friends is not the hard part at all.. 01:43:15 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 01:46:13 akovalenko: I kind of have a very library, using some ideas from cl-indent, it has a generic "define a match for point being inside of SEXP with arbitrary properties" matcher 01:46:16 but it looks a bit ugly 01:46:56 thanks pjb`` 01:47:11 I like lisp ... it takes some adjusting... thanks for the tips 01:47:12 dto [~dto@pool-96-252-89-130.bstnma.fios.verizon.net] has joined #lisp 01:47:40 see http://paste.lisp.org/display/125029 01:48:01 I have it on my todo list to clean it up and release, since its extremely useful 01:48:12 pizzledizzle [~pizdets@pool-96-250-220-99.nycmny.fios.verizon.net] has joined #lisp 01:48:47 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Quit: Leaving...] 01:49:38 basically () backspace, dd, yank/paste all do structural editing and do the correct thing with regards to newlines.. So if you are on the (let ((one)) \n ...POINT_HERE__) expression and press backspace, it backs into the let, figures ot its inside let, auto-adds newline, making you ready to type new variable name 01:50:27 () ) and newlines are also automatically cleaned up, basically I don't have to do any formatting at all..Its insane :-) 01:53:26 -!- pizzledizzle [~pizdets@pool-96-250-220-99.nycmny.fios.verizon.net] has quit [Ping timeout: 258 seconds] 01:53:34 frhodes [~user@168-103-97-250.albq.qwest.net] has joined #lisp 01:54:18 -!- vjacob [~vjacob@78-105-184-157.zone3.bethere.co.uk] has quit [Quit: Leaving] 01:55:13 -!- sogeking99 [~sogeking9@5ac58a4e.bb.sky.com] has quit [Quit: Ex-Chat] 01:55:41 -!- vert2 [~vert2@gateway/shell/bshellz.net/x-ztqtalhdzbqamuae] has quit [Remote host closed the connection] 01:57:55 -!- Vivitron [~user@pool-108-7-56-243.bstnma.fios.verizon.net] has quit [Read error: No route to host] 01:58:45 maxm-: thanks for sharing; it's definitely useful, at least as an initial TODO list for this kind of projects. 01:59:01 -!- topo [~topo@f053039245.adsl.alicedsl.de] has quit [Ping timeout: 252 seconds] 02:01:19 -!- sabalaba [~sabalaba_@c-98-250-107-145.hsd1.mi.comcast.net] has quit [Ping timeout: 248 seconds] 02:01:51 -!- ikki [~ikki@189.247.120.64] has quit [Quit: Leaving] 02:05:17 topo [~topo@f053045025.adsl.alicedsl.de] has joined #lisp 02:08:41 zipace [~hi@drsd-4db3f976.pool.mediaWays.net] has joined #lisp 02:12:44 -!- dto [~dto@pool-96-252-89-130.bstnma.fios.verizon.net] has quit [Quit: Leaving.] 02:13:08 uh... this might sound like a ridiculous question but I cannot seem to find the answer. What if I don't want either nil or t to print from a function? 02:13:56 sanjoyd [~sanjoyd@unaffiliated/sanjoyd] has joined #lisp 02:14:28 pitlimit: Print, or return? 02:14:58 -!- madnificent [~madnifice@83.101.62.132] has quit [Ping timeout: 245 seconds] 02:15:07 dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has joined #lisp 02:15:40 print 02:15:55 pitlimit: what do you see for (values)? 02:16:15 nothing akovalenko 02:16:26 If I put (values) as the last statement, nothing will come out? 02:16:28 thanks :) 02:16:48 pitlimit: it's actually "zero values". CL supports multiple (or zero) return values 02:17:14 I'm not sure what that means, akovalenko 02:17:34 pitlimit: (print "something else") 02:17:50 pitlimit: you'd better start with CLHS description for VALUES. 02:18:16 so.... I should not use (values)? 02:18:24 pitlimit: But you seem to be thinking of return values, not printing. On the REPL, the result of what you put in will be printed, that's all. 02:18:28 Bike: can i simply (print "") or is that weird 02:18:46 You can, but I think you're confused about what's happening. 02:18:49 I am actually printing values myself Bike and I don't want the "t" to print from my other wrapper function 02:19:21 pitlimit: you don't want REPL to print anything, because you do it yourself, yes? 02:19:25 Your wrapper function has (print t) or something in it? 02:19:32 yes akovalenko 02:19:43 pitlimit: if I'm right, then (VALUES) as the last for is what you need 02:19:44 Bike: my wrapper function just initializes stuff before calling the 'real' funcvtions 02:19:49 yes akovalenko I think so :) 02:20:09 -!- Bwaah [bwaah@unaffiliated/bwaah] has quit [Ping timeout: 265 seconds] 02:20:16 pitlimit: Could I see some of what you're doing? (e.g., could you put it up on paste.lisp.org or something) 02:20:19 Yuuhi``` [benni@p5483D182.dip.t-dialin.net] has joined #lisp 02:20:29 pitlimit: I just hoped that it will be interesting *why* it helps. 02:21:38 Yes, but I did not know waht "zero values" means 02:21:55 It is very helpful and thank you very much 02:21:57 pitlimit: and if it's interesting, then go to CLHS and read of multiple return values (start with the description of VALUES, for example. Then follow hyperlinks to get a clarification of things unknown..) 02:22:07 -!- Yuuhi`` [benni@p5483CAFB.dip.t-dialin.net] has quit [Ping timeout: 248 seconds] 02:22:08 ok akovalenko 02:22:10 :) 02:22:27 pitlimit: you know, a form, like (+ 1 2), returns a value, 3. 02:22:46 pitlimit: it's ONE value, see? 02:23:30 -!- Spion [~spion@unaffiliated/spion] has quit [Remote host closed the connection] 02:23:33 yes 02:23:37 I see that 02:24:14 pitlimit: in CL, "result" of anything may be ONE value, NO values (=== zero values), MORE THAN ONE value.. 02:24:25 pitlimit: try (values 1 2 3) 02:24:30 k 02:24:39 hm 02:24:42 it printed all three 02:24:47 pitlimit: ..and see how it's printed back: it's not a list 02:24:59 yes... it's like it called the print function because of the newlines 02:25:38 -!- Guest84104 [~patryk@141.212.182.121] has quit [Read error: Operation timed out] 02:26:34 pitlimit: most important part of this multiple-value deal is this: when some function calls another function, it sees ONLY THE FIRST VALUE (or NIL for no values), unless it does something interesting to request all values... 02:26:52 Bwaah [bwaah@unaffiliated/bwaah] has joined #lisp 02:26:56 i see 02:27:11 pitlimit: try (+ 1 (values 2 "invisible ignored string, won't hurt")) 02:27:41 3 02:27:44 gko [~gko@118-231-44-162.adsl.fetnet.net] has joined #lisp 02:28:06 -!- Ivoz [Ivoz@unaffiliated/ivoz] has quit [Ping timeout: 244 seconds] 02:28:56 pitlimit: yes, it's 3, because only the first of multiple (two) values was used by +, and the second one (a string) was silently ignored 02:29:03 it only takes the first one 02:29:07 -!- deepfire [~deepfire@80.92.100.69] has quit [Ping timeout: 258 seconds] 02:29:07 if I put (values 2 3) 02:29:17 yes 02:29:48 -!- easyE [46hsE67thb@panix2.panix.com] has quit [Ping timeout: 255 seconds] 02:30:20 pitlimit: many functions in the standard return some "most frequently used" result as a first value, and some other information (that you could be needing or not) in other values 02:30:53 i see 02:30:57 pitlimit: now try: (multiple-value-bind (x y) (values 20 30) (+ x y) ) 02:30:58 thanks akovalenko for the information 02:30:59 very helpful 02:31:17 nice :) 02:31:35 lisp is very different than any language I have coded in :) 02:31:44 pitlimit: multiple-value-bind is what you normally do when you *need* all return values 02:31:50 got it 02:31:53 :) 02:32:14 pitlimit: there are also multiple-value-setq, multiple-value-list, etc. 02:33:15 i see that now :) 02:33:56 pitlimit: now, when a function returns NO VALUES, what happens? 1. REPL loop prints nothing; 2. If some other function calls your function and expects only one value, it will receive NIL 02:34:59 :) 02:35:36 pitlimit: well, now you know the basics -- turn to CLHS for the rest (or some good book like Practical Common Lisp) 02:36:20 yes I like Practical Common LIsp 02:36:22 :) 02:37:10 pitlimit: I'm still confused here - why do you have your wrapper function print anything if you don't want it to? 02:37:11 CLHS is often everything but useful to me Try understanding quickly how LOOP works by reading its CLHS entry 02:37:25 You should read the section on it instead, no? 02:37:36 It doesn't Bike 02:37:39 -!- asdfasdf123 [~asdflkjds@67.169.7.215] has quit [Quit: Leaving] 02:37:42 The function that it calls prints 02:38:00 Can you modify that one, then? 02:38:08 It's ok Bike I think I solved it :) 02:38:10 I appreciate your help 02:38:13 Bike: Can I get the whole section in one page? 02:38:17 Okay, then. 02:38:36 Axioplase: You could concatenate them together if you want? 02:38:49 Bike: Well, I now think I definetely should :) 02:39:43 -!- topo [~topo@f053045025.adsl.alicedsl.de] has quit [Ping timeout: 248 seconds] 02:44:42 oconnore [~Eric@c-66-31-125-56.hsd1.ma.comcast.net] has joined #lisp 02:47:48 pitlimit: sometimes, when we write in C, we *want* to "return" something in addition to a function result. We invent and reinvent some tricks to do it in C: "let one argument be a pointer, where the function puts some additional data.."; "let one of possible return values be invalid and mean something different.."(EOF); "let's define a global variable, so the function sets it, and let the caller examine it if needed" (errno)... And in 02:47:48 CL, we can just return two or more value directly. 02:50:52 and signal a condition when a condition needs to be signaled. 02:53:29 -!- ianmcorvidae [~ianmcorvi@fsf/member/ianmcorvidae] has quit [Remote host closed the connection] 02:53:49 ianmcorvidae [~ianmcorvi@pool-96-233-186-101.spfdma.east.verizon.net] has joined #lisp 02:53:49 -!- ianmcorvidae [~ianmcorvi@pool-96-233-186-101.spfdma.east.verizon.net] has quit [Changing host] 02:53:49 ianmcorvidae [~ianmcorvi@fsf/member/ianmcorvidae] has joined #lisp 02:53:54 AlexWaters [~matth1a3@unaffiliated/matth1a3] has joined #lisp 02:53:59 -!- AlexWaters [~matth1a3@unaffiliated/matth1a3] has left #lisp 02:54:16 Axioplase: is there *anything* you can read to understand *quickly* how LOOP works? I can't believe it. 02:54:53 you can quickly learn useful LOOPism. 02:55:07 akovalenko: PCL's chapter on loop was pretty helpful, imo 02:55:16 akovalenko: just read the loop form! 02:55:22 akovalenko: loop is just English. 02:55:26 gdmorning [~feifan@111.15.26.40] has joined #lisp 02:55:44 pjb``: that one takes time to understand, too :) 02:56:05 I agree it's a little DWIM, but nowadays, people are used to that kind of programming.... 02:56:05 btbytes [~btbytes@50-90-67-201.res.bhn.net] has joined #lisp 02:57:28 And yes, conditions are not always errors, and can just be "signaled". http://paste.lisp.org/display/125032 02:57:52 When you use SIGNAL, if no handler is active, then the signal is ignored. 02:58:03 pjb``: I like LOOP, and use it, and hopefully, understand it :). I just remember that it didn't happen *quickly*. 02:58:16 -!- __main__ [~main@76-220-16-41.lightspeed.sntcca.sbcglobal.net] has quit [Read error: Connection reset by peer] 02:58:16 OneMINER [~IceChat77@bas13-toronto12-1167984130.dsl.bell.ca] has joined #lisp 02:58:18 MeanWeen [~KAPITAL@cpe-174-099-078-179.nc.res.rr.com] has joined #lisp 02:58:29 -!- OneMINER [~IceChat77@bas13-toronto12-1167984130.dsl.bell.ca] has left #lisp 02:58:38 pjb``: I liked Xach's use of non-error conditions in Quicklisp for progress bar 02:58:55 why is apple a string but apple3 is not a string? 02:59:21 pitlimit: "apple" and "apple3" are strings 02:59:24 -!- gdmorning [~feifan@111.15.26.40] has quit [Remote host closed the connection] 02:59:27 __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has joined #lisp 02:59:55 akovalenko: when I make a plist with apple3 as one of the values, I get : Error: value APPLE3 is not of the expected type SEQUENCE. 03:00:11 pitlimit: how do you make a plist? 03:00:51 pitlimit: e.g. (list 'apple "good" 'apple3 "good too") 03:00:54 I do this: (push (list :val1 val1 :val2 val2) theplist)) 03:00:56 -!- __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has quit [Read error: Connection reset by peer] 03:01:06 and pass val1 and val2 as parameters to a functin 03:01:27 pitlimit: if you form plist by pushing, you have to do it one item at a time 03:01:29 __main__ [~main@76-220-16-41.lightspeed.sntcca.sbcglobal.net] has joined #lisp 03:01:34 pitlimit: ..in reverse order, btw 03:01:37 Yes, akovalenko my program is very simple 03:01:43 and order does not matter in my case 03:01:58 Do I need to designate the type of val1 and val2? 03:01:59 nconc? 03:02:39 -!- Deathaholic [~Mococa@187.59.135.54] has quit [Ping timeout: 248 seconds] 03:02:54 pitlimit: in a "plist" like (value1 key1 value2 key2), you'll have keys in wrong places, so order matters. 03:03:08 Hm. 03:03:15 I copied the example from Practical Lisp 03:03:20 pitlimit: no need to do something with types yet. 03:03:20 So far, the keys are in the right place 03:04:18 pitlimit: http://paste.lisp.org -- submit the (entire) code that *doesn't* work. 03:04:24 ok 03:04:47 it's kind of long 03:12:15 -!- LiamH [~healy@pool-108-18-161-45.washdc.east.verizon.net] has quit [Ping timeout: 248 seconds] 03:13:15 -!- quasisane [~sanep@c-76-24-80-97.hsd1.nh.comcast.net] has quit [Ping timeout: 260 seconds] 03:13:32 -!- Samian [~Fresh@fleet.ece.gatech.edu] has quit [] 03:13:43 patryk [~patryk@c-68-40-60-13.hsd1.mi.comcast.net] has joined #lisp 03:14:09 -!- patryk is now known as Guest93554 03:14:27 quasisane [~sanep@c-76-24-80-97.hsd1.nh.comcast.net] has joined #lisp 03:23:43 -!- tali713 [~user@c-75-72-221-163.hsd1.mn.comcast.net] has quit [Ping timeout: 252 seconds] 03:26:42 LiamH [~healy@pool-108-18-161-45.washdc.east.verizon.net] has joined #lisp 03:26:52 -!- LiamH [~healy@pool-108-18-161-45.washdc.east.verizon.net] has quit [Client Quit] 03:27:45 cataska [~cataska@210.64.6.233] has joined #lisp 03:30:10 sabalaba [~sabalaba_@c-98-250-107-145.hsd1.mi.comcast.net] has joined #lisp 03:31:59 -!- wolfpython [~wolf@112.3.255.86] has quit [Ping timeout: 248 seconds] 03:33:21 Phoodus [~foo@68.107.217.139] has joined #lisp 03:33:43 wolfpython [~wolf@112.3.255.19] has joined #lisp 03:40:31 -!- levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has quit [Read error: Connection reset by peer] 03:40:57 Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has joined #lisp 03:41:55 levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has joined #lisp 03:42:33 Deathaholic [~Mococa@187.59.135.54] has joined #lisp 03:43:57 -!- rme [~rme@50.43.156.82] has quit [Quit: rme] 03:44:33 -!- wolfpython [~wolf@112.3.255.19] has quit [Ping timeout: 260 seconds] 03:48:32 daniel__ [~daniel@p5082A133.dip.t-dialin.net] has joined #lisp 03:51:23 -!- daniel___ [~daniel@p5082A630.dip.t-dialin.net] has quit [Ping timeout: 276 seconds] 03:51:40 jsoft [~jsoft@unaffiliated/jsoft] has joined #lisp 03:55:09 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: no number tonight, folks] 03:57:27 -!- Guest93554 is now known as patryk 03:57:57 -!- patryk is now known as Guest68227 04:00:00 wolfpython [~wolf@112.3.255.19] has joined #lisp 04:00:32 let's say that i create a list as such (setf testlist '(john's wife isn't happy you're home)) this will create a list (john 's wife isn 't happy you 're home) 04:00:57 i'd like to remove these 's 't 're 04:00:58 yes, you probably shouldn't do that 04:01:00 how can i do that 04:01:17 -!- lemoinem [~swoog@216.252.94.137] has quit [Remote host closed the connection] 04:01:45 lemoinem [~swoog@216.252.77.18] has joined #lisp 04:02:04 k let's say that i don't do that but someone else does and i have to remove them 04:02:15 (remove-if #'consp list)? 04:03:36 -!- alvis [~alvis@tx-71-2-123-220.dhcp.embarqhsd.net] has quit [Read error: Connection reset by peer] 04:05:04 thanks i'm relatively new to this language, and having searched around the web i still can't find a central reference source. any suggestions? I'm looking for something like cplusplus.com is for C++ 04:05:52 That's basic tutorials, isn't it? I think you'd want PCL, Gentle Introduction, that sort of thing for that. 04:08:17 tali713 [~user@c-76-17-236-129.hsd1.mn.comcast.net] has joined #lisp 04:09:47 -!- zardoz8 [~redmundia@84.122.73.141.dyn.user.ono.com] has quit [Quit: Chateando desde http://webchat.redmundial.org (Ping timeout)] 04:09:54 -!- Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has quit [Ping timeout: 258 seconds] 04:11:42 Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has joined #lisp 04:12:28 -!- kennyd [~kennyd@78-1-157-187.adsl.net.t-com.hr] has quit [Ping timeout: 260 seconds] 04:12:46 kennyd_ [~kennyd@93-138-52-38.adsl.net.t-com.hr] has joined #lisp 04:15:01 -!- Kron [~Kron@69.166.23.238] has quit [Quit: Kron awayyy!] 04:15:45 spradnyesh [~pradyus@nat/yahoo/x-ljgpptdzszkdhqst] has joined #lisp 04:16:36 Guest: I find clct2 the best reference (better then hyperspec) 04:17:35 *maxm-* is lazy, so I just google "common lisp the language and go to top result 04:17:51 -!- Deathaholic [~Mococa@187.59.135.54] has quit [Ping timeout: 248 seconds] 04:17:51 -!- sabalaba [~sabalaba_@c-98-250-107-145.hsd1.mi.comcast.net] has quit [Ping timeout: 248 seconds] 04:18:30 Is there anything like ~& in FORMAT, but for single spaces? 04:18:34 *maxm-* has it bookmarked on some .fr site 04:18:35 -!- frhodes [~user@168-103-97-250.albq.qwest.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 04:19:28 -!- gry [user@freenode/staff/gry] has quit [Ping timeout: 260 seconds] 04:20:06 there is a pretty printer ~I, /me used to play with it when making a python decompiler 04:21:25 Kajtek [~nope@nat4-230.ghnet.pl] has joined #lisp 04:24:24 killerboy [~mateusz@users69.kollegienet.dk] has joined #lisp 04:25:46 akovalenko: I don't know if yo uare still there, but that whole thing works for strings but now not for ints... is there a way to customize it to work on ints 04:26:00 pitlimit: let's see 04:26:36 sykopomp: actually ~T does what you want I think.. ~20T will move to 20th column if not already there, if its after 20th it will move to 40'th 04:27:01 gry [user@freenode/staff/gry] has joined #lisp 04:27:44 -!- zipace [~hi@drsd-4db3f976.pool.mediaWays.net] has quit [Changing host] 04:27:44 zipace [~hi@unaffiliated/zipace] has joined #lisp 04:27:59 format is frustrating, so powerful, yet most features are impossible to remember and just tease you that you know there is a way to do it, but you have to refigure it out every time 04:28:08 Or maybe ~@T is more appropriate? Hard to tell. 04:28:54 maxm-: CLtL2 is different from CLHS. Best to use CLHS. 04:29:03 clhs ~T 04:29:20 Dang. The bots aren't working. 04:29:29 rtoym: I know its different, but I find clct2 better, since its more in-depth and has examples/common idioms 04:29:54 Ok. Just checking. 04:29:59 ie like its section on (format) is basically a (format) tutorial/reference... Unlike CLHS which is very dense 04:31:02 -!- dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has quit [Quit: dnolen] 04:31:19 so CLHS for quick syntax check, and actual requirements, and clct2 when I want to learn how to use some CL feature, or wanna refresh my memory 04:32:15 pitlimit: did you delete your code? 04:32:47 Not a bad plan. I still prefer a book for that, though. I could never have learned how to use CLOS from CLHS or CLtL2. 04:32:50 Guest68227: http://cliki.net gives all the pointers. 04:33:12 Deathaholic [~Mococa@187.59.135.54] has joined #lisp 04:33:13 *maxm-* is watching CNN and the guy who haven't seen the sun for 18 years look pretty young for 36 y/o.. Pretty interesting 04:34:00 akovalenko: I can post it again 04:34:16 rtoym: yea for clos its practical common lisp probably 04:34:43 maxm-: Actually, I used Keene. PCL didn't exist then. :-) 04:35:03 stassats [~stassats@pppoe.178-66-107-13.dynamic.avangarddsl.ru] has joined #lisp 04:35:07 -!- stassats [~stassats@pppoe.178-66-107-13.dynamic.avangarddsl.ru] has quit [Changing host] 04:35:07 stassats [~stassats@wikipedia/stassats] has joined #lisp 04:35:20 -!- Kajtek [~nope@nat4-230.ghnet.pl] has quit [Quit: Leaving.] 04:35:35 stassats: @wikipedia? 04:38:46 MoALTz [~no@host-92-18-23-195.as13285.net] has joined #lisp 04:39:41 -!- Bwaah [bwaah@unaffiliated/bwaah] has quit [Quit: ~] 04:44:50 -!- Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has quit [Ping timeout: 260 seconds] 04:47:53 -!- littlegiraffe [~littlegir@poco208-2.fredcanhelp.com] has quit [Remote host closed the connection] 04:50:34 -!- paul0 [~paul0@200.146.125.207.dynamic.adsl.gvt.net.br] has quit [Quit: paul0] 04:51:25 Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has joined #lisp 04:54:28 -!- ISF [~ivan@201.82.136.131] has quit [Read error: Operation timed out] 04:54:41 man it really rocks when you got your classes right, and everything starts falling into place, code just writes itself... CLOS rocks 04:55:55 *maxm-* just realized if I add 1 more method than returns the right brush/pen, then I my drawing code becomes common and gets written just once, knocking out 5 todo items at once 05:02:04 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #lisp 05:02:25 -!- Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has quit [Ping timeout: 256 seconds] 05:03:37 Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has joined #lisp 05:05:54 -!- Guest68227 [~patryk@c-68-40-60-13.hsd1.mi.comcast.net] has quit [Ping timeout: 258 seconds] 05:06:55 -!- blumbri [~blumbri@c-67-181-176-186.hsd1.ca.comcast.net] has quit [Ping timeout: 248 seconds] 05:08:04 oconnore: what are you asking? 05:10:37 -!- levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has quit [Read error: Connection reset by peer] 05:12:05 levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has joined #lisp 05:18:31 -!- zipace [~hi@unaffiliated/zipace] has quit [Read error: Operation timed out] 05:19:22 blumbri [~blumbri@c-67-181-176-186.hsd1.ca.comcast.net] has joined #lisp 05:19:43 -!- Deathaholic [~Mococa@187.59.135.54] has quit [Ping timeout: 248 seconds] 05:20:00 -!- rtoym [~chatzilla@c-67-180-54-112.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 05:24:44 -!- btbytes [~btbytes@50-90-67-201.res.bhn.net] has quit [Quit: btbytes] 05:25:54 kpavn [A@nat/ibm/x-kichnbfbopowpgsv] has joined #lisp 05:26:17 rtoym [~chatzilla@c-67-180-54-112.hsd1.ca.comcast.net] has joined #lisp 05:29:42 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 05:32:05 -!- spradnyesh [~pradyus@nat/yahoo/x-ljgpptdzszkdhqst] has quit [Ping timeout: 260 seconds] 05:33:38 zipace [~hi@drsd-4d05e31c.pool.mediaWays.net] has joined #lisp 05:33:38 -!- zipace [~hi@drsd-4d05e31c.pool.mediaWays.net] has quit [Changing host] 05:33:38 zipace [~hi@unaffiliated/zipace] has joined #lisp 05:34:34 spradnyesh [~pradyus@nat/yahoo/x-rdowugnfgjnfoliy] has joined #lisp 05:35:12 Deathaholic [~Mococa@187.59.135.54] has joined #lisp 05:36:32 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Ping timeout: 252 seconds] 05:39:32 sdemarre [~serge@91.176.76.6] has joined #lisp 05:41:00 cyrillos [~cyrill@188.134.62.2] has joined #lisp 05:42:46 -!- sonnym [~sonny@rrcs-184-74-137-69.nys.biz.rr.com] has quit [Quit: Leaving.] 05:43:42 sonnym [~sonny@rrcs-184-74-137-69.nys.biz.rr.com] has joined #lisp 05:53:13 -!- Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has quit [Ping timeout: 244 seconds] 05:54:01 ramkrsna [ramkrsna@nat/redhat/x-gmqahtjlqgtklviz] has joined #lisp 05:54:01 -!- ramkrsna [ramkrsna@nat/redhat/x-gmqahtjlqgtklviz] has quit [Changing host] 05:54:01 ramkrsna [ramkrsna@unaffiliated/ramkrsna] has joined #lisp 06:08:25 -!- macrobat [~fuzzyglee@h-17-133.a328.priv.bahnhof.se] has quit [Quit: WeeChat 0.3.5] 06:09:56 mishoo__ [~mishoo@79.112.115.118] has joined #lisp 06:10:11 -!- realitygrill [~realitygr@adsl-76-226-120-136.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 06:16:41 -!- akovalenko [~user@95.73.220.72] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 06:17:15 Can anyone tell me how I can add a list to a nil list? 06:17:31 "add"? 06:17:36 what do you mean by that? 06:18:05 if you want to modify NIL, you can't do that 06:18:20 I want to be able to add lists such that I have ((1 2 3) (4 5 6)) I want to be able to add (7 8 9) to get ((1 2 3 ) (4 5 6) (7 8 9)) 06:18:53 It has to be at the end? 06:18:57 appending to the end of a list isn't the best idea 06:19:11 unless you're using LOOP's collect 06:19:55 Bike: no I dno't care where it gets added 06:20:05 cons, then 06:20:06 what are you really doing? 06:20:13 But cons puts a funny . in the middle 06:20:23 I am trying to build an association list, but I have to do it in a very specific way 06:20:36 can you describe it? 06:20:42 akovalenko [~user@95.73.220.72] has joined #lisp 06:20:45 stassats: your name says stassats@wikipedia, I was just curious. 06:20:53 when you join 06:21:04 pitlimit: nil is not mutable (it's a symbol) therefore you cannot add anything to an empty list. 06:21:17 pjb so how do i create a list of lists 06:21:19 pitlimit: Try (cons '(1 2 3) '((4 5 6) (7 8 9))), see what you get 06:21:24 okay Bike 06:21:52 pitlimit: there's no list in lisp. 06:21:53 oconnore: oh, i was once active in Wikipedia (and wikipedia IRCs), so i got this cloak 06:22:03 pitlimit: I mean, no list ADT. 06:22:20 We actually use chains of cons cells to represent lists. 06:22:28 stassats: ah, cool 06:22:54 nice Bike 06:22:55 -!- Amyn [~abennama@cac94-2-87-91-21-215.dsl.sta.abo.bbox.fr] has quit [Ping timeout: 259 seconds] 06:23:08 easyE [vWdS3hi7bQ@panix2.panix.com] has joined #lisp 06:23:11 Um... how do I create that second enbedded list? the '((456)) 06:23:39 pitlimit: when manipulating lists, you must be aware whether you're mutating them (using "destructive" operators), or not (using purely functional operators). 06:23:51 k 06:24:01 pitlimit: lists introduced by quote are literals, and must be left immutable. 06:24:41 pitlimit: if you need a mutable list, you may use backquote` instead of quote' 06:24:49 Another way would be to use append, but append only takes lists as arguments: (setf ll (append (list new-sublist) ll)) 06:25:16 oconnore: it won't give you a mutable list 06:25:19 pitlimit: or jst (list (list 1 2 3) (list 2 3 4)) 06:25:45 :) 06:25:52 oconnore: with backquote, only unspecified parts may be mutable. 06:26:02 ah thank byou 06:26:04 :) 06:26:06 phew 06:26:44 pitlimit: as a newbie, it would be a good exercise, to implement your function twice, once purely functional, without mutation, and another version that would destructively mutate the arguments. 06:27:02 As a start, you could implement reverse and nreverse. 06:27:48 pitlimit: also, read carefully clhs append, and consider what you can do on (append '(1 2 3) '(4 5 6))... 06:27:55 ok 06:29:09 is the best way to print a list with format t? 06:29:23 depends on how you want it. 06:29:28 (print list) is good enough for me. 06:29:38 -!- Amadiro [~Amadiro@ti0021a380-dhcp3462.bb.online.no] has quit [Quit: Leaving] 06:29:39 -!- kpavn [A@nat/ibm/x-kichnbfbopowpgsv] has quit [Quit: Leaving] 06:29:46 (format t "~{Element: ~A~%~}" list) is nice too. 06:30:32 yes pjbthat is how I was printing it (the latter one) 06:30:42 (format t "My list is: ~{~%- ~S~}." list) 06:31:06 pjb stassats: `(a b c) is equivalent to (append (list `a) (list `b) (list `c)) as per the spec [http://www.lispworks.com/documentation/HyperSpec/Body/02_df.htm] 06:31:10 But you can also just use PRINT, so that your lists are readable (ie. you can copy and paste them back to the lisp reader). 06:31:24 oconnore: modulo the time when it's done. 06:31:47 `(a b c) is also equivalent to '(a b c). 06:31:50 nowhere does it say that it's equivalent 06:32:02 It also says (list* (cons a '(b)) c d) would work, there's some immutability there 06:32:11 er, for a different example, sorry. 06:32:27 It's all up to the implementation. 06:33:00 In some sense, lisp is good because you don't have to necessarily immediately worry about type checking. But, at the end of the day, you DO Have to worry about it. So the bonus of not worrying about type checking is... gone 06:33:16 Like my list... some elements come out with quotations around them, others not 06:33:21 "An implementation is free to interpret a backquoted form F1 as any form F2 that, when evaluated, will produce a result that is the same under equal" 06:33:49 pitlimit: the point is that you get to choose when you worry about types. 06:33:51 (equal `(a b c) '(a b c)) => T, there you go 06:34:35 pjb it doesn't seem that way... your output and your checks are really type specific... so you think aha! I'm done. And then you're like but.... why do the data look different? Surprise... 06:34:55 pitlimit: when you start a program, you don't know the types upfront. You know what type you want only when you've completed your program. Then you can add the checks and declarations. 06:35:08 Yes, but it seems to me you might as well do it from the getgo 06:35:14 gravicappa [~gravicapp@ppp91-77-166-125.pppoe.mtu-net.ru] has joined #lisp 06:35:15 Anyway, I'll stop my critique :) 06:35:19 if your program doesn't do what you want it to do, then type checks have nothing to do with it 06:35:41 pitlimit: furthermore, a lot of CL functions have some degree of genericity. Eg. (+ a b) a and b can be integers, rationals, reals, complexes... 06:35:51 yeah. 06:36:02 pitlimit: so if you don't check types, your own functions can also be quite generic. 06:36:10 So if I want to get rid of the quotes, then I just need to convert the string to a symbol, right? 06:36:15 stassats: ah, that's nasty 06:36:25 pjb it makes me think I shoudl be aware of all my types anyway 06:36:38 Indeed, you must be aware of your types. 06:36:42 pitlimit: what are you talking about? can you paste the code? 06:37:10 Athas [~athas@shop3.diku.dk] has joined #lisp 06:37:10 eh... I'll just do a quick and dirty on it and see if intern works 06:37:20 Even if "any type" is the type. 06:37:25 you want "strings" to printed as strings? 06:37:31 yes stassats 06:37:43 You can use princ instead of prin1 or print. 06:37:45 (format t "~a" "aaa") =>aaa 06:37:56 Or (format t "~A" data) Instead of (format t "~S" data). 06:38:04 princ? i'll try that 06:38:24 princ isn't equivalent to print though, it doesn't print new-lines and spaces 06:38:27 ~A = princ ; ~S = prin1. 06:38:36 ~%~S = print 06:38:51 got it! 06:39:00 hallelujah 06:39:03 it works! 06:39:06 And ~W = write :-) 06:39:10 pjb: "~%~s " 06:39:20 yes, to be precise. 06:39:53 why does it do that, baffles me 06:40:22 who what? 06:40:30 who who? 06:40:41 do you mean princ prin1 and print? 06:40:49 no, print 06:41:11 Is all this stuff you have shared with me common lisp? 06:41:14 it's purely historical, in 1959, they only had line printers. 06:41:18 and punch cards. 06:41:28 pitlimit: yes. 06:41:36 i can understand it doing "~%~s" and not "~s~%", but why the space? 06:41:59 so that you can do (progn (print a) (prin1 b) (prin1 c)) 06:42:21 well, you can certainly do that, but is that the intention? 06:42:31 I guess so. 06:42:37 You can check the sources of LISP 1.5. 06:43:19 because if it didn't you could just do (progn (print a) (princ #\Space) (prin1 b)) 06:43:19 -!- ltriant [~ltriant@110-174-168-43.static.tpgi.com.au] has quit [Quit: Computer has gone to sleep] 06:45:31 you can get away with terpri and princ/1, but it's a fairly common thing to want a newline 06:45:53 so the question is how common is to have a space 06:45:58 stassats: well, you're right it's strange, since prin1 doesn't add spaces... 06:46:08 jdz [~jdz@193.206.22.97] has joined #lisp 06:46:36 maybe there was some printing idiom back in the day 06:46:47 I think that's the reason. 06:47:12 *pjb* is off to bed. 06:50:12 night and thanks pjb 06:53:14 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Ping timeout: 258 seconds] 06:58:18 -!- jsoft [~jsoft@unaffiliated/jsoft] has quit [Remote host closed the connection] 07:00:39 good morning 07:03:11 mvilleneuve: Good morning! 07:05:41 H4ns [43174196@gateway/web/freenode/ip.67.23.65.150] has joined #lisp 07:07:21 nha [~prefect@5-74.104-92.cust.bluewin.ch] has joined #lisp 07:10:05 -!- Deathaholic [~Mococa@187.59.135.54] has quit [Remote host closed the connection] 07:12:21 -!- H4ns [43174196@gateway/web/freenode/ip.67.23.65.150] has quit [Quit: Page closed] 07:15:06 H4ns [43174196@gateway/web/freenode/ip.67.23.65.150] has joined #lisp 07:16:42 -!- MoALTz [~no@host-92-18-23-195.as13285.net] has quit [Quit: Leaving] 07:16:59 Blkt [~user@89-96-199-46.ip13.fastwebnet.it] has joined #lisp 07:18:20 -!- Bike [~Glossina@71-214-96-97.ptld.qwest.net] has quit [Quit: Leaving.] 07:18:28 good morning everyone 07:18:31 lanthan [~ze@i5E878529.versanet.de] has joined #lisp 07:20:35 -!- insomniaSalt [~milan@unaffiliated/iammilan] has quit [Ping timeout: 260 seconds] 07:21:53 insomniaSalt [~milan@port-92-204-94-41.dynamic.qsc.de] has joined #lisp 07:21:53 -!- insomniaSalt [~milan@port-92-204-94-41.dynamic.qsc.de] has quit [Changing host] 07:21:53 insomniaSalt [~milan@unaffiliated/iammilan] has joined #lisp 07:28:41 Amyn [~abennama@64.208.49.21] has joined #lisp 07:30:28 alvis [~alvis@tx-71-2-123-220.dhcp.embarqhsd.net] has joined #lisp 07:30:55 -!- neoesque [~neoesque@210.59.147.232] has quit [Ping timeout: 248 seconds] 07:31:38 topo [~topo@f053045025.adsl.alicedsl.de] has joined #lisp 07:33:08 varjag [~eugene@122.62-97-226.bkkb.no] has joined #lisp 07:33:26 -!- frozencemetery [~frozencem@CMU-786527.WV.CC.CMU.EDU] has quit [Quit: Leaving.] 07:34:08 frozencemetery [~frozencem@CMU-786527.WV.CC.CMU.EDU] has joined #lisp 07:34:22 -!- bege [~bege@S0106001d7e5132b0.ed.shawcable.net] has quit [Quit: leaving] 07:37:00 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:37:58 Beetny [~Beetny@ppp118-208-47-130.lns20.bne1.internode.on.net] has joined #lisp 07:38:12 mcsontos [mcsontos@nat/redhat/x-xoitlxbbrxtitmwb] has joined #lisp 07:45:26 -!- _danb_ [~user@124-149-162-79.dyn.iinet.net.au] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 07:50:46 madnificent [~madnifice@83.101.62.132] has joined #lisp 07:52:56 -!- oconnore [~Eric@c-66-31-125-56.hsd1.ma.comcast.net] has quit [Quit: Leaving.] 07:53:45 -!- DaDaDosPrompt [~DaDaDosPr@184.99.29.100] has quit [Quit: DaDaDosPrompt] 07:56:24 setmeaway2 [setmeaway3@119.201.52.182] has joined #lisp 07:56:33 -!- setmeaway [~setmeaway@119.201.52.182] has quit [Read error: Connection reset by peer] 08:02:10 yakov [~yakov@77.72.120.66] has joined #lisp 08:08:29 -!- topo [~topo@f053045025.adsl.alicedsl.de] has quit [Quit: topo] 08:12:09 topo [~topo@f053045025.adsl.alicedsl.de] has joined #lisp 08:12:15 -!- gravicappa [~gravicapp@ppp91-77-166-125.pppoe.mtu-net.ru] has quit [Ping timeout: 255 seconds] 08:17:09 -!- MeanWeen [~KAPITAL@cpe-174-099-078-179.nc.res.rr.com] has quit [Ping timeout: 258 seconds] 08:23:11 ebw [~user@krlh-5f7276f7.pool.mediaWays.net] has joined #lisp 08:23:26 -!- ebw [~user@krlh-5f7276f7.pool.mediaWays.net] has left #lisp 08:23:34 ebw [~user@krlh-5f7276f7.pool.mediaWays.net] has joined #lisp 08:27:24 gensym [~user@dslb-088-071-149-049.pools.arcor-ip.net] has joined #lisp 08:28:45 hagish [~hagish@89.204.153.97] has joined #lisp 08:29:01 neoesque [~neoesque@210.59.147.232] has joined #lisp 08:30:53 -!- nha [~prefect@5-74.104-92.cust.bluewin.ch] has quit [Ping timeout: 276 seconds] 08:31:23 -!- wolfpython [~wolf@112.3.255.19] has quit [Read error: Operation timed out] 08:32:53 -!- H4ns [43174196@gateway/web/freenode/ip.67.23.65.150] has quit [Quit: Page closed] 08:33:22 jtza8 [~jtza8@wbs-41-208-219-19.wbs.co.za] has joined #lisp 08:34:20 H4ns [431741ca@gateway/web/freenode/ip.67.23.65.202] has joined #lisp 08:34:21 -!- gaidal [~gaidal@59.41.113.213] has quit [Read error: Connection reset by peer] 08:35:01 gaidal [~gaidal@59.41.113.213] has joined #lisp 08:37:38 louis_ [~louis@cm218-253-158-90.hkcable.com.hk] has joined #lisp 08:39:09 Xach: thanks for cl tips! 08:39:11 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #lisp 08:39:26 -!- gensym` [~user@95.156.194.105] has quit [Remote host closed the connection] 08:41:05 -!- Blkt [~user@89-96-199-46.ip13.fastwebnet.it] has quit [Read error: Connection reset by peer] 08:42:18 -!- louis_ [~louis@cm218-253-158-90.hkcable.com.hk] has quit [Quit: ] 08:43:11 Hmm, C-c C-w c and C-c < don't list top level calls to the function in question. How can I get these with slime in emacs? 08:43:23 gravicappa [~gravicapp@ppp91-77-166-182.pppoe.mtu-net.ru] has joined #lisp 08:46:12 louis_ [~louis@cm218-253-158-90.hkcable.com.hk] has joined #lisp 08:47:45 that's not a slime problem 08:49:11 Blkt [~user@89-96-199-46.ip13.fastwebnet.it] has joined #lisp 08:49:11 stassats: so i have to grep for these? 08:49:29 just don't call functions at the top-level 08:50:20 I have been imprecise. Actually its about macros. 08:50:41 And I'm examining existing code, which I didn't write. 08:51:21 Sorry: ,which I have not written. (thats better?) 08:52:07 that sounds like "which doesn't exist" 08:52:34 Oh. 08:52:44 Its clx. 08:52:57 So it exists. 08:53:28 Okay, is there a way to list all top level macro-/function-calls? 08:53:37 kiuma [~kiuma@85-18-55-37.ip.fastwebnet.it] has joined #lisp 08:54:28 no 08:55:35 that's sad, so grep. 08:55:45 M-x rgrep 08:55:52 the toplevel is hopeless 08:58:53 stassats: thanks 09:01:45 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 09:05:01 nha [~prefect@imamac13.epfl.ch] has joined #lisp 09:08:51 the topless is hopelevel. 09:11:06 -!- jlaire [~jlaire@80-248-244-31.cust.suomicom.fi] has quit [Ping timeout: 244 seconds] 09:12:35 ZabaQ [~john.conn@135.114-84-212.staticip.namesco.net] has joined #lisp 09:13:27 -!- louis_ [~louis@cm218-253-158-90.hkcable.com.hk] has quit [Ping timeout: 255 seconds] 09:13:51 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Ping timeout: 248 seconds] 09:15:57 jlaire [~jlaire@80-248-244-31.cust.suomicom.fi] has joined #lisp 09:16:58 there is no use-value on a division by zero? 09:17:33 -!- kjellkt [~kkgt@223.81-167-109.customer.lyse.net] has quit [Ping timeout: 260 seconds] 09:17:45 kjellkt [~kkgt@223.81-167-109.customer.lyse.net] has joined #lisp 09:19:24 why would there be? 09:21:33 -!- frozencemetery [~frozencem@CMU-786527.WV.CC.CMU.EDU] has quit [Quit: Leaving.] 09:28:59 stassats, so you can recover somehow 09:29:27 just don't divide by zero in the first place 09:29:52 Tasser: i'm guessing that such a restart would be too expensive 09:30:51 in case you still want to, you can always make your own restart, which does what you really want 09:32:42 -!- ramkrsna [ramkrsna@unaffiliated/ramkrsna] has quit [Ping timeout: 258 seconds] 09:34:00 -!- homie` [~levgue@xdsl-78-35-175-181.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 09:34:08 -!- wbooze` [~levgue@xdsl-78-35-175-181.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 09:35:00 MrMc [~user@brln-4db9e3b2.pool.mediaWays.net] has joined #lisp 09:35:46 Hello Lisper 09:36:08 ^*Lispers 09:36:59 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 252 seconds] 09:38:35 -!- CrEddy [~roisterin@wrongplanet/CrazyEddy] has quit [Read error: Operation timed out] 09:38:56 homie [~levgue@xdsl-78-35-175-181.netcologne.de] has joined #lisp 09:39:23 wbooze [~levgue@xdsl-78-35-175-181.netcologne.de] has joined #lisp 09:39:46 -!- replore_ [~replore@203.152.213.161.static.zoot.jp] has quit [Remote host closed the connection] 09:40:00 -!- gravicappa [~gravicapp@ppp91-77-166-182.pppoe.mtu-net.ru] has quit [Ping timeout: 255 seconds] 09:40:02 I am trying to install mcclim-gtkcairo with quicklisp on Openbsd and have an error to the effect that cffi cant find libcairo.so can I tweek this somewhere 09:40:21 akovalen` [~user@95.72.97.222] has joined #lisp 09:42:06 -!- cesarbp [~cbolano@189.247.100.41] has quit [Ping timeout: 244 seconds] 09:42:07 -!- akovalenko [~user@95.73.220.72] has quit [Ping timeout: 248 seconds] 09:45:59 MrMc: is libcairo.so in your system shared library path or did you set up LD_LIBRARY_PATH so that it can be found? 09:49:19 ramkrsna [ramkrsna@unaffiliated/ramkrsna] has joined #lisp 09:52:21 Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has joined #lisp 09:55:23 CrEddy [~scuttock@wrongplanet/CrazyEddy] has joined #lisp 09:55:33 misterncw [~misterncw@82.71.241.25] has joined #lisp 09:58:46 H4ns:libcairo is in /usr/local/lib/libcairo.so.11.1 do i need to set up LD_LIBRARY_PATH in this case? 09:59:25 -!- neoesque [~neoesque@210.59.147.232] has quit [Quit: Bye!] 09:59:25 -!- Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has left #lisp 09:59:35 MrMc: i'm not an openbsd expert, but i'd give that a try. also, is there a symlink to libcairo.so? 09:59:43 francogrex [franco@grex.cyberspace.org] has joined #lisp 10:00:15 Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has joined #lisp 10:00:17 mishoo_ [~mishoo@79.112.115.118] has joined #lisp 10:00:27 MrMc: i'd first verify that a symlink exists and then try setting LD_LIBRARY_PATH to /usr/local/lib 10:00:29 Cannot use #<"ITERATE" package> from #<"COMMON-LISP-USER" package>, because ITERATE:WHILE and WHILE will cause ... I am getting this error although iterate asd is the first thing loaded when I start my lisp... 10:00:38 -!- mishoo__ [~mishoo@79.112.115.118] has quit [Remote host closed the connection] 10:01:13 francogrex: common-lisp-user commonly contains non-standard packages. create a package on your own instead. 10:02:02 -!- misterncw [~misterncw@82.71.241.25] has quit [] 10:02:07 francogrex: perhaps something in your .sbclrc? Or whatever initialization file you use. 10:02:43 francogrex: cl-user uses the package common-lisp 10:02:56 it's odd though I have just the cl package there and a while macro doesn't exist 10:02:58 gryAway [user@freenode/staff/gry] has joined #lisp 10:03:16 no, this is the while symbol used by loop 10:03:18 flip214: maybe the init file, I'll try removing those 10:04:17 H4ns: I will create symlink and export LD_LIBRARY_PATH 10:04:32 MrMc: change one thing at a time 10:07:03 -!- Phoodus [~foo@68.107.217.139] has quit [Ping timeout: 245 seconds] 10:08:50 -!- Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has left #lisp 10:08:50 -!- gry [user@freenode/staff/gry] has quit [Quit: ZNC - http://znc.sourceforge.net] 10:09:13 Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has joined #lisp 10:09:17 H4ns: I saw that there are errors in the swank buffer 10:09:26 /usr/local/bin/sbcl:/usr/local/lib/libcairo.so.11.1: undefined symbol 'pthread_mutexattr_destroy' 10:09:53 -!- Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has left #lisp 10:10:31 MrMc: did you build cairo on that machine? 10:11:26 flip214: totally right, the init file contained some log forgotten code 10:11:33 long 10:11:45 with loop while in it... 10:12:00 well, it works for me ... so there had to be something like this, right? 10:12:16 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 10:12:34 H4ns:I installed the package from distro 10:14:02 yes, it's true, ... anyway I'll just leave it like that. Nowadays I use iterate very infrequently, not worthwhile messing with my init file, when this shows up I "manually" resolve the conflict 10:15:04 MrMc: i'd try to find out why the dependencies are not loaded automatically. 'ldd' shows you the deps for a shared library. 10:15:18 MrMc: you can also try loading the dependencies explicitly. 10:20:48 H4ns:ldd shows all dependencies are installed how do i load the depedencies? with ld or in CFFI 10:21:02 MrMc: with cffi 10:21:32 mstevens [~mstevens@fsf/member/pdpc.active.mstevens] has joined #lisp 10:22:19 zardoz8 [~redmundia@84.122.73.141.dyn.user.ono.com] has joined #lisp 10:26:35 I don't know if anyone can help me, but whenever a symbol starts with <, I have a program crash whenever I try to parse that string 10:26:38 Can anyone tell me why? 10:27:13 "crash" in what way? do you get an error message? 10:27:14 pitlimit: use paste.lisp.org to post example code reproducing the problem and the complete error message 10:27:27 ok 10:28:40 -!- gryAway is now known as gry 10:29:37 Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has joined #lisp 10:32:32 I cannot seem to patch it out 10:33:02 huh? patch it? 10:33:18 ... !c is valid but not >c .... Only >c is getting the error "value T is not of the expected type LIST" 10:33:35 pitlimit: you need to supply us with more information. 10:33:58 what function for parsing you are using? 10:34:21 I have my own... It calls only (assoc key alist) 10:34:31 The error must be happening at assoc 10:34:41 H4ns:I had to load libpthread with cffi and mcclim-gtkcairo compiled thanks 10:34:43 pitlimit paste relevant code to paste.lisp.org 10:34:53 MrMc: enjoy! 10:35:11 Ugh I'll try - everything is dependent on something else 10:35:33 pitlimit: you need to isolate the problem first anyway 10:35:46 and when you do chances are you'll figure out what's the problem yourself 10:36:03 pitlimit: >c is a completely fine symbol name, so you are probably looking at the wrong aspect anyway. 10:36:29 pitlimit: but if you want help here, you need to at least paste the complete error message. "crash" is not an error description. 10:38:04 wolfpython [~wolf@112.3.255.86] has joined #lisp 10:38:43 -!- zardoz8 [~redmundia@84.122.73.141.dyn.user.ono.com] has quit [Quit: Chateando desde http://webchat.redmundial.org (EOF)] 10:39:29 zardoz8 [~redmundia@84.122.73.141.dyn.user.ono.com] has joined #lisp 10:39:35 oiiii [~oiiii@82.71.241.25] has joined #lisp 10:39:45 OK - I've done my best to isolate the code 10:39:47 http://paste.lisp.org/display/125039#1 10:39:56 I annotated the error message 10:40:01 drdo` [~drdo@62.169.125.27.rev.optimus.pt] has joined #lisp 10:40:14 I should warn you that it's ugly 10:40:21 I'm just in get it to work first mode 10:40:23 -!- killerboy [~mateusz@users69.kollegienet.dk] has quit [Ping timeout: 245 seconds] 10:41:07 -!- wolfpython [~wolf@112.3.255.86] has quit [Max SendQ exceeded] 10:41:19 -!- drdo [~drdo@62.169.118.181.rev.optimus.pt] has quit [Ping timeout: 258 seconds] 10:41:41 -!- Euthy [~euthy@unaffiliated/euthydemus] has quit [Quit: leaving] 10:42:15 pitlimit: i'd suspect that bound_vars is not what you expect it to be 10:42:32 H4ns: it's a list of lists 10:42:35 pitlimit: my guess is that you are passing t instead of the alist 10:42:42 pitlimit: that's what you think :) 10:42:47 juniorroy [~juniorroy@212.36.228.103] has joined #lisp 10:42:55 should i print it to find out? 10:43:13 pitlimit: http://paste.lisp.org/+2OHB/2 10:43:35 pitlimit: don't do that, no! 10:43:50 pitlimit: printing stuff for debugging can destroy your computer. 10:44:15 huh 10:44:25 that is the very first tgime i have ever heard that 10:44:27 is that a lisp thing 10:44:47 pitlimit: i'm kidding. why do you ask whether you should print it to find out? 10:44:48 no, don't mind that 10:45:11 pitlimit: you can also try (trace test_fn) 10:46:07 well. 10:46:11 It prints as T 10:46:15 wolfpython [~wolf@112.3.255.19] has joined #lisp 10:46:20 what in the world 10:46:26 pitlimit: it prints as t because it is t 10:46:56 -!- MrMc [~user@brln-4db9e3b2.pool.mediaWays.net] has quit [Remote host closed the connection] 10:47:44 ugh 24 hours working on this 10:49:47 pitlimit: use a stepper an go step by step to really isolate the problem. What you gave as code is not sufficient (not reproducible by us) 10:50:20 best would be a code and sample data to test it on 10:51:50 t is never atomic ? 10:51:56 err never list 10:51:58 while nil is 10:52:19 Joreji [~thomas@vpn-ho1.unidsl.de] has joined #lisp 10:52:27 hi fe[nl]ix 10:53:13 whoops: (type-of t) 10:53:56 -!- gko [~gko@118-231-44-162.adsl.fetnet.net] has quit [Ping timeout: 252 seconds] 10:55:58 wbooze: ^^ 10:56:20 boolean 10:57:00 -!- wolfpython [~wolf@112.3.255.19] has quit [Read error: Operation timed out] 10:59:08 you know... you've got to love it when it's the same exact bug you fixed two hours ago 10:59:16 when you're like i know i've seen that error message 10:59:21 i spent two hours on it last time=p 10:59:46 xharkonnen [~charles@host86-141-143-76.range86-141.btcentralplus.com] has joined #lisp 10:59:52 Joreji_ [~thomas@vpn-ei1.unidsl.de] has joined #lisp 11:00:10 hello. I'm doing something shaddy, can someone recommend a better way? I have a generic function MOVE that can move various objects (windows, cursor etc). and to be able to do (move cursor x y) I did this: (defclass cursor (movable-object) ()) (defconstant cursor (make-instance 'cursor)) . the problem is if I reload that file sbcl complains that I'm redefining a constant. what would be a better way of handling this? 11:00:58 use defparameter instead 11:02:09 so no way to use constant for this? I'd prefer typing cursor over *cursor* 11:03:00 zardoz8: you can use cursor as name for a variable defined with defparameter, too. not that i'd recommend it. 11:03:04 the whole reason I created that class btw is so I can create generic functions specific to cursor 11:03:24 -!- francogrex [franco@grex.cyberspace.org] has quit [Quit: ERC Version 5.2 (IRC client for Emacs)] 11:03:27 H4ns yeah I know 11:04:15 -!- zipace [~hi@unaffiliated/zipace] has quit [Ping timeout: 244 seconds] 11:04:23 there's a way to make it a constant, but making something which can possibly change in the future to be a constant isn't very good 11:05:07 there's no reason for it to change, it should be assigned just once. i was hoping there's a defvar equivalent of defconstant 11:05:45 zardoz8: look at alexandria:define-constant 11:05:54 that's what you want 11:05:57 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Quit: Leaving...] 11:06:21 well, a cursor is not a constant. after all, it seems to be moveable, so it changes. 11:06:28 if at all, it is a global variable. 11:06:53 cursor attributes change, but the reference to cursor shouldn't change 11:07:29 H4ns is right ... that's still no constant. 11:07:30 zardoz8: that does not make the cursor object into a constant. it is a singleton, in java parlance. 11:07:46 yeah i suppose it's a singleton 11:08:02 zardoz8: and even the singleton might not be correct ... after all, there might be multiple keyboards and mice ) 11:08:14 zardoz8: use defvar, get on with it. 11:08:41 zardoz8: and name it *cursor*, as it is a global variable. 11:09:01 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 11:09:30 ok. just curiosu are there any problems I could have with alexandria:define-constant recommended earlier 11:09:33 -!- mstevens [~mstevens@fsf/member/pdpc.active.mstevens] has quit [Quit: werk] 11:10:12 zardoz8: other than that you're not properly expressing your intentions, no 11:10:36 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 11:11:48 calling (alexandria:define-constant cursor ..) twice complains just like defconstant. I'll use defvar 11:12:43 you should've looked at it, not used it 11:12:43 zardoz8: it only complains when you're defining the constant twice to different objects, which is what (make-instance ..) really does. 11:12:56 topeak [~topeak@118.186.129.148] has joined #lisp 11:13:05 zardoz8: (create two different objects, that is) 11:13:12 yes 11:13:23 so that you get an insight, (defconstant cursor (if (boundp 'cursor) cursor (make-instance 'cursor))) 11:13:49 stassats would you prefer that over (defvar *cursor* .. ) ? 11:13:58 no, of course 11:18:11 zardoz8: (define-constant) has a :test argument, you need to use that 11:18:23 for non-atomic things 11:18:44 how do you test a closs object? 11:19:09 drdo`` [~drdo@62.169.114.55.rev.optimus.pt] has joined #lisp 11:19:28 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Quit: Leaving...] 11:19:37 does the and logical predicate take more than two arguments? 11:19:46 I know or does 11:20:00 don't you have CLHS? 11:20:53 -!- drdo` [~drdo@62.169.125.27.rev.optimus.pt] has quit [Ping timeout: 252 seconds] 11:20:57 and AND is not a predicate 11:21:12 :) 11:21:29 -!- Harag [~phil@dsl-241-71-10.telkomadsl.co.za] has quit [Ping timeout: 252 seconds] 11:21:42 stassats: with mop - get a list of slots, ask all slots for equality? ;) 11:22:17 sabalaba [~sabalaba_@c-98-250-107-145.hsd1.mi.comcast.net] has joined #lisp 11:22:42 (class-slots), then #'equalp or whatever on each .... not nice, but it works 11:23:01 Kajtek [~nope@nat4-230.ghnet.pl] has joined #lisp 11:23:49 flip214: it does not work at all for this use case 11:24:10 flip214: what he wanted is a constant pointer in c++ parlance, not a pointer to a constant 11:26:03 H4ns: I know that it's not what he wanted in this case ... I just answered stassats question how to compare clos objects 11:26:23 that was a rhetorical question 11:27:16 a good question might be whether it is possible to define a global variable that can't be re-bound 11:28:33 H4ns: how about defining a setf expander for it that fails? 11:28:38 -!- spradnyesh [~pradyus@nat/yahoo/x-rdowugnfgjnfoliy] has left #lisp 11:28:52 setf doesn't bind, and LET doesn't use SETF 11:28:53 flip214: that does not prevent re-binding the variable 11:29:30 via (let), you mean??? 11:29:33 hmmm 11:30:15 including let 11:30:21 perhaps a symbol macro that is invalid in a let? 11:30:38 symbol macros can be shadowed 11:30:50 or with implementation-specific knowledge, to see where it was used - and abort if in a let 11:31:07 well, i guess there is no portable way to do that. so there, something that common lisp can't do. /o\ 11:31:19 stassats: yes, but once we can fix a symbol to a value, the same works for macros, right? 11:31:45 i don't understand you 11:33:04 I meant: as soon as there's some way to prevent a global definition from shadowed, the same mechanism would work for functions, macros, etc, too, right? 11:33:34 how macros and functions got into this picture? 11:38:25 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 11:40:52 replore [~replore@ntkngw304073.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 11:41:30 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Client Quit] 11:41:44 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 11:42:46 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Remote host closed the connection] 11:46:02 fluffycms [~cms@static-50-43-53-7.bvtn.or.frontiernet.net] has joined #lisp 11:46:20 -!- H4ns [431741ca@gateway/web/freenode/ip.67.23.65.202] has quit [Ping timeout: 252 seconds] 11:52:16 Jasko3 [~tjasko@209.74.44.225] has joined #lisp 11:55:33 -!- Jasko [~tjasko@c-174-59-204-245.hsd1.pa.comcast.net] has quit [Ping timeout: 252 seconds] 11:57:13 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Ping timeout: 256 seconds] 11:57:25 -!- Beetny [~Beetny@ppp118-208-47-130.lns20.bne1.internode.on.net] has quit [Ping timeout: 252 seconds] 11:58:55 -!- ramkrsna [ramkrsna@unaffiliated/ramkrsna] has quit [Ping timeout: 256 seconds] 12:01:53 -!- chiguire [~chiguire@gentoo/developer/chiguire] has quit [Read error: Connection reset by peer] 12:02:55 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 12:03:46 Phoodus [~foo@68.107.217.139] has joined #lisp 12:08:10 treegr [~treegr@27-33-30-33.static.tpgi.com.au] has joined #lisp 12:11:55 ramkrsna [ramkrsna@unaffiliated/ramkrsna] has joined #lisp 12:15:37 -!- Kajtek [~nope@nat4-230.ghnet.pl] has quit [Quit: Leaving.] 12:16:35 how portable will these two be in detecting various windows and *nix systems on various implementations? #+win32 #+unix 12:17:58 MoALTz [~no@host-92-18-23-195.as13285.net] has joined #lisp 12:18:09 prolly not very 12:18:22 zardoz8: use TRIVIAL-FEATURES portability layer 12:18:39 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 12:19:10 if you mean capturing anything more than the highest level generality of which platform, i.e. dos vs. unix 12:20:05 -!- akovalen` is now known as akovalenko 12:20:45 Kajtek [~nope@nat4-230.ghnet.pl] has joined #lisp 12:20:52 > xp for windows, osx freebsd linux etc unix. I'll take a look at trivial-features, sounds like it could do what I want 12:21:19 ISF [~ivan@201.82.136.131] has joined #lisp 12:21:27 -!- homie [~levgue@xdsl-78-35-175-181.netcologne.de] has quit [Read error: Connection reset by peer] 12:21:27 -!- wbooze [~levgue@xdsl-78-35-175-181.netcologne.de] has quit [Remote host closed the connection] 12:21:36 -!- Kajtek [~nope@nat4-230.ghnet.pl] has quit [Client Quit] 12:21:40 zardoz8: btw, if you're using CFFI for portable foreign function calls, note that CFFI (1) already depends on trivial-features, and (2) adds a bunch of *features* itself 12:22:26 I see thanks, yes I need this for CFFI 12:22:28 dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has joined #lisp 12:22:51 zardoz8: just look at your *features* _after_ you loaded CFFI 12:23:55 zardoz8: why is it needed for cffi? 12:24:39 zardoz8: I think cffi has provisions for e.g. loading different library names on different platforms. is it for something like that? 12:24:55 e.g. I see on "Windows(wine)"/amd64: CFFI-FEATURES:X86-64 CFFI-FEATURES:WINDOWS (both added by CFFI), and :windows (added by trivial-features) 12:25:44 Xach: what if you want to kill a process.. with TerminateProcess (from kernel32), or with kill() 12:26:03 akovalenko: killing never solves anything. 12:26:13 btw, any system that agrees to load "kernel32.dll" has a great chance to be Windows.. 12:26:53 -!- ISF [~ivan@201.82.136.131] has quit [Read error: Operation timed out] 12:27:21 lars__ [~lars@188.125.28.17] has joined #lisp 12:27:46 hello 12:28:11 akovalenko: or kernel64.dll on 64 bit windows, presumably? 12:28:28 just starting with lisp, what implementation do you recommend? 12:28:40 clisp or sbcl 12:28:44 lars__: sbcl 12:28:54 lars__: What OS? 12:29:26 SBCL is the greatest and best implementation. If your operating system does not work well with SBCL, change operating systems! 12:29:49 or better, write a large check to get it ported 12:30:22 OS X 12:30:35 does sbcl work well with it? 12:30:35 SBCL is pretty great on OS X. 12:30:40 *JuanDaugherty* disagrees, killing can often be an effective final solution. 12:31:35 gotta have gc, generalized 12:32:21 -!- Joreji_ [~thomas@vpn-ei1.unidsl.de] has quit [Ping timeout: 255 seconds] 12:32:56 Xach: sleeping (usleeping, nanosleeping and Sleeping) would make a good example, and I'm sure it solves something (let's forget it's already solved in CL :) 12:33:32 Xach: anyway, I appreciate any approach to portability that doesn't try to emulate unix on windows, or vice versa 12:33:40 lars__: I'd probably recommend CCL for OSX beginer 12:33:42 *beginner 12:35:05 *akovalenko* just tried some kilosleeping.. way useful :) 12:35:07 I suscribed to clisp-list@lists.sourceforge.net about 2 weeks ago, but no messages so far except for the one this morning. Where is the action taking place? 12:35:25 dbushenko [~dim@86.57.253.61] has joined #lisp 12:35:31 Xach, hi 12:35:46 Xach, is linj supprted and developed any more? 12:36:46 Xach: my sbcl here in arch comes with no readline support by default, that drove me away from it at first look, but now I see everyone around uses sbcl 12:36:58 nanoc: clisp-devel@lists.sourceforge.net 12:37:09 -!- ramkrsna [ramkrsna@unaffiliated/ramkrsna] has quit [Remote host closed the connection] 12:37:19 stassats: but there's no traffic! 12:37:29 nanoc: you're using it wrong, you should use slime 12:37:34 rsynnott: no, windows' 32 v. 64 naming conventions are weirder than that. Basically, "32" means "native word size" for most things most of the time, and "64" (like in Syswow64) means "related to 32-bit compatibility layer" 12:37:38 there is 12:37:58 akovalenko: ah. ugh 12:38:22 crap!, then I must have some wild filter around 12:38:44 rsynnott: fugliness caused by keeping compatibility with traditional windows, I think 12:38:46 you did say that you're subscribed to a different list 12:39:07 bgs100 [~ian@unaffiliated/bgs100] has joined #lisp 12:39:30 stassats: ah... 12:39:34 I seee 12:40:38 H4ns [41173d62@gateway/web/freenode/ip.65.23.61.98] has joined #lisp 12:42:23 clisp-devel says: "This mailing list is for the developers of the CLISP implementation of ANSI Common Lisp" 12:42:44 nanoc: if you don't want to use something supportive like slime, you can at least get readline-like features with linedit. 12:42:51 hi Blkt 12:42:57 nanoc: see www.xach.com/lisp/linedit-screencast.gi 12:42:58 err 12:43:04 nanoc: www.xach.com/lisp/linedit-screencast.gif is the thing 12:43:19 fe[nl]ix: o/ 12:43:40 I'm in the path to use slime, but I've been a 15 years vim supporter, I need time to do the switch 12:44:07 dbushenko: not by anyone i know of 12:44:15 the number of years doesn't really matter 12:44:32 -!- bzzbzz [~franco@modemcable240.34-83-70.mc.videotron.ca] has quit [Quit: leaving] 12:44:36 Xach, :-( looks like this is a great project!.. 12:44:59 dbushenko: i thought so too. maybe YOU should take it over! 12:45:25 :-) may be. But I have too little experience with CL 12:46:34 Xach: on qloading linedit: 12:46:36 I got 12:46:38 fatal error: grovel/common.h: No such file or directory 12:46:41 nanoc there are several vim emulators by the way, might want to check them out 12:46:45 is linj the only lisp which compiles to java _source_ code? 12:46:46 for emacs 12:46:54 zardoz8: I'm using viper-mode 12:47:10 Xach: when you update package sources behind quicklisp repository, wouldn't it be great to be able to override revision date (or maybe even VCS tree URL) *for just the upcoming update* ? 12:47:11 but I still have stuff to learn anyway 12:47:14 vimpulse is better from what I heard, and there's a new one too 12:47:22 I've* 12:47:27 straight emacs is even better 12:47:34 nyef [~nyef@c-174-63-105-188.hsd1.ma.comcast.net] has joined #lisp 12:47:40 nanoc: weird 12:47:53 akovalenko: yes 12:48:14 Hello all. 12:48:23 nyef: hi! 12:48:28 nyef: hi! 12:48:31 nanoc: do you have an old cffi installed somewhere outside of quicklisp? 12:48:35 long time no irc 12:48:47 Mmm. Several months, I believe. 12:48:57 akovalenko: i'd like to have a system to make it easy to do that, but it takes time to write. 12:49:39 So, what's going on? 12:50:29 nikodemus raised a lot of dough to improve sbcl threading 12:50:33 wbooze [~levgue@xdsl-78-35-175-181.netcologne.de] has joined #lisp 12:50:37 Mmm. I saw that. 12:50:37 Xach: or maybe it should be *know bug database* (avoid using revisions in date1..date2, where date2 may temporary be infinite) 12:50:44 homie [~levgue@xdsl-78-35-175-181.netcologne.de] has joined #lisp 12:50:51 Good for him. 12:51:00 oh, well, nothing interesting happened that only happened on irc 12:51:02 nyef: good for sbcl! 12:51:04 Xach: it's probable, I did my first steps on lisp by trying to install things from AUR, until I noticed it wasn't cool, checking... 12:51:05 except for a porn troll a few days ago 12:51:10 nyef: did you think about raising money similarly for an ARM port? 12:51:11 H4ns: That too. 12:51:17 nanoc: how about using slimv? 12:51:20 nanoc: (asdf:system-source-directory "cffi") -- what does it return? 12:51:31 stassats: I did, but not too seriously. And now I don't really have the time. 12:51:58 but you could buy time with money 12:52:34 Sure, but right now I'm doing it the other way, buying money with time. 12:52:39 moogle [~moogle@119.64.49.14] has joined #lisp 12:52:42 Hopefully, at least. 12:52:42 heh 12:52:43 -!- drdo`` is now known as drdo 12:52:53 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 12:53:14 Xach: #P"/usr/share/common-lisp/source/cffi/" -> I'm removing it, and doing a ql install now 12:53:26 Snaffu [~Snaffu@oh-69-34-16-39.sta.embarqhsd.net] has joined #lisp 12:53:29 nanoc: phew 12:53:32 nanoc: (ql:use-only-quicklisp-systems) 12:53:41 ehh, i'm not sold on u-o-q-s. 12:53:48 nanoc: and don't remove things if they're package-managed 12:54:05 purge them! 12:54:48 Xach: can u-o-q-s be worse than removing things in /usr/share? 12:54:51 it'd be cool for SBCL to run not just on linux-ARM, but on Android ARM 12:54:59 akovalenko: I don't know. 12:55:35 akovalenko: I'm removing the package 12:55:47 stassats: Yes, it would. And iOS targets would be nice as well, though unlikely to make it through to the app store. 12:56:25 Clozure CL on android-arm keeps crashing on me 12:56:37 and i'm too lazy to write a proper bug report 12:56:52 anyone working with RDF in CL, *not* using Allegro? 12:56:58 and too lazy to write more slime tips, too. 12:57:38 it's not the end of the day yet! 12:57:51 akovalenko: should I put that line on my ~/.sbclrc ? 12:58:50 paul0 [~paul0@200.146.125.207.dynamic.adsl.gvt.net.br] has joined #lisp 12:59:24 Xach: are you saving (format nil "You have ~D fl~@:P." 42) => "You have 42 flies." (format nil "You have ~D fl~@:P." 1) => "You have 1 fly." for later? 12:59:25 nanoc: as you wish (whenever something goes bad because of old packages in /usr/share, consider adding this line to avoid system-provided packages from the very start) 12:59:33 ooh, there's a CCL android port, now? 12:59:35 i can write half-tips too! 12:59:50 rsynnott: it is, though it's slightly bitrotted 12:59:57 stassats: I don't have any flies, so it didn't occur to me. I have only goats. :( 13:00:59 wbooze` [~levgue@xdsl-78-35-168-149.netcologne.de] has joined #lisp 13:01:07 homie` [~levgue@xdsl-78-35-168-149.netcologne.de] has joined #lisp 13:01:10 ... goats are probably tastier in curry, anyway. 13:01:22 heh 13:01:51 -!- wbooze` [~levgue@xdsl-78-35-168-149.netcologne.de] has quit [Read error: Connection reset by peer] 13:02:01 -!- homie` [~levgue@xdsl-78-35-168-149.netcologne.de] has quit [Remote host closed the connection] 13:02:07 -!- sabalaba [~sabalaba_@c-98-250-107-145.hsd1.mi.comcast.net] has quit [Ping timeout: 248 seconds] 13:02:10 *Xach* updates the tip, credits stassats 13:02:41 -!- homie [~levgue@xdsl-78-35-175-181.netcologne.de] has quit [Ping timeout: 252 seconds] 13:02:44 it's ok, i have many flies 13:03:00 -!- wbooze [~levgue@xdsl-78-35-175-181.netcologne.de] has quit [Ping timeout: 260 seconds] 13:03:15 -!- lars__ [~lars@188.125.28.17] has quit [Quit: Colloquy for iPhone - http://colloquy.mobi] 13:03:37 it's not so good for mouses 13:03:37 Xach: the link http://l1sp.org/cl/~P does not work for me 13:03:45 Next tip, abusing ~@:P for verb conjugation? 13:04:01 superflit_ [~superflit@71-208-207-196.hlrn.qwest.net] has joined #lisp 13:04:18 -!- superflit [~superflit@71-208-207-183.hlrn.qwest.net] has quit [Ping timeout: 255 seconds] 13:04:19 -!- superflit_ is now known as superflit 13:04:36 H4ns: will fix 13:05:25 (format nil "You have ~d ~:*~[mice~;mouse~:;mice~]" n) 13:05:40 homie [~levgue@xdsl-78-35-168-149.netcologne.de] has joined #lisp 13:06:01 wbooze [~levgue@xdsl-78-35-168-149.netcologne.de] has joined #lisp 13:06:04 ChibaPet [~mason@c-68-58-147-105.hsd1.in.comcast.net] has joined #lisp 13:06:28 thanks Xach and akovalenko , got readline-like support on sbcl now :) 13:06:42 Xach: you should put that gif in plain text too btw 13:06:54 for the slow typists 13:07:03 stassats: the fly cries.. the flies cry.. wouldn't "inverted P" be useful, too? :) 13:07:07 Now I'd like to have between-sessions history support 13:07:25 nanoc: time to switch to slime 13:07:34 my flies don't cry, the only fly 13:07:42 they 13:10:42 c_arenz [~arenz@p5B2CDEF6.dip.t-dialin.net] has joined #lisp 13:12:37 -!- X-Scale [email@89.180.171.216] has quit [Ping timeout: 240 seconds] 13:16:20 LiamH [~none@pdp8.nrl.navy.mil] has joined #lisp 13:18:53 Kenjin [~josesanto@193.136.206.189] has joined #lisp 13:19:01 -!- newcup [newcup@peruna.fi] has quit [Ping timeout: 240 seconds] 13:20:50 -!- Joreji [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 260 seconds] 13:21:48 akovalenko: emulate inverted P with (if (= 1 var) 2 1) ? 13:21:51 -!- c_arenz [~arenz@p5B2CDEF6.dip.t-dialin.net] has quit [Ping timeout: 248 seconds] 13:22:21 Ralith [~ralith@1555hostw130.starwoodbroadband.com] has joined #lisp 13:23:50 ramusara [~ramusara@220.156.210.236.user.e-catv.ne.jp] has joined #lisp 13:24:03 flip214: ~[ is enough (for English. In Russian, plural forms depend on (mod n 10) and (mod n 100), so the code like yours is needed sometimes) 13:24:52 akovalenko: yes, I've read about some of these things ... 13:25:00 -!- duomo [~duomo@cpe-69-204-169-245.nycap.res.rr.com] has quit [Quit: Leaving...] 13:25:26 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Quit: Kron awayyy!] 13:28:25 X-Scale [email@89-180-158-178.net.novis.pt] has joined #lisp 13:28:50 -!- X-Scale is now known as Guest81398 13:31:04 attila_lendvai [~attila_le@catv-80-98-25-142.catv.broadband.hu] has joined #lisp 13:31:04 -!- attila_lendvai [~attila_le@catv-80-98-25-142.catv.broadband.hu] has quit [Changing host] 13:31:04 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 13:31:20 -!- dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has quit [Quit: dnolen] 13:37:09 -!- lemoinem [~swoog@216.252.77.18] has quit [Ping timeout: 252 seconds] 13:43:38 -!- redline6561_nop is now known as redline6561 13:43:52 sogeking99 [~sogeking9@5ac58a4e.bb.sky.com] has joined #lisp 13:44:02 -!- mcsontos [mcsontos@nat/redhat/x-xoitlxbbrxtitmwb] has quit [Quit: Leaving] 13:44:08 Vivitron [~user@pool-108-7-56-243.bstnma.fios.verizon.net] has joined #lisp 13:45:18 hey guys, am i getting this code right? http://paste.lisp.org/display/125041 13:45:37 i have added comments saying what i think is happening. 13:45:44 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #lisp 13:46:10 does it work? 13:47:01 sogeking99: i don't like the way how make-cd uses positional arguments. it is repetitive and hard to extend 13:47:01 stassats: it probably does. Looks like a code from PCL copied verbatim. 13:47:32 sogeking99: better use keyword arguments and the &rest lambda list keyword 13:47:59 -!- nyef [~nyef@c-174-63-105-188.hsd1.ma.comcast.net] has quit [Ping timeout: 248 seconds] 13:48:24 yeah it is taught by PCL, written within the scope of what we are learning early on 13:48:37 i think we improve it as we go 13:49:40 gko [~gko@220-135-201-90.HINET-IP.hinet.net] has joined #lisp 13:51:23 -!- treegr [~treegr@27-33-30-33.static.tpgi.com.au] has quit [Quit: treegr] 13:52:21 do you think my understanding of it is ok? 13:53:49 -!- Ralith [~ralith@1555hostw130.starwoodbroadband.com] has quit [Ping timeout: 252 seconds] 13:54:19 -!- gko [~gko@220-135-201-90.HINET-IP.hinet.net] has quit [Ping timeout: 260 seconds] 13:54:20 sogeking99: where is the evidence of any understanding? did you refactor something? Most code is *copied* from PCL (of course it can be done with or without understanding, but we have no way to know). Really, I can't see anything that is not quoted from the book. 13:54:31 Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has joined #lisp 13:54:37 I could overlook something, then please point what have you changed and why. 13:54:46 gko [~gko@220-135-201-90.HINET-IP.hinet.net] has joined #lisp 13:55:13 sogeking99: What is understanding? 13:55:33 cyrillos_ [~cyrill@188.134.60.2] has joined #lisp 13:56:07 akovalenko, i added comments saying what i think the code is doing. which is what a friend said i should do, 'comment above each line explaining what it does' is what he said 13:56:18 nyef [~nyef@c-174-63-105-188.hsd1.ma.comcast.net] has joined #lisp 13:56:46 sogeking99: go ask your friend then 13:56:59 the code explains itself, no need for comments 13:57:25 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Ping timeout: 240 seconds] 13:57:25 sogeking99: Otherwise simply write an application server for an address management system and a gui in c for it. 13:57:45 sogeking99: If you managed that, you have enough understanding. 13:57:52 he doesn't use lisp 13:57:57 GUI in C? that's harsh 13:58:28 -!- cyrillos [~cyrill@188.134.62.2] has quit [Ping timeout: 256 seconds] 13:58:35 sogeking99: so you are trying to teach someone else lisp? 13:58:45 -!- Ralith [~ralith@173-10-121-193-BusName-Washington.hfc.comcastbusiness.net] has quit [Ping timeout: 255 seconds] 13:58:55 sogeking99: and you are asking us to teach you lisp so that you can teach him? just trying to clarify. 13:58:56 lightblau, herep? 13:59:05 It is for his understanding, the harsh contrast will give the right impression of the usefulness, strengths an weaknesses of lisp and C. 13:59:07 :) 13:59:23 pavelludiq [~pavelludi@83.222.166.206] has joined #lisp 13:59:45 I'm not seeing the value of this hatefest. Sogeking is trying to document something, and is asking if he's documented it accurately, to validate his understanding of the code. 13:59:49 this is my first programming language so i just wanted to know if i am understanding it right, or simply just copying off the book 13:59:51 attila_lendvai: lichteblau, rather 14:00:00 sogeking99: 1. make-cd: it *returns* a list and has no side effects. Your comment would be appropriate for something opposite. 14:00:19 H4ns, no i'm learning on my own. 14:00:20 ChibaPet: hate fest? 14:00:30 attila_lendvai: or if you want to translate it fully, then light blue 14:00:35 stassats: I thought his irc nick is missing the 'e', don't know why... I speak german :) 14:00:55 dlowe [dlowe@nat/google/x-hqpogjdjqampmorn] has joined #lisp 14:00:57 sogeking99: ok. i did not understand how that friend came into play. frankly, i'd recommend that you work through the book thoroughly. 14:00:58 H4ns, yes - people being unnecessarily harsh with him. 14:01:09 *attila_lendvai* just writes a mail to the cxml list 14:01:27 attila_lendvai: what's up with cxml? 14:01:55 sogeking99: dump-db: dolist is like for..in loop indeed. There is another inner loop here, requested controlled by a format string. 14:02:05 ChibaPet: Maybe you simply adress the people you mean and ask them, why they are doing this? 14:02:21 H4ns: I wanted to use it to parse something out of a http stream in a server code, but it's waiting for an eof. looks like from the code that it's not prepared for such usage... 14:03:01 thanks akovalenko. 14:03:24 H4ns: I'd expect cxml:parse to parse a document and return at the last close tag. (or at least have an &key option for that) 14:03:37 stassats: I have used slime tips several times already. thanks for starting it! 14:03:58 blackwolf [~blackwolf@ool-43568cfa.dyn.optonline.net] has joined #lisp 14:04:06 thanks for understanding ChibaPet, sorry if my question was phrased poorly. 14:04:27 someone should update http://www.cliki.net/SLIME%20Tips :) 14:04:36 what's the link? 14:04:49 -!- easyE [vWdS3hi7bQ@panix2.panix.com] has quit [Ping timeout: 252 seconds] 14:04:50 sogeking99: prompt-for-cd: "forces" rather than "allows" :) 14:04:56 attila_lendvai: http://slime-tips.tumblr.com/ 14:05:09 Xach: thanks 14:05:36 *Xach* was making a hunchentoot:acceptor instance and needed to see the full arglist 14:05:50 how are your fingers? 14:05:54 sogeking99: prompt-read, prompt-for-cd: they both *returns* something, and you don't describe it.. 14:06:02 -!- dbushenko [~dim@86.57.253.61] has quit [Quit: Ex-Chat] 14:06:28 stassats: ok 14:06:55 akovalenko, they return the value entered by the user in the prompt? 14:07:03 mstevens [~mstevens@fsf/member/pdpc.active.mstevens] has joined #lisp 14:09:00 sogeking99: something like that (your comments would be better if you put several minutes into each to get English right. I'm unqualified to give a good advice *here*). 14:09:19 -!- pavelludiq [~pavelludi@83.222.166.206] has quit [Ping timeout: 248 seconds] 14:10:02 -!- pitlimit [~pitlimit@unaffiliated/pitlimit] has quit [Quit: ChatZilla 0.9.87 [Firefox 6.0.2/20110905175240]] 14:10:20 sogeking99: load-db: in-memory db is *replaced* by file contents completely, they aren't *added* to it 14:11:19 oh yes, i can see that actually. :) 14:11:24 -!- sonnym [~sonny@rrcs-184-74-137-69.nys.biz.rr.com] has quit [Quit: Leaving.] 14:13:24 Is there some way to find what mime type was used for a POST parameter in hunchentoot? 14:15:38 -!- gienah [~mwright@ppp121-44-130-151.lns20.syd7.internode.on.net] has quit [Quit: leaving] 14:17:22 ikki [~ikki@201.155.92.12] has joined #lisp 14:18:45 -!- gkeith_lt [georgekeit@nat/google/x-oxrlqjbuxkagarea] has quit [Quit: Ex-Chat] 14:19:43 -!- peterhil [~peterhil@gw.maxisat.fi] has quit [Ping timeout: 260 seconds] 14:20:03 nyef: you can look at the request headers for the content-type 14:20:59 pavelludiq [~pavelludi@83.222.166.206] has joined #lisp 14:21:19 nyef: but that will normally give you multipart/form-data - there is no mime type associated with individual parameters 14:24:01 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 14:25:18 sogeking99: if you want some explaination about what some code does, instead of doing it yourself, you should write a lisp program to give you that explaination. Like I do here: http://groups.google.com/group/comp.lang.lisp/msg/5aa716f47c31c5d7?hl=en 14:26:12 peterhil [~peterhil@gw.maxisat.fi] has joined #lisp 14:27:42 H4ns: Ouch. And I know absolutely that there /is/ a mime type associated to each parameter on the client side. 14:28:05 nyef: what makes you sure about that? 14:28:20 nyef: is your client a web browser? 14:28:29 -!- lonstein [lonstein@ohno.mrbill.net] has quit [Ping timeout: 260 seconds] 14:28:38 No, my client is some bodged together proof-of-concept objective-c code. 14:29:03 nyef: how should the per-parameter mime-type be transmitted? there's only a single set of headers ... 14:29:10 nyef: ok, so maybe it is not sending the data as post parameters, but as multipart mime entity? 14:29:34 Quite possibly, but they /appear/ as post parameters on the server. 14:29:37 nyef: i'd have a look at (raw-post-data) to find out what the client actually sends. 14:29:49 lonstein [lonstein@ohno.mrbill.net] has joined #lisp 14:30:08 nyef: the http protocol for post parameters does not include a per-parameter mime type. 14:30:35 Hunh. 14:30:36 gkeith_lt [georgekeit@nat/google/x-pmdikjwqhvdkiisa] has joined #lisp 14:30:52 rmarianski [~rmariansk@mail.marianski.com] has joined #lisp 14:31:01 nyef: look at (raw-post-data) and if you can't make grips of that, paste it for us to look at 14:31:18 -!- moogle [~moogle@119.64.49.14] has left #lisp 14:31:20 pjb``, thanks i will check it out :) 14:32:10 No, RFC2388 says that each part may have a Content-Type header. 14:32:49 nyef: sure. but the parameters are transmitted together. 14:33:24 uh. 14:33:34 nyef: good to read the standard :) 14:33:36 Yeah. I have an NSMutableData with the headers and parameter bodies being appended to it. 14:33:40 Cloud__ [~cbolano@189.247.100.41] has joined #lisp 14:34:06 That NSMutableData then gets set as the request body before connecting to the server. 14:34:30 nyef: i think i need to refer you to the rcf2388.lisp source code that does the actual decoding of form parameters. i have only used post parameters that came in one of the multipart parts together. 14:34:47 -!- zardoz8 [~redmundia@84.122.73.141.dyn.user.ono.com] has quit [Quit: leaving.] 14:35:12 -!- sogeking99 [~sogeking9@5ac58a4e.bb.sky.com] has quit [Quit: Ex-Chat] 14:35:38 moogle [~moogle@119.64.49.14] has joined #lisp 14:35:46 -!- moogle [~moogle@119.64.49.14] has quit [Client Quit] 14:36:37 nyef: from looking at the source, it seems to be all there though. 14:36:42 mogs [~mogs@119.64.49.14] has joined #lisp 14:37:18 Ah! Found the file in question. 14:37:29 ... And it's a jdz special. Uh-oh. 14:37:41 nyef: have a look at hunchentoot:parse-rfc2388-form-data 14:38:10 nyef: i'd suspect that rfc2388 already returns the content type, but hunchentoot ignores it in said function. 14:38:39 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Ping timeout: 260 seconds] 14:39:54 nyef: unfortunately, hunchentoot stores the post parameters in an alist, so it is not easily possible to attach additional information to the parameter values. what you can do, though, is parse the body yourself (copy parse-rfc2388-form-data as template) 14:41:13 or rewrite rfc2388.lisp (or use rfc2388-binary) 14:41:26 righ 14:41:27 t 14:42:47 Hrm. Okay, so whatever I do, It's going to require some hacking if I really want to check mime types. 14:43:33 nyef: in order to program, you have to program :) 14:43:57 urandom__ [~user@p548A4547.dip.t-dialin.net] has joined #lisp 14:44:18 lemoinem [~swoog@205.233.81.131] has joined #lisp 14:44:33 you can always hire someone 14:44:36 True, but I was hoping that something so fundamental to web protocols would already be implemented, you know? 14:45:20 convert money into mime 14:45:30 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 14:45:37 ... anti-personnel mimes? 14:45:58 The library could be called "claymore" 14:46:13 ah, and it has "CL" in it, too, bonus. 14:46:26 realitygrill [~realitygr@adsl-76-226-120-136.dsl.sfldmi.sbcglobal.net] has joined #lisp 14:46:58 nyef: you could also try cl-mime if you don't like rfc2388 - i'd do that if i were you 14:46:58 Xach: bonus == "no one will want to call it cl-claymore" :) 14:47:13 gffa [~gffa@unaffiliated/gffa] has joined #lisp 14:47:23 nyef: cl-mime is rather basic, but it does work well for me. 14:48:30 Bike [~Glossina@69.166.35.233] has joined #lisp 14:49:22 oconnore [~Eric@c-66-31-125-56.hsd1.ma.comcast.net] has joined #lisp 14:50:10 ccorn [~ccorn@84-53-64-50.adsl.unet.nl] has joined #lisp 14:50:56 loke [~elias@bb115-66-85-121.singnet.com.sg] has joined #lisp 14:52:09 -!- topeak [~topeak@118.186.129.148] has quit [Quit: Leaving] 14:52:46 Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 14:52:46 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 14:53:26 I'd go with the rfc2388-binary for sure if the choice gets to rfc2388 14:53:48 Are there any operations that can portably be performed on an environment instance? Specifically, I'd like to check whether a symbol is bound in the local environment or not. If there is no portable way to do it, are there any non-portable ways? 14:54:27 -!- simplechat [~simplecha@unaffiliated/simplechat] has quit [Read error: Connection reset by peer] 14:55:38 no 14:55:48 -!- Guest81398 [email@89-180-158-178.net.novis.pt] has quit [Remote host closed the connection] 14:55:58 loke: for any symbol known in advance -- define-symbol-macro globally, so the symbol expands into something unique. Then try macroexpand-1 on it 14:56:06 X-Scale [email@sgi-ultra64.broker.freenet6.net] has joined #lisp 14:56:41 loke: what are you trying to do? 14:58:09 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Ping timeout: 258 seconds] 14:59:02 as for non-standard things: (macrolet ((env (&environment env) env)) (let ((x 10)) (sb-cltl2:variable-information 'x (env)))) => :LEXICAL, T, NIL 14:59:59 Okay, under the existing setup, if I wanted to write a binary attachment out to a file, I should just write the string out in latin-1? 15:00:41 (Seems most likely to do the right thing.) 15:00:45 -!- Kenjin [~josesanto@193.136.206.189] has quit [Quit: Computer has gone to sleep] 15:01:13 stassats: This wasn't part of actual code. It was merely something I was thinking about. Generally, my idea was to translate a programming language to Lisp that has the property that if a variable is accessed and it was previously given a value in global scope, the variable is global. Otherwise, it's declared as a local variable with lexical scope. In other words, if the variable is already bound in the local environment OR it's declared global, 15:01:13 the access should be transled to the plain symbol, otherwise it should be translated to a LET-form encapsulating the rest of the function. 15:01:30 Kenjin [~josesanto@193.136.206.189] has joined #lisp 15:01:34 blandest [~blandest@ip4-85-204-33-242.euroweb.ro] has joined #lisp 15:02:05 My question is basically if that is possible using standard CL. 15:02:06 -!- Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 15:02:08 that sounds like lisp 15:02:25 Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 15:02:55 stassats: It's a DSL that I designed actually, and it's implemented in Java. Its features is inspired by Lisp though. Lexical closures, dynamically typed, etc. 15:03:22 the if-statement acts like COND :-) 15:03:22 yes, the behaviour you described is exactly how LET works, so what's the problem? 15:03:22 loke: that's pretty much the way special and lexical variables work in common lisp 15:04:04 killerboy [~mateusz@users69.kollegienet.dk] has joined #lisp 15:04:09 stassats: I know. However, during the translation phase I need to choose whether to transform a variable access into a LET-form or not. 15:04:49 Amadiro [~Amadiro@1x-193-157-201-248.uio.no] has joined #lisp 15:04:54 Essentially, when the translator looks at the expression a=10, it can either result in (LET ((a 10)) ... , or it could be transalted to (setq a 10) 15:05:07 depending on whether a is already bound in the local scope 15:05:23 gensym` [~user@95.156.194.105] has joined #lisp 15:05:30 loke: So, maintain your own symbol table in the translator? 15:05:58 nyef: yeah, I'd have to do that. However, that breaks my idea of having the translator as a macro, and using it to embed DSL code in existing Lisp code 15:06:13 -!- Kenjin [~josesanto@193.136.206.189] has quit [Ping timeout: 245 seconds] 15:06:22 Something like (princ (my-dsl "a = 10; a + 1")) 15:06:25 Umm... I fail to see how the idea is broken. 15:06:42 Oh, you want to check /lisp/ bindings? 15:06:46 nyef: exactly 15:07:00 Have a look at sb-cltl2 or similar. 15:07:32 nyef: how "standard" are those functions? 15:07:48 I mean, is similar functionality available in other CL's? (not that it's very important though) 15:07:49 cltl2-standard 15:07:58 They were in the draft standard at some point. 15:08:27 A number of implementations have them or something similar. 15:08:31 I see. So they should be somewhat available. Good enough for me :-) 15:09:22 If I really didn't mind binding directly to SBCL, I'd happily wedge my DSL into the compiler with sb-c::def-ir1-transform and whatnot. 15:09:33 But that's probably further than you want to go. 15:09:57 nyef: deifnitely 15:09:57 :-) 15:10:42 -!- peterhil [~peterhil@gw.maxisat.fi] has quit [Ping timeout: 244 seconds] 15:11:03 sonnym [~sonny@rrcs-72-43-20-246.nys.biz.rr.com] has joined #lisp 15:11:43 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 15:12:07 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 15:17:03 -!- pavelludiq [~pavelludi@83.222.166.206] has quit [Ping timeout: 248 seconds] 15:18:33 ignas [~ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 15:21:54 -!- Cloud__ is now known as cesarbp 15:22:05 milanj [~milanj_@109-93-191-209.dynamic.isp.telekom.rs] has joined #lisp 15:23:03 Hmm, does anyone know where the ABLE git is located? The link on its homepage does not go anywhere. 15:24:09 -!- realitygrill [~realitygr@adsl-76-226-120-136.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 15:24:17 zulax [~radarwork@199.8.13.1] has joined #lisp 15:24:29 i have clisp on ubuntu 15:24:43 how can i write in vim and compile it with clsip? 15:25:01 zulax: one option is cut & paste 15:25:02 it's better to use Slime and SBCL 15:25:24 stassats, does sbcl or slime allow me to use vim? 15:25:34 avoiding me to copy paste all time? 15:25:40 peterhil [~peterhil@gw.maxisat.fi] has joined #lisp 15:26:00 zulax: you can configure clisp to call vim when you type (ed "src.lisp"). 15:26:24 zulax: see custom:*EDITOR* 15:26:41 Mococa [~Mococa@187.59.135.54] has joined #lisp 15:26:47 -!- Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Ping timeout: 252 seconds] 15:27:15 Wasn't there a vim interface to swank at one point? 15:27:29 zulax: yes, they avoid copy pasting, although not using vim 15:27:53 pjb``, is there a clisprc file? 15:27:59 Yes. 15:28:02 ~/.clispr 15:28:04 ~/.clisprc 15:28:23 i guess i will need to make it then, i dont see one yet 15:28:29 nyef: slimv, I think it is 15:28:32 nyef: there were several, but i don't think any is as good as the real Slime 15:30:20 pavelludiq [~pavelludi@83.222.166.206] has joined #lisp 15:30:27 pjb``, i need editor=vim in the clisprc file? 15:30:37 zulax: this is lisp! 15:30:50 darn, gotcha 15:31:14 so (editor vim) ? 15:31:30 (setf custom:*editor* "vim") 15:31:33 stassats: Well, of course not. They're using vim instead of emacs, after all! 15:31:49 also customize custom:*browser* (and perhaps custom:*browsers*) so that (describe 'custom:*editor*) works correctly. 15:31:51 poor souls 15:32:35 Perhaps ubuntu already has configured the things correctly. 15:32:47 well i didnt find them pjb`` 15:32:51 we are just learning lisp 15:33:00 and doing recursions : rinse and repeats 15:33:02 -!- peterhil [~peterhil@gw.maxisat.fi] has quit [Quit: Byes!] 15:33:23 all is good except not good free ide :( and copy paste :( 15:33:23 zulax: what happens when you type (describe 'custom:*editor*) ? 15:33:27 -!- oudeis [~oudeis@bzq-79-177-201-46.red.bezeqint.net] has quit [Quit: This computer has gone to sleep] 15:33:43 zulax: this is wrong, Slime is the best IDE i've ever seen for any language! 15:34:09 oudeis [~oudeis@bzq-79-177-201-46.red.bezeqint.net] has joined #lisp 15:34:34 Now for a question which is actually much more directly related to what I am actually doing at this moment. I need to build a MIME multipart/related entity. What's the best way to do it. There are, as I can see, two mime-libraries for CL; cl-mime and mime4cl. Can both do it? And if yes, which one should I use? 15:34:35 stassats, apt-get install slime , and how do i run it then? i do $ slime and it says no command found 15:34:38 Joreji [~thomas@vpn-ho1.unidsl.de] has joined #lisp 15:34:53 don't use apt-get to install lisp code 15:34:58 use quicklisp instead 15:35:01 zulax: you type emacs RET M-x slime RET 15:35:27 -!- Mococa [~Mococa@187.59.135.54] has quit [Remote host closed the connection] 15:35:31 zulax: before M-x slime, you may type C-h t to learn the basics of emacs (1/2 h). 15:35:35 -!- drewc [~user@PC687f74269abb-WM0003D709793f.wbb.net.cable.rogers.com] has quit [Ping timeout: 252 seconds] 15:35:48 that is, Control-h t 15:35:50 i do not want to learn emacs now :( i was content with vim 15:36:14 vim is a poor choice for an editor, even poorer for lisp programming. 15:36:21 a couple of minutes you complained about vim being not good enough for lisp 15:36:21 pjb``, *EDITOR* is the symbol *EDITOR*, lies in #, is accessible in 9 15:36:22 packages BDB, COMMON-LISP-USER, CUSTOM, EXT, FFI, POSIX, READLINE, SCREEN,SYSTEM, a variable declared SPECIAL, value: "vim", has 1 property SYSTEM::DOC. Documentation as a VARIABLE: 15:36:26 I haven't used slimv, but there was somebody in this channel the other day saying it was decent (a partial slime implementation for vim) 15:37:09 zulax: that's good. But if you configure custom:*browser*, it will fetch a more complete documentation on the web. 15:37:51 -!- blandest [~blandest@ip4-85-204-33-242.euroweb.ro] has quit [Ping timeout: 248 seconds] 15:38:23 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 15:38:27 Mococa [~Mococa@187.59.135.54] has joined #lisp 15:40:33 can anyone help me out here 15:40:46 cesarbp: What's up? 15:40:46 tell me why this function could be so slow 15:40:49 No. At least not until you explain your problem. 15:40:52 http://paste.lisp.org/display/125043 15:40:59 realitygrill [~realitygr@thewall.novi.lib.mi.us] has joined #lisp 15:41:20 thanks for help guys, gtg 15:41:26 hope i will eventually figure it out 15:41:48 cesarbp: it is slow because you did not declare any types. 15:41:52 ... Completely unspecified types? 15:41:56 cesarbp: it's O(len²). 15:42:10 Try to use smaller lengths. 15:42:38 Also, you compute len times arg, when it's always the same. 15:42:56 0.0 doesn't look COMPLEX to me 15:42:58 No, seriously, every quantity in that function is paying boxing and unboxing all over the place. 15:43:12 That would depend on the compiler... 15:43:15 stassats: Does to me. The imaginary part is fairly obvious. 15:43:37 ... That's true. I'm viewing this as a long-time SBCL hacker. 15:43:39 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 15:43:48 =( 15:44:01 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 15:44:08 nyef: it's not of type COMPLEX 15:44:16 At the very least, shouldn't the vector use a specialized complex type? 15:44:28 stassats: It coerces to one quite easily, though. 15:44:31 (COMPLEXP 0.0)  NIL 15:44:37 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 15:44:47 nyef: does make-array coerce? 15:44:53 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 15:45:03 Yeah, thinking about it, it probably /shouldn't/ coerce. 15:46:02 -!- zulax [~radarwork@199.8.13.1] has quit [Ping timeout: 252 seconds] 15:46:08 I wouldn't expect COMPLEX specialization to be useful. (COMPLEX SINGLE-FLOAT), maybe. 15:46:58 akovalenko: Anything to keep it from supporting (COMPLEX BIGNUM) values and similar idiocy. 15:47:31 So the two things that I'd change are the freq-vector element-type and declaring a type for time-vector. 15:47:38 zulax [~radarwork@199.8.13.1] has joined #lisp 15:47:39 dl [~download@chpcwl01.hpc.unm.edu] has joined #lisp 15:47:50 ISF [~ivan@143.106.196.39] has joined #lisp 15:48:09 That should kill most of the crazy overhead, in SBCL at least. 15:48:52 -!- oconnore [~Eric@c-66-31-125-56.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 15:49:34 -!- ZabaQ [~john.conn@135.114-84-212.staticip.namesco.net] has quit [Quit: Leaving.] 15:51:11 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Ping timeout: 248 seconds] 15:51:39 btw, most people are surprised when FLOAT and (COMPLEX FLOAT) don't prevent boxing (and they usually don't, when there are more than one float type. Using either SINGLE-FLOAT (or DOUBLE-FLOAT) is essential to get useful optimizations on such systems) 15:52:17 *Xach* upgraded to amd64 for immediate single-floats 15:53:11 *stassats* will upgrade to amd128 for immediate double-floats 15:53:38 stassats: isn't that AS/400? :) 15:53:43 amd68 will do as well 15:54:00 ok thanks 15:54:30 p_l|backup: if AS is 51200 15:56:01 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 15:56:04 heh 15:56:10 -!- ccorn [~ccorn@84-53-64-50.adsl.unet.nl] has quit [Quit: ccorn] 15:56:14 -!- quasisane [~sanep@c-76-24-80-97.hsd1.nh.comcast.net] has quit [Ping timeout: 260 seconds] 15:56:20 gravicappa [~gravicapp@ppp91-77-166-182.pppoe.mtu-net.ru] has joined #lisp 15:56:50 I know that AS/400 (aka "System i") specifies a 128bit platform. Not sure if it's only addressing or does that include wordsize, but I suspect the latter 15:57:53 -!- jdz [~jdz@193.206.22.97] has quit [Ping timeout: 245 seconds] 15:59:04 Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 15:59:04 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 15:59:51 Gabriel Kron? 16:01:00 So, speaking of floats and boxing, does anyone know of a ccl function to get a double-float from the underlying unsigned-byte 64 machine encoding, or do I need to round-trip through the FFI? 16:02:34 -!- Bike [~Glossina@69.166.35.233] has quit [Ping timeout: 256 seconds] 16:03:40 rme [~rme@50.43.156.82] has joined #lisp 16:04:01 Can you map all items in a list to a vector or array? (I'm not looking for `coerce') 16:04:15 yes 16:04:19 but not to an array 16:04:24 Iceland_jack: (map 'vector 'func my-list) 16:04:26 Something like: (func '(1 2 3 4) vector)  #(1 2 3 4) 16:04:43 nyef: not a final answer, but a direction: I'd look at %uvector-replace and ccl::uvector 16:04:57 Iceland_jack: and what's wrong with COERCE? 16:05:11 stassats: Didn't say there was anything wrong with it 16:05:26 -!- Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 16:05:31 Iceland_jack: i didn't say you said this 16:05:34 nyef: i think i saw something in clhs 16:05:36 akovalenko: Ah, thanks. Fun and games. 16:05:45 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 16:05:47 stassats: I didn't say you say I said this 16:05:50 Iceland_jack: why did you not look for coerce? 16:05:53 nyef: and probably other uvector stuff. It's not a FFI, rather it's something like get-lisp-obj-address & friends 16:06:09 H4ns: Look for? 16:06:13 quasisane [~sanep@c-76-24-80-97.hsd1.nh.comcast.net] has joined #lisp 16:06:25 Iceland_jack: "(I'm not looking for `coerce')" 16:06:28 Iceland_jack: you said you are not looking for coerce 16:06:44 akovalenko: Right, the sort of fun-and-games that I have no real problem playing with SBCL, but not something I want to dig into too far in CCL. 16:07:10 nyef: i remember wrong. hrmpf :) 16:07:29 I was interested in alternative methods, I was aware of coerce so I wasn't interested in that 16:07:33 zvrba: Yeah, CLHS has essentially nothing in it about IEEE floats. 16:07:38 mapping into (more-than-1D) array is possible with a displaced vector 16:07:54 Iceland_jack: what makes you want to have an "alternative method" then? 16:07:57 why were you interested in alternative methods? 16:08:16 My word you ask 16:08:31 nyef: there's only decode-float. 16:08:38 (and friends) 16:08:43 Because I'm interested in alternative methods, ascribe it to personal interest 16:08:58 zvrba: Right, and that means having to actually look up the double-float format, and so on. 16:09:02 are you interested in alternative methods for adding numbers? 16:09:26 stassats: I beg your pardon? 16:09:27 stassats: are Church numerals totally uninteresting? 16:09:38 omg october 16:09:38 (alternative-add 3 3) => 33 16:09:41 a+b = e^a*e^b : you can use multiplication to add numbers. 16:09:54 a+b = l(e^a*e^b) : you can use multiplication to add numbers. 16:09:59 lambda is enough for everything :) 16:10:01 Iceland_jack: i'm trying to find the extent of your personal interests in alternative methods 16:10:23 I had a feeling you were trying to be flippant 16:10:32 nyef: integer-decode-float. though, you still have to pack it yourself. 16:11:08 nyef: If you have a pointer to foreign memory, use ccl:%get-double-float 16:11:21 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Remote host closed the connection] 16:11:47 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 16:11:48 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has left #lisp 16:12:11 rme: Unfortunately, what I have is an unsigned-byte 8 displaced vector with the float in big-endian form in octets 1-8. 16:12:31 And I'm on an amd64. 16:12:39 pjb``: you can use subtraction too (defun add (a b) (- a (- b))) 16:13:21 For the single-floats, I'm using ccl::host-single-float-from-unsigned-byte-32, but there doesn't seem to be a double-float version. 16:13:39 hi 16:13:57 nyef: IIRC, you can see raw data behind (hopefully) any Lisp object on CCL with SLIME inspector 16:14:28 akovalenko: No slime. Thus far, any OSX emacs has only annoyed me. 16:14:41 if i have a function with 3 functions , how can i change the order of the functions? 16:14:54 your question doesn't make any sense 16:14:59 emacsformacosx.com is good 16:15:33 topo: use your editor to cut and paste the functions into the right order 16:15:47 SWANK doesn't have to be on the same machine (or I would have much more experience with Emacs on Windows) 16:15:54 pjb``: Fullscreen didn't work right or something. 16:16:09 (I usually install my emacs from homebrew; it builds HEAD as an app bundle and works fairly well) 16:16:49 H4ns: I need to do it automatically 16:16:55 And homebrew doesn't seem to do much better, for some reason. 16:17:02 http://paste.lisp.org/display/125044 16:17:19 -!- Mococa [~Mococa@187.59.135.54] has quit [Ping timeout: 248 seconds] 16:17:23 is it a easy way of doing this? 16:17:27 nyef: )-: 16:17:30 -!- topo is now known as topobot 16:17:39 nyef: admittedly, I never tried full screen mode 16:17:43 it's a bonkers way to do anything 16:17:45 but hm, should work 16:17:47
nyef: I like the Emacs app distributed by Apple: I just wish it were a little more modern. Since I *need* a modern Emacs, I end up building from sources 16:17:48 -!- Blkt [~user@89-96-199-46.ip13.fastwebnet.it] has quit [Quit: going home...] 16:18:13 topobot: look up funcall in the hyperspec 16:18:25 ok 16:18:26 topobot: we've been there (or was it someone else?). http://paste.lisp.org/display/124793#2 16:18:35 topo C-M-t 16:18:52 -!- pavelludiq [~pavelludi@83.222.166.206] has quit [Remote host closed the connection] 16:18:58 *dl* wonders if there are any non-Lisp languages with "real" macros (aka CL-or at least Scheme style macros) 16:19:15 nyef: I might try something like http://paste.lisp.org/display/125045 16:19:22 Boo has CL-style macros. 16:19:32 attila_lendvai [~attila_le@catv-80-98-25-142.catv.broadband.hu] has joined #lisp 16:19:32 -!- attila_lendvai [~attila_le@catv-80-98-25-142.catv.broadband.hu] has quit [Changing host] 16:19:32 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 16:19:38 yes akovalenko but the diffrence is that now i need to change just one each time 16:19:42 not all at the same time 16:19:46 and Python-like syntax. 16:20:11 dl: MACRO-11 on PDP was acceptable :) Not a match for CL, but way better than C preprocessor. 16:20:16 -!- varjag [~eugene@122.62-97-226.bkkb.no] has quit [Quit: Leaving] 16:20:20
sykopomp: Cool! Thanks for the pointer (I'll stick with CL, but... well, I was cureous! :) 16:20:28 rme: Thanks. I'll take a look at those functions. 16:20:48 dl: macro assemblers of yore were quite advaced 16:20:51 *advanced 16:20:56 Daev [~KAPITAL@cpe-174-099-078-179.nc.res.rr.com] has joined #lisp 16:20:59 I didn't say they were as nice to use as CL's macros. Just that they're there, and they're somewhat similar in how they work. 16:21:20 Okay, going for lunch, back in a bit. 16:21:22 It's probably fairly obvious, but that stack-allocates a double-float, and then you write your bytes into that memory in the right order, and read out a double-float. 16:21:25
akovalenko and pl_|backup: thanks for reminding me! they were quite nice! 16:21:29 dl: some language also have access to parse transforms (Erlang) or other devices that can be used to similar ends (Haskell) 16:21:49 s/double-float/8 bytes for a double-float/ 16:21:57 *languages 16:22:12 -!- Amyn [~abennama@64.208.49.21] has quit [Remote host closed the connection] 16:22:33
p_l|backup: are Erlang and Haskell then programmable programing languages too? 16:22:58 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Ping timeout: 256 seconds] 16:23:20 *dl* heard that Python was able to muck with its parse tree so that you can achieve the same results, but it sounded quite painful! :P 16:23:24 -!- oiiii [~oiiii@82.71.241.25] has quit [Remote host closed the connection] 16:23:55 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Client Quit] 16:25:04 well, there's cl-python 16:25:08
The assemblers y'all were speaking of sure make me think that what most languages call macros are a giant step backwards! 16:25:19 Bike [~Glossina@69.166.35.233] has joined #lisp 16:25:22 -!- fe[nl]ix changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language . New: usocket 0.5.4, ABCL 0.27.0, SBCL 1.0.51, anaphora 0.9.4, SBCL officially in Git, slime-indentation changes in CVS 16:25:49 dl: I'm not sure if I'd call Erlang programmable, but it definitely allows more than most languages by giving you quite a lot of access to compiler internals 16:25:51
Fade: I think that's cheating! :) 16:26:01 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 16:26:03 :) 16:26:12 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 16:26:37 dl: Haskell is flexible enough to implement rather weird DSLs in itself (I had seen classic Basic, and I think someone threatened to write a COBOL Monad) 16:26:53 lol 16:26:55
Fade: Does the "python" in cl-python have the ability to create and use real macros or do you have to fall back to CL to do that? 16:27:21 not having used cl-python very much, I think you'd be writing CL macros. 16:27:36
Fade: Thats what I would guess as well... 16:27:37 there's no syntax for the notion in python. 16:27:43 string interpolation, I guess. 16:27:49
yug! :) 16:28:10 attila_lendvai [~attila_le@catv-80-98-25-142.catv.broadband.hu] has joined #lisp 16:28:10 -!- attila_lendvai [~attila_le@catv-80-98-25-142.catv.broadband.hu] has quit [Changing host] 16:28:10 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 16:28:51 Amyn [~abennama@64.208.49.21] has joined #lisp 16:29:32 -!- coyo [~unf@unaffiliated/bandu] has quit [Read error: Connection reset by peer] 16:29:32 -!- Amyn [~abennama@64.208.49.21] has quit [Remote host closed the connection] 16:29:47 Amyn [~abennama@64.208.49.21] has joined #lisp 16:29:47 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 16:30:05 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 16:31:13 -!- nha [~prefect@imamac13.epfl.ch] has quit [Ping timeout: 260 seconds] 16:32:03
and, for another question about FLUB languages: Has anyone found a good MOP implementation for C++? I've been talking with a CS professor who is making his own object system in C++ and I lent him AMOP to try to influence his thinking. He said he looked for a MOP for C++ and wasn't very happy with what he found (I would start by ditching C++ personally, but... ). I'm very much reminded of Greenspun's 10th rule! 16:32:27 -!- austinh [~austinh@c-67-189-92-40.hsd1.or.comcast.net] has quit [Quit: leaving] 16:33:05 dl: I was thinking to write one, but AFAIK only Allegro has some C++ support 16:33:06 dl: OpenCXX, I believe. 16:33:55
pkhuong: thanks! I'll pass him the pointer! 16:34:32 dl: C++ people prefer constant references, afair :) 16:34:34 Chiba worked with Kiczales on making MOPery more tractable to static analyses. 16:34:45
fe[nl]ix: he's using C++, not CL (and, AFAICT has 0 interest in CL) :( 16:35:10 dl: see http://www.informatimago.com/articles/life-saver.html 16:35:56
pjb``: VERY COOL! (that is, if you're stuck in C++ land :) 16:36:05 I find it hard to believe in a CS prof who has 0 interest in lisp 16:36:17
Fade: you'd be surprised... 16:36:17 You can see the shift in interest from MOP, to the meta helix (which iiuc, is about embracing the self-dependence instead of trying to mutate it into circularity), to AOP. 16:36:20 SegFaultAX [~mkbernard@173.228.45.162] has joined #lisp 16:36:57 Fade: I can find you a dozen. 16:37:05 *dl* had a boss about 5 years ago who did his PhD thesis on languages and then proceeded to only do C/C++ in his career... 16:37:33
... well, that and bad management (which I can only assume are related ;) 16:38:19 pkhuong: are you a lone wolf in your dept.? 16:38:23 Fade: CS isn't mostly about languages, or so it seams to me 16:38:42 it definitely isn't. 16:38:57 -!- gko [~gko@220-135-201-90.HINET-IP.hinet.net] has quit [Ping timeout: 255 seconds] 16:39:11 aiui it's about concrete mathematics and algorithms. 16:39:15 dl: there's a CLOS-inspired "C Object System" (COS in short) 16:39:33 drewc [~user@PC687f74269abb-WM0003D709793f.wbb.net.cable.rogers.com] has joined #lisp 16:40:05 p_l|backup: where ? 16:40:05 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 16:40:30 http://sourceforge.net/projects/cos/ 16:40:40 it has generics :) 16:40:52 requires some preprocessing magic,though 16:40:58
p_l|backup: nifty! 16:41:10 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 16:44:17 p_l|backup: my impression is that PLOB so closely integrated CLOS with C in such way that the CLOS to C mapping created an adhoc COS - the wayback-machine has some nice stuff. 16:44:24 Fade: I don't work on language or compilers in my dept. 16:45:06 what are you working on? 16:45:16 srcerer [~chatzilla@dns2.klsairexpress.com] has joined #lisp 16:46:45 operations research. Currently, specialized algorithms to solve (exactly) a network design problem: where do you position two tiers of depots to minimize the sum of the transportation costs and the cost of the depots themselves. 16:47:43 that sounds like a hard problem. 16:49:48 The decision variant is NP-hard, but it's pretty tractable in practice. There's a tenuous link between OR and compilers; we've seen it in a couple work on integrated spilling/scheduling/register alloc for instance. Closer to us, I'm pretty sure that SBCL's representation selection pass tries to solve a quadratic assignment problem. 16:50:28 pkhuong: I bet UPS/Fedex would pay niceley for a solution to that problem :) 16:50:42 Why do you think they get those kind of grants? 16:50:51 http://pypi.python.org/pypi/karnickel 16:50:56 mon_key: they pay many people very nicely. 16:51:29 -!- Amyn [~abennama@64.208.49.21] has quit [Ping timeout: 252 seconds] 16:51:44 jdz [~jdz@host155-109-dynamic.8-87-r.retail.telecomitalia.it] has joined #lisp 16:51:45 amonst other hackey attempts 16:51:52 pkhuong: My town is the international shipping hub for UPS. Lots of UPS people making good money to pilot planes to and from those depots :) 16:52:09 pkhuong: does it approximate a viable solution? :) 16:52:37 Fade: what does? SBCL's pass? Yeah, it's a decent heuristic. 16:52:45 yeah, SBCL 16:54:10 mon_key: well, pilots are usually paid well in any good airline (whether passenger or freight) 16:54:48 p_l|backup: My point was that anything that removes pilots and planes from the equation would pay _really_ big. 16:55:08 autonomic nanoflies? 16:55:53 zmv [~daniel@177.60.219.183] has joined #lisp 16:56:02 patryk_ [~patryk@141.212.182.121] has joined #lisp 16:56:13 Their fuel costs alone are just astounding. 16:56:18 -!- zulax [~radarwork@199.8.13.1] has quit [Ping timeout: 260 seconds] 16:56:52 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 16:57:12 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 16:57:12 p_l|backup: FWIW though pilots _are not_ paid that well (at least not initially). 16:57:44 lisp nerd philip greenspun was paid almost nothing and was fired from his airline pilot job 16:57:55 *Xach* struggles to stay topical 16:57:56 mon_key: I'm not necessarily trusting towards unmanned aircraft, though. Even if I'm eyeing those grants related to AI in aviation 16:58:38 Xach: sorry. 16:58:56 i'll shut up now. 16:59:22 btw, regarding AI and lisp - anyone did some stuff with OWL/RDF in Lisp, outside Allegro? 16:59:29 Xach: did he try to turn an airplane into a Lisp? 16:59:47 stassats: the inverse. 16:59:52 I don't think so. 17:01:25 -!- Daev is now known as MeanWeen 17:01:54 i found an allegrograph-like system on common-lisp.net about a month ago, the name of which is escaping me atm. 17:02:17 vivace-graph 17:02:22 that's the one. 17:02:29 Will check it out 17:02:55 If I have to deal with just Protege/JESS again, I'll murder my professor 17:04:04 p_l|backup: you'd prob. be better off with de.setf.resource for OWL/RDF stuff 17:04:37 oh, looks nice 17:05:00 *p_l|backup* is writing myself a program to deal with the coursework in pleasant fashion 17:05:25 vivace-graph is mostly a PAIP prolog with triples and lacks good RDF 17:07:14 I'll probably still have to write some code to create ontology classes, but I think it might be easier with a toolkit like that 17:07:42 p_l|backup: what are you working on? (sorry if i missed it mentioned above) 17:07:57 zulax [~radarwork@199.8.13.1] has joined #lisp 17:08:15 mon_key: a REPL to replace Protege for my coursework 17:08:44 rme_ [~rme@50.43.153.241] has joined #lisp 17:09:00 p_l|backup: so not the Protege GUI? 17:09:55 mon_key: Protege GUI was designed for 3-armed people whose keyboards don't have arrows nor Tab key 17:10:07 -!- rme [~rme@50.43.156.82] has quit [Ping timeout: 248 seconds] 17:10:08 -!- rme_ is now known as rme 17:10:09 -!- rme [rme@696C65D6.F26E1912.699BA7A6.IP] has quit [Ping timeout] 17:10:48 -!- SegFaultAX [~mkbernard@173.228.45.162] has quit [Ping timeout: 245 seconds] 17:10:49 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 17:11:02 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 17:11:31 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Remote host closed the connection] 17:11:58 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 17:12:05 -!- ignas [~ignas@ctv-79-132-160-221.vinita.lt] has quit [Ping timeout: 260 seconds] 17:14:42 -!- zulax [~radarwork@199.8.13.1] has quit [Ping timeout: 244 seconds] 17:15:45 drewc` [~user@PC687f74269abb-WM0003D709793f.wbb.net.cable.rogers.com] has joined #lisp 17:16:25 Guthur [~Guthur@212.183.128.69] has joined #lisp 17:16:27 -!- scharan [~scharan@169.235.25.47] has quit [Quit: WeeChat 0.3.4] 17:17:02 mcsontos [~mcsontos@hotspot8.rywasoft.net] has joined #lisp 17:17:22 -!- drewc [~user@PC687f74269abb-WM0003D709793f.wbb.net.cable.rogers.com] has quit [Ping timeout: 256 seconds] 17:17:35 SegFaultAX [~mkbernard@173.228.45.162] has joined #lisp 17:18:44 naeg [~naeg@194.208.239.170] has joined #lisp 17:22:02 -!- ramusara [~ramusara@220.156.210.236.user.e-catv.ne.jp] has quit [Quit: Leaving...] 17:24:33 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Ping timeout: 258 seconds] 17:28:00 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Ping timeout: 255 seconds] 17:32:46 -!- ISF [~ivan@143.106.196.39] has quit [Ping timeout: 252 seconds] 17:33:47 -!- mstevens [~mstevens@fsf/member/pdpc.active.mstevens] has quit [Quit: leaving] 17:34:58 arms normally come in pairs 17:35:36 JuanDaugherty: Tell that to my smartphone! 17:36:03 (Disclaimer: I don't actually have a smartphone... But I'm given to understand that uniprocessor ARM is a fairly typical setup.) 17:36:15 -!- patryk_ [~patryk@141.212.182.121] has quit [Ping timeout: 248 seconds] 17:38:46 -!- samebchase [~samuel@pi.nipl.net] has quit [Ping timeout: 258 seconds] 17:38:53 dwim [~dwim@117.Red-79-156-36.staticIP.rima-tde.net] has joined #lisp 17:38:59 my phone has one arm, but with two cores 17:39:27 nowadays it's quite common 17:39:38 samebchase [~samuel@pi.nipl.net] has joined #lisp 17:41:47 *nyef* wonders what error -10665 means in the context of LSOpenURLsWithRole() called from MCLIDE 1.0b4, other than that the program is about to die without putting up a window. 17:42:25 -!- DrForr [~jgoff@li165-209.members.linode.com] has quit [Ping timeout: 260 seconds] 17:42:36 DrForr [~jgoff@li165-209.members.linode.com] has joined #lisp 17:43:10 *JuanDaugherty* lulz. 17:43:22 -!- drewc` is now known as drewc 17:44:00 -!- naeg [~naeg@194.208.239.170] has quit [Ping timeout: 256 seconds] 17:44:26 nyef: -10665? (suspiciously resembles winsock's 10065 host unreachable) 17:45:38 akovalenko: Yeah, -10665. It's a mac, running some version of Lion, so the winsock connection is probably a bit sketchy. 17:45:39 -!- Phoodus [~foo@68.107.217.139] has quit [Read error: Connection reset by peer] 17:47:05 -!- yakov [~yakov@77.72.120.66] has quit [Read error: Connection reset by peer] 17:47:08 GrayMagiker [~steve@c-174-56-88-247.hsd1.nm.comcast.net] has joined #lisp 17:47:29 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 17:47:36 gcv [~gcv@c-76-126-148-240.hsd1.ca.comcast.net] has joined #lisp 17:48:10 Blkt [~user@dynamic-adsl-62-10-8-229.clienti.tiscali.it] has joined #lisp 17:48:19 -!- Joreji [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 258 seconds] 17:48:31
Xach: I'm having a problem with manardb under QL. I'm getting an error that 'Symbol "MREMAP" not found in the OSICAT-POSIX package.'. (I'm guessing you want to know about these things as, ostensibly, everything in QL should compile/load) 17:48:41 nyef: To get a meaningful value, you have to take the absolute value and shift right 4 bits. 17:49:20 dl: Not on every platform, sadly. Which one are you using? 17:49:45
d'oh! I'm using MacOS (which, I'm guessing is the problem!). Thanks! 17:49:54 Xach: I'll admit that that yields a number with meaning... as a year. But not exactly as an error code. 17:49:55 *dl* will try Linux 17:50:12 alkoma [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has joined #lisp 17:50:49 yakov [~yakov@77.72.120.66] has joined #lisp 17:50:58 as a year? 17:51:03 *Xach* must have done it wrong 17:51:08 scharan [~scharan@169.235.25.47] has joined #lisp 17:51:29 *akovalenko* thinks Xach done it right. 17:52:31 Hrm. No, I screwed up there. 17:52:38 Parsed it as hex for some reason. 17:53:13 Although, something interesting probably /did/ happen that year... in some calendar. 17:53:41 -!- gcv [~gcv@c-76-126-148-240.hsd1.ca.comcast.net] has left #lisp 17:54:41 Ah, got it! kLSNoRosettaEnvironmentErr. 17:55:19 Umm... Why does MCLIDE require rosetta? 17:55:38 nyef: because it is written in mcl 17:55:42 i don't know, i guess for the MCL part of MCLIDE? 17:55:53 dl: mremap is linux-specific, and as a result it seems so is manardb 17:56:06 MCL as in pre-OpenMCL MCL? 17:56:20 nyef: right 17:56:25 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has left #lisp 17:56:29 Wow. 17:56:48 nyef: as porting the ide to another compiler seems not to be a viable approach, it is now kept alive as a slime client running in rosetta 17:57:03 kind of nice, in a hackish sense 17:57:13 But... but... No more rosetta! 17:57:34 It got dropped at some point. 17:57:39 yep; in 10.7 17:57:40 *sob* there goes this cute idea 17:57:47 naeg [~naeg@194.208.239.170] has joined #lisp 17:58:13 Kenjin [~josesanto@bl16-76-82.dsl.telepac.pt] has joined #lisp 17:58:25 *nyef* is running 10.7.1. 17:59:33 And the whatever-it-is that ships with ccl is painful when compared with emacs+slime. 18:01:05 Okay, no MCLIDE for me. I can GC that bit of headspace. And diskspace. 18:01:45 did I miss the moment where you explained why you weren't using emacs+slime /w ccl? 18:02:09 Because all of the MacOS emacsen I've tried have pissed me off. 18:02:29 the only one that ever worked for me when I was still beholden to cupertino was aquamacs. 18:04:01 what about http://emacsformacosx.com/ if I may. 18:04:10 cheezus [~Adium@bas2-toronto36-2925494721.dsl.bell.ca] has joined #lisp 18:04:28 ^ works pretty well for me 18:04:51 *Xach* uses, enjoys standard gnu emacs, built from source, on mac os x 18:05:05 dstatyvka [ejabberd@pepelaz.jabber.od.ua] has joined #lisp 18:05:40 psyllo [~benjamin@69.59.136.174] has joined #lisp 18:06:25 Xach: are you going to keep CL/slime tips on Planet Lisp? 18:06:55 I'm not sure. 18:07:13 Slime tips, probably. 18:07:23 picking a subscribing route? 18:07:48 Other feedback? 18:08:01 i have to read my own posts in rss! 18:08:06 Yeah. I added both RSS feeds and today I saw them in Planet Lisp. 18:08:26 macrobat [~fuzzyglee@h-17-133.a328.priv.bahnhof.se] has joined #lisp 18:09:15 I guess having them on Planet Lisp makes sense as more people would see them. I probably prefer keeping them separate but that's OCD-ness. No strong feeling either way. 18:10:12 morphism [~Nevermind@113.190.180.83] has joined #lisp 18:10:31 how to get a function as parameter in defmacro ? 18:10:57 ... Is that a suggestion for an article title, or are you attempting to ask something? 18:11:00 can you rephrase your question? 18:11:25 Joreji [~thomas@vpn-ho1.unidsl.de] has joined #lisp 18:12:05 =.=! 18:12:18 is that for me to anwser ? 18:12:26 or ppl are talking about other things ? 18:12:32 *nyef* notes that having a literal function bound to a defmacro parameter would require some doing, and probably not be generally useful. 18:13:35 barryfm [~barryfm@fl-71-2-131-32.dhcp.embarqhsd.net] has joined #lisp 18:13:49 -!- X-Scale [email@sgi-ultra64.broker.freenet6.net] has quit [Ping timeout: 240 seconds] 18:13:49 Guest81398 [email@89.180.132.170] has joined #lisp 18:14:03 -!- barryfm [~barryfm@fl-71-2-131-32.dhcp.embarqhsd.net] has left #lisp 18:14:15 morphism: So, what are you really trying to accomplish? 18:14:18 morphism: isn't it enough for your purpose(?) to receive a function *name*, or a lambda expression, as parameter? 18:18:23 ISF [~ivan@143.106.196.39] has joined #lisp 18:18:37 -!- zmv [~daniel@177.60.219.183] has quit [Ping timeout: 240 seconds] 18:18:51 -!- benny` [~benny@i577A7A23.versanet.de] has quit [Ping timeout: 255 seconds] 18:19:08 -!- __main__ [~main@76-220-16-41.lightspeed.sntcca.sbcglobal.net] has quit [Ping timeout: 276 seconds] 18:20:03 benny [~benny@i577A70A6.versanet.de] has joined #lisp 18:20:51 -!- Amadiro [~Amadiro@1x-193-157-201-248.uio.no] has quit [Quit: Leaving] 18:21:00 for example 18:21:50 (defmacro run-thread (func) `(bt:make-thread #',func :name (string ',func))) 18:22:02 this can work on REPL, but didn't on src 18:22:21 -!- cheezus [~Adium@bas2-toronto36-2925494721.dsl.bell.ca] has quit [Quit: Leaving.] 18:22:52 why is that a macro? 18:24:19 I found this to work on REPL but didn't on src file . So I'm curious to ask 18:25:06 you can't dump functions into FASLs 18:25:18 stassats: he isn't trying to 18:25:49 morphism: show me a line of code where (run-thread) is *used* 18:26:26 __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has joined #lisp 18:26:54 morphism: what error message do you get? 18:26:55 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #lisp 18:27:26 morphism: and.. are you sure that *package* is the same within a source file and within REPL? 18:29:14 -!- realitygrill [~realitygr@thewall.novi.lib.mi.us] has quit [Quit: realitygrill] 18:29:58 -!- dwim [~dwim@117.Red-79-156-36.staticIP.rima-tde.net] has quit [Ping timeout: 252 seconds] 18:30:21 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 18:31:14 tmh [6348b300@pdpc/supporter/sustaining/tmh] has joined #lisp 18:31:19 Greetings lispers. 18:31:27 (herep Xach) 18:32:16 akovalenko, yes I 18:32:21 I m sure 18:32:44 it even said that my function in that package is an unbound variable 18:32:46 =.= 18:32:50 morphism: other two questions? (line of code, error msg?) 18:33:10 morphism: it doesn't recognize run-thread as macro 18:33:14 ok wait a sec 18:33:51 Kajtek [~nope@nat4-230.ghnet.pl] has joined #lisp 18:34:30 hi tmh 18:34:46 -!- drewc [~user@PC687f74269abb-WM0003D709793f.wbb.net.cable.rogers.com] has quit [Remote host closed the connection] 18:34:58 drewc [~user@PC687f74269abb-WM0003D709793f.wbb.net.cable.rogers.com] has joined #lisp 18:35:26 Hey Xach, love the new lisptips site. It's just that I also subscribe to Planet Lisp and am getting the feeds twice. Can I count on just getting the tips on Planet Lisp? 18:35:28 morphism: anyway, what you're doing is easier without macros 18:35:53 akovanlenko : http://pastebin.com/7RXV410j 18:36:11 astalla [~astalla@dynamic-adsl-94-36-34-131.clienti.tiscali.it] has joined #lisp 18:36:16 akovalenko, I know, but I cant' pass function to it :( 18:36:18 tmh: I think so. If I take it off planet lisp I'll post about it. 18:36:49 Xach: Ok, thanks. Keep up the good work! ;-) 18:36:50 morphism: 1) of course you can pass a function to function, 2) or you can pass a symbol naming it (symbol can be funcalled too) 18:36:53 and as said, the error msg is "onframe" as unbound variable 18:37:09 morphism: did you paste the same macro into your source file? 18:37:15 not yet 18:37:17 morphism: you didn't define a macro named run-thread. 18:37:19 morphism: please do it 18:37:48 -!- ISF [~ivan@143.106.196.39] has quit [Ping timeout: 260 seconds] 18:37:56 http://pastebin.com/P54RkfJJ 18:38:04 morphism: and (apropos "run-thread") is likely to give you a clue in what package you really defined it 18:38:16 Xach, akovalenko, here it is, I updated 18:38:37 morphism: did you try loading your file NOW, when it's updated? 18:38:42 they are both defined inside my package 18:38:45 by asdf 18:38:58 morphism: defmacro shoud be before its use 18:39:27 yes, actually, the macro is loaded from the other file 18:39:44 morphism: load order? do you have :serial t in your system definition? 18:39:51 let me check 18:40:05 oh, not yet 18:40:12 in the defsystem ? 18:40:15 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error: Connection reset by peer] 18:40:20 morphism: (1) add :serial t to defsystem form 18:40:21 before :component ? 18:40:24 ok 18:40:49 morphism: and (2) make sure you list the file with defmacro first, *before* the file where it's used 18:41:01 done 18:41:10 have just fixed as you said 18:41:11 :P 18:41:19 realitygrill [~realitygr@thewall.novi.lib.mi.us] has joined #lisp 18:41:21 araujo [~araujo@gentoo/developer/araujo] has joined #lisp 18:41:25 morphism: then try to load it all. does it work now? 18:41:29 but was my macro right ? 18:41:40 no, it should be a function 18:41:54 morphism: it's bad style, and all wrong, but it should work 18:43:02 oh.. it worked 18:43:09 thanks for the :serial t 18:43:11 :p 18:43:17 but I see that 18:43:29 the thread 18:43:33 that was made later 18:43:49 is running inside the thread of pb-start function 18:44:02 because in (bt:all-threads) I don't see its name here 18:44:18 threads don't run inside threads 18:45:01 ignas [~ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 18:45:26 Unless you've got some crazy M:N green thread implementation going, but that shouldn't be the case here. 18:46:08 stassats why don't I see the "onframe" thread ? 18:46:15 because it's not running 18:46:36 it can't be 18:46:41 because my data get updated 18:46:47 only via that function 18:47:06 you can type long sentences on IRC 18:47:17 Is is running under a different name? Did it run for a while and then exit? 18:47:23 =) 18:47:44 hey, do you guys think that my style is still way too imperative ? 18:48:34 how do you measure impressiveness? 18:48:42 -!- hagish [~hagish@89.204.153.97] has quit [Read error: Connection reset by peer] 18:48:46 stassats: imperativity? 18:48:48 Imperativity? 18:49:01 morphism: yes. 18:49:04 eh, dabbrev-expand 18:49:41 morphism: fortunately there is a lot of CL code you can study to understand how things are usually written. 18:49:56 alexshendi [~wircer@dslb-178-010-024-120.pools.arcor-ip.net] has joined #lisp 18:50:15 ... Which isn't to say that the way things are usually written is necessarily the best way to write things... 18:50:28 Hmm, when did you last use SOME or NOTEVERY, and what was the context? 18:51:32 nyef: morphism runs one of my builds, iirc. No M:N threads there (yet :), but anyway, there would be one thread object for each make-thread :) 18:51:33 ... months ago, and I don't remember. 18:51:51 *Xach* uses EVERY and NOTANY somewhat frequently but can't remember using SOME or NOTEVERY 18:52:09 akovalenko, I saw my thread running 18:52:11 I'm fairly sure I've used SOME at least once, though... 18:52:22 *stassats* greps, finds (typecase value (string (funcall searcher value)) (cons (some searcher value))) 18:52:42 akovalenko: Oh, cool. Did you sort out what you wanted with SEH, btw? 18:52:56 (Am I remembering rightly that you were asking SEH questions just over a week ago?) 18:53:34 -!- Bike [~Glossina@69.166.35.233] has quit [Quit: Leaving.] 18:55:04 nyef: I've asked in what way it's broken; pkhuong told me that UWP blocks could be in the wrong order (not top-to-bottom in stack) when there are two UWPs per call frame, or more 18:55:11 -!- naeg [~naeg@194.208.239.170] has quit [Quit: WeeChat 0.3.5] 18:55:32 another one is (find-slot (class) (or (find slot-name (class-direct-slots class) :key #'slot-definition-name) (some #'find-slot (class-direct-superclasses class)))) 18:55:47 -!- cmm [~cmm@bzq-79-183-206-63.red.bezeqint.net] has quit [Ping timeout: 258 seconds] 18:55:52 Yes, that's the primary way it's broken. 18:56:13 don't see notevery anywhere 18:56:29 I've gone through two or three generations of fix for it, but never liked one enough to actually commit it. 18:56:33 -!- realitygrill [~realitygr@thewall.novi.lib.mi.us] has quit [Quit: realitygrill] 18:56:53 There should be a bug in the tracker for this, actually. 18:57:56 lp 379472 18:58:06 nyef: someone mentioned a discussion with you on relocatable cores, and that you prefer applying fixups on startup to trampolines (right?) 18:58:41 am0c [~am0c@222.235.56.83] has joined #lisp 18:58:59 Fixups on startup is easier in the context of our current compiler and runtime. 18:59:24 Don't we already have a relocation branch somewhere? lichtblau's, IIRC? 18:59:33 nyef: don't forget I have a pre-populated jump table here :) it seems like a huge step backwards 18:59:48 Heh. Fair enough. 19:00:01 nyef: yep, lichtblau referred to that discussion 19:00:29 Bike [~Glossina@69.166.35.233] has joined #lisp 19:00:36 nyef: and I was interested why the obvious issue of shared mapping didn't come up 19:00:39 phadthai [mmondor@ginseng.pulsar-zone.net] has joined #lisp 19:01:03 nyef: well, as of Windows, I do remember that no shared mapping is happening in mainline SBCL, but on other platforms?.. 19:01:33 I think it's more a matter of function calling being brain-twisty enough already, and nobody wanting to mess with it if they could help it. 19:01:35 and fixups seems to be really bad for sharing 19:02:41 cmm- [~cmm@109.67.208.243] has joined #lisp 19:03:25 hagish [~hagish@89.204.153.111] has joined #lisp 19:03:38 Honestly, monolithic cores strike me as being bad for sharing in the first place. 19:03:43 nyef: also, I hoped to hear from you eventually on my variant of stdcall callbalks syntax (there is a patch for CFFI that people are using, and if we could agree on syntax, it could be submitted for integration) 19:03:52 *callback 19:03:59 -!- cyrillos_ [~cyrill@188.134.60.2] has quit [Ping timeout: 276 seconds] 19:04:28 cyrillos_ [~cyrill@188.134.62.2] has joined #lisp 19:04:37 Hrm... Refresh my memory on the callbacks, please? 19:04:41 gko [~gko@220-135-201-90.HINET-IP.hinet.net] has joined #lisp 19:04:47 ... (alien (function (:stdcall int) ...)), (alien (function (:cdecl int) ...)) is my chosen syntax. 19:04:59 frhodes [~user@168-103-97-250.albq.qwest.net] has joined #lisp 19:05:32 and calling convention is stored in alien function type (when parsed) 19:05:46 Mmm... Yeah, it'd have to be in the function type. 19:06:10 -!- Joreji [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 256 seconds] 19:06:22 I suspect that I'm not happy with it, but that I don't know of anything better. 19:06:23 nyef: it all works for more than 6 months (I've used your code as a starting point, btw ) 19:06:33 Oh? Which code? 19:07:36 nyef: can't find the link now, but it was yours (it was on DEFCALLBACK level, without anything recorded in function types) 19:07:45 Ah, right, that code. 19:08:09 schaueho [~schaueho@dslb-088-066-042-125.pools.arcor-ip.net] has joined #lisp 19:08:11 Probably in the win32api stuff I posted way back when, along with the "hello lisp world" sample. 19:08:26 yes. 19:08:32 pnq [~nick@ACA29AB6.ipt.aol.com] has joined #lisp 19:09:43 nyef: as of unparsed alien type syntax, someone suggested stdcall-function and cdecl-function as CARs (used instead of FUNCTION) 19:10:07 That's also a plausibility. 19:11:38 Is SORT specified to do something reasonable with a predicate that provides a partial order? I can't quite tell right now from reading the spec. 19:13:50 -!- frhodes [~user@168-103-97-250.albq.qwest.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 19:13:53 It's probably unspecified (nothing definitive came up in all older discussions that I seen). It doesn't prevent people even from sorting by (RANDOM..) to shuffle a sequence.. 19:14:56 Joreji [~thomas@vpn-ho1.unidsl.de] has joined #lisp 19:14:58 We're guaranteed termination and that no elements will be "lost". 19:15:17 -!- Athas [~athas@shop3.diku.dk] has quit [Remote host closed the connection] 19:15:21 -!- yakov [~yakov@77.72.120.66] has left #lisp 19:15:40 -!- morphism [~Nevermind@113.190.180.83] has quit [Read error: Connection reset by peer] 19:16:15 Hang on, there's mention of "elements considered equal". Can that even happen in a total ordering? 19:16:27 -!- Guest81398 [email@89.180.132.170] has quit [Remote host closed the connection] 19:16:46 X-Scale [email@sgi-ultra64.broker.freenet6.net] has joined #lisp 19:19:33 -!- schaueho [~schaueho@dslb-088-066-042-125.pools.arcor-ip.net] has quit [Ping timeout: 245 seconds] 19:20:43 -!- cesarbp [~cbolano@189.247.100.41] has quit [Ping timeout: 252 seconds] 19:20:57 -!- Joreji [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 260 seconds] 19:21:30 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 258 seconds] 19:22:32 Joreji [~thomas@75-032.eduroam.RWTH-Aachen.DE] has joined #lisp 19:22:42 Of course. 19:22:59 nyef: I believe that it can happen in a total ordering. Total orderings are asymetric. From Wikipedia: If X is totally ordered under , then the following statements hold for all a, b and c in X: If a  b and b  a then a = b (antisymmetry); 19:23:50 Okay, thanks. 19:24:07 But you can not have a situation like this a  b; b  c; c  a 19:25:00 -!- gko [~gko@220-135-201-90.HINET-IP.hinet.net] has quit [Ping timeout: 255 seconds] 19:25:19 Unless they're all equal? 19:25:58 ?? 19:26:06 i thought lisp was the most mathy.... 19:26:17 equality holds for a=b=c=d 19:26:30 aahh, it's a cycle 19:26:32 lol 19:26:33 ok 19:26:40 *akovalenko* interested if it would be conforming for SORT to assume equality for EQ without calling predicate.. 19:27:15 thought d  c 19:27:31 er c  d 19:27:55 It's a cycle, they are all less-than-or-equal-to one of the others, and greater-than-or-equal-to the other. Thus, they are all equal. 19:27:59 process [~nick@subtlepath.org] has joined #lisp 19:28:04 mishoo__ [~mishoo@79.112.115.118] has joined #lisp 19:28:09 wait, tho, cycles are allowed in lisp! 19:28:15 because of transitivity 19:28:32 and antisymmetry 19:29:26 -!- mishoo_ [~mishoo@79.112.115.118] has quit [Read error: Operation timed out] 19:30:04 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Remote host closed the connection] 19:30:29 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 19:31:27 Indeed. My bad, they could all be equal and still be a total ordering! 19:32:37 -!- gensym [~user@dslb-088-071-149-049.pools.arcor-ip.net] has quit [Ping timeout: 240 seconds] 19:33:16 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error: Connection reset by peer] 19:33:52 araujo [~araujo@gentoo/developer/araujo] has joined #lisp 19:36:50 ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 19:38:30 easyE` [YA6sXEHtiA@panix2.panix.com] has joined #lisp 19:42:32 nyef: What kind of predicate did you have in mind? For it to provide a partial, but not total, ordering suggests that it would result in some error condition when comparing incomparable items of the collection. 19:44:53 -!- mishoo__ [~mishoo@79.112.115.118] has quit [Read error: Connection reset by peer] 19:45:04 Phoodus [~foo@68.107.217.139] has joined #lisp 19:45:04 mishoo__ [~mishoo@79.112.115.118] has joined #lisp 19:45:12 Yeah, I was mistaken about the nature of the ordering I had in hand. 19:45:35 an equal predicate is of course allowed as an optimization to first perform an eq-equivalent check before the more expensive checks (If I understand what akovalenko meant) 19:46:58 i.e. the first test in ecl_equal() is == 19:47:04 phadthai: I meant a predicate argument for SORT (strict ordering) 19:47:09 oh 19:47:24 Some types are EQUAL only when they are EQ, and no types are EQ without also being EQUAL. 19:47:58 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Ping timeout: 255 seconds] 19:48:57 phadthai: that is, is SORT allowed to infer (eq a b) => (and (not ( a b)) (not ( b a))) 19:49:53 -!- tmh [6348b300@pdpc/supporter/sustaining/tmh] has quit [Quit: Page closed] 19:50:59 frozencemetery [~frozencem@128.237.118.43] has joined #lisp 19:51:05 EClaesson [~EClaesson@c-5284e555.013-19-6c6b7013.cust.bredbandsbolaget.se] has joined #lisp 19:52:09 hi 19:53:50 I'm trying to write a function that searches for a symbol in a list, and when it's found it should return the rest of the list it's in. If not found at all, it should return nil. Example: (forwardfind 'x '((a b) z x c)) should return (x c) http://paste.lisp.org/display/125051 19:54:13 The problem is that it returns nil whenever there is a list before the searched symbol. 19:54:20 As in my previous example 19:54:34 If the symbol is in the first list it encounters, it works 19:54:44 It looks like you made it recurse on inner lists, is that what you want? 19:55:00 Bike: what do you mean? 19:55:24 EClaesson, if one of the elements is a list, the function recurses to work on that list instead of the list it's been working on. 19:56:02 Bike: I want it to do that, but, if the searched symbol is not in that list, i want it to continue searching the "main" list 19:56:05 even worse, it's recursion without return 19:56:39 EClaesson: Well, rewrite it to so, then, instead of just ((listp (first list)) (forwardfind find (first list))) 19:56:42 akovalenko: I believe the question can be restated as: is their any function PRED for which (and (eq a b) (or (PRED a b) (PRED b a))) ? If one can design such a function, then SORT cannot make your assumption. 19:57:13 GrayMagiker: (constantly t) 19:57:32 anvandare [~anvandare@78-22-147-247.access.telenet.be] has joined #lisp 19:57:36 GrayMagiker: so we can. It's not a math question, it's a language-lawyer kind of thing 19:57:38 Bike: the problem is that i do not know how 19:57:42 i'm kinda stuck 19:57:45 staring blind on it.. 19:58:10 Something like ((listp (first list)) (or (forwardfind find (first list)) (forwardfind find (rest list)))) I think, e.g., if the search in the inner list returns something return that, and if not keep going in the list you're in already. 19:58:22 EClaesson: (or (forwarding find (first list)) ) 19:58:28 oops. 19:58:32 akovalenko: i agree with you there. I provided that restatement to show that, in a language lawyer sense, the answer should be that SORT is not allowed to do that. 19:58:44 -!- ebw [~user@krlh-5f7276f7.pool.mediaWays.net] has quit [Read error: Connection reset by peer] 19:59:00 Thanks, i'll se if i can get it to work 19:59:56 Cam [~i@trivialand/staff/Cam] has joined #lisp 20:00:12 GrayMagiker: it's not that simple. WE are required to provide a strict comparison predicate to SORT, not just "a function" 20:00:51 GrayMagiker: ..and, obviously, any honest strict comparison within LISP can't distinguish objects that are EQ. 20:00:58 HG` [~HG@p579F752A.dip.t-dialin.net] has joined #lisp 20:01:10 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 20:01:16 akovalenko: are we? From the hyperspec on SORT: ``This is guaranteed even if the predicate does not really consistently represent a total order (in which case the elements will be scrambled in some unpredictable way, but no element will be lost).'' 20:02:09 pavelludiq [~pavelludi@83.222.166.206] has joined #lisp 20:02:11 GrayMagiker: "this" that is guaranteed is termination and no data loss. No promises about the order of elements. 20:02:11 akovalenko: again from the hyperspec ``predicate---a designator for a function of two arguments that returns a generalized boolean.'' 20:02:21 I've done some easy randomization with (lambda (x) (zerop (random 2))) 20:04:10 akovalenko: I contend that we are only required to provide ``a designator for a function of two arguments that returns a generalized boolean.'' to sort, and thus SORT is not allowed by it's specification to assume: (eq a b) => (and (not ( a b)) (not ( b a))) 20:04:24 -!- oudeis [~oudeis@bzq-79-177-201-46.red.bezeqint.net] has quit [Quit: Leaving] 20:05:54 eq is about pointers 20:06:05 while pred is about their values i think.... 20:06:22 idk.... 20:09:14 homie: The question is, as language users, are we allowed to pass a function, PRED, to SORT which does not reflect an ``honest strict comparison''. 20:10:00 -!- Bike [~Glossina@69.166.35.233] has quit [Ping timeout: 260 seconds] 20:10:09 I contend that we are, but we must accept that the results are undefined; but that no errors will be thrown and that the resulting set will be a valid permutation of the passed in set. 20:10:11 GrayMagiker: but the purpose of this assumption (for the implementor) is ORDERING. Consider two EQ elements: how can we observe that they are swapped in the resulting sequence? 20:10:22 zipace [~hi@unaffiliated/zipace] has joined #lisp 20:10:42 Two elements that are EQ are unswappable. 20:10:46 -!- mogs [~mogs@119.64.49.14] has quit [Quit: leaving] 20:11:14 mogs [~mogs@119.64.49.14] has joined #lisp 20:11:19 akovalenko: I agree with you. If two elements are EQ, then we cannot determine which is which. 20:11:21 -!- frozencemetery [~frozencem@128.237.118.43] has quit [Ping timeout: 255 seconds] 20:11:37 GrayMagiker: the only thing we can observe (by producing some side-effect) is that SORT never called our predicate. Now, the question: did it promise to? 20:11:41 -!- MeanWeen [~KAPITAL@cpe-174-099-078-179.nc.res.rr.com] has quit [Ping timeout: 258 seconds] 20:11:42 deke [~deke@fl-71-54-184-132.dhcp.embarqhsd.net] has joined #lisp 20:11:44 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Ping timeout: 252 seconds] 20:11:51 -!- deke [~deke@fl-71-54-184-132.dhcp.embarqhsd.net] has left #lisp 20:13:07 Amadiro [~Amadiro@ti0021a380-dhcp3462.bb.online.no] has joined #lisp 20:13:50 akovalenko: I don't think that it promised to. 20:14:25 akovalenko: But you are saying we promise to pass a function that generates an ordering, thus using the SORT function as it was intended. I don't think that we were ever asked to make that promise. 20:14:53 frozencemetery [~frozencem@CMU-786527.WV.CC.CMU.EDU] has joined #lisp 20:15:45 GrayMagiker: akovalenko is saying that you can only expect an arbitrary permutation of the input sequence if the ordering predicate isn't a total order. 20:16:13 hmmm 20:16:39 Well, that's how I see it: we don't promise to pass a honest predicate, and SORT, when given the sequence of all-EQ's, doesn't promise to call it even once. 20:17:15 Bike [~Glossina@69.166.35.233] has joined #lisp 20:19:32 akovalenko: I guess you are right. 20:21:14 Though there is this line ``sort determines the relationship between two elements by giving keys extracted from the elements to the predicate.'' in the hyperspec. 20:21:58 -!- Cam [~i@trivialand/staff/Cam] has quit [Quit: be back in a sec] 20:22:19 extending on my last question, does this look correct: http://paste.lisp.org/display/125054 If do-ffind (which is my previous forwardfind) returns nil, i want to return the entire original list. But for some reason, it messes up and returns the last element in the first list (or something like that) 20:23:56 EClaesson: do-ffind doesn't return nil on failure, then. 20:24:41 tsuru` [~user@c-68-53-57-241.hsd1.tn.comcast.net] has joined #lisp 20:25:07 MeanWeen [~KAPITAL@cpe-174-099-078-179.nc.res.rr.com] has joined #lisp 20:26:38 Bike, it doesn't. But, if i remove the forwardfind function and rename do-ffind to forwardfind, then it returns nil 20:26:47 -!- Joreji [~thomas@75-032.eduroam.RWTH-Aachen.DE] has quit [Read error: Connection reset by peer] 20:27:10 So either i'm doing something wierd, or.. emacs doesn't eval my things correctly and uses some old version of my func 20:27:19 EClaesson: Did you change do-ffind to call do-ffind instead of forwardfind? 20:27:39 no i didn't. darn 20:27:43 ha, thanks :) 20:27:47 time to sleep.. 20:30:26 Davidbrcz [~david@proxysup.isae.fr] has joined #lisp 20:31:11 -!- nyef [~nyef@c-174-63-105-188.hsd1.ma.comcast.net] has quit [Ping timeout: 248 seconds] 20:32:03 -!- ocharles [u411@gateway/web/irccloud.com/x-gcsxxfjwefhqhsaj] has quit [] 20:33:15 I've just run an example cl-gtk program. cl-gtk2-gtk took more than thiry seconds to load! Is this expected? 20:34:19 *thirty 20:34:29 marsell [~marsell@120.18.120.157] has joined #lisp 20:35:34 -!- Vivitron [~user@pool-108-7-56-243.bstnma.fios.verizon.net] has quit [Remote host closed the connection] 20:36:30 samebchase: first time after you installed cl-gtk*? definitely. Your Lisp had to compile all this stuff (not only cl-gtk2 itself, but also its prerequisites). 20:36:54 -!- GrayMagiker [~steve@c-174-56-88-247.hsd1.nm.comcast.net] has quit [Quit: Ex-Chat] 20:39:12 -!- alexshendi [~wircer@dslb-178-010-024-120.pools.arcor-ip.net] has left #lisp 20:39:13 Ralith [~ralith@1555hostw130.starwoodbroadband.com] has joined #lisp 20:39:19 nyef [~nyef@c-174-63-105-188.hsd1.ma.comcast.net] has joined #lisp 20:41:59 akovalenko: I've quickloaded it before 20:42:53 akovalenko: It just said loading and printed a lot of dots this time 20:43:12 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Ping timeout: 260 seconds] 20:43:40 akovalenko: same thing happened yesterday 20:44:57 samebchase: Does it stop printing dots after a while? 20:45:12 nyef: yes and then the gui comes up. 20:45:13 akovalenko: it's just that cl-gtk2 is made of many files and SBCL's fasl loading is slow 20:45:43 You could try dumping a core with the fasls already loaded? 20:46:10 HG`` [~HG@p5DC05E9C.dip.t-dialin.net] has joined #lisp 20:46:34 nyef: how do I do that? 20:47:07 Have a look for a function named "save-lisp-and-die". 20:48:04 nyef: thanks 20:49:40 -!- HG` [~HG@p579F752A.dip.t-dialin.net] has quit [Ping timeout: 258 seconds] 20:49:49 dwim [~dwim@117.Red-79-156-36.staticIP.rima-tde.net] has joined #lisp 20:50:30 alkoma` [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has joined #lisp 20:50:55 -!- karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Ping timeout: 252 seconds] 20:50:59 -!- dcrawford [~dcrawford@ita4fw1.itasoftware.com] has quit [Read error: Operation timed out] 20:51:01 -!- theBlackDragon [~dragon@212.71.14.133.adsl.dyn.edpnet.net] has quit [Read error: Operation timed out] 20:51:09 -!- johs [~johs@hawk.netfonds.no] has quit [Read error: Operation timed out] 20:51:14 johs [~johs@hawk.netfonds.no] has joined #lisp 20:51:18 -!- rtoym [~chatzilla@c-67-180-54-112.hsd1.ca.comcast.net] has quit [Read error: Operation timed out] 20:51:27 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Ping timeout: 248 seconds] 20:51:46 rtoym [~chatzilla@c-67-180-54-112.hsd1.ca.comcast.net] has joined #lisp 20:51:58 -!- Posterdati [~tapioca@host104-230-dynamic.7-87-r.retail.telecomitalia.it] has quit [Read error: Operation timed out] 20:51:59 ltriant [~ltriant@110-174-168-43.static.tpgi.com.au] has joined #lisp 20:52:36 Posterdati [~tapioca@host104-230-dynamic.7-87-r.retail.telecomitalia.it] has joined #lisp 20:52:49 -!- alkoma [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has quit [Read error: Operation timed out] 20:53:36 karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #lisp 20:53:56 -!- jdz [~jdz@host155-109-dynamic.8-87-r.retail.telecomitalia.it] has quit [Ping timeout: 260 seconds] 20:53:56 -!- EyesIsServer [~eyes@unaffiliated/eyesismine] has quit [Ping timeout: 260 seconds] 20:54:24 cheezus [~Adium@76-10-168-148.dsl.teksavvy.com] has joined #lisp 20:54:47 -!- rainyrhy_away is now known as rainyrhy 20:55:13 theBlackDragon [~dragon@212.71.14.133.adsl.dyn.edpnet.net] has joined #lisp 20:56:57 -!- pavelludiq [~pavelludi@83.222.166.206] has quit [Ping timeout: 258 seconds] 20:56:57 jdz [~jdz@host155-109-dynamic.8-87-r.retail.telecomitalia.it] has joined #lisp 20:56:57 nyef: I'm getting a "Cannot save core with multiple thread running" 20:56:58 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 20:57:41 dcrawford [~dcrawford@ita4fw1.itasoftware.com] has joined #lisp 20:57:59 nyef: I called save-lisp-and-die after the file got loaded. Is this the way to do it? 20:58:06 samebchase, slime usually has it's own thread 20:58:18 alkoma`` [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has joined #lisp 20:58:45 so you could try loading and then dumping the core direct from the implementations own REPL 20:58:50 Guthur: I also got the same error when I did the same with sbcl (without SLIME) 20:58:57 EyesIsServer [~eyes@unaffiliated/eyesismine] has joined #lisp 20:59:00 their might be another way, but that is way I have done it in the past 20:59:02 there* 20:59:11 -!- alkoma` [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has quit [Read error: Operation timed out] 20:59:44 there must be some thread running then, I'm not sure what that could be though 20:59:45 samebchase: try (sb-thread:list-all-threads) after loading GTK 21:00:34 samebchase: cl-gtk2 fires up some threads, iirc. It should be deinitialized somehow, so they go away. 21:00:50 akovalenko: some five threads got printed 21:01:02 -!- sdemarre [~serge@91.176.76.6] has left #lisp 21:01:19 realitygrill [~realitygr@adsl-76-226-120-136.dsl.sfldmi.sbcglobal.net] has joined #lisp 21:01:22 I forgot how it must be deinitialized, btw 21:01:33 akovalenko: and a cl-gtk2 main thread 21:01:35 samebchase: are you using SLIME, or just a plain REPL? 21:01:43 akovalenko: now I'm using SLIME 21:02:03 cool, my threads in two inferior-sbcl buffers are not the same 21:02:30 samebchase: you have to do it without SLIME (or run SLIME single-threaded) 21:04:33 samebchase: I recommend to figure out how cl-gtk2 should be deinitialized while you're still in SLIME (for convenience). When you know it, restart, *don't* use SLIME, quickload CL-GTK2, deinitialized it and save-lisp-and-die. 21:04:36 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 21:05:20 akovalenko: I'm only getting two threads in the SBCL REPL 21:06:14 I'm having to wait 30+ seconds every time I load the file 21:06:21 -!- gravicappa [~gravicapp@ppp91-77-166-182.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 21:06:23 samebchase: as of save-lisp-and-die, it's probably one thread too much. Well, maybe they got *save-hook* right... Try (save-lisp-and-die..) again: the second thread may go away automatically 21:07:13 akovalenko: same issue. 21:07:50 akovalenko: "Cannot save core ..." 21:08:05 -!- milanj [~milanj_@109-93-191-209.dynamic.isp.telekom.rs] has quit [*.net *.split] 21:08:05 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [*.net *.split] 21:08:05 -!- juniorroy [~juniorroy@212.36.228.103] has quit [*.net *.split] 21:08:05 -!- CrEddy [~scuttock@wrongplanet/CrazyEddy] has quit [*.net *.split] 21:08:06 -!- schme [~marcus@sxemacs/devel/schme] has quit [*.net *.split] 21:08:06 -!- AntiSpamMeta [~MetaBot@unaffiliated/afterdeath/bot/antispambot] has quit [*.net *.split] 21:08:06 -!- kruhft [~user@209.89.22.115] has quit [*.net *.split] 21:08:06 -!- joast [~rick@76.178.187.139] has quit [*.net *.split] 21:08:06 -!- _3b [foobar@cpe-72-179-19-4.austin.res.rr.com] has quit [*.net *.split] 21:08:18 juniorroy [~juniorroy@212.36.228.103] has joined #lisp 21:08:24 schme [~marcus@c83-254-205-42.bredband.comhem.se] has joined #lisp 21:08:24 -!- schme [~marcus@c83-254-205-42.bredband.comhem.se] has quit [Changing host] 21:08:24 schme [~marcus@sxemacs/devel/schme] has joined #lisp 21:08:57 What is the general procedure for running cl-gtk2 programs? Am I doing something wrong? 21:09:02 bgs100 [~ian@unaffiliated/bgs100] has joined #lisp 21:09:40 samebchase: did you find out how cl-gtk2 is deinitialized? I'd expect it to be documented somewhere.. 21:09:44 AntiSpamMeta [~MetaBot@unaffiliated/afterdeath/bot/antispambot] has joined #lisp 21:10:31 _3b [foobar@cpe-72-179-19-4.austin.res.rr.com] has joined #lisp 21:10:40 pavelludiq [~pavelludi@83.222.166.206] has joined #lisp 21:10:49 -!- Snaffu [~Snaffu@oh-69-34-16-39.sta.embarqhsd.net] has quit [Remote host closed the connection] 21:11:31 -!- MoALTz [~no@host-92-18-23-195.as13285.net] has quit [Quit: Leaving] 21:12:17 milanj [~milanj_@109-93-191-209.dynamic.isp.telekom.rs] has joined #lisp 21:12:33 samebchase: probably gtk:leave-gtk-main 21:13:51 -!- realitygrill [~realitygr@adsl-76-226-120-136.dsl.sfldmi.sbcglobal.net] has quit [Ping timeout: 248 seconds] 21:13:56 realitygrill [~realitygr@adsl-76-226-113-199.dsl.sfldmi.sbcglobal.net] has joined #lisp 21:14:15 akovalenko: I'm trying that out... 21:14:16 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 21:14:28 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 21:15:00 ..and if it crashes when dumped image is restarted, it's the finalizer-related bug (that much I still can recall) 21:15:13 joast [~rick@76.178.187.139] has joined #lisp 21:15:51 -!- joast is now known as Guest23512 21:16:20 akovalenko: It works!! 21:16:37 samebchase: well that's surprising :) 21:16:45 akovalenko: 54 M?? 21:17:20 CrEddy [~overcasua@wrongplanet/CrazyEddy] has joined #lisp 21:17:29 akovalenko: Is this what's called saving a lisp image? 21:17:52 -!- clarity_ [~clarity@174.134.17.212] has quit [Read error: Connection reset by peer] 21:18:02 -!- paul0 [~paul0@200.146.125.207.dynamic.adsl.gvt.net.br] has quit [Quit: paul0] 21:18:05 samebchase: (1) pages that are not needed won't be read, and (2) 54M, but it's compressed with very good ratios 21:18:13 samebchase: yes 21:18:27 *compressable 21:18:46 akovalenko: I'm sbcl --core 'ing the file 21:19:08 I'm getting an error i can't get rid off. It's complaining about a number not being a list (but i can't see why) http://paste.lisp.org/display/125057 21:19:17 As well, i feel the logic isn't 100% correct 21:19:27 samebchase: you could give :executable t to save-lisp-and-die, then it would be a separate executable 21:20:20 EClaesson: (traverse '(1 . (2 . (3))) #'1+ #'cons), maybe? 21:21:02 Ah. Have a look at the spec for ENDP. 21:21:19 -!- HG`` [~HG@p5DC05E9C.dip.t-dialin.net] has quit [Quit: HG``] 21:21:33 -!- Davidbrcz [~david@proxysup.isae.fr] has quit [Ping timeout: 255 seconds] 21:21:37 akovalenko: what's the opposite of gtk:leave-gtk-main? 21:21:43 nyef: can't see what's wrong with that 21:21:51 -!- Guest23512 [~rick@76.178.187.139] has quit [Quit: Leaving.] 21:21:57 EClaesson: "Should signal an error of type type-error if list is not a list." 21:22:01 akovalenko: I want to run the gui again 21:22:05 samebchase: you'd better ask someone who tries to use CL-GTK, at least 21:22:12 -!- dlowe [dlowe@nat/google/x-hqpogjdjqampmorn] has quit [Quit: Leaving.] 21:22:59 Hrm. This logic IS a touch screwy. 21:23:00 samebchase: ensure-gtk-main looks like the right one 21:23:07 Joreji [~thomas@vpn-ho1.unidsl.de] has joined #lisp 21:23:49 We'll start with IS-NODE appearing to be semantically equivalent to CONSP. 21:24:33 -!- dl [~download@chpcwl01.hpc.unm.edu] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:24:33 Joreji_ [~thomas@vpn-ho1.unidsl.de] has joined #lisp 21:24:56 nyef: I have a feeling i'm over-complicating it 21:25:04 akovalenko: It works now. Thanks for your time! 21:25:12 Yes, you are. 21:26:33 The first thing that you can do is replace IS-NODE with CONSP. This should have no effect. Next, lose the ENDP case, at which point it'll complain that you're calling CONS with only one argument when it expects two. 21:26:45 Having to use a 54 MB image to get an example program to run in under 30 seconds doesn't sound right. 21:27:23 samebchase: go write some C++, then 21:27:49 srolls [~user@167.216.131.126] has joined #lisp 21:28:05 samebchase: The real question is, "what happens when you scale up to real programs?" 21:28:31 EClaesson: Your goal is something like (traverse '(1 . (2 . 3)) #'1+ #'cons) => (2 . (3 . 4)) ? 21:28:35 samebchase: the size of sbcl images is essentially O(1). 21:28:40 EClaesson: when you work on trees, CONSP, CDR, CAR are your friends, but trees really have no first and no rest. 21:29:35 -!- rmarianski [~rmariansk@mail.marianski.com] has quit [Quit: leaving] 21:29:36 -!- Joreji_ [~thomas@vpn-ho1.unidsl.de] has quit [Read error: Operation timed out] 21:29:43 EClaesson: When TRAVERSE is called, TREE is either a node or it is a leaf. There should be no third case. 21:30:18 EClaesson: (defun map-tree (tree fun) (if (consp tree) (cons (map-tree ....) ...) (funcall ..))) 21:30:35 zmv [~daniel@177.60.78.171] has joined #lisp 21:30:43 Okay, I think that's enough being helpful on the homework problem for now. 21:30:53 akovalenko: That's what I don't want to have to do 21:30:54 nyef: The goal for (traverse '(1 . (2 . 3)) #'1+ #'cons) is (2 3 . 4) 21:31:24 EClaesson: Semantically equivalent, yes. Okay. 21:31:45 pjb``: so basically the size of the image is pretty much constant? 21:31:51 samebchase: did you try compressing the image? 21:31:58 -!- zmv [~daniel@177.60.78.171] has quit [Read error: Connection reset by peer] 21:32:08 samebchase: that's what I said, yes. Of course, up to some limit. 21:32:12 -!- bobbysmith007 [~russ@216.155.103.30] has left #lisp 21:32:14 Joreji_ [~thomas@vpn-eu2.unidsl.de] has joined #lisp 21:32:37 nyef, akovalenko: Thanks a lot. Yes, it's homework. Nothing to be handed in though 21:32:48 -!- sausages [~sausages@balmora.robotjunkyard.org] has quit [Ping timeout: 255 seconds] 21:32:58 -!- cheezus [~Adium@76-10-168-148.dsl.teksavvy.com] has quit [Quit: Leaving.] 21:33:18 -!- sammi` [sammi@gateway/shell/devio.us/x-pgneuobwrvpytllz] has quit [Remote host closed the connection] 21:33:20 H4ns: no, is there some option to be give to save-lisp-and-die? 21:33:31 samebchase: no. use gzip to try it 21:33:37 sausages [~sausages@balmora.robotjunkyard.org] has joined #lisp 21:33:40 H4ns: Oh! 21:33:52 nyef: What exactly do you mean? 21:33:54 samebchase: there is some tool that you can use to generate a compressed executable. 21:34:00 H4ns: well, compressed dumps are supported now (git HEAD) 21:34:10 akovalenko: even better 21:34:31 Also when I loaded the image, I got a lot of scary warnings 21:35:21 -!- Joreji [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 252 seconds] 21:35:27 H4ns: gzip brought it down to 15M 21:35:41 samebchase: many things here: (1) it's customary for GTK2 itself to produce scary warnings on stderr 21:35:42 samebchase: The overhead of static-linking the runtime is fixed, and becomes less important as application code size increases. 21:36:02 samebchase: quite frankly, you'll have to do some low-level work and research to get to a point where you can deploy lisp gui applications. i'd suggest that you spend some time finding out whether you actually like the programming side of things. if you do, getting the deployment to work will not be impossible. 21:36:12 (2) cl-gtk2's code is probably using some functions that became undefined in later gtk2 versions 21:36:17 coyo [kvirc@pool-71-164-173-28.dllstx.fios.verizon.net] has joined #lisp 21:36:18 -!- coyo [kvirc@pool-71-164-173-28.dllstx.fios.verizon.net] has quit [Changing host] 21:36:18 coyo [kvirc@unaffiliated/bandu] has joined #lisp 21:36:20 Including "Continuing with fingers crossed. 21:36:54 samebchase: no, SBCL warns you here (probably a finalized problem I mentioned earlier, but I expend it to crash) 21:37:01 *expected it to crash 21:37:08 -!- jdz [~jdz@host155-109-dynamic.8-87-r.retail.telecomitalia.it] has quit [Quit: Byebye.] 21:37:29 *finalizer problem 21:38:23 -!- karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Ping timeout: 248 seconds] 21:39:30 H4ns: Are (Open Source) GUI Lisp applications generally difficult/painful to deploy? 21:39:37 No. 21:39:49 Is there a saner way to find the user account name from SBCL than (first (last (pathname-directory (user-homedir-pathname)))) ? 21:40:01 samebchase: yes. 21:40:20 nyef: yes. 21:40:24 samebchase: i'm saying this to put the truth somewhere in the middle between the yes and the no :) 21:40:34 pjb``: Care to enlighten me? 21:40:35 nyef: $LOGNAME is slightly saner 21:40:38 On unix system, use getpid(2) and getent(3). 21:40:40 H4ns: What exactly did you mean when you said "finding out whether you actually like the programming side of things 21:40:59 -!- milanj [~milanj_@109-93-191-209.dynamic.isp.telekom.rs] has quit [Read error: Operation timed out] 21:41:07 nyef: I would getuid and getpwent (?) 21:41:08 nyef: ie. use plateform specific API. 21:41:20 yes, getpwent is what I meant. 21:41:28 H4ns: Would you advise me to use something like, say pygtk instead? 21:41:31 samebchase: if you like programming in common lisp, you might be willing to cope with how unpolished modern things often are. 21:41:35 samebchase: not at all. 21:41:38 Right, (SB-UNIX:POSIX-GETENV "LOGNAME") seems to do the trick, thanks. 21:41:49 nyef: your pathname version does seem to work on windows, too 21:42:14 mishoo_ [~mishoo@79.112.115.118] has joined #lisp 21:42:22 Amazingly enough, I just need this to work on Linux. 21:42:31 H4ns: So you'd advise me to persevere and do stuff using cl-gtk2? 21:42:44 nyef: RUN-PROGRAM may be useful too :) 21:42:52 nyef: yeah, and hittingi $USERNAME should work in modern windowses using envvars 21:42:53 H4ns: If I don't want to use another language 21:42:56 samebchase: i'm advising you to look at common lisp yourself and decide whether you like it. 21:42:59 samebchase: go code some C++ 21:43:08 I'm not putting RUN-PROGRAM into my webserver if I can help it. 21:43:22 akovalenko: That would be scary. 21:43:26 nyef: there's already one in asdf. 21:43:48 pjb``: And I'm not using ASDF once the server is... Hunh. That's the same argument. Nevermind. 21:44:22 Still, getenv should work... If I can remember where the heck I left the dev server. 21:45:11 -!- pnq [~nick@ACA29AB6.ipt.aol.com] has quit [Ping timeout: 252 seconds] 21:45:19 -!- mishoo__ [~mishoo@79.112.115.118] has quit [Ping timeout: 248 seconds] 21:46:04 H4ns: I guess I'll need to think hard about it. 21:46:42 Ah. It's SB-EXT:POSIX-GETENV. Heh. Public package. 21:46:47 samebchase: last word before i leave for today: you're already experiencing how hard getting a deployable version of a common lisp gui program can get - i.e. you'll need to hack and ask people, but it is entirely doable. it is in no way plug-and-play like in other environments, but common lisp is a rather nice language and very enjoyable. 21:47:23 just use the browser as a GUI! 21:47:32 H4ns: That is what I want to feel too 21:47:33 Euthy [~euthy@unaffiliated/euthydemus] has joined #lisp 21:47:33 felideon: i was going to suggest that :) 21:47:54 H4ns: , but I don't know enough Lisp to enjoy it yet. 21:49:06 -!- LiamH [~none@pdp8.nrl.navy.mil] has quit [Ping timeout: 260 seconds] 21:50:14 -!- tsuru` [~user@c-68-53-57-241.hsd1.tn.comcast.net] has quit [Ping timeout: 258 seconds] 21:50:19 milanj [~milanj_@109-93-191-209.dynamic.isp.telekom.rs] has joined #lisp 21:52:04 -!- H4ns [41173d62@gateway/web/freenode/ip.65.23.61.98] has quit [Ping timeout: 252 seconds] 21:52:31 Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 21:52:31 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 21:52:56 joast [~rick@76.178.187.139] has joined #lisp 21:54:53 Good night lispers! 21:55:03 samebchase: Sleep well. 21:55:29 'night 21:55:47 bye 21:56:45 nyef: I've added (setf posix-getenv) to my branch at some point, and it was pretty handy several times since then 22:01:03 Guh. I forgot how obnoxious it could be trying to set up a semi-isolated lisp environment. 22:01:35 -!- EClaesson [~EClaesson@c-5284e555.013-19-6c6b7013.cust.bredbandsbolaget.se] has quit [Quit: Lost terminal] 22:02:47 -!- samebchase [~samuel@pi.nipl.net] has quit [Ping timeout: 252 seconds] 22:03:15 -!- astalla [~astalla@dynamic-adsl-94-36-34-131.clienti.tiscali.it] has quit [Quit: Quit] 22:03:40 -!- cyrillos_ [~cyrill@188.134.62.2] has quit [Read error: Operation timed out] 22:03:41 -!- mishoo_ [~mishoo@79.112.115.118] has quit [Ping timeout: 260 seconds] 22:05:45 nyef: what do you mean by semi-isolated? 22:06:22 -!- pavelludiq [~pavelludi@83.222.166.206] has quit [Ping timeout: 256 seconds] 22:06:54 zmv [~daniel@c95339f3.virtua.com.br] has joined #lisp 22:07:04 Jasko [~tjasko@c-174-59-204-245.hsd1.pa.comcast.net] has joined #lisp 22:07:09 I mean, running a separate lisp instance, from a separate build directory, with separate initfiles, separate copy of quicklisp, and so on. 22:07:39 -!- easyE` [YA6sXEHtiA@panix2.panix.com] has quit [Ping timeout: 244 seconds] 22:07:42 -!- Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 22:07:51 Same version of slime, though, 22:08:20 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 22:08:34 oh... can't you just copy quicklisp, your own libs and your home initfile? or do you have system-wide initialization files as well? 22:09:01 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Ping timeout: 240 seconds] 22:09:13 Don't forget to update paths all over the place, the initargs to keep SBCL from looking at the home initfile, and so on. 22:09:58 And then it turns out that some paths are cached in dumped cores, so those need to be rebuilt if you move things around... 22:10:03 -!- realitygrill [~realitygr@adsl-76-226-113-199.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 22:10:10 -!- Jasko3 [~tjasko@209.74.44.225] has quit [Ping timeout: 258 seconds] 22:10:16 you're just spoiled! i catch your drift 22:10:16 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 22:10:24 kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined #lisp 22:10:36 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 22:10:37 -!- DrForr [~jgoff@li165-209.members.linode.com] has quit [Ping timeout: 240 seconds] 22:10:45 oh right, and the location of the cached files themselves as well 22:10:55 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Ping timeout: 248 seconds] 22:11:13 -!- felideon [~fdelgado@184.105.242.75] has quit [Ping timeout: 245 seconds] 22:11:18 Yup. Just found five or six levels of directories created by some manic process looking for part of sb-grovel. 22:11:25 -!- sausages [~sausages@balmora.robotjunkyard.org] has quit [Ping timeout: 240 seconds] 22:11:34 -!- Nshag [user@chl45-1-88-123-84-8.fbx.proxad.net] has quit [Ping timeout: 265 seconds] 22:11:39 "I remember creating this directory, but it's clearly empty now..." 22:12:02 -!- quotemstr [~quotemstr@dancol.org] has quit [Ping timeout: 256 seconds] 22:12:09 -!- maxm- [~user@p84-72.acedsl.com] has quit [Read error: Connection reset by peer] 22:12:20 maxm- [~user@p84-72.acedsl.com] has joined #lisp 22:12:30 -!- ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 260 seconds] 22:12:48 quotemstr [~quotemstr@dancol.org] has joined #lisp 22:14:17 Oh, right. And my server is 32-bit, but my desktop is 64-bit, and cross-built toolchains don't work worth a damn. 22:14:17 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 22:15:27 karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #lisp 22:16:31 (The simplest solution to that, however, is probably to recreate my desktop linux vm.) 22:16:33 *cmm-* found it nice to keep a 32-bit chroot inside his 64-bit "desktop" 22:16:48 -!- sonnym [~sonny@rrcs-72-43-20-246.nys.biz.rr.com] has quit [Quit: Leaving.] 22:16:49 That's another option, certainly. 22:16:53 a vm would also work, I guess 22:17:02 *Xach* often tests with separate users 22:17:03 Well, I'm already using a vm. 22:17:24 You have to go deeper 22:17:27 -!- Kajtek [~nope@nat4-230.ghnet.pl] has quit [Quit: Leaving.] 22:17:29 Xach: Thank you, once again, for quicklisp. 22:17:34 nyef: wait, you're cross-compiling for another machine? 22:17:48 zulax [~radarwork@199.8.13.1] has joined #lisp 22:18:13 nyef: no problem! 22:18:14 madnificent: No, only tried that the once. 22:18:27 nyef: last time i remember, you hadn't tried it yet 22:18:50 pavelludiq [~pavelludi@83.222.166.206] has joined #lisp 22:19:07 Xach: No, I tried it briefly very early on, but at that point I didn't really need much that it provided. 22:20:02 -!- Intensity [~Intensity@unaffiliated/intensity] has quit [Quit: Quit] 22:20:32 Nshag [user@chl45-1-88-123-84-8.fbx.proxad.net] has joined #lisp 22:20:58 ah, right 22:21:05 it's been so long! 22:21:20 I'm writing some silly that includes a #\ character and I'm getting this SB-INT:SIMPLE-READER-ERROR: unrecognized character name: "". 22:21:28 s/silly/silly code/ 22:21:41 Other funny unicode chars are read without problems. 22:21:43 antoszka: sb-impl::*default-external-format* 22:21:48 realitygrill [~realitygr@adsl-76-226-113-199.dsl.sfldmi.sbcglobal.net] has joined #lisp 22:22:15 antoszka: is it LATIN_SMALL_LETTER_DOTLESS_I ? 22:22:23 antoszka: that's actually two characters, U+0131 LATIN SMALL LETTER DOTLESS I plus U+0323 COMBINING DOT BELOW 22:22:29 heh 22:22:34 akovalenko: :utf-8 22:22:45 ilmari: you're right 22:22:54 *akovalenko* lost a dot below while copy-pasting 22:22:59 what's that for? 22:23:12 zmv: flipping text upside-down  just practising 22:23:58 doesn't really look upside down :P 22:24:02 klltkr [~klltkr@dsl78-143-205-208.in-addr.fast.co.uk] has joined #lisp 22:24:10 -!- zulax [~radarwork@199.8.13.1] has quit [Ping timeout: 260 seconds] 22:24:13 uo no uo spudp  22:24:42 Indeed. 22:24:46 EClaesson [~EClaesson@c-5284e555.013-19-6c6b7013.cust.bredbandsbolaget.se] has joined #lisp 22:24:48 zmv: http://wklej.org/id/602860/ 22:25:07 zmv: i wrote that in Tcl, and i'm transcribing it into CL 22:25:36 won't look as nice, I'm afraid :) 22:25:41 francogrex [~user@109.130.138.187] has joined #lisp 22:26:00 oh, I see. 22:26:13 Hi, one last question. I have a little.. logic problem. I have my traverse (defun traverse (tree leaffun nodefun)) I now want to use traverse to sum all leafs (all elements are numbers). Can someone give me a slight push in the right direction? 22:26:26 -!- Guthur [~Guthur@212.183.128.69] has quit [Quit: Leaving] 22:26:30 using #'+ as leaffun seems logic, but what for nodefun? 22:27:05 EClaesson: I'd have used #'+ as nodefun, and #'identity as leaffun. 22:27:34 nyef: look at the older paste http://paste.lisp.org/display/125057 22:27:41 EClaesson: nodefun is used to create antifunctions? :D 22:27:51 this has little to do with lisp and more with logic: I want to group (and then sum) sales data per semesters. why is this wrong? http://paste.lisp.org/display/125059 22:27:52 (make-array 2 :initial-contents "") 22:27:53 #(#\LATIN_SMALL_LETTER_DOTLESS_I #\COMBINING_DOT_BELOW) 22:27:56 OK, that helped. 22:28:06 let's see 22:28:08 zmc: Haha, node-fun, not no-defun ;) 22:28:36 EClaesson: but I liked antifunctions ): :P 22:28:45 EClaesson: The idea is that the leaf values don't change, the way they are combined at the nodes does. 22:28:57 nyef's right, #'+ for nodefun 22:29:31 nyef: Using that i get 15 for the tree (1 . ((2 . 3) . (4 . 5))) shouldn't it be 8? or am i missing something? 22:29:35 RaptorRarr [~Olathe@unaffiliated/olathe] has joined #lisp 22:29:35 -!- dwim [~dwim@117.Red-79-156-36.staticIP.rima-tde.net] has quit [Ping timeout: 248 seconds] 22:30:04 actually, one-argument + is identity, too, so both leaffun and nodefun can be #'+ if you want to win friends and confuse people :) 22:30:05 EClaesson: If you're missing something, it's possibly the ability to add. (+ 1 2 3 4 5) => 15. 22:30:44 *identity **when applied to numbers, obviously.. 22:31:02 (FWIW, I still need the computer to do my basic math for me a lot of the time.) 22:31:36 francogrex: What the heck is with that code? 22:32:15 carlo_au [~carlo@ppp59-167-11-78.lns1.syd6.internode.on.net] has joined #lisp 22:32:22 francogrex: And please, dear god, use PARSE-INTEGER with a suitable range and < instead of that MEMBER form. 22:32:26 dabd [~dabd@a79-169-214-13.cpe.netcabo.pt] has joined #lisp 22:32:43 *akovalenko* sometimes uses C-x C-e in ERC window when elisp-compatible one-liners are posted. 22:33:24 akovalenko: like a pro! ;) 22:34:46 -!- marsell [~marsell@120.18.120.157] has quit [Ping timeout: 252 seconds] 22:35:07 francogrex: simplify by avoiding "for .. on" (you'd need it only if you wanted to setf car, but you're altering CAAR -- for..in is enough) 22:35:11 nyef: long time no see. yes should replace member with < is easier. parse-integer is not ok? 22:35:46 akovalenko: ok 22:36:05 nyef: Perhaps i've misunderstood this. But in a binary tree, isn't leafs only the element that has no childs? 22:36:14 *elements 22:36:37 EClaesson: Yes, in any tree, leaves are the elements with no children. 22:37:12 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 22:38:04 I want to sum all leafs in my tree, so 15 isn't the result i want 22:38:32 then what's your definition of a leaf? 22:38:33 But (traverse some-tree #'+ #'+) will sum the value of all of the leaves. 22:38:52 because to everyone here, your leaves are 1,2,3,4,5 22:38:58 Does anyone have a Lisp interpreter written in shell script? 22:39:06 You can think of it as rewriting the tree such that any node with two leaves as children is rewritten into a new leaf with the sum of its children as its value. 22:39:25 RaptorRarr: I hope not, it sounds like a phenomenal waste of time. 22:39:38 -!- klltkr [~klltkr@dsl78-143-205-208.in-addr.fast.co.uk] has quit [Quit: Lost terminal] 22:39:52 EClaesson: And it keeps rewriting until all it has is a single leaf and no nodes. 22:40:10 Ah, that makes sense 22:40:28 H4ns [431741ca@gateway/web/freenode/ip.67.23.65.202] has joined #lisp 22:40:47 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 22:40:48 aleron [~Brad@cpe-098-025-205-230.sc.res.rr.com] has joined #lisp 22:41:38 -!- francogrex [~user@109.130.138.187] has quit [Quit: (phone call, be back soon)] 22:42:15 francogrex: my annotation: http://paste.lisp.org/+2OHV/1 (non-destructive equivalent of your loop (hopefully. not tested)) 22:42:35 Okay, I'm gone for the evening. 22:42:37 -!- nyef [~nyef@c-174-63-105-188.hsd1.ma.comcast.net] has quit [Quit: G'night all.] 22:43:36 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 22:43:50 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 22:44:30 -!- realitygrill [~realitygr@adsl-76-226-113-199.dsl.sfldmi.sbcglobal.net] has quit [Ping timeout: 260 seconds] 22:46:19 marsell [~marsell@120.18.64.108] has joined #lisp 22:48:06 -!- hagish [~hagish@89.204.153.111] has quit [Quit: Leaving] 22:48:08 -!- replore [~replore@ntkngw304073.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 22:49:23 -!- zmv is now known as oftc 22:49:35 -!- oftc is now known as zmv 22:51:17 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Quit: Leaving...] 22:52:18 -!- Bike [~Glossina@69.166.35.233] has quit [Ping timeout: 258 seconds] 22:52:32 austinh [~austinh@c-67-189-92-40.hsd1.or.comcast.net] has joined #lisp 22:53:49 Bike [~Glossina@69.166.35.235] has joined #lisp 22:54:29 Is there any way to do something like this?: (defun foo (a b &optional c d) (format t "You called foo like this: ~A" (arguments)) 22:54:52 There's no generic way to do that, right, unless you use the MOP? 22:55:14 Or changed the function's lambda list. 22:55:37 austinh: there is &rest 22:56:09 austinh: but that only works for keyword arguments. the positional arguments must be explicitly used. 22:56:37 H4ns: Right, I'd have to change foo's lambda list, though, right? I was trying to write a macro that could capture how the function was actually called, without requiring the user to write the function in a certain way. 22:57:37 austinh: ah - most implementations have some wrapper functionality that allows you to do that (think trace) 22:57:50 then you could just do (defun foo (&rest rest) (format t "You called foo like this: ~A" rest)), right? 22:58:05 austinh: but that, again, would not work from within the function i think 22:58:19 zmv: (defun x (a b &rest keys &key foo bar baz) ...) 22:58:35 -!- dstatyvka [ejabberd@pepelaz.jabber.od.ua] has left #lisp 22:58:38 you can't just have (&rest rest) as the parametre list? 22:59:02 austinh: your macro has to extract parameter names, paying attention to &optional etc, maybe adding &rest before &keys.. nothing impossible. 22:59:02 zmv: sure you can. 22:59:19 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 22:59:38 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 22:59:48 H4ns: so that should work, right? 23:00:14 zmv: that meaning your foo function, yes. 23:00:30 akovalenko: Yeah, I think I could parse the lambda list and enforce the "supplied" predicates to &optional and &key args. 23:01:03 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Ping timeout: 248 seconds] 23:01:17 austinh: for optional, yes. For keywords, added (or already present) &rest will capture them. 23:01:41 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 23:01:52 austinh: http://ccl.clozure.com/manual/chapter4.3.html 23:02:01 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 23:02:01 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 23:02:17 advise is actually quite nice, i remember to have had some fun with it 23:04:20 -!- Kenjin [~josesanto@bl16-76-82.dsl.telepac.pt] has quit [Quit: Computer has gone to sleep] 23:04:32 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 23:04:33 H4ns: That is neat. 23:04:50 Kron [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 23:07:32 What I'm actually trying to do is implement an Actor object that runs in its own thread. I'd like to be able to define methods that take an actor as the first argument. If the method is called from within the same thread as the actor, it is executed normally. Otherwise, the call is captured and delivered to the actor via a mailbox. 23:08:15 sonnym [~sonny@rrcs-184-74-137-69.nys.biz.rr.com] has joined #lisp 23:08:42 I looked at make-method-lambda in the MOP, but that seemed challenging. I was hoping a macro would suffice. 23:08:48 austinh: i'd require the functions to be defined with a top-level definer macro 23:09:07 austinh: (define-actor-method (...)) 23:09:13 That's what I'm trying now. 23:09:58 I was just at the point where I'm trying to capture how the function was actually called, in order to forward it to the actor. 23:10:36 austinh: ok, so you will have to process the lambda list to determine optional parameters and pass them properly. 23:11:18 emef [~user@c-67-168-164-102.hsd1.wa.comcast.net] has joined #lisp 23:12:07 H4ns: Right, so I'll probably have to manipulate the lambda list, though, in case the user didn't add "supplied" parameters on the &optional and &key params (or use &rest, as akovalenko suggested) 23:12:54 -!- emef is now known as emef0 23:13:19 austinh: do you need a "real" lambda list of actor methods to be something more than &rest rest? (or perhaps (actor &rest args)) 23:13:19 DrForr [~jgoff@li165-209.members.linode.com] has joined #lisp 23:13:22 austinh: yes, that sounds right. although i'm not quite sure if making a function call and a mailbox interaction to be the same thing from a caller perspective is about right. 23:13:43 sausages [~sausages@balmora.robotjunkyard.org] has joined #lisp 23:14:09 akovalenko: if it should behave like a transparent rpc, then it would be cool if the remote call would allow a full lambda list, with keywords and all 23:14:21 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 23:14:36 H4ns said it better than me 23:14:38 -!- sonnym [~sonny@rrcs-184-74-137-69.nys.biz.rr.com] has quit [Quit: Leaving.] 23:14:45 samebchase [~samuel@pi.nipl.net] has joined #lisp 23:14:46 well, "allowing" real lambda lists is done easily with inner lambdas and destructuring-bind.. 23:14:48 austinh: but really, processing a lambda list is not hard. 23:14:53 sonnym [~sonny@rrcs-184-74-137-69.nys.biz.rr.com] has joined #lisp 23:15:01 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Ping timeout: 240 seconds] 23:15:02 akovalenko: yeah, but that adds noise. 23:15:18 H4ns: I was looking at alexandria's parse-ordinary-lambda-list 23:15:22 H4ns: a simple macro could hide all noise 23:15:52 akovalenko: that is true 23:15:52 -!- Kron [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 23:15:53 Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 23:15:58 the only point of having something more than simple &rest args here is to have a correct lambda-list displayed by IDEs 23:16:10 ...or (describe ..) 23:16:24 -!- vsync_ is now known as vsync 23:16:24 H4ns: To answer your other remark about the mailbox, I was considering adding some other checks to the types of data that could be passed and possibly copying the arguments to try to avoid SMP issues. 23:16:45 -!- pavelludiq [~pavelludi@83.222.166.206] has quit [Ping timeout: 255 seconds] 23:17:24 ..when IDE behavior doesn't matter, go for a single &rest and destructure it into arguments within the body 23:17:33 akovalenko: There's that and just having less restrictions on the client code. 23:17:34 -!- Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 23:17:39 austinh: well, i don't have a lot of actor programming experience, but from what i know, sending a message to an actor is different from local code invocation, so i don't quite believe in the transparent local/remote part. 23:17:53 Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 23:18:34 H4ns: I'm also thinking that the async call would block the caller until it's resolved, so it should be transparent (I think). 23:19:03 paul0 [~paul0@200.146.125.207.dynamic.adsl.gvt.net.br] has joined #lisp 23:19:29 what was that beginner lisp book that came out recently? 23:19:33 with the comics and the minigames? 23:19:39 austinh: btw, avoiding "SMP issues" with copying can start countless "ownership issues" instead 23:19:42 Land of Lisp? 23:19:46 thassit, thanks 23:20:09 akovalenko: I don't think I'll ever have a perfect solution. 23:20:11 austinh: ok - did you look at cl-muproc, btw? 23:20:21 austinh: might be something to gather ideas from 23:20:25 H4ns: Yes, and I went down that path, too. 23:21:02 H4ns: That's where I am now, and I think I have way too much boilerplate and speghetti code. 23:21:40 austinh: ok - macros are for you then! 23:22:01 I started feeling like copying Erlang within Lisp was leaving me worse off than if I chose one or the other. 23:23:24 kanru_ [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined #lisp 23:23:39 austinh: actually, if i were you. i'd not dismiss the mop path just for the fun of it :) 23:24:09 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #lisp 23:24:19 H4ns: No, I was really excited about it, but make-method-lambda is kinda hairy. 23:24:35 -!- pjb is now known as Guest26586 23:24:45 -!- Guest26586 is now known as pjb- 23:24:48 people create all these complicated framework and structures, then pour their sweat and tears making an actual app and selling it to someone, only to discover client is able to completely crash and burn it, with something like WebRunner and running 500 users on it 23:25:04 maxm-: so? 23:25:12 Pascal Costanza wrote a paper entitled "make-method-lambda considered harmful". 23:25:32 austinh: or you can use advise :) 23:25:49 I found another thread where he was advocating the "define-" macro as a better alternative, which is how I got to posing the initial question. 23:25:59 H4ns: I'm using SBCL. 23:26:10 -!- rainyrhy is now known as rainyrhy_away 23:26:11 austinh: no pony for you then. 23:26:43 H4ns: I came to accept that easy of understanding the program state / interaction is 10x times more important then doing thing in a fancy way 23:26:46 -!- wbooze [~levgue@xdsl-78-35-168-149.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:26:53 -!- homie [~levgue@xdsl-78-35-168-149.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:26:55 austinh: you may notice "encapsulations" as something equivalent to other lisps' advices, but SBCL encapsulations are slooow. 23:28:05 maxm-: i certainly agree. but part of the learning process is to try and to the fancy things a few times. only when you've done it yourself can you judge what's important and what's not. 23:28:26 s/to the/do the/ 23:28:27 austinh: ...and it seems that TRACE options are the only *public* interface for using encapsulations. 23:28:39 akovalenko: Thanks, I'll keep my eyes out for it. 23:29:54 oconnore [~Eric@75-150-66-254-NewEngland.hfc.comcastbusiness.net] has joined #lisp 23:30:03 s/my eyes/an eye 23:31:23 -!- kanru_ [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Read error: Operation timed out] 23:31:52 -!- jlaire [~jlaire@80-248-244-31.cust.suomicom.fi] has quit [Ping timeout: 244 seconds] 23:33:15 realitygrill [~realitygr@adsl-76-226-113-199.dsl.sfldmi.sbcglobal.net] has joined #lisp 23:33:46 -!- ignas [~ignas@ctv-79-132-160-221.vinita.lt] has quit [Quit: Ex-Chat] 23:34:01 -!- Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 23:34:14 Wow, just learned about this: git init --bare .git 23:34:17 Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 23:34:34 <-- feels stupid now 23:35:18 Kron__ [~Kron@129-97-120-69.uwaterloo.ca] has joined #lisp 23:35:18 -!- Kron_ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Read error: Connection reset by peer] 23:37:03 jlaire [~jlaire@80-248-244-31.cust.suomicom.fi] has joined #lisp 23:37:03 Intensity [APBiW8ojOM@unaffiliated/intensity] has joined #lisp 23:37:45 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Quit: Linkinus - http://linkinus.com] 23:37:54 -!- AntiSpamMeta [~MetaBot@unaffiliated/afterdeath/bot/antispambot] has quit [Ping timeout: 255 seconds] 23:38:25 kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined #lisp 23:38:47 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 23:39:27 -!- Joreji_ [~thomas@vpn-eu2.unidsl.de] has quit [Ping timeout: 248 seconds] 23:40:33 -!- hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has quit [Client Quit] 23:40:49 Joreji [~thomas@vpn-ho1.unidsl.de] has joined #lisp 23:42:40 -!- mcsontos [~mcsontos@hotspot8.rywasoft.net] has quit [Quit: Leaving] 23:43:11 hargettp [~hargettp@pool-71-174-127-247.bstnma.east.verizon.net] has joined #lisp 23:44:07 -!- aleron [~Brad@cpe-098-025-205-230.sc.res.rr.com] has quit [Quit: leaving] 23:46:04 -!- jtza8 [~jtza8@wbs-41-208-219-19.wbs.co.za] has quit [Remote host closed the connection] 23:46:07 Well, automatically including supplied-p variables into the lambda list is dumb, for reasons that should've been obvious (how are they named?) 23:46:17 austinh: gensym 23:46:31 -!- juniorroy [~juniorroy@212.36.228.103] has quit [Remote host closed the connection] 23:46:48 For some reason, I didn't think gensym would work in this case. 23:46:59 austinh: it will work 23:47:11 Yeah, that was dumb of me. 23:48:09 austinh: I actually parsed lambda lists in the past, I'm just (1) too lazy to dig out that code, (2) don't want to spoil your fun of doing it yourself :) 23:49:29 akovalenko: That's ok, I've got alexandria to do the heavy lifting. 23:51:25 -!- Joreji [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 240 seconds] 23:56:19 -!- Kron__ [~Kron@129-97-120-69.uwaterloo.ca] has quit [Quit: Kron awayyy!] 23:57:03 replore_ [~replore@203.152.213.161.static.zoot.jp] has joined #lisp 23:57:24 SucklinPig [~KAPITAL@cpe-174-099-078-179.nc.res.rr.com] has joined #lisp 23:57:35 -!- pjb- [~t@81.202.16.46.dyn.user.ono.com] has quit [Ping timeout: 248 seconds] 23:59:49 -!- srolls [~user@167.216.131.126] has quit [Remote host closed the connection]