00:02:37 -!- fe[nl]ix [n=algidus@88-149-210-207.dynamic.ngi.it] has quit ["Valete!"] 00:03:07 -!- rajesh [n=rajesh@nylug/member/rajesh] has quit ["leaving"] 00:03:36 attila_lendvai: I'm sorry you have that confusion 00:04:22 asdf::coerce-name is just weird 00:04:46 It string-downcases symbols, I bet that's a kludge for allegro's modern mode 00:05:02 blackened`_ [n=blackene@ip-89-102-22-70.karneval.cz] has joined #lisp 00:05:08 (but it doesn't touch strings) 00:05:14 attila_lendvai: why would you iterate on the symbols of a package to import them anyway? you're importing local variable names and all kinds of crap 00:05:39 attila_lendvai: well, you might or might not be. there's no way to be sure unless you control the starting and stopping of lisp images. 00:05:51 You realize he's gone? 00:06:00 atilla? 00:06:12 yes 00:06:15 rahul: Yeah. Went to sleep. 00:06:42 oh, didn't see the /me when I was scanning scrollback 00:06:44 *nyef* tries building a one-line fix to bug 458015. 00:07:40 I god-fucking hate modern-mode 00:07:59 mostly because it makes people introduce kludges 00:09:28 -!- spilman [n=spilman@ARennes-552-1-126-110.w92-139.abo.wanadoo.fr] has quit ["Quitte"] 00:09:50 tcr: god-fuck? Is that a literal translation from german? (in which case, quite awesome :) 00:10:07 It'd make for an interesting form of worship... 00:10:33 tcr: boycott it 00:10:53 fe[nl]ix [n=algidus@88-149-211-149.dynamic.ngi.it] has joined #lisp 00:10:55 it creeped into asdf :( 00:11:31 Perhaps not, the relevant change came from niko 00:11:43 pkhuong: from the intensity i'd guess it came from spain :-) 00:11:46 nyef: do you know an ISA with 2-operand instructions, but in which all non-commutative operators have a flipped version? 00:13:01 A "flipped version"? 00:13:07 pkhuong: heh, i actually also noted it. "god-fucking hate" is so brutal. Google tells me it is somewhat common tho. 00:13:19 Like FSUB and FSUBR. 00:13:45 Not sure. Didn't some of the PDPs have something like that? 00:15:53 -!- attila_lendvai [n=ati@apn-89-223-205-75.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 00:16:00 that (and XCHG) would really simplify SSA-style reg alloc. 00:17:00 tcr: I know I'm responsible for adding a tweak to make ASDF not incompatible with modern mode... 00:17:36 rpg: I just wrote to asdf-devel. 00:17:39 tcr: I'm pretty sure that string-downcase pre-dates my touching of asdf, though. 00:17:39 It's too bad modern mode isn't just the default on every implementation. Then people wouldn't have to tweak things for it. >:) 00:18:11 -!- mrSpec [n=Spec@unaffiliated/mrspec] has quit [] 00:18:13 rpg: I hate to say it, but for interoperating with Java and the web, modern mode is a godsend.... 00:18:15 Allegro is not consistent, for example you still have to upcase in ~// iirc 00:18:37 -!- Paraselene__ [n=None@79-67-188-149.dynamic.dsl.as9105.com] has quit [Connection timed out] 00:18:38 godsend? 00:18:53 some send Him, some... 00:18:54 rpg: I'd _really_ appreciate if you could write an asdf:who-depends-on. I could make great use of it in Slime. 00:18:55 lispm: it's the opposite of tcr's construct ;-) 00:18:57 Paraselene__ [n=None@79-67-188-149.dynamic.dsl.as9105.com] has joined #lisp 00:19:18 tcr: per Fare, I'm a little disheartened with ASDF patching now. 00:19:33 Why? 00:19:47 Stuff never gets pushed, I don't have a way to get my colleagues to use updated ASDF, and git is making my life hell. 00:19:59 -!- blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has quit [Read error: 110 (Connection timed out)] 00:20:16 -!- Yuuhi [i=benni@84.131.223.203] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 00:20:30 Huh stuff never gets pushed? That's not my impression. ASDF development was dormant for years, not it's dorman for a few weeks until gwking finds some time 00:20:38 now 00:21:01 Hrm... Is (sb-introspect:find-definition-sources-by-name 'common-lisp:structure-object :structure) => (#S(SB-INTROSPECT:DEFINITION-SOURCE :PATHNAME NIL :FORM-PATH NIL :CHARACTER-OFFSET NIL :FILE-WRITE-DATE NIL :PLIST NIL :DESCRIPTION NIL)) correct? 00:21:11 I just wish we'd moved to sourceforge svn + trac and had two or three people who had write privs. 00:21:26 nyef: is that with tcr's patch? 00:21:40 pkhuong: No, it's with mine. They might be the same change, though. 00:21:42 with all due respect to gary, he's as much of a git newbie as I am. You shouldn't run a project on a VCS that you're a novice at. 00:21:52 (What's tcr's patch?) 00:22:33 nyef: I don't remember myself, but leves reported some bug and I remember looking into it. 00:23:12 Not seeing it in my email archives... 00:23:27 *rpg* is just disheartened because I'm wading through an intractable cl-yacc bug... 00:23:42 *rpg* can't manage pronoun agreement, either. 00:23:49 -!- carlocci [n=nes@93.37.208.232] has quit ["eventually IE will rot and die"] 00:23:51 Time to go eat dinner.... 00:24:03 nyed: https://bugs.launchpad.net/sbcl/+bug/458015 00:24:07 tcr: I think that ASDF::COERCE-NAME is just a kludge to allow using keywords for system names. the case-lowering is done because on *nix the customary case is suppose to be downcase 00:24:23 nyef: I definitively remember looking into it 00:24:24 -!- nasloc__ [i=tim@kalug.ks.edu.tw] has quit [Remote closed the connection] 00:24:39 tcr: I'll see if I can grab a minute to look at your who-depends-on. that depends-on me killing this blasted parser bug and moving on.... 00:24:40 timchen1` [i=tim@163.16.211.21] has joined #lisp 00:24:43 bye for now. 00:24:56 tcr: Yeah, that's the bug... I don't see a patch, nor do I see that it's tagged right. 00:24:57 rpg: thanks! 00:25:12 *nyef* checks gmane. 00:25:17 nyef: I remember the issue was in genesis 00:25:27 wrong initialization of some slot 00:25:48 (actually no explicit initialization, hence it's initialized to 0 by default) 00:25:51 Yeah, I added a single line to genesis to initialize the slot to NIL and it appears to have cleared things up. 00:25:58 -!- rvirding [n=chatzill@h92n3c1o1034.bredband.skanova.com] has left #lisp 00:26:05 Right, I wrote about that to the mailing list 00:26:33 rjain annotated #90743 "now, with multiple delegation!" at http://paste.lisp.org/display/90743#5 00:26:35 and said that I think that a commit should also make sure that we aren't bitten by a bug like this in future 00:26:46 nyef: like some FIXME comment says 00:27:05 *nyef* shakes his head. 00:27:14 *_deepfire* thinks that he just had hunchentoot invoke a debugger on him, as per antifuchs' changes.. 00:27:23 You thinking of the FIXME that says that the information should be pulled from the compiler tables? 00:27:24 -!- pkhuong [n=pkhuong@modemcable238.100-176-173.mc.videotron.ca] has quit [Read error: 104 (Connection reset by peer)] 00:27:27 nyef: It's "Re: Introspection bug" 00:27:45 Intertricity [n=Raz@64.134.190.24] has joined #lisp 00:27:45 2009-Oct-22 00:28:00 davazp [n=user@218.Red-83-37-233.dynamicIP.rima-tde.net] has joined #lisp 00:28:27 pkhuong [n=pkhuong@173.176.100.238] has joined #lisp 00:29:00 -!- baddog [n=liam@unaffiliated/baddog144] has quit [Read error: 110 (Connection timed out)] 00:29:18 nyef: I was mostly thinking of tcr's build-time xref patch, or the one that fixes some xref slots being unitialised at 0 instead of nil. 00:29:27 Clearly, I need to re-sub to the mailing list... 00:30:02 just use gmane :) 00:30:14 subscribing/unsubscribing is just a key press 00:30:19 -!- Dawgmatix [n=dman@76.124.3.89] has quit ["Ex-Chat"] 00:30:41 *lispm* just fixed writing tar files on the Lisp Machine 00:31:07 lighterthanair [n=lightert@38.105.245.18] has joined #lisp 00:31:13 Hrm... The KLUDGE comment about offsets into LAYOUT is clearly old, given cold-set-layout-slot. 00:32:51 I'm off to bed, too. 00:32:53 -!- tcr [n=tcr@host146.natpool.mwn.de] has quit ["Leaving."] 00:33:28 billitch [n=billitch@rob92-1-82-67-155-88.fbx.proxad.net] has joined #lisp 00:34:39 sikander, awake? 00:34:43 Yes, still 00:35:06 I've just mailed you my Scigraph version 00:35:18 Woo! 00:35:32 Dammit, I don't know when I'll be going to sleep now... 00:35:35 thanks! 00:36:05 it seems to work quite a bit on my Lisp Machine with CLIM 2 00:36:07 http://lispm.dyndns.org/lisp/pics/lispm-clim-scigraph-2.png 00:36:13 frootloop [n=frootloo@a91-153-120-169.elisa-laajakaista.fi] has joined #lisp 00:36:38 it lacks any fixes for McCLIM, which the McCLIM version of scigraph has 00:37:04 Did ron garret recently receive a blow to the head, or has he always been this confused? 00:37:15 lispm: Hey, looks good! 00:37:27 what does ron say now? 00:37:33 lispm: I received the e-mail, lemme see if it works 00:37:49 Sikander, it also works mostly it seems 00:38:04 Sikander: I'm pretty sure there are changes needed 00:39:10 pkhuong: you should have seen his blathering about packages years ago 00:39:38 lispm: still confused about macroexpansion time. 00:39:41 he basically said that CL would be better off without any package support at all 00:39:44 ah 00:39:50 -!- nvoorhies [n=nvoorhie@76.216.21.95] has quit [Read error: 131 (Connection reset by peer)] 00:40:15 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 00:40:37 ron used to do some cool stuff 00:40:39 lispm: would this package USER be the old version of common-lisp-user? 00:40:53 it is now CL-USER 00:40:58 USER is old 00:41:19 where does it say user? 00:41:25 -!- Guthur [n=Michael@host81-131-243-232.range81-131.btcentralplus.com] has quit ["Computer says no"] 00:41:44 Hi lisp programmers, i try to strat stumpwm on my gentoo. There i get always the following soket error http://pastebin.ca/1680100 can anyone from you explay me what exactly the error is? 00:41:57 I see, USER 00:41:59 lispm: in load-dwim.lisp. Am I not supposed to load that one? 00:42:20 frootloop: you might like #stumpwm 00:42:35 stuff like that needs to be changed, it is also in package.lisp 00:42:36 Socket error in "connect": 2 (No such file or directory) 00:42:43 -!- chris2 [n=zhora@91.22.166.206] has quit [Read error: 145 (Connection timed out)] 00:42:50 which means something is badly misconfigured 00:42:56 but I promise you, you will run into deeper problems ;-) 00:44:14 *lispm* wonders if CLIM works with RMCL 00:44:50 # 00:44:50 8: (XLIB:OPEN-DISPLAY "")[:EXTERNAL] 00:44:50 # 00:44:52 9: (STUMPWM::STUMPWM-INTERNAL ":0") 00:45:00 the loss of the :0 is suspicious... 00:45:11 lispm: RMCL? 00:45:38 Rosetta MCL, the new MCL version that works with Intel Macs 00:46:15 http://code.google.com/p/mcl/ 00:48:34 schme, rahul, i'm really not a lisp programmer. so it look that i have no chance to get it running? one thing that runs is stumpish. it opens a kind of a commando line terminal. 00:49:59 *nyef* parsed "commando line terminal" as "terminal containing lines without underpants" and had to think about it for a couple seconds. 00:50:37 *guaqua* was thinking of an especially sneaky terminal 00:50:57 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 00:51:07 lispm: Hmmm... I'll have a look at it tomorrow... 00:51:27 guaqua: ... using black underpants instead of a ski mask? 00:51:37 nvoorhies [n=nvoorhie@76.216.21.95] has joined #lisp 00:51:56 -!- beautiful [n=beauty@83.231.8.88] has quit [] 00:52:03 Sikander: might be useful to put that somewhere, maybe some McCLIM repository 00:52:11 one without underpants and with a ski mask 00:52:38 maybe somebody is interested to complete removing old stuff and simplify the source code 00:52:39 lispm: Yeah, once it's sort of working, I guess 00:52:46 -!- slyrus_ [n=slyrus@dsl092-019-253.sfo1.dsl.speakeasy.net] has quit [Read error: 110 (Connection timed out)] 00:53:05 I could reduce some of the files by 50% 00:53:21 lispm: As you may know, I had the idea to write such a program anyway, so I might be interested in helping you 00:53:43 lispm: It's probably going to take a lot of work to write something like that from scratch 00:54:05 lispm: So my energy might be better used getting this to work again 00:54:07 my main purpose was to get it running on Genera, because there it used the DW stuff - but some old version 00:54:36 ruediger_ [n=quassel@188-23-180-11.adsl.highway.telekom.at] has joined #lisp 00:54:54 the old CLIM 1 and DW stuff just got in the way 00:55:34 is this 'MCL' powerpc only stuff? 00:56:04 it is powerpc, but it runs on Intel Macs 00:56:06 I mean does it depend on CPU emulation 00:56:13 aha I see 00:56:25 it depends on the Rosetta PPC to Intel translator 00:56:35 which comes with Mac OS X 00:57:01 -!- ASau [n=user@83.69.227.32] has quit [Read error: 54 (Connection reset by peer)] 00:57:23 yeah on Snow Leopard rosetta is optional - I think I didn't install it :) 00:57:24 right 00:57:43 Since the clx backend of McCLIM is working quite well, I also figured it's easier to get rotated text working there, instead of trying to get gtkairo working. 00:58:51 does 'viewing' files in Listener work for anyone? I get wierd missing output for longer files? 00:59:03 ltriant [n=ltriant@202.136.38.162] has joined #lisp 00:59:41 also climacs has some redraw problems, but features nice code colorization 00:59:51 Sikander: How far rotated? Just a multiple of 90, or arbitrary angles? 01:00:42 nyef: ... arbitrary angles... 01:01:34 I just have to figure out how, in a rotated environment, I can get the absolute angle with respect to the original, non-rotated frame... :( 01:01:35 I don't know if xrender changed things, but the classic method was to render your text to a pixmap, pull the bits client-side, rotate them, and push them back server-side either to a pixmap and then do an image-copy or direct to the window. 01:03:43 crink [n=crink@unaffiliated/crink] has joined #lisp 01:03:48 nyef: how do you do that within a rotated environment? How do you know the angle to rotate your bitmaps at? 01:03:52 Well, if you're willing to go the brute-force-stupid route, translate a couple points varying on the X axis, re-base the result so you have one at 0,0, then convert the other to polar coordinates? 01:04:54 Of course, no bookmark for a clim spec. :-/ 01:05:00 clim make-application-frame 01:05:00 http://bauhh.dyndns.org:8000/clim-spec/28-2.html#_1481 01:05:25 -!- frootloop [n=frootloo@a91-153-120-169.elisa-laajakaista.fi] has quit ["thanx a bunch guys. have a bright night!"] 01:06:07 nyef: that can't be sufficiently general, can it? I mean, what about a (with-rotation (medium angle) (draw-text* foo 10 10))? 01:06:18 -!- Nshag [i=user@lns-bzn-36-82-251-43-64.adsl.proxad.net] has quit ["Quitte"] 01:06:58 nyef: How would the generalised draw-text* know what the angle is? 01:07:31 Not sure. It's been a while since I looked anywhere near this part of CLIM. 01:07:39 quek [n=read_eva@router1.gpy1.ms246.net] has joined #lisp 01:07:54 It's probably not good to mix regular text rendering with rotated one 01:07:57 clim with-rotation 01:07:57 http://bauhh.dyndns.org:8000/clim-spec/10-2.html#_535 01:08:02 ASau [n=user@83.69.227.32] has joined #lisp 01:08:23 ziga``: that makes no sense. if you draw-text in a rotated environment, it should be rotated 01:08:56 Sikander: true, but implementation-wise such generalisations cost performance 01:09:08 text is especially demanding :) 01:09:50 ziga``: Hmm... I think it's only a question of obtaining the actual angle at which the rendering should take place. 01:09:50 Sikander: well if that's clim spec than it's probably good 01:10:05 X11 supports rotated characters, so it should just be a matter of finding the gradient you want, and then dropping them down the line. 01:10:11 Okay, so you pull the current medium-transformation, which is, of course, overridden by with-rotation, and use that to compute transform-distance of a unit-length distance. 01:10:17 Exactly 01:10:32 Convert the resulting planar coordinates to polar coordinates and you have both your scaling -and- your angle. 01:10:34 Sikander: obtaining the actual angle? there must be some transformation matrix? 01:10:37 I just don't know if the spec says that text should be transformed as well 01:10:47 What it will do is to essentially produce a rotated font, so you may pay heavily in memory. 01:11:02 Zhivago: Yes, I know, I'll have to test performance 01:11:12 clim draw-text* 01:11:12 http://bauhh.dyndns.org:8000/clim-spec/12-5.html#_637 01:11:28 Right, of course. Graphics -> Drawing Functions. 01:11:30 If it's too heavy, we can always decide to make another function out of it 01:11:30 nyef: or rely on your favourite implementation's complex multiplication. 01:11:36 -!- ruediger [n=quassel@188-23-69-22.adsl.highway.telekom.at] has quit [Read error: 110 (Connection timed out)] 01:12:26 pkhuong: I'm a simple guy, I don't even do floating-point numbers very often, let alone complex ones. 01:13:20 look like you have to scale glyphs too :D good luck with that 01:14:29 font drawing =/= vector drawing sadly 01:15:25 Sikander: And it turns out that your problem is simpler and harder than that: draw-text* apparently has options for enabling glyph rotation (with the current rotation transformation) and adjusting the character baselines in an arbitrary direction. 01:15:40 nyef: Yes 01:16:02 I guess this still winds up back at determining the current angle for a rotation transformation in effect. 01:16:48 nyef: why is that such a problem? 01:17:01 I just need to be able to do that. And then we'll all be happy (well some of us) 01:17:09 ziga``: Because there doesn't seem to be a direct accessor for it? 01:17:11 you can always rotate a point and look at that to extract the angle 01:18:12 ziga``: Which was my point earlier. 01:18:22 *ziga``* knows too little about CLIM :( 01:18:25 chessguy_work [n=chessguy@pool-72-66-64-165.washdc.fios.verizon.net] has joined #lisp 01:18:27 ok 01:18:47 -!- Intertricity [n=Raz@64.134.190.24] has quit [Read error: 110 (Connection timed out)] 01:18:59 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 110 (Connection timed out)] 01:19:35 Yeah, not seeing a direct accessor specified, but it should still be easy to find by mathing it out of applying the transform to a distance. 01:19:54 *Sikander* can't keep his eyes open. 01:20:03 *yawn* 01:20:11 Time for me to sleep... 01:20:13 And, as I said, you pull the transform for the medium. 01:20:14 -!- chessguy_work is now known as chessguy 01:20:22 Sikander: Sleep well, then. 01:20:34 nyef: thanks 01:20:36 Goodnight 01:20:41 -!- Sikander [n=soemraws@oemrawsingh.xs4all.nl] has quit ["Time to sleep..."] 01:23:36 -!- bobbysmith007 [n=russ@one.firewall.gnv.acceleration.net] has quit ["Leaving."] 01:23:41 -!- ikki [n=ikki@201.155.75.146] has quit ["Leaving"] 01:27:12 *p_l* ponders if he has irrational fear of McCLIM breaking too often 01:27:28 -!- OmniMancer [n=OmniManc@122-57-3-202.jetstream.xtra.co.nz] has quit ["Leaving."] 01:28:23 I just find McCLIM to be... uncompelling, and less than really usable. 01:29:17 -!- lighterthanair [n=lightert@38.105.245.18] has left #lisp 01:29:23 ace4016 [i=ace4016@76.170.134.79] has joined #lisp 01:29:27 And I don't know how much of that is me, how much is available documentation, and how much is McCLIM. 01:29:29 -!- davazp [n=user@218.Red-83-37-233.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 01:33:43 98 01:33:52 -!- sysop_fb [i=fb@cpe-075-184-018-184.nc.res.rr.com] has quit [] 01:36:32 -!- saikatc [n=saikatc@c-24-5-85-71.hsd1.ca.comcast.net] has quit [] 01:37:52 -!- Hun [n=hun@p50993726.dip0.t-ipconnect.de] has quit [Remote closed the connection] 01:38:46 Patzy_ [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has joined #lisp 01:38:55 cods_ [n=cods@tuxee.net] has joined #lisp 01:39:19 cmm- [n=cmm@bzq-79-178-135-94.red.bezeqint.net] has joined #lisp 01:40:09 -!- dnolen [n=dnolen@pool-70-107-155-144.ny325.east.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 01:40:33 dnolen [n=dnolen@pool-70-107-155-144.ny325.east.verizon.net] has joined #lisp 01:42:23 -!- ruediger_ [n=quassel@188-23-180-11.adsl.highway.telekom.at] has quit [Remote closed the connection] 01:42:50 neat! xong just works on macos x 01:43:01 *Xach* was expecting some tediosity 01:43:38 Xach: that's pretty awesome. 01:44:25 I kinda dig the Xong music. 01:44:32 -!- chessguy [n=chessguy@pool-72-66-64-165.washdc.fios.verizon.net] has quit ["Leaving"] 01:44:51 the presentation in general, actually, is pretty decent. Specially for something that was written in just 7 days. 01:46:55 CBro2007 [n=manukaul@c-1596e253.026-209-73746f13.cust.bredbandsbolaget.se] has joined #lisp 01:47:33 guys I was wondering if I should get into LISP programming 01:47:41 what is a good IDE for LISP? 01:47:43 Emacs? 01:47:45 Xemacs? 01:47:47 SLIME 01:47:53 or you guys use something else? 01:47:57 whats SLIME? 01:48:16 minion: slime? 01:48:16 slime: SLIME is the Superior Lisp Interaction Mode for Emacs. http://www.cliki.net/slime 01:48:22 ah ok 01:48:32 I haven't used Emacs so have to get used to it 01:48:44 any good online resources to learn LISP/ 01:48:45 ? 01:48:51 CBro2007: also, it's Lisp, not LISP anymore 01:48:59 minion: tell CBro2007 about pcl 01:49:00 CBro2007: please see pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 01:49:08 and whats the difference between Lisp and Common Lisp? 01:49:24 Common Lisp is a programming language. 01:49:29 Lisp is a cult. 01:49:48 er, a family of languages. 01:50:05 CBro2007: Lisp is 1) "LISP" - the original language in 60's 2) Family of languages that share certain qualities 01:50:11 so which is the best of this Lisp cult? 01:50:13 :) 01:50:27 -!- Patzy [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has quit [Read error: 110 (Connection timed out)] 01:50:31 is that link the entire book or excerpts from the book? 01:50:35 CBro2007: well, this channel deals with ANSI Common Lisp 01:50:35 Best is one of those words which makes questions unanswerable. 01:50:37 The best? "My Favorite Toy Lisp", of course. :-P 01:50:42 CBro2007: it's the whole book 01:50:48 saikatc [n=saikatc@173-13-150-22-sfba.hfc.comcastbusiness.net] has joined #lisp 01:50:58 ah nice 01:51:19 -!- cmm [n=cmm@bzq-79-178-135-94.red.bezeqint.net] has quit [Read error: 110 (Connection timed out)] 01:51:38 I am just trying to understand what Common Lisp is most like 01:51:48 I have done other procedural laguages 01:51:55 this is more declarative yeah? 01:52:06 had done some SCHEME ages ago 01:52:09 is it similar? 01:52:38 -!- pavelludiq [n=quassel@83.222.175.184] has quit [Remote closed the connection] 01:53:23 CBro2007: not much (well, both use S-Expressions, but CL is multi-paradigm while Scheme leans much towards functional) 01:53:35 -!- arbscht [n=arbscht@unaffiliated/arbscht] has quit [Read error: 60 (Operation timed out)] 01:53:52 Okay, time for me to head bedwards. 01:53:55 G'night all. 01:54:08 CBro2007: common lisp is most like python on steroids. 01:54:13 So how does Common Lisp weigh against other traditional languages like Java, C, C++ etc? 01:54:21 although that's more the other way around. Python is Common Lisp filtered through "stupid" 01:54:27 I didn't get into Python ... more Perl really 01:54:50 Perl without syntax, then? 01:55:01 I just spoke to a dude who wrote a whole DBMS using Lisp 01:55:14 I mean this guy is like a Lisp champion... about 60 odd years old 01:55:26 a champion, I see. 01:55:27 sykopomp: sorry? 01:55:47 there's actually a couple of native lisp databases, and then several that map lisp objects to existing databases. 01:55:52 yeah he was like... anything you can do in C or Java or whatever you can do it more easily in Common Lisp 01:55:55 and then some that just give you an interface and say "glhf" 01:55:56 -!- Jabberwockey [n=jens@84.46.46.46] has quit [Read error: 145 (Connection timed out)] 01:55:56 They're actually pretty similar -- it's easy enough to translate algorithms from one to the other. 01:56:08 CBro2007: btw, PostgreSQL afaik started out in Common Lisp 01:56:18 arbscht [n=arbscht@unaffiliated/arbscht] has joined #lisp 01:56:35 hmm 01:56:44 and then what happened? 01:56:45 :) 01:57:04 I mean in scheme what I didn't like was all that bracket matching shit 01:57:14 and this was like 10 years ago or more 01:57:19 maybe things are better now 01:57:21 Hmm, I guess C gives you a lot of problems, then. 01:57:24 CBro2007: that's not only not a problem, but it ends up being a huge advantage with editing. 01:57:31 CBro2007: they found it too hard to get predictable performance, especially on the tiny systems of the day. They also decided that OODBs were the past and made their SQL layer (built on top of an OODB) native. 01:57:36 CBro2007: for example, I use paredit, which lets me edit code structurally :) 01:58:07 pkhuong: makes me think of a large russian saying "PUNY LANGUAGE" or something. 01:59:16 so what makes a good Lisp programmer? 01:59:18 :) 01:59:30 CBro2007: practice, incredibly enough. 01:59:32 I mean do you have to have a pre-requisite of something else? 01:59:47 CBro2007: about 10 years of good, honest effort. Just like most other things. 01:59:50 would it help if you have a C or C++ background? or Perl 02:00:11 redblue [i=star@207.253.108.86] has joined #lisp 02:00:12 CBro2007: you'll be able to translate your knowledge of other languages, yes, but you should keep an open mind because lisp does a lot of things differently. 02:00:17 sykopomp: can you code pretty much everything or is it more suited towards LOGIC programming? 02:00:18 sean [n=sean@74-61-160-29.hon.clearwire-dns.net] has joined #lisp 02:00:23 but that's true of learning any language. 02:00:29 yeah agree 02:00:32 CBro2007: it's a general-purpose programming language. 02:00:36 and it's multiparadigm. 02:00:39 -!- nvoorhies [n=nvoorhie@76.216.21.95] has quit [] 02:00:40 does anybody here know anything about lisp scoping? 02:00:41 so you can adjust your approach based on a problem. 02:00:42 -!- sean is now known as Guest46917 02:00:47 what do you mean by multi paradigm? 02:00:49 Guest46917: what's the issue? 02:01:01 CBro2007: it's procedural, object-oriented, and function-level. 02:01:04 does it use OO concepts in Common Lisp? 02:01:09 ah I see 02:01:10 and honestly, whatever else you need it to be, since the programming language is programmable. 02:01:20 ah cool 02:01:49 how do you change a variable outside its block: example (defun foo () (setf x 10) (something x) (print x)) (defun something (y) (setf y 20)) prints 20 02:02:02 the main selling point is that it's programmable, in my opinion. I think most other advantages can be derived from there. 02:02:16 is there things that are super easy in Common LISP that would take forever in other languages? 02:02:30 -!- Edward__ [i=Ed@AAubervilliers-154-1-7-131.w86-212.abo.wanadoo.fr] has quit ["L'oignon fait la farce."] 02:02:31 Guest46917: use a dynamic variable, or a closure. 02:02:41 if you use a closure, you'll need some way to get access into the lexical environment. 02:02:51 CBro2007, writing embedded DSLs 02:02:54 but if you're using closures or globals, it's quite possible that what you want is a class :) 02:03:06 sykopomp: is this closure you talk about a "transitive closure"? 02:03:09 CBro2007: rapid prototyping, plus the DSLs adlai mentioned. 02:03:16 something that will let you traverse graphs ? 02:03:24 "super easy" and "forever" are exaturations, but it's still much more natural to do that in Common Lisp. 02:03:27 just out of curiosity 02:03:28 CBro2007: I believe something like would be hard to implement in most languages. 02:03:40 CBro2007: a closure is a function that retains access to a lexical environment. 02:03:49 even when passed around. 02:03:50 ah i see 02:04:11 I thought it was something to do with recursion but in a functional manner 02:04:11 Guest46917: since everything is passed by value, you could also pass an object with a slot that'll contain the value you want to modify, e.g. a one-element list. 02:04:34 CBro2007: closures may be used for that, sure. 02:05:32 ok 02:05:39 pkhuong: what was that code doing? 02:05:56 -!- Guest46917 [n=sean@74-61-160-29.hon.clearwire-dns.net] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- cods_ [n=cods@tuxee.net] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- crink [n=crink@unaffiliated/crink] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- billitch [n=billitch@rob92-1-82-67-155-88.fbx.proxad.net] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- milanj [n=milan@79.101.138.147] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- Odin- [n=sbkhh@s121-302.gardur.hi.is] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- prxq [n=prxq@f051067224.adsl.alicedsl.de] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- yahooooo [n=yahooooo@c-67-170-39-104.hsd1.wa.comcast.net] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- joga [i=joga@unaffiliated/joga] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- Xof [n=crhodes@158.223.51.79] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- Madsy [n=Madsy@fu/coder/madsy] has quit [sendak.freenode.net irc.freenode.net] 02:05:56 -!- _deepfire [n=deepfire@80.92.100.69] has quit [sendak.freenode.net irc.freenode.net] 02:06:14 CBro2007, it compiles to efficient matching based on strings 02:06:18 there are so many languages out there nowadays! :) 02:06:55 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #lisp 02:07:05 anyone use ML or Haskell? 02:07:16 are they competition for common lisp? 02:07:22 competition? 02:07:28 CBro2007, they're very different languages 02:07:34 haskell is a very different language. In my opinion, for a different kind of programmer. 02:07:36 CBro2007: try reading. 02:08:00 k 02:08:21 CBro2007: no harm in learning both :) 02:08:25 cods_ [n=cods@tuxee.net] has joined #lisp 02:08:30 -!- cods [n=cods@tuxee.net] has quit [Connection refused] 02:08:35 Guest46917 [n=sean@74-61-160-29.hon.clearwire-dns.net] has joined #lisp 02:08:35 crink [n=crink@unaffiliated/crink] has joined #lisp 02:08:35 billitch [n=billitch@rob92-1-82-67-155-88.fbx.proxad.net] has joined #lisp 02:08:35 milanj [n=milan@79.101.138.147] has joined #lisp 02:08:35 Odin- [n=sbkhh@s121-302.gardur.hi.is] has joined #lisp 02:08:35 prxq [n=prxq@f051067224.adsl.alicedsl.de] has joined #lisp 02:08:35 yahooooo [n=yahooooo@c-67-170-39-104.hsd1.wa.comcast.net] has joined #lisp 02:08:35 joga [i=joga@unaffiliated/joga] has joined #lisp 02:08:35 Madsy [n=Madsy@fu/coder/madsy] has joined #lisp 02:08:35 Xof [n=crhodes@158.223.51.79] has joined #lisp 02:08:35 _deepfire [n=deepfire@80.92.100.69] has joined #lisp 02:08:55 common lisp was invented in order to stop humanity from wasting energy on producing new languages.. but it failed 02:09:02 joga_ [i=joga@83.150.90.112] has joined #lisp 02:09:20 prxq_ [n=prxq@e179218193.adsl.alicedsl.de] has joined #lisp 02:09:40 -!- Guest46917 [n=sean@74-61-160-29.hon.clearwire-dns.net] has quit [Read error: 104 (Connection reset by peer)] 02:09:44 ziga``, some would argue that humanity failed to live up to Common Lisp's expectations :P 02:09:48 or was that LISP 1.5 02:10:04 Adlai: that's true somehow 02:10:13 -!- prxq_ [n=prxq@e179218193.adsl.alicedsl.de] has quit [Client Quit] 02:10:33 so what editors did you guys use for Common Lisp again? 02:10:47 Slime in emacs all of you? 02:10:59 all 02:11:08 it's incredible 02:11:20 but alien at first, like lisp 02:11:23 is there like a good tutorial I can follow ? 02:11:32 minion, tell CBro2007 about slime-video 02:11:32 CBro2007: please see slime-video: slime.mov: "using SLIME" video by Marco Baringer, http://common-lisp.net/project/movies/movies/slime.mov 02:11:48 CBro2007, you can get SLIME through clbuild 02:11:52 minion, tell CBro2007 about clbuild 02:11:52 CBro2007: direct your attention towards clbuild: clbuild [common-lisp.net] is a shell script helping with the download, compilation, and invocation of Common Lisp applications. http://www.cliki.net/clbuild 02:11:55 the first step is to install everythin necessary :D not trivial 02:12:09 hmm yeah true 02:12:18 can I install Common Lisp on a Mac? 02:12:24 or it needs Linux? 02:12:34 use SBCL or Clozure CL 02:12:36 CBro2007, it'll work great on a mac 02:12:39 CBro2007: there is no one 02:12:44 minion, tell CBro2007 about ClozureCL 02:12:44 Sorry, I couldn't find anything in the database for ``ClozureCL''. 02:12:52 minion, you need more AI 02:12:52 what's up? 02:12:57 minion, tell CBro2007 about CCL 02:12:58 CBro2007: please see CCL: OpenMCL is now called Clozure Common Lisp (CCL). http://www.cliki.net/CCL 02:12:58 sorry ... no one common lisp... 02:13:03 but rather many implementations. 02:13:19 whats CLISP? - Ansi 02:13:37 -!- Odin- [n=sbkhh@s121-302.gardur.hi.is] has quit [] 02:13:45 CBro2007, I don't think you would enjoy using CLISP 02:14:03 CLISP is porable but slow, SBCL and Clozure CL spit out x86 instructions, yeah machine code 02:14:21 CLISP produces only bytecode 02:14:27 like python 02:14:40 ok 02:14:51 so for a newbie you would suggest using CCL? 02:14:51 it's the same language though.. just different implementations 02:14:51 ziga``: there's an experimental GNU Lightning-based JIT 02:15:06 ok gotta go now.. will come back to this channel later on 02:15:07 ziga``: and it's very good at bignums! 02:15:08 :) 02:15:11 CBro2007, CCL is great on macs 02:15:12 thanks guys 02:15:18 CBro2007: Yeah, for OS X ... it can also call Cocoa frameworks. 02:15:19 ok cool 02:15:25 ah nice 02:15:41 yeah, CCL for OSX and Windows, SBCL on Linux (though CCL works fine too) 02:15:52 can you do things like Web Services in Lisp? 02:15:53 pkhuong: but problably it won't get near SBCL? 02:15:55 just wondering 02:16:00 CBro2007: sure. 02:16:01 CBro2007, yes, google for ITA 02:16:02 if there are Lisp Modules etc 02:16:10 like a CPAN for Perl 02:16:17 sykopomp: who needs bignums :D 02:16:18 where you can download and install Lisp modules etc? 02:16:25 CBro2007: the distribution side is rather ... scatterbrained 02:16:28 CBro2007: Check out cliki.net and asdf-install 02:16:33 also clbuild 02:16:35 ok 02:16:41 minion: tell CBro2007 about clbuild 02:16:42 CBro2007: please look at clbuild: clbuild [common-lisp.net] is a shell script helping with the download, compilation, and invocation of Common Lisp applications. http://www.cliki.net/clbuild 02:16:48 sykopomp, actually, CLISP has most-positive-bignum! 02:17:03 timchen119 [i=tim@163.16.211.21] has joined #lisp 02:17:06 clbuild is developer-oriented (heavily), though 02:17:19 -!- timchen1` [i=tim@163.16.211.21] has quit [Read error: 131 (Connection reset by peer)] 02:17:25 -!- CBro2007 [n=manukaul@c-1596e253.026-209-73746f13.cust.bredbandsbolaget.se] has quit [] 02:18:01 ziga``: with gnu lightning? Probably never... 02:18:02 Yeah, we're sort of in a transitional stage with module distribution ... ASDF has been around for a while, but it has plenty of shortcomings, and various things (clbuild, clc, xcvb, etc.) are vying to replace it. 02:18:21 *gnu* lightning 02:19:43 -!- amaron [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has quit [Read error: 110 (Connection timed out)] 02:19:56 sellout: ASDF and xcvb are not library distribution mechanisms. 02:20:14 sykopomp: No, but they're all pieces of the puzzle. 02:20:21 what's wrong with asdf? 02:20:44 ziga``: apparently, it gets ugly for large systems, and doesn't provide "deterministic" builds. 02:20:45 all the projects use it - it doesn't look like it's going away 02:20:58 aha 02:21:02 it seems less of an issue for small and medium-sized projects 02:21:07 but xcvb is interesting nonetheless. 02:21:30 I'm thinking of adding xcvb building to some of my projects to see how it goes. 02:21:32 -!- prxq [n=prxq@f051067224.adsl.alicedsl.de] has quit [Read error: 113 (No route to host)] 02:21:42 ziga``: xcvb also handles translating from asdf systems, so if/when it gets a foothold, there's a nice migration path. 02:21:46 -!- joga [i=joga@unaffiliated/joga] has quit [Connection timed out] 02:21:54 that's nice 02:21:57 sellout: they can live independently. The library -distribution- mechanism is in a much more grim state than system building is. 02:22:22 asdf-install usually works 02:22:39 sellout, to and from 02:22:50 I think it's too much trouble for users. 02:22:56 sykopomp: true. When I say asdf, I generally mean asdf, asdf-install, asdf-binary-locations, etc. I'll try to come up with a better shorthand for that. 02:23:00 downloading a .tar and symlinking the asd isn't hard imo 02:23:19 ziga``: It is when you have a version conflict. 02:23:21 sellout: asdf-install is library distribution. It is not asdf. 02:23:30 sykopomp: of course - users want Eclipse :D 02:23:42 sykopomp: Which is why I said I'd come up with a better shorthand. 02:23:53 ziga``: CPAN seems to be more along the lines of what users want. 02:24:01 sellout: ok it seem I haven't noticed the faults because I'm not an advanced user 02:25:52 Perhaps libCL is a good idea - to just throw all the good libs into one download - the lisp world isn't so big... the more obscure libraries are often half-baked 02:26:08 LibCL is definitely helpful. 02:27:04 baddog [n=liam@unaffiliated/baddog144] has joined #lisp 02:27:58 asdf* is the right shorthand 02:27:59 ziga``: it's not scalable. 02:28:09 that's also a problem with clbuild 02:28:33 clbuild is only as scalable as your willingness to keep manually adding libraries and dependencies to my-projects 02:28:58 which defeats the purpose of having an easy library distribution tool, imo 02:29:10 not to mention, it encourages the god-awful "what release?" culture. 02:32:12 JAS415 [n=jon@c-71-233-58-7.hsd1.ma.comcast.net] has joined #lisp 02:32:12 -!- kejsaren1 [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 02:33:51 I would be pretty happy if all the tars on cliki were up to date.. I don't have other problems 02:34:28 ziga``: I'm with the "let's have something CPANy" camp, myself. 02:34:51 Let's have something RDFa-ish :) 02:35:05 URLs and public keys. 02:36:20 regarding scalability... why not make an "indexer" for libraries and a s-exp based "package description" - which would contain project name, description, links to download/repo and dependencies... this in turn could be used by whatever the user wants to manage his libs 02:36:35 -!- dnolen [n=dnolen@pool-70-107-155-144.ny325.east.verizon.net] has quit [] 02:38:18 this could be coupled with cl-user.net 02:40:02 p_l: isn't that simplifying only a small part of the problem, and mostly doing stuff we can already do? 02:40:13 sounds a lot like asdf + asdf-install to me 02:40:20 sounds like a very slight automation for "go to cl-user.net and see if they have a link to a download" 02:40:24 except asdf without the system loading code 02:40:28 rme [n=rme@pool-70-104-115-69.chi.dsl-w.verizon.net] has joined #lisp 02:40:44 except, you know. You then need something that can actually take whatever download you receive, and make something useful out of it. 02:41:28 -!- milanj [n=milan@79.101.138.147] has quit ["This computer has gone to sleep"] 02:41:35 sykopomp: big difference when it allows you to make asdf-install use it, clbuild use it, some new&fancy package manager use it etc 02:41:47 p_l: which solves nothing, honestly. 02:42:18 because i still need to deal with clbuild, and/or asdf-install. As opposed to being able to say "download this binary. Call this binary in your preferred OS and ponies will rain down on you." 02:42:28 -that- is library distribution. 02:42:43 "everything will be easy, painless, and with only minimal ass-bleeding" 02:44:18 sykopomp: Well, that's another tool that I plan to make ;-) 02:44:51 p_l: that's the one we actually need the most :\ 02:49:06 ... great, LispWorks for Linux apparently uses X11 extensions that got dropped from X.Org 02:51:42 -!- ziga`` [n=user@BSN-142-50-250.dial-up.dsl.siol.net] has quit [Remote closed the connection] 02:53:15 at least I managed to get it to work 03:01:43 -!- thom_logn [n=thom@pool-173-67-109-95.lsanca.fios.verizon.net] has quit ["Leaving"] 03:06:55 -!- dmiles [n=dmiles@c-76-104-220-73.hsd1.wa.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 03:07:11 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 03:07:17 dmiles_afk [n=dmiles@c-76-104-220-73.hsd1.wa.comcast.net] has joined #lisp 03:10:13 -!- rme [n=rme@pool-70-104-115-69.chi.dsl-w.verizon.net] has left #lisp 03:10:23 rme [n=rme@pool-70-104-115-69.chi.dsl-w.verizon.net] has joined #lisp 03:21:45 -!- kpreid [n=kpreid@216-171-189-244.northland.net] has quit [] 03:25:32 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit ["rcirc on GNU Emacs 23.1.50.1"] 03:25:59 phax [n=phax@unaffiliated/phax] has joined #lisp 03:26:36 -!- saikatc [n=saikatc@173-13-150-22-sfba.hfc.comcastbusiness.net] has quit [] 03:31:27 -!- baddog [n=liam@unaffiliated/baddog144] has quit [sendak.freenode.net irc.freenode.net] 03:31:27 -!- joga_ [i=joga@83.150.90.112] has quit [sendak.freenode.net irc.freenode.net] 03:31:27 -!- billitch [n=billitch@rob92-1-82-67-155-88.fbx.proxad.net] has quit [sendak.freenode.net irc.freenode.net] 03:31:27 -!- yahooooo [n=yahooooo@c-67-170-39-104.hsd1.wa.comcast.net] has quit [sendak.freenode.net irc.freenode.net] 03:31:27 -!- Xof [n=crhodes@158.223.51.79] has quit [sendak.freenode.net irc.freenode.net] 03:31:27 -!- Madsy [n=Madsy@fu/coder/madsy] has quit [sendak.freenode.net irc.freenode.net] 03:31:27 -!- _deepfire [n=deepfire@80.92.100.69] has quit [sendak.freenode.net irc.freenode.net] 03:31:27 -!- crink [n=crink@unaffiliated/crink] has quit [sendak.freenode.net irc.freenode.net] 03:31:31 -!- quek [n=read_eva@router1.gpy1.ms246.net] has left #lisp 03:34:19 joga [i=joga@rikki.fi] has joined #lisp 03:35:28 baddog [n=liam@unaffiliated/baddog144] has joined #lisp 03:35:28 joga_ [i=joga@83.150.90.112] has joined #lisp 03:35:28 crink [n=crink@unaffiliated/crink] has joined #lisp 03:35:28 billitch [n=billitch@rob92-1-82-67-155-88.fbx.proxad.net] has joined #lisp 03:35:28 yahooooo [n=yahooooo@c-67-170-39-104.hsd1.wa.comcast.net] has joined #lisp 03:35:28 Madsy [n=Madsy@fu/coder/madsy] has joined #lisp 03:35:28 Xof [n=crhodes@158.223.51.79] has joined #lisp 03:35:28 _deepfire [n=deepfire@80.92.100.69] has joined #lisp 03:36:15 -!- yahooooo [n=yahooooo@c-67-170-39-104.hsd1.wa.comcast.net] has quit [Connection reset by peer] 03:36:32 -!- baddog [n=liam@unaffiliated/baddog144] has quit [SendQ exceeded] 03:37:16 yahooooo0 [n=yahooooo@67.170.39.104] has joined #lisp 03:37:29 cmm [n=cmm@bzq-79-178-135-94.red.bezeqint.net] has joined #lisp 03:38:22 baddog [n=liam@unaffiliated/baddog144] has joined #lisp 03:47:17 -!- joga_ [i=joga@83.150.90.112] has quit [Connection timed out] 03:49:10 -!- phax [n=phax@unaffiliated/phax] has quit ["Leaving"] 03:54:04 -!- dreish [n=dreish@minus.dreish.org] has quit [] 03:54:34 -!- cmm- [n=cmm@bzq-79-178-135-94.red.bezeqint.net] has quit [Read error: 110 (Connection timed out)] 03:56:47 -!- durbin [n=durbin@adsl-99-181-3-9.dsl.irvnca.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 04:00:06 rread_ [n=rread@c-98-234-219-222.hsd1.ca.comcast.net] has joined #lisp 04:04:57 spradnyesh [n=pradyus@nat/yahoo/x-rfuskvystbjimsmd] has joined #lisp 04:05:25 gigamonkey [n=user@adsl-99-184-204-167.dsl.pltn13.sbcglobal.net] has joined #lisp 04:05:37 sellout: herep 04:05:57 And good evening, everyone else. 04:06:42 *rahul* just made his prototypes library simpler 04:06:58 *sykopomp* just wrote several pages of documentation. 04:06:59 still won't be fast, tho. frigging s-v to s-v-u-c call semantics 04:07:54 *gigamonkey* just wrote 0.1% of his novel. 04:08:46 sounds like a good time for a milestone release! 04:08:47 heh 04:08:56 kpreid [n=kpreid@216-171-189-244.northland.net] has joined #lisp 04:10:13 Well, I had already written 61.1% of it. That was just in the past few minutes. ;-) 04:11:09 oh, I figured you were farther along... 04:11:27 it's great when the ideas flow like that 04:11:28 rahul: The Sheeple manual is 25 pages long right now. Would be nice to see a full-fledged implementation in CLOS of the whole thing. I haven't written about how messages work yet, though :\ 04:11:48 -!- spradnyesh [n=pradyus@nat/yahoo/x-rfuskvystbjimsmd] has quit [Read error: 60 (Operation timed out)] 04:11:52 sykopomp: well, I just have slot-value and multiple-inheritance 04:12:01 multiple delegation that is 04:12:12 I dunno what other features the slots should have 04:12:15 what's the difference between MI and multiple delegation here? 04:12:21 sykopomp: nothing 04:12:46 dralston [n=dralston@S010600212986cca8.va.shawcable.net] has joined #lisp 04:13:34 Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has joined #lisp 04:13:52 I have slot-value, (setf slot-value), slot-boundp, slot-makunbound, (make-instance object), and (make-instance 'prototype-object :delegates (list ...)) 04:14:40 sounds like you actually have a good chunk of it, actually. 04:14:44 maybe (make-instance object :delegates ...) should cons object to the head of the rest of the delegates and continue on 04:14:54 sykopomp: the test cases are now longer than the implementation 04:15:02 albeit less dense code :P 04:15:25 oh, no, 60 lines of impl, 50 lines of test 04:15:48 cool 04:16:33 -!- rread [n=rread@nat/sun/x-wubiefwhlmxghbsy] has quit [Read error: 110 (Connection timed out)] 04:16:33 -!- rread_ is now known as rread 04:16:34 I don't have the ability to initialize an object with slots at instantiation time, tho 04:17:06 can anybody tell me why this doesn't work: (funcall (car '(#'(lambda () (print "helloworld"))))) 04:17:15 I mean, I could just setf slot-value at the end 04:17:32 Alphonse: because the car of (quote (function (lambda ....) is quote 04:17:51 oh, misread the number of quotes 04:18:16 Alphonse: you are taking the car of ((function (lambda ... 04:18:22 clhs ' 04:18:22 http://www.lispworks.com/reference/HyperSpec/Body/02_dc.htm 04:18:35 Alphonse: quote stops ALL evaluation of the next form 04:18:38 clhs #' 04:18:38 http://www.lispworks.com/reference/HyperSpec/Body/02_dhb.htm 04:19:07 so how would I call a car on a list of functions to be evaluated by funcall? 04:19:17 Alphonse: the way you do it 04:19:24 Alphonse: but you don't have a list of functions there 04:19:39 you have a list whose first element is a list whose first element is the symbol FUNCTION 04:19:51 Alphonse: try just looking at what you're going to funcall 04:20:43 Consider '((+ 1 2)) vs. (list (+ 1 2)) 04:21:06 -!- marioxcc [n=user@200.77.62.241] has quit [Remote closed the connection] 04:21:10 sykopomp: I'm worried about performance, tho. SLOT-VALUE is horribly slow 04:21:32 rahul: well, it's dispatching. It'll probably perform like shit on lesser implementations, too :\ 04:21:45 sykopomp: no, it's a linear search even before dispatching 04:21:58 oh? 04:22:01 since the backend class won't be known or even defined at compile time 04:22:21 so it has to do the full slot-value to s-v-u-c call thing 04:22:29 http://sbcl.sourceforge.net/sbcl-internals/Basic-Implementation.html 04:23:27 <_deepfire> Hmm, "error in process filter: invalid protocol message: arglist-for-echo-area not found in swank package" is infuriating. 04:24:03 <_deepfire> I have had this stuff haunting me for about a year, and not loosening its grip even now. 04:24:27 oic 04:24:34 doesn't look that bad, though :) 04:24:53 <_deepfire> I once managed to obtain a working slime-setup contrib sequence, but it's again broken in slime CVS.. 04:25:52 saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 04:26:31 <_deepfire> oh well, sleepwards I go, defeated.. 04:26:32 -!- stoop [n=stoop@unaffiliated/stoop] has quit [Read error: 110 (Connection timed out)] 04:27:14 -!- skypher [n=lpolzer@dslb-088-073-244-171.pools.arcor-ip.net] has quit [Read error: 110 (Connection timed out)] 04:27:26 I can't figure out how to make this fast... 04:27:44 I suppose that caching the buggery out of it is not an option ... 04:27:51 skypher [n=lpolzer@88.73.226.79] has joined #lisp 04:28:36 Zhivago: no, if that were sensible, I'd just define reader methods for all the slots and have the user call those instead of slot-value 04:28:58 Why isn't that sensible? 04:29:10 -!- dralston [n=dralston@S010600212986cca8.va.shawcable.net] has quit ["Leaving"] 04:29:32 Zhivago: because you'd have a different accessor for every single order that slots could be added to an instance 04:30:31 I think I need to find places where multiple inheritance is a good idea 04:30:45 rahul: mixins 04:30:55 sykopomp: no, I mean for the backends 04:31:11 I know plenty about using MI in class-based programs :) 04:31:19 I'm still really confused... (setq mylist '(#'(lambda () (print "helloworld")))) ; (print mylist) -> (#'(LAMBDA () (PRINT "helloworld"))) ; (car mylist) - > #'(LAMBDA () (PRINT "helloworld")) ; (funcall (car mylist)) -> Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER... 04:31:35 rahul: I meant MI in prototypes. 04:31:51 Alphonse: compare it to just the function 04:32:07 sykopomp: well, I figure at the application level it's more or less the same idea 04:32:21 -!- Kenjin [n=Kenjin@246-127.dial.nortenet.pt] has quit ["Get MacIrssi - http://www.sysctl.co.uk/projects/macirssi/"] 04:32:26 sykopomp: my point is that I need to MI the backend classes to reduce te number of them out there 04:32:28 rahul: I'm more comfortable doing it in a prototypes context. 04:32:44 (funcall #'(LAMBDA () (PRINT "helloworld"))) -> "helloworld" 04:32:46 sykopomp: so instead of an A B class and another B A class, I just have a single A B class 04:32:55 Alphonse: no, the object itself 04:33:03 Alphonse: look what happens when you do #'.... at the repl 04:33:17 Alphonse: and then read the documentation on ' again 04:33:46 sykopomp: well, clearly, because you're more comfortable doing anything in a prototypes context, heh 04:34:04 nipra_ [n=nipra@117.195.102.225] has joined #lisp 04:34:14 rahul: not necessarily. It's just easier to play around with this sort of stuff in a prototype context :) 04:34:18 sykopomp: that like saying that PG is more comfortable doing it with a macro 04:34:32 sykopomp: not when you have CLOS 04:34:39 sykopomp: you can add slots at will 04:34:47 rahul: except it sucks? 04:34:53 fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has joined #lisp 04:35:00 huh? 04:35:51 the process for adding a slot to an instance involves redefining its class and changing class in a way that doesn't break what already exists. 04:35:51 blah, making this fast is going to be painful 04:35:53 -!- fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has quit [Client Quit] 04:35:57 as opposed to "just" adding it. 04:35:59 :) 04:36:07 sykopomp: yeah, it's called just adding it 04:36:20 adding a new slot won't break what already exists 04:36:30 and removing it? 04:36:30 all instances just end up with a new slot 04:36:38 that just removes it 04:36:41 and how do you provide a value for all those new slots? 04:36:53 there are many ways to provide a value 04:37:00 such as? 04:37:04 :initform 04:37:12 and reinitializing? 04:37:15 or defmethod update-instance-for-redefined-class 04:37:17 -!- nipra_ [n=nipra@117.195.102.225] has quit [Read error: 54 (Connection reset by peer)] 04:37:26 sykopomp: reinit has nothing to do with this 04:37:30 so you need to define a method? 04:37:35 no 04:37:39 you _can_, if you need it 04:37:44 why would you need it? 04:37:58 if you can't write the initform as a slot option 04:38:08 if it's computed based on the values of other slots 04:38:18 okay 04:38:52 (setf (property-value *obj* 'foo) "value") <-- slot is added for the object. It's available to all descendants. The value for the new slot is "value". 04:39:18 (pushend *mixin* (object-parents *obj*)) <-- mixin added. Done. 04:39:40 nipra_ [n=nipra@117.195.101.3] has joined #lisp 04:39:46 sykopomp: in CLOS, just add the slot or the superclass to the class definition and you're done 04:40:08 change the definition and re-evaluate it 04:40:13 not the same. 04:40:16 the same 04:40:19 you're affecting all instances of that object. 04:40:23 well duh 04:40:34 that's what changing a class means 04:40:51 if you wanted to change a different class, you should change a different class 04:40:53 this does it for one instance, and all you need to do to prevent descendants from being affected is (deletef (object-parents *x*) *y*) 04:41:03 what?? 04:41:04 haha 04:41:08 so now you're changing class, and I'm still just pushing and popping off a list? 04:41:13 programmatically? 04:41:19 sigh 04:41:40 I've come to the conclusion that you have no ability to see outside of the world you've built. 04:42:13 sykopomp: so now you need to find EVERY object that you DON'T want to change and change those? 04:42:18 do you realize how crazy that sounds? 04:42:27 if you want to not change an object, you need to change it 04:42:29 rahul, I think there's a misunderstanding here 04:42:43 Adlai: yeah, sykopomp doesn't understand the ramifications of his own code 04:43:12 and removing the parent also removes any functionality it's inherited 04:43:21 that was a bad example 04:43:24 that is a non-starter 04:43:52 the neat thing about Sheeple's model of delegation is that you only need to modify one object 04:44:01 Adlai: same with CLOS 04:44:02 whereas in CLOS, you're modifying a class 04:44:07 which is one object 04:44:13 "but a class is an object DURR HURR" 04:44:16 damn. Called it too late. 04:44:32 right, but to have the change effected on instances of the class, a lot more has to happen 04:44:37 Adlai: no 04:44:45 nothing more has to happen until it needs to happen 04:44:47 Well, "may have to". 04:44:50 -!- rme [n=rme@pool-70-104-115-69.chi.dsl-w.verizon.net] has left #lisp 04:45:06 ignorance does not proof make. 04:45:19 rahul: which is why you should try and figure out what I'm talking about. 04:45:21 But that follows from any point at which you alter the invariants upon a class of object. 04:45:22 :P 04:45:27 there's nothing more that needs to happen in Sheeple 04:45:37 Then sheeple is wrong. 04:45:38 sykopomp: I know what you're talking about. YOU don't understand what you're claiming. 04:45:50 rahul: clearly. 04:46:03 Zhivago, do you understand how Sheeple works here? 04:46:09 If sheeple doesn't cause objects to fit the constraints of their new definition, then it isn't doing something comparable. 04:46:18 If it is, then it does the same amount of work as change-class. 04:46:21 Zhivago: sheeple is a prototype object system 04:46:30 That's irrelevant. 04:46:50 so instead of changing the instance once, you do a linear lookup every time 04:46:53 Zhivago, Sheeple doesn't have a concept of a "new definition" for objects when you change an object to which they delegate 04:46:58 Having no invariants upon objects doesn't change the above logic. 04:47:14 It just means that you have no invariant structure. 04:47:21 -!- nipra [n=nipra@117.195.104.191] has quit [Read error: 110 (Connection timed out)] 04:47:47 If you want to compare them you need to do it properly. Where change-class doesn't alter the invariants upon instances those instances require no update. 04:48:05 Zhivago: ITYM defclass 04:48:18 Zhivago, I'm sorry, you don't seem to understand Sheeple's model of delegation. 04:48:24 Adlai: no, he does 04:48:34 Adlai: I think you have just failed to read what I have written. 04:48:36 Adlai: but you're claiming things about CLOS that are patently false 04:48:43 rahul: ensure-class, I guess -- yeah. 04:49:00 Adlai: changing a class definition in CLOS is no more work than adding a slot to an object in sheeple 04:49:14 rahul, for that change to take effect, a lot more has to happen 04:49:20 Adlai: you don't go searching for all instances and changing them 04:49:22 Adlai: nope 04:49:33 nothing more has to happen. just a few flags get propagated. 04:49:39 uh yes? you need to update the instances 04:49:42 nope 04:49:46 even if it happens "lazily", ie only when needed 04:49:48 eno__ [n=eno@70.137.171.2] has joined #lisp 04:49:48 not when you change the class definition 04:50:05 Adlai: it happens lazily in sheeple EVERY time you access a slot, whether there's been a change or not 04:50:23 delegation is different from instantiation 04:50:58 delegates are not superclasses 04:51:18 huh 04:51:25 what does instantiation have to do with this? 04:51:31 I'm talking about slot access 04:51:41 right, but you're talking about slot access in instances 04:51:46 no 04:51:50 in sheeple 04:51:52 as opposed to delegated slot access 04:51:55 gilez [n=gdmalet@CPE002369a1c60b-CM000f9f7f22e4.cpe.net.cable.rogers.com] has joined #lisp 04:51:56 wrong 04:52:08 I never said a thing about instance access 04:52:23 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 145 (Connection timed out)] 04:53:02 the semantics which you described are those of slot access in instances of classes, rather than those of slot access with delegation 04:53:08 Adlai: wrong 04:53:52 -!- eno__ is now known as eno 04:54:07 damnit I never paid attention when they taught us how to debate one-word answers 04:54:08 Adlai: you're saying that access to delegated slots never looks at the parents of the instances? 04:55:00 Adlai: you debate them by fixing your misconceptions 04:55:27 Adlai: your point seems to be that in your prototype system, changing a class doesn't affect the cost of accesses. rahul's point is that the worst case for CLOS is at most as bad as your regular cost. So yes, CLOS pays an overhead for class changes, but you're always incurring that overhead in your system. 04:55:29 there's nothing sensible to say when your entire claim about what I said is patently false 04:55:50 pkhuong: well, CLOS's worst case is worse, to be sure 04:56:00 but the best case is FAR, FAR better 04:56:23 there isn't a single linear operation in the best, best case 04:57:06 rahul: the best case for Sheeple is the same as the best case for any current CLOS implementation I've looked at, iiuc 04:57:23 sykopomp: nope 04:57:32 sykopomp: sheeple needs to do some sort of lookup 04:57:36 rahul: it matches CCL, it's faster than CLISP. 04:57:44 it's only 2x slower for the average delegated case. 04:57:46 sykopomp: the best case for CLOS is just an offset and load 04:57:48 according to my tests. 04:57:58 the best case for Sheeple is offset and load. 04:58:09 sykopomp: how do you know the offset? 04:58:12 *rahul* facepalm 04:58:12 HET2 [n=diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has joined #lisp 04:58:16 right now, it does just a plain linear search for the offset index based on the mold. 04:58:20 hahaha 04:58:24 sykopomp: you're an idiot 04:58:24 which is exactly what CCL does. 04:58:37 sykopomp: LINEAR SEARCH IS NOT AN OFFSET 04:58:41 elderK1 [n=zk@125-236-161-72.jetstream.xtra.co.nz] has joined #lisp 04:58:45 it's LINEAR 04:58:52 that's horrible 04:58:58 oh, that's too bad. Worksforme. 04:59:02 that's the problem I'm trying to fix in my system 04:59:11 that's what Krystof was mocking me about 04:59:12 -!- elderK1 is now known as elderK 04:59:18 a SINGLE linear search 04:59:38 I can hack in SBCL's slot-value stuff too, probably. Most likely, I can toss in any other optimizations a CLOS system would have, unless they're -really- weird I guess. 04:59:48 exactly the "offset index based on the mold" 04:59:56 sykopomp: nope, you can't 04:59:59 as far as delegated properties go: the overhead is obvious, but it's avoidable depending on your needs. 05:00:05 rahul: why not? 05:00:10 sykopomp: you need to know the mold that's going to be used at compile time 05:00:17 define compile time. 05:00:21 um 05:00:26 you mean Lisp compile time? 05:00:27 when the code is compiled 05:00:29 yes 05:00:35 *rahul* boggles 05:00:44 dunno, maybe. 05:00:47 I don't mean the smalltalk compile time 05:01:02 the permutation vector thing might kinda work 05:01:31 but it's going to get HUGE with the way these molds are dynamically created 05:02:21 basically what you're telling me is that my 60 line implementation is faster than yours :) 05:02:43 well, probably a tad slower because slotds are probably bigger than what you have for slotds 05:03:34 Good morning! 05:03:40 -!- gilez [n=gdmalet@CPE002369a1c60b-CM000f9f7f22e4.cpe.net.cable.rogers.com] has quit ["Leaving."] 05:03:50 what I need is a good way of coming up with a fast perfect hash function 05:04:10 that is, coming up with a perfect hash function quickly 05:04:12 rahul: patches welcome! :) 05:04:26 sykopomp: the patch is in lisppaste 05:04:34 rahul: that's a silly patch. 05:04:37 patch rejected. 05:04:39 haha 05:04:41 of course 05:04:45 you would say that. 05:04:56 sorry to make you jealous 05:05:23 rahul: you don't really have a full implementation, though? 05:05:24 dunno 05:05:29 if slot-value itself were generic, I could do this 05:05:43 eno__ [n=eno@adsl-70-137-158-9.dsl.snfc21.sbcglobal.net] has joined #lisp 05:05:44 sykopomp: you said it's basically complete 05:05:56 sykopomp: I don't have all the change this and change that at runtime done... 05:06:13 sykopomp: basically I can't change inheritance at runtime, but that's probably trivial 05:06:17 Hey guys, I was wondering what the lisp analogue to a pointer would be? 05:06:19 :) 05:06:30 elderK: a pointer 05:06:33 the same as a java analogue to a pointer 05:06:35 like, say, creating a pointer to some element inside of an array? 05:06:42 elderK: inside an array? 05:06:52 elderK: well, for that, you'd use locatives 05:06:53 :) Sorry rahul, I'm new. Most of my experience when it comes to anything Lispy, is just some playing around in Scheme 05:06:56 which are just closures 05:07:04 except you wouldn't 05:07:06 But, apparently, CL is the workin' mans lisp 05:07:12 Okay, why not, hefner? 05:07:13 :) 05:07:26 well, are you looking to always access that array at that location? 05:07:45 or are you looking to get the thing that's currently stored in the array at that location? 05:07:55 elderK: I find it useful to think of any "variable" as pointers in languages with GC 05:08:00 Aha, right, the GC would move things and invalidate the pointer. 05:08:01 -!- eno [n=eno@nslu2-linux/eno] has quit [Connection timed out] 05:08:13 well, that's interesting. The Fog graphic library uses some of my code; they attributed the look up table, but not the code. 05:08:34 elderK: but if the "pointer" is a combination of the array object and offset, then the GC will update the pointer when needed 05:08:38 It's just, when I use arrays and suchlike in Scheme/Lisp, all the arefs and suchlike... It's like, coming from C, 'why use a call toa cess an element, when I could just create a direct link to it?' 05:09:08 elderK: because it takes one cycle more 05:09:28 rahul, do you mean say, creating a function that would store the object and the offset - and when we say, called that function - it just secretly calls aref in the background? 05:09:36 elderK: you can consider aref n to be equivalent of pointer[n] shorthand in C 05:09:51 -!- eno__ is now known as eno 05:09:54 thanks, p_l. That puts it in perspective for me. 05:09:56 elderK: right 05:10:00 Basically, not even worth worrying about. 05:10:01 elderK: just about everything looks like a function call; doesn't mean it has to compile to one. 05:10:04 (ftmp) 05:10:17 :) 05:10:19 rahul: why do you need that perfect hash function? 05:10:34 How about tail recursion and the like, is iteration okay here? The Schemefolk tend to look down pretty harshly on iteration. 05:10:41 pkhuong: to get fast access based on my slot name 05:10:43 elderK: whatever works. 05:10:47 Where as, my background makes me pretty against recursion. 05:10:48 Sweet 05:10:48 :) 05:10:56 elderK: nah, CL has it's (in)famous LOOP, we can't be against iteration ;-) 05:11:16 elderK: iteration is just a different way to express tail recursion 05:11:31 rahul: I suppose you're already generating a random value based on the slot's name? 05:11:41 pkhuong: well, I'm thinking what I should do 05:12:08 elderK: for example, (loop for x from 1 to 10 05:12:20 pkhuong: but either way, I'm as fast as sheeple now :) 05:12:45 elderK: it should have been this: (loop for x from 1 to 10 collect (loop for y from 1 to x collect y) ) 05:14:08 -!- crink [n=crink@unaffiliated/crink] has quit ["Leaving."] 05:15:24 Aye. 05:15:39 It depends, I guess. In Scheme, the loop would likely be a macro for tail recursive calls. 05:15:44 but, in CL, is that the ssame? 05:15:50 if so, I might as well write recursive code. 05:16:15 :) Also, what about type coercion? Just asking here, because I do a lot of work with binary formats. And scheme, man, trying to even just read a BMP file in Scheme was death... 05:16:34 elderK: nope 05:16:47 elderK: tail recursive calls are not necessarily optimized in CL 05:17:17 elderK: CL does not specify a bit layout of memory 05:17:29 elderK: (neither does C, so your code only works by chance) 05:18:08 elderK: there is a binary-types library for dealing with binary external formats 05:18:39 Id like to see the source of the binary lib. 05:18:40 :) 05:18:41 rahul: I would go with associating a nicely random value with each slot name (hoist that check at load-time), and use a simple multiplicative hash function; you can implement a fast modulo by precomputing the pseudoinverse. 05:19:15 elderK: it'll do the same thing any portable C library would do 05:19:31 Add an inline cache, and you're pretty good. 05:21:33 pkhuong: or maybe I could assume that sxhash is good enough? 05:21:49 How do you mean, rahul? 05:21:49 :) 05:22:01 rahul: errr... 05:22:03 rahul: I wouldn't. 05:22:05 elderK: CL has rather interesting binary manipulation functions, the binary-types libraries are floating around a lot (I recall at least three implementations), sometimes you don't really need them - I went without it for reading linux pagetables 05:22:18 elderK: it will read octet by octet and assemble the result 05:22:26 Aye, see p_l, I'd rather learn the stock CL way of doing it, you know. 05:22:36 pkhuong: meh :P 05:22:38 Aye, that's what I figured rahul - that isn't exactly what I was hoping for. 05:22:44 I was kind of hoping for a... block read type thing. 05:22:47 elderK: nothing else will work 05:23:01 elderK: block reads result in different things on different platforms 05:23:07 ie: read X bytes, access Y bytes at index Z, view that Y bytes as whatever you want 05:23:13 Aye. 05:23:14 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 05:23:22 elderK: but you don't know what Z is 05:23:24 If that's not minimal enough, you could go with a 2-left or a cuckoo table (or buckets), but that's a lot of complexity. 05:23:25 But if you are writing for a specific set of platforms, then you don't much care. 05:23:37 What 2 is? :) Inform me, man :) 05:23:39 I'm eager ot learn 05:24:10 elderK: you can't guess at the location of a value in a block without doing computations based on the platform's memory layout 05:24:27 elderK: http://github.com/unya/linux-vm-analizer <--- have a *simple* example (yes, it does have a macro, but I it was to save typing :P) 05:24:51 elderK: and then you can't move the file to a computer on another platform 05:25:12 elderK: hence the whole htonl and ntohl thing in C 05:25:15 rahul, yes - how many bytes an integer takes... or whatever... or how the integer is represented, etc. 05:25:26 elderK: and that's just getting the value 05:25:36 but again, like I am asking - if the program targets a specific platform, or at least, generic X86 - it should be fine? 05:25:39 you still have to figure out WHERE The value is 05:25:46 elderK: Lisp is not based on x86 05:25:52 I didnt say it was :) 05:26:13 elderK: CL bit functions have defined endianess 05:26:37 p_l: but that has nothing to do with the endianness of the integer stored in memory 05:27:08 The things you are mentioning here, representation and memory layout, I understand. 05:27:24 but, if you know the target for all cases - then you need not cater to all the differences? 05:27:27 elderK: how many gigabytes per second is your internet connection that you are worried about saturating your CPU with data? 05:27:36 which means you should be able to write code using the assumptions of hte platform, for greatest speed? 05:27:43 SandGorgon [n=OmNomNom@122.173.249.152] has joined #lisp 05:27:46 rahul: but it helps when you know that the bit manipulation code won't go awry as long as you do I/O properly :D 05:27:50 elderK: your implementation already does that 05:27:52 o_O I'm not even talking about a networkied program o_O 05:28:00 *-i 05:28:07 (though I didn't care and just made a stream of (unsigned-byte 64)) 05:28:47 -!- hugod [n=hugod@bas1-montreal50-1279441070.dsl.bell.ca] has quit [] 05:29:00 I'm not sure how to intercept slot-value calls anyway 05:29:10 so I'm not sure if this hashing optimization will do any good 05:29:11 Guys, please dont take me to be militant here, I'm simply trying to understand more. 05:29:11 :) 05:29:30 elderK: you're saying that your I/O is faster than your CPU 05:30:02 elderK: google doesn't care about what you're fretting about 05:30:12 No, I'm not. I'm simply asking about how binary IO is handled in Lisp. 05:30:14 Gosh. 05:30:15 are you dealing with more data than google has? 05:30:21 *sigh* 05:30:27 elderK: the same way it's handled in a correctly written C program 05:30:45 -!- lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has quit [Remote closed the connection] 05:30:54 except that CL's bit manipulation functions manipulate bits directly 05:30:55 lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has joined #lisp 05:31:04 -!- benny [n=benny@i577A7470.versanet.de] has quit [Read error: 60 (Operation timed out)] 05:31:05 -!- cmm [n=cmm@bzq-79-178-135-94.red.bezeqint.net] has quit [Read error: 104 (Connection reset by peer)] 05:31:11 instead of needing to use masks and crap 05:31:11 cmm- [n=cmm@79.178.135.94] has joined #lisp 05:31:11 elderK: you do binary IO with octet streams. 05:31:48 you can say give me bits 7-15 of this integer exactly like that 05:32:00 instead of needing to binary-and and shift 05:32:06 so, say, trying to build a giant array of bytes - and access various fields and such inside that, is basically a bad thing (tm) in lisp? 05:32:13 thats a nice feature, rahul. 05:32:16 elderK: it's a bad thing in any language 05:34:19 stoop [n=stoop@unaffiliated/stoop] has joined #lisp 05:35:01 -!- hefner [n=hefner@ppp-61-90-102-94.revip.asianet.co.th] has quit ["Leaving"] 05:36:51 Kolyan [n=nartamon@93.81.159.138] has joined #lisp 05:37:31 spradnyesh [n=pradyus@122.167.98.51] has joined #lisp 05:37:58 -!- blackened`_ [n=blackene@ip-89-102-22-70.karneval.cz] has quit [] 05:39:38 Lol this PCL story on macros is cracking me up! 05:40:26 oh! this is optimized on SBCL 05:40:42 eh, I think I might be faster than sheeple :P 05:41:58 still, it would be nice to reduce the number of classes involved in this mess 05:42:05 lol... DEF MAC R/O 05:44:48 kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 05:47:18 envi^home [n=envi@220.121.234.156] has joined #lisp 05:47:42 -!- elderK [n=zk@125-236-161-72.jetstream.xtra.co.nz] has left #lisp 05:48:11 benny [n=benny@i577A7939.versanet.de] has joined #lisp 05:49:47 envi_home2 [n=envi@220.121.234.156] has joined #lisp 05:51:07 _8david [n=user@port-92-195-41-30.dynamic.qsc.de] has joined #lisp 05:51:22 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [] 05:52:06 -!- envi^home [n=envi@220.121.234.156] has quit [sendak.freenode.net irc.freenode.net] 05:52:06 -!- lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has quit [sendak.freenode.net irc.freenode.net] 05:52:06 -!- eno [n=eno@nslu2-linux/eno] has quit [sendak.freenode.net irc.freenode.net] 05:52:06 -!- Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has quit [sendak.freenode.net irc.freenode.net] 05:52:06 -!- billitch [n=billitch@rob92-1-82-67-155-88.fbx.proxad.net] has quit [sendak.freenode.net irc.freenode.net] 05:52:06 -!- Xof [n=crhodes@158.223.51.79] has quit [sendak.freenode.net irc.freenode.net] 05:52:06 -!- Madsy [n=Madsy@fu/coder/madsy] has quit [sendak.freenode.net irc.freenode.net] 05:52:06 -!- _deepfire [n=deepfire@80.92.100.69] has quit [sendak.freenode.net irc.freenode.net] 05:56:48 saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 05:57:11 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [Client Quit] 05:57:24 BrianRice [n=water@76.115.44.87] has joined #lisp 05:58:06 billitch [n=billitch@rob92-1-82-67-155-88.fbx.proxad.net] has joined #lisp 05:58:57 saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 05:59:32 -!- kejsaren2 [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 06:05:17 envi^home [n=envi@220.121.234.156] has joined #lisp 06:05:17 lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has joined #lisp 06:05:17 eno [n=eno@nslu2-linux/eno] has joined #lisp 06:05:17 Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has joined #lisp 06:05:17 Madsy [n=Madsy@fu/coder/madsy] has joined #lisp 06:05:17 _deepfire [n=deepfire@80.92.100.69] has joined #lisp 06:05:20 Xof [n=crhodes@158.223.51.79] has joined #lisp 06:05:30 -!- spradnyesh [n=pradyus@122.167.98.51] has left #lisp 06:05:44 -!- Madsy [n=Madsy@fu/coder/madsy] has quit [Success] 06:05:45 Madsy^ [n=Madsy@ti0207a340-0026.bb.online.no] has joined #lisp 06:06:01 -!- eno [n=eno@nslu2-linux/eno] has quit [SendQ exceeded] 06:07:42 -!- lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has quit [Connection timed out] 06:10:22 Alphonse_ [n=sean@74-61-160-29.hon.clearwire-dns.net] has joined #lisp 06:10:53 -!- envi^home [n=envi@220.121.234.156] has quit [No route to host] 06:11:01 l 06:11:04 eno [n=eno@nslu2-linux/eno] has joined #lisp 06:13:46 -!- Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has quit [Read error: 110 (Connection timed out)] 06:14:16 -!- baddog [n=liam@unaffiliated/baddog144] has quit [Read error: 60 (Operation timed out)] 06:16:36 -!- JAS415 [n=jon@c-71-233-58-7.hsd1.ma.comcast.net] has quit ["Leaving."] 06:16:57 -!- nekobaka [n=baka@c-67-181-80-137.hsd1.ca.comcast.net] has left #lisp 06:26:01 1 06:31:07 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 06:31:58 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 06:33:34 ryuo [n=ryuo@frugalware/developer/ryuo] has joined #lisp 06:34:13 -!- mattrepl [n=mattrepl@pool-71-163-162-204.washdc.fios.verizon.net] has quit [] 06:34:57 how difficult is it to bind a C API to common lisp? I'm considering learning this language but if the underlying libraries I must interface with are inaccessible.. 06:35:04 ryuo: ridiculously easy. 06:35:16 sykopomp, how then? 06:35:21 melba [n=blee@unaffiliated/lazz0] has joined #lisp 06:35:27 my favorite API I need access to is full Xlib. 06:35:30 (defcfun ("frobMyShit" frob-my-shit) :int) 06:35:41 and CLX doesn't support Xft it appears 06:35:52 minion: cffi? 06:35:53 cffi: CFFI, the Common Foreign Function Interface, purports to be a portable foreign function interface for Common Lisp. http://www.cliki.net/cffi 06:36:15 is there an automatic way to convert headers? 06:36:34 Xlib is rather large :o 06:36:46 would be a big pain to convert it all by hand 06:36:47 there's some grovelers around, I believe. CFFI has one, but people seem to have mixed feelings about it. 06:36:50 minion: cffi-grovel? 06:36:52 cffi-grovel: Cffi-grovel automates parts of FFI writing, in much the same way sb-grovel does. http://www.cliki.net/cffi-grovel 06:37:06 why not add Xft support support to clx? 06:37:12 hm 06:37:28 is the wire protocol that horrid? 06:37:29 my only experience with lisp has been working with the lisp dialect in Sawfish 06:37:31 but really... just define the cfun's you need as you need them... gives you a good chance to think about lispy wrappers. 06:37:36 rahul, i don't know yet. 06:37:48 wasn't sawfish written in CL?... 06:37:54 or am I thinking of a different WM? 06:37:59 sykopomp, dunno. it uses librep 06:38:04 sykopomp: no 06:38:10 oh, apparently not. 06:38:21 what's that other wm that was written by a bunch of students?... 06:38:27 eclipse? 06:38:37 stumpwm? 06:38:37 not stump. 06:38:42 theres a bunch of lisp based WMs 06:38:45 then evlipse 06:38:48 eclipse 06:38:53 ah yup, eclipse it is. 06:38:57 mixed those up :) 06:39:14 was wanting Xft for "modern" font support 06:39:31 the old system isn't kind to truetype fonts 06:39:38 Davidbrcz [i=david@212-198-78-230.rev.numericable.fr] has joined #lisp 06:40:33 ryuo: well, actually, it's pretty kind to ttgs 06:40:35 ttfs 06:40:52 ryuo: it's just that XFree86 is crappily implemented 06:40:54 rahul, it doesn't scale them well in my experience 06:41:05 ryuo: that has nothing to do with X 06:41:07 I run X.Org version of X11. 06:41:09 are there any tricks for inlining generic functions for higher performance with CLOS? My b-tree implementation is slower than I would like and a lot of the computation is going into method dispatch 06:41:16 ryuo: x.org is xfree86 06:41:24 hm good point 06:41:38 ryuo: in any case, IRIX is much kinder to scaling fonts and uses the old system 06:41:44 the main reason i worked with C was easy access to the whole C api 06:41:53 ryuo: the only thing is that they don't support fractional character/string widths 06:42:18 i see 06:42:23 gonzojive: nope. no one has implemented good sealing yet. 06:42:31 gonzojive: which implementation are you using? 06:42:37 rahul: SBCL 06:42:44 gonzojive: did you compile for speed? 06:43:01 rares [n=rares@174-22-225-229.phnx.qwest.net] has joined #lisp 06:43:02 yeah. I think I have an example... 06:43:15 slash_ [n=Unknown@whgeh0250.cip.uni-regensburg.de] has joined #lisp 06:43:18 are CL macros similar to CPP macros and inline functions? 06:43:33 -!- rares [n=rares@174-22-225-229.phnx.qwest.net] has left #lisp 06:43:59 hahaha 06:44:13 ryuo: no, they're like yacc on steriods 06:44:29 ryuo: it's like being able to extend the language itself 06:44:29 rahul, i've seen yacc but i don't get why people used it.. 06:44:46 ryuo: people don't use it because then you need to reimplement all of C or whatever other language you want 06:44:50 then again i'm still rather inexperienced 06:44:55 ryuo: in lisp, you just add stuff on to it 06:46:33 rahul, what about changes in the C API causing your lisp bindings to become useless? 06:46:50 any good ways to detect that? 06:47:01 ryuo: how would you detect that in C? 06:47:11 rahul, compile time errors? 06:47:15 ryuo: you could say that a macro is a function that gets a body of "code" and transforms it, ran during evaluation/compilation, with certain shorthands for easier generation of code 06:47:27 -!- rrice [n=rrice@adsl-69-221-172-163.dsl.akrnoh.ameritech.net] has quit [Read error: 60 (Operation timed out)] 06:47:36 ryuo: if it would be a compile time error in C, it would be a compile time warning in Lisp 06:47:48 rahul, how so? 06:47:54 ryuo: how not? 06:48:17 hm 06:48:19 ryuo: depends how you access external code (not only C, it isn't the only language you might link to! :P) 06:48:25 ryuo: your calls won't be compatible with the C functions that were newly loaded 06:48:43 So you get runtime errors? 06:48:52 yes, and compile time warnings 06:48:56 hm 06:49:02 sounds like a good enough detection to me 06:49:33 the reason why calling a function incorrectly in lisp is only a warning is that you could change the definition later so that the call that used to be incorrect is now correct 06:49:54 if you "grovel" files that have data on foreign API, then you might notice the difference, the same if you have some way to introspect the function signatures. Sometimes it will be plain old version check. And sometimes something weird might happen, similar to what might happen if you force an incorrect library on another program 06:51:13 yeah, there are still API changes that cannot be detected by looking at signatures 06:51:22 but C will fail on that test, too 06:52:00 gotta love it when they decide to arbitrary change the API 06:52:12 it also won't detect macro "constants" that were changed :/ 06:52:27 actually, it might 06:52:28 ryuo: in a very shortened version - if you can compare function signatures, then you can detect it. If not, and you blindly jump, then hell happens 06:52:44 in lisp, if a constant is changed after being defined, you get an error 06:53:03 but if the constant is still the same object, it just carries on 06:53:44 but that depends on how your groveler interprets #define 06:53:59 appears all languages suffer from the same problems with the C api 06:54:18 the problem has to do with communication in general 06:54:25 not anything to do with a specific language 06:54:41 or even computers specifically 06:54:58 I haven't seen any major changes to the Xlib API since i started using it 06:54:58 if you have a different definition for the word "car" than I do, we will be very confused when talking about cars 06:55:17 ryuo: yeah, that's because they have to deal with proprietary apps 06:55:37 ryuo: the ABI actually has to be the same across all implementations of X 06:56:01 at least that has a benefit in making bindings not need updating as much 06:56:24 ryuo: but the extensions aren't constrained like that 06:56:46 o boy lol 06:57:44 rahul: http://paste.lisp.org/display/90843#1 is a simple example for demoing the speed difference. 10x difference between the inlined defun and the inlined generic 06:57:50 coolant_ [n=admin-ya@202.169.54.218] has joined #lisp 06:57:54 how would you know if there was a macro constant incompatibility in C header vs Lisp? hm 06:58:09 gonzojive: inliing a generic does nothing 06:58:35 ryuo: why would they be incompatible? 06:58:56 rahul, suppose the bit flags changed in the C API. 06:59:02 oh if you upgrade the library without recompiling the lisp app? 06:59:14 ryuo: when you recompile, the new values will be picked up 06:59:21 eh? 06:59:42 i thought the common lisp binding didn't support the CPP well? 06:59:43 you grovel as part of compilation 06:59:57 why do you need CPP to deal with a number? 07:00:05 macro expansion? 07:00:24 Yea I feel stupid. lol 07:00:48 is all common lisp memory auto managed? 07:00:54 by default 07:01:05 i'm used to explicit allocation 07:01:12 I'm sorry 07:01:14 -!- Davidbrcz [i=david@212-198-78-230.rev.numericable.fr] has quit [Read error: 110 (Connection timed out)] 07:01:22 it must be painful 07:01:31 manually calling a creation function lol 07:01:53 you need to tell lisp when you want to create an object, too 07:02:03 it won't go around creating stuff just because it's bored 07:02:08 haha lol 07:02:32 I hear CL has "objects", so whats that like, syntax wise? 07:02:46 C++ is like obj->method() or obj.method() 07:02:55 objective-c [object method] 07:03:09 ryuo: (function-name foo) 07:03:30 eh? that looks like procedural... hm 07:03:36 minion: tell ryuo about that-dead-sexy-book 07:03:37 ryuo: please see that-dead-sexy-book: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 07:03:42 _everything_ in CL is an object 07:03:53 even the most simple types? 07:03:56 yes 07:03:57 like numbers? 07:03:59 yes 07:04:00 yes 07:04:01 @_@ 07:04:10 (+ 3 4) 07:04:18 nunb [n=nundan@94.161.63.168] has joined #lisp 07:04:20 not all functions are generic functions. 07:04:29 + is not a generic function. 07:04:30 ryuo: (class-of 3) -> integer 07:04:43 wowza 07:04:48 -!- xinming [n=hyy@125.109.74.18] has quit ["leaving"] 07:05:01 ryuo: but you can define methods that dispatch on integer, or even on the specific number 3 07:05:12 so how does CL know what to execute first? 07:05:16 (defmethod synergize ((x number) (y number)) (+ x y)) 07:05:19 its equal to int main()? 07:05:24 rahul: No, not everything in CL is an object. 07:05:28 ryuo: no 07:05:30 ryuo: no 07:05:37 hm 07:05:39 ryuo: you call whatever function is your entry point. 07:05:51 ryuo: by default you get an interactive REPL 07:06:02 sounds like gcc free-standing compilation 07:06:03 beach: what in CL is not an object? 07:06:11 ryuo: most(?) lisp implementations support setting a specific function as the toplevel function that gets called as soon as you run the binary. 07:06:17 rahul: The comments in the source code is one example. 07:06:17 that can be anything. 07:06:22 but by default, you just get the repl. 07:06:25 beach: well, those aren't things :) 07:06:25 *cmm-* boggles at the log 07:06:43 what extensions will i encounter in CL source code? 07:06:45 .lisp? 07:06:55 my ISP give me a switch, and if I connect directly to the switch I get 50Mbit/second 07:07:02 rahul: I know where this discussion will end. You will eventually admit that the right statement is: "everything in CL that is an object, is an object". 07:07:02 ryuo: .lisp is the preferred one for common lisp. Some people use .cl or .lsp 07:07:04 beach: they're things in the CL source file 07:07:11 then from the switch, I do connect a PFSense 07:07:29 and I connect my laptop into the pfsense 07:07:36 but, why it only gets 2Mbit/second 07:07:46 rahul: You don't believe me do you? 07:07:47 while if I use the isp switch directly I get 50Mbit? 07:07:55 beach: I love you? 07:08:05 beach: I don't believe that comments in the code are things in CL 07:08:09 I am sorry, I am in the wrong channel 07:08:11 I am sorry 07:08:12 coolant_: wrong channel! 07:08:27 sykopomp: Thanks! :) 07:08:37 beach: <3 07:08:45 beach: if you read the source file via a stream, the comments are a series of objects 07:08:50 mishoo [n=mishoo@79.112.52.124] has joined #lisp 07:09:17 beach: I mean, you could also say that the programmer is not an object in CL 07:09:34 rahul: Give up. You will lose this one. 07:09:59 sigh 07:10:43 beach: although when I'm using generic-reader, comments are objects :) 07:11:14 -!- coolant_ [n=admin-ya@202.169.54.218] has left #lisp 07:11:26 fed up with C, i spend more time trying to implement code for managing things than i do implementing the actual program.. 07:11:30 adu [n=ajr@pool-71-191-173-164.washdc.fios.verizon.net] has joined #lisp 07:11:33 hi 07:11:34 rahul:  07:11:40 rahul: If you want to exclude source files, character syntax types are not objects in CL. 07:11:48 hello adu 07:12:27 , beach 07:13:13 me no speak asian languages. :x 07:13:15 mrSpec [n=Spec@unaffiliated/mrspec] has joined #lisp 07:13:43 hello 07:13:43 just noticed that #xml is a very active channel, I wonder why xml cought on and lisp didn't 07:14:03 *adu* wishes more ppl knew how cool lisp is 07:14:18 adu: You are wondering that because you have this incorrect idea of how ideas spread and what makes them popular. 07:14:18 07:14:25 adu, or ;) 07:14:37 ryuo: no other language is worthwhile. 07:14:42 beach: sure, I also said that the programmer is not an object in CL either 07:14:44 this is an objective truth, ofc. 07:15:09 rahul: Silly argument. The programmer is not part of the CL spec. 07:15:43 "it's just a flesh wound!" 07:16:04 I think XSLT + MathML + RuleML is closely approaching 10% of CL 07:16:31 -!- mrSpec [n=Spec@unaffiliated/mrspec] has quit [Remote closed the connection] 07:16:39 I bet in 50 years XML alphabet soup will cover 40% of CL :) 07:17:19 -!- HET2 [n=diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has quit ["This computer has gone to sleep"] 07:17:38 adu: You can influence the popularity of CL by working on some FLOSS CL project. 07:18:10 mrSpec [n=Spec@unaffiliated/mrspec] has joined #lisp 07:18:15 well, I was considering making GCL as cool as clisp 07:18:26 [whether the influence is going to be positive and negative depends on how good a job you are doing] 07:18:27 but then school started... 07:18:49 beach: a character syntax type is not a thing in CL. it's just a descriptive property referred to in the spec. 07:18:49 adu: How is CLISP cool? 07:19:15 beach: "godlike" bignum math? 07:19:16 beach: clisp has more support for the hyperspec than GCL 07:19:22 beach: anything that exists inside of CL is an object, which is different from most languages 07:19:36 adu: the best thing you can do with gcl is to ignore it. 07:19:37 any _datum_ is an object in CL. 07:19:46 rahul: Yes, and so when asked what a "thing" is, it is going to be roughly "an object", so that the argument becomes "every object in CL is an object". 07:19:51 drewc: ok, will do 07:20:00 rahul: You did it! 07:20:03 beach: nope 07:20:05 "look you silly bastards, you've got no arguments left!" :) 07:20:11 beach: you just changed my statement 07:20:20 beach: datum is not the same as object. 07:20:30 rahul: Interesting, what is the difference? 07:20:35 ragul: what about those #x=.. label thingys? 07:20:35 beach: in CL it happens to be, which is my point. 07:20:52 rahul: are those labels "datums" as well? 07:20:56 adu: no 07:21:06 they are syntax for the reader to read 07:21:06 s/datums/data/ 07:21:19 sykopomp: oops 07:21:20 they are composed of characters, which are data 07:21:30 whaaaaa 07:21:37 beach: the difference is the difference between objects and non-objects in other languages 07:21:42 *Adlai* palms his face 07:22:02 *cmm-* faces his palm 07:22:18 beach: basically, objects have a sense of identity 07:22:36 like I recently learned about (deftype ... (satisfies ...)), which basically means CL has dependently types 07:22:40 beach: you can ask an object what its class is, for example, and the question will make sense 07:22:50 very few languages have that 07:23:07 adu: a type is just a binary partition of all objects 07:23:09 adu: you should ask Zhivago about the CL type system sometime. 07:23:16 Axius [n=ade@92.82.66.104] has joined #lisp 07:23:23 sykopomp: I wouldn't point a newbie at Zhivago >_> 07:23:32 Ralith: shhhh >_> 07:23:33 *adu* <3 Zhivago 07:23:35 adu: a class is a very specific kind of type 07:23:44 rahul, does most-positive-fixnum have a sense of identity? 07:23:46 adu: I don't think the term "dependent types" means that 07:23:48 rahul: Perhaps you meant to say "every datum is an instance of some class" then. 07:23:53 Adlai: its value does 07:24:05 beach: that's what object means 07:24:09 nope 07:24:14 . . . 07:24:28 beach: 1 is not an object in java 07:24:46 rahul, if I understand the spec's language correctly, a number has no sense of identity 07:24:47 Then Java has screwed-up terminology. 07:25:02 Adlai: a number is eql to itself 07:25:05 rahul: I was going to say what Adlai said as well. 07:25:14 rahul: eql doesn't test identity. 07:25:17 rahul: eql is not identity. 07:25:20 um 07:25:28 rahul, EQL is only about identity when you're not dealing with numbers or characters 07:25:41 Adlai: no, it's also about identity then 07:25:49 rahul: EQ is identity. You're wrong. 07:26:05 EQL makes special accomodations above and beyond EQ for numbers and characters. 07:26:05 sykopomp: you're confusing CL identity with implementation identity 07:26:09 that is the only difference. 07:26:14 no, I'm talking about CLHS identity. 07:26:27 from EQ: "Returns true if its arguments are the same, identical object; otherwise, returns false." 07:26:37 *beach* abandons this futile discussion. 07:26:39 clhs indentity 07:26:40 Sorry, I couldn't find anything for indentity. 07:26:48 errr 07:26:52 clhs identity 07:26:53 http://www.lispworks.com/reference/HyperSpec/Body/f_identi.htm 07:26:57 sykopomp: there is eql dispatch and not eq dispatch 07:27:05 -!- redblue [i=star@207.253.108.86] has quit [Read error: 145 (Connection timed out)] 07:27:16 you cannot dispatch based on pointer identity 07:27:20 rahul, right, because "conceptually the same" is more meaningful for method dispatch than "identical" 07:27:27 rahul: correct. 07:27:33 Adlai: "conceptually the same" is meaningless, period 07:27:52 Adlai: (without other qualifications to determine what the concepts are) 07:28:15 *Adlai* hands rahul a few CLHS pages worth of qualifications and walks away 07:28:19 object identity is based on whether side effects are visible to the object 07:28:22 gruseom [n=daniel@h-64-105-143-250.snvacaid.static.covad.net] has joined #lisp 07:28:32 Adlai: ok, then EQUALP is object identity to you 07:29:13 Adlai: "foo" and "FOO" are conceptually the same in some cases. like when you see them as identifiers in lisp code using default read syntax 07:29:44 FOO and "FOO" are also conceptually the same when you're specifying strings 07:29:59 rahul, (eq "foo" "FOO") isn't affected by (readtable-case *readtable*) ... 07:30:13 Adlai: wrap them in read-from-string 07:30:24 Adlai: I'm talking about foo and FOO without quotes as identifiers 07:31:57 what is the meaning of &allow-other-keys in a values type specifier? it is named in the hyperspec but not explained anywhere that I have looked 07:32:03 rahul: like string-equal 07:32:04 -!- mishoo [n=mishoo@79.112.52.124] has quit [Read error: 110 (Connection timed out)] 07:32:59 adu: that's more relevant to "FOO" and FOO 07:33:20 arbscht: it means other keys being passed will not cause an error 07:34:30 arbscht: the section that desribes the various kinds of lambda lists talks about that 07:35:13 clhs 3.4.1.4 07:35:13 http://www.lispworks.com/reference/HyperSpec/Body/03_dad.htm 07:35:14 that? 07:36:00 you tell me 07:36:39 well, I don't see how it relates to values type specifiers, since they don't seem to specify keywords 07:39:08 -!- SandGorgon [n=OmNomNom@122.173.249.152] has quit [Read error: 60 (Operation timed out)] 07:40:15 mishoo [n=mishoo@79.112.52.124] has joined #lisp 07:41:58 arbscht: &allow-other-keys basically means that there are an even number of values following 07:42:18 it has to do with m-v-call 07:42:42 seems to not be mentioned in the spec, tho 07:46:39 hm. it seems sbcl doesn't like finding &allow-other-keys in a values type specifier 07:47:15 arbscht: probably because the behavior is, well, unspecified 07:47:28 arbscht: why do you need it? 07:47:56 trying to figure out how ECL should implement it, if at all 07:48:35 -!- Axius [n=ade@92.82.66.104] has quit ["Leaving"] 07:48:37 either ignore it or have it ensure that there are an even number of values following 07:48:57 stat_trav [n=stat_tra@202.3.77.161] has joined #lisp 07:48:58 probably not worth implementing, as it's not described explicitly in the spec 07:49:02 right 07:50:13 attila_lendvai [n=ati@apn-89-223-146-4.vodafone.hu] has joined #lisp 07:53:10 cadabra [n=cadabra@c-174-52-81-75.hsd1.ut.comcast.net] has joined #lisp 07:53:45 -!- tobetchi [n=tobetchi@218.41.107.167] has quit [Remote closed the connection] 07:55:12 kiuma [n=kiuma@93-36-6-229.ip57.fastwebnet.it] has joined #lisp 07:56:06 hello 08:02:04 banisterfiend_ [n=little_b@203-211-73-170.ue.woosh.co.nz] has joined #lisp 08:03:11 -!- gigamonkey [n=user@adsl-99-184-204-167.dsl.pltn13.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 08:04:15 -!- skeptomai|away [n=nnnnnnnn@71.227.156.96] has quit ["Getting off stoned server - dircproxy 1.2.0"] 08:04:18 stassats [n=stassats@wikipedia/stassats] has joined #lisp 08:04:25 skeptomai|away [n=nnnnnnnn@c-71-227-156-96.hsd1.wa.comcast.net] has joined #lisp 08:10:24 -!- ltriant [n=ltriant@202.136.38.162] has quit ["trip!¡lite v1.03b"] 08:11:17 small question: does sbcl on cygwin support threads? 08:11:54 definitely not 08:12:13 I'd be surprised if it could GC 08:12:42 cygwin signals are pretty messed up 08:15:42 adu: About GCL and CLISP, I am guessing that SBCL is even closer to the CLHS then either of those. 08:15:55 what could I use (CL implpementation) on winzoz to support multi threading ? 08:16:08 beach: ya, i've used SBCL 08:16:12 ACL 08:16:17 kiuma: CCL 08:16:44 stassats: hmm good point. it supports multi-threading? 08:16:51 yep 08:17:08 although stability of any lisp under multithreading is questionable 08:17:31 kiuma: CCL works fine, just be wary of choosing correct architecture 08:17:31 which is why ITA doesn't use multithreading 08:17:56 (CCLx86 fails on win64) 08:19:03 it is a real pity that multithreading is not very stable on CL 08:19:13 "stable for me" 08:19:16 Axius [n=ade@92.82.66.104] has joined #lisp 08:19:24 ah :) 08:19:44 -!- Axius [n=ade@92.82.66.104] has quit [Read error: 104 (Connection reset by peer)] 08:20:23 it's not stable in Cambridge, MA, then 08:20:52 but seriously, light usage probably won't be bad 08:21:08 what's light usage? 08:21:11 you're probably as likely to have hardware failure as a threading bug 08:21:25 guaqua: as long as a short piece of string? heh 08:21:28 small amount of threads, small amount of interaction between threads? 08:21:34 right 08:21:41 which one? 08:21:43 both 08:22:02 unless the bugs are in the GC... 08:22:51 xcvb was supposed to use threads on CCL, but that's not stable enough 08:24:06 I'm writing an online book editor for CLAW. I wouldn't like to do all the work and then dicover that threading is not stable :/ 08:24:40 why does this need threading? 08:24:57 why would threading or not change the basic structure of the code? 08:25:15 because CLAW (my application server) needs threading 08:25:42 it probably doesn't, actually 08:25:57 why not ? 08:26:00 SandGorgon [n=OmNomNom@122.173.249.152] has joined #lisp 08:26:03 if you make your requests quick, you don't need threading 08:26:05 -!- Alphonse_ [n=sean@74-61-160-29.hon.clearwire-dns.net] has quit ["leaving"] 08:26:20 also, a good use of fork() can do wonders 08:26:29 right 08:26:42 Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has joined #lisp 08:26:50 even if I have a couple of users querying a db ? 08:27:02 kiuma: how long does one query take? 08:27:32 kiuma: if you don't have threading, there won't be more than one user querying a db 08:27:40 who knows it depends, being a framework I con't do assumptions 08:27:56 rahul, correct 08:27:56 then you can't assume threading is available either 08:28:46 off course you can 08:29:06 guaqua, explain 08:29:09 *rahul* boggles at guaqua's continuous bogus commentary 08:30:11 kiuma: if you make the assumption you are using threading, you base your architecture on that assumption 08:30:32 simply put, you choose algorithms that may operate on the same data structures at the same time etc 08:31:16 *rahul* facepalm 08:31:20 or rather, data structures that may support these operations 08:31:21 guaqua, claw uses hunchenttot as connector 08:31:28 *hunchentoot 08:31:53 so it can run both threading and single thr. 08:32:52 but I was thinking what happens if a user uasks for a 50 pages pdf report, generated querying a db 08:33:01 *asks 08:33:20 the other way of doing this is off course implementing the simplest thing that just might work 08:33:35 i.e. ditching threading and getting something to prototype on 08:33:40 -!- Patzy_ is now known as Patzy 08:33:48 hey p_l 08:33:49 eh 08:33:51 hey Paraselene__ 08:33:53 damnit 08:33:53 kiuma: you can spawn a separate process for that 08:33:55 hey Patzy 08:33:56 and not implementing the complicated stuff until you actually need it 08:34:00 -!- attila_lendvai [n=ati@apn-89-223-146-4.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 08:34:07 -!- cods_ is now known as cods 08:34:28 rahul, I'm talking of a web application 08:34:33 kiuma: and you can do the thing where the client keeps refreshing waiting for a result. when there is a result, the app server will see it in a pre-arranged place 08:34:48 ..mmmm 08:35:46 you'll have to know what's a "big" request and what's not ahead of time 08:36:31 you will have to have a lot of requests for that kind of operation not to work 08:36:38 well I'd like to keep things as simple as possible 08:36:47 there is also iolib 08:36:51 even spawning a new process for every request is possible 08:36:55 right 08:37:10 but I don't think it is so simple to use for an average user 08:37:11 kiuma: well, if the complexity that's intrinsic in the problem isn't in one place, it's in another 08:37:18 the other option without using threading is separate worker processes and some sort of other ipc 08:37:32 guaqua: well, that's basically what I said 08:37:51 rahul: well, yes, but you don't need to spawn :) 08:38:06 guaqua: that's just a question of implementation 08:38:10 do you pool or not 08:38:10 yes 08:38:19 but isn't forking expensive ? 08:38:26 kiuma: in CL it can be 08:38:34 kiuma: due to complex memory maps 08:38:36 isn't ipc more complicated then threading 08:38:47 kiuma: it's the same complexity 08:38:58 threading just moves the complexity elsewhere 08:39:18 you need to worry about the GC taking into account all threading situations 08:39:40 and you need to make sure all the application-level logic has no deadlocks 08:40:18 and that it doesn't do anything that violates the implicit transactionality in the user's requests 08:40:20 rahul, but threading is needed only for http requests handling 08:41:02 kiuma: um, and that's 100% of a web app 08:41:15 -!- ia [n=ia@89.169.161.244] has quit [Read error: 60 (Operation timed out)] 08:41:16 rahul, a small example 08:41:21 www.wingstech.it 08:41:47 you showed me this before 08:41:56 I'm not sure what revelation that page is supposed to give me 08:41:59 on my laptop I've a more elaborated version with i18n and content editor 08:42:40 and how does this information change our discussion? 08:42:45 so I didn't understand what did you mean with "and that's 100% of a web app" :) 08:42:59 http request handling is 08:43:05 what else does a web app do? 08:43:17 schme: hey 08:43:42 well it is the difference from a web-app and a web-site 08:43:55 p_l: sorry. mistab. But hey anyway :) 08:43:56 kiuma: regarding DB... that's what you have transactions for (and fork()) 08:43:59 a webapp can do virtually everything 08:44:00 ;-) 08:44:07 kiuma: so? 08:44:18 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [] 08:44:22 kiuma: it can do anything in response to an http request 08:44:37 like forking itself 08:45:12 with a http request I could launch a nuclear war 08:45:38 so? 08:45:56 Shall we play a game? 08:46:03 LOL 08:46:06 which 08:46:06 you lose. 08:46:15 hehehe 08:46:48 lol 08:47:04 a here it is: 08:47:25 morphling [n=stefan@gssn-5f755494.pool.mediaWays.net] has joined #lisp 08:47:27 une user asks for something that I have to stream 08:47:38 he would block other users 08:47:45 no? 08:47:59 kiuma: so... just fork or multiplex 08:48:20 fork for every request ? 08:48:41 kiuma: you might even separate them into short & long term processes... 08:48:58 kiuma: how do you think web servers were written 10 years ago? 08:49:00 jeez 08:49:03 kids these days 08:49:08 and still are - threads aren't fast 08:49:10 -!- adu [n=ajr@pool-71-191-173-164.washdc.fios.verizon.net] has quit [] 08:49:27 yeah, threads require a lot of delicate work 08:49:36 fork() and forget. 08:49:38 yaws seems to have quick threads going for it? 08:49:48 or select() and async DMA to socket 08:49:56 p_l now you go to a "normal" IT company (usually java and php) and repeat " you might even separate them into short & long term processes" :) 08:50:03 schme: Erlang is a special case 08:50:10 p_l: ): 08:50:18 kiuma: that's why applications these days are utter crap 08:50:49 schme: Erlang is based on extremely lightweight processes (not threads) running in big quantities on one thread per cpu core 08:50:59 people just make threads without thinking of they're the right solution to the problem 08:50:59 p_l: indeed 08:51:08 but they call 'em threads ;) 08:51:12 rahul, this doesn't change the focus 08:51:17 and they tend to be implemented with pthreads 08:51:26 kiuma: your focus is trying to find a way to use threads, it seems 08:51:35 *schme* goes over to emacs 08:51:44 kiuma: that's what "normal" IT companies do 08:51:56 they see a tool and then they try to figure out where they can use it 08:51:57 schme: hmm... last time I checked, Erlang uses "processes" for nomenclature and the only pthreads code is for the new NxM threading system 08:52:07 I've to prepare milk 4 my daughter , brb 08:52:16 yeah I've never heard of erlang threads 08:52:24 schme: N threads executing M processes, where N << M 08:53:18 like, for a nice server, 32 threads supporting ~10k processes 08:54:26 on loaded system, it might be 100k processes... (linux threads give up at 32621 on x86-64) 08:55:26 -!- gruseom [n=daniel@h-64-105-143-250.snvacaid.static.covad.net] has quit [Read error: 113 (No route to host)] 08:55:47 OmniMancer [n=OmniManc@122-57-3-202.jetstream.xtra.co.nz] has joined #lisp 08:57:03 -!- cadabra [n=cadabra@c-174-52-81-75.hsd1.ut.comcast.net] has quit [Remote closed the connection] 08:57:51 ia [n=ia@89.169.161.244] has joined #lisp 09:01:52 p_l: hey that's great 09:02:38 back 09:02:55 the problem is to create a market 09:03:29 I have to scrifice something to allow mokeys to code 09:07:54 we have to find a way to tell ppl , hey CL is not death! clojure is finding it's way 09:08:21 So I have to sacrifice something 09:09:19 write a killer-app? 09:09:47 stassats, I'm doing I'm doing 09:10:26 kiuma: ... sacrifice what? For monkeys, I'm doing a DSL with limited capabilitiesand specifying how to contact/train someone who can 09:10:29 but I can't tell people to use threads or processes in a killer app 09:10:35 Is there some slime or paredit magic to comment out a sexp? 09:11:12 schme: #+nil 09:11:18 or #-(or) 09:11:26 right 09:11:34 *DSL with limited capabilities for monkeys and contact with and/or training of specialists 09:11:47 lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has joined #lisp 09:11:55 schme, #+nil will evaluate that sexp when the New Implementation of Lisp comes along 09:11:57 schme: c-m-space to select it, then m-; 09:12:05 mishoo, doesn't always work 09:12:06 C-M-Space ... too late 09:12:19 to be precise -- it'll occasionally comment out too much 09:12:36 -!- _8david [n=user@port-92-195-41-30.dynamic.qsc.de] has left #lisp 09:12:40 -!- lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has quit [Client Quit] 09:12:43 Adlai: yeah, I think the cursor has to be at the opening paren 09:12:47 it'll comment the marked region 09:12:53 _8david [n=user@port-92-195-41-30.dynamic.qsc.de] has joined #lisp 09:13:06 saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 09:13:38 stassats, it doesn't work for commenting out one sexp out of several on the same line 09:13:56 it doesn't? 09:14:23 CFM, comments for me, and moves other s-exps on the next line 09:14:23 it'll get that one and all the others after it, because it uses ;; 09:14:39 p_l training comes after one has seen the product 09:14:41 hmm 09:14:42 It is bound to M-;. (paredit-comment-dwim &optional ARGUMENT) 09:15:09 jmbr_ [n=jmbr@196.32.220.87.dynamic.jazztel.es] has joined #lisp 09:15:44 Adlai: NIL is a dialect of scheme 09:16:09 just comment-dwim does that too 09:16:30 Adlai: comment-dwim works fine, it puts the anything after the sexp on a new line 09:16:51 kiuma: sure. It just happens that it's going to use Erlang and CL :> 09:17:08 ok, I guess my relevant elisp isn't uptodate or something 09:18:06 grouzen [n=grouzen@91.214.124.2] has joined #lisp 09:22:08 Ok guys you are obliging me to have a look at iolib for a possible new connector implementation 09:22:19 ::) 09:26:20 -!- kiuma [n=kiuma@93-36-6-229.ip57.fastwebnet.it] has quit ["Bye bye ppl"] 09:26:36 kiuma [n=kiuma@93-36-6-229.ip57.fastwebnet.it] has joined #lisp 09:29:29 -!- jmbr [n=jmbr@238.245.218.87.dynamic.jazztel.es] has quit [Read error: 110 (Connection timed out)] 09:36:58 -!- SandGorgon [n=OmNomNom@122.173.249.152] has quit [Success] 09:38:34 -!- trebor_dki [n=user@mail.dki.tu-darmstadt.de] has quit [Read error: 113 (No route to host)] 09:40:34 .... 09:41:16 *p_l* was suddenly struck by the idea that if you used similar GC to Java's G1 in SBCL, relocatable cores would come for free.... 09:41:51 Reaver1 [n=Data_Ent@212.88.117.162] has joined #lisp 09:44:49 -!- legumbre_ [n=leo@r190-135-34-180.dialup.adsl.anteldata.net.uy] has quit [Read error: 60 (Operation timed out)] 09:56:20 Hun [n=hun@pd956be5d.dip0.t-ipconnect.de] has joined #lisp 09:57:02 r00tzlevel [n=hpd@91.66.191.155] has joined #lisp 10:02:02 maus [n=maus@222.253.92.58] has joined #lisp 10:03:02 Good afternoon! 10:07:28 milanj [n=milan@79.101.138.147] has joined #lisp 10:08:21 -!- rootzlevel [n=hpd@91-66-191-155-dynip.superkabel.de] has quit [Read error: 110 (Connection timed out)] 10:10:07 -!- maus [n=maus@222.253.92.58] has quit ["Leaving"] 10:10:10 francogrex [n=user@91.177.48.154] has joined #lisp 10:12:14 maus [n=maus@222.253.92.58] has joined #lisp 10:14:23 quite here, everyone sleeping? 10:15:14 everyone's busy coding lisp 10:16:07 chris2 [n=chris@p5B169331.dip0.t-ipconnect.de] has joined #lisp 10:16:36 sure 10:16:46 or reading lisp codes 10:16:49 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 10:17:41 -!- b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has quit ["Leaving"] 10:18:07 demmeln [n=Adium@ip-77-24-3-145.web.vodafone.de] has joined #lisp 10:24:05 sebyte [n=sebyte@vps203.linuxvps.org] has joined #lisp 10:25:29 did you hear of something called "ComLisp" 10:25:35 minion 10:25:59 minion: ComLisp 10:25:59 Sorry, I couldn't find anything in the database for ``ComLisp''. 10:26:31 stassats? 10:28:05 yay, LHC running at nominal power 10:28:24 ejs [n=eugen@105-10-135-95.pool.ukrtel.net] has joined #lisp 10:29:02 Salk [n=Slax@c-4f6669c0-74736162.cust.telenor.se] has joined #lisp 10:29:44 francogrex: i'm not a bot! 10:30:17 well, sometimes I get confused. 10:30:19 prxq [n=prxq@e179218193.adsl.alicedsl.de] has joined #lisp 10:30:20 mfk [n=user@78.107.237.47] has joined #lisp 10:30:45 are you bored? I have a "nice" article that might interest youµ 10:30:53 it's in pdf 10:31:35 no, i'm tuning my guitar 10:31:49 -!- prxq [n=prxq@e179218193.adsl.alicedsl.de] has quit [Client Quit] 10:32:17 -!- Spaghettini [n=Spaghett@vaxjo6.150.cust.blixtvik.net] has quit [Connection timed out] 10:32:51 -!- milanj [n=milan@79.101.138.147] has quit ["This computer has gone to sleep"] 10:33:10 tcr [n=tcr@host146.natpool.mwn.de] has joined #lisp 10:33:14 prxq [n=prxq@e179218193.adsl.alicedsl.de] has joined #lisp 10:33:36 hi 10:34:17 it's mind-blowing 10:35:06 morning all, is it bad style (or worse) to dispense with #' in front of (lambda ...) forms? 10:35:36 it's bad style in my code of style, but not grave 10:35:40 matter of taste 10:35:56 francogrex: what article? 10:35:58 stassats: thanks 10:37:24 p_l: I just got it from the library; it's called "a completely verified realistic bootstrap compiler" 10:37:45 heh 10:38:44 -!- Salk [n=Slax@c-4f6669c0-74736162.cust.telenor.se] has quit [sendak.freenode.net irc.freenode.net] 10:38:44 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [sendak.freenode.net irc.freenode.net] 10:38:44 -!- Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has quit [sendak.freenode.net irc.freenode.net] 10:38:44 -!- banisterfiend_ [n=little_b@203-211-73-170.ue.woosh.co.nz] has quit [sendak.freenode.net irc.freenode.net] 10:38:44 -!- eno [n=eno@nslu2-linux/eno] has quit [sendak.freenode.net irc.freenode.net] 10:38:44 -!- _deepfire [n=deepfire@80.92.100.69] has quit [sendak.freenode.net irc.freenode.net] 10:38:47 Salk [n=Slax@79.102.105.192] has joined #lisp 10:38:58 Pete_R [n=quassel@78.97.98.73] has joined #lisp 10:39:10 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 10:39:57 pavelludiq [n=quassel@83.222.175.184] has joined #lisp 10:40:11 -!- Patzy [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has quit [Read error: 54 (Connection reset by peer)] 10:40:40 Patzy [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has joined #lisp 10:41:03 -!- ejs [n=eugen@105-10-135-95.pool.ukrtel.net] has quit [Read error: 54 (Connection reset by peer)] 10:41:07 ejs [n=eugen@105-10-135-95.pool.ukrtel.net] has joined #lisp 10:41:23 eno [n=eno@nslu2-linux/eno] has joined #lisp 10:41:51 -!- mfk [n=user@78.107.237.47] has quit [Read error: 145 (Connection timed out)] 10:42:33 amaron [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has joined #lisp 10:42:35 or this: Closure generation based on viewing lambda as epsilon plus compile 10:42:36 10:43:16 I know that one! 10:43:35 well; it's old from 93 10:44:00 *prxq* wonders about the insistence on 'realistic' in the abstract of the first article. 10:44:42 pjb [n=t@60.Red-88-30-112.staticIP.rima-tde.net] has joined #lisp 10:45:01 Geralt [n=Geralt@91.50.189.30] has joined #lisp 10:45:55 -!- Salk [n=Slax@79.102.105.192] has quit ["Exit"] 10:47:31 -!- nipra_ [n=nipra@117.195.101.3] has quit [Remote closed the connection] 10:52:30 -!- francogrex [n=user@91.177.48.154] has quit [Remote closed the connection] 10:52:40 xinming [n=hyy@125.109.74.18] has joined #lisp 10:53:05 -!- amaron [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has quit [Read error: 60 (Operation timed out)] 10:53:18 djm [n=djm@paludis/slacker/djm] has joined #lisp 10:54:13 Spaghettini [n=Spaghett@vaxjo6.150.cust.blixtvik.net] has joined #lisp 11:02:23 Jabberwockey [n=jens@port-90979.pppoe.wtnet.de] has joined #lisp 11:02:41 -!- jmbr_ is now known as jmbr 11:03:20 mije [n=user@tal33-5-88-181-16-209.fbx.proxad.net] has joined #lisp 11:05:25 Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has joined #lisp 11:05:41 ejs1 [n=eugen@91.124.197.53] has joined #lisp 11:05:47 hello 11:05:57 hi 11:06:51 any lisp programmers in here? 11:07:03 plenty of them 11:08:05 could someone tell me why this expression doesn't work: (funcall (car '(#'(lambda () (print "helloworld"))))) 11:08:33 your lambda-expression isn't evaluated 11:08:48 try (funcall (car (list #'(lambda () (print "helloworld"))))) 11:09:39 wow that worked! but isn't "'" [quote] shorthand for (quote ...)? 11:09:53 or 11:09:56 nevermind 11:09:56 it is, that's why it isn't evaluated 11:10:26 _deepfire [n=deepfire@80.92.100.69] has joined #lisp 11:10:30 Edico [n=Edico@unaffiliated/edico] has joined #lisp 11:11:20 OOOOK, damn that was giving me headaches all night, thanks a million times stassats 11:15:20 -!- ejs [n=eugen@105-10-135-95.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 11:16:55 -!- mije [n=user@tal33-5-88-181-16-209.fbx.proxad.net] has quit [Remote closed the connection] 11:17:29 abeaumont [n=abeaumon@84.76.48.250] has joined #lisp 11:18:51 DrunkTomato [n=DEDULO@ext-gw.wellcom.tomsk.ru] has joined #lisp 11:18:52 OmniMancer1 [n=OmniManc@219-89-106-36.jetstart.xtra.co.nz] has joined #lisp 11:19:45 Alphonse: learning lisp for homework? 11:20:54 OK here's another question: Why does this work: (setf mylist (list #'(lambda () (print "helloworld")) 'b 'c 'e)) ; (funcall (car mylist)) -> "helloworld" ; but this doesn't: (setf mylist2 '(#'(lambda () (print "helloworld")) b c e)) ; (funcall (car mylist2)) -> Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER... ? 11:21:26 well, the same reason 11:21:35 prxy: I do have homework on lisp, but at the moment I'm just learning more about it for fun. 11:21:39 Alphonse, same thing. #' must be avaluated. you stop that with the quote 11:22:00 Alphonse, that's great. :-) 11:22:22 turn of pretty printing, and you will see what happens 11:22:48 but don't they both produce list, would that mean they're differen't data types? 11:22:52 maybe unless you are in clisp, which used to have a bug on that 11:22:56 what pretty printing has to do with it? 11:23:08 stassats, try it :-) 11:23:15 Alphonse: lists with different contents 11:23:55 prxq: the question remains 11:23:58 you see the (function ... business. 11:25:11 Alphonse, a list of symbols is not automatically a function you can call. 11:25:38 prxq: i don't see how that will help to see what happens 11:26:00 i don't see how you can't see it 11:26:14 i don't blame you 11:27:18 stassats, turn pretty pinting off an write '#'(lambda (x) x) in the repl. 11:27:42 and then try once without the leading quote 11:27:53 i understood you, but i question its helpfulness 11:28:31 it's clearly visible that's it's not evaluated, with pprinting either turned on, or off 11:29:41 -!- ejs1 [n=eugen@91.124.197.53] has quit ["This computer has gone to sleep"] 11:30:37 Davidbrcz [i=david@212-198-78-230.rev.numericable.fr] has joined #lisp 11:31:05 you can see that #' is syntactic sugar 11:33:57 -!- OmniMancer [n=OmniManc@122-57-3-202.jetstream.xtra.co.nz] has quit [Read error: 110 (Connection timed out)] 11:40:02 -!- djinni` [n=djinni`@li14-39.members.linode.com] has quit [Client Quit] 11:40:18 djinni` [n=djinni`@64.71.152.39] has joined #lisp 11:41:53 marc__ [n=marc@ANice-151-1-72-134.w83-205.abo.wanadoo.fr] has joined #lisp 11:42:21 -!- kiuma [n=kiuma@93-36-6-229.ip57.fastwebnet.it] has quit [Read error: 110 (Connection timed out)] 11:47:45 milanj [n=milan@79.101.138.147] has joined #lisp 11:49:36 quek [n=read_eva@router1.gpy1.ms246.net] has joined #lisp 11:49:40 -!- mrSpec is now known as spec[away] 11:50:30 -!- demmeln [n=Adium@ip-77-24-3-145.web.vodafone.de] has quit ["Leaving."] 11:54:08 -!- eihrul [n=eihrul@ip72-193-224-224.lv.lv.cox.net] has quit [Remote closed the connection] 11:58:22 -!- Taggnostr [n=x@dyn57-11.yok.fi] has quit ["Switching to single-player mode."] 11:59:36 mfk [n=user@kpbisb.static.corbina.ru] has joined #lisp 12:02:31 Axius [n=ade@92.82.88.36] has joined #lisp 12:04:04 Guthur [n=Michael@host81-131-243-232.range81-131.btcentralplus.com] has joined #lisp 12:05:03 ruediger [n=quassel@93-82-2-77.adsl.highway.telekom.at] has joined #lisp 12:06:00 -!- joga [i=joga@rikki.fi] has quit [Read error: 60 (Operation timed out)] 12:15:42 spilman [n=spilman@ARennes-552-1-126-110.w92-139.abo.wanadoo.fr] has joined #lisp 12:16:47 -!- marc__ [n=marc@ANice-151-1-72-134.w83-205.abo.wanadoo.fr] has quit [Remote closed the connection] 12:18:41 -!- prip [n=_prip@host163-122-dynamic.32-79-r.retail.telecomitalia.it] has quit ["Leaving"] 12:21:58 -!- Axius [n=ade@92.82.88.36] has quit ["Leaving"] 12:22:32 -!- Davidbrcz [i=david@212-198-78-230.rev.numericable.fr] has quit [Client Quit] 12:22:38 Davidbrcz [i=david@212-198-78-230.rev.numericable.fr] has joined #lisp 12:22:46 prip [n=_prip@host163-122-dynamic.32-79-r.retail.telecomitalia.it] has joined #lisp 12:23:14 -!- quek [n=read_eva@router1.gpy1.ms246.net] has quit [Remote closed the connection] 12:23:37 quek [n=read_eva@router1.gpy1.ms246.net] has joined #lisp 12:30:06 spradnyesh [n=pradyus@122.167.110.226] has joined #lisp 12:31:23 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 60 (Operation timed out)] 12:37:31 -!- milanj [n=milan@79.101.138.147] has quit ["Leaving"] 12:38:33 joga [n=joga@rikki.fi] has joined #lisp 12:40:18 -!- OmniMancer1 [n=OmniManc@219-89-106-36.jetstart.xtra.co.nz] has quit [Connection timed out] 12:43:02 SandGorgon [n=OmNomNom@122.173.249.152] has joined #lisp 12:45:12 OmniMancer [n=OmniManc@219-89-88-232.jetstart.xtra.co.nz] has joined #lisp 12:45:14 what's the best way to create unique numeric ids? 12:46:48 to keep track of the last id 12:46:52 start at 0 and remember where you've got to? 12:46:54 Yuuhi [i=benni@p5483FD96.dip.t-dialin.net] has joined #lisp 12:47:04 in scheme I used gettimeofday which returns (seconds . microseconds) 12:47:06 if you want to stamp your individuality on the problem, start somewhere else? 12:47:28 sebyte: that doesn't look very unique 12:47:37 stassats: sorry, my question wasn't clear 12:47:43 sebyte you more a random number then? 12:47:46 even a stopped 24-hour clock is right once a day 12:47:52 you/you mean 12:47:58 sbcl (probably not a very good solution) (parse-integer (symbol-name (gensym)) :start 1) 12:48:08 <_3b> minion: uuid ? 12:48:08 uuid: No definition was found in the first 5 lines of http://www.cliki.net/uuid 12:48:17 knobo: that's a hilarious answer, I like it 12:48:19 Krystof: Guthur trust me it was unique - i haven't explained the rest 12:48:25 knobo: a terrible solution 12:48:34 stassats: but hilarious 12:48:44 it's a joke 12:48:54 knobo: That's like (incf *gensym-counter*) 12:48:55 (incf *gensym-counter*) 12:48:58 :( 12:49:25 <_3b> obviously it should be (parse-integer (symbol-name (gensym ""))) 12:49:29 On linux we have /dev/zero /dev/null /dev/random, but not /dev/uniqe 12:49:41 <_3b> why add the G if you are just going to skip it? :p 12:50:36 right, anyway it's a joke. Don't confuse sebyte more than I already did. 12:51:02 actualy (incf *uniqe-numbers*) could do. 12:51:13 Depends on what he is going to use it for. 12:51:14 don't start new empty-string-p competition 12:52:57 daniel [i=daniel@unaffiliated/daniel] has joined #lisp 12:54:00 Edward_ [n=Ed@AAubervilliers-154-1-16-249.w86-212.abo.wanadoo.fr] has joined #lisp 12:55:11 heh 12:55:22 where is the optimized instance access implemented in SBCL? 12:55:23 -!- quek [n=read_eva@router1.gpy1.ms246.net] has left #lisp 12:56:17 (gettimeofday) works in scheme because the car of the returned cons is the seconds since 01/01/1970 and the cdr of the returned cons is the number of microseconds. As the car of the cons is forever increasing, all one has to do to get a unique number is convert them both to strings and concatenate. Because we're dealing with microseconds (list (gettimeofday) (gettimeofday)) will return two conses with differing con 12:56:17 tents. I'm looking for something similar to this in cl. 12:56:47 <_3b> sebyte: you need to be more specific 12:57:02 I want to change the optimization to be slightly different for my own slotds 12:57:21 sebyte: that's incorrect 12:57:22 <_3b> any number of functions will return a unique object cons, gensym, whatever 12:57:24 sebyte: Uhm 12:57:36 <_3b> timebased solutions only work if you don't call them very often 12:57:39 sebyte: Do you know many instructions a modern cpu can execute within a microsecond? 12:57:41 sebyte: you're assuming you're on a 1000Hz processor 12:57:52 er 1 MHz 12:58:01 <_3b> if time is good enough, just increment a counter by hand 12:58:07 <_3b> (or use CL time functions) 12:58:12 sebyte: and actually you'll need a 100 kHz processor on windows 12:58:35 <_3b> if you want something actually reliable, use an object, or make a guid/uuid 12:58:41 ok its a kludge, but it works in practice 12:58:42 because the resolution of the windows time may be as bad as 10 milliseconds 12:58:46 <_3b> rahul: don't you mean 18hz? 12:58:47 erm wait, 100Hz 12:59:12 sebyte: it doesn't work at all in practice 12:59:20 he's probably using a very slow scheme interpreter :-) 12:59:21 sebyte: it's not even a kludge; it's both more complex and less reliable than a straightforward solution. 12:59:22 sebyte: you will get into trouble doing this on windows 12:59:48 yeah, unless you use a scheme interpreter you wrote for your programming languages class 12:59:53 it does work in practice because my webapp doesn't get that much traffic and I use to generate a session id for a cookie 13:00:02 i use it to generate... 13:00:18 sebyte: why can't you do something sensible instead of something ridiculous? 13:00:31 -!- sykopomp [n=sykopomp@unaffiliated/sykopomp] has quit [Read error: 104 (Connection reset by peer)] 13:00:40 sebyte: your solution is worse than our jokes... 13:00:42 HET2 [n=diman@80.3.31.126] has joined #lisp 13:00:42 -!- HET2 [n=diman@80.3.31.126] has quit [Remote closed the connection] 13:00:44 yay! dilettantes writing webapps 13:01:00 HET2 [n=diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has joined #lisp 13:01:04 rahul: i'm honoured 13:01:07 I guess our jokes are constrained by looking for correctness 13:01:13 :) 13:01:16 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 13:01:32 yours is probabalistically correct 13:02:18 so what's the best way to generate a unique session id for a cookie? 13:02:25 sebyte: incf 13:02:35 rahul: not even probabilistically; statistically, maybe. 13:02:48 pkhuong: yeah, sure 13:02:51 But I can consistently cause collisions with that scheme. 13:02:58 right 13:03:05 unless you use a really bad scheme interpreter 13:03:46 or maybe stacked it on top of 5 or 10 emulators 13:03:54 so what's the best way to generate a unique session id for a cookie without preserving state (e.g., in a CGI environment)? 13:04:10 sebyte: the time of day IS STATE 13:04:14 *rahul* facepalm 13:04:32 CGI?!? 13:04:34 sebyte: don't use CGI, or save your state to an external file (and lock) or a database. 13:04:37 oh my god 13:05:01 these newbies really are from the 90s 13:05:01 Why would you use session IDs if you don't have any state, anyway? 13:05:08 heh 13:05:24 pkhuong: because otherwise he wouldn't have anything to put into the cookie, clearly 13:06:03 and cookies are the hot new thing, this being the 90s, so you gotta use them for your site to be taken seriously 13:06:22 it was just a number to put in a cookie to identify a logged in user for pete's sake! 13:06:28 Edico [n=Edico@unaffiliated/edico] has joined #lisp 13:06:34 oh my god 13:06:42 sebyte: identify the user by their login id! 13:06:53 rahul lol at the cookie statement 13:06:54 this is getting dumber and dumber 13:07:06 -!- SandGorgon [n=OmNomNom@122.173.249.152] has quit [Read error: 60 (Operation timed out)] 13:07:41 sebyte: but you have no state; what good does it do to be able to associate a (trivially forgeable) unique id with nothing? 13:08:15 he's associating it with the unique ID of the user 13:08:28 by putting the user id in the same cookie, one would hope 13:08:36 rahul: 1. how (no state)? 2. and then what (no state)? 13:08:42 -!- skypher is now known as lpolzer 13:08:56 pkhuong: 1. cookie 2. session id 3. profit 13:09:10 by keeping state in a cookie, like in a cloud 13:09:26 *rahul* stores his head in the cloud 13:09:46 hopefully that will calm you down 13:09:54 pkhuong: you know, I wonder if the .com era had business plans that actually looked like that 13:10:03 davazp [n=user@218.Red-83-37-233.dynamicIP.rima-tde.net] has joined #lisp 13:10:20 sebyte, reading from /dev/urandom has worked for me .. (unique random (so people aren't able to guess) IDs) 13:10:22 -!- daniel_ [i=daniel@unaffiliated/daniel] has quit [Read error: 110 (Connection timed out)] 13:10:32 lnostdal: urandom is NOT unique random 13:10:34 look guys, this was first stab at a writing a webapp, it used CGI, and I wrote the cookie-based authentication system myself OK. One has to start somewhere. I'm not doing things this way anymore and I think I have my answer - there's no way of generating a unique number without keeping a record of the last number issued. 13:10:52 sebyte: why don't you build your own CPU as well? 13:11:11 rahul: you're very funny :) 13:11:14 lnostdal: might as well use UUIDs. 13:11:19 lnostdal: it's pseudorandom 13:11:22 -!- OmniMancer [n=OmniManc@219-89-88-232.jetstart.xtra.co.nz] has quit ["Leaving."] 13:11:26 rahul, i know that .. so i check if what is returned is already something in-use .. (but that is very unlikely given that i read about 50 octets from that dev.) 13:11:37 lnostdal: but he has no state 13:11:50 so he doesn't know what session ids are out there 13:11:59 rahul, how is this my problem? 13:12:01 nor does he know what those sessions are doing 13:12:15 lnostdal: you took ownership of it :D 13:12:16 and no, it is not pseudorandom 13:12:24 it is pseudorandom 13:12:30 rahul, "ok" 13:12:39 lnostdal: urandom is pseudorandom. 13:12:47 pkhuong, no, it is a mix 13:12:50 lnostdal: you've mistaken /dev/random and /dev/urandom 13:12:53 a mix of what? 13:13:05 you can't mix one thing 13:13:33 this is why software is so full of security holes 13:13:35 when enough entrophy (orwhateverfuck the word is again) is available it is not pseudo 13:13:44 lnostdal: nope 13:13:49 Adamant [n=Adamant@unaffiliated/adamant] has joined #lisp 13:13:51 lnostdal: there is nothing that works like that 13:14:07 indeed, that would be unpossible 13:14:08 and how often will you have enough entropy, especially on a server? 13:14:10 well, I suppose you could do a nonblocking read on /dev/random and then fall back 13:14:28 lnostdal: urandom better not deplete my entropy, anyway 13:14:36 that would be a no-no. 13:14:40 pkhuong, sure .. that might be a problem 13:14:50 entropy is hard to create 13:14:58 let's go shopping 13:15:06 pkhuong: doesn't entropy come from network activity, too? 13:15:11 But that's a far fetched attack. 13:15:25 rahul: 64 bytes of it per HTTP request? 13:15:41 pkhuong: no, per packet 13:16:04 one can buy usb-stick thingies that generate more entrophy from .. some, stuff 13:16:07 oh, you're talking about need 13:16:15 pkhuong: right, it's probably not nearly enough 13:16:17 (radiation or whatever .. i don't know) 13:16:30 lnostdal: it's called a transistor 13:17:04 just make the voltage differential huge 13:17:17 then there's no signal getting amplified 13:17:20 lnostdal: a crypto hash of a simple guaranteed unique value is probably more reliable and solid. 13:17:43 kiuma [n=kiuma@93-35-252-74.ip57.fastwebnet.it] has joined #lisp 13:20:25 does anybody of you have used iolib ? 13:20:47 *raises hand* .. but maybe i should STFU in case that's wrong too 13:21:04 (..not that anyone here has any realistic other suggestions..) 13:22:23 eh? UUID + hash isn't realistic? 13:22:27 i'm sure rahul's server is great fun blocking while waiting for /dev/random to have enough entrophy .. for instance 13:22:50 Good afternoon! 13:23:03 hi beach 13:23:17 lnostdal: why would I do something as dumb as that? 13:23:24 lnostdal: that's what you wanted... 13:23:29 hey fe[nl]ix! How is cltl3 going? 13:23:46 rahul, no, /dev/urandom is not the same as /dev/random 13:24:40 beach: it's on pause at the moment 13:24:47 lnostdal: as you discovered 13:24:55 fe[nl]ix: Too busy? 13:25:20 yes 13:25:45 rahul, no, i already knew about this .. if you don't believe me search the sbcl-general mailing list where i posted about this some weeks back 13:25:50 Odin- [n=sbkhh@s121-302.gardur.hi.is] has joined #lisp 13:26:36 lnostdal: shrug, believe whatever you want about how the linux kernel works 13:26:56 lnostdal: maybe you changed your source to work differently from everyone else's kernel 13:27:38 bgs100 [n=ian@unaffiliated/bgs100] has joined #lisp 13:28:46 dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 13:28:56 where can i find a lisp version of munching squares? http://en.wikipedia.org/wiki/Munching_square 13:29:33 dto: just write it 13:29:44 all i can find is the pdp-11 source that i don't understand. 13:29:47 -!- mfk [n=user@kpbisb.static.corbina.ru] has quit [Remote closed the connection] 13:29:50 ah, xscreensaver has a c version :) 13:30:10 dto: the pdp-11 source is closer to lisp than the C version probably :) 13:30:13 -!- prxq [n=prxq@e179218193.adsl.alicedsl.de] has quit ["Leaving"] 13:31:18 my father used to code for PDP-11. i'll ask him when he wakes up. 13:31:39 dto: just follow the algorithm 13:31:50 you're just doing xors of the indicies 13:31:55 i'll look at the c version 13:32:04 it's more colorful anyway 13:32:22 It looks straightforward enough just from the wikipedia and mathworld descriptions, provided you have a bitmap output device. 13:32:25 seems well documented 13:32:43 or an array 13:33:11 (which is a bitmap output device, kind of) 13:33:24 The point is to have a -display- hack, isn't it? 13:33:43 I guess you could make a series of bitmaps or an animated gif or something. 13:34:02 the array can translate to whatever 13:34:11 so that it displays on your terminal 13:34:22 my game engine places everything on a grid, and i'd like to color in the background slowly using munching squares :) 13:34:23 maybe even ascii art! 13:34:47 rahul: i'm thinking more like http://dto.github.com/notebook/xong.html 13:36:18 rahul: Yes, but that's still a bitmap output device. 13:37:53 tobetchi [n=tobetchi@p296ba7.sagant01.ap.so-net.ne.jp] has joined #lisp 13:37:55 yep! 13:37:58 i want to adapt the behavior 13:38:56 nyef: hence my parenthtical comment 13:39:25 dto: it's just a graph of y = x xor 1 and then y = x xor 2, etc 13:40:34 apparently getting creative with T can yield more interesting results though 13:40:42 but we are just reading from wiki here hehe 13:41:47 sounds like it wouldn't be hard to implement at all though 13:42:09 it's 5 assembly instructions 13:42:13 i wonder what it would be like in 3D 13:42:28 render it and see :) 13:42:46 or just rotate the time into space as you watch it 13:43:33 i have been itching to try cl-opengl 13:43:49 Axius [n=ade@92.84.17.239] has joined #lisp 13:44:10 I am beginning to wonder if a CLIM-stye geometry substrate would lead to OpenGL making more sense to me. 13:45:27 dreish [n=dreish@minus.dreish.org] has joined #lisp 13:45:39 -!- Axius [n=ade@92.84.17.239] has quit [Client Quit] 13:46:17 nyef: Zhivago has some ideas on how to get CLIM to seamlessly do 3D 13:46:22 -!- Kolyan [n=nartamon@93.81.159.138] has quit [] 13:46:45 you still need to define the projection that determines the view 13:46:59 but that's basically like a sheet-transformation 13:47:04 *_3b* is interested in mixing clim and 3d, but hasn't looked at clime enough to know how it would work 13:47:48 hugod [n=hugod@bas1-montreal50-1279441070.dsl.bell.ca] has joined #lisp 13:48:26 mostly, just add another dimension to coordinates 13:48:38 well in D3D you still had to provide a projection matrix so not much difference there 13:48:43 and add drawing functions for 3d shapes 13:48:59 Kolyan [n=nartamon@95.25.176.121] has joined #lisp 13:49:30 i suppose the only difference is you have access to the 3D hardware to do the calculation 13:49:31 you have to look AT the 3d shape from somewhere 13:49:44 Guthur: difference between a duck? 13:49:45 <_3b> does CL have a pagefeed equivalent of terpri? 13:49:48 ya you give a view matrix as well 13:50:06 _3b: no, because not all terminals have pagefeed 13:50:17 rahul ya that duck you were talking about 13:50:36 Guthur: yes, one of its legs are both the same 13:50:54 apparently but i think i see a distinctive limp 13:51:07 just like the difference between the 3d hardware direct3d accesses and the 3d hardware lisp accesses 13:51:17 I'm not necessarily thinking of extending CLIM here, just borrowing some of the ideas from the geometry substrate. 13:51:32 nyef: sure. it integrates well with clim, tho 13:51:42 rahul didn't know lisp included a 3d hardware abstraction layer 13:51:43 nice 13:52:15 <_3b> Guthur: just various GL libs 13:52:20 <_3b> *OpenGL 13:52:27 Guthur: yeah, it's shocking that you can call opengl functions from lisp 13:52:41 thats binding to c i though 13:52:44 thought* 13:52:54 I mean one wouldn't expect it because you can't call socket functions from lisp 13:53:03 schoppenhauer [n=senjak@unaffiliated/schoppenhauer] has joined #lisp 13:53:04 Guthur: Not with CLX + GLX. 13:53:05 definitely no network abstraction layer in lisp 13:53:21 <_3b> Guthur: you can bind to C or use glx network protocol to talk to opengl 13:53:22 nyef wasn't aware of those, cheers 13:53:48 you'd need to write the GLX layer for CLX, tho 13:53:56 <_3b> rahul: why? 13:54:10 _3b: so that it exists before you call it? 13:54:19 *_3b* might say you would need to /finish/ it, but not write it 13:55:09 did someone start work on it? 13:56:11 Yeah, they did. 13:56:40 Doesn't actually work all that well, but I managed to fix it up enough that I could get texture-mapping to work after a fashion. 13:56:45 *_3b* does the FFI gl stuff, so only know what i hear nyef talking about for the GLX version 13:57:59 If you -do- want to to the GLX route, you'll probably want to grab my CLX tree, wherever it is that I left it. 13:58:01 nyef is there much work going on currently 13:58:04 bah who needs textures 13:58:13 on the GLX 13:58:16 Nope. 13:58:32 I last touched it a few months ago when I got texture-mapping to not entirely suck. 13:58:58 *_3b* would suggest avoiding GLX if you want to do any serious GL work 13:59:13 karme [n=user@kallisto.karme.de] has joined #lisp 13:59:18 where "serious" means "games" 13:59:20 _3b ya it sounds all very experimental 13:59:22 Yeah, there's no way in hell that the current GLX stuff will ever do direct GL. 13:59:33 Guthur: um, GLX is decades old 13:59:40 <_3b> rahul: no, seruous as in having any hope of using modern features, or getting performance :p 13:59:42 rahul games is the largest entertainment industry, so is quite serious 13:59:47 _3b: for games. 13:59:55 $40 billion dollars in 2008 i believe 14:00:04 <_3b> rahul: or editors, or scivis, or whatever 14:00:14 _3b: why? 14:00:32 _3b: is 2d somehow faster over a socket than 3d? 14:00:43 <_3b> rahul: do you think you can push a few million polygons/frame across glx network protocol? 14:00:46 maybe the extra dimension has to be compactified to fit through the wire 14:00:50 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 14:01:07 *_3b* meant 3d editors if it wasn't clear, not text 14:01:07 _3b: you can do anything that's as serious as what you'd do in a 2d interface 14:01:26 _3b: yeah, you can't build artistic 3d models 14:01:48 and neither can you play the game that has that 3d model in the scene 14:02:16 but you can render 3d shapes and have them react to the user, like a 2d gui would 14:02:44 <_3b> rahul: you've lost me, are you arguing in favor of using GLX here? 14:02:50 unless you still insist that increasing the size of a coordinate data structure by 50% suddenly makes it impossible to do anything 14:03:05 _3b: I used GLX regularly back around 2000 14:03:18 <_3b> rahul: the GLX that you said didn't exist a few minutes ago? 14:03:24 wha? 14:03:35 *_3b* is talking about the lisp GLX that goes with CLX 14:03:54 _3b: there's something intrinsic about lisp that makes it slow with GLX? 14:03:56 -!- schoppenhauer [n=senjak@unaffiliated/schoppenhauer] has quit [Remote closed the connection] 14:04:05 because C GLX programs work fine 14:04:16 TR2N` [i=email@89-180-197-189.net.novis.pt] has joined #lisp 14:04:18 <_3b> rahul: not having implemented the last few decades of opengl mainly 14:04:19 see also: quake 14:04:37 _3b: so they can't do fancy lighting and texturing crap 14:04:47 <_3b> or large models 14:04:56 <_3b> or even small models by modern standards 14:04:56 but they can draw 3d shapes as well as your computer does 2d shapes for your GUI 14:05:47 -!- pjb [n=t@60.Red-88-30-112.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 14:05:54 <_3b> and sure, you can draw all you want if it is no more complex than the average GUI, i wouldn't call that 'serious' use though 14:05:55 not everything is trying to make lifelike 3d scenes 14:06:09 _3b: shrug, I guess stock trading is a joke, then 14:06:36 <_3b> 'serious' in the context of 'GL' 14:06:48 <_3b> sure, you can do real work with simple graphics 14:06:57 <_3b> you can do real work with text 14:07:00 rahul it apparently is, experiment in some Scandinavian country showed a parrot came 3rd out of 10 in blue chip trading 14:07:07 yeah, you don't need a lifelike rendering of a tiger to trade stocks 14:07:08 fiveop [n=fiveop@e179160079.adsl.alicedsl.de] has joined #lisp 14:07:19 *_3b* doesn't know what stock trading has to do with GL though 14:07:19 the other 9 participants were humans 14:07:21 Guthur: because blue chips are useless 14:07:25 Edico [n=Edico@unaffiliated/edico] has joined #lisp 14:07:46 <_3b> you can't draw large volumetric data sets with text, or with current lisp GLX 14:07:51 so only a part of stock trading is a joke 14:08:03 <_3b> you can't render large industrial models either 14:08:28 <_3b> modern cards could probably render quake 1 through GLX though, depending on the texture support :) 14:08:31 you can't do 3d for applications that are there specifically for 3d, yes! 14:08:41 but you can build 3d interfaces for applications 14:08:48 modern? 14:08:56 _3b: it's the 90s again, isn't it? 14:08:57 -!- TR2N [i=email@89-180-140-82.net.novis.pt] has quit [Nick collision from services.] 14:09:01 -!- TR2N` is now known as TR2N 14:09:08 as long as the model is static it doesn't really matter whether there is a network protocol inbetween? 14:09:10 <_3b> true, old cards can too 14:09:13 we need to use cookies and struggle to run quake 14:09:31 <_3b> karme: it does if you haven't implemented the part that lets it be static on the server 14:09:32 karme: apparently the network slows the hardware down 14:09:47 <_3b> rahul: no, being used inefficiently slows it down 14:09:53 _3b: well yes, thats obvious 14:09:53 if it is static you may as well forget 3D hardware and really whoa people with ray tracing 14:10:30 <_3b> Guthur: static model doesn't always mean static view or scene 14:10:42 _3b still more chance of ray tracing 14:10:50 you can pre-compute the scene 14:11:28 *_3b* will stop feeding the troll now, and go back to trying to get something done 14:11:35 *rahul* has no idea when _3b is talking about the limitations of GLX or the limitations of GLX that's in CLX 14:12:10 ray tracing will be sweet though 14:12:17 yes, the troll that claimed that GLX somehow makes it impossible to play quake unless you have a modern 3d card 14:12:38 ray tracing hardly uses your 3d hardware 14:13:00 you theoretically could use the hardware for some of the stuff that happens in ray tracing, but I'm not sure exactly how 14:13:03 <_3b> rahul: 100% the lisp implementation of glx, and sorry, quake 1 was a bad example, a more recent game would work better 14:13:19 rahul i know 3D hardware is designed for that sort of thing 14:13:21 _3b: yes, since I played quake 1 over GLX in 200 14:13:25 is/isn't 14:13:30 <_3b> people raytrace on graphics cards all the time 14:13:36 ... I'm almost sorry I brought the subject up. 14:13:44 _3b with the secondary rays 14:13:46 _3b: actually ray trace? 14:13:46 ? 14:13:46 <_3b> rahul: right, the issue is VBOs, not GLX 14:14:06 <_3b> rahul: sure, real raytracing 14:14:38 rahul: Sure! Modern GPUs are capable of nigh-arbitrary calculation by abusing shaders, aren't they? 14:14:48 or even further? from my understanding the lack of deep branching support negates the possibility of doing that effectively 14:14:56 <_3b> not even abusing... that's what they are there for 14:15:06 nyef: well, that's what I'm wondering 14:15:19 Shaders are there for audio processing? 14:15:23 <_3b> the problem is coherent branching, but that just slows it down, doesn't break things 14:15:26 For physics simulation? 14:15:31 <_3b> nyef: nvidia thinks so 14:15:34 yeah 14:15:41 _3b there is a hard limit as well, or at least there was 14:15:51 nvidia is marketing their chips as general purpose scientific coprocessors 14:15:53 <_3b> Guthur: not as much anymore 14:16:01 Tordek_ [n=tordek@186.124.242.12] has joined #lisp 14:16:07 which is really hillarious, because they're so overpriced for that 14:16:38 <_3b> 2tflops for a few hundred is overpriced? 14:16:39 anyone else using lichtblau's atdoc? I just threw my old clbuild dir away and started clean, and now I get an error "The value NIL is not of type VECTOR." when I try to generate docs for an empty project... 14:17:14 but hey, if they don't show growth, their stock price won't go up 14:17:32 the error get thrown at CXML-STP-IMPL::NORMALIZE-TEXT-NODES! if that helps any 14:17:38 s/get/gets/ 14:17:47 leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has joined #lisp 14:18:26 -!- joga [n=joga@unaffiliated/joga] has quit [Remote closed the connection] 14:18:52 jgracin [n=jgracin@vipnet88-89.mobile.CARNet.hr] has joined #lisp 14:19:47 _3b: and even branches are getting better support, without affecting the awesome latency-hiding capabilities. 14:21:30 holycow [n=new@mail.fredcanhelp.com] has joined #lisp 14:24:25 aren't there DSP boards that are like 32 chips for $100? 14:24:36 those should be able to get a few tflop 14:25:22 rahul: the magic isn't in the flops as much as the GB/s. 14:26:05 pkhuong: because they have 16 lanes to transfer over, I guess 14:26:14 <_3b> rahul: more like 4gb on board 14:26:34 <_3b> (next gen nvidia increases address space to get around that limit too if i remember right) 14:27:41 *_3b* is being imprecise again though, sorry about that... the 4gb board probably are overpriced :) 14:28:11 _3b this is a double precision channel so shame on you 14:28:18 rahul: no, because they have good support for a boatload of multiplexed hardware threads. 14:28:38 -!- Alphonse [n=sean@74-61-160-29.hon.clearwire-dns.net] has quit ["leaving"] 14:28:39 akamaus [n=maus@78.31.79.185] has joined #lisp 14:28:52 pkhuong: well, so does a board with 32 chips :) 14:29:47 <_3b> rahul: bigger boat :p 14:30:10 -!- Tordek [n=tordek@186.124.242.163] has quit [Read error: 110 (Connection timed out)] 14:30:16 but if it's more along the lines of simulation where you're doing calculations iteratively... you'll need to keep shuttling the data back across the bus each iteration, so a local store will help a lot 14:30:20 rahul: the important point here is the multiplexing. That allows us to fully use the hardware capabilities without fancy OOE or even superscalar, by buffering the latency from a memory that otherwise has awesome throughput. 14:30:27 joga [i=joga@83.150.90.112] has joined #lisp 14:30:42 Think Tera MTA. 14:31:47 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 14:33:04 basically a round robin scheduling at the microlevel? 14:34:04 do we have a last seen capability with the bot here? 14:34:10 holycow: no. 14:34:16 danke 14:34:42 -!- davazp [n=user@218.Red-83-37-233.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 14:34:49 It's a mix of that and narrow (on the order of 8 threads) SIMD. 14:34:54 voidpointer [i=Void@unaffiliated/voidpointer] has joined #lisp 14:34:59 minion: seen holycow? 14:34:59 holycow was last seen 5y6m14d32h43m10s ago, saying "minion: when are you going to support seen?" 14:35:21 heh 14:36:16 pkhuong: makes sense, yeah 14:37:06 <_deepfire> Hmm, I wish cl-who walked its body, for non-toplevel markup elements. 14:37:36 _deepfire: while I'm happy that cl-who is simple and robust. 14:37:43 _deepfire: macrolet is good for that kind of thing 14:38:08 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 14:38:51 <_deepfire> pkhuong, was that you, who told me once that iterate murders babies with its macroexpanding, btw? 14:38:59 -!- hugod [n=hugod@bas1-montreal50-1279441070.dsl.bell.ca] has quit [] 14:39:45 Sounds like a plausible paraphrase. 14:40:22 kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 14:40:36 <_deepfire> I must admit that I have about zero clue about walkers. Is it really that hard to make such things robust? 14:40:50 _deepfire: they are tricky to deal with 14:41:04 _deepfire: and they make a total mess out of debugging 14:41:18 the compiler never gets a chance to see the original code structure 14:41:21 there's no way for independent codewalkers to compose. 14:41:32 and that 14:41:43 you're best off using macrolet as much as you can 14:42:41 i use a walker in my game's OO system :) 14:42:50 but it's debugged and done with. 14:43:18 dto: wait till someone decides to use it in a program with SERIES 14:43:21 <_deepfire> So are their use relegated to end-user-DSL tools? 14:43:26 SERIES? 14:43:43 LiamH [n=nobody@pool-72-75-73-155.washdc.east.verizon.net] has joined #lisp 14:43:56 <_deepfire> *uses 14:46:21 minion: series? 14:46:22 series: Series is a Library for operating on series, a data structure similar to a sequence. http://www.cliki.net/series 14:47:36 -!- rpg [n=rpg@216.243.156.16.real-time.com] has quit [Read error: 110 (Connection timed out)] 14:47:43 <_deepfire> What do I read to get an overview about where one would reasonably use walkers? 14:48:38 <_deepfire> As in, is there a canonical article/paper on that? 14:48:47 -!- karme [n=user@kallisto.karme.de] has left #lisp 14:51:29 my advice is not to... But that leaves me in a tight spot with PCL (the CLOS implementation). 14:51:39 -!- spradnyesh [n=pradyus@122.167.110.226] has quit [Read error: 110 (Connection timed out)] 14:52:23 _deepfire: when macrolet still won't give you what you want 14:52:45 <_deepfire> So, PCL uses some kind of extra-careful techniques which don't interfere with other walkers? 14:53:09 spradnyesh [n=pradyus@nat/yahoo/x-lupzlhrpzpikviup] has joined #lisp 14:53:12 <_deepfire> Did anyone try to distill how they done that? 14:53:12 <_3b> pcl uses slow-down-my-compilation techniques :p 14:54:20 _deepfire: PCL as used today is tightly coupled with the implementation. 14:55:26 -!- kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 14:56:30 <_deepfire> pkhuong, understood 14:57:16 <_deepfire> So it might be beneficial to recognise/reify/export the unexported parts of compilers which make PCL walking safe? 14:57:59 marioxcc [n=user@200.77.62.241] has joined #lisp 14:58:35 <_deepfire> I know, I'm too easy on hard questions :-) 14:58:43 banisterfiend [n=little_b@203-211-70-95.ue.woosh.co.nz] has joined #lisp 14:59:58 _deepfire: probably not. It's the coupling that makes it robust. Coupling is anathema to modularity and composability. 15:00:13 hugod [n=hugod@bas1-montreal50-1279441070.dsl.bell.ca] has joined #lisp 15:02:00 <_deepfire> pkhuong, I see.. thanks for your responses! 15:02:12 kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 15:05:47 schoppenhauer [n=css@unaffiliated/schoppenhauer] has joined #lisp 15:08:42 -!- dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Read error: 113 (No route to host)] 15:09:50 iterate has a walker which seems reasonably useful for many purposes. 15:10:10 Sikander [n=soemraws@oemrawsingh.xs4all.nl] has joined #lisp 15:10:14 Hi guys 15:10:19 Hi Sikander 15:11:03 I didn't do the trap tests yet :( 15:11:07 _YKY_ [i=YKY@119.237.179.33] has joined #lisp 15:11:21 <_YKY_> Can I use "collect" in dolist? 15:11:40 Sikander: np, I haven't done anything on FFT in the last day or so. 15:11:43 LiamH: I got a bit distracted... 15:11:44 you can push and nreverse 15:11:48 _YKY_: no 15:12:06 Does anyone know something about CLX internals? 15:12:14 Sikander: I'm on the verge of getting the test generation working. 15:12:22 Sikander: I know a little something, why? 15:12:26 LiamH: Yeah, I see from the latest pull 15:12:39 nyef: because of the rotation of text thing... 15:12:45 Ah, right. 15:12:54 You realize that rotation is only the start, right? 15:13:02 Sure 15:13:21 How would one go about giving a transform matrix instead of a point size to a font? 15:13:24 Eventually someone is going to want arbitrary affine transformations of text. 15:13:38 the X font server allows that 15:13:41 Sikander: I was going to bypass the examples list and dump something to a test file directly, but now I'm leaning the other way. However I'm working on something else now. 15:13:53 The font server -allows- that? What? 15:14:19 For -bitstream-whatever-*-*-ptsize-*-* etc 15:14:35 you can, instead of ptsize a number, give [ 12 0 0 12 ] 15:14:41 which is a pointsize of 120 15:14:56 so if you do [ 0 12 12 0 ] you get mirrored, rotated glyphs 15:15:06 wow 15:15:07 ... That completely fails to map to my understanding of X fonts. 15:15:09 I want to put this in clx 15:15:15 Try it 15:15:39 X11R6 X Logical Font Descriptions says this explicitly 15:15:48 And it works 15:16:19 so [a b c d] is a transform matrix [[a b 0] [c d 0] [0 0 1]] 15:16:32 nyef: enough for your affine transformations? 15:16:36 :D 15:16:56 Athas [n=athas@shop3.diku.dk] has joined #lisp 15:17:01 -!- kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 15:17:35 So instead of letting the client rotate the glyphs, you let the server do it. The client just needs to position the glyphs with respect to each other (that's a whole other problem, I know...) 15:17:42 But it's a start 15:17:49 -!- banisterfiend [n=little_b@203-211-70-95.ue.woosh.co.nz] has quit [Client Quit] 15:18:16 *nyef* pulls up a local copy of the LFD spec. 15:18:20 LiamH: What do you mean by the examples list? 15:18:45 nyef: page 24 of the X11R6 XLFDC 15:19:14 Scalable fonts? 15:19:40 Oh, the section before that. 15:19:58 Sikander: I mean with a save-test, so that when you do (examples 'fft-real-noise) or whatever, you get a list of examples. Normally, the tests are just generated from this list by running them and saving the output. I'm doing the FFT differently in that the DFT serves as the reference. 15:20:49 nyef: Yes, section 4 called Matrix Transformations 15:21:04 nyef: That's what I want in clx, so we can use it in mcclim 15:21:29 Just pass such a thing to open-font? 15:21:32 LiamH: Ah, right, I understand. Yes. 15:22:30 nyef: I tried just starting an X program with a X string, but instead of, say, "120" for point size, "[0 12 12 0]" and I get rotated, mirrored glyphs (still written left-to-right) 15:23:11 So... where's the problem? 15:23:15 HET3 [n=diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has joined #lisp 15:23:22 CLX doesn't do translation of font names, after all. 15:23:37 -!- ineiros_ is now known as ineiros 15:23:53 nyef: Ah, perhaps I understand wrong 15:24:05 nyef: I thought that clx synthesizes the font name internally. 15:24:09 Nope. 15:24:13 ah 15:24:18 Ok, 15:24:20 McCLIM might, but CLX doesn't. 15:24:37 Ok, so CLX is matrix transform proof, that's what you're saying? 15:24:59 Then I'll just dive into the clim-clx backend 15:25:33 would be cool if the glyphs use the same transform as the environment in which draw-text is called 15:26:08 nyef: thanks, that's what I needed to know. 15:26:17 Yeah, but that leads to needing to pull a separate font for each glyph once you start using transforms more complicated than a simple rotation. 15:26:18 fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has joined #lisp 15:26:24 greetings 15:27:32 nyef: Yes, if you want to write on an arbitrary path (not a line), then it becomes difficult. But in McCLIM, that would be difficult anyway, right? I mean, for any drawing inside a transformed environment, the environment is still a combination of linear operations 15:28:08 nyef: or is it possible to make a transform that is non-linear? 15:28:15 (in mcclim) 15:28:37 The restriction, according to the spec, is that transforms must be affine, which means that lines remain as lines. 15:29:06 -!- maus [n=maus@222.253.92.58] has left #lisp 15:29:07 But you can describe a transform that is affine but causes parallel lines to converge when transformed. 15:29:10 nyef: Yes, and the transform in XLFDC is affine as well 15:29:41 Right, but it's applied to each character as a bitmap. 15:30:08 At the point you draw each character in a string transformed this way its -point size- changes. 15:30:25 nyef: My point is that for each write-text, you would only need to pull in one font that is transformed 15:30:38 nyef: Ah, ok 15:30:41 nyef: I see your point 15:30:59 nyef: Let someone else fix that, dammit 15:31:03 Heh. 15:31:04 ;) 15:31:25 -!- HET2 [n=diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has quit [Read error: 110 (Connection timed out)] 15:31:25 Anyhow, I plan to make a start in implementing this 15:31:46 Anyone for, say yay, anyone against, say nay 15:32:00 That's what I thought, no one cares :0 15:32:02 :) 15:32:26 -!- _YKY_ [i=YKY@119.237.179.33] has left #lisp 15:35:03 yay 15:35:30 *LiamH* likes where Sikander is going with mcclim 15:36:16 nyef: I don't see how a single transformed environment in McCLIM (described by a single matrix), can do an affine transform where lines that are drawn parallel, can cross after the transform. 15:36:42 *Sikander* isn't very bright... 15:36:47 I didn't say that they would cross, I said that they would converge. 15:36:56 They can -grow closer-. 15:37:08 That is, no longer be parallel when drawn. 15:37:16 nyef: In euclidean geometry, converging lines will eventually cross 15:37:24 Hrm. 15:37:32 I may need to re-think that, then. 15:37:35 if they're parallel, they diverge 15:37:40 by definition 15:37:55 -!- spradnyesh [n=pradyus@nat/yahoo/x-lupzlhrpzpikviup] has quit [Read error: 60 (Operation timed out)] 15:38:27 redline6561 [n=redline@c-66-56-16-250.hsd1.ga.comcast.net] has joined #lisp 15:38:30 Since the clim environment provides affine transforms, and X provides the same for fonts, it stands to reason that, in a single environment, you only need to pull in a single font 15:38:39 slhu [n=slh@62.105.103.24] has joined #lisp 15:39:32 nyef: This of course is only valid in 2D, which is the case of which we speak now... 15:39:56 Tordek [n=tordek@host201.190-230-89.telecom.net.ar] has joined #lisp 15:40:35 Anyhow, I'll try to get this working in McCLIM. See if we can finally know rotated y-axis labels in our times 15:41:59 -!- slhu [n=slh@62.105.103.24] has quit [Client Quit] 15:42:29 Hmm, does free/truetype work on top of that, or does this mean I have to not only fix the clx backend, but also the freetype and truetype addons? 15:43:26 ziga` [n=user@89.142.50.250] has joined #lisp 15:52:55 -!- ryuo [n=ryuo@frugalware/developer/ryuo] has left #lisp 15:53:11 -!- Tordek_ [n=tordek@186.124.242.12] has quit [Read error: 110 (Connection timed out)] 15:54:13 spradnyesh [n=pradyus@122.167.110.226] has joined #lisp 16:03:05 -!- Pete_R [n=quassel@78.97.98.73] has quit [Remote closed the connection] 16:08:09 -!- pavelludiq [n=quassel@83.222.175.184] has quit ["http://quassel-irc.org - Chat comfortably. Anywhere."] 16:08:44 pavelludiq [n=quassel@83.222.175.184] has joined #lisp 16:09:04 -!- pavelludiq [n=quassel@83.222.175.184] has quit [Client Quit] 16:09:39 minion: memo for lichtblau: with a completely fresh install of clbuild, atdoc gives me an error when trying to build your example docs for 'blocks-world'; it gives 'The value NIL is not of type VECTOR.' which seems to be coming from 'normalize-text-nodes!' in cxml-stp/xpath.lisp 16:09:39 Remembered. I'll tell lichtblau when he/she/it next speaks. 16:11:45 pavelludiq [n=quassel@83.222.175.184] has joined #lisp 16:11:56 -!- sp0_of [n=spoof@78.31.74.25] has quit [Remote closed the connection] 16:14:16 kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 16:20:13 -!- jmbr [n=jmbr@196.32.220.87.dynamic.jazztel.es] has quit [Remote closed the connection] 16:20:23 amaron [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has joined #lisp 16:26:59 Nshag [i=user@lns-bzn-22-82-249-97-246.adsl.proxad.net] has joined #lisp 16:28:34 which method is called when you close a mcclim window? frame-exit is not here on mac os x? 16:28:59 I want to do some cleanup 16:29:52 joswig [n=joswig@g224125197.adsl.alicedsl.de] has joined #lisp 16:30:27 -!- joswig [n=joswig@g224125197.adsl.alicedsl.de] has quit [Remote closed the connection] 16:31:29 -!- mishoo [n=mishoo@79.112.52.124] has quit ["be back later"] 16:31:37 mishoo [n=mishoo@79.112.52.124] has joined #lisp 16:33:11 Tordek_ [n=tordek@host72.190-230-93.telecom.net.ar] has joined #lisp 16:34:04 Sikander: Okay, I've managed to think about it, and you're right about the limits of the transforms, which leads to me being wrong about the fonts. 16:34:23 -!- schoppenhauer [n=css@unaffiliated/schoppenhauer] has quit ["Verlassend"] 16:35:58 grouzen [n=grouzen@91.214.124.2] has joined #lisp 16:38:05 At least, I think you're right about it. 16:38:18 minion: memo for lichtblau: I can get atdoc working again (and seeming to produce correct output) when I add a test for children in 'normalize-text-nodes!'; i.e. I do a '(when (and children (loop for child across children ..' instead of just the bare '(when (loop for ..' 16:38:18 Remembered. I'll tell lichtblau when he/she/it next speaks. 16:38:24 carlocci [n=nes@93.37.208.72] has joined #lisp 16:40:10 -!- lispm [n=joswig@e177152031.adsl.alicedsl.de] has quit [Read error: 113 (No route to host)] 16:43:14 -!- Davidbrcz [i=david@212-198-78-230.rev.numericable.fr] has quit [Read error: 110 (Connection timed out)] 16:47:17 -!- Tordek [n=tordek@host201.190-230-89.telecom.net.ar] has quit [Read error: 110 (Connection timed out)] 16:52:06 -!- envi_home2 [n=envi@220.121.234.156] has quit ["Leaving"] 17:00:59 nyef: If I'm wrong about it, as I said, someone else can fix it ;) 17:03:20 -!- spradnyesh [n=pradyus@122.167.110.226] has left #lisp 17:05:11 *tcr* finds out about LDB-TEST 17:06:41 Is (eq (logbitp i n1) (logbitp i n2)) a good way to test if two numbers have the same bit at some index? 17:06:58 i'd xor and test for zeroness. 17:07:23 Is there a function already that returns the number of bit difference in a bytespec? 17:07:32 tcr: xor and logcount. 17:07:47 yay 17:08:16 re ldb-test, C's inferior bit frobbing capabilities makes me forget about most of CL's native functions (: 17:10:09 -!- Edward_ [n=Ed@AAubervilliers-154-1-16-249.w86-212.abo.wanadoo.fr] has quit ["L'oignon fait la farce."] 17:10:17 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has left #lisp 17:11:22 what's the preferred way to toggle one bit at a specific index? 17:11:43 tcr: shift a 1 in and xor. 17:12:39 that's the C way, I wondered if there's some CL magic 17:12:58 <_3b> sbcl will let you setf logbitp 17:13:20 <_3b> (though i guess that is setting, not toggling) 17:13:52 clearly we need (notf (logbitp ...)) 17:14:06 _3b: is that sbcl-specific? I was quite pleased with setf-ability of logbitp but thought it's standard.. 17:14:56 <_3b> mishoo: not listed as an accessor in clhs, and ccl doesn't seem to like it 17:15:21 *_3b* had thought it was standard for a while too though 17:17:08 You could setf ldb. 17:17:26 varjag [n=eugene@103.80-202-117.nextgentel.com] has joined #lisp 17:20:10 kmc [n=keegan@173-100-16-149.pools.spcsdns.net] has joined #lisp 17:20:25 You'd need some additional magic for that to compile to something even close to shift and xor. 17:21:04 -!- joga [i=joga@83.150.90.112] has quit [Remote closed the connection] 17:21:14 magic is underrated 17:23:55 Hm, alexandria does not seem to contain a function which returns a list of N unique, random numbers 17:24:02 pr [n=pr@unaffiliated/pr] has joined #lisp 17:24:35 random-iota :) 17:25:43 right, because that comes up in so many of the world's programs 17:28:27 <_3b> anyone know if it is intentional that (the double-float 1d+-0) causes FLOATING-POINT-INVALID-OPERATION in ccl? 17:28:35 envi^home [n=envi@220.121.234.156] has joined #lisp 17:31:00 -!- pavelludiq [n=quassel@83.222.175.184] has quit [Read error: 104 (Connection reset by peer)] 17:31:17 -!- frodef [n=frode@shevek.netfonds.no] has quit [Read error: 113 (No route to host)] 17:31:31 -!- Elench [n=jarv@unaffiliated/elench] has quit [Read error: 54 (Connection reset by peer)] 17:32:21 -!- knobo [n=user@90.149.4.182] has quit [Connection timed out] 17:36:00 icarus [n=tits@unaffiliated/icarus-/x-7520418] has joined #lisp 17:38:45 _3b: do you use in some special way? pasting your snippet into CCL gives me no error. 17:38:45 -!- johs [n=johs@hawk.netfonds.no] has quit [Read error: 113 (No route to host)] 17:38:55 ... According to Amazon, "Knuth's Volume 4" is "arguably the most influential work ever written on computer programming". 17:39:17 get to aguing! 17:39:38 nyef: yeah, because it's still not available yet people are talking about it since 70s 17:39:54 <_3b> hypno: nope, just pasted into repl, what platform/version are you using? i have 1.4 linux/x8664 17:41:07 grouzen_ [n=grouzen@91.214.124.2] has joined #lisp 17:41:16 _3b: 1.3 on darwn and freebsd. 17:41:30 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 110 (Connection timed out)] 17:41:34 it returns 1D++0 17:42:01 <_3b> wonder if it is misreading it 17:42:32 there was talk that that kind of illegal syntax might be used to represent floating point infinities of some kind 17:42:43 -!- pok [i=pok@tarrant.klingenberg.no] has quit [Remote closed the connection] 17:42:46 s/illegal syntax/potential number syntax/ possibly 17:42:56 <_3b> Krystof: it is, ++0 is inf, +-0 is nan (if i understand correctly) 17:43:08 _3b: hang on. no, on 1.4 on OS X i get the same. 17:43:28 _3b: ask/tell em in #ccl. 17:44:01 where "get the same" = "also get an error.." 17:44:44 nyef you said you did some tinkering with GLX a while back, right? 17:44:57 nyef: did you push it anywhere 17:45:06 Yeah, let me find the public URL. 17:45:17 _3b: I am a bit sad about that, because my pet syntax is much better 17:45:30 1.0/0.0 for inf, 0.0/0.0 for nan 17:45:55 only a bit sad 17:46:04 http://common-lisp.net/gitweb?p=users/abridgewater/clx.git;a=shortlog;h=refs/heads/glx-fixes 17:46:05 <_3b> Krystof: yeah, that seems a bit more obvious 17:46:19 nyef: cheers 17:46:29 tehk [n=tehk@c-69-249-151-185.hsd1.nj.comcast.net] has joined #lisp 17:48:01 -!- tcr [n=tcr@host146.natpool.mwn.de] has left #lisp 17:48:50 is anyone using org-mode with their cl code here? In particular I wondered whether there might be scope for literate-programming-like (or documented-cl-like) interaction 17:49:06 because it wouldn't be simple enough just to blog my vaguely interesting colour picker, no 17:49:36 Guthur: There may be some problems with inputs to draw-pixels and tex-image-2d and pixel buffers that aren't a multiple of four octets in length on the wire. 17:49:48 notme [n=notme@p5DDD3778.dip.t-dialin.net] has joined #lisp 17:50:51 nyef: well it is something at least for me to have a wee look at, delved into this sort of thing before 17:52:34 -!- notme [n=notme@p5DDD3778.dip.t-dialin.net] has quit [Client Quit] 17:52:54 tehk pasted "untitled" at http://paste.lisp.org/display/90856 17:53:21 I am getting an eval error with that function. What am I doing wrong? 17:53:49 Perhaps it is because I am using emacs' ielm? 17:55:20 seems to work for me. 17:56:11 It's a bit clunky, stylewise, but looks like it should work, for some value of "work". 17:56:54 joga [i=joga@83.150.90.112] has joined #lisp 17:59:24 de_fault [n=de_fault@88.238.33.63] has joined #lisp 18:04:13 nyef pasted "CLX GLX "test" code" at http://paste.lisp.org/display/90857 18:04:51 tehk: ielm is for emacs lisp 18:04:54 That's actually an extract from my real test file, so it may not be complete. 18:05:02 i am not even considered as an amateur programmer, just a hobbyist but i read something about aop and oop, and while i was reading pcl's about generic functions in pcl, it seemed to me like generic function style is something between aspect oriented and object oriented programming, is it somehow true? 18:06:08 de_fault: You could view it that way, if you don't simply view it as OOP done right. 18:07:29 -!- dmiles_afk [n=dmiles@c-76-104-220-73.hsd1.wa.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 18:07:57 dmiles_afk [n=dmiles@c-76-104-220-73.hsd1.wa.comcast.net] has joined #lisp 18:08:34 nyef: i think it's vertices not vertexes ;p 18:09:10 Oh, probably. 18:09:14 xristos: it's either one. 18:09:16 I also think it doesn't matter. 18:11:32 I just like the inner loop for rendering the faces. 18:11:45 *p_l* was yesterday proven how useful old tools are 18:12:50 JAS415 [n=jon@c-71-233-58-7.hsd1.ma.comcast.net] has joined #lisp 18:13:12 gruseom [n=daniel@h-64-105-143-250.snvacaid.static.covad.net] has joined #lisp 18:13:47 do tell. grep kicks butt? 18:14:13 holycow: YTree helped me clean few GBs out of my overburdened disk :) 18:14:29 right on :) 18:14:50 milanj [n=milan@109.93.23.226] has joined #lisp 18:15:27 oh cheers for the paste nyef 18:15:40 spilman_ [n=spilman@92.135.223.10] has joined #lisp 18:15:58 old in software just means 'still in use' 18:16:10 nyef: i guess i'm going to stick with your point of view:) but it makes me wonder, how come other languages which support oop paradigm doesn't implement that style, is it because the common oop style is easier for recently common programming needs in business world, or is it because at last the choice is reduced from pros and cons discussion to a subjective one? (sorry for my english:) ) 18:16:10 or at least i wish it did 18:16:28 de_fault: Ease of implementation. 18:17:20 nyef: i see, so it is reduced to the capabilities or the language core. 18:17:48 nyef: anyway, thanks for enlightening answers :) 18:19:14 -!- de_fault [n=de_fault@88.238.33.63] has left #lisp 18:19:51 -!- Reaver1 [n=Data_Ent@212.88.117.162] has quit ["Leaving."] 18:21:56 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [] 18:23:18 -!- Athas [n=athas@shop3.diku.dk] has quit [Remote closed the connection] 18:29:19 -!- ruediger [n=quassel@93-82-2-77.adsl.highway.telekom.at] has quit [Remote closed the connection] 18:30:20 -!- Kolyan [n=nartamon@95.25.176.121] has quit [] 18:31:53 -!- spilman [n=spilman@ARennes-552-1-126-110.w92-139.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 18:32:34 OmniMancer [n=OmniManc@219-89-88-232.jetstart.xtra.co.nz] has joined #lisp 18:34:27 dralston [n=dralston@S010600212986cca8.va.shawcable.net] has joined #lisp 18:39:30 sykopomp [n=sykopomp@unaffiliated/sykopomp] has joined #lisp 18:44:16 dlowe [n=dlowe@c-24-91-154-83.hsd1.ma.comcast.net] has joined #lisp 18:44:38 -!- varjag [n=eugene@103.80-202-117.nextgentel.com] has quit ["Leaving"] 18:45:31 -!- envi^home [n=envi@220.121.234.156] has quit ["Leaving"] 18:46:38 -!- gruseom [n=daniel@h-64-105-143-250.snvacaid.static.covad.net] has quit [Remote closed the connection] 18:48:44 dnolen [n=dnolen@pool-70-107-141-205.ny325.east.verizon.net] has joined #lisp 18:50:02 mstevens [n=michaels@jobs.etla.org] has joined #lisp 18:52:14 -!- jgracin [n=jgracin@vipnet88-89.mobile.CARNet.hr] has quit [Remote closed the connection] 18:52:41 ikki [n=ikki@189.247.72.208] has joined #lisp 18:55:27 Elench [n=jarv@unaffiliated/elench] has joined #lisp 18:58:16 -!- carlocci [n=nes@93.37.208.72] has quit ["eventually IE will rot and die"] 18:59:30 _YKY_ [i=YKY@119.237.179.33] has joined #lisp 18:59:31 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [] 18:59:46 <_YKY_> How do you force lisp to do decimal arithmetics? 18:59:52 <_YKY_> Like division 19:00:50 -!- tehk [n=tehk@c-69-249-151-185.hsd1.nj.comcast.net] has quit ["Bye Bye!"] 19:00:52 _YKY_: floating point or rational? 19:01:06 <_YKY_> Floating point 19:01:37 (/ 4 1.5) ? 19:01:54 (/ 10.0 0.4) 19:01:54 ;-) 19:02:01 floating point is not decimal, by the way 19:02:04 it's binary 19:02:05 (Alternately, if you have a rational result, just call FLOAT on it to get a floaty result.) 19:02:36 clhs *read-default-float-format* 19:02:36 http://www.lispworks.com/reference/HyperSpec/Body/v_rd_def.htm 19:02:41 Hey, would it be sufficiently crazy as to be useful to have binary-coded-decimal floating-point? 19:02:44 -!- HET3 [n=diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has quit [Read error: 60 (Operation timed out)] 19:02:50 nyef: yes 19:02:54 <_YKY_> I see... 19:02:55 VERY useful 19:02:59 Cool. 19:03:07 nyef: IBM mainframes have it 19:03:18 so that they can actually do accounting math correctly 19:03:24 Gah! RPG flashbacks! 19:03:31 SimonH [n=simonh@92.29.178.128] has joined #lisp 19:03:47 _YKY_: you are aware of how floating point makes you get different results than what is mathematically correct? 19:03:58 HP's original RPN hand calculators too. weird 64/4 bit CPU with native floating BCD. 19:04:01 nyef: decimal arithmethic is part of IEEE floating point 19:04:13 p_l: part of the NEW 8xx standard, not 7xx 19:04:21 nyef: and POWER6 includes hw support 19:04:29 Okay, so noted. 19:04:32 Thanks. 19:04:43 rahul: sure. Still, I heard IBM claiming they've got nice speed improvements due to that 19:04:53 <_YKY_> Yep 19:05:02 p_l: of course, they've always had hardware support for it in the power chips that were used in the mainframes 19:05:21 p_l: they've just recently decided to add it to the consumer class line of power chips 19:05:29 rahul: afaik S/390 descendants don't use POWER 19:05:40 p_l: they do, since power4, at least 19:05:43 and AS/400 is bytecoded (128bit) 19:06:13 I think power2 actually was used in mainframes, too.... can't remember for sure tho 19:06:22 rahul: you might mix their minicomputer line (AS/400, later called iSeries then System i) with S/390 aka System z 19:06:36 _YKY_: if you want correct math, common lisp has that too 19:06:49 p_l: nope. definitely not. iseries I'm not sure about zseries I am 19:07:04 AS/400 is bytecoded, old implementation ran on custom CISC, newer run on POWER 19:07:09 <_YKY_> Thanks... I want incorrect... 19:07:38 I'm quite certain that zSeries don't use POWER (for the simple reason that they are supposed to be backward compatible to S/360) 19:07:51 _YKY_: in general, lisp has dynamic float contagion 19:07:58 p_l: that's not true 19:08:09 robyonrails [n=roby@host50-213-dynamic.59-82-r.retail.telecomitalia.it] has joined #lisp 19:08:24 p_l: the mainframes always effectively used emulation from the start anyway 19:08:54 p_l: that's like saying you can't run x86 software on a ppc... 19:09:38 rahul: Well, it is heavily microcoded, but last time I've seen those cpus, they didn't even resemble POWER (though they probably share internal parts) 19:09:40 -!- robyonrails [n=roby@host50-213-dynamic.59-82-r.retail.telecomitalia.it] has quit [Client Quit] 19:09:41 p_l: I think the s/360 emulation is actually mostly done in a little bit of hardware they add to the chip just for the mainframe models 19:10:06 p_l: they ARE a power chip 19:10:10 according to IBM 19:10:57 there were 3 classes of power chip: the standard POWER for workstations, the PPC for low-end workstations, desktops, and embedded applications, and the mainframe POWER-based chips 19:11:28 p_l: similar logic, different ISAs 19:11:42 rahul: z6 shares parts with POWER6, but is claimed to be "sibling", not part of POWER line 19:11:43 -!- pr [n=pr@unaffiliated/pr] has quit ["leaving"] 19:11:56 p_l: it's been this way since at least power 4. 19:12:00 pr [n=pr@unaffiliated/pr] has joined #lisp 19:12:28 p_l: they're not "part" of the POWER line, but they're one of the 3 classes of POWER-based chips 19:12:32 yeah, but that doesn't make zSeries POWER (POWER is an ISA standard after all) 19:12:51 p_l: no, POWER is also considered a set of logic circuits at IBM 19:13:21 p_l: and I think the internal ISA for those chips is POWER, anyway 19:13:38 p_l: just like how intel and amd x86 chips use translation to risc 19:13:53 rahul: isn't - at least not for z6 (replacement for z9). At least so states IBM presentation on z6 internals 19:14:23 p_l: it was back when poewr 4 was new 19:14:43 beans? 19:14:57 at least, it looked like that when I looked at the technical marketing docs 19:15:19 and when I looked at the product descriptions in the catalog 19:15:21 mattrepl [n=mattrepl@pool-71-163-162-204.washdc.fios.verizon.net] has joined #lisp 19:15:40 but that's how they marketed it back then. they might have changed wordings since. 19:15:44 according to IBM, z6 has 668 instructions implemented in hw, 894 in total, and shares latches and some building blocks with POWER6 (for example decimal accelerator is basically the same, as it was developed for both of them) 19:16:06 Released in 2001, the POWER4 succeeded the POWER3 and RS64 microprocessors, and was used in RS/6000 and AS/400 computers, ending a separate development of PowerPC microprocessors for the AS/400. 19:16:37 rahul: that's AS/400, not zSeries :-) 19:19:09 -!- DrunkTomato [n=DEDULO@ext-gw.wellcom.tomsk.ru] has quit [] 19:20:51 -!- SimonH [n=simonh@92.29.178.128] has quit ["Leaving"] 19:21:41 p_l: right, didn't know for sure if as/400 also was based on power, but the whole point of power was for as/400 19:22:15 -!- mstevens [n=michaels@jobs.etla.org] has quit [] 19:22:55 -!- Elench [n=jarv@unaffiliated/elench] has quit [No route to host] 19:23:39 ziga`` [n=user@BSN-142-104-144.dial-up.dsl.siol.net] has joined #lisp 19:24:14 that sentence didn't parse correctly... 19:26:48 "G6-powered zSeries" 19:27:10 p_l: the power chip was created to run as/400 and rs/6000 with a common ISA 19:27:22 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 19:27:24 I assume through an emulator for as as/400 19:27:53 -!- ace4016 [i=ace4016@76.170.134.79] has quit ["When there's nothing left to burn, you have to set yourself on fire."] 19:28:08 varjag [n=eugene@103.80-202-117.nextgentel.com] has joined #lisp 19:28:11 rahul: AS/400 recompiles binary images before running them 19:28:30 the actual AS/400 ISA is 128bit, afaik 19:30:19 "Both sets of zSeries 900 machines - the Freeways and the zRexes - use the G7 series of CMOS mainframe processors, which were codenamed "Blue Flame," that made their initial debut at the end of 2000." 19:30:25 -!- Nshag [i=user@lns-bzn-22-82-249-97-246.adsl.proxad.net] has quit ["Quitte"] 19:30:27 -!- ziga` [n=user@89.142.50.250] has quit [Read error: 145 (Connection timed out)] 19:31:45 actually, they'd been using the G5 in zSeries 19:31:57 so it wasn't actually POWER chips... the mainframes were based on PPC chips 19:32:56 G6 for s/390 was introduced may 1999 19:33:52 what's a 9672? that used a G4 19:34:18 may 1998, they introduced g5 for s/390 19:34:40 G5 is an apple name 19:35:14 HET2 [n=diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has joined #lisp 19:36:07 Motorola 7xx was marketed by apple as G3, Motorola 74xx was sold as G4 and IBM PPC970 was sold as G5 19:36:45 *hypno* pets the POWER5 in the serverroom... "my *precious*"... 19:37:05 there's no connection between IBM's G7 cpus and Apple marketing dept. :P 19:39:54 p_l: you sure? bastards, using the same terminology to confuse everyone 19:40:08 rahul: 100% sure 19:40:19 G3/G4/G5 were just fancy names cooked by Apple 19:40:38 I guess they didn't want to confuse their clients with technical terms ;-) 19:40:45 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 19:41:02 so they confused everyone else :P 19:42:04 johnthesavage [n=jahnthes@cpe-76-180-175-226.buffalo.res.rr.com] has joined #lisp 19:42:04 as for POWER... I helped installing a POWER5 and POWER6 machines... nice pieces of hardware, but heavy ;P 19:42:18 mstevens [n=mstevens@zazen.etla.org] has joined #lisp 19:43:50 very nice, yes, and quite performant too. espcially compared to sparc, but then the T52** series are really great. 19:44:11 but does it run Lisp? 19:44:49 stassats: I think CCL should run with Linux :-) 19:45:06 i've never tryied. we have AIX on ours so it's not a happy case anyway. 19:46:00 -!- fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has quit [Read error: 113 (No route to host)] 19:46:15 I played around with a p690 back when I was young 19:46:24 yes, I used openMCL on it 19:46:42 after I installed linux 19:47:18 hypno: talking about sparc and performance is like talking about windows and security 19:47:42 heh. 19:48:38 sparc is about having good SMP support 19:49:25 because people tend to do massively multiuser applications on it, like databases 19:49:33 and web servers 19:49:53 -!- Patzy [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has quit [Read error: 54 (Connection reset by peer)] 19:50:15 i hear you, but the newer machines are pretty cool actually. it's of course not the same type of performance as you get with say a typical PC, but a T5220 with 64 virtual cpus you can not be but impressed by both performance and the package itself. 19:50:20 Patzy [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has joined #lisp 19:51:12 well, sure, it's got to be efficient at pessimizing the resource contention of the various virtual machines 19:51:40 not every machine can do that well :P 19:52:11 *rahul* loves how it's so in fashion to run yet another layer of sandboxing now 19:52:20 I heard that Erlang on T1/T2 is a bang 19:52:43 as in Holy Shit OMGWTFBBQ kind of performance ;-) 19:52:45 i've been running benchmarks with 64 concurrent john the ripper for example, and each result is of course shitty, but the sum of all computations are good. 19:52:50 we've got the jvm on top of an OS kernel on top of a virtual machine... 19:53:55 you need a few dozen context switches to GC a page of memory 19:53:59 on top of a Matrix simulation 19:54:11 p_l: Erlang? and performance? really? 19:54:14 all I see is blonde, brunette, redhead 19:54:38 hypno: sure, for IO bound tasks. 19:55:09 hypno: when what you're interested is not flops but IPC and latency, then yes. Plus there's HiPE (and even Python managed to get into HPC) 19:55:59 yeah, a lot of HPC is about complex logic, not streaming formulas 19:56:26 I mean, for one example, big databases are just a shrinkwrapped HPC system 19:56:52 I heard that after they changed Erlang VM to NxM threading, T1/T2 are really powerfull platform (unless you do floating point, as they have only two FPU for ~8 cores) 19:57:12 -!- stassats [n=stassats@wikipedia/stassats] has left #lisp 19:57:15 all of Lucent's 64-way E64k machines in 2000 were database servers 19:57:20 the new machines should have separate fpus i think. 19:57:43 hypno: FP isn't really their market. 19:57:44 brita_ [n=stitch@213.63.200.11] has joined #lisp 19:57:44 pkhuong, p_l ah, ok. i was thinking about stuff like CFD etc, ie, CPU bound. 19:58:08 hypno: for CFD, I'm going with separate vector cpus :) 19:58:29 heh. i use matlab and my macbook pro. ;) 19:58:36 though K6-2 400MHz was quite a workstation for CFD... :P 19:58:52 *rahul* remembers his k6-3 450MHz 19:59:03 hey, can someone please tell me how do I select a line from a matrix? 19:59:04 (was probably quite a bit better at CFD, too) 19:59:15 rahul: with enough parallelism, everything's about streaming formulae. 19:59:16 brita_: how does a matrix have lines? 19:59:25 brita_: what do you mean by 19:59:31 "matrix"? 19:59:38 (what is the matrix?) 19:59:42 (make-array (list n m)) 19:59:46 pkhuong: heh well 19:59:56 brita_: you can't do efficient array slices in CL 20:00:14 -!- ia [n=ia@89.169.161.244] has quit ["...may the Source be with you..."] 20:00:23 brita_: you can kind of displace an array into it to get a row 20:00:33 ah (gimme C!) 20:00:38 brita_: but you're going to be incurring a lot of speed penalties 20:00:39 pkhuong, p_l do erlang come with performance tests? it would be cool to compare it with SCL. 20:00:42 if it's not efficient, it's not worth it 20:00:48 brita_: well, C doesn't have 2d arrays 20:00:55 rahul: for rows, you could use displaced vectors. 20:01:03 pkhuong: yeah, I said that :) 20:01:06 it has as many vectors of vectors as I wish 20:01:09 :-P 20:01:13 brita_: so does CL 20:01:27 brita_: vectors of vectors are an awful way to represent matrices. 20:01:32 brita_: do it that way if your goal is to have an array of arrays 20:01:48 if you actually want matricies, then row-major storage is often a bad idea, too 20:02:00 what do you sugest? 20:02:08 a fractal pattern 20:02:20 or just use a prepackaged library 20:02:39 write your code sensibly and switch out the method when you benchmark 20:02:57 rahul: seriously, I don't see that, re row major. It's only a difference if one is lazy and/or extremely naive (and yet writing the kernel of performance sensitive code) 20:03:21 pkhuong: the fractal pattern causes far fewer cache misses when doing multiplicatoin 20:03:23 hypno: not sure, Erlang is oriented towards different kind of performance than most code out there 20:03:28 pkhuong: not a benefit for anything else, tho 20:03:43 brita_: what are you DOING with the matricies? 20:04:01 brita_: the performance of a data structure depends on the operaitons one performs on it 20:04:36 yeah sure, i actually will want to access it by 'ij' indexes, so, aref will work just fine 20:04:37 rahul: you mean quad trees? 20:04:39 brita_: a linked list is faster than an array for some operations, slower for others (insert, prepend, append, delete, index) 20:04:41 ruediger [n=quassel@188-23-93-116.adsl.highway.telekom.at] has joined #lisp 20:04:57 i was trying to pretty-print it by lines, but that's not really necessary, so i'll drop it 20:05:08 pkhuong: hmm it seems kind of like quad trees, but it's that winding layout I think you told me about 20:05:20 it will not need to be resized, just to be accessed 20:05:21 brita_: huh? that's already done for you 20:05:42 what? the pretty-print? 20:05:44 ia [n=ia@89.169.161.244] has joined #lisp 20:05:56 rahul: eh? van emde boas? What for? 20:06:01 * (make-array '(10 10)) 20:06:03 #2A((0 0 0 0 0 0 0 0 0 0) 20:06:05 (0 0 0 0 0 0 0 0 0 0) 20:06:23 pkhuong: cache friendly multiplication 20:06:33 -!- Madsy^ is now known as Madsy 20:06:38 Quad tree. 20:06:50 yeah, that probably would work quite well, too 20:07:09 i didn't understand... 20:07:12 since you're literally descending the quad tree when you multiply 20:07:18 brita_: look at what I pasted 20:07:35 brita_: it's printing the array as an... array 20:08:06 that's not exactly pretty lol 20:08:23 brita_: it's formatted code 20:08:39 instead of ((0 0) (0 0)), i wanted: 20:08:43 ((0 0) 20:08:46 (0 0)) 20:08:57 brita_: yeah, that's what it does when you need to line wrap 20:09:04 brita_: again, look at what I pasted 20:09:20 brita_: set the right margin to be small enough that it wraps, I guess 20:09:41 but large enough that it doesn't wrap inside of a single row... 20:10:33 i didn't understood again, sorry 20:10:41 brita_: why do you need to see it this way? 20:10:58 clhs *print-right-margin* 20:10:58 http://www.lispworks.com/reference/HyperSpec/Body/v_pr_rig.htm 20:11:24 brita_: your UI shouldn't be based on lisp syntax anyway 20:11:32 tcr [n=tcr@host146.natpool.mwn.de] has joined #lisp 20:11:43 lisp syntax is the UI of lisp, not of your application :) 20:15:19 that's global for the aplication? 20:15:39 tcr pasted "optimization venue? propagating arg type to labels function" at http://paste.lisp.org/display/90860 20:15:39 brita_: if you want it to affect the REPL, it might have to be 20:15:47 Am I expecting too much? 20:16:40 tcr: what are you expecting in the first place? 20:16:53 tcr: you want the recursion to get unrolled? 20:17:01 well, thanks anyway 20:17:02 it doesn't know what you're calling 20:17:31 Eh true that's a bad example 20:17:42 brita_: try shrinking your window if you want to have smaller lines, also 20:18:06 tcr: there's no arg type involved there, anyway 20:18:14 -!- chris2 [n=chris@p5B169331.dip0.t-ipconnect.de] has quit [Read error: 60 (Operation timed out)] 20:18:34 tcr: but you could declare the closure to be dynamic extent I guess? 20:18:46 rahul: no need for fdefinition if fn is known to be a function. 20:18:48 ok, thnks 20:19:22 tcr annotated #90860 "a better example; I'd like SBCL to be smart enough to infer that FN is a function within RECURSE" at http://paste.lisp.org/display/90860#1 20:19:33 pkhuong: as opposed to symbol, yes 20:19:36 pkhuong: Yeah but #'recurse is bassed to the arg 20:19:40 passed 20:20:12 that made it rather tricky, my annotation is more down to the earth :) 20:20:46 tcr: I don't get a compiler note 20:20:47 tcr: right. 20:20:59 rahul: are you at the REPL with a recent SLIME? 20:21:14 without slime 20:21:15 just raw 20:21:57 pkhuong: Huh are notes muffled or something at the toplevel? 20:22:01 -!- foom [n=jknight@ita4fw1.itasoftware.com] has quit [Remote closed the connection] 20:22:02 rahul: notes are muffled at the REPL without slime too. 20:22:18 bastards 20:22:30 making things all user friendly 20:22:35 milanj- [n=milan@93.87.166.83] has joined #lisp 20:22:40 * (compile 'foo #'foo) 20:22:44 is also silent 20:22:51 rahul: it's already compiled; nothing to do. 20:22:58 grr. 20:23:56 ok, did a compile nil lambda 20:24:08 got the note 20:24:36 Nshag [i=user@lns-bzn-22-82-249-97-246.adsl.proxad.net] has joined #lisp 20:24:51 tcr: our propagation pass is conservative (primal, we keep refining known truths). For something like the above to work, we'd need to use another paradigm, with a dual iterative method. This is similar to the issue with naive dead variable analysis (primal induction), versus the right way (assume everything is dead and find counter-examples, co-induction). 20:24:59 oh yeah 20:25:05 I think the propagation is unidirectional 20:25:58 rahul: it's not a matter of directionality. As soon as there are loops, you really want to start with an aggressive hypothesis and iteratively reduce falseness. 20:26:08 it doesn't propagate types INTO functions that are called 20:26:54 pkhuong: well, which hypothesis do you choose out of the various efficient ones... for numeric types, do you assume fixnum or do you assume double-float? 20:27:18 rahul: sure it does. 20:27:33 rahul: you assume NIL, trivially, the bottom of the type lattice. 20:27:43 ah of course 20:27:47 +1 for lisp 20:27:51 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 20:27:55 (incf lisp), I mean 20:28:05 rahul: not lisp specific at all. 20:28:21 pkhuong annotated #90860 "Propagating into local functions" at http://paste.lisp.org/display/90860#2 20:28:25 pkhuong: well, good for lisp to have a type lattice that has a top and bottom defined 20:28:47 pkhuong: I thought that came from inlining 20:28:49 rahul: every type system can be extended with a top and bottom type. 20:28:59 pkhuong: oh, is it the recursion that breaks the propagation? 20:29:10 since it punts on finding fixed points a lot of the time? 20:29:15 tcr: no automagic inlining with multiple use. 20:29:36 really? 20:29:44 tcr: disassemble. 20:29:54 tcr: inlining a local functoin twice pessimizes space 20:30:03 rahul: yup, the recursion start with a conservative induction hypothesis (every argument is of type T). 20:30:06 -!- milanj [n=milan@109.93.23.226] has quit [Read error: 110 (Connection timed out)] 20:30:21 or rather, you can't assume it will result in smaller compiled code, since it very likely won't 20:30:26 _3b pasted "is this unportable code or a ccl bug?" at http://paste.lisp.org/display/90863 20:30:44 pkhuong: ok 20:31:45 pkhuong: I really long for https://bugs.launchpad.net/sbcl/+bug/387357 20:33:02 tcr: yeah. I examine code objects directly for now. 20:33:15 So should I add that bit to the bug tracker, or better not for it being kind of utopic? 20:34:00 tcr: looks like a bug that was fixed 20:34:05 tcr: what bit? The type propagation stuff? You could, but it's a high level architectural issue. 20:34:30 tcr: actually, what is your *read-default-float-format*? 20:34:35 _3b: try disassembling what r13119 generates. It definitely seems wrong. 20:34:42 rahul: ? 20:35:19 tcr: I'm not sure if floats need to get coerced when put into arrays 20:35:43 pkhuong: Btw. do you know if there are solutions for the exercises in tAoMP? 20:35:45 _3b: that was for you. 20:35:50 I think the compiler is allowed to assume they're in the right format 20:35:52 rahul: I think you want to talk with _3b 20:35:58 tcr: don't think so. Look in the references? 20:35:58 oh 20:36:03 _3b: ^^ 20:36:11 <_3b> pkhuong: i did, coudn't read it well enough to tell :( 20:36:16 _3b: you're declaring single-float but not passing single-float 20:36:25 _3b: paste? 20:37:04 rahul: really? How can you tell? 20:37:07 at least, you are not guaranteed to be passing single-float. I think it would only be correct with clisp's defaults 20:37:09 <_3b> rahul: i think the float type was correct, i'll verify though 20:37:16 pkhuong: he's not doing it explicitly 20:37:27 rahul: single float is the default. 20:38:00 oh, implementations decided to adopt that now? 20:38:02 heh 20:38:09 *rahul* facepalm 20:38:17 rahul: no, it's in the standard. 20:38:29 pkhuong: I'm pretty sure implementations ignored that before... 20:38:43 -!- amaron [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has quit [Read error: 104 (Connection reset by peer)] 20:38:44 amaron_ [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has joined #lisp 20:38:56 or maybe I changed it in my lisp init files... 20:39:04 _3b annotated #90863 "disassembly" at http://paste.lisp.org/display/90863#1 20:39:39 _3b: for what function? 20:39:52 <_3b> and same with explicit single floats, and it complains with double floats 20:39:54 my guess is that (setf (aref a 0) is zeroing out the rest of the array somehow 20:40:15 <_3b> pkhuong: sorry, that is from replacing FUNCALL with DISASSEMBLE in the original 20:40:48 Wow, that's awful. 20:41:38 -!- OmniMancer [n=OmniManc@219-89-88-232.jetstart.xtra.co.nz] has quit ["Leaving."] 20:43:44 heh 20:44:44 jeez all those bounds checks 20:45:04 rahul: worse than that. 20:45:06 maybe you should declare safety 0 and disassemble again 20:45:14 that would get rid of about half the code :P 20:45:21 <_3b> rahul: tried, didn't notice a difference :/ 20:46:24 what the hell are these 77835? 20:46:29 _3b: don't initialise with a list. 20:46:41 pok [i=pok@tarrant.klingenberg.no] has joined #lisp 20:46:55 <_3b> pkhuong: :initial-contents you mean? 20:47:00 porcelina [n=quassel@c-174-51-110-214.hsd1.co.comcast.net] has joined #lisp 20:47:17 <_3b> pkhuong: and is that for correctness or just performance? 20:47:31 _3b: for performance; rahul brought speed up :) 20:47:39 heh 20:47:54 but I think it's stack allocating the list 20:48:45 johs [n=johs@hawk.netfonds.no] has joined #lisp 20:49:22 *_3b* isn't too worried about performance for now, idea is to get it to where it runs, and if CCL users want it fast, they can work from there :) 20:49:44 -!- _YKY_ [i=YKY@119.237.179.33] has left #lisp 20:51:13 ouch. The code is even horribler than ours (: 20:52:13 it's moving those fp values all over the place 20:52:33 I feel like I'm playing 3 card monte in times square 20:53:30 _3b: there's a bug, [448]. 20:53:39 is it moving the values from the array, into an FP register, and onto the stack? 20:54:13 heh 20:54:19 my kingdom for a d 20:54:24 _3b: their single float reg -> array store uses movsd instead of movss. That's what you get for using prereleases ;) 20:54:37 yeah, that would corrupt the rest of the array 20:54:54 <_3b> pkhuong: i thought 1.4 was released? 20:55:09 _3b: I don't know, I only saw a non-numeric release id (: 20:55:10 pkhuong: but at least they moved the data from the array into FP reg and onto the stack correctly! 20:55:18 well, non-short-numeric (: 20:55:32 That'll fill the second item of the destination with 0, and similarly with the third, when writing the second. 20:55:37 <_3b> pkhuong: and not like i didn't break 1.3 last time i ported this code :p 20:56:10 \o/ 20:56:25 I guessed the cause of the bug right off :) 20:57:00 it's funny, that's my great talent. guessing what other peoples' code is doing wrong without reading it 20:57:09 <_3b> heh 20:57:39 *_3b* seems to have a talent for breaking things :/ 20:57:49 *pkhuong* has a talent for introducing breakage... 20:58:05 I'd get bugs from QA and be like, oh he's doing this when he should be doing that... hey, where's your code that implements this stuff? yeah, there it is, bug fixed. 20:59:12 -!- arbscht [n=arbscht@unaffiliated/arbscht] has quit [Read error: 60 (Operation timed out)] 20:59:28 arbscht [n=arbscht@unaffiliated/arbscht] has joined #lisp 20:59:38 they got a little too 64-bit happy heh 21:00:01 *_3b* looks up how to get more recent version before filing a bug report 21:00:20 _3b: doesn't the later version get it right? 21:00:22 -!- ziga`` [n=user@BSN-142-104-144.dial-up.dsl.siol.net] has quit [Read error: 110 (Connection timed out)] 21:00:28 they probably don't check the element type of the array when emitting inlined array stores... 21:00:36 pkhuong: no, that's earlier 21:00:54 <_3b> pkhuong: 1.3 x8664 and 1.4 x86 get it right 21:00:55 he has them in reverse chronological order, which got me until just now 21:01:17 <_3b> 1.3 can't compile + right though :p 21:01:19 rahul: erh, what? If the argument is a single float, there are only two possible stores, unboxed and boxed in a T vector. 21:01:22 heh 21:01:39 GrayGnome` [n=MuneNoKa@user-11fa52h.dsl.mindspring.com] has joined #lisp 21:01:43 Art [n=user@84.23.51.8] has joined #lisp 21:02:03 pkhuong: yeah, to store a single in a double array you'd have to extend the value first... 21:02:03 <_3b> well, i suppose it can, if you can wait indefinitely 21:02:06 hmm 21:02:26 _3b: just solve the halting problem. bug fixed. 21:02:26 rahul: you'd have to explicitly convert it, in the source. 21:02:52 pkhuong: well, yeah, otherwise it would be a type error 21:03:03 <_3b> rahul: it is just exponential, it probably halts :) 21:03:08 So your hypothesis for the root cause doesn't make much sense. 21:03:18 ooo exponential multiplication 21:03:29 pkhuong: yeah, probably just a typo somewhere 21:03:46 well, more of a thinko 21:05:00 tcr: for your use case, though, it might be simpler to ask for 1-2 deep inlining/unrolling. That's known to takes care of a lot of real-world common cases. 21:05:57 pkhuong: The actual case is more involved 21:06:15 tcr: would very shallow inlining be good enough? 21:06:47 lispnik [n=user@adsl-75-34-100-254.dsl.austtx.sbcglobal.net] has joined #lisp 21:07:04 It involes (funcall fn (lambda () (recurse (frob lexical-var) fn))) 21:08:01 what's shallow inlining? 21:08:10 inlining the initial call? 21:08:35 yikes 21:08:40 holy stack munching 21:08:42 unroll the recursion one or two calls deep, either at the call site or in the out of line target. 21:08:49 that would be extremely shallow inlining 21:09:08 what's out-of-line target? 21:09:30 tcr: the actual function. 21:09:52 In my paste? 21:11:19 I think he means your recursive call 21:12:07 so inside your lambda in your real code 21:12:18 pkhuong annotated #90860 "with shallow inlining" at http://paste.lisp.org/display/90860#3 21:12:28 as a source to source transformation. 21:13:12 -!- Art [n=user@84.23.51.8] has quit [Read error: 104 (Connection reset by peer)] 21:15:02 -!- redline6561 [n=redline@c-66-56-16-250.hsd1.ga.comcast.net] has quit ["Leaving."] 21:15:39 how come... when i type (open "//./pipe/myPipe") it says its a directory and can't open it? 21:16:13 rme [n=rme@pool-70-104-115-69.chi.dsl-w.verizon.net] has joined #lisp 21:17:11 porcelina: implementation? OS? 21:17:17 what is //.? 21:17:21 -!- kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 21:17:43 clisp, and windows. 21:17:46 is that windows UNC shorthand for localhost? 21:17:53 yeah, unc for localhost 21:17:59 porcelina: clisp native or clisp cygwin? 21:18:07 clisp native 21:18:10 <_3b> looks like it works properly on "Version 1.4-r13220M (LinuxX8664)" 21:18:31 porcelina: I wouldn't be surprised if native didn't support named pipes in windows 21:18:54 you might want to use a socket instead 21:18:59 <_3b> still won't let me (the double-float 1d+-0) though :( 21:19:18 yeah, i was trying to use pipes to speed up a socket, but i don't think it's worth it. 21:19:19 cmm [n=cmm@bzq-79-178-135-94.red.bezeqint.net] has joined #lisp 21:19:21 the socket still runs pretty fast. 21:19:31 porcelina: probably won't be any speed diff 21:19:42 porcelina: the OS basically does the same thing in either case 21:19:47 k 21:19:57 _3b: is that a NaN? When does the problem happen? Compile or run -time? 21:20:34 <_3b> pkhuong: yes, compile time 21:20:57 aha! 21:21:19 to allow sbcl to keep optimization for my formulated slots, I can put an around method on the generated slot-value reader 21:22:04 but I need to force it to generate that reader despite my s-v-u-c method being there 21:22:26 _3b: I think there really is a ccl bug involving storing single-float constants into a single-float array. 21:22:33 _3b: can't help you then (: 21:22:54 The movsd at http://trac.clozure.com/ccl/browser/trunk/source/compiler/X86/X8664/x8664-vinsns.lisp#L4350 is pretty clearly wrong. 21:26:02 <_3b> rme: hmm, wonder if i tested wrong after i upgraded 21:27:13 -!- morphling [n=stefan@gssn-5f755494.pool.mediaWays.net] has quit [Remote closed the connection] 21:27:32 -!- cmm- [n=cmm@79.178.135.94] has quit [Read error: 145 (Connection timed out)] 21:27:40 morphling [n=stefan@gssn-5f755494.pool.mediaWays.net] has joined #lisp 21:29:18 _3b: about the 1d+-0 business, you could turn off invalid exceptions with (ccl:set-fpu-mode :invalid nil); I don't know if that's too big of a hammer for your problem, though. 21:29:32 <_3b> ah, maybe new version masked it by breaking the inlining :/ 21:29:58 <_3b> rme: probably, might do it anyway though 21:30:54 *_3b* found it amusing that i could say (the single-float 1d+-0) with only a warning though :) 21:34:06 -!- morphling [n=stefan@gssn-5f755494.pool.mediaWays.net] has quit [Remote closed the connection] 21:34:27 morphling [n=stefan@gssn-5f755494.pool.mediaWays.net] has joined #lisp 21:37:46 -!- chrisdone [n=user@unaffiliated/chrisdone] has quit [Read error: 104 (Connection reset by peer)] 21:39:40 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Remote closed the connection] 21:41:17 baddog [n=liam@unaffiliated/baddog144] has joined #lisp 21:41:40 is there anything already done to calc the instersection between 2 lists? 21:42:28 ignas [n=ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 21:43:03 only if you can regard your lists as sets 21:43:11 clhs intersection 21:43:11 http://www.lispworks.com/reference/HyperSpec/Body/f_isec_.htm 21:43:30 -!- mstevens [n=mstevens@zazen.etla.org] has quit ["leaving"] 21:43:40 clhs set-difference 21:43:40 http://www.lispworks.com/reference/HyperSpec/Body/f_set_di.htm 21:43:55 pavelludiq [n=quassel@87.246.57.9] has joined #lisp 21:43:59 oh, hm 21:44:27 brita_: notice that this function does not need to preserve any order because it regards its arguments to represent sets (where order does not matter) 21:44:47 for a minute there i thought intersection was set-difference somehow 21:47:07 -!- kmc [n=keegan@173-100-16-149.pools.spcsdns.net] has quit ["Leaving"] 21:47:35 kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 21:48:22 -!- slash_ [n=Unknown@whgeh0250.cip.uni-regensburg.de] has quit [Client Quit] 21:48:35 serves just fine, thanks 21:48:50 sooth [n=user@bas16-montreal02-1279589180.dsl.bell.ca] has joined #lisp 21:50:36 _3b: that constant single-float store bug is now fixed in svn. 21:51:30 <_3b> rme: yeah, just recompiled that 21:52:03 next bug, please. 21:52:20 <_3b> rme: can't tell if it works though, since the aref doesn't seem to get inlined anymore :/ 21:52:27 -!- stat_trav is now known as stattrav 21:52:36 <_3b> rme: does the NaN thing count as a bug? :) 21:52:43 -!- dralston [n=dralston@S010600212986cca8.va.shawcable.net] has quit ["Leaving"] 21:53:23 <_3b> rme: alternately, is there an easy way to build a nan at runtime instead of using a literal? 21:57:09 There's the internal constant ccl::double-float-nan. 21:57:24 <_3b> rme: that breaks the same way i think 21:59:05 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [] 21:59:29 -!- pragma_ [n=pragma@unaffiliated/pragma/x-109842] has quit ["Lost terminal"] 21:59:33 <_3b> breaking at runtime would be less of a problem, since that would only affect 1 or 2 functions, but erroring during compile breaks the whole lib 21:59:52 is there any lisp 3D model loaders 22:00:10 Guthur: For what sort of format? 22:00:18 pragma_ [n=pragma@unaffiliated/pragma/x-109842] has joined #lisp 22:00:33 <_3b> Guthur: you can try http://github.com/3b/classimp if you can get the C lib to build 22:01:06 Guthur: I have one for enough of the .obj format to make me happy, but you probably know that already. 22:01:10 <_3b> pretty sure i saw at least 1 pure CL one on github somewhere too, no idea how far it was though 22:01:22 numberGrey [n=michael@173-15-9-117-Illinois.hfc.comcastbusiness.net] has joined #lisp 22:01:22 nyef did not know 22:01:22 grr, where is get-accessor-method-function called from? 22:01:39 It's in paste 90857, first function in the paste is load-3d-object. 22:01:44 i haven't really any preference was just wondering if there was one available yet 22:01:58 <_3b> assimp loads lots of formats, so should be good once it stabilizes 22:02:14 -!- kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 22:02:39 Really, you only need to be able to load one format. Any other formats can then be converted to what you can load. 22:03:00 <_3b> nyef: helps to be able to load others for doing the conversion step though :) 22:03:12 hehe ya see that now, i'll admit i got scared of CLX 22:03:15 borism_ [n=boris@213-35-232-204-dsl.end.estpak.ee] has joined #lisp 22:03:16 Sure, if you want to go so far as to do the conversion in Lisp. 22:03:27 and decided to play with cl-opengl first 22:03:33 kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 22:03:55 -!- r00tzlevel is now known as rootzlevel 22:04:10 cl-opengl will use DRI if available anyway 22:04:13 i was thinking of maybe going with whatever format blender exports the best, which may actually be none 22:04:23 so if it's stuff you need a loader for, you might be better off that way :P 22:04:38 Oh, and it turns out that that paste makes use of my file-utils junk. It's fairly obvious what load-file-data does from context, but if you want the original it's available via the perry repository in my home directory on clnet (through gitweb). 22:07:08 waaa all I want to do is wrap the standard optimized reader/writer with a little custom code 22:07:26 but making this work in the general case prevents that optimized reader/writer from getting defined 22:08:02 *rahul* wishes slot-value were generic 22:08:11 rahul: define an inline accessor that calls out to slot-value? 22:08:25 pkhuong: I want slot-value to work correctly, too 22:08:26 I am new to both emacs and lisp, but what is the proper way to use unix paths. For example, if i am in the directory /home/user/lisp/ where a file called web.asd is located, I use (asdf:operate 'asdf:load-op 'web). Now lets say I am not in /home/user/lisp/, how can I specify the path? (as in (asdf:operate 'asdf:load-op '/home/user/lisp/web)) 22:08:41 -!- mishoo [n=mishoo@79.112.52.124] has quit [Read error: 110 (Connection timed out)] 22:09:03 pkhuong: my GUI will be using MOP to introspect the class and find the slots... I guess I could look at the reader/accessor and call that but this is getting messy either way 22:09:31 or can i not do that? 22:09:36 pkhuong: but either way, I kind of want things to work correctly even if the user does not use the accessor 22:09:50 numberGrey: asdf:load-op works with systems, not paths. 22:10:12 pkhuong: so I want an s-v-u-c override, but I want that override to install the optimized path with a little tweak on sbcl 22:11:12 -!- borism [n=boris@213-35-232-204-dsl.end.estpak.ee] has quit [Connection timed out] 22:11:15 pkhuong: hmm, can you point me in the right direction so I can figure how I can do what I am trying? I just would prefer to not launch emacs from the path where my web.asd file is. 22:11:26 lispm [n=joswig@g224125197.adsl.alicedsl.de] has joined #lisp 22:11:34 numberGrey: you don't have to. 22:11:56 numberGrey: symlink the file into some directory that's in your asdf:*central-registry* 22:12:18 -!- rme [rme@clozure-9D931A0E.chi.dsl-w.verizon.net] has quit [Quit: rme] 22:12:19 -!- rme [n=rme@pool-70-104-115-69.chi.dsl-w.verizon.net] has quit [] 22:12:19 aha wow I feel a little dumb I never tried without it i just assumed 22:12:21 thank you 22:13:11 numberGrey: as long as the .asd file is in the search path, it will search there for foo.asd when you try to do something to system foo and it's not defined 22:13:23 ok thanks 22:13:29 i appreciate the help 22:13:34 well, it will search regardless, and if it finds it there, you're all set 22:15:59 -!- dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has left #lisp 22:18:59 faux [n=user@1-1-4-21a.gkp.gbg.bostream.se] has joined #lisp 22:20:02 *rahul* ponders change-class on the slot-definition 22:21:34 -!- majhool [n=mrw@user-118bgr6.cable.mindspring.com] has quit [Read error: 145 (Connection timed out)] 22:22:08 chessguy_work [n=chessguy@pool-72-66-64-165.washdc.fios.verizon.net] has joined #lisp 22:25:05 -!- chessguy_work is now known as chessguy 22:29:28 majhool_ [n=mrw@user-118bgr6.cable.mindspring.com] has joined #lisp 22:30:44 Demosthenex [n=demo@206.180.154.148.adsl.hal-pc.org] has joined #lisp 22:34:13 -!- Jabberwockey [n=jens@port-90979.pppoe.wtnet.de] has quit [Read error: 60 (Operation timed out)] 22:35:05 -!- numberGrey [n=michael@173-15-9-117-Illinois.hfc.comcastbusiness.net] has left #lisp 22:35:40 -!- chessguy [n=chessguy@pool-72-66-64-165.washdc.fios.verizon.net] has quit ["Leaving"] 22:39:38 -!- cmeow is now known as cmeow|away 22:40:22 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:41:43 b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 22:41:58 -!- lispm [n=joswig@g224125197.adsl.alicedsl.de] has quit [Remote closed the connection] 22:42:06 -!- baddog [n=liam@unaffiliated/baddog144] has quit [Connection reset by peer] 22:43:15 baddog [n=liam@unaffiliated/baddog144] has joined #lisp 22:43:27 -!- Demosthenes [n=demo@206.180.154.148.adsl.hal-pc.org] has quit [Read error: 110 (Connection timed out)] 22:43:59 -!- cmeow|away is now known as cmeow 22:44:32 dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has joined #lisp 22:45:13 -!- milanj- [n=milan@93.87.166.83] has quit ["Leaving"] 22:46:28 -!- baddog [n=liam@unaffiliated/baddog144] has quit [Read error: 54 (Connection reset by peer)] 22:46:54 baddog [n=liam@unaffiliated/baddog144] has joined #lisp 22:47:04 -!- spilman_ is now known as spilman 22:47:14 mfk [n=user@kpbisb.static.corbina.ru] has joined #lisp 22:50:02 ulgen [n=user@kpbisb.static.corbina.ru] has joined #lisp 22:51:00 -!- ulgen [n=user@kpbisb.static.corbina.ru] has quit [Client Quit] 22:51:26 -!- dlowe [n=dlowe@c-24-91-154-83.hsd1.ma.comcast.net] has quit ["Leaving."] 22:53:44 -!- mfk [n=user@kpbisb.static.corbina.ru] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:54:13 I wonder what a quadratic (objective function is to maximise the sum of c_ij x_i x_j) 0/1 knapsack would be good for, in a compiler. 22:55:50 davazp [n=user@218.Red-83-37-233.dynamicIP.rima-tde.net] has joined #lisp 22:56:40 ltriant [n=ltriant@202.136.38.162] has joined #lisp 22:57:20 -!- Paraselene__ [n=None@79-67-188-149.dynamic.dsl.as9105.com] has quit [Read error: 145 (Connection timed out)] 22:57:34 dreish_ [n=dreish@minus.dreish.org] has joined #lisp 22:58:07 Paraselene__ [n=None@79-67-188-149.dynamic.dsl.as9105.com] has joined #lisp 23:00:10 -!- amaron_ [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has quit [Read error: 110 (Connection timed out)] 23:03:03 -!- pr [n=pr@unaffiliated/pr] has quit ["leaving"] 23:05:17 snearch_ [n=olaf@g225048117.adsl.alicedsl.de] has joined #lisp 23:06:18 <_deepfire> Ok, so now slime appears to insist I must restart emacs, whenever I restart the inferior lisp.. 23:06:27 *_deepfire* turns red 23:09:04 -!- snearch_ [n=olaf@g225048117.adsl.alicedsl.de] has quit ["Ex-Chat"] 23:09:07 -!- spilman [n=spilman@92.135.223.10] has quit ["Quitte"] 23:10:45 -!- akamaus [n=maus@78.31.79.185] has quit [Read error: 110 (Connection timed out)] 23:11:13 rajesh [n=rajesh@cpe-68-173-54-94.nyc.res.rr.com] has joined #lisp 23:11:19 rvirding [n=chatzill@70.158.103.11] has joined #lisp 23:11:54 <_deepfire> Does anybody uses swank from dumped cores? Does anybody have the missing arglist-for-echo-area problem? 23:13:54 -!- dreish [n=dreish@minus.dreish.org] has quit [Read error: 113 (No route to host)] 23:14:44 <_deepfire> Yeah, looks like I can reproduce it. 23:15:55 restart emacs?!? 23:16:00 the gall. 23:16:01 hmm... does bundling fasls in SBCL help (with cat) regarding anything other than number of files? 23:16:12 p_l: not too much 23:16:18 borism [n=boris@213-35-232-204-dsl.end.estpak.ee] has joined #lisp 23:16:21 p_l: it might stream from disk faster 23:16:42 assuming you don't have many methods defined in the fasl 23:16:59 if you have a lot of methods, you're more likely to be CPU bound 23:17:20 hmm... it could have been interesting to just mmap them... But I don't have enough expertise regarding GC to play around with my current ideas :/ 23:18:21 why would you mmap if you're only going to do linear access? 23:18:42 <_deepfire> Step 1: dump a core with swank, and start it. Step 2: start emacs with (slime-setup '(slime-fuzzy)). Step 3: connect, everything is fine. Step 4: slime-quit-lisp. Step 5: restart dumped core. Step 6: reconnect slime to the core. Step 7: enter "(+ " in the REPL and watch it explode. 23:18:53 pkhuong: I was thinking of sharing memory similar to shared libraries 23:19:14 pkhuong: not sure if it would have helped anything or anyone, but just as experiment :-) 23:19:16 -!- hugod [n=hugod@bas1-montreal50-1279441070.dsl.bell.ca] has quit [] 23:19:34 It might be nice if the code-components of a fasl were at least mmap()able and shareable. 23:20:00 Even better, the ones that are used only for top-level forms be mmap()able and discardable. 23:20:27 and well, that idea is certainly less crazy than making a small runtime as executable shared library and setting it as program interpreter for lisp cores ;-) 23:20:27 exactly 23:20:39 nyef: and then the GC ignores them, too 23:20:47 they're effectively static space 23:21:27 -!- borism_ [n=boris@213-35-232-204-dsl.end.estpak.ee] has quit [Read error: 145 (Connection timed out)] 23:21:31 <_deepfire> Er, corrected Step 2: start emacs with (slime-setup '(slime-fancy)). 23:22:56 <_deepfire> As you can imagine, restarting emacs and connecting fixes things. Until you restart the swank side. 23:24:16 kmc [n=keegan@206-71-236-70.c3-0.nyw-ubr5.nyr-nyw.ny.cable.rcn.com] has joined #lisp 23:24:26 ... The GC can't ignore them, they contain literal vectors! 23:24:51 (can't? mustn't.) 23:25:06 nyef: well, they'd only refer to stuff in static space 23:25:22 nyef: wait, what literal vectors? 23:25:30 In the code-components. 23:26:16 ASau` [n=user@83.69.227.32] has joined #lisp 23:26:56 -!- ikki [n=ikki@189.247.72.208] has quit [Read error: 104 (Connection reset by peer)] 23:27:36 -!- rvirding [n=chatzill@70.158.103.11] has quit ["ChatZilla 0.9.85 [Firefox 3.5.1/20090715083437]"] 23:29:17 nyef: for quoted literals? 23:29:25 ... I didn't know that SBCL made all fasls executable nowadays o_O 23:30:15 p_l: well, anything is executable in linux 23:30:27 you just have to give it a command to go with the magic number 23:30:46 rahul: I meant that there apriopriate headers included 23:31:54 so you only have to set executable bit and it works 23:32:41 redblue [i=star@ppp137.108-253-207.mtl.mt.videotron.ca] has joined #lisp 23:32:43 p_l: you need to register it with the binfmt_misc kernel module on linux 23:33:17 ohh 23:33:27 wow, there's a shebang at the top 23:33:31 cute 23:35:55 and I have just proven that SBCL's hello world is 692 bytes compiled ;-) 23:36:30 i wonder if that is a record 23:37:37 cvandusen [n=cvanduse@99-166-72-116.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 23:38:40 -!- Geralt [n=Geralt@unaffiliated/thegeralt] has quit ["Leaving."] 23:40:05 <_deepfire> 796 here, x86-64, 1.0.32.37 23:41:22 i probably should update my SBCL some time 23:41:49 Guthur: I'm running 1.0.11, FWIW. 23:42:22 hehe great i don't feel modern again 23:42:31 lol remove modern 23:42:42 actually just ignore it completely 23:43:26 ... you know, on size comparison for trivial program, SBCL suddenly stopped to suck 23:43:46 take that, "hello world is giant" whiners 23:44:10 -!- ASau [n=user@83.69.227.32] has quit [Read error: 113 (No route to host)] 23:44:11 -!- fiveop [n=fiveop@e179160079.adsl.alicedsl.de] has quit ["humhum"] 23:45:32 hehe maybe sbcl has a special hello world optimiser 23:46:26 OmniMancer [n=OmniManc@219-89-88-232.jetstart.xtra.co.nz] has joined #lisp 23:47:34 pavelludiq_ [n=quassel@87.246.29.23] has joined #lisp 23:47:48 no, it's just that nowhere there's suggestion of using shared core and cat-ing fasls 23:49:00 -!- varjag [n=eugene@103.80-202-117.nextgentel.com] has quit [Remote closed the connection] 23:49:44 _deepfire: ? 23:50:00 _deepfire: You have to restart Emacs once if you updated 23:50:44 because the api of arglist-for-echo-area changed, and if you do not restart emacs, you're still using the old emacs code which calls it incorrectly 23:50:56 -!- pavelludiq_ [n=quassel@87.246.29.23] has quit [Remote closed the connection] 23:50:59 you should get a warning about mismatched version between slime and swank in that case 23:52:03 -!- pavelludiq [n=quassel@87.246.57.9] has quit [Read error: 145 (Connection timed out)] 23:52:49 <_deepfire> tcr, no, no updates 23:53:21 <_deepfire> Same slime, removed swank-loader.fasl, slime.elc, freshly compiled, etc. 23:53:44 I don't know then. 23:53:51 <_deepfire> I gave fairly precise repro steps above, btw. 23:53:55 How does it explode? 23:54:05 I don't use custom cores 23:54:46 I wouldn't know why it should behave as you described though, perhaps some kind of stale fasl. Did you try to remove ~/.slime? 23:55:05 ... how would you implement telling SBCL that register file size is variable? (at runtime...) 23:55:08 and compiling the emacs source files sounds like a bad idea 23:55:10 <_deepfire> something about message filter error, and "symbol ARGLIST-FOR-ECHO-AREA missing in swank package" in the backtrace 23:55:13 why do you do that? 23:55:25 are you sure that contrib/slime-autodoc.elc is also up-to-date? 23:55:44 <_deepfire> tcr, oh, thanks, looking at it! 23:55:48 You're probably calling some function in swank-loader.lisp wrongly 23:55:58 <_deepfire> I don't mess with it at all. 23:56:10 you use the swank.asd file? 23:56:18 <_deepfire> yes 23:56:24 well that does implicitly 23:56:54 I recall one who reported some problem as you described with a swank.asd; I thought stassats fixed whatever was the issue 23:57:01 <_deepfire> but the breakage appears to be on the emacs side 23:57:11 <_deepfire> as restarting emacs and reconnecting the same core succeeds 23:57:47 Yeah sounds weird :) 23:57:57 I suggest not to byte-compile the .el files 23:58:06 <_deepfire> understood 23:58:13 Slime does byte-compile speed-critical functions on load-up 23:59:01 <_deepfire> Hmm, no .elc files. 23:59:29 p_l: can't really (well, sort of, I guess). What's the use case? 23:59:45 pkhuong: cpu with variable-sized register windows 23:59:50 -!- cvandusen [n=cvanduse@99-166-72-116.lightspeed.rcsntx.sbcglobal.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"]