00:00:10 stassats: easily remedied 00:00:37 drewc: alists are nicer to format in emacs? :) 00:01:00 (loop for (var val) on plist by #'cddr :when (funcall test var) :do (return val)) 00:01:01 -!- legumbre [~leo@r190-135-16-208.dialup.adsl.anteldata.net.uy] has quit [Ping timeout: 264 seconds] 00:01:37 I prefer plist due to presence of destructuring-bind 00:01:50 sykopomp: functions take plists as &keys. make-instance takes plists as initargs 00:02:15 defclass uses a alist for slots, but a plist for options :) 00:02:18 Louis11: don't you mean you want SOLVE-PUZZLE to return the moves when all the crap it calls 'returns nil' or whatever? 00:02:18 -!- rdd [~rdd@c83-250-52-182.bredband.comhem.se] has quit [Ping timeout: 240 seconds] 00:02:23 drewc: var and val both end up being nil at some point. If you're looping that way, you probably want to explicitly test that. 00:02:24 this goes back to my discussion the other day on modelling records that change. 00:02:31 i've got my multidimensional array 00:02:36 er, s/array/hash/ 00:02:55 believe it or not, with a dictionary on each axis, its a breeze 00:03:06 drewc: in that loop, the last two items for (var val) are (4 nil) and (nil nil) 00:03:17 sykopomp: yeah, obviously... i hope you don't expect me to implement everything for you.... 00:03:33 tsuru: yes 00:03:39 drewc: this is a non-issue for alists. Alists, thus, are clearly superior. 00:03:49 but i figured since it was recursive, it would be returned from process-moves? 00:04:02 if your trivial, ad-hoc example can't demonstrate the true power of plists, why should I bother? 00:04:11 sykopomp: says the guy who just pasted ALREF 00:04:20 -!- demmeln [~Adium@dslb-092-075-036-133.pools.arcor-ip.net] has left #lisp 00:04:33 drewc: I'm joking :( 00:04:46 i got that yeah :) 00:04:52 and alref might be useful to someone :P 00:05:11 and all the dicts and hash o hashes is wrapped up in a struct 00:05:12 what's that other cons-based data structure where the car is the list of keys and the values are in the cdr? 00:05:14 yeah, because nobody knows about CDR :P 00:05:14 sykopomp: what do you mean by "the last two items for (var val) are (4 nil) and (nil nil)"? 00:05:59 Louis11: like you encountered earlier, recursion won't stop just because it hits a nil. you have to tell it what to stop on and what to return when it does. 00:06:00 stassats: (lastcar (loop for (var val) on plist by #'cddr collect (cons var val))) -> (NIL) 00:06:21 legumbre [~leo@r190-135-16-208.dialup.adsl.anteldata.net.uy] has joined #lisp 00:06:32 hm 00:07:03 sykopomp: Because I just read in that README "give credit where credit is due"; both of you're using my pushend in chanl 00:07:06 sykopomp: why do you have NIL in your plist then? 00:07:54 stassats: I guess my plists should always be dotted lists? 00:07:58 -!- slash_ [~Unknown@whgeh0250.cip.uni-regensburg.de] has quit [Quit: leaving] 00:08:10 sykopomp: actually, yeah... i thought you meant that NIL has the dual meaning... i don't know what you mean by that last two items bit 00:08:11 tcr: noted! Sorry :) 00:08:19 -!- marioxcc-AFK is now known as marioxcc 00:08:36 sykopomp: you pasted this code, did you run it on a plist? 00:08:44 (car (last (loop for (var val) on '(a 1 b 2) by #'cddr collect (cons var val)))) => (B . 2) 00:09:22 it will return (NIL) if your plist is '(a 1 b 2 nil) 00:09:24 c|mell [~cmell@cpc3-colc5-0-0-cust193.colc.cable.ntl.com] has joined #lisp 00:09:26 stassats: hah, oh wow, nevermind. I forgot to use #'cddr when I was testing. 00:09:30 -!- stettberger [stettberge@peer.zerties.org] has quit [Ping timeout: 240 seconds] 00:09:32 -!- mgr [~mgr@psychonaut.psychlotron.de] has quit [Ping timeout: 252 seconds] 00:09:33 sorry :) 00:09:50 -!- cpt_nemo [cpt_nemo@saga.ftbfs.de] has quit [Ping timeout: 256 seconds] 00:10:07 stassats: the latter is not a plist! 00:10:29 -!- cupe_ [~cupe@mein.eigensex.org] has quit [Ping timeout: 265 seconds] 00:11:12 drewc: it's a variable name 00:11:34 stassats: fair enough 00:11:58 tsuru annotated #94873 "for Louis11" at http://paste.lisp.org/display/94873#3 00:12:28 doh 00:13:12 Louis11: that should be (- n 1) 00:13:19 mgr [~mgr@psychonaut.psychlotron.de] has joined #lisp 00:13:24 cupe [~cupe@zenhase-1-pt.tunnel.tserv6.fra1.ipv6.he.net] has joined #lisp 00:13:27 urg, hashget can't work with setf 00:13:44 (can-you-make-this-return? nil) => NIL what do i win? :) 00:13:52 tsuru`: should be? 00:13:56 Demosthenes: yes, it can 00:14:16 ok, just not the one i have now ;] 00:14:35 i hadn't thought to use reduce with :initform, thats great insight 00:14:47 Demosthenes: (defun (setf hashget) (value hash &rest keys) ..) 00:14:50 stassats: "might be easier if" ? 00:14:52 -!- jsnell [~jsnell@vasara.proghammer.com] has quit [Ping timeout: 272 seconds] 00:15:35 Demosthenes: http://github.com/sykopomp/chillax/blob/master/src/view-server.lisp#L114 00:15:37 you think Louis11 can't handle (1- n)? 00:16:40 stettberger [stettberge@peer.zerties.org] has joined #lisp 00:17:26 cpt_nemo [cpt_nemo@saga.ftbfs.de] has joined #lisp 00:17:49 stassats: touche-ay 00:20:02 CyberBlue [~yong@111.167.8.39] has joined #lisp 00:20:37 jsnell [~jsnell@vasara.proghammer.com] has joined #lisp 00:21:23 -!- Tristam [~Tristam@cpe-72-226-127-57.nycap.res.rr.com] has quit [Quit: Some days you are the pigeon, other days the statue.] 00:25:32 hm tsuru: I tried tinkering with the example you posted. However I get an error about exhausting the stack? 00:25:51 -!- kpreid [~kpreid@216-171-189-244.northland.net] has quit [Quit: kpreid] 00:26:54 Louis11: this is true. It is a smaller puzzle that mimics the problem your are having with your code. 00:28:58 so with this small problem, how would one fix the issue? 00:29:31 when n is nil do something, otherwise do (+ n ( . . . ))? 00:30:03 Louis11: ahhh...now you are getting warmer. 00:30:11 Louis11: did you try it? 00:30:31 trying a few things, but none have worked thus far 00:30:55 is there a way to break out of the function? Im under the impression that it executes one statement, then continues down? 00:31:07 or perhaps an (if . . . (then . . .))? 00:32:45 Louis11: I think you might want to read about IF, WHEN, and COND some more. You are close to an AHA! moment sadly I've run out of time. 00:33:16 heh alright, thanks :) 00:33:40 -!- Summermute [~Summermut@c-68-55-150-29.hsd1.dc.comcast.net] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]] 00:34:34 Louis11: I trust you've already have PCL? 00:35:01 PCL? 00:35:08 Practical Common Lisp 00:35:26 its available online for free, but I highly recommend buying the book 00:36:08 minion: please tell Louis11 about PCL 00:36:09 Louis11: have a look at 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). 00:36:16 ah yea, i've been reading it online 00:37:06 if you want to break out of a function, you can use return-from 00:37:13 tcr: ping? 00:37:29 I wonder if anyone is using elephant 00:37:52 there is an elephant in my room 00:38:03 in particular, I don't know what version of BDB to link with 00:38:36 there's a script in the contrib dir that installed v4.5, but once loaded, trying to use it corrupts my image 00:40:06 kpreid [~kpreid@216-171-189-244.northland.net] has joined #lisp 00:40:07 -!- kpreid [~kpreid@216-171-189-244.northland.net] has quit [Excess Flood] 00:41:38 -!- tsuru` [~user@c-68-53-57-241.hsd1.tn.comcast.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 00:42:25 setheus [~setheus@cpe-70-116-140-134.tx.res.rr.com] has joined #lisp 00:42:42 hugod [~hugod@bas1-montreal50-1279440411.dsl.bell.ca] has joined #lisp 00:43:55 kpreid [~kpreid@216-171-189-244.northland.net] has joined #lisp 00:44:57 -!- lithper2__ [~chatzilla@72.8.31.30] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20091221164558]] 00:47:34 -!- billstclair [~billstcla@unaffiliated/billstclair] has quit [Remote host closed the connection] 00:48:36 billstclair [~billstcla@p-74-209-23-233.dsl1.rtr.chat.fpma.frpt.net] has joined #lisp 00:48:36 -!- billstclair [~billstcla@p-74-209-23-233.dsl1.rtr.chat.fpma.frpt.net] has quit [Changing host] 00:48:36 billstclair [~billstcla@unaffiliated/billstclair] has joined #lisp 00:54:59 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Quit: mrSpec] 00:55:54 sykopomp: yup? 00:55:58 http://nwn.blogs.com/nwn/2010/02/philip-rosedale-ai.html Looks like the Singularity is going to live in second life. 00:56:07 tcr: check pm? 00:56:53 -!- bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has quit [Ping timeout: 265 seconds] 00:58:35 -!- gonzojive_ [~red@c-76-21-113-242.hsd1.ca.comcast.net] has quit [Quit: gonzojive_] 01:03:04 i cant install iolib, i cant install clsql ... damn, is there any CL lib based on c bindings that is easy to install 01:03:21 milanj: what's the problem with iolib ? 01:03:40 -!- Louis11 [~chatzilla@64.134.151.189] has quit [Ping timeout: 256 seconds] 01:04:05 mattrepl [~mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has joined #lisp 01:04:26 fe[nl]ix, we talk about that couple of days ago, i cant remember right now but i tried on two linux servers and no luck 01:04:36 but i think it's cffi issue though 01:05:34 milanj: http://paste.lisp.org/display/94386 ? 01:05:40 If it's a cffi issue, then you won't have much luck with installing pretty much any library nowadays involving c bindings 01:06:13 tcr: clsql uses uffi 01:06:18 -!- grouzen [~grouzen@91.214.124.2] has quit [Ping timeout: 252 seconds] 01:07:13 milanj: paste the iolib error 01:07:19 <_deepfire> Actually, why would anyone use uffi, except for hysterical raisins? 01:07:26 fe[nl]ix, that is on second server, on first on there was some problem with 32bit and 64bit c libs 01:07:30 minion: memo for levente_meszaros: I think you or attila were not so long ago looking for a way to expand type specifiers. I just committed that to SBCL. Tell if it suits your needs. 01:07:30 Remembered. I'll tell levente_meszaros when he/she/it next speaks. 01:07:46 minion: memo for attila_lendvai: I think you or levy were not so long ago looking for a way to expand type specifiers. I just committed that to SBCL. Tell if it suits your needs. 01:07:47 Remembered. I'll tell attila_lendvai when he/she/it next speaks. 01:08:10 _deepfire: same author 01:09:12 <_deepfire> fe[nl]ix, btw, isn't an idea for portable RUN-PROGRAM actually somewhat touching your territory? 01:09:48 <_deepfire> fe[nl]ix, actually it should have been worded "common-codebase-RUN-PROGRAM", you get the idea. 01:10:05 _deepfire: s/hysterical/historic/ (or was that a pun?) 01:10:13 <_deepfire> tcr, yeah, the latter.. 01:10:23 _deepfire: I have that on my TODO, and a pretty good idea of how to do it 01:10:30 _deepfire: but it requires time 01:11:14 <_deepfire> fe[nl]ix, I started the #+/#- -ery to bring sbcl's src/run-program.lisp to ECL -- and I actually have most of it done, except two blocker issues. 01:11:20 dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has joined #lisp 01:11:49 _deepfire: that won't work well 01:12:14 <_deepfire> fe[nl]ix, have you written down your ideas somewhere? 01:12:16 fe[nl]ix, "/usr/lib64/librt.so: symbol __librt_disable_asynccancel, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference." 01:12:22 this was error with iolib 01:12:31 64bit sbcl 01:12:33 oh, right 01:12:52 milanj: was that a debian ? 01:12:59 _deepfire: nope 01:13:02 <_deepfire> fe[nl]ix, there are reasons why it's going to be problematic, yes, and the first one is arbitrary (not just fd-) streams passed as :output/:error. 01:13:08 suse 10.0 01:13:23 <_deepfire> fe[nl]ix, and this issue is pretty fundamental. 01:13:40 abugosh [~Adium@206.225.102.84] has joined #lisp 01:13:49 milanj: could you try to compile+link a C program and see if your librt is sane ? 01:14:07 <_deepfire> fe[nl]ix, SBCL does some SIGCHLD-ery to have it working on linux, which juanjo doesn't like. 01:14:44 <_deepfire> fe[nl]ix, but other than that -- do you have other issues on your mind? 01:15:53 syamajala [~syamajala@c-76-119-52-223.hsd1.ma.comcast.net] has joined #lisp 01:16:10 -!- Yuuhi [benni@p5483D295.dip.t-dialin.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 01:16:11 _deepfire: exactly. I've reached the conclusion that because of interactions between SIGCHLD and wait/waitpid, the only sane solution is to use a spawner daemon 01:17:01 i.e. talking to an external daemon that executes programs on your behalf then passes the 3 FDs of that program back to the CL impl. 01:17:17 and that is a major PITA to write 01:17:40 reprore [~reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 01:17:46 -!- reprore [~reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 01:18:22 -!- leo2007 [~leo@smaug.linux.pwf.cam.ac.uk] has quit [Quit: rcirc on GNU Emacs 23.0.60.1] 01:18:44 <_deepfire> fe[nl]ix, I totally agree, but this my strong suspicion is that this issue /can/ be separated from the code unification (based on whatever imperfect situation we have now) issue. 01:18:54 leo2007 [~leo@soup.linux.pwf.cam.ac.uk] has joined #lisp 01:19:02 <_deepfire> fe[nl]ix, i.e. it's not like it's the only issue RUN-PROGRAM deals with. 01:19:12 what do you mean by "code unification" 01:19:14 ? 01:19:20 What's so difficult about run-program? 01:19:33 <_deepfire> fe[nl]ix, same #+/#- code base for all major implementations. 01:19:40 hmmm, seems my woes are FFI related - I don't seem to be able to call into any FFI dependent library without my lisp image being corrupted 01:20:25 hmm, fe[nl]ix, stupid trick but it worked 01:20:39 I wonder what's up with that - my sbcl and libs are installed using clbuild 01:20:45 on second server, i first load cffi then asdf-install iolib and it worked 01:20:45 tcr: the current POSIX API doesn't allow to wait for the completion of a single PID without using signals 01:20:49 <_deepfire> fe[nl]ix, whenever some strong-willed individual decides to take up arms and write that daemon -- fine. Just that we don't have to wait to do another useful piece of work. 01:21:00 -!- jockc [~jockc@dsl-206-251-71-75.dynamic.linkline.com] has quit [Quit: Leaving] 01:21:30 when tried to install on clean sbcl then some error on /zeta/stream.lisp 01:21:54 _deepfire: I'm not interested in working on a half-broken solution 01:22:04 -!- Dodek [~Dodek@wikipedia/Dodek] has quit [Remote host closed the connection] 01:22:13 abugosh1 [~Adium@2002:cee1:66e7:b:21b:63ff:fec5:5b19] has joined #lisp 01:22:14 Adlai [~adlai@unaffiliated/adlai] has joined #lisp 01:22:32 milanj: please don't use asdf-install 01:22:40 -!- amnesiac [~amnesiac@p3m/member/Amnesiac] has quit [Quit: Leaving] 01:22:40 at least not with iolib 01:22:51 <_deepfire> fe[nl]ix, look -- 1. I'm /not/ claiming a solution to /that/ particular problem and 2. someone can build on it to provide a proper solution to /that/ problem -- later. 01:23:19 ok 01:23:37 <_deepfire> fe[nl]ix, isn't it just sickening that we have several incomplete trivial-shell/whatever layers which don't do the job, API-wise? 01:24:20 <_deepfire> I felt that particularly badly, because I had to do a lot of RUN-PROGRAM in various scenarios. 01:24:26 _deepfire: that's not the term I'd use 01:24:35 it's inconvenient for some 01:25:20 <_deepfire> Well, I'm biased :-) 01:25:24 fe[nl]ix: how do shells do it? 01:25:48 -!- abugosh [~Adium@206.225.102.84] has quit [Ping timeout: 272 seconds] 01:26:08 tcr: shells are single-threaded and use signals 01:26:45 that's the original use case of Unix and there aren't problems there 01:28:03 <_deepfire> Heck, RUN-PROGRAM is the single, most important problem with porting desire. 01:28:08 -!- tcr [~tcr@host146.natpool.mwn.de] has quit [Quit: gtg] 01:30:47 -!- bobbysmith007 [~russ@216.155.97.1] has quit [Quit: Leaving.] 01:31:01 -!- jleija [~jleija@adsl-243-224-153.chs.bellsouth.net] has quit [Ping timeout: 264 seconds] 01:31:40 jleija [~jleija@adsl-243-224-39.chs.bellsouth.net] has joined #lisp 01:35:36 -!- milanj [~milan@109.93.9.246] has quit [Ping timeout: 245 seconds] 01:37:37 Anarch [~olaf@c-67-171-37-107.hsd1.wa.comcast.net] has joined #lisp 01:38:29 skateenjoi003 [~skateenjo@190.154.247.13] has joined #lisp 01:39:01 JonSmith [~jon@c-71-233-58-7.hsd1.ma.comcast.net] has joined #lisp 01:39:27 -!- syamajala [~syamajala@c-76-119-52-223.hsd1.ma.comcast.net] has quit [Quit: Leaving...] 01:39:39 -!- rickmode [~rickmode@64.134.235.192] has quit [Quit: rickmode] 01:41:10 -!- skateenjoi003 [~skateenjo@190.154.247.13] has quit [Remote host closed the connection] 01:41:36 -!- carlocci [~nes@93.37.199.77] has quit [Quit: eventually IE will rot and die] 01:43:17 HET2 [~diman@chello084114129176.4.15.vie.surfer.at] has joined #lisp 01:46:08 phax [~phax@unaffiliated/phax] has joined #lisp 01:51:20 is there an "undefvar"? 01:51:30 clhs makunbound 01:51:30 http://www.lispworks.com/reference/HyperSpec/Body/f_makunb.htm 01:51:55 it won't undo the globally special effect, though 01:51:56 -!- gemelen [~shelta@shpd-92-101-156-41.vologda.ru] has quit [Ping timeout: 260 seconds] 01:55:34 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Ping timeout: 272 seconds] 01:55:47 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 01:56:31 is there a command to clear all globals, etc., in sbcl? 01:56:41 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 01:56:50 -!- SandGorgon [~OmNomNomO@office.sea.jambool.com] has quit [Ping timeout: 272 seconds] 01:57:07 so that the environment is as it would be had you just started the REPL? 01:57:16 restart 01:58:29 i wish the hyperspec had examples... 01:58:53 it does have 01:59:03 lnostdal [~lnostdal@90.149.113.175] has joined #lisp 01:59:04 -!- leo2007 [~leo@soup.linux.pwf.cam.ac.uk] has quit [Quit: rcirc on GNU Emacs 22.3.1] 01:59:11 although they're not normative 02:00:57 stassats: i don't see anything for restart 02:01:16 are they in a place in the document by themselves? 02:01:34 stop sbcl, start anew 02:01:43 yates, if you're in slime, try ,restart 02:02:16 -!- HET2 [~diman@chello084114129176.4.15.vie.surfer.at] has quit [Quit: This computer has gone to sleep] 02:02:27 Adlai: thanks! 02:03:10 stassats: are you suggestion i use something other than sbcl ? 02:03:16 s/suggestion/suggesting/ 02:03:32 yes, a new instance of sbcl! 02:03:50 yes, well sure, that would work. 02:04:13 Adlai hit it on the spot, though, since starting anew would mean restarting emacs, which is a bit of a pig 02:04:39 (at least it is with my init.el file...) 02:05:01 -!- phax [~phax@unaffiliated/phax] has quit [Quit: Leaving] 02:05:23 you have a strange init.el 02:08:34 it's not THAT fat, but still, four seconds is a long time to wait... 02:10:02 i mean that you needed to restart emacs to restart sbcl 02:10:16 stassats: where is the example here?: http://www.lispworks.com/documentation/HyperSpec/Body/t_rst.htm#restart 02:10:27 -!- cupe [~cupe@zenhase-1-pt.tunnel.tserv6.fra1.ipv6.he.net] has left #lisp 02:10:50 yates: that's a different thing... 02:10:58 stassats: we're going circular, that's why i was asking the original question! 02:11:47 oh... 02:12:48 how do you break circularities ? 02:13:36 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 02:13:36 what is "circularities"? 02:13:53 ctrl+c 02:14:04 or i think *print-circle* 02:14:06 a good question 02:14:30 yeah *print-circle* t 02:15:00 bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has joined #lisp 02:15:05 Abort, Retry, Fail ? 02:15:11 sepult: so what did you mean by "break circularities"? 02:16:13 minion: logs? 02:16:13 logs: #lisp logs are available at http://ccl.clozure.com/irc-logs/lisp/ (since 2008-09) and http://tunes.org/~nef/logs/lisp/ (since 2000) 02:16:52 -!- timor [~timor@port-87-234-97-27.dynamic.qsc.de] has quit [Quit: Leaving.] 02:17:06 -!- ignas [~ignas@ctv-79-132-160-221.vinita.lt] has quit [Ping timeout: 272 seconds] 02:17:15 when a depends on b and b depends on a, neither a nor b is installed, doing a install of either a or b would break 02:17:16 the dependency cycle hell or not ? 02:18:34 -!- ChanServ has set mode +o drewc 02:19:18 how do you break: by not creating them 02:20:12 it's not my creation, the devil send them to me ! 02:20:54 -!- c|mell [~cmell@cpc3-colc5-0-0-cust193.colc.cable.ntl.com] has quit [Ping timeout: 272 seconds] 02:21:15 and shows me his fork if i don't do beak! 02:21:25 what have this question to do with lisp? 02:21:29 break 02:22:02 another good question 02:22:56 drewc: what do you like about categories? (did I ask that already?) 02:24:09 -!- fiveop [~fiveop@e179162004.adsl.alicedsl.de] has quit [Quit: humhum] 02:26:08 -!- balooga1 is now known as balooga 02:27:41 -!- nyef [~nyef@pool-64-222-146-224.man.east.myfairpoint.net] has quit [Quit: G'night all.] 02:30:28 -!- ikki [~ikki@200.95.162.194] has quit [Quit: Leaving] 02:31:15 what's a "slot"? 02:31:41 sykopomp: i'm not sure you did... but i like that fact that it formalizes protocols, which are currently a design pattern more than a language constructe 02:31:49 minion: tell yates about pcl 02:31:50 yates: have a look at 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). 02:32:01 yates: please read a book 02:32:13 drewc: the formalization of protocols does look nice, though, but is CLOS that different in that sense? 02:32:27 the difference here seems to be that the protocol also defines the type names? 02:32:28 drewc, "... not a sports page, not a magazine"? 02:32:51 (and the compute-class-precedence-list) 02:32:59 sykopomp: yes, extremely. in CLOS, representation and taxonomy are all mixed up 02:33:33 drewc: I see. 02:33:45 in CLOS, you create a type and implement the protocol. In categories, you create a protocol and implement the type 02:34:15 drewc: do you? You can do DEFGENERIC before ever writing the class. 02:34:34 that is to say, one structure can have many types depending on what protocols (functions) are implemented for it. 02:34:46 sykopomp: http://mikelevins.livejournal.com/3678.html 02:34:50 and doesn't categories then mix up protocol and taxonomy? 02:35:09 sykopomp: DEFGENERIC does not define a type 02:35:33 no, but it defines a protocol that you can then write classes you intend to use for dispatch. 02:35:53 (classes defining types and also defining representations, as you said) 02:35:56 sykopomp, CLOS has no concept of 'protocol' 02:36:01 Categories does. 02:36:10 exactly. 02:36:25 I suggest thinking of class and type separately where possible. 02:36:43 drewc: so protocol involves implementation as well? 02:36:57 sykopomp: what if i have two structures that are identical in every way, save for the name of the class. 02:37:09 -!- spacebat [~akhasha@ppp118-210-175-124.lns20.adl6.internode.on.net] has quit [Ping timeout: 260 seconds] 02:37:11 SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has joined #lisp 02:37:39 in CLOS, methods written for on structure will not be called for the other structure without involving a change-class 02:38:04 because although the represtation is the same, the taxonomy is different. 02:38:59 spacebat [~akhasha@ppp121-45-120-246.lns20.adl6.internode.on.net] has joined #lisp 02:39:24 drewc: I think of that as different, though. 02:39:51 You can have two objects which are really separate and you don't intend to fit the same interface, but structural equivalence would make a certain method applicable for both. 02:40:11 plus, does categories even implement structural equivalence? Doesn't it still deal with names? 02:40:35 you are missing the point... it allows me to separate structure from taxonomy. 02:40:47 dynamically 02:41:25 sykopomp: if you fail to understand Categories, it's really hard to explain what i like about it :) 02:41:29 rickmode [~rickmode@cpe-76-167-41-163.socal.res.rr.com] has joined #lisp 02:41:49 drewc: it's helping me understand better :) 02:41:50 hefner [~hefner@ppp-58-9-115-101.revip2.asianet.co.th] has joined #lisp 02:43:06 still, I'm kind of confused as to what kind of tangible effect this would have on code or how it's structured. 02:43:46 -!- abugosh1 [~Adium@2002:cee1:66e7:b:21b:63ff:fec5:5b19] has quit [Ping timeout: 248 seconds] 02:43:55 sykopomp: i suggest you spend some time in a functional language... haskell is a good one. 02:44:09 Hey when hunchentoot bombs with an internal server error - is there a log or message somewhere? In my case I'm using rucksack incorrectly (using an object between with-rucksacks) so I anticipated this would be a problem... but I assumed there's be some sort of logging. 02:44:34 /tmp/hunchentoot.log 02:44:34 drewc: that's not a bad plan. 02:44:36 rickmode: there is probably a swith to turn on the debugger 02:44:41 I think I'll do that, thanks. 02:45:54 -!- Edward__ [~Ed@AAubervilliers-154-1-47-108.w90-3.abo.wanadoo.fr] has quit [] 02:48:38 sykopomp: it will help to stop thinking of 'type' having anything to do with TYPE-OF or CLASS-OF , which i think it what you're missing 02:49:31 drewc: you mean of types not being concrete identifiers for the 'kind' of object? 02:49:35 dnolen_ [~dnolen@ool-18bc2fa9.dyn.optonline.net] has joined #lisp 02:50:02 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Ping timeout: 272 seconds] 02:50:02 -!- dnolen_ is now known as dnolen 02:50:09 no, i mean types having nothing to do with objects 02:50:10 gigamonkey [~gigamonke@adsl-99-169-81-8.dsl.pltn13.sbcglobal.net] has joined #lisp 02:50:37 ah 02:50:42 that is a little strange, yes... 02:51:05 would an object still not be associated with one or more types in a system like this, though? 02:51:12 (even if not _explicitly_) 02:52:03 drewc: I will ask something different - is there a bit of (possibly practical) code that you can show as illustration, without requiring NDA? :) 02:52:30 p_l: what do you mean... using categories? i don't use categories.... 02:53:07 drewc: Ah, I got a parse error somewhere (suspected stack smashing) ;-) 02:53:57 (though I'd like to see if you have more practical examples of monads in CL) 02:54:23 drewc: FWIW, I'm off buzz. 02:54:25 LET* is a pretty practical example of a monad in CL :P 02:54:29 gigamonkey: over it? 02:54:41 drewc: Haha, yes, I remember :D 02:54:41 gigamonkey: or something specific bug you? 02:55:10 drewc: the UI annoyed me, and the ham-handed lack of attention to privacy in the roll out irked me. 02:55:23 And I didn't really see how it was any better than Twitter. 02:55:35 drewc: I meant stuff that isn't similar to the "normal" CL code 02:56:56 p_l: well, the whole point of monads is to make abnormal (pure functional) code look normal, so in CL we don't have that much of a need for monads. 02:57:22 the impurities of CL permit an omission of monads. 02:57:32 yay cl. 02:58:19 drewc pasted "monads in cl?" at http://paste.lisp.org/display/94890 02:59:43 p_l: so, monads are really useful for adding something to a language that doesn't have it, but can be made to look like it does. 03:00:42 In CL, i use the continuation monad to emulate continuations, and since monads look like LET*, CLET* can use contiuations but look to a lisper like a LET* 03:00:43 kinda like continuations are useful for pretending you have block/return-from? ^_^ 03:01:13 drewc: ok. 03:01:14 sykopomp: you fail to understand what a continuation is if you think it can be emulated with lexical blocks :P 03:01:32 drewc: did I say you can emulate continuations with block/return-from? 03:01:38 *p_l* should stop trying to ask questions when he definitely runs on fumes 03:01:40 anyone ever tempted to (defun no (x) (not x)) to make their conditionals read nicer? 03:01:54 hefner, paul graham 03:02:07 figures. 03:02:12 Adlai: doesn't he use ~? Or is that for #'complement? 03:02:16 sykopomp: fair enough, you didn't... but you conflated them :) 03:02:24 drewc: did not. 03:02:35 sykopomp, ~foo is for (complement #'foo), (no foo) is (not foo) 03:03:18 drewc: continuations are a very general construct that can do more than block/return-from, but one of their uses is to implement block/return-from. 03:04:03 monads are also very general, and can be used to implement sequential behavior 03:04:19 but that doesn't mean that having sequential behavior means you can implement monads with it :) 03:04:37 sykopomp: if you say so. catch/throw is probably a more common use, as there are simpler ways to achieve block/return-from. 03:05:11 hmm. paredit doesn't deal with #| |# comments very well. 03:05:19 in any case, you can always implement that crappy continuations-wannabee with block/return-from :D 03:05:51 sykopomp: how do you reify the stack using block/return-from? 03:06:06 -!- brennanc [~brennanc@65.203.131.114] has quit [Quit: brennanc] 03:06:19 drewc: you don't but you pretend you can implement an ad-hoc, incorrect, buggy version of call/cc to make yourself feel better. 03:06:22 drewc: in rucksack, it looks like putting nesting WITH-TRANSACTION might be costly... is this a concern? 03:06:25 devinus [~devinus@cpe-66-25-177-158.austin.res.rr.com] has joined #lisp 03:06:26 or am i confusing 'continuation-wannabee' with something at all related to continuations 03:06:33 sykopomp: how? 03:06:59 -!- hefner [~hefner@ppp-58-9-115-101.revip2.asianet.co.th] has quit [Quit: wow, screw this] 03:07:04 rickmode: why would you want nested transactions, and what do you expect it to cost? 03:07:12 (And where should i send the bill!) 03:07:23 you guys know of a compiled or jitted bytecode vm common lisp with a recent implementation ? 03:07:30 drewc: (defmacro let/cc (var &body body) `(block ,var (let ((,var (lambda (x) (return-from ,var x)))) ,@body))) this crap. 03:07:39 minion, tell devinus about clisp 03:07:40 devinus: direct your attention towards clisp: CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe University and Michael Stoll of Munich University, both in Germany. http://www.cliki.net/clisp 03:08:43 drewc: let's say I use have 1 function that finds an object, and another that modifies one. I may code to use with-transaction in each and leave the decision of putting both into the same transaction at a higher level 03:09:22 drewc: as far as code, I would want the nested transaction to defer to the outter one (unless I'm specifically trying to do something orthogonal) 03:09:29 er.. as far as cost.... 03:10:11 Adlai: i was looking for something a bit more recent :P 03:10:28 devinus, clisp isn't recent? 03:10:38 sykopomp: what exactly are you trying to show with your let/cc? that blocks have lexical scope? 03:11:08 rickmode: then you don't have nested transactions.. 03:11:11 drewc: ...to clarify, that was a general 'you', not a 'you' as in 'drewc making himself feel betetr' 03:11:13 :| 03:11:51 Adlai: i should have clarified that i meant started within the last within the last decade or so, the wiki says it was first for the atari 03:12:10 devinus, clisp is still under active development. 03:12:12 devinus: why does the start date matter? 03:12:15 sykopomp: yeah. i got who 'you' was, i just don't get what you are trying to do with block/return-from there 03:12:28 sykopomp: return-from is just GO 03:12:35 Ralith: a research project i'm doing 03:12:37 block is TAGBODY 03:13:00 drewc: nothing in particular, nevermind. 03:13:07 devinus: go on 03:13:07 minion, xcl? 03:13:09 abugosh [~Adium@206.225.102.84] has joined #lisp 03:13:10 *drewc* is very confused now 03:13:48 devinus, I don't know how fond you are of C++, but there's http://armedbear.org/ 03:13:49 xcl: XCL is a Common lisp implementation licensed under GPL. http://www.cliki.net/xcl 03:14:04 Ralith: researching how various CL implementations started their implementations, bytecode vm, compiled, etc instead of progressive development 03:14:15 I'm not sure if it's bytecode, though 03:14:30 devinus: LISP is over 50 years old... why the ageism? 03:14:33 devinus: why does that require you to have a recently started one? 03:14:44 -!- balooga [~00u4440@147.21.16.3] has quit [Ping timeout: 272 seconds] 03:14:51 drewc: right - I'm looking for with-transaction (or something similar) to ensure I'm within a transaction (create one if there isn't one defined in this scope).... perhaps I should leave the with-transaction bit to the highest level code. When not using with-rucksack, this becomes easier. 03:15:11 drewc: a simplistic implementation of very limited continuations with only dynamic extent. 03:15:15 That's a bit like saying that C++ is 40 years old because of algol. 03:15:17 drewc, Ralith: sounds like devinus is doing history, not computer science. 03:15:30 Which seems like a legitimate pursuit. 03:15:37 yes, indeed 03:15:47 rickmode: or, you do this thing we call programming... where you write a MY-PACKAGE:WITH-TRANSACTION that does what you want.... 03:15:51 XCL looks like something i'm interested in for now, thank you all 03:15:51 history ftw. 03:16:10 retrocomputing is much better than just history :D 03:16:27 (although I doubt I could stand a week using only PDP-10) 03:16:29 *gigamonkey* met the guy behind bitsavers the other day. 03:16:31 rickmode: you might even use one of those things ... what's it called? oh yeah... a variable. dynamically scoped would do fine.... 03:16:57 drewc: lol, ok ok... My main question was about the semantics of with-transaction 03:17:04 is discussing elisp here appropriate? 03:17:15 ... wait, I could. Write a text-mode variant of Closure for Maclisp, and I can stand a month on PDP-10 ^_^; 03:17:20 devinus: no 03:17:21 rickmode: M-. and read the code, it's pretty easy to understand what it's doing 03:17:22 devinus: not really 03:17:23 devinus: no 03:17:25 devinus: try #emacs 03:17:26 devinus: #emacs 03:17:33 ok, thanks 03:17:41 wouldn't a discussion of the differences between elisp and cl be appropriate, though? 03:17:56 devinus: though I'd say if you are doing something about the larger history of lisp, some elisp discussion would be okay. 03:17:58 CL wins, next question. 03:18:13 Just not, "How do I fix my .emacs?" kinds of questions. 03:18:15 Adlai: yeah, probably, as long as the discussion revolves around how much better CL is :) 03:18:32 -!- abugosh [~Adium@206.225.102.84] has quit [Ping timeout: 272 seconds] 03:18:46 -!- djinni`` [~djinni`@adsl-71-142-225-118.dsl.scrm01.pacbell.net] has quit [Quit: Coyote finally caught me] 03:18:56 drewc, but I thought you liked dynamic scoping 03:19:15 CL wins, then it loses briefly, then it wins again 03:19:24 Adlai: i also like static scoping... can i have both? 03:19:27 Adlai: as long as it's not mixed with dynamic variables :| 03:19:43 tmitt pasted "untitled" at http://paste.lisp.org/display/94891 03:19:57 i was just researching stallman's decision to use elisp for emacs because of what he experienced with symbolics 03:19:59 cl never wins. it has great 'potential' to win, but it never wins. 03:20:02 trying to make a simple function to read one word at a time from a file 03:20:07 Adlai: out of the three most popular lisps, only one really give me both :) 03:20:10 it's like that great project xanadu. it'll never be. 03:20:27 bjorkintosh: nonsense, CL has already one.. it's you who is the loser :P 03:20:31 won* 03:20:35 drewc: I dunno, PLT has dynamic variables, and I think it even keeps them in a separate namespace? 03:20:36 thanks. 03:20:40 tmitt: that PRINT in READ-CHAR seems wrong. 03:20:46 i like cl though. 03:20:51 so far at least. 03:21:03 sykopomp: PLT is not a scheme or a lisp, so doesn't count 03:21:18 drewc: what's the third lisp, then, clojure? 03:21:22 arc? :) 03:21:25 elisp, scheme, cl 03:21:28 it reminds me of a '70s mercedes. one's always amazed at how modern the damned things are compared to the toys on the roads these days. 03:21:37 drewc: but you've said before that scheme isn't a lisp... 03:21:41 elisp being the most poplular by far 03:21:44 thanks gigamonkey 03:21:49 small l lisp 03:22:17 how did you measure popularity? 03:22:23 javascript is "a lisp", just not "a Lisp" and not "Lisp". 03:22:37 sykopomp, scheme is allegedly algol disguised as a pure dialect of lisp. 03:22:42 lol 03:22:46 stassats: install base, users, lines of code deployed 03:22:55 bjorkintosh: isn't that javascript? >:( 03:23:00 jake-is-a-virus [~chatzilla@24.143.26.144] has joined #lisp 03:23:03 Why is javascript a lisp? 03:23:09 not at all. javascript lacks parenthesis. 03:23:19 drewc: and what are the numbers? 03:23:22 it'd need lots of them to begin to qualify. 03:23:22 Zhivago: because anything that has higher-order functions and is dynamic is a lisp, ofc. 03:23:34 someone said once that JS is a lisp that got packaged into braindamaged syntax 03:23:45 -!- schme [~marcus@sxemacs/devel/schme] has quit [Ping timeout: 276 seconds] 03:23:49 Zhivago: Why is Common Lisp a lisp? Because it has the word "Lisp" in its name? 03:23:56 schme [~marcus@c83-254-198-4.bredband.comhem.se] has joined #lisp 03:23:56 -!- schme [~marcus@c83-254-198-4.bredband.comhem.se] has quit [Changing host] 03:23:56 schme [~marcus@sxemacs/devel/schme] has joined #lisp 03:24:10 *p_l* hates writing something(function(x,y,z){...}) 03:24:22 Well, Brendan Eich was into Scheme but didn't really know much about it when he invented Javascript. 03:24:29 sepult` [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 03:24:32 p_l: maybe we should replace that with #'. It'll be much better, and look a lot more like Lisp. 03:24:40 also, rename it to lambda! 03:24:45 -!- devinus [~devinus@cpe-66-25-177-158.austin.res.rr.com] has quit [Quit: devinus] 03:24:47 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Read error: Connection reset by peer] 03:24:50 And the 'function' keyword in Javascript came from AWK. 03:25:09 There's a book of interviews with Eich and others where you can read all about this and more. ;-) 03:25:16 gigamonkey: wasn't the first JS VM implemented in CL?... 03:25:19 sykopomp, common lisp is a lisp because it IS a lisp. 03:25:29 bjorkintosh: because it has Lisp in its name? 03:25:33 sykopomp: I'm pretty sure not as Eich doesn't know CL. 03:25:34 no. it is a lisp. 03:25:38 stassats: last time i was any research on the subject, elisp comes out ahead with about 75%, followed by scheme at 24% 03:25:42 s/was/saw 03:25:49 dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has joined #lisp 03:25:57 Heh. I think I've mentioned "The Salad Game" in this channel before. 03:25:57 gigamonkey: give me a minute to googleize 03:25:58 sykopomp, it's pedigree suggests strongly that it is. 03:26:20 -!- sepult [~user@xdsl-87-79-117-79.netcologne.de] has quit [Ping timeout: 256 seconds] 03:26:22 Rules: 1. Anything with the word "salad" in it's name is, by definition, a salad. 03:26:26 sykopomp: somebody a netscape wrote the first js in CL.. it's still in the source tree 03:26:32 err 03:26:35 gigamonkey: ^ 03:26:59 sykopomp: what do you think I'm doing? Parenscript is a joy :D 03:27:05 gigamonkey: http://mxr.mozilla.org/mozilla/source/js2/semantics/ Mozilla's old JS interpreter 03:27:07 -!- redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has left #lisp 03:27:13 redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has joined #lisp 03:27:16 that file extension looks a bit suspicious... 03:27:22 2. Now try to define a principled definition of "salad". 03:27:32 drewc, really? are you serious? 03:27:47 judging from debian popcon, gimp (which includes scheme) has 43284 installations, combined installations of emacs2* is 14313 03:27:54 bjorkintosh: about what? 03:28:03 the first JS in cl bit. 03:28:05 gigamonkey: although I'm probably a bit confused about what point in time this came around. 03:28:11 stassats: fair enough, it's been a long time since i saw these numbers 03:28:23 bjorkintosh: look at my link. 03:28:25 stassats: in that time, i can image gimp users have surpassed emacs users :) 03:28:25 I remembered that but I'm pretty sure that wasn't the initial Javascript implementation. 03:28:28 it's still on the intershits. 03:28:47 hmm.... ACL 5.0.1, the same version I have 03:29:06 gigamonkey: http://bc.tech.coop/blog/030920.html 03:29:13 "Mozilla's CVS tree still contains the original implementation of Javascript... written in Common Lisp. I don't have the address handy for it, but I've certainly seen it. Javascript was in that sense a Lisp-based domain-specific language with domain-suitable objects (ad-hoc prototypes and closures)." 03:29:14 The guy Eich handed Javascript off to when Eich went to help found mozilla.org was a Common Lisp head. 03:29:16 -!- sepult` is now known as sepult 03:29:17 bjorkintosh: you find that hard to believe? here's one : Microsoft's .Net Garbage collector was first written in CL then translated to C 03:29:53 whaaat? 03:29:58 Though iirc MS Research uses more OCaml than Lisp 03:29:59 are these things public? 03:30:02 bjorkintosh: postgresql? first written in Lisp 03:30:17 bjorkintosh: you seem to be under the impression that Lisp is an obscure language that doesn't get used at all. 03:30:23 impossible! i'd very much like to see these things for myself. 03:30:31 maybe you should visit orbitz more often (are they still using QPX?) 03:30:31 sykopomp, it IS! 03:30:44 orbitz? 03:30:47 i hate flying these days. 03:30:52 bjorkintosh: both PostgreSQL and Ingres come from the same CL-based database 03:30:55 bjorkintosh: that's interesting, I don't really see it that way. 03:30:57 my 240dl will get me there fast enough. 03:31:13 sykopomp: but that's just wrong. Eich invented and implemented the first Javascript. Waldemar Horwat is the guy who took over after Eich went to mozilla.org. 03:31:24 p_l what's it called? 03:31:31 gigamonkey: that makes sense, then 03:31:47 I didn't ask him what language he used, but I'd bet dollars to donuts it was C, like the rest of Netscape at that time. 03:32:07 Waldemar Horwat (waldemar@netscape.com or waldemar@acm.org) <--- from the readme 03:32:12 bjorkintosh: I don't remember exact name, but it was probably some variant of "Ingres" - PostgreSQL came from portmantau of original name + "Post" + "SQL" 03:32:24 oh i know the origin of the name. 03:32:37 it was helped along by michael stonebraker. but i had no idea it had lisp roots. 03:32:39 btw, one of the biggest Lisp installations is AutoCAD 03:32:43 it was called POSTGRES 03:32:56 gigamonkey: did Eich actually write the first non-trivial implementation, or did he just design JS? 03:32:59 postgresql is almost a lisp 03:33:12 yes, i know of autocad. i think they use the xlisp variant or something... i don't remember clearly. 03:33:40 bjorkintosh: they use their own old braindamaged (no lexical scoping? WTF?) dialect 03:33:48 it has generic functions and classes, and one of the original uses was as a CLOS persistence mechanism. 03:33:55 bjorkintosh: see http://blogs.msdn.com/patrick_dussud/ --- look at the bottom of the page. Dussud is a Lisp guy from way back; I think he was at TI. Anyway, he says on that page "yes the GC prototype [for the CLR] was was written in Common Lisp first and I wrote a translator to convert it to C++" 03:33:58 no lexical scoping? elisp! 03:34:18 i'm intrigued. are there available sources for the lisp-y postgres? 03:34:21 dralston [~dralston@S010600212986cca8.va.shawcable.net] has joined #lisp 03:34:24 drewc: also originally implemented in CL, no? 03:34:30 stassats: AFAIK elisp is considered a heaven compared to AutoLISP 03:34:32 stassats: lexical-let disagrees 03:34:36 gigamonkey pasted "Raw Eich transcripts about original Javascript design/implementation" at http://paste.lisp.org/display/94893 03:34:42 ya 03:34:48 there's another one. 03:34:58 drewc: cl package is deprecated 03:35:05 still, I found some AutoLISP sourcecode even at home :) 03:35:09 -!- JonSmith [~jon@c-71-233-58-7.hsd1.ma.comcast.net] has left #lisp 03:35:09 stassats: they deprecated it?!?! 03:35:18 -!- SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has quit [Ping timeout: 240 seconds] 03:35:19 elisp is dead! Long Live CL. 03:35:33 sykopomp: they don't encourage its usage 03:35:39 stassats: oh? well org-mode uses it extensively and is shipped with emacs 03:35:45 though lately I found that I'll have to re-learn TCL... 03:36:07 -!- Odin- [~sbkhh@s121-302.gardur.hi.is] has quit [Quit: Odin-] 03:36:10 *p_l* <--- haven't touched TCL for over a decade now 03:36:20 A friend of mine who worked on Postgres in grad school told me that when the converted Postgres from CL to C they just ran the code through a Lisp-to-C converter and then lived with the new machine generated code. 03:36:33 bjorkintosh: no, i do not think you'll find sources for the lisp postgres.. they found existing lisp implementations somewhat lacking, so re-wrote in C 03:36:58 anyway, it's an extension to elisp, elisp by itself has no lexical scoping 03:37:02 it was very early in the lifecycle of the project 03:37:13 ah makes sense. 03:37:23 drewc: org-mode wasn't shipped initially with emacs? 03:37:55 stassats: org-mode still isn't shipped with emacs 03:37:58 no, it wasn't AFAIK 03:38:00 why does org-mode rebind all the outline-mode key bindings (or at least the ones I'm used to.) 03:38:09 (or at least the bundled one is lacking) 03:38:16 p_l: my emacs23 came with org-mode 03:38:45 mine too. 03:39:09 very interesting. so this dussud wrote an interpreter to spit out c++ code. 03:39:17 version 6.21b 03:39:20 i am light years away from pulling off such badassery. 03:39:22 bjorkintosh: those are called compilers 03:39:35 heheh of course. but i'm assuming it was from cl to c++. 03:40:14 yes, he wrote a compiler for a small subset of CL to C++ 03:40:56 bjorkintosh: not that hard a task, see "The 90 minute scheme to C compiler" 03:41:17 bjorkintosh: that said, if you are light-years away, given our current technology... i would't bother. 03:41:42 Writing compilers from Lispy languages to anything is always easier than you think since you're starting with an AST. 03:41:56 And have a bunch of functions in the language for manipulating those trees. 03:42:27 once you're written a lisp->c compiler, any C code you write after that will end up looking a lot like the output from that compiler :) 03:42:34 lol 03:42:35 you've* 03:43:13 drewc: what about writing a macroassembler, parenscript-style? :) 03:44:31 jleija_ [~jleija@adsl-91-1-200.chs.bellsouth.net] has joined #lisp 03:44:38 p_l: IIRC, the assembler in Movitz is worth looking at 03:45:03 *p_l* would love a macroassembler that would have macroexpand-1. Especially in place of Interactive-C that he has to use on the 68HC11 03:45:11 -!- jleija [~jleija@adsl-243-224-39.chs.bellsouth.net] has quit [Ping timeout: 245 seconds] 03:45:32 weird 03:46:08 68hc11? isn't that a bit old? 03:46:10 Interactive-C doesn't even fit the cpu underlying it - ints are 16bit & 32bit, while the cpu is 8bit but you can gang two accumulators as a 16bit register 03:46:15 or am i mistaking it for the 68k? 03:46:34 bjorkintosh: It's a microcontroller, quite old one, but cheap and widely available 03:47:30 and we have to wait till 3rd assignment to be allowed usage of anything other than HandyBoard kit (68HC11, 32kb RAM, a set of I/O devices) 03:48:10 the winter olympics are happening just down the street, and i'm more excited that Linares starts tomorrow! 03:48:16 -!- jake-is-a-virus [~chatzilla@24.143.26.144] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20100106054534]] 03:48:43 drewc: if not for Rizon and Google, I wouldn't notice that the olympics are happening 03:49:04 jake-is-a-virus [~chatzilla@24.143.26.144] has joined #lisp 03:49:25 -!- jake-is-a-virus [~chatzilla@24.143.26.144] has quit [Client Quit] 03:49:34 p_l: i can't help but notice, given that the city looks like a potential warzone and there are a few million extra people around. 03:49:57 jake-is-a-virus [~chatzilla@24.143.26.144] has joined #lisp 03:49:59 tgoodsell [~tgoodsell@173.48.205.68] has joined #lisp 03:51:04 -!- tgoodsell [~tgoodsell@173.48.205.68] has quit [Client Quit] 03:51:21 tgoodsell [~tgoodsell@173.48.205.68] has joined #lisp 03:51:22 ska` [~user@203.146.146.169] has joined #lisp 03:51:24 drewc, thanks for the bit on the 90minute scheme thingy. 03:52:13 haha. Potential warzone. 03:52:36 some guy even died today! 03:52:58 p_l, haven't you ever seen munich? 03:53:12 the movie, ie. 03:53:21 Reminds me that soon I might be under possibility of getting shot by an UCAV that I was (very indirectly) involved with. 03:53:27 bjorkintosh: nope 03:54:17 ah it's a movie about the olympics and the sort of warzone it can be. 03:54:42 -!- benny [~benny@i577A8FDD.versanet.de] has quit [Ping timeout: 240 seconds] 03:54:44 the dumb jocks have to be protected or else no shiny medals for them. 03:56:03 That is a peculiar synopsis. 03:56:37 it's the tl;dr version :D 03:57:23 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 03:57:48 alright fine. it's about a bunch of attention whores. 03:57:53 that's a far more complete synopsis. 03:57:57 let's talk about lisp 03:58:21 -!- bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has quit [Ping timeout: 260 seconds] 03:58:40 bjorkintosh: lurk harder please 03:58:51 :) 03:59:07 bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has joined #lisp 04:01:00 fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 04:01:35 -!- TR2N [email@89.180.192.75] has left #lisp 04:03:53 drewc: regarding assemblers - It would be nice to have an assembler that doesn't require the whole compiler system - AFAIK it's one of the things that stop SBCL from possibility of dumping core without Python (CLOS calls compiler in few places) 04:06:00 -!- fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Ping timeout: 256 seconds] 04:06:31 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: Leaving] 04:08:00 p_l: in the case of CLOS, it's not that it needs to generate machine code.. it needs to compile lisp code 04:08:40 this is because of make-method-lambda and is arguably wrong, but we're stuck with it for now. 04:09:06 amnesiac [~amnesiac@p3m/member/Amnesiac] has joined #lisp 04:09:32 -!- gigamonkey [~gigamonke@adsl-99-169-81-8.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 256 seconds] 04:09:43 PatrickMcLaren [~Patrick@ppp118-209-226-91.lns20.mel6.internode.on.net] has joined #lisp 04:09:48 -!- PatrickMcLaren [~Patrick@ppp118-209-226-91.lns20.mel6.internode.on.net] has quit [Client Quit] 04:09:54 drewc: but for a dumped image that doesn't require compilator functionality? 04:10:37 -!- tgoodsell [~tgoodsell@173.48.205.68] has quit [Quit: tgoodsell] 04:13:33 p_l: for CLOS (well, really PCL or any other AMOP compliant CLOS) you need a way to (compile nil `(lambda (foo) ...)). If you're not shipping a lisp compiler, you'll need to ship a lisp interpreter 04:14:25 devinus [~devinus@cpe-66-25-177-158.austin.res.rr.com] has joined #lisp 04:14:36 but yeah, a simple assembler would be nice 04:14:42 :) 04:14:58 drewc: would you consider clojure to be a big "L" lisp? 04:17:18 drewc: "normal sized" usage right now for such assembler/language system I have thought of lately is reduction of FFI latency by packaging FFI calls in one Lisp->FFI call where possible 04:17:50 ("small size" being generating code for microcontrollers etc. where you can't fit CL properly) 04:17:53 lpolzer__ [~lpolzer@dslb-088-073-234-202.pools.arcor-ip.net] has joined #lisp 04:17:57 hadronzoo [~hadronzoo@64.134.146.34] has joined #lisp 04:18:04 -!- lpolzer_ [~lpolzer@dslb-088-073-236-015.pools.arcor-ip.net] has quit [Read error: Connection reset by peer] 04:19:55 it would make for an interesting experiment, at least 04:20:45 devinus: clojure is half a Lisp 04:20:54 devinus: it's good half, of course. 04:21:12 its* 04:21:17 drewc: what would you say it's missing, if anything worthwhile? 04:21:36 devinus, the cl synonyms, i bet. 04:21:46 the many-ways approach. 04:21:47 it's missing a couple of namespaces and an implementation that doesn't rely on a language i hate 04:21:52 hehe 04:22:10 i thought it depended on the jvm, not java itself. 04:22:46 tmitt pasted "reading words from a file one at a time -- not working" at http://paste.lisp.org/display/94895 04:22:57 bjorkintosh: backtraces are java backtraces, classes are java classes.. any non-trivial clojure program i've read called some java in some way 04:23:19 SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has joined #lisp 04:23:22 indeed 04:24:48 tmitt: why DO ? 04:24:56 because I do not understand loop :/ 04:25:27 -!- marioxcc [~user@200.92.23.60] has quit [Remote host closed the connection] 04:26:02 hah 04:26:03 drewc: what do you think of the idea of clojureclr? Do you hate C# any less than you do java (I know they are very similar)? 04:26:04 found the problem 04:26:06 in my whitespace-p 04:26:20 (char-equal #\Tab) 04:26:57 jake-is-a-virus: i don't mind the CLR, but why should i care? Why should i bother looking at clojure at all when CL can do everything it does, but it cannot do half of what CL can? 04:27:24 i tried clojure, said 'neat.. if i need java i might look at this again', and went back to programming in CL. 04:27:25 Clojure has some great things that you can rip off and put in CL (like the const-hash-table, which I use myself in CL) 04:27:36 Oh, I am not saying that you should. Just curious. 04:27:49 Modius: you mean reader syntax for literal hash tables? 04:27:53 Like with syntax, he made some choices - maybe they're great choices; but also they were biased by having Java under it 04:27:58 drewc: No, I mean immutable hash tables. 04:28:12 drewc: In my heresy library (dunno if I documented it) but it has const-hash-table 04:28:22 Modius: oh, yeah... immutable data structures are a good idea... 04:28:30 but i don't need clojure for that 04:28:34 drewc: Exactly 04:28:52 drewc: The immutable hash is wonderful - gets rid of the unease of having an infinitely growing a-listp 04:29:04 besides working with tightly java, what does clojure offer over CL? 04:29:10 tightly with& 04:29:12 bah 04:29:30 *drewc* is typing too fast for his own good 04:29:42 Socially, it's hip - there's a lot of momentum and noobs writing relevant libraries. 04:29:48 -!- SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has quit [Ping timeout: 256 seconds] 04:30:00 yeah 04:30:02 that is one thing i am glad we don't have 04:30:04 Ironically, it was originally touted for its Atomic - but noone I hear is talking about that as much as "JVM" 04:30:26 i've looked at the quality of all these relevant libraries.... 04:30:30 if you go to a party and tell a girl "I'm learning clojure", she wants to talk to you, but if you tell her "I write code in common lisp", she thinks "grandpa" 04:30:35 I imagine a lot of it is people writing wrappers over proven libs, at least the underlying is probably okay. 04:30:45 and found them to not be relevant or quality 04:30:51 Either way she'd think you're a tool but that's another story :) 04:31:01 :P 04:31:06 Modius: the underlying? you mean the Java libraries? 04:31:18 drewc: Yeah, if you can get noobs to do all the wrapping dirtywory 04:31:20 work 04:31:21 have you seen the quality of the stuff coming out of java shops? 04:31:24 it's crap too 04:31:37 so newbies making crappy wrappers for crap libraries.... 04:31:47 doing things in lisp the java way... 04:31:56 what does this offer for a working lisp programmer? 04:32:09 What troubled me too were the arbitrary choices being made at the lang level. I've done a lot in multiple languages with "lazy lists". Can't think of one good solution that solves all the problems. Clojure went the "first element evaluated" route, then went another. Probalbly has a great solution enshrined now; but that's the point, a lot of decisions *are* enshrined in the language. 04:32:31 drewc: That's what I've learned though looking at JVM and CLR languages - the platform dictates a lot to the language 04:32:52 "I want Java calling stacks" "I want CLR classes" 04:33:04 exactly 04:33:07 so, i guess i need to rewrite *again* (goddamnit) http://pastebin.com/me470b52 04:33:07 Maybe they're the best but if for any reason you wanted something else you'd be boxed in a corner. 04:33:12 i don't want either of those, i want lisp! 04:33:31 if someone told me i _had_ to write something in Java, i'd tell them to go fuck themselves. 04:33:41 drewc: well spoken bruce! 04:34:00 The other thing that drives the popularity - and don't get me wrong, all added up Clojure may be better for making practical apps than CL - but the appeal comes from people, like with python, who prefer the decisions that make it closer to the language they just came from. 04:34:16 Demosthenes: looks like you ran out of heap space. try using less memory ;) 04:34:33 wow, and i had this argument yesterday, it seemed to go "Xach: buy memory" 04:35:07 And I don't mean to diminish the great efforts of RHickey in all this, he has made a great product that is helping people - and as people have said, I'd take it over straight Java any day of the week. 04:35:10 drewc: What about clojire? 04:35:13 -!- jleija_ [~jleija@adsl-91-1-200.chs.bellsouth.net] has quit [Ping timeout: 264 seconds] 04:35:14 clojure 04:35:18 Modius: I personally don't think popularity is an end, or even a means to an end. 04:35:29 wgl: scroll up :) 04:35:51 wgl: that's what were talking about :) 04:35:58 -!- dreish [~dreish@minus.dreish.org] has quit [Quit: dreish] 04:36:14 drewc: That's the problem - we may be coming from a perspective of certain expectations wrt what's at the language level or macro power etc. Popularity comes from appealing to people who think in Java (although with const-containers Clojure will probably clean up a lot of the people who think in Java if they give it a shot) 04:36:37 I agree with your sentiment. In fact, as we speak, I am working on an assignment that requires interface to a java RMI and we are going to crack open the clojure repl shortly. 04:36:53 wait, the garbage collector should throw away all my let variables as soon as i'm done. i'm not *keeping* anything global. 04:37:19 My other concern - and maybe this is changing - is that lib-level things that need performance need to be written imperatively - it couldn't get its full speed in Clojure and needed Java libs even for non-IO (note I saw Clojure had added some imperative areas of code so this may have changed) - but that would mean it's moving back toward being imperative. 04:37:24 Modius: if CL were popular, it would be crap... not because popularity makes things crap, but because massive acceptance is only possible with mediocraty 04:37:26 I gave it a good look a year ago. 04:37:39 In many ways CL is crap. 04:37:43 Sorry for jumping in the middle. 04:37:47 Zhivago: very true 04:38:02 Zhivago: local optimum, and all that. 04:38:11 drewc: I find it interesting reading the posts from the people originally involved in the spec, looking at the tradeoffs in various decisions. They weren't arguing parens vs square-brackets or stupid s**t like that. 04:38:21 Zhivago, I'd like to hear more about your macro-power stuff. 04:38:46 Sorry, have to run away for a while. 04:38:50 cl vs scheme is something i'm curious about 04:38:50 Modius: no, they were arguing about special variables and COMPLEMENT :P 04:38:56 Zhivago: Think about a writeup 04:41:09 Demosthenes: clojure is definately a lisp... defmacro and code is data... scheme is arguably not lisp, as scheme source code is characters in a file IIUC 04:41:25 drewc: ? 04:42:05 scheme surely can eat it's own tail. 04:43:55 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 04:45:15 Shaftoe [~Moe111@bas1-montreal02-1096726543.dsl.bell.ca] has joined #lisp 04:46:20 SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has joined #lisp 04:46:25 i never heard of newlisp... (reading a rant on scheme vs cl) 04:48:00 Demosthenes: you don't need to know about newlisp unless you want to learn what not to do 04:48:18 *rlonstein* tests 04:49:11 Modius: a lot of the decisions made by the CL commitee were related to backwards compatiblility. Another set of arguments were about reducing redundancy. The two factions never did see eye to eye. 04:49:26 wow, newlisp has replace, and builtin regexp 04:49:44 Demosthenes: ohh! it must be a good language! 04:49:57 (what is replace?) 04:49:57 drewc: I didn't mean that compatibility wasn't a major factor - my point though was that the decisions seem to have been made by and for people whe were all macro gods - the appeal to Enterprise Javamonkeys did not appear to be a factor. 04:50:25 Modius: no, but appeal to the symbolics monkeys was a big factor ;) 04:50:40 Modius: remember who was behind Java, after all.... 04:50:58 Steele and Gosling.... 04:51:01 drewc: replace a substr in a string, w/o regexp 04:51:13 drewc: Java had to be Java to get C programmers in. 04:51:25 drewc: It was a sound choice. 04:51:37 (replace "bc" "derp" "abcde") -> "aderpde" 04:51:40 jmbr____ [~jmbr@160.33.220.87.dynamic.jazztel.es] has joined #lisp 04:51:41 so clojure has to be clojure to get java programmers in 04:51:49 drewc: I won't claim Java did anything wrong (well, except checked exceptions which were fatal) 04:51:53 drewc: Right 04:51:57 gotcha 04:52:20 drewc: But like Java, someone whose toolkit/base is elsewhere would look at it differently. 04:52:36 I still like the stuff he did with functional/atomic; but the audience doesn't seem to care. 04:53:08 yeah, the intersting bits of clojure are actually haskell 04:53:20 Demosthenes: wow, a trivial function! 04:53:27 must be a great language. 04:53:40 -!- ska` [~user@203.146.146.169] has quit [Remote host closed the connection] 04:53:48 Demosthenes: it must be much better than CL if it includes trivial functions and regexps! i suggest you go bother #newlisp :) 04:54:03 waitwait 04:54:08 what if I modify CL to include a web browser? 04:54:09 beat that! 04:54:12 Certainly, when I hear of some cool thing (like some string parsey thing) in a core library, I'm interested if the language could ACOMMODATE a good library that included it more than having it included in the standard; but many look at things packed into the standard as a boon. 04:54:48 -!- jmbr___ [~jmbr@22.32.220.87.dynamic.jazztel.es] has quit [Ping timeout: 272 seconds] 04:54:49 Modius: am i the only programmer left who likes to program? 04:54:50 For example, there are many who would consider it cool if (say) Hunchentoot were added to the language standard - it'd get cool press - "CL standard updated at last" 04:55:26 Modius: those are not the kind of programmers i want to work with, around, or participate in a community with. 04:55:30 ^ 04:55:46 Ralith, doesn't emacs come with a browser? 04:55:51 it's been done i think. 04:55:55 bjorkintosh: don't think so. 04:56:00 there exist several, though 04:56:05 emacs cannot browse the web?! 04:56:12 of course it can! 04:56:16 drewc: Either is a step up from my world (MS-shop enterprise) 04:56:19 just probably not on a fresh install. 04:56:23 ah. 04:56:25 Modius: ouch. 04:56:40 Modius, at least you're getting paid. 04:56:51 I get paid, and get to work remote/at home. 04:56:56 see? 04:56:57 Modius: i made a decision early in my career to avoid working in MS or Java shops :) 04:56:58 not so bad. 04:57:08 Modius, c#? 04:57:09 drewc: if you don't mindwhere do you work? 04:57:17 i'd rather be broke than work in Java! 04:57:29 Ralith: right here! 04:57:33 drewc: I'd draw the line at Java; but only as C# with functional goodies makes it quite bearable - although "normal" C# programmers don't tolerate such code (only reason I can do it is because I'm the manager) 04:57:37 drewc: ...being? 04:57:44 you say that now, but: -have- you been broke rather than work in java? If the situation actually arises, you might change your mind :). 04:57:57 Modius: kudos for no doubt introducing people to it 04:58:05 Ralith: Vancouver, BC, on a sailboat about 20 miles up the Fraser River. 04:58:14 drewc: that's pretty awesome. 04:58:24 drewc: what I meant to ask, however, was: who pays you? 04:58:43 I'd go back to C++/games before doing Java 04:58:52 Modius: /games? 04:58:58 Ralith: My background. 04:59:02 was it bad? 04:59:08 Modius, are you using f# then? 04:59:11 Ralith: Well, better than Java. Hours etc. 04:59:15 Bjorkintosh: No, C# 3 04:59:16 Ralith: well, i pay myself.... my clients provide the money though. 04:59:20 ah 04:59:28 drewc: so you freelance? what sort of work? 05:00:00 Modius: how long ago was this? I was under the impression that the games industry was getting better about that. 05:00:04 bjorkintosh: You start using Linq or passing around functions in a normal MS shop programming crowd they'll lynch you. 05:00:19 Ralith: i wouldn't call it freelancing so much as consulting and contracting. 05:00:29 Ralith: Games is still C++, although now you probably don't get nailed to a cross for using smart pointers any more. It's been 5-6 years for me. 05:00:42 Ralith: the type of work varies depending on the client. 05:00:55 drewc: you don't regularly work in lisp, then, I take it? 05:00:59 Ralith: No, they'll always have the hours. 05:01:14 Ralith: pretty much excluslivly lisp actually 05:01:16 Modius: just 'cause deadlines? 05:01:28 drewc: I'm impressed that you can find that many contracting jobs in lisp. 05:01:49 Ralith: what makes you think i had to find contracting jobs in lisp? 05:01:51 borism [~boris@213-35-233-122-dsl.end.estpak.ee] has joined #lisp 05:02:03 Ralith: i don't tell my plumber what brand of solder to use 05:02:07 Adlai` [~adlai@unaffiliated/adlai] has joined #lisp 05:02:23 Ralith: and, actually, most of my clients come to me :) 05:02:29 ooh, nice. 05:02:34 Ralith: Intertwined workflows. You have to stick around so that when blahblah art goes in and blahblah resource is compiled you can do your bit to fix the bug in blahblah. 05:02:39 -!- amnesiac [~amnesiac@p3m/member/Amnesiac] has quit [Quit: Leaving] 05:02:40 drewc, how did they find you to begin with? 05:02:50 bjorkintosh: how did you find me? 05:02:56 IRCle. :) 05:03:03 drewc: I had imagined that most clients would care about the tech you used in the interest of maintenanceand lisp being relatively obscure these days, the challenge of finding maintainers might be offputting. 05:03:05 -!- borism_ [~boris@213-35-234-36-dsl.end.estpak.ee] has quit [Ping timeout: 258 seconds] 05:03:23 Modius: sounds like a solvable problem, 05:03:25 Ralith: maintainers? they pay me to do that.... 05:03:31 drewc: long-term? 05:03:32 Ralith: Have fun with that. 05:03:38 Modius: fair enough :P 05:03:41 -!- Adlai [~adlai@unaffiliated/adlai] has quit [Ping timeout: 260 seconds] 05:03:50 Ralith: i usually sign 10 year support contracts 05:03:58 nice 05:04:15 sounds like you're living the dream, more or less 05:04:19 Ralith: how hard is it to find maintainers? have you tried? 05:04:25 I haven't the slightest clue 05:04:28 that's why I'm asking ^^ 05:04:44 10 year support contracts? holy crap. 05:04:56 Ralith: personally, i've had no problem finding lisp developers to hire when i've had to hire 05:05:09 I'm in univ right now and I'd love to make a career of working in lisp, but I have the impression that that's rather hard to do. 05:05:21 Ralith, do AI! 05:05:23 Ralith: it's easy, you just have to actually want it 05:05:43 drewc: anecdotally, it does seem like you're more connected in the lisp community than your average hiring manager. 05:05:51 drewc: also, what do you mean by that? 05:05:52 Ralith: but i bet what you want is a salary and a comfortable easy life... and to work in lisp.... 05:05:53 drewc: that's just the spec, we need an implementation ;) 05:06:01 drewc: ah. 05:06:18 bjorkintosh: is lisp really common in AI anymore? 05:06:23 Ralith: i literally _refused_ to do work in languages i didn't want to work in. 05:06:26 bjorkintosh: I was under the impression that the winter ended that. 05:06:31 -!- Adlai` is now known as Adlai 05:06:42 drewc: damn; I'm *very* surprised that that worked out. 05:06:44 -!- sellout [~greg@c-24-128-48-180.hsd1.ma.comcast.net] has quit [Quit: sellout] 05:06:46 aja [~aja@unaffiliated/aja] has joined #lisp 05:07:10 the winter fossilized a lot of things. 05:07:27 Ralith: food and rent are pretty motivating factors... you'd be surprised what you are capable of 05:07:31 but, i think things might change slowly again. 05:08:04 I wouldn't mind if I could cross-step into a place full of smart people doing F# 05:08:09 drewc: it seems that they wouldn't necessarily be motivating towards impressive feats of profitable lisping in particularbut I suppose taht's where "actually wanting it" comes in. 05:08:14 I mean, since Bill G. said functional is okay. . . . 05:08:32 bjorkintosh: might, but haven't yet, I think. 05:08:38 Drewc said "kind of people". A certain "kind of people" sure wouldn't be moving development to F# 05:08:39 not that I know anything about that industry. 05:08:44 Modius, they'd most likely be working for some large wallstreet douchebags. 05:08:53 -!- mattrepl [~mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has quit [Quit: mattrepl] 05:09:00 bjorkintosh: I could go for that. 05:09:02 bjorkintosh: you have no idea what you are talking about. 05:09:20 somnium [~user@adsl-1-30-191.dab.bellsouth.net] has joined #lisp 05:09:24 drewc, so who else uses f#? 05:09:52 bjorkintosh: last I checked, C++ was the AI lang du jour 05:09:57 bjorkintosh: It's quite popular with the research community in my experience 05:09:58 bjorkintosh: Jane Street. 05:10:02 sykopomp: seriously? dear god O.o 05:10:02 It's plausible smarter folk locked in C#-land could migrate to it. If you're coding C# like I am F# is just a way to do it with less typing 05:10:29 I like C#, and F# is pretty cool too. pity about the microsoft association :) 05:11:27 Ralith: you make choices in life... some are easy, some are hard.... choosing not to work in Java was pretty easy :P 05:11:27 05:11:53 BTW - everything I've been talking about has nothing to do with "Microsoft is evil" or any of that drek, just the tech, the kind of work, and the people attracted to it. 05:12:33 http://bits.blogs.nytimes.com/2010/02/12/barbies-next-career-computer-engineer/?emc=eta1 05:12:42 drewc: pulling it off strikes me as less so. 05:12:42 (some might find that interesting) 05:12:49 The worst part of Java is working with people who *think* in Java. "Why didn't you use an abstract factory pattern blah blah" 05:12:59 Ralith: that, and it seems Python is gaining popularity, too. 05:13:08 "You need to name more of your classes ***Manager and Abstract****Factory" 05:13:12 sykopomp: that seems like a good thing to me 05:13:18 python is relatively sane, no? 05:13:35 Ralith: I mean the language, not the compiler. Sorry about the confusion. 05:13:40 Ralith: A lot of easy things are not worth doing... and you'd be amazed what you can pull of when you are convinced you can. 05:13:40 you can reverse your statements now. 05:13:45 sykopomp: :P 05:14:07 drewc: I'll bear that in mind; thanks. Your success is certainly inspiring. 05:14:20 balooga [~00u4440@adsl-76-194-233-139.dsl.lsan03.sbcglobal.net] has joined #lisp 05:14:32 Ralith: or you can aspire to be like me and unit-test PHP for a living 05:14:34 fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 05:14:34 ^5 05:14:38 woo 05:14:50 Ralith: hard work and thick headed stubborness will get you pretty far in this world :P 05:15:22 Modius, are you saying learning to think the java way is worthless? 05:15:38 drewc: sounds good to me. 05:15:42 bjorkintosh: harmful even 05:16:07 bjorkintosh: looking at java and trying to figure out what's actually good isn't a terrible idea. Joining the monoculture will lead to serious brainrot, though. 05:16:17 bjorkintosh: At the risk of making a broad abrasive hurtful generalization - hell yes. 05:16:31 lisp is my antidote to java thinking. 05:16:58 Lisp is my anti-java. 05:16:59 :D 05:17:06 bjorkintosh: blindly lisp thinking is not as bad, but lisp is not a panacea 05:17:12 Here's another issue - mastery of dynamic and mastery of (good) statically checked are 2 different skillsets - it's like you're 2 programmers - a very complex program in each won't look the same (only our simple toy examples resemble eachother) 05:17:35 I want to see someone who's a haskell god and a macro god argue with himself. 05:17:58 drewc, i'm balancing it with a good mix of ML and later on haskell. 05:18:04 haskell-style and macros are not mutually exclusive 05:18:05 Modius: I'd probably side with the haskell god before anyone who calls themselves a 'macro god' 05:18:16 Modius: I am fairly well versed with macros, and i'd side with haskell 05:18:16 sykopomp also makes a good point. 05:18:55 <--- the "selected" thing is broken html design imo. Every attribute is of the form attr=val, except this POS 05:19:18 fusss_: this is why we all use selected=selected 05:19:20 Ralith: They become less useful in languages without lisp's properties (this is where we go to "template haskell" and such) 05:19:35 Modius: certainly more awkward. 05:19:50 drewc: lines up nicely with Dr^H^HCL-WHO's keyword destructuring 05:20:15 Ralith: Dynamic + Macros is very powerful. Haskell is very powerful. You won't write the same program exploiting each branch of power. 05:20:26 (Dynamic + Macros + lisp properties) 05:20:43 drewc: You prefer haskell? 05:21:15 Modius: no, i just don't think macros are lisp's most important feature, so anyone arguing macros over haskell is wrong. 05:21:16 Modius: If I had to pick between higher order functions and macros, I would invariably choose the first. 05:21:21 i'd rather use haskell than lisp 1.5 05:21:33 what sykopomp said 05:21:37 Modius: macros aren't inherently better in dynamic than static languages. 05:21:42 is let over lambda by hoyte a good book? 05:21:51 bjorkintosh: read PCL 05:21:51 bjorkintosh: no 05:21:57 Haha - can of worms asking taht here bjorkintosh. I say yes 05:21:59 drewc: what *would* you say is lisp's most important feature? 05:22:12 too much fancy pants crap around here. The rest of the world gets things done with PHP alone, version 4, on a shared host. 05:22:27 Macros are part of the whole, I didn't say they were the most important but the most defining feature that separates it from the others on the dynamic tree. 05:22:35 fusss_: closures in 5.3! wooohoo.... 05:22:38 bjorkintosh: I'm biased though - I actually read it. 05:22:41 Modius: hoyte is an idiot, let over lamba is crap ... discuss? 05:22:55 sykopomp: FFUUUUUUUUUUUUU we just standardized on 5.2 05:23:19 fusss_: no, seriously. Actual closures. mapping/reducing/filtering, the works. 05:23:29 almost as usable as javascript 05:23:35 I might actually survive at that rate. 05:23:40 sykopomp: Drupal has a brain-dead generic dispatch system actually 05:23:51 look into is 'hooks' 05:23:53 Modius: i have not only read it, but have made the Errata... and i still think the author is lacking in clue and his code would get him fired from my team :) 05:23:53 PCL over LOL. alright. 05:24:08 drewc: also, as someone writing a lot of production code, what do you make of "Worse Is Better?" 05:24:20 bjorkintosh: I'm not going to argue about whether LOL is good or not. I've heard there's some pretty icky things in that book, so I'm not about to recommend it. 05:24:20 *fusss_* disassociates from people who read LOL 05:24:28 but I can say PCL is fantastic. 05:24:44 and that you should get yourself a hard copy so you can crawl in bed and get all cozy with some defgeneric. 05:24:45 Ralith: worse is only temporarily better. C became java, unix became OSX 05:25:14 Ralith: both of those are steps towards the lisp machine 05:25:16 Ralith: worse is better, but good enough for now is not good enough forever. 05:25:42 C/C++ are easy to contend with now. It's simple. "Am I writing a game or an operating system?" 05:25:48 or you could religiously take one of the two extremes and either write C for the rest of your life, or greenspun MFTLs until you rot. 05:25:51 hehehe. steps towards the once and future lisp machine. 05:25:59 sykopomp, alright. 05:26:02 C : sometimes. C++ : never <---- easy one 05:26:05 drewc: "...but they will never themselves *reach* the lisp machine" 05:26:52 CL/the lisps in general have a set of properties that macros are a part of. You'd cripple the concept back to just an upgraded Python (or basically Ruby) without the ability to have your code execute at different times. 05:27:04 Ralith: nor will the lisp machine reach them, because it's dead and buried :) 05:27:24 with (- 281 1) nerds in here, how come genera's lisp OS hasn't been ported to bare metal x86? 05:27:26 Modius: Python and Ruby are more restrictive than just 'macros' 05:27:40 We can bicker about the inconsistencies in C++; but for games the pros, the "automation" of repetitive s**t that C++ gives are substantial. I was on a job where they made us devolve back to straight-C. Not pretty. 05:28:08 Modius: last time i had a chance to program in straight C it was quite an enjoyable experience. 05:28:09 Modius: or we can /topic and realize that I don't want to talk about C++ 05:28:10 sykopomnt: Python very much so. And in CL you'd still have the macros in the spec I guess, so we're playing CLOS > Ruby here I guess. 05:28:29 but, we were using C as C, and CL for higher level stuff 05:29:14 drewc: even PHP doesn't seem that bad in small doses... 05:29:33 drewc: Oh sure - heck, I don't want to do anything inherently C++ there either (although some smart-pointery constructs may make things safer). But on games you have a big mess of high-level stuff that people are changing their minds on a lot - not preetty. 05:29:35 bjorkintosh: because opengenera runs fine on linux using virtualisation, and costs $5000 05:29:38 I heard that a mg of php was enough to kill 100 grown adults 05:29:48 5k? forget it. 05:30:29 bjorkintosh: use Movitz if you have nothing better to do than write device drivers 05:30:33 I've never used PHP - but I can appreciate that it let the guitar-playing pothead I met in the bookstore cut-paste his own myspace where an expert C++ coder I know couldn't. 05:31:14 Modius, with cl, all you need is a cl->php compiler, and voila! 05:31:16 Guess it's a double-standard - I like accessibility for non-programmers more than accessibility for pseudo-programmers who call themselves programmers (probably due to having to work with the latter) 05:31:21 Modius: PHP has a lot of built-in facilities for stuff involved in web development. Batteries included can get you very far, no matter how cruddy the rest of your language is. 05:31:21 you never have to touch php. just cl. 05:31:29 soo lang:Python as an example. 05:31:38 bjorkintosh: lurk harder or stop spewing nonsense please. 05:31:49 heyall. What would be the most elegant way for a function with a (with-timeout ..) in it to initially retry and then abandon its actual function? 05:31:55 drewc it was a pun on scheme->c. 05:32:11 bjorkintosh: see my previous comment ;) 05:32:23 (I've been trying to get something nice and concise with restarts and handlers, but it keeps on swelling out of proportion) 05:32:45 Shaftoe: you want a single retry after a timeout? 05:33:02 drewc: single could do. ideally n. 05:33:12 but single will suffice. 05:33:24 hmm. it might just be possible. 05:33:27 Adlai` [~adlai@unaffiliated/adlai] has joined #lisp 05:33:32 gigamonkey [~gigamonke@adsl-99-169-81-8.dsl.pltn13.sbcglobal.net] has joined #lisp 05:33:36 well, n is easy too, but single was especially easy 05:34:14 with-timeout signals a condition when the timeout is reached ya? 05:34:15 drewc: maybe tech.coop wants to get in the business of providing email for people fleeing gmail ;-) 05:34:22 drewc: yup 05:34:49 gigamonkey: we're already in that business.... all members get free email for life assuming they are currently subscribed to one other service! 05:34:57 -!- Adlai [~adlai@unaffiliated/adlai] has quit [Ping timeout: 240 seconds] 05:35:38 -!- Adlai` is now known as Adlai 05:35:42 One address though, right? 05:35:57 I need something to replace all those google-app hosted domains I make you set up. 05:36:03 -!- kwinz3 [kwinz@d86-32-109-108.cust.tele2.at] has quit [Ping timeout: 258 seconds] 05:36:30 Which I moved to because I sucked at running my own mail servers. 05:36:33 grouzen [~grouzen@91.214.124.2] has joined #lisp 05:36:47 gigamonkey: unlimited... only thing i have to charge for is if you use a lot of disk space... and disk space is cheap 05:37:40 Hmmm. Maybe I'll take this up with you in email or over in #tech.coop. But not now. I'm on my way to bed. 05:37:53 gigamonkey: no worries, sleep well :) 05:39:03 is there a next directive in loop? 05:39:20 Another issue in language choice is IDE vs textediting - the learning - and expectation - curve going from DevStudio to Emacs+some other language is massive, even if the latter *may* have a long term advantage. 05:39:30 Total shift in the role of the programmer day-to-day. 05:39:57 what do people do POST/redirect/GET in hunchentoot? (redirect (referer)) seems to break sometimes 05:39:58 The MS and Unixy programmers are going to move further apart as Microsoft builds source control and time tracking into devstudio. 05:40:13 -!- hadronzoo [~hadronzoo@64.134.146.34] has quit [Quit: hadronzoo] 05:40:23 Demosthenes: no 05:40:37 Shaftoe: does this help? http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/d8d5817d89a99922/f9f7d9c15f676954?lnk=gst&q=drewc#f9f7d9c15f676954 05:40:38 gigamonkey: I think you still suck at running your own mail server, we all do. 05:40:44 stassats: so for cond-like behavior in loop the choice is long if else's :P 05:41:11 -!- somnium [~user@adsl-1-30-191.dab.bellsouth.net] has left #lisp 05:41:30 fusss_: i make part of my living running a mail server.... 05:41:39 -!- jake-is-a-virus [~chatzilla@24.143.26.144] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20100106054534]] 05:41:39 still suck at it though :P 05:42:47 drewc: interesting... I'm processing this 05:43:18 drewc: how do you handle stuff in your CL web stuff like operations taking too long to terminate, or your process using too much memory? How about input scrubbing? 05:43:53 sykopomp: that's three questions! :D 05:44:01 indeed 05:44:10 ok, the first is just timeouts 05:44:15 stassats: so i should shift to do and cond 05:44:17 -!- gigamonkey [~gigamonke@adsl-99-169-81-8.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 260 seconds] 05:44:29 Demosthenes: you're not making sense 05:44:36 drewc: do you explicitly wrap all your code with with-timeouts, though? 05:44:44 stassats: i have a loop running, i'm trying to skip to the next iteration 05:44:46 or do you have some global location that lets you DWIM it? 05:44:47 sykopomp: no, the webserver handles that for me 05:44:50 ok 05:45:28 stassats: if i have a few when/if statements, the only way to make them behave like a cond (one ONE matches and runs per iteration) is a bunch of else nonsense 05:45:29 the second is easy : avoid using too much memory :) 05:45:35 (it 05:45:52 Demosthenes: why the hell don't you use COND then? 05:45:59 it's obviously not always that simple 05:46:10 stassats: i got chewed on the other day for using a cond in loop :P 05:46:15 conflicting direcitons. 05:46:33 right, specially when you have a variable number of complete strangers bombarding you for more ramz... 05:46:34 -!- dralston [~dralston@S010600212986cca8.va.shawcable.net] has quit [Quit: Leaving] 05:46:42 i bet you were chewed for a different reason 05:46:46 so ,i'll just use a cond. 05:47:37 sykopomp: right... so tight code avoids most of that issue.... also keeping a watch on the process .. if usage patterns change then you have to change with them 05:48:01 sykopomp: you become quite aware of what you're keeping around in memory 05:48:25 and of course the best trick of all : disable LDB and let the bugger crash! 05:48:34 if only i was aware of what i remember and what not 05:48:57 drewc: crash after spending the last half hour swapping? :\ 05:49:27 sykopomp: why would you make your heap bigger than your RAM? 05:49:59 dunno, that's probably a good question 05:50:02 (that much bigger anyway) 05:50:22 sykopomp: memory is cheap too :) 05:50:51 but, that's the same as any other language... 05:50:52 drewc: CCL64 allocates about 512G of VIRT on linux by default.... 05:50:53 devinus_ [~devinus@65.107.181.222.ptr.us.xo.net] has joined #lisp 05:50:59 :< 05:51:00 -!- devinus_ [~devinus@65.107.181.222.ptr.us.xo.net] has quit [Client Quit] 05:51:11 if you fill your memory in php, what happens? 05:51:18 hah. i just found out about lush. is it a badword in #lisp? 05:51:21 drewc: fucker dies hardcore :P 05:51:29 i bet it does! :) 05:51:45 bjorkintosh: no... do you have a question? 05:51:46 drewc: but it does that for a lot of things, so we just pat it on the back and say "you tried your best" 05:52:12 sykopomp: well, lisp doesn't handle running out of memory well either 05:52:13 it's like that picture of how CL programmers perceive other programmers. 05:52:26 i don't know many languages that do :) 05:52:31 yeah i do. since newlisp got cutdown in seconds, i was wondering if lush shared the same status. 05:52:54 drewc: yeah. You'd need something like PLT's custodians to manage that stuff properly, no? 05:53:19 although I think someone mentioned once that you could have SBCL signal a condition when it crossed a certain memory-use threshold. 05:53:25 bjorkintosh: lush doesn't claim to be a better lisp... it's barely a lisp 05:53:36 although at that point you just have to wonder wtf to do next... 05:54:06 crash 05:54:16 well, actually 05:54:17 -!- devinus [~devinus@cpe-66-25-177-158.austin.res.rr.com] has quit [Ping timeout: 240 seconds] 05:54:21 kglovern [~kglovern@CPE001d725da193-CM0014f8ca15f0.cpe.net.cable.rogers.com] has joined #lisp 05:54:31 drewc: well, you could (sb-ext:gc) and pray, too, I guess. 05:54:43 sykopomp: gc takes memory! 05:54:46 or kill some processes by default, or even freeze the program in an interactive debugger. 05:55:06 drewc: that's why I'm saying -- I thought it would signal the condition after a certain threshold, not when it was completely out of memory. 05:55:14 but I'm probably confused. 05:55:21 i had code at one point that monitored memory use in an app and gc'd when it was low 05:55:23 that might be a nice-to-have, though. 05:55:34 but, and think about this.... 05:55:42 how dumb do you think sbcl is? 05:56:04 that's a loaded question! 05:56:10 specially when we're in #lisp >:D 05:56:11 :D 05:56:35 point being that just running the GC is not likely to fix the issue... 05:57:00 drewc: that's why you pray, because jesus can fix it. 05:57:07 or the run-time would do it automatically and we'd never know there was a problem :) 05:57:24 just cons less 05:57:57 hm 05:57:58 or make more garbage and less reachable objects. 05:57:59 Any allocation has the potential to put you beyond your guard state without the ability to run collection any more. 05:58:39 Modius: that happens when i'm drinking 05:59:01 drewc: how are lisp webapps structured, anyways? Do you have a single running image that gets restarted when things go wrong, or just start multiple processes from a single binary? 05:59:10 Then you have the problem of - does every construct using memory have to have something that will back it out of its need for memory at every state it can be in? 05:59:14 the former 05:59:48 sykopomp: usually, you'll run a lisp based web server behind a reverse proxy 06:00:18 single image, threads are a popular tool to manage the whole do more than one thing at once problem. 06:01:01 basically, you don't upload scripts to run on a server, you write a server. 06:01:21 (though the former method can work too, it's just not as useful) 06:02:02 sometimes I wonder how PHP gets away with re-reading all those source files every time it gets pinged :\ 06:02:10 though, i have one application that is load balanced.... so there are two images running on different machines behind a single proxy instance. 06:02:20 hadronzoo [~hadronzoo@ppp-70-251-117-169.dsl.rcsntx.swbell.net] has joined #lisp 06:02:44 it doesn't really.... it's slow as hell and fragile as glass :) 06:02:45 drewc: that's kinda cool. What are you using to balance the load? 06:03:15 but usually with php apps the bottleneck is not interpreting the script, so performance is not a priority for most uses. 06:03:31 drewc: my favorite part of PHP is "fail silently with null values until someone, somewhere along the way, realizes that it shouldn't really be working on a null value. Then croak and give a line number in your stack trace" 06:03:35 i'm using pound on that server, but i hear there are better options now. 06:03:56 I think that's the top one. "overflow your ints" is the second. 06:04:18 drewc: what's the bottleneck? The requests themselves? 06:04:40 sykopomp: i worked in php for a couple of years some 10 years ago... it was so bad i moved to perl afterwards and thought it an improvement. 06:05:02 sykopomp: usually the database 06:05:33 Shaftoe pasted "n restarts" at http://paste.lisp.org/display/94897 06:05:36 Alright. I've concocted the kernel of the idea I'm trying to get done, and I will say right away that it doesn't work. no matter what I seem to do, I find myself biting my own tail. Any insight appreciated 06:05:52 sykopomp: the time spent interpreting the script is lost in the noise of multiple round trips from the mysql server 06:06:00 drewc: the link you sent didn't seem to do the n times thing. Unless I totally misunderstood it 06:06:19 Shaftoe: no, it didn't, unless n = infinity counts 06:06:36 drewc: and all those fun joins 06:07:14 drewc: so you find that using something like rucksack takes away a lot of the overhead of making those round trips? 06:07:18 -!- proq [~user@unaffiliated/proqesi] has quit [Read error: Connection reset by peer] 06:07:37 even though rucksack might not have an army of paid monkeys trying to optimize it... 06:07:39 -!- parolang [~user@8e4a01246100775874c4f448e9887093.oregonrd-wifi-1261.amplex.net] has quit [Remote host closed the connection] 06:09:14 meric [~Eric@124-168-145-247.dyn.iinet.net.au] has joined #lisp 06:09:28 Shaftoe annotated #94897 "minor correction" at http://paste.lisp.org/display/94897#1 06:09:41 sykopomp: rucksack helps, but it's the fact that lisp is a live image that reduces round trips... 06:09:52 don't go to the database, cause you already have the data. 06:10:00 the thing that doesn't work is that the second time round, the restart isn't actually registered 06:10:01 ah 06:10:44 sykopomp: memcached and the like are not needed in lisp... we have that built in.. it's called memory after all :) 06:11:41 isn't part of teh point of memcached to be able to spread it out to multiple servers, though?.. 06:11:41 sykopomp: with rucksack, you get that automatically. 06:12:03 sykopomp: ummm... how does that differ from what i do? 06:12:34 I don't know :) 06:12:47 sykopomp: the point of memcached is to cache things in memory... instead of multiple memcached's i have multiple lisps... 06:12:50 I thought what memcached did was allow you to have a distributed in-RAM store across multiple servers 06:13:10 drewc: how do you know which lisp to ask for a particular bit of memory?... 06:14:18 how does memcached know? 06:14:47 drewc: pixie dust 06:14:53 exactly. 06:15:14 brilliant 06:15:28 you keep data in the database silly... you ask the database for data and cache it in ram 06:15:44 henry_george [~gav@cpe-76-172-28-85.socal.res.rr.com] has joined #lisp 06:15:50 each image keeps its own cache... maybe even some duplication 06:16:31 if your database becomes the bottleneck again because you are write-heavy or time sensitive, then you move to sharding 06:16:39 is that all memcached does? It makes it sound so boring :P 06:16:53 pretty much yeah :) 06:17:15 doesn't memcached also require that you do some serialization, though? 06:17:39 storing any data requires serialization 06:17:51 right 06:18:18 except you don't have to (de)serialize every time you access memory in CL >_> 06:18:25 so yeah, lisp wins as we just use main memory.... cause we have it! :) 06:18:38 or go through a socket or whatever it is memcached uses for IPC 06:18:49 though ruby usually runs this way as well AIUI 06:19:15 i heard the 'just crash' method was how it worked over at 37 signals 06:19:36 'just crash'? 06:19:50 you mean when some error happens? 06:20:03 yeah.... apparently RoR was the most unstable POS ever until quite recently 06:20:15 heh 06:20:48 Kolyan [~nartamono@95-26-156-11.broadband.corbina.ru] has joined #lisp 06:21:25 -!- Shaftoe [~Moe111@bas1-montreal02-1096726543.dsl.bell.ca] has quit [Quit: Shaftoe] 06:21:33 so how write fast webapp with common lisp? 06:21:44 teepeedee2 seems one interesting teknology 06:21:50 maybe with lisp prevalence? 06:22:16 I guess prevalence is nice if you don't expect your database to have much in it at all... 06:22:34 sykopomp: one of my servers can take 144GB ram 06:22:43 that's a lot of data 06:23:00 drewc: ....how the hell do you have a server with 144GB? D: 06:23:04 well I was thinking 06:23:12 you only need the data in there 06:23:19 all media stays on disk 06:23:33 now if u can have say 10 servers all commnuicate 06:23:42 henry_george: first, you write your application in lisp. then you profile. 06:23:43 you only need the data in 1 place on 1 of the 10 06:24:07 can lisp talk to lisp box to box? it can right? I mean bash can do crap box to box with an ssh key 06:24:16 well, sure 06:24:23 so one "namespace" [sorry If i mangling terms] 06:24:24 starting out to write a 'fast webapp' is pretty silly... the web is slow 06:24:39 -!- hadronzoo [~hadronzoo@ppp-70-251-117-169.dsl.rcsntx.swbell.net] has quit [Quit: hadronzoo] 06:25:15 henry_george: the way to fast-performance lisp-native web development is Hungarian Common Lisp. 06:25:25 *sykopomp* ducks. 06:27:37 clisp+vi+teepeedee2+cl prevalence+shoot those who want xml with portable laser cannon 06:27:48 henry_george: the time spent to manage the communication between servers is going to be larger than 0, and disks are pretty fast these days 06:27:58 henry_george: you want performance, but you want to use clisp? 06:28:04 and vi? 06:28:19 paul graham did.. 06:28:21 teepeedee2 is not a good choice, nor is cl prevalence, nor is clisp or vi 06:28:36 paul graham is not a good choice either 06:28:38 henry_george: Paul Graham also wanked about Arc and had his crap rewritten in C++. 06:28:40 fusss__ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 06:29:31 If someone wants to buy my lisp code for millions of dollars, they can rewrite it in any language they want. 06:29:33 henry_george sounds like gavino 06:29:49 -!- fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Ping timeout: 264 seconds] 06:30:09 orbitz is lot of lisp 06:30:09 *** henry_george is logged in as shemale-magic <-- uh? 06:30:14 actually, that sounds familiar. 06:30:19 does 06:30:24 sykopomp: In defense of the rewrite - any codebase that's taken over by a new lead will inevitably be rewritten into his comfort zone. 06:30:28 I can leave if you wish 06:30:51 Modius: 7 years ago I sure as hell would have rewritten anything you stuck under my nose in C++ 06:30:59 Modius: Sure, but I bet they rewrote it because the code was crap, impossible to understand, and slow as hell. 06:31:13 with CL being only a secondary consideration. 06:31:14 :) 06:31:18 sykopomp: I seriously doubt that was why. 06:31:24 dude they had 20,000 user and got 50mil 06:31:26 sykopomp: I spent 10 years as a professional C++ programmer. Anything in Lisp, I swear to you, would have been impossible to understand and slow as hell to me. 06:31:41 Modius: my condolences. 06:31:47 I also doubt that is why Sony rewrote Naughty Dog's codebase. 06:31:49 does c++ take 40x as long to develop in? 06:31:50 henry_george: you can leave, or contribute something useful... this is a channel for lisp programmers to discuss lisp. 06:32:07 ok 06:32:16 austinh: there's a pretty decent writeup of why that happened, actually. 06:32:30 austinh: Comfort zone - definitely. Game programmers are by necessity C/C++ programmers. Absolute technical merit has nothing to do with it compared to the weight of WHO has to work on it. 06:32:54 most of it seemed to be a mixture of "pain in the ass to use" and "the only guy who knew how it worked left the company" 06:33:10 and not just "the only guy in the company who knew how it worked" 06:33:15 sykopomp: None of that means the code was poorly written. 06:33:15 the only guy. Anywhere. 06:33:19 sykopomp: "Only guy who knew it left" = "pain in the ass" 06:33:42 Modius: nah, the writeup talks about some awfulness that the system itself had. Let me find it. 06:33:42 You can't retrain a bunch of C++ programmers into people who could read a lisp codebase - at a game company of all places. 06:34:31 In the late 90s/early 2000s any game/c++ programmer could tell you that C++ was for "serious" algorithms and that these "scripting languages" were for simpler stuff where less power was needed. 06:34:34 "GOAL sucks! While it's true that GOAL gave us many advantages, GOAL caused us a lot of grief. A single programmer (who could easily be one of the top ten Lisp programmers in the world) wrote GOAL. While he called his Lisp techniques and programming practices "revolutionary," others referred to them as "code encryption," since only he could understand them. Because of this, all of the support, bug fixes, feature enhancements, and 06:34:34 optimizations had to come from one person, creating quite a bottleneck. Also, it took over a year to develop the compiler, during which time the other programmers had to make do with missing features, odd quirks, and numerous bugs." 06:34:41 http://ynniv.com/blog/2005/12/lisp-in-games-naughty-dogs-jax-and.html <-- 06:34:51 -!- davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has quit [Remote host closed the connection] 06:35:11 To a C++ programmer lisp is code encryption 06:35:17 sykopomp: Yeah, I've read that. The section before it is called "Goal rules!" 06:35:33 Unless that statement was made vis-a-vis some other lisp program which was not code encryption 06:35:34 Modius: I bet he was abusing macros. I would call that code encryption. 06:35:36 :P 06:35:48 Dude, code encryption would have been abusing parens. 06:36:15 I'm just trying to point out that there's more to these cases than big bully C++ programmers being too close-minded. 06:36:31 I didn't say the C++ programmers were closed minded. 06:36:39 I didn't say you did! 06:36:40 If you are a c++ programmer Lisp is utter gibberish 06:37:07 actually 06:37:12 I'm going to go out on a limb here... 06:37:15 if you tried to convince me to use c++, i know how i'd feel. I imagine a C++ weenie would feel the same way about lisp. 06:37:23 1 non-lisp C++ programmer and 1 lisp programmer the lisp programmer can put it in and exclude half the team. 20 more C++ programmers come in now he's excluding 95% of the team. 06:37:26 " You can't retrain a bunch of C++ programmers into people who could read a lisp codebase - at a game company of all places." <-- I'd say this is pretty close to "they're close-minded" 06:37:37 No it's not 06:37:48 I could say "you can't make C++ programmers eat at arbys" 06:37:48 The compiler came from Franz. I'm sure that starting a game project w/o a working compiler, and then making due with one that is still a WIP, is a bigger issue than the language it was implemented in. 06:38:08 Modius: why wouldn't they eat at Arby's? 06:38:10 How dare they? 06:38:20 austinh: yeah 06:38:38 sykopomp: if i bought a company that used C++, i would consider re-writing in lisp.... 06:38:41 My original point, though, was that saying that Yahoo rewrote Graham's software in C++ does not indicate that his code was flawed. 06:38:45 If nothing else, the cost of having to train that many people into something that different, combined with the fact that it'd make half of them quit. 06:38:48 austinh: well, the compiler was developed in-house. The compiler itself was written in Allegro, which is Franz's product. 06:38:50 sykopomp: this has little to do with the merits of lisp or c++ 06:39:01 drewc: I think this sounds like a good plan. 06:39:20 drewc: also, I think eating or not eating at Arby's has everything to do with it. 06:39:21 sykopomp: Really? I read that they hired Franz to develop the compiler. I could be wrong. 06:39:29 I have been a C++ programmer and a lead. If you stuck something like that in front of me I'd have tossed it asap. And from a cost standpoint that would be the thing to do, even if the "retrain everyone in lisp" option was in front, as ignorant or not, it would have a heavy cost and an uncertainty factor. 06:39:56 -!- fusss__ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Ping timeout: 272 seconds] 06:40:07 tfb [~tfb@LMontsouris-152-62-15-18.w80-13.abo.wanadoo.fr] has joined #lisp 06:40:20 -!- tfb [~tfb@LMontsouris-152-62-15-18.w80-13.abo.wanadoo.fr] has quit [Client Quit] 06:40:20 Modius: exactly... business decisions rarely intersect with technical considerations. 06:40:23 Ultimately the lead and the bulk of the team have to be in their comfort zone, or you have a heavy cost and risk. 06:40:36 on an interesting side-note, I appreciate my coworkers. 06:40:46 ASau [~user@83.69.227.32] has joined #lisp 06:40:57 as much as they seem set on liking PHP, they're extremely willing to listen to neat suggestions as long as it involves PHP and MySQL 06:41:16 sykopomp: I think you are right; the compiler was created by Naughty dog. 06:41:26 I'd go so far as to say that, with lisp skills, even an unmanageable lisp codebase would be easier to manage by lisp folk than any given C++ app due to higher odds of elements being separated, code size, etc. 06:41:28 sykopomp: i was once convinced that php was all i needed too. 06:41:35 fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 06:41:42 makes a lisp programmer a bit warm and fuzzy inside when he can send out an implementation of the Z combinator in PHP and not have his face bitten off. Or when he can ask a coworker for their copy of LiSP >_> 06:41:48 But if you have a stack of C++ programmers the equation is different. 06:42:03 sykopomp: i got over it after working on a very large codebase :) 06:42:18 Game/C++ programmers forced to learn lisp, I'd imagine half of them would quit. 06:42:30 drewc: it's still a bit bizarre to have coworkers with copies of LiSP and AIMA on their desk, or SLIME installed in their account on the dev server 06:42:30 They want to build cred that they can use in the other 99% of jobs. 06:42:44 yet have them look at you funny when you talk in terms of non-PHP langs... 06:43:24 drewc: our codebase is pretty big. I don't think it's _that_ bad to manage, though. 06:44:30 I'm still a bit surprised at how little hate I have for PHP after working with it... 06:44:30 sykopomp: well, wait a few years as php changes out from under you 06:44:41 heh 06:44:50 that'll be interesting :\ 06:44:50 when i started, php didn't have classes 06:45:00 bombshelter13b [~bombshelt@76-10-149-209.dsl.teksavvy.com] has joined #lisp 06:45:39 i moved an application from php3 to php4 and promised myself i'd never do anything like that again. 06:46:00 drewc: yeah... I've seen some bits of pre-class PHP. It's pretty icky. I can definitely see manly tears from that. 06:46:03 very manly, ofc. 06:46:05 l0stman [~l0stman@freedsl-2.blueline.mg] has joined #lisp 06:46:37 i moved into systems work after that, afraid of the front end stuff... we did systems work in C, shell and perl. 06:47:38 Then i got to work with MivaScript(tm) ... the worst "programming language" i've ever had to work with. 06:48:59 then i set out looking for a better language for web stuff. 06:49:26 i first tried ruby in 2001 :) 06:49:59 legumbre_ [~leo@r190-135-10-210.dialup.adsl.anteldata.net.uy] has joined #lisp 06:50:57 drewc: how long have you been doing CL?... 06:51:22 sykopomp: early 2004 IIRC 06:51:33 fusss__ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 06:51:38 10 minutes till the beer store closes... i'm on it! brb 06:51:58 -!- legumbre [~leo@r190-135-16-208.dialup.adsl.anteldata.net.uy] has quit [Ping timeout: 272 seconds] 06:52:37 -!- fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Ping timeout: 265 seconds] 06:53:15 sykopomp: so are you a lead programmer? 06:53:16 splittist [~joe@30-245.62-188.cust.bluewin.ch] has joined #lisp 06:53:34 morning 06:54:04 henry_george: hahahahahaha fuck no. I'm a tester. 06:54:09 :D 06:54:16 I'm also "the new guy" 06:56:09 -!- spacebat [~akhasha@ppp121-45-120-246.lns20.adl6.internode.on.net] has quit [Ping timeout: 260 seconds] 06:58:04 spacebat [~akhasha@ppp121-45-97-204.lns20.adl6.internode.on.net] has joined #lisp 07:01:13 I am not impressed with java at all. 07:01:40 -!- xan [~xan@cs78225040.pp.htv.fi] has quit [Ping timeout: 256 seconds] 07:01:45 -!- aja [~aja@unaffiliated/aja] has quit [Read error: Connection reset by peer] 07:03:22 -!- SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has quit [Ping timeout: 272 seconds] 07:03:58 `76y=----\] 07:04:49 sorry, that was the white ferret talking 07:05:13 lol 07:05:24 -!- fusss__ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Ping timeout: 276 seconds] 07:05:58 if lisp does fastcgi that would make performance as nice as php? 07:06:09 and lisp would have more felxability ? 07:06:29 what 07:07:48 common lisp using fastcgi 07:07:48 -!- drewc [~drewc@89.16.166.162] has been kicked from #lisp 07:11:04 gonzojive_ [~red@c-24-130-129-213.hsd1.ca.comcast.net] has joined #lisp 07:14:09 Emacs/slime/lisp fans - defun indents properly but defmethod does not - is there some nobrainer setting that I have or have not touched that rectifies this? 07:14:10 gonzojive__ [~red@c-76-102-6-9.hsd1.ca.comcast.net] has joined #lisp 07:15:45 -!- gonzojive_ [~red@c-24-130-129-213.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 07:17:17 fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 07:17:28 it should be working out of the box 07:19:17 Modius: are you actually using slime?... 07:19:26 sykopomp: Yes 07:20:13 slime doesn't do indentation, apart from some hinting to emacs 07:20:40 defmethod would be indented even in emacs -q 07:21:04 It's indented with the second line to the method name. 07:21:10 It's indented, just the wrong amount. 07:22:30 then the usual "you are doing it wrong" 07:22:34 Thanks 07:22:45 try with emacs -q 07:22:56 beach` [~user@ABordeaux-158-1-92-149.w86-201.abo.wanadoo.fr] has joined #lisp 07:23:06 I have a "clean" emacs install on a Linux VM that's doing it properly - guess I have to test with an empty .emacs 07:23:31 that's what emacs -q is... 07:23:54 -!- bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has quit [Ping timeout: 256 seconds] 07:25:24 in lisp source code, is it automatically enclosed in a (progn ...) by the compiler? 07:25:36 since its basically a list of S-expressions. 07:25:43 e.g in http://norvig.com/paip/examples.lisp 07:26:13 (newbie here, trying to understand lisp) 07:26:18 -!- beach [~user@ABordeaux-158-1-70-208.w90-60.abo.wanadoo.fr] has quit [Ping timeout: 240 seconds] 07:26:28 drewc: when using rucksack w/o using with-rucksack (using open-rucksack / close-rucksack elsewhere), I get compile issue on (with-transaction () ... ) - "There is no applicable method for the generic function # 07:26:28 when called with arguments (NIL). I can't tell from looking at the with-transaction macro what went wrong. 07:26:38 meric: yes and no 07:26:47 : | 07:28:04 if you enclose everything in one progn, it will be read at once at the read time 07:28:41 isn't everything read at once at read time already? like the (defun ... ) calls 07:29:12 otherwise how would the runtime know about those 07:29:23 meric: they are read sequentially 07:29:50 fusss__ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 07:30:23 I'm writing a lisp interpreter (in another language) as a learning exercise ... and my eval currently only works for 1 S-expression. 07:30:28 and processed, and some forms affect the reader process, for example, "(in-package :foo) code" and (progn (in-package :foo) code) might have different effects 07:31:07 meric: then you shouldn't bother by this yet 07:31:32 okay thanks, so I'll just automatically add a (progn )around the code :) 07:32:17 stassats: Turns out that my emacs is indenting correctly; but loading in a .lisp file (that basically asdf-loads a bunch of libraries) wrecks it. What is the mechanism slime uses to alter its indentation based on changes to the lisp system? I'd like some clues in tracking this down. 07:32:38 I mean, from a slime connection I'm loading in a .lisp file 07:32:46 To the environment, a (load "") 07:33:08 -!- fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Ping timeout: 272 seconds] 07:33:45 M-x slime-update-indentation would be a starting point 07:35:06 -!- pjb [~t@95.124.64.158] has quit [Ping timeout: 256 seconds] 07:35:08 and (setf *configure-emacs-indentation* nil) on the CL side will disable it 07:37:35 stassats: the loader sets up some magic variables and takes care of evaluating defvar/defparameter/defconstant forms early, no? 07:38:08 -!- meric [~Eric@124-168-145-247.dyn.iinet.net.au] has quit [Read error: Network is unreachable] 07:38:25 sykopomp: which loader? 07:38:29 meric [~Eric@203-214-147-25.perm.iinet.net.au] has joined #lisp 07:38:40 LOAD? 07:38:57 well, LOAD case isn't interesting 07:39:08 I don't really know. I'm just also wondering what kind of magic actually goes on with source files. 07:40:37 -!- fusss__ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Ping timeout: 264 seconds] 07:40:38 LOAD reads and evaluates one by one, compile-file reads on by one and compiles, both obey EVAL-WHEN; now, defvar/defparameter/defconstant have a part with EVAL-WHEN :compile-toplevel so the information about them would be known to the latter forms 07:41:57 mihk [~mihk@xdsl-78-35-144-67.netcologne.de] has joined #lisp 07:46:20 fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has joined #lisp 07:47:59 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:56:14 rickmode: with-transaction should not be calling any methods at compile time... you're doing something wrong 07:56:53 freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 07:57:03 drewc: that much i know ;) shall i paste my current code? 07:58:01 rickmode pasted "my busted sample" at http://paste.lisp.org/display/94900 07:58:54 rickmode: take a look at the arglist for with-transaction 07:59:19 how does your with-transaction form know what rucksack it applies to? 08:01:08 drewc: looking at with-transaction, it looks like it'll use the result of (current-rucksack) if none is passed in... I presume this it how it work in rucksack-tutorial.lisp when it uses (with-rucksack (rs *rs-dir*) (with-transaction () .... )) 08:01:38 rickmode: ok, and what is the result of calling (current-rucksack) ? 08:04:47 rickmode: or : what exactly does with-rucksack do that allows you to write code like that in the tutorial? 08:05:04 drewc: this is failing during the compile (not at run-time), so I'm at a loss why it works when inside (with-rucksack) 08:05:12 oh.. right 08:05:43 no, it's not actually 08:05:52 it's failing at load time 08:05:56 and the answer is the same 08:06:31 you have a toplevel with-transaction 08:06:54 openrfc [~1856a0fc@gateway/web/freenode/x-ogtbofbziceszeus] has joined #lisp 08:07:30 drewc: right, and I guess I assumed at run-time there will *be* a current-rucksack, since I am opening one up as I start up the web server 08:07:42 lithper2_ [~chatzilla@ool-182ff1c9.dyn.optonline.net] has joined #lisp 08:08:25 rickmode: does opening a rucksack make it current? your webserver is not running at load time, so what do you expect that with-transaction around your defclass to do? 08:08:28 drewc: so do I need to wrap my entire code base in a (let ((*rucksack* *rucksack*)) ... like with-rucksack does? 08:08:51 what do you think that will achieve? 08:08:56 drewc: D'OH!!! OK now i see the issue 08:09:29 drewc: So I *do* want to use with-rucksack when defining my classes, but not otherwise 08:09:46 that's one way to do it. 08:10:54 loxs [~loxs@78.90.124.181] has joined #lisp 08:10:58 -!- openrfc [~1856a0fc@gateway/web/freenode/x-ogtbofbziceszeus] has left #lisp 08:11:06 drewc: using :if-exists :supersede as the tutorial does is obviously wrong - i don't want to blow away my datastore on every load 08:11:09 HET2 [~diman@chello084114129176.4.15.vie.surfer.at] has joined #lisp 08:11:42 but that will teach you 08:11:54 always mount a scratch monkey 08:12:22 lisppaste: url? 08:12:22 To use the lisppaste bot, visit http://paste.lisp.org/new/lisp and enter your paste. 08:12:59 stassats: Thanks, that put me on the path. Interesting tool this slime. . . 08:13:19 drewc pasted "add-class-to-rucksack" at http://paste.lisp.org/display/94902 08:13:23 Modius: yeah, a large pile of hacks 08:14:00 stassats: It's interesting comparing this with an IDE. It's both primitive yet that this pile of hacks CAN be thrown together like this, incredibly powerful. 08:14:21 meiurweqqthod? 08:14:21 -!- balooga [~00u4440@adsl-76-194-233-139.dsl.lsan03.sbcglobal.net] has left #lisp 08:14:24 rickmode: that's what i use... specifically because i have one rucksack per user in my application so with-rucksack around defclass is useless 08:14:36 pair programming with ferrets? 08:14:51 ferrets jumped on at the last second it seems 08:15:11 it's not like that in my emacs, and i didn't see it before hitting enter 08:15:43 you can see the path she took across the keyboard :) 08:16:25 -!- snorble [~none@s83-179-14-105.cust.tele2.se] has quit [Read error: Connection reset by peer] 08:16:28 *stassats* is reminded of the function names in Tokyo Cabinet, they look similar to meiurweqqthod 08:17:17 drewc: I can't make much sense of your paste, but I get the gist (from your description) 08:18:30 well, ignore the meiurweqqthod bit, and change distributed-persistent-class to persistent-class, and you should be able to add or update a class defintion in the open rucksack without the with-rucksack 08:18:54 distributed-persistent-class?! 08:19:32 Hun [~hun@p50993726.dip0.t-ipconnect.de] has joined #lisp 08:20:29 nha [~prefect@250-194.105-92.cust.bluewin.ch] has joined #lisp 08:22:49 sykopomp: indeed... you should see some of the classes that use that as a metaclass! versioned-document-node comes to mind :) 08:23:19 wonderful stuff... all 100% proprietary at the moment. 08:23:27 :( 08:23:36 shame too... some of my best work and i'd love to show it off :( 08:24:02 likely to see an open source release though... possibly later this year. 08:24:35 i've made a real effort in this project to separate library code that could be released from our application code. 08:28:59 drewc: are there some example sites out there that run on your stack? 08:29:05 other than, like, cliki :P 08:29:23 does the ALU wiki count? that's UCW! :P 08:29:23 08:30:08 sure. Any other stuff? 08:30:10 nope, to be honest there's nothing public that i can think of. 08:30:19 aw 08:30:59 the next one will be, but i've signed an NDA that prevents me from actually saying that it's lisp based... 08:31:20 though i suppose if my name is attached to it, people will figure that out. 08:31:49 morphling [~stefan@gssn-5f7547f8.pool.mediaWays.net] has joined #lisp 08:32:39 a secret weapon? 08:33:07 drewc: you mentioned bard lisp the other day, but I haven't found much about it online 08:33:13 drewc: how do you talk people into actually being willing to try this crazy shit? 08:33:21 sykopomp: they come to me 08:33:30 spacebat: there's just the one page afaict 08:33:38 and then all the LJ posts about categories 08:33:45 I found a blog entry, but the blog was not really navigable 08:33:51 sykopomp: i have not had to actively look for a client in years :) 08:33:57 drewc: :< 08:33:59 I couldn't even get to previous posts about what bard lisp is 08:34:41 spacebat: http://bywicket.com/users/mikel/weblog/126a4/Bard.html I think this is all there is atm 08:34:49 thanks sykopomp 08:35:13 he's also going to be talking in TC Lispers this month 08:35:29 ok 08:35:45 spacebat: that blog is about all there is afaik.. 08:35:56 interestingly enough, he's going to be talking about how to implement a lisp :) 08:36:10 As if we didn't have enough greenspunning going on lately! :D 08:36:25 I'm trying to figure out why I can't use libs that use CFFI, and sure enough there is a test in the CFFI suite that fails for me 08:36:55 "1 unexpected failures: DEFCFUN.BFF.2.;" 08:37:10 drewc: what do you think of the 'no inheritance' aspect of Bard's version of Categories, btw? 08:37:28 I keep wondering at what my code would turn into if there wasn't any inheritance anywhere 08:38:14 there was a nice post about the use of roles in perl6, which I understand to be similar 08:38:43 forget exactly where, but the point was made that inheritance shouldn't be used for code reuse 08:39:00 -!- phadthai [mmondor@ginseng.pulsar-zone.net] has quit [Ping timeout: 276 seconds] 08:39:11 spacebat: _why_? 08:39:14 sykopomp: saphir-whorf :) 08:39:16 only for establishing type hierarchies 08:40:34 and 'instance management' 08:40:41 http://perl6advent.wordpress.com/2009/12/18/day-18-roles/ 08:41:49 -!- easyE [G5bbzZtErC@panix3.panix.com] has quit [Ping timeout: 264 seconds] 08:41:54 thanks 08:43:05 oh 08:43:08 just mixins? 08:43:33 ah, no. 08:43:40 runtime, per-instance roles I think 08:44:17 it's object composition without any inheritance or ordering of mixins. Interesting. 08:44:27 anyone know how to get HTTPS with Hunchentoot? 08:44:52 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Read error: Connection reset by peer] 08:45:08 I think if you build it with CL+SSL installed, it will notice that and let you do HTTPS 08:45:29 it's buit with ssl 08:45:33 LW's default one 08:45:41 (defparameter *ssl-site* (make-instance 'ssl-acceptor :address *site-ip* 08:45:43 :ssl-certificate-file #p"site.crt" 08:45:45 :ssl-privatekey-file #p"private.key")) 08:46:04 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 08:46:13 gaah 08:46:21 forgot to add :port 443, works now 08:46:38 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Read error: Connection reset by peer] 08:47:08 I really like hunchentoot 08:48:28 xan [~xan@cs78225040.pp.htv.fi] has joined #lisp 08:49:18 -!- freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote host closed the connection] 08:49:48 no, you forgot to use lisppaste 08:52:07 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 08:52:52 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Quit: dnolen] 08:55:24 damnit... i don't get to use PROG after all... i don't want the block. :( 08:55:39 :( 08:55:40 (tagbody 1) 08:55:52 :( 08:56:18 easyE [i6om0dEQfG@panix3.panix.com] has joined #lisp 08:57:15 why don't you want a block? 08:57:44 stassats: i do, but i don't want it named NIL 08:58:33 it's a macroexpansion 08:58:59 phadthai [mmondor@ginseng.pulsar-zone.net] has joined #lisp 09:00:14 somecodehere [~ingvar@75.186.191.90.dyn.estpak.ee] has joined #lisp 09:02:05 -!- rme [~rme@pool-70-104-120-122.chi.dsl-w.verizon.net] has quit [Quit: rme] 09:02:47 drewc: (let/cc k ...) ;D 09:02:54 look into your heart 09:03:21 timor [~timor@port-87-234-97-27.dynamic.qsc.de] has joined #lisp 09:04:58 i could use prog, but then i'd have to document that it creates a block named NIL, and this particular bit of code is going to be used in quite a few different macros... 09:05:09 sigh 09:05:16 some day. 09:06:49 -!- loxs [~loxs@78.90.124.181] has quit [Quit: Leaving] 09:08:54 -!- ASau [~user@83.69.227.32] has quit [Read error: Connection reset by peer] 09:09:42 -!- jmbr____ is now known as jmbr 09:10:13 leo2007 [~leo@soup.linux.pwf.cam.ac.uk] has joined #lisp 09:10:31 good morning and happy Chinese new year 09:10:58 nostoi [~nostoi@222.Red-79-157-92.dynamicIP.rima-tde.net] has joined #lisp 09:12:24 ASau [~user@83.69.227.32] has joined #lisp 09:12:47 While learning about CLOS, I realise it seems difficult to get a list of methods applicable on an instance of a class, something that is easy to do in, for example, python. 09:13:28 In python's shell, INSTANCE. will usually give you a list of methods. 09:14:44 there is slime inspector 09:15:52 that only gives you the slots, isn't it? 09:15:57 though, you should stop thinking about methods in such way 09:16:22 leo2007: no 09:16:32 i know methods belongs to generic functions. 09:16:51 Krystof [~csr21@cpc2-dals3-0-0-cust104.hari.cable.virginmedia.com] has joined #lisp 09:17:54 kwinz3 [kwinz@d86-32-109-108.cust.tele2.at] has joined #lisp 09:18:25 stassats: I inspected an instance and it only gave me that. 09:18:44 inspect a class 09:19:24 http://wiki.alu.org/Edi%20Weitz'%20Road%20to%20Lisp "I'm keeping an eye on Arc." :D 09:20:25 stassats: that's nice. Thanks. 09:20:31 -!- xenosoz2 [~xenosoz@pe.snu.ac.kr] has quit [Ping timeout: 265 seconds] 09:20:40 xenosoz2 [~xenosoz@pe.snu.ac.kr] has joined #lisp 09:21:12 -!- Xof [~crhodes@158.223.51.79] has quit [Ping timeout: 256 seconds] 09:21:12 by the way, usually I find keyword and symbol interchangeable. But (find-class :cls) throws an error. 09:21:31 sykopomp: heh... shows the age of that page :) 09:21:39 no kidding! 09:22:28 leo2007: you think? keywords are symbols in the KEYWORD package. 09:23:00 (eq :foo 'foo) => nil 09:23:18 (string= :foo 'foo) => t 09:23:25 i think 09:23:37 ya 09:24:01 how to know when to use which? 09:24:05 ineol [~hal@78.250.206.230] has joined #lisp 09:24:25 leo2007: use keywords as globally unique constants, use regular symbols as 'names', imo. 09:24:47 -!- nostoi [~nostoi@222.Red-79-157-92.dynamicIP.rima-tde.net] has quit [Quit: Verlassend] 09:25:05 i like (string= "NIL" '()) => T 09:25:14 -!- Krystof [~csr21@cpc2-dals3-0-0-cust104.hari.cable.virginmedia.com] has quit [Ping timeout: 272 seconds] 09:25:17 :-o 09:25:21 stassats: hax 09:25:42 :kw is equivalent to KEYWORD:kw, right? 09:25:45 leo2007: they're interchangeable when you need a string designator 09:26:10 rather to KEYWORD::kw 09:26:31 bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has joined #lisp 09:26:39 -!- xenosoz2 [~xenosoz@pe.snu.ac.kr] has quit [Remote host closed the connection] 09:26:46 my favorite is still (let (#'123) function) => 123 09:27:12 xenosoz2 [~xenosoz@pe.snu.ac.kr] has joined #lisp 09:28:17 -!- mihk [~mihk@xdsl-78-35-144-67.netcologne.de] has quit [Quit: Leaving] 09:28:37 drewc: \o/ 09:29:14 Thank you all. 09:29:42 -!- lithper2_ [~chatzilla@ool-182ff1c9.dyn.optonline.net] has quit [Remote host closed the connection] 09:30:21 sykopomp: (let (#'(lambda () 123)) (funcall function)) => 123 09:31:01 (let ('(lambda () 123)) (funcall quote)) => 123 09:31:23 yay for reader syntax! 09:32:45 -!- CyberBlue [~yong@111.167.8.39] has quit [Quit: Leaving] 09:37:17 (let (`(,most-positive-fixnum)) #+sbcl sb-impl::backq-list #-sbcl "i dunno") 09:38:29 alley_cat [~AlleyCat@sourcemage/elder/alleycat] has joined #lisp 09:43:17 -!- rickmode [~rickmode@cpe-76-167-41-163.socal.res.rr.com] has quit [Quit: rickmode] 09:43:50 playing with *read-base* could be fun to 09:44:03 NIL => 13701 09:45:02 (setf *read-base* 36.) ; now what do you do? 09:49:44 spradnyesh [~pradyus@122.167.67.168] has joined #lisp 09:52:52 -!- gonzojive__ [~red@c-76-102-6-9.hsd1.ca.comcast.net] has quit [Quit: gonzojive__] 09:55:46 fiveop [~fiveop@g229071059.adsl.alicedsl.de] has joined #lisp 09:55:56 -!- plutonas [~plutonas@port-92-195-155-122.dynamic.qsc.de] has quit [Ping timeout: 240 seconds] 09:57:53 -!- Kaonashi [~root@ppp118-210-228-215.lns20.adl6.internode.on.net] has quit [Ping timeout: 246 seconds] 09:58:54 Kaonashi [~root@ppp118-210-228-215.lns20.adl6.internode.on.net] has joined #lisp 09:59:05 aerique [~euqirea@rl.xs4all.nl] has joined #lisp 10:01:31 -!- aerique [~euqirea@rl.xs4all.nl] has quit [Client Quit] 10:05:30 -!- ineol [~hal@78.250.206.230] has quit [Read error: Connection reset by peer] 10:05:33 ineol_ [~hal@78.250.206.230] has joined #lisp 10:07:29 -!- ASau [~user@83.69.227.32] has quit [Remote host closed the connection] 10:09:27 plutonas [~plutonas@port-92-195-20-219.dynamic.qsc.de] has joined #lisp 10:11:10 -!- bombshelter13b [~bombshelt@76-10-149-209.dsl.teksavvy.com] has quit [Quit: If only your veins were filled with oil, the world would rush to your rescue!] 10:11:54 slash_ [~Unknown@whgeh0250.cip.uni-regensburg.de] has joined #lisp 10:12:24 demmeln [~Adium@dslb-188-099-117-072.pools.arcor-ip.net] has joined #lisp 10:14:22 Zephyrus [~emanuele@unaffiliated/zephyrus] has joined #lisp 10:17:55 -!- fusss_ [~chatzilla@60-241-1-206.static.tpgi.com.au] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20091221164558]] 10:21:15 Adlai` [~adlai@unaffiliated/adlai] has joined #lisp 10:25:06 -!- Adlai [~adlai@unaffiliated/adlai] has quit [Ping timeout: 258 seconds] 10:26:32 possibly silly question: what good is the clos :type slot option, when the result of assigning a value of the wrong type to the slot is undefined? 10:26:41 SBCL seems to just allow it 10:27:25 it won't allow with higher debugging settings 10:27:38 the CLHS says that it changes the generic reader function for the class 10:27:50 does that mean clos objects have a read syntax? 10:28:57 thanks stassats 10:29:28 not that reader 10:30:00 Edico [~Edico@unaffiliated/edico] has joined #lisp 10:35:30 -!- leo2007 [~leo@soup.linux.pwf.cam.ac.uk] has quit [Quit: out] 10:36:32 mstevens [~mstevens@eris.etla.org] has joined #lisp 10:39:27 b4|hraban [~b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 10:42:21 konr [~user@187.117.109.108] has joined #lisp 10:43:52 mega1 [~quassel@3e70cb39.adsl.enternet.hu] has joined #lisp 10:44:19 -!- fiveop [~fiveop@g229071059.adsl.alicedsl.de] has quit [Quit: humhum] 10:47:16 spoke [~msw@75-101-102-192.dsl.static.sonic.net] has joined #lisp 10:50:38 pjb [~t@238.Red-79-149-135.staticIP.rima-tde.net] has joined #lisp 10:51:10 Anyone with Windows SBCL feel like trying buildapp? 10:54:49 ThomasI [~thomas@unaffiliated/thomasi] has joined #lisp 11:00:07 ASau [~user@83.69.227.32] has joined #lisp 11:00:44 tcr [~tcr@host146.natpool.mwn.de] has joined #lisp 11:07:24 dabd [~dabd@a85-139-98-111.cpe.netcabo.pt] has joined #lisp 11:11:59 -!- meric [~Eric@203-214-147-25.perm.iinet.net.au] has quit [Quit: meric] 11:13:20 Rix [~Rixiii@77-85-21-9.btc-net.bg] has joined #lisp 11:13:51 -!- drwho [~d@c-98-225-208-183.hsd1.pa.comcast.net] has quit [Quit: Gauss Eleminated] 11:14:41 drwho [~d@c-98-225-208-183.hsd1.pa.comcast.net] has joined #lisp 11:16:01 -!- ASau [~user@83.69.227.32] has quit [Ping timeout: 245 seconds] 11:20:13 kenjin2201 [~kenjin@220.120.43.80] has joined #lisp 11:21:33 -!- somecodehere [~ingvar@75.186.191.90.dyn.estpak.ee] has quit [Read error: Connection reset by peer] 11:26:03 -!- dabd [~dabd@a85-139-98-111.cpe.netcabo.pt] has quit [Ping timeout: 258 seconds] 11:26:43 c|mell [~cmell@cpc3-colc5-0-0-cust193.colc.cable.ntl.com] has joined #lisp 11:30:53 I haven't run windows in some years 11:31:43 but my problem with buildapp the other night was probably because I'm using clbuild to run sbcl 11:32:44 which prefixes its own arguments, such as --core and a few --evals to require asdf etc 11:33:13 these seem to prevent subsequent --noinform and --load arguments from working 11:37:05 -!- bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has quit [Ping timeout: 260 seconds] 11:40:43 yay for clbuild 11:40:56 the cause of and solution to all of lisp's problems 11:42:44 I don't see how buildapp and clbuild would conflict. If there is such a bug, please elaborate, because I can't fix what I'm not aware of. 11:43:09 What I'm seeing in the sources is that buildapp/Makefile calls a program called "sbcl". How could that possibly end up running the clbuild script? 11:44:18 the cause of and solution to all of lisp's problems 11:44:53 yeah, it fools users into thinking they're lisp experts 11:45:00 CyberBlue [~yong@111.167.27.216] has joined #lisp 11:45:40 *Xach* wonders about shell aliases 11:47:26 spacebat: help! 11:47:56 I think new clbuild users might sometimes be overestimating the extent to which clbuild solves problems. 11:50:45 -!- pjb [~t@238.Red-79-149-135.staticIP.rima-tde.net] has quit [Ping timeout: 276 seconds] 11:53:30 the dwim code base is scary 11:53:51 http://dwim.hu/darcsweb/darcsweb.cgi?r=HEAD%20hu.dwim.def;a=headblob;f=/integration/common.lisp 11:54:51 *lichtblau* heart dwim.hu 11:55:29 that said, EVAL-WHEN, and how externalizing works in CL is frightening 11:56:10 *stassats* still doesn't get what's so scary about eval-when 11:56:44 state, and how it transfers from evaluation-at-compile-time to run-time 11:56:59 -!- beach` is now known as beach 11:57:13 in fact, one might say that eval-when is the cause of and solution to all of lisp's problems 11:57:27 all this is kafkaesque's where with kafkaesque I mean c++eque 11:57:28 (with apologies to Xach) 12:00:14 heh 12:00:28 don't worry, I don't think I'm a lisp expert 12:01:26 yes, buildapp was calling sbcl, which wasn't found (I uninstalled the old version I used to bootstrap the clbuild version, to save confusion between them) 12:02:05 rather than edit buildapp to call clbuild, I wrote a wrapper to call clbuild lisp "$@" 12:02:50 I recommend running buildapp with the clbuild/target/bin/sbcl binary directly. 12:03:03 (You might have to set SBCL_HOME prior to that.) 12:03:26 but that didn't work - at first I thought it was a problem with buildapp, then clbuild, then I realised that sbcl seems to require its arguments in a particular order I guess - because in the order they were appearing, the buildapp stuff wasn't being run 12:03:55 Bah I use a wrapper script, too, so I don't have to set SBCL_HOME 12:03:57 I tried that, but it complained that various things like trivial-features couldn't be found 12:04:33 so I had to add back in the --eval arguments to set up asdf that clbuild does 12:04:41 and found myself back in the same place :) 12:04:48 OmniMancer1 [~OmniMance@219-89-91-200.jetstart.xtra.co.nz] has joined #lisp 12:05:20 -!- OmniMancer [~OmniMance@222-154-176-115.jetstream.xtra.co.nz] has quit [Ping timeout: 265 seconds] 12:06:05 Wrapper scripts are all nice and well, just don't write one that intentionally does something else than plain sbcl and then be surprised it's different. 12:06:36 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Read error: Connection reset by peer] 12:07:00 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 12:07:14 that can be said about ~/.sbclrc as well 12:07:21 *lichtblau* uses a hacked runtime.c that ignores $SBCL_HOME instead of a wrapper 12:07:23 so buildapp expects an sbcl that has asdf set up already 12:07:47 lichtblau: Yeah there's patch of mine floating around with which you can just symlink 12:08:39 tgoodsell [~tgoodsell@173.48.205.68] has joined #lisp 12:11:51 -!- b4|hraban [~b4@a83-163-41-120.adsl.xs4all.nl] has quit [Ping timeout: 245 seconds] 12:12:41 b4|hraban [~b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 12:14:57 Blkt [~user@net-93-146-149-241.t2.dsl.vodafone.it] has joined #lisp 12:17:52 capt^ [~usman@196.1.232.237] has joined #lisp 12:18:09 -!- capt^ [~usman@196.1.232.237] has quit [Quit: Leaving.] 12:18:54 -!- tgoodsell [~tgoodsell@173.48.205.68] has left #lisp 12:24:35 -!- kpreid [~kpreid@216-171-189-244.northland.net] has quit [Quit: kpreid] 12:25:01 kpreid [~kpreid@216-171-189-244.northland.net] has joined #lisp 12:25:02 Odin- [~sbkhh@s121-302.gardur.hi.is] has joined #lisp 12:27:03 ASau [~user@83.69.227.32] has joined #lisp 12:31:21 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Read error: Connection reset by peer] 12:32:17 -!- mstevens [~mstevens@eris.etla.org] has quit [Quit: leaving] 12:32:30 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 12:38:53 spacebat: hmm, does it? 12:39:05 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Read error: Connection reset by peer] 12:39:13 spacebat: no, i don't think it does. 12:39:38 tgoodsell [~tgoodsell@173.48.205.68] has joined #lisp 12:39:46 -!- tgoodsell [~tgoodsell@173.48.205.68] has left #lisp 12:40:07 -!- spradnyesh [~pradyus@122.167.67.168] has left #lisp 12:41:44 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 12:41:48 *lichtblau* guesses "set up" in the sense of "central registry configured as desired" 12:42:20 pjb [~t@2.Red-79-149-80.staticIP.rima-tde.net] has joined #lisp 12:42:59 sysop_fb [~bleh@80.255.39.35] has joined #lisp 12:43:28 no...it doesn't! 12:44:06 -!- jmbr [~jmbr@160.33.220.87.dynamic.jazztel.es] has quit [Ping timeout: 272 seconds] 12:45:59 oh, I see. Sorry for not reading the fine docs properly. 12:46:51 That's a pretty clever interface you've come up with there. 12:53:37 thanks 12:54:19 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Remote host closed the connection] 12:55:05 for me, it replaces writing lengthy dump scripts with shorter Make rules 12:55:10 -!- Odin- [~sbkhh@s121-302.gardur.hi.is] has quit [Quit: Odin-] 12:56:20 -!- Phoodus [foo@97-124-127-114.phnx.qwest.net] has quit [Read error: Connection reset by peer] 12:57:02 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 13:03:42 and one-offs get a lot easier 13:05:30 meric [~Eric@124-171-63-122.dyn.iinet.net.au] has joined #lisp 13:07:59 -!- Kaonashi [~root@ppp118-210-228-215.lns20.adl6.internode.on.net] has quit [Quit: leaving] 13:11:16 -!- mega1 [~quassel@3e70cb39.adsl.enternet.hu] has quit [Ping timeout: 256 seconds] 13:11:49 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 264 seconds] 13:12:16 Kaonashi [~root@ppp118-210-228-215.lns20.adl6.internode.on.net] has joined #lisp 13:13:11 -!- spoke [~msw@75-101-102-192.dsl.static.sonic.net] has quit [Ping timeout: 246 seconds] 13:16:50 -!- Spaghett1ni [~Spaghetti@vaxjo7.181.cust.blixtvik.net] has quit [Ping timeout: 248 seconds] 13:19:09 -!- kenjin2201 [~kenjin@220.120.43.80] has quit [Ping timeout: 276 seconds] 13:19:35 -!- ThomasI [~thomas@unaffiliated/thomasi] has quit [Quit: Bye Bye!] 13:20:08 mega1 [~quassel@53d82793.adsl.enternet.hu] has joined #lisp 13:20:16 I wonder how long it'll take until google changes their olympics image. 13:24:51 Dodek [~Dodek@wikipedia/Dodek] has joined #lisp 13:24:51 -!- mega1 [~quassel@53d82793.adsl.enternet.hu] has quit [Read error: Connection reset by peer] 13:25:03 stassats [~stassats@wikipedia/stassats] has joined #lisp 13:25:43 adu [~ajr@pool-173-66-253-196.washdc.fios.verizon.net] has joined #lisp 13:31:38 DrunkTomato [~DEDULO@ext-gw.wellcom.tomsk.ru] has joined #lisp 13:34:04 oh jesus, you're right that's suddenly in poor taste 13:36:15 Xach: it must have been the cffi test suite that I was thinking of which expects asdf 13:37:19 *Xach* boggles 13:38:28 rstandy [~rastandy@net-93-144-87-28.t2.dsl.vodafone.it] has joined #lisp 13:39:54 hi 13:40:14 :) 13:40:22 how can I reopen the *standard-input* in binary mode? 13:40:51 rstandy: which lisp? 13:40:59 and which os, for that matter 13:40:59 lichtblau: sbcl 13:41:09 GNU/Linux 13:42:06 lichtblau: uhmmmm, isn't there a portable solution? 13:43:49 no standard solution 13:44:14 carlocci [~nes@93.37.222.242] has joined #lisp 13:48:20 Trick #1 is to open /dev/tty or /dev/fd/0, the former of which is unportable to Windows, the latter not even portable to every Unix. 13:48:29 Trick #2 to re-assign the appropriate stream. 13:48:44 Trick #3 is to use a bivalent stream, so that characters also still work, again unportable. 13:48:47 (setf sb-sys:*stdout* (open "/dev/tty" :element-type :default :direction :output :if-exists :overwrite)) 13:49:00 similarly for sb-sys:*tty* with :direction :io, and so on 13:49:06 thank you very much 13:49:26 that's an acceptable solution for my porpouse 13:49:29 thanks 13:50:23 SBCL has nice bivalent streams, but is apparently afraid of using them by default. 13:50:59 you can create a bivalent stream from *standard-input*, then 13:51:30 ignas [~ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 13:51:44 spacebat: in the sense of wrapping a flexi-streams around that? Not really, because you can build a bivalent streams around a binary one, but not around a character stream. 13:52:32 InvisibleTomato [~DEDULO@ext-gw.wellcom.tomsk.ru] has joined #lisp 13:52:44 -!- OmniMancer1 [~OmniMance@219-89-91-200.jetstart.xtra.co.nz] has quit [Quit: Leaving.] 13:52:54 so Trick #3 requires Trick #1 13:53:38 Yes, my example uses all three of them. 13:53:42 cool 13:53:44 :) 13:54:04 If you want to get even more unportable and low-level, you can obviously stick an FD into the appropriate slot without reopening. 13:54:26 groovy :) 13:54:28 sounds scary 13:54:34 (sb-sys:make-fd-stream 0 :element-type '(unsigned-byte 8)) 13:54:48 stassats: that's too easy 13:54:56 ruepel0r [~rue@g228078060.adsl.alicedsl.de] has joined #lisp 13:54:57 :-) 13:55:25 parolang [~user@8e4a01246100775874c4f448e9887093.oregonrd-wifi-1261.amplex.net] has joined #lisp 13:55:34 bgs100 [~ian@unaffiliated/bgs100] has joined #lisp 13:56:09 -!- DrunkTomato [~DEDULO@ext-gw.wellcom.tomsk.ru] has quit [Ping timeout: 260 seconds] 13:56:17 Malm [~quassel@dslb-084-059-120-167.pools.arcor-ip.net] has joined #lisp 13:56:38 -!- Malm [~quassel@dslb-084-059-120-167.pools.arcor-ip.net] has quit [Remote host closed the connection] 13:58:58 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 13:59:37 benny [~benny@i577A8C95.versanet.de] has joined #lisp 13:59:38 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 14:01:00 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 14:01:56 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 14:08:32 davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has joined #lisp 14:08:56 -!- demmeln [~Adium@dslb-188-099-117-072.pools.arcor-ip.net] has quit [Quit: Leaving.] 14:13:00 freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 14:17:17 -!- ruepel0r [~rue@g228078060.adsl.alicedsl.de] has quit [Quit: Leaving] 14:19:30 Dawgmatix_ [~dman@c-76-124-9-27.hsd1.nj.comcast.net] has joined #lisp 14:21:03 LiamH [~nobody@pool-72-75-123-60.washdc.east.verizon.net] has joined #lisp 14:21:38 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 14:22:31 -!- Dawgmatix_ [~dman@c-76-124-9-27.hsd1.nj.comcast.net] has quit [Client Quit] 14:22:31 jmbr [~jmbr@150.33.220.87.dynamic.jazztel.es] has joined #lisp 14:22:35 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 14:22:51 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 14:23:35 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 14:27:28 somecodehere [~ingvar@75.186.191.90.dyn.estpak.ee] has joined #lisp 14:31:37 kenjin2201 [~kenjin@220.120.43.80] has joined #lisp 14:40:50 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 14:43:21 fsl [~fsl@auf186.internetdsl.tpnet.pl] has joined #lisp 14:44:03 hmm 14:45:49 -!- adu [~ajr@pool-173-66-253-196.washdc.fios.verizon.net] has quit [Quit: adu] 14:47:52 Morbeo [myrlochar@91.92.170.132] has joined #lisp 14:47:54 -!- Arcade [myrlochar@91.92.170.132] has quit [Ping timeout: 240 seconds] 14:53:15 -!- kenjin2201 [~kenjin@220.120.43.80] has quit [Ping timeout: 240 seconds] 14:54:22 abeaumont [~abeaumont@84.76.48.250] has joined #lisp 14:56:43 dreish [~dreish@minus.dreish.org] has joined #lisp 14:58:36 Edward [Ed@AAubervilliers-154-1-47-189.w90-3.abo.wanadoo.fr] has joined #lisp 14:58:41 -!- benny [~benny@i577A8C95.versanet.de] has quit [Remote host closed the connection] 15:01:33 benny [~benny@i577A8C95.versanet.de] has joined #lisp 15:04:52 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Read error: Connection reset by peer] 15:06:10 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 15:17:34 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 15:20:34 mk [~user@159.92.64.121] has joined #lisp 15:20:42 cmsimon [~iamcms@unaffiliated/cmsimon] has joined #lisp 15:21:02 -!- mk is now known as Guest89245 15:26:00 -!- CyberBlue [~yong@111.167.27.216] has quit [Quit: Leaving] 15:26:58 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 15:33:03 CyberBlue [~yong@111.167.27.216] has joined #lisp 15:33:29 Odin- [~sbkhh@s121-302.gardur.hi.is] has joined #lisp 15:35:13 sepult [~user@xdsl-87-78-175-181.netcologne.de] has joined #lisp 15:35:28 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 15:35:56 Guthur [~Michael@host81-132-10-255.range81-132.btcentralplus.com] has joined #lisp 15:38:55 stassats` [~stassats@178.66.82.201] has joined #lisp 15:38:56 -!- stassats` [~stassats@178.66.82.201] has quit [Changing host] 15:38:56 stassats` [~stassats@wikipedia/stassats] has joined #lisp 15:39:04 reprore_ [~reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 15:40:12 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 276 seconds] 15:43:09 -!- HET2 [~diman@chello084114129176.4.15.vie.surfer.at] has quit [Quit: This computer has gone to sleep] 15:46:27 -!- Guthur [~Michael@host81-132-10-255.range81-132.btcentralplus.com] has quit [Read error: Connection reset by peer] 15:47:05 -!- Adlai` is now known as Adlai 15:49:10 HET2 [~diman@chello084114129176.4.15.vie.surfer.at] has joined #lisp 15:49:27 -!- Odin- [~sbkhh@s121-302.gardur.hi.is] has quit [Quit: Am I missing an eyebrow?] 15:50:48 jleija [~jleija@adsl-243-237-77.chs.bellsouth.net] has joined #lisp 15:51:36 -!- CyberBlue [~yong@111.167.27.216] has quit [Quit: Leaving] 15:55:17 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 15:57:09 -!- meric [~Eric@124-171-63-122.dyn.iinet.net.au] has quit [Quit: meric] 15:59:55 ichernetsky [~ichernets@195.222.66.184] has joined #lisp 16:00:11 -!- ichernetsky [~ichernets@195.222.66.184] has quit [Client Quit] 16:04:21 -!- NNshag [~shag@lns-bzn-60-82-254-220-250.adsl.proxad.net] has quit [Ping timeout: 245 seconds] 16:08:22 is there a tutorial or documentation somewhere on how to create a standalone executable from a .lisp file? like, is there an equivalent to main(), and how do you "compile" a lisp file rather than REPL it? 16:08:52 <_3b> clhs compile-file 16:08:52 http://www.lispworks.com/reference/HyperSpec/Body/f_cmp_fi.htm 16:08:58 <_3b> (not actually useful here though) 16:09:06 -!- sepult [~user@xdsl-87-78-175-181.netcologne.de] has quit [Ping timeout: 252 seconds] 16:09:45 <_3b> minion: tell yates about creating executables 16:09:46 yates: look at creating executables: Newcomers to Lisp often ask how to "create an executable" from their Lisp program. http://www.cliki.net/creating%20executables 16:10:03 _3b: thank you. 16:10:36 <_3b> note that some implementations produce fairly large executables, which may or may not be a problem for you 16:11:46 sepult [~user@xdsl-87-78-123-213.netcologne.de] has joined #lisp 16:12:15 you mean because they include the debugger/compiler? 16:12:23 <_3b> right 16:12:45 Yuuhi [benni@p5483A6AB.dip.t-dialin.net] has joined #lisp 16:12:56 right - i'll go trhough the documentation they reference in the wiki to get further details. 16:13:29 <_3b> not bad when you compare to something like java or .net if you count the runtime, but most lisps don't have the ability to separate the runtime and install it once, so it is included in every executable 16:13:45 i'm tentatively using sbcl 16:14:03 <_3b> yeah, sbcl is one of the worst for exectuable size :) 16:14:10 C programs have an operating system glued to them 16:14:11 yates: Hey, I just wrote a program to do that 16:14:16 yates: http://xach.com/lisp/buildapp/ is it 16:14:42 Xach: way cool - lemme check it out 16:14:58 "buildapp --load myapp.lisp --entry myapp:main --output myapp.exe" would be an example of how to use it 16:15:03 -!- sepult [~user@xdsl-87-78-123-213.netcologne.de] has quit [Client Quit] 16:15:24 it doesn't do anything sbcl doesn't do itself, but hopefully it makes it a little more convenient 16:15:31 thanks Xach! 16:15:43 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 16:15:56 Guthur [~Michael@host81-132-10-255.range81-132.btcentralplus.com] has joined #lisp 16:18:46 NNshag [~shag@lns-bzn-24-82-64-152-232.adsl.proxad.net] has joined #lisp 16:19:56 sepult [~user@xdsl-87-78-123-213.netcologne.de] has joined #lisp 16:27:41 -!- konr [~user@187.117.109.108] has quit [Ping timeout: 245 seconds] 16:28:01 Adlai` [~adlai@unaffiliated/adlai] has joined #lisp 16:28:41 -!- Adlai [~adlai@unaffiliated/adlai] has quit [Disconnected by services] 16:28:53 -!- Adlai` is now known as Adlai 16:30:12 Sumpen [~Sumpen@81-232-77-93-no46.tbcn.telia.com] has joined #lisp 16:30:22 -!- Sumpen [~Sumpen@81-232-77-93-no46.tbcn.telia.com] has quit [Client Quit] 16:32:57 -!- cmsimon [~iamcms@unaffiliated/cmsimon] has quit [Quit: brb.] 16:35:54 Sumpen [~Sumpen@81-232-77-93-no46.tbcn.telia.com] has joined #lisp 16:35:55 -!- freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote host closed the connection] 16:36:17 freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 16:37:17 haha fuck, the putative fix for the lost wakeup in condition-wait has unwanted consequences 16:37:31 oh? 16:38:01 Currently, you can wake up yourself waiting on a condition-variable from within a deadline handler 16:40:45 I'm stunned by the implementation of with-pinned-objects 16:41:04 lovely bag of magic 16:42:00 -!- davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has quit [Read error: Connection reset by peer] 16:49:55 nyef [~nyef@pool-64-222-146-224.man.east.myfairpoint.net] has joined #lisp 16:49:58 Hello all. 16:50:14 yay nyef! 16:50:24 I was looking for a wizard :-) 16:50:56 Can you explain to me the use of dx-let in the expansion of with-pinned-objects? 16:51:13 In particular what the comment above it is supposed to tell me 16:51:35 -!- morphling [~stefan@gssn-5f7547f8.pool.mediaWays.net] has quit [Remote host closed the connection] 16:51:37 ... Where? 16:52:48 in the definition of wpo 16:52:56 Ah, src/compiler/target/macros.lisp ? 16:53:07 morphling [~stefan@gssn-5f7547f8.pool.mediaWays.net] has joined #lisp 16:53:17 ah sorry yes I didn't realize it's backend specific 16:53:32 src/compiler/x86/ 16:53:38 Yeah, looking at it now. 16:53:58 Seems straightforward to me. 16:54:37 The compiler is allowed to allocate "value cells" for certain data, typically that involved in a closure. 16:54:42 -!- redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has quit [Quit: Leaving.] 16:54:53 These value cells are on the heap, not the stack. 16:55:10 Usually you have (let ((foo (make-a-foo ...))) ... (with-pinned-objects (foo) ...)), so the dx-let most often just sees references to other bindings 16:55:29 The way with-pinned-objects works is to maintain a pointer to the object on the stack, which is scanned conservatively. 16:56:04 The GC can't move a heap object referred to from the stack in case the reference on the stack isn't actually supposed to be a heap reference (consider an unboxed integer that Just Happens to look like a heap object reference). 16:56:43 And this, of course, only applies to gencgc platforms. 16:57:02 -!- Dodek [~Dodek@wikipedia/Dodek] has quit [Quit: EKG2 - It's better than sex!] 16:57:22 I didn't get why the gc cannot move those 16:57:44 if the stack contains an unboxed integer that looks like a heap object reference 16:57:47 Imagine that you have a value on the stack that looks like a heap object pointer, but is actually a bitmask or something. 16:58:00 If you move the heap object, you must update the references. 16:58:17 If you update something as a reference that isn't actually a reference, you've just screwed up. 16:58:30 hmhm 16:58:58 but why can't gc discriminate? 16:59:36 Because it doesn't have sufficient information, particularly when you've passed a reference to a lisp object to foreign code. 16:59:56 But even within lisp code, the information isn't always available. 17:00:26 Can you stack-allocated unboxed floats eg? 17:00:42 (If any information is available at all, it's in the debug-fun structure, which is populated based on your debug optimization policy.) 17:00:57 Yes, unboxed floats can be stack-allocated. 17:01:18 In fact, many backends have a separate number-stack-pointer for that sort of thing. 17:02:06 On x86oids there's no separate number stack, thus they go on the control stack. 17:03:25 can you elaborate on the "particularly when you've passed a reference to a lisp object to foreign code"? How does that work in the first place? Why is it a problem for gc? 17:04:13 gonzojive_ [~red@c-24-130-129-213.hsd1.ca.comcast.net] has joined #lisp 17:04:20 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 17:04:35 It's a problem for GC because it suddenly needs to deal with updating alien stack frames for heap references as well as lisp stack frames. 17:04:52 How does it work in the first place? You're using with-pinned-objects, aren't you? 17:04:58 That much should be obvious. 17:05:13 Well, I mean regarding the marshalling 17:05:19 or unmarshalling rather 17:05:53 -!- Lycurgus [~Ren@cpe-72-228-177-92.buffalo.res.rr.com] has quit [Remote host closed the connection] 17:06:26 nyef: what about adding stack guards near pointers that have to be "updateable" (plus of course guards on foreign parts of the stack) 17:06:51 gonzojive__ [~red@c-76-102-6-9.hsd1.ca.comcast.net] has joined #lisp 17:10:23 jewel [~jewel@41.30.34.70] has joined #lisp 17:10:48 p_l: Wouldn't it be better to include a mapping from return-address to frame-pointer-offsets for live pointers? 17:10:53 nyef: I guess you'd have to update alien stack frames in case you allowed passing unpinned lisp ptrs to foreign land, but with-pinned-object obviates having to do so? -- or did I misunderstand? 17:11:12 -!- gonzojive_ [~red@c-24-130-129-213.hsd1.ca.comcast.net] has quit [Ping timeout: 276 seconds] 17:11:30 syamajala [~syamajala@c-76-119-52-223.hsd1.ma.comcast.net] has joined #lisp 17:11:36 -!- somecodehere [~ingvar@75.186.191.90.dyn.estpak.ee] has quit [Remote host closed the connection] 17:11:50 tcr: SBCL internally does such passing, and it's convenient in user code as well, especially in a single-threaded lisp which can't asynchronously GC anyway. 17:12:25 varjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 17:12:52 so its GC can deal with alien stack frames? 17:13:13 p_l: Then also rule that no unpinned object should be passed to alien code, and you're basically done. Alternately, you could attempt to track down references to lisp heap objects from alien code by way of dwarf debug info. 17:13:54 ve [~a@smith.xen.tardis.ed.ac.uk] has joined #lisp 17:14:29 If it can deal with alien stack frames, I guess it can distinguish between alien stack frames and lisp stack frames? 17:14:36 tcr: SBCL's gencgc treats the stack as an array of "conservative" root pointers. They're not allowed to be updated, and they might point to heap space. Anything that they point to in heap space is considered live and immovable. And this is done on a page-granular basis, so there's quite a range of stuff that can end up pinned from any given reference. 17:16:51 Fare [~Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #lisp 17:17:37 Is it possible to distinguish between alien frames and lisp frames? How does that work? 17:18:13 you mean "by calling an existing function", or "by writing a function that would do it"? 17:18:40 you could always look at the PC, and see if it's in a zone registered as being "Lisp". 17:19:24 How does that work for frames below the one currently pointed to by PC? 17:19:29 and/or grovel DWARF and other debugger annotations 17:19:54 well, each frame hopefully has a "stack map" of some kind 17:20:03 from which you grovel to the next frame. 17:20:08 Uh well SBCL does seem to be able to distinguish judging from the ("foreign calls") in backtraces, and it does not include a dwarf parser 17:21:03 it may be assuming that every foreign call saves the frame pointer or something. 17:21:30 -!- Yuuhi [benni@p5483A6AB.dip.t-dialin.net] has quit [Ping timeout: 272 seconds] 17:22:15 and/or saving information on the side when calling from Lisp to C, so as to be able to "reframe" even if the previous leads to mistakes 17:22:40 after all, you only need to know about Lisp frames and the existence of opaque foreign frames. 17:23:06 -!- Modius [~Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Quit: I'm big in Japan] 17:23:52 hm when I (break) I see four foreign frames at the end of the backtrace, indicating that foreign frames can be distinguished even in case of foreign call nesting 17:24:32 rdd [~rdd@c83-250-52-182.bredband.comhem.se] has joined #lisp 17:25:01 -!- jewel [~jewel@41.30.34.70] has quit [Ping timeout: 264 seconds] 17:25:24 I don't think (i.e. I wouldn't understand how) you could store that kind of information to reframe nested foreign calls 17:25:40 they probably can in the easy case that they follow "save the frame pointer first thing when called" pattern. 17:25:54 is that part of C ABI? 17:26:16 "calling convention" is probably the right term 17:26:20 meric [~Eric@124-171-63-122.dyn.iinet.net.au] has joined #lisp 17:26:21 well, maintain a PDL of where are the Lisp frames that call into C -- that's easy. 17:26:46 (and possibly same for which are called from C, if you don't have any way of distinguishing them) 17:27:19 then it's just a matter of walking the stack and checking you didn't go past the last value in the PDL 17:27:23 marioxcc [~user@200.92.23.60] has joined #lisp 17:27:57 there's a convention for pushing the frame pointer. Dunno how often it's used. 17:28:13 you might skip a few frames that didn't save it. 17:28:55 i.e. frame 1 calls frame 2 that saves, calls frame 3, 4, 5 that don't, calls frame 6 that does. You walk directly from frame 6 to frame 1. 17:29:28 who cares? 17:30:06 Depending on your ABI, your optimization and debug level, etc., you can rely or not on the frame pointer to be saved. 17:30:21 mattrepl [~mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has joined #lisp 17:30:24 Yeah, SBCL assumes that all foreign code saves a frame pointer. Which means, on -fomit-frame-pointer functions, it's screwed. 17:30:38 nyef: can it recover to the previous Lisp-to-C point? 17:30:40 Hence why the x86-64 runtime is compiled -fno-omit-frame-pointer. 17:30:46 Not sure, doubt it. 17:30:46 nyef: how screwed ? 17:30:53 Truncated backtrace. 17:31:16 It's not like the GC contains any smarts for finding frames in the stack. 17:31:24 So at least that's not affected. 17:33:20 Thanks for the discussion, btw. I feel brain cells growing. 17:34:19 drewc: I had a dream about how nice something like categories might be to express something like a sequences protocol... 17:34:28 nyef: What I do not understand in that comment is the "for some unfathomable reasons"; don't you actually want the dx-let to create stack-allocated values cells? 17:35:26 I mean the LET bindings are not flushed due to touch-object, so what else than creating a value cell could it do? 17:35:37 -!- splittist [~joe@30-245.62-188.cust.bluewin.ch] has quit [Quit: too hard ):] 17:38:21 tcr: The case being protected against here is allocating a value-cell on the heap. 17:38:31 dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has joined #lisp 17:39:14 Next Boston Lisp Meeting: Monday February 22nd 2010 - Adam Chlipala on A Sane Approach to Modern Web Application Development @ Harvard Pierce 209. 17:39:32 ... Yet -another- location? 17:39:51 nyef: Yes but I do not get the "for some unfathomable reasons" bits; what else then allocating a value-cell could it decide to do? 17:39:51 Fare: sweet 17:39:54 you don't like University hopping? 17:41:14 nyef: or GPS navigation? 17:42:05 -!- fsl [~fsl@auf186.internetdsl.tpnet.pl] has quit [Quit: WeeChat 0.3.1.1] 17:42:56 *Xach* tries to decide between TC Lispers and Boston Lisp 17:44:02 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Read error: Connection reset by peer] 17:44:24 Xach: you're thinking of coming over here? 17:44:45 dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has joined #lisp 17:45:35 rlb3 [~AndChat@166.133.39.93] has joined #lisp 17:46:44 mjonsson [~mjonsson@cpe-74-68-154-7.nyc.res.rr.com] has joined #lisp 17:47:22 -!- whoppix [~whoppix@ti0021a380-dhcp0832.bb.online.no] has quit [Ping timeout: 252 seconds] 17:47:48 rgawron [~rgawron@chello089079032023.chello.pl] has joined #lisp 17:47:49 dabd [~dabd@a85-139-98-111.cpe.netcabo.pt] has joined #lisp 17:48:48 tcr: The question is -why- does it allocate the value-cell? 17:49:17 where's TC ? 17:49:30 Xach: do they meet at the same date? 17:51:09 Fare: yes. tc is in minnesota 17:51:10 nyef: What else should LET do? 17:52:00 tcr: stack-allocate? 17:53:26 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 17:53:34 are you going to Minnesota just for the occasion? 17:53:38 hm ok 17:53:49 I think I get it now 17:54:15 abugosh1 [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 17:54:34 TR2N [email@89-180-214-3.net.novis.pt] has joined #lisp 17:54:58 *Fare* wrote a cl-launch 3.0 that relies on asdf 1.6 but won't release it because no one uses asdf 1.6 yet. 17:55:04 Fare: i wasn't planning on it. that tilts the favor to boston. 17:55:05 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Quit: dnolen] 17:55:12 Couldn't it legitimately put the value in a register? Are registers considered conservative roots by the gc as well? 17:55:27 cl-launch 3.0 basically is 2.x without the output translation layer, which is now in asdf. 17:55:47 Xach: if you're looking for a room in Boston, I have one. 17:55:54 (instead of driving at night) 17:56:03 *Xach* takes the train to Boston Lisp 17:56:17 tcr: if you have enough registers, LET could certainly register-allocate 17:57:03 any lightning talks for the next BLM? 17:57:12 I could give one on the current state of XCVB, I suppose 17:57:23 and/or that of ASDF 17:57:31 ASDF would make more sense, at this point 17:57:41 or both 17:57:41 "How wanted to kill ASDF and instead became the maintainer of ASDF" 17:57:45 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Ping timeout: 252 seconds] 17:57:46 tcr: In theory, you're doing this just prior to an alien-funcall. What happens to your register set now? 17:57:55 I still want to kill it 17:58:06 It's your nemesis 17:58:08 -!- Sumpen [~Sumpen@81-232-77-93-no46.tbcn.telia.com] has quit [Quit: Planned down time ^^] 17:58:18 I want to kill a powerful nemesis, not a weak one 17:58:23 there's no glory in the latter 17:58:42 -!- Edward [Ed@AAubervilliers-154-1-47-189.w90-3.abo.wanadoo.fr] has quit [Read error: Connection reset by peer] 17:58:52 beside, I want to share my source-registry configuration files with ASDF. 17:58:52 Sounds like epic failure :-) 17:59:13 Fare: ... You realize that the natural conclusion to this scenario is that your nemesis manages to defeat you instead, right? 17:59:21 yeah I see the point in why you're doing it, I'm just not sure it'll help your cause eventually 18:01:47 nyef: so registers are not conservative roots? I'd wonder because unboxed floats etc could end up in registers, can't they? 18:02:01 They are conservative roots, but you're about to spill all of them. 18:02:02 -!- Guthur [~Michael@host81-132-10-255.range81-132.btcentralplus.com] has quit [Ping timeout: 272 seconds] 18:02:25 So you have to worry if they're getting spilled to heap or stack. 18:02:35 tcr: I started writing a rant about why ASDF couldn't be fixed, then found a way it could while writing it, then put my money where my mouth was. 18:02:56 nyef: How is that decision made? 18:03:02 JayK [~user@dslb-094-223-163-210.pools.arcor-ip.net] has joined #lisp 18:03:16 -!- abugosh1 [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 18:03:19 Not sure. I think it defaults to stack, though. 18:03:23 hi 18:03:31 tcr: registers need not be conservative roots if you spill registers to the stack just before you call the GC, and the GC already uses the stack... 18:04:08 I'm not really familiar with the pack phase of the compiler. 18:04:09 *Fare* now tries to resurrect XCVB. 18:04:40 -!- rgawron [~rgawron@chello089079032023.chello.pl] has quit [Ping timeout: 256 seconds] 18:04:52 -!- marioxcc is now known as marioxcc-busy 18:05:20 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 18:05:28 -!- _3b` [foobar@cpe-70-112-214-100.austin.res.rr.com] has quit [Remote host closed the connection] 18:06:17 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Ping timeout: 260 seconds] 18:06:45 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Client Quit] 18:07:53 ichernetsky [~ichernets@195.222.66.184] has joined #lisp 18:08:22 whoppix [~whoppix@ti0021a380-dhcp0832.bb.online.no] has joined #lisp 18:08:34 has anyone tried the latest ASDF? 18:09:01 (by which I mean, the 1.6 series) 18:09:45 only a little bit 18:09:56 its loading it not automated 18:09:58 -!- ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit [Quit: When there's nothing left to burn, you have to set yourself on fire.] 18:10:32 I'm calling a cffi foreign function which causes my lisp program to 'hang': if I interrupt the execution from Emacs with C-c C-c (this is possible) the backtrace stays the same all the time. What could cause this except for an endless loop in the foreign code (so far I didn't find one there anyway)? 18:11:30 grrrr, what the hell can cause /dev/null to be once in a while transformed into a regular file???? 18:12:15 JayK: Do you call the function in the REPL? 18:12:15 Fare: Malicious admins? 18:12:27 nyef: I may have a dual malicious personality 18:12:54 the symptom is that my lisp programs fail, presumably because sbcl tries to use /dev/null as its init file. 18:12:59 tcr: no an indirectly invoked function calls a foreign function defined by defcfun 18:13:09 took me a while to figure out what was going on the first time over. 18:13:52 ... That's... odd. 18:14:00 Fare: Ok I just put (asdf:load-system :asdf) for hot-upgrading into my .sbclrc. 18:14:33 Fare: I think you should post to the mailing list, and tell people to get asdf from git, put asdf.asd in their registry place, and put (asdf:load-system :asdf) into their ~/.foorc 18:14:36 We ran into something similar with SBCL itself. The --no-sysinit options are relatively recent, /dev/null doesn't exist on VMS^H^H^HWin32, and we still need to kill the initfiles. 18:14:52 interestingly, I will recommend AGAINST including asdf.asd in the SBCL distribution, because SBCL has a magic asdf hook to give priority to its own ASDs, and that would prevent upgrading ASDF... 18:14:54 So what we ended up doing was using a file with known contents that had no side-effects: version.lisp-expr. 18:15:36 -!- Blkt [~user@net-93-146-149-241.t2.dsl.vodafone.it] has quit [Ping timeout: 252 seconds] 18:16:00 tcr: interestingly, it won't work if you're using an old ECL, and won't be needed in a recent enough ECL (that includes ASDF 1.6 already). 18:16:38 Fare: *asdf-version* is not exported, but *asdf-revision* seems to be gone already 18:16:45 some weird ECL issue makes (load "asdf.lisp") work, but (asdf:oos 'asdf:load-op :asdf) fail from an old ASDF, with a weird error I can't fathom. 18:17:03 tcr: not exported? but we export (asdf-version) instead. 18:17:23 Oh ok 18:17:25 -!- whoppix [~whoppix@ti0021a380-dhcp0832.bb.online.no] has quit [Quit: Leaving] 18:17:36 I wonder if it made sense to use floats to represent asdf versions 18:17:50 Amadiro [~whoppix@ti0021a380-dhcp0832.bb.online.no] has joined #lisp 18:18:24 Just remember to always pick version numbers with a precise float representation. 18:19:33 which is implementation-dependent, though :-) 18:19:33 tcr: that's why it's a string, that you can compare with asdf::version-satifies 18:20:24 that could take a doc string 18:21:33 Fare: What about (asdf:version) instead of (asdf:asdf-version)? 18:22:02 ... deftype list-of-length? 18:22:18 nyef: uh? 18:22:20 Oh, that's in a test file. No fun. 18:22:38 no fun? 18:22:59 No fun. Surely, there'd be places in the rest of the system where it could come in handy. 18:23:18 defstruct+:type list comes to mind :-) 18:23:25 btw, users of other implementations than SBCL and CCL are invited to contribute their proper-tail-call forcing methods to the PTC package. 18:23:46 nyef: which system? 18:23:56 -!- Kolyan [~nartamono@95-26-156-11.broadband.corbina.ru] has quit [] 18:24:10 varjagg [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 18:24:24 Fare: SBCL. 18:24:47 -!- varjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Read error: Operation timed out] 18:25:57 nyef: Python does not really do much with them though iirc 18:28:33 -!- JayK [~user@dslb-094-223-163-210.pools.arcor-ip.net] has quit [Ping timeout: 252 seconds] 18:28:48 Adlai` [~adlai@unaffiliated/adlai] has joined #lisp 18:29:39 ok, so no lightning talkers at BLM? 18:29:46 -!- Adlai [~adlai@unaffiliated/adlai] has quit [Remote host closed the connection] 18:30:03 please don't let me speak about ASDF! 18:30:50 unicode-afk [~user@95.214.31.247] has joined #lisp 18:30:59 dnolen [~dnolen@pool-96-224-24-64.nycmny.east.verizon.net] has joined #lisp 18:32:29 JayK [~user@dslb-094-223-163-210.pools.arcor-ip.net] has joined #lisp 18:32:56 kenjin2201 [~kenjin@220.120.43.80] has joined #lisp 18:36:56 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 18:37:01 -!- yates [~yates@cpe-174-097-145-232.nc.res.rr.com] has quit [Ping timeout: 264 seconds] 18:38:27 rindolf [~shlomi@62.219.139.216] has joined #lisp 18:39:19 -!- rindolf [~shlomi@62.219.139.216] has quit [Read error: Connection reset by peer] 18:39:45 rindolf [~shlomi@62.219.139.216] has joined #lisp 18:39:47 Fare: You might get more people trying out the new version 18:40:03 -!- rindolf [~shlomi@62.219.139.216] has left #lisp 18:40:25 I will. 18:40:28 -!- dnolen [~dnolen@pool-96-224-24-64.nycmny.east.verizon.net] has quit [Quit: dnolen] 18:40:58 I need to write a HOWTO use the new ASDF, with differences from the old one. 18:41:22 attila_lendvai [~ati@catv-89-134-66-143.catv.broadband.hu] has joined #lisp 18:41:59 redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has joined #lisp 18:42:26 Fare: if I ./run-tests.sh I get touch: cannot touch `dir1/test.asd': No such file or directory 18:42:37 hum. Weird 18:43:22 oh, that's stuff ebzzry wrote. 18:43:24 Darn. 18:43:45 what did the mkdir do or fail to do? 18:44:14 It seems like it did nothing 18:45:09 ok, if I change from sh to bash it works 18:46:07 Wow I'm drowning in redefinition warnings 18:47:28 only the last summary should matter 18:47:38 the asdf self-test is somewhat verbose 18:47:44 ought to be replaced by something better someday 18:47:48 NMP 18:49:13 -!- varjagg [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 260 seconds] 18:51:18 davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has joined #lisp 18:52:18 legumbre [~leo@r190-135-13-124.dialup.adsl.anteldata.net.uy] has joined #lisp 18:52:19 slyrus_ [~slyrus@209-188-122-100.taosnet.com] has joined #lisp 18:52:41 -!- legumbre_ [~leo@r190-135-10-210.dialup.adsl.anteldata.net.uy] has quit [Ping timeout: 246 seconds] 18:52:45 ok a test-op for asdf itself seems hard to do 18:53:00 you'd have to get at argv[0] 18:53:43 uh? 18:53:44 no. 18:54:02 Instead, rewrite the current test crap to use STEFIL or something. 18:54:24 and have proper fixtures to reset whichever global variables matter 18:54:37 (I mean, locally rebind them) 18:54:39 NMP 18:54:49 though I'll accept patches 18:55:07 (and/or bless as "new maintainer" whoever wants who'd do the job) 19:00:53 _3b` [foobar@cpe-70-112-214-100.austin.res.rr.com] has joined #lisp 19:00:56 konr [~user@187.117.74.164] has joined #lisp 19:01:19 -!- Adlai` is now known as Adlai 19:01:34 Odin- [~sbkhh@s121-302.gardur.hi.is] has joined #lisp 19:01:48 varjagg [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 19:03:18 Grrrrr.... I had to screw up SOMETHING... in this case an incorrect [REMINDER] flag in my spam... 19:03:57 Boston Lisp Meeting: Monday 2010-02-22 Adam Chlipala on A Sane Approach to Modern Web Development http://bit.ly/9FPwg4 19:06:02 -!- syamajala [~syamajala@c-76-119-52-223.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 19:06:40 phax [~phax@unaffiliated/phax] has joined #lisp 19:08:27 -!- fractalis [~fractalis@cpe-98-27-162-52.neo.res.rr.com] has quit [Read error: Connection reset by peer] 19:08:39 -!- rahul [~rjain@66-234-32-150.nyc.cable.nyct.net] has quit [Quit: (* (! t) nil)] 19:10:48 erjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 19:13:22 -!- varjagg [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 256 seconds] 19:14:48 ehu [~ehu@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 19:15:10 luis: herep 19:19:34 dnolen [~dnolen@pool-96-224-24-64.nycmny.east.verizon.net] has joined #lisp 19:21:18 -!- Adlai [~adlai@unaffiliated/adlai] has quit [Remote host closed the connection] 19:22:00 Adlai [~adlai@unaffiliated/adlai] has joined #lisp 19:22:41 -!- unicode-afk [~user@95.214.31.247] has quit [Ping timeout: 245 seconds] 19:22:51 fsl [~fsl@auf186.internetdsl.tpnet.pl] has joined #lisp 19:24:07 -!- konr [~user@187.117.74.164] has quit [Read error: Connection reset by peer] 19:24:48 -!- mjonsson [~mjonsson@cpe-74-68-154-7.nyc.res.rr.com] has quit [Read error: Connection reset by peer] 19:25:56 ehu: yes, here exists. 19:26:41 mjonsson [~mjonsson@cpe-74-68-154-7.nyc.res.rr.com] has joined #lisp 19:27:25 OmniMancer [~OmniMance@219-89-91-200.jetstart.xtra.co.nz] has joined #lisp 19:28:09 -!- marioxcc-busy is now known as marioxcc 19:28:41 ljames [~ln@unaffiliated/ljames] has joined #lisp 19:30:33 I've seen a paper claiming that SLIME should be capable of expanding macrolets (http://common-lisp.net/~trittweiler/talks/slime-lightning-talk-eclm-2009.pdf - page 6). Any idea how to use this feature and when was it implemented(my SLIME is about ~8 months old, and I don't think it has it.)? 19:31:07 -!- parolang [~user@8e4a01246100775874c4f448e9887093.oregonrd-wifi-1261.amplex.net] has quit [Remote host closed the connection] 19:31:14 AndChat| [~AndChat@166.133.123.134] has joined #lisp 19:31:37 ljames, try macroexpand-all 19:32:16 -!- rlb3 [~AndChat@166.133.39.93] has quit [Ping timeout: 245 seconds] 19:32:18 hmm, that does work, though it isn't localized 19:33:31 varjagg [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 19:36:51 -!- erjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 245 seconds] 19:40:38 -!- AndChat| [~AndChat@166.133.123.134] has quit [Ping timeout: 265 seconds] 19:42:35 -!- freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote host closed the connection] 19:44:27 konr [~user@189.96.216.6] has joined #lisp 19:44:48 freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 19:45:11 -!- slyrus_ [~slyrus@209-188-122-100.taosnet.com] has quit [Ping timeout: 246 seconds] 19:45:56 I haven't come around doing it properly and committing it upstreams, ljames 19:45:57 sorry 19:45:57 Just updated to latest SLIME, and still don't see the feature described in that presentation. Guess I'll have to live with macroexpand-all for now. 19:46:00 oh 19:46:38 hyperdoc, and improved autodoc got in since the talk 19:46:56 inspector guarding against invalid dx object won't evergo in 19:47:38 tcr, why? that sounds quite useful... too fragile? not predictable? 19:47:38 attila_lendvai, memo from tcr: I think you or levy were not so long ago looking for a way to expand type specifiers. I just committed that to SBCL. Tell if it suits your needs. 19:48:10 attila_lendvai: I rewrote the inspector, some part of the new code is tricky; in short too much effort for too little gain 19:49:33 tcr, if it's sb-kernel::type-expand then we are happy using it already, thanks! i've even fixed a place where levy changed to use it 19:49:59 BrianRice [~briantric@c-71-197-180-162.hsd1.wa.comcast.net] has joined #lisp 19:50:11 -!- kenjin2201 [~kenjin@220.120.43.80] has quit [Remote host closed the connection] 19:50:30 fair enough. hacking slime too much doesn't really pay off... such effort should go into something not as retro as emacs... 19:50:42 it was all on the swank side 19:51:07 In fact, due to macros almost nothing changed from a high-level point of view 19:51:35 freiksenet1 [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 19:51:35 -!- freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Read error: Connection reset by peer] 19:51:42 oh, right, that saves it a bit, but still... 19:52:53 Krystof [~csr21@84-51-132-95.christ977.adsl.metronet.co.uk] has joined #lisp 19:53:05 Phoodus [foo@97-124-127-114.phnx.qwest.net] has joined #lisp 19:55:37 http://common-lisp.net/~trittweiler/tmp/swank.lisp -- search for "Inspector" 19:56:13 syamajala [~syamajala@173-14-133-149-NewEngland.hfc.comcastbusiness.net] has joined #lisp 19:57:49 -!- varjagg [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 260 seconds] 19:58:09 -!- freiksenet1 [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote host closed the connection] 19:59:44 *attila_lendvai* just found the details of the sbcl commit about type macroexpand 20:00:07 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 20:00:35 freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 20:02:12 attila_lendvai: there's also sb-introspect:function-type now which returns the declared or derived ftype of a function 20:02:19 mega1 [~quassel@53d830f5.adsl.enternet.hu] has joined #lisp 20:03:33 kenjin2201 [~kenjin@220.120.43.80] has joined #lisp 20:03:42 tcr, yeah, we've seen that one. cool changes, thanks! 20:03:57 quotemstr_ [~quotemstr@cpe-67-247-228-249.buffalo.res.rr.com] has joined #lisp 20:05:53 -!- dnolen [~dnolen@pool-96-224-24-64.nycmny.east.verizon.net] has quit [Read error: Connection reset by peer] 20:06:24 dnolen [~dnolen@pool-96-224-24-64.nycmny.east.verizon.net] has joined #lisp 20:06:42 -!- quotemstr [~quotemstr@cpe-67-247-228-249.buffalo.res.rr.com] has quit [Ping timeout: 240 seconds] 20:06:42 -!- quotemstr_ is now known as quotemstr 20:06:54 -!- marioxcc [~user@200.92.23.60] has quit [Remote host closed the connection] 20:07:31 marioxcc [~user@200.92.23.60] has joined #lisp 20:09:54 slyrus_ [~slyrus@209-188-122-100.taosnet.com] has joined #lisp 20:10:08 varjagg [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 20:12:56 -!- OmniMancer [~OmniMance@219-89-91-200.jetstart.xtra.co.nz] has quit [Quit: Leaving.] 20:18:25 Dawgmatix [~Dawgmatix@c-76-124-9-27.hsd1.nj.comcast.net] has joined #lisp 20:18:26 vmmenon [~vmmenon@c-67-183-8-193.hsd1.wa.comcast.net] has joined #lisp 20:18:42 -!- davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 20:22:16 -!- slyrus_ [~slyrus@209-188-122-100.taosnet.com] has quit [Ping timeout: 245 seconds] 20:22:48 bipt [bpt@cpe-075-182-095-009.nc.res.rr.com] has joined #lisp 20:23:04 -!- kenjin2201 [~kenjin@220.120.43.80] has quit [Ping timeout: 256 seconds] 20:23:35 -!- syamajala [~syamajala@173-14-133-149-NewEngland.hfc.comcastbusiness.net] has quit [Remote host closed the connection] 20:23:57 Modius [~Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #lisp 20:24:53 -!- Modius [~Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Max SendQ exceeded] 20:25:21 syamajala [~syamajala@173-14-133-149-NewEngland.hfc.comcastbusiness.net] has joined #lisp 20:25:44 Modius [~Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #lisp 20:28:03 Guthur [~Michael@host81-132-10-255.range81-132.btcentralplus.com] has joined #lisp 20:32:32 -!- syamajala [~syamajala@173-14-133-149-NewEngland.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 20:34:52 -!- vmmenon [~vmmenon@c-67-183-8-193.hsd1.wa.comcast.net] has left #lisp 20:37:47 francogrex [~user@63.47-244-81.adsl-dyn.isp.belgacom.be] has joined #lisp 20:37:48 -!- xenosoz2 [~xenosoz@pe.snu.ac.kr] has quit [Ping timeout: 256 seconds] 20:38:45 xenosoz2 [~xenosoz@pe.snu.ac.kr] has joined #lisp 20:39:06 -!- Fare [~Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit [Ping timeout: 272 seconds] 20:41:10 Fare [~Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #lisp 20:42:30 -!- varjagg [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 265 seconds] 20:43:03 -!- Adlai [~adlai@unaffiliated/adlai] has quit [Remote host closed the connection] 20:43:14 Adlai [~adlai@unaffiliated/adlai] has joined #lisp 20:44:18 -!- wgl [~wgl@216.145.227.9] has quit [Ping timeout: 240 seconds] 20:46:07 -!- redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has quit [Quit: Leaving.] 20:46:33 rgawron [~rgawron@chello089079032023.chello.pl] has joined #lisp 20:48:18 -!- LiamH [~nobody@pool-72-75-123-60.washdc.east.verizon.net] has quit [Ping timeout: 276 seconds] 20:53:32 -!- tsuru [~user@c-174-50-217-160.hsd1.tn.comcast.net] has quit [Remote host closed the connection] 20:55:39 tsuru [~user@c-174-50-217-160.hsd1.tn.comcast.net] has joined #lisp 20:56:47 varjagg [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 20:58:27 daniel__ [~daniel@p5082E3C4.dip.t-dialin.net] has joined #lisp 20:59:39 -!- daniel [~daniel@p5082ED3E.dip.t-dialin.net] has quit [Read error: Operation timed out] 21:01:09 adu [~ajr@pool-173-66-253-196.washdc.fios.verizon.net] has joined #lisp 21:01:27 -!- Guthur [~Michael@host81-132-10-255.range81-132.btcentralplus.com] has quit [Ping timeout: 252 seconds] 21:01:33 syamajala [~syamajala@c-76-119-52-223.hsd1.ma.comcast.net] has joined #lisp 21:02:04 -!- sepult [~user@xdsl-87-78-123-213.netcologne.de] has quit [Read error: Connection reset by peer] 21:03:32 -!- varjagg [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 252 seconds] 21:06:11 -!- syamajala [~syamajala@c-76-119-52-223.hsd1.ma.comcast.net] has quit [Client Quit] 21:06:50 -!- nitor [~nitor@cpe-66-25-205-147.sw.res.rr.com] has quit [Ping timeout: 252 seconds] 21:10:48 -!- rgawron [~rgawron@chello089079032023.chello.pl] has quit [Ping timeout: 252 seconds] 21:11:01 zaphyr [~zaphr@smorge2.force9.co.uk] has joined #lisp 21:13:55 -!- ineol_ [~hal@78.250.206.230] has quit [Ping timeout: 265 seconds] 21:18:05 -!- Edico [~Edico@unaffiliated/edico] has quit [Quit: Ex-Chat] 21:20:43 nitor [~nitor@cpe-66-25-205-147.sw.res.rr.com] has joined #lisp 21:21:15 -!- Zephyrus [~emanuele@unaffiliated/zephyrus] has quit [Read error: Operation timed out] 21:22:12 Soulman [~kvirc@154.80-202-254.nextgentel.com] has joined #lisp 21:22:48 -!- rdd [~rdd@c83-250-52-182.bredband.comhem.se] has quit [Ping timeout: 272 seconds] 21:23:25 hadronzoo [~hadronzoo@adsl-75-20-228-125.dsl.rcsntx.sbcglobal.net] has joined #lisp 21:23:50 lispm [~joswig@e177153183.adsl.alicedsl.de] has joined #lisp 21:27:52 -!- quotemstr [~quotemstr@cpe-67-247-228-249.buffalo.res.rr.com] has quit [Quit: quotemstr] 21:28:18 quotemstr [~quotemstr@cpe-67-247-228-249.buffalo.res.rr.com] has joined #lisp 21:29:48 -!- JayK [~user@dslb-094-223-163-210.pools.arcor-ip.net] has quit [Ping timeout: 256 seconds] 21:30:52 JayK [~user@dslb-094-223-163-210.pools.arcor-ip.net] has joined #lisp 21:34:59 -!- zaphyr [~zaphr@smorge2.force9.co.uk] has quit [] 21:35:32 -!- ichernetsky [~ichernets@195.222.66.184] has quit [Read error: Connection reset by peer] 21:35:35 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 21:36:36 zaphyr [~zaphr@smorge2.force9.co.uk] has joined #lisp 21:39:36 -!- b4|hraban [~b4@a83-163-41-120.adsl.xs4all.nl] has quit [Quit: Leaving] 21:41:02 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 21:42:01 -!- hugod [~hugod@bas1-montreal50-1279440411.dsl.bell.ca] has quit [Quit: hugod] 21:42:47 -!- lispm [~joswig@e177153183.adsl.alicedsl.de] has quit [Remote host closed the connection] 21:44:59 republican_devil [~gav@cpe-76-172-28-85.socal.res.rr.com] has joined #lisp 21:45:27 when you have a lot of procedural abstration, can things be hard to debug? 21:46:33 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 21:47:43 In case of procedural abstraction, hopefully not 21:50:03 could you use lisp and lisp data structures to build a large program to store a lot of data and get good performance given dencent hardware? 21:50:28 like how viable would that be compared to say postgresql kind of database 21:52:05 -!- marioxcc is now known as marioxcc-AFK 21:53:03 republican_devil: Franz's Allegrocache is an object database written in CL 21:53:18 republican_devil: the question is how complex a data base you can build with SQL, vs. how complex a data structure you can build in lisp? I mean, with a human brain? 21:53:47 so lisp can handle more complexity... 21:54:05 republican_devil: Yes, lisp is a tool that helps human programmer to tame more complexity. 21:54:10 is allegrocache expensive? is it a distrubuted hash? like memcached? 21:54:27 http://www.youtube.com/watch?v=2Op3QLzMgSY this is AWESOME 21:54:47 republican_devil: This is archieved notably by the homoiconicity of the language and the fact that user defined special operators (ie. macros) look like system provided ones. 21:55:55 i just find it strange that after i enquired about the possibility of building pure cl databases a lika a wekk agio, there are at least 3 "independant" subjects asking about lisp databases since 21:56:08 jmbr_ [~jmbr@50.32.220.87.dynamic.jazztel.es] has joined #lisp 21:56:14 maybe just a coincidence 21:56:27 most web site I work for are apache redhatlinux oracle java or mysql php 21:56:44 now why can one one simply have linux+lisp 21:56:49 republican_devil: procedural abstraction actually leads to easier to debug programs. Mostly because access to the data structures goes thru specific procedures, so that when you change something in the data structure, you only have to modify the few procedure making the abstraction, not the rest of the program. 21:57:00 or does db in c have this insane performance that makes people us eit 21:57:16 republican_devil, there's also a free software competitor to allegrocache. 21:57:17 pjb that is what I seek 21:57:22 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 21:57:46 republican_devil: have a look at http://www.informatimago.com/linux/emacs-on-user-mode-linux.html ; please have fun doing the same with clisp or sbcl... 21:57:47 easily extenible apps that perform well enough, although my cisco networkign friend tells me that the outgoing pipe is much mroe bottel neck than db performance 21:58:24 manardb 21:58:40 ryomanolonger [~unknown@ip68-226-111-195.ph.ph.cox.net] has joined #lisp 21:58:41 guys 21:58:45 republican_devil: you can always add network cards, or switch to optical fibre. Then the bottleneck is the pci-x bus. 21:58:46 it's gavino 21:58:53 Perhaps. 21:59:02 -!- jmbr [~jmbr@150.33.220.87.dynamic.jazztel.es] has quit [Read error: Connection reset by peer] 21:59:05 republican_devil, here at ITA, we process gobs of data with lisp 21:59:06 Probably, yes. 21:59:08 purple (~gav@c <-- it's gavino. 21:59:26 i kicked him last night under a different name 21:59:32 I see. 21:59:46 slyrus_ [~slyrus@209-188-122-100.taosnet.com] has joined #lisp 21:59:53 yes i do find it suspicious 22:00:02 the spelling and nonsense is usually a dead giveaway :) 22:00:35 He seems to have been reading something though. 22:00:39 the spelling mistakes is my trademark unfortunately, niot anyonre else's 22:00:57 francogrex: :) 22:01:16 I am studying. 22:01:24 I like the new completion in emacs 23. 22:01:34 trying to unlearn my shell linux crap. 22:01:43 republican_devil, replacing it with? 22:01:46 When you try to complete aaa-bbb if there's a aaa-ccc-bbb it completes it so! 22:01:47 drewc: i knew i was on to something, it was really impropable that the same topic comes that frequently over a short period 22:01:59 pjb: he's just parroting as usual, i'm not sure he has any idea of of the meanings behind the concepts. 22:02:49 common lisp. 22:03:10 getting hang of emacs too 22:03:56 drewc: do you think maybe gavino is just an AI? 22:04:12 sykopomp: maybe just an A :P 22:04:22 republican_devil: have a look at http://clisp.cons.org/clash.html 22:04:23 :) 22:04:23 more of an AFC 22:04:30 rdd [~rdd@c83-250-52-182.bredband.comhem.se] has joined #lisp 22:04:47 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 22:04:48 sykopomp: that's a popular hypothesis. 22:05:17 republican_devil, if you want to write a shell DSL in CL, I'm in 22:05:44 PeterT [~PeterT@c-65-96-203-35.hsd1.ma.comcast.net] has joined #lisp 22:05:59 Fare: I did that three weeks ago. 22:06:07 i already have a DSL for the shell... it's called ksh93 :P 22:06:10 That is, a command language. 22:06:12 the cliki has this little writeup on clisp as a shell 22:06:23 pjb: where? 22:06:32 Not published yet. 22:06:42 wrapping parens around the problem does little to improve the fact that it's still bloody unix underneath :) 22:06:47 clisp only? 22:06:55 Fare: if you're in a hurry, I could send you what I have. I've been busy on something else since... 22:07:02 Fare: I rarely write implementation specific code. 22:07:24 drewc, the idea is being able to use OPC easily (Other People's Code) 22:07:58 Fare: I use it to implement shell like commands to browse ls-lR files. 22:08:06 Fare: fair enough.. i'm just being facetious anyway... i admit that there is an scsh script or two in our systems 22:08:12 pjb: do you handle multiple children, pipes, etc., correctly with an event loop? with threads? 22:08:16 -!- PeterT [~PeterT@c-65-96-203-35.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 22:08:25 No, nothing of that. 22:08:42 is it like scsh? 22:08:45 It's basically a command parser, with shell pattern extensions. 22:08:50 It's like sh. 22:08:52 however, i found that there are more programmers who can do ksh93 than scsh... and unix programmers are cheap and plentiful compared to lispers... 22:09:01 already a good step forward 22:09:09 you can type cd, pwd, pushd, popd, ls. I plan to do a find lookalike. 22:09:41 All the time accessing only the directories described in a ls-lR file. 22:10:11 ... and I plan a locate too. 22:11:14 there seems to be many conceptual differences betwixt lisp vs unix 22:13:14 Fare: does ITA do something like postgresql for longterm storage? or is it all lisp? can you forgo sql db and simply use lisp? 22:13:39 republican_devil, we use (shudder) Oracle. And we're wrong, IMNSHO. But we can do it. 22:13:48 -!- ChanServ has set mode +o drewc 22:13:50 I'd use MongoDB or something like that. 22:13:59 rucksack FTW! 22:17:31 varjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 22:18:09 -!- freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote host closed the connection] 22:18:37 republican_devil: there doesn't seem to be anything ready made in lisp. btw, relations DBs like mysql and others are almost all in C 22:19:07 at fox they used java+hadoop cluster to sort and map reduce, then greenplumb which is just postgresql to store the data, and I guess then dba can query that too 22:19:12 PostgreSQL was writlen in lisp originally. 22:19:20 I know 22:19:24 AllegroCache is written in lisp (obviously). 22:19:25 under section Database in clicki, you'll mostly find "interfaces" not really databases 22:19:35 Spaghettini [~Spaghetti@vaxjo7.181.cust.blixtvik.net] has joined #lisp 22:19:55 rucksack is 100% lisp 22:20:09 so the performance thing makes it practical to use postgresql? or can performance be ok under a lisp db? 22:20:14 bknr-datastore is 100% lisp 22:20:25 drewc: yes and also cl-store etc; but those are not ready packs to deliver to c lients 22:20:39 -!- InvisibleTomato [~DEDULO@ext-gw.wellcom.tomsk.ru] has quit [] 22:20:41 Elephant is written in CL too. 22:20:51 what exactly does that mean? I'm a programmer, not a distributer 22:21:03 pjb: it requires and external datastore 22:21:14 pjb: an* 22:21:20 pjb: however it uses external database to do the actual storage, search etc. 22:21:21 puchacz [~puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 22:22:05 so it's an interface 22:22:06 You mean that it is modular and provides a large choice of backend storage modules? 22:22:15 MySQL too. 22:22:22 republican_devil, you have to figure out your own performance requirements 22:22:30 building an object db on a sql store is the worst of both worlds, IMO... and bdb suffers from licensing issues. 22:22:52 republican_devil, performance, robustness, cost, complexity, etc. 22:23:09 drewc: agreed on the "worst of both worlds"... 22:23:24 *drewc* tried to use elephant for a project, but ran into numerous issues 22:23:39 *sykopomp* couldn't get elephant to load. 22:23:50 i've run into issues with rucksack as well, but the code is well written and easily extended. 22:23:51 *fe[nl]ix* couldn't feed the elephant 22:24:12 *francogrex* couldn't get the courage to try elephant after the negative reviews 22:24:17 well I visualizaed a db on 1 box running lisp, then, if it grew beyond that box, have two boxes hold the data 22:24:29 that means query would have to span over the network 22:24:32 instead of so many Lisp persistence layers, I'd like to see one or two that are well done. 22:24:43 Fare: that's rucksack. 22:25:00 Fare: The problem with that, of course, is that each time someone attempts it they make the situation worse. 22:25:06 Fare: cl-store and rucksack (take drewc's word) 22:25:16 republican_devil: the things you are talking bout have nothing to do with lisp specifically. 22:25:26 cl-store is not a persistence layer 22:25:42 drewc: for serializing 22:25:44 it's a serialization library, and the one in rucksack is superior 22:25:46 drewc: in Rucksack it seems the use of persistent conses/lists and such isn't transparent :/ 22:26:05 adeht: that's a good thing. 22:26:09 antoszka [~antoszka@unaffiliated/antoszka] has joined #lisp 22:26:22 adeht: otherwise, how exactly does GC work? 22:26:23 drewc: perhaps.. I just played with it 22:26:42 GC works on the FM principle anyway, more magic can hardly hurt. ^_- 22:26:53 well, maybe a tighter integration with a specific implementation could work ;) 22:27:21 no.... persistent objects are persistent... they are always referenced in the store.... 22:27:42 so you can gc in memory, but your store grows always! 22:27:55 -!- Odin- [~sbkhh@s121-302.gardur.hi.is] has quit [Quit: Odin-] 22:28:23 but anyway, the point is, we have persistence layers, we have serialization libs, but if not yet the Mysql thing. I'm sure they could be all put togetrher to have something ready for sales (or use by say a pharma company)µ 22:28:35 Odin- [~sbkhh@s121-302.gardur.hi.is] has joined #lisp 22:28:36 i mean... you can 'transparently' store a cons, just don't expect object identity to work when you pull it back out 22:29:03 sure, didn't expect identity 22:29:05 francogrex: then do it 22:29:34 drewc: why? my company has already MySQLµ 22:29:37 adeht: in that case, don't use pcons.. you car serialize anything 22:29:56 drewc: also, the default print-object seemed broken? (it would invoke the debugger on any persistent class iirc.. so I had to write my own method) 22:30:01 francogrex: then what are you blathering about exactly? 22:30:11 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 22:30:23 adeht: fsvo broken 22:30:39 drewc: I'm not answering that, it's unfriendly 22:31:09 drewc: MySQL doesn't implement fsvo correctly? 22:31:23 varjagg [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 22:31:29 adeht: if your object doesn't have a transaction id, you shouldn't be using it.. i assume you are talking about the case of printing an object you just inserted ? 22:31:39 yep 22:31:59 drewc: basically I think print-object should _never_ invoke ze debugger 22:32:11 adeht, that would be nice. 22:32:15 -!- marioxcc-AFK is now known as marioxcc 22:32:33 especially since the debugger itself uses print-object 22:32:36 don't do that. have your insertion routine immediately retrieve it from the store to get a transaction id 22:32:49 though i agree print-object should never break 22:33:35 drewc: btw is there any docs beyond bradb/the 2006 presentation? 22:33:40 *are 22:33:57 at ITA we did "interesting" things to minimize breakage in print-object methods. 22:33:58 -!- varjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 256 seconds] 22:34:08 not that i know of. The source is very well put together and easy to read/extend. 22:34:10 -!- hadronzoo [~hadronzoo@adsl-75-20-228-125.dsl.rcsntx.sbcglobal.net] has quit [Quit: hadronzoo] 22:34:40 drewc: yeah I just skimmed the source, and I didn't find it hard to understand 22:34:41 once you get the idea that it's backwards anyway... 22:34:47 Fare: like implementing code review and debugging? 22:35:18 rather than build an index and then the object store on that, like all others i know, rucksack builds the object store and indexes are just objects too. 22:35:34 pjb: that too 22:35:46 errr... remove that first comma... ambiguity error 22:36:20 Fare: i remember there was a big problem with that yeah 22:37:01 can't remember the details at all, but i think it was similar to the rucksack thing 22:37:54 -!- JayK [~user@dslb-094-223-163-210.pools.arcor-ip.net] has left #lisp 22:39:17 -!- republican_devil [~gav@cpe-76-172-28-85.socal.res.rr.com] has quit [Read error: Connection reset by peer] 22:40:11 -!- attila_lendvai [~ati@catv-89-134-66-143.catv.broadband.hu] has quit [Ping timeout: 245 seconds] 22:40:42 -!- mega1 [~quassel@53d830f5.adsl.enternet.hu] has quit [Ping timeout: 252 seconds] 22:41:33 -!- Sergio` [~Sergio`@a89-152-186-152.cpe.netcabo.pt] has quit [Quit: leaving] 22:42:29 Sergio` [~Sergio`@a89-152-186-152.cpe.netcabo.pt] has joined #lisp 22:44:24 If it's in an inconsistent state, the print-object method should indicate so 22:45:55 tcr: the problem was rather that print-object sometimes would try to recurse into printing the contents of some slots, which would trigger more DB I/O, which was the thing you were trying to debug, which resulted in PAIN. 22:46:36 the correct solution being to only try to print the slots that were already populated. 22:46:39 faux [~user@1-1-4-21a.gkp.gbg.bostream.se] has joined #lisp 22:46:56 sabetts [~sabetts@S0106000a95700fd8.gv.shawcable.net] has joined #lisp 22:46:56 -!- Sergio` [~Sergio`@a89-152-186-152.cpe.netcabo.pt] has quit [Client Quit] 22:46:57 I don't remember what ad-hoc horrors we wrote, probably not the correct thing. 22:47:16 Sergio` [~Sergio`@a89-152-186-152.cpe.netcabo.pt] has joined #lisp 22:47:42 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Quit: +++ killed by SIGSEGV +++] 22:48:16 wgl [~wgl@216.145.227.9] has joined #lisp 22:48:59 I have a slot of allocation :class and I'd like to set its value, but (setf (slot-value (find-class 'my-class) 'my-slot) 'value) doesn't work. Am I missing something? 22:49:11 bytecolor [~user@32.157.43.142] has joined #lisp 22:49:23 sabetts: set it in an instance 22:49:59 Xach: it seems gross to do (setf (slot-value (make-instance 'my-class) 'my-slot) 'value). isn't there a better way? 22:50:00 Fare: shouldn't a debugger have safely-print-object ? 22:50:19 sabetts: use a special? 22:50:30 ichernetsky [~ichernets@195.222.69.67] has joined #lisp 22:51:30 Xach: a special? 22:51:58 adeht: What should it do? 22:52:04 Has anyone done slime setup in .emacs to have clojure and sbcl startups? Not at the same time, but choosing one each individually. 22:52:21 tcr: handler-case and in the case of an error do a print-unreadable-object 22:53:06 adeht: Implementations do that. What Fare described was that print-object method had subtle side-effects 22:53:06 wgl, that's actaully covered in the slime manual me thinks (been a while since I read it) 22:53:22 Ah--will check it out. 22:53:27 bytecolor: Nope, clojure is not part of slime 22:53:48 tcr: there is a clojure swank for just that purpose. 22:54:05 I mean as it's not part of slime, it won't be described in the manual 22:54:41 nod, been longer that I thought ;) 22:54:42 OmniMancer [~OmniMance@219-89-91-200.jetstart.xtra.co.nz] has joined #lisp 22:54:42 kenjin2201 [~kenjin@220.120.43.80] has joined #lisp 22:54:58 How do I call "maxima" functions from Lisp? 22:55:16 erjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 22:55:19 wgl: I think it should be possible to tweak slime-list-implementations... like provide a custom init functions 22:55:29 sabetts: if you're saving some data for a class and you don't have instances of it handy, it seems like storing it in the class might not be the best place. 22:55:42 tcr: Thanks. will check it out. 22:55:58 tcr: then I don't know what that has to do with print-object invoking the debugger, which was the subject earlier 22:56:47 adeht: AFAICS, it was indirectly related; like subtle problems involving print-object methods 22:57:26 hadronzoo [~hadronzoo@ppp-70-251-125-29.dsl.rcsntx.swbell.net] has joined #lisp 22:58:22 I guess a debugger can also have some *trivial-print-object* or *print-object-function* .. 22:58:37 -!- varjagg [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 264 seconds] 23:02:27 I of course concede that print-object methods with side-effects (say, other than printing to the stream) can be fertile ground for Heisenbugs (now that's a good use of the term) 23:02:48 clhs inline 23:02:48 http://www.lispworks.com/reference/HyperSpec/Body/d_inline.htm 23:03:52 adeht: It's not just side-effects in print-object methods in lieu of smp 23:04:38 reading an unboxed slot which is not updated atomatically (or which is not aligned correctly to imply atomic storage) could result in havoc 23:06:17 varjagg [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 23:07:17 -!- erjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Read error: Operation timed out] 23:14:16 -!- drwho [~d@c-98-225-208-183.hsd1.pa.comcast.net] has quit [Ping timeout: 272 seconds] 23:15:31 -!- francogrex [~user@63.47-244-81.adsl-dyn.isp.belgacom.be] has quit [Quit: ERC Version 5.2 (IRC client for Emacs)] 23:15:43 tcr, bytecolor: I cheated and used a clojure-specific startup file and it seems to work nicely. 23:16:16 cool 23:18:01 erjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 23:18:02 -!- xan [~xan@cs78225040.pp.htv.fi] has quit [Ping timeout: 256 seconds] 23:19:07 -!- jmbr_ is now known as jmbr 23:20:11 bytecolo` [~user@32.156.166.146] has joined #lisp 23:20:16 -!- bytecolo` [~user@32.156.166.146] has left #lisp 23:20:32 -!- bytecolor [~user@32.157.43.142] has quit [Disconnected by services] 23:20:52 bytecolor [~user@32.156.166.146] has joined #lisp 23:21:25 -!- varjagg [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 264 seconds] 23:21:40 -!- erjag [~eugene@226.119.202.84.customer.cdi.no] has left #lisp 23:23:15 "The naive way to implement an embedded language is to write an interpreter for it in Lisp." I just read that in "on lisp" and it's like a huge lightbulb came on. 23:23:35 bytecolor: congratulations! 23:26:06 -!- Phoodus [foo@97-124-127-114.phnx.qwest.net] has quit [Ping timeout: 256 seconds] 23:27:38 bytecolor: for further enlighment, may I advise: Essentials of Programming Languages, 2nd ed. Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes MIT Press, ISBN 0-262-06217 23:27:44 bytecolor: and for other enlightments, SICP? 23:27:50 minion: tell bytecolor about SICP 23:27:50 bytecolor: please look at SICP: The Structure and Interpretation of Computer Programs, a CS textbook using Scheme. Available under the CC-BY-NC Licence at (HTML), (Texinfo), and (PDF). Video lectures are available under the CC-BY-SA licence at 23:28:18 redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has joined #lisp 23:30:05 I've read litte/seasoned schemer and dybvigs book, thought I'd give 'on lisp' another shot after writing in scheme for a while. It's actually sinking in this round. 23:31:26 -!- slash_ [~Unknown@whgeh0250.cip.uni-regensburg.de] has quit [Quit: leaving] 23:31:45 -!- ehu [~ehu@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 258 seconds] 23:32:24 bytecolor: the little schemer series are good books! 23:35:35 nod, excellent for teaching how to think recursively, something I struggled with for a while 23:35:59 minion: tell us about EOPL 23:35:59 us: look at EOPL: Essentials of Programming Languages, 3rd ed. Daniel P. Friedman and Mitchell Wand; ISBN: 978-0-262-06279-4; http://MITPress.MIT.Edu/0262062798/ http://WWW.EoPL3.Com/ 23:36:31 pnq [~gaiug@ACA27762.ipt.aol.com] has joined #lisp 23:37:05 I am not a big fan of On Lisp. These other books pjb mentioned, OTOH, gave me many more aha moments per page :) 23:37:10 airolson [~airolson@CPE000ae6922d9c-CM001cea397dac.cpe.net.cable.rogers.com] has joined #lisp 23:37:21 -!- Fare [~Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit [Quit: Leaving] 23:37:52 -!- morphling [~stefan@gssn-5f7547f8.pool.mediaWays.net] has quit [Remote host closed the connection] 23:38:10 drewc: I still consider myself a n00b, so it's all fascinating to me ;) 23:38:46 bytecolor: that's fair, graham was my gateway drug as well, just don't take him too seriously. 23:38:46 At this point I just really want to learn more of the mechanics of macros 23:39:22 embedding languages in lisp is really what interests me 23:39:32 have you read PCL? 23:39:52 or even better for embedding languages, PAIP 23:39:55 minion: PAIP? 23:39:56 PAIP: Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig. http://www.cliki.net/PAIP 23:40:12 bytecolor: With understanding of macros and how they work with the other properties of the language, in practice "embedding languages" really becomes having extra tools to bend the language, in selected areas, toward your problem domain. 23:40:14 that is probably the bible on that subject really. 23:40:14 I've cherry picked my way through paip 23:41:01 yeah, you don't embed languages so much as make things look as much like lisp as possible while doing things out of the ordinary. 23:41:21 -!- quotemstr [~quotemstr@cpe-67-247-228-249.buffalo.res.rr.com] has left #lisp 23:41:41 zeugma [~user@lnk2-themill-gw.binary.net] has joined #lisp 23:41:55 since it's so easy to create new languages on top of lisp, one must be very careful to do so in a way that is clear to other lispers if one wants them to be useful. 23:42:02 bytecolor: The "embedded language" comes into the explanation as in pretty much any other language, that's what it would take to get some aspect of what you're doing in the macros (although not being able to mix with "mainstream code", or combine features). 23:42:03 Modius: nod, from my understanding, lisp gives me the ability to bend the language towards the problem, that's what really interests me 23:42:32 drewc: nod, that's something I actualy picked up from the scheme folks as well ;) 23:42:38 -!- sabetts [~sabetts@S0106000a95700fd8.gv.shawcable.net] has left #lisp 23:42:41 bytecolor: And compose them. For example, your bunch of macros or constructs X and bunch of constructs Y will probably be able to be used together, despite being developed in isolation - unlike "Language X" and "Language Y" 23:42:50 bytecolor: macros are only one of the tools that make lisp so malleable, and possibly one of the least intersting one... it's just syntax after all :) 23:43:00 varjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 23:44:04 Well, using sexps when defining other languages let us to be aware of the real fundamental differences that may or may not exist between lisp and othe other language. Often, there's no difference, and therefore no point in embedding a different language, just for the sake of syntax. On the other hand, a really new operator is most useful if it can blend smoothlessly in lisp. 23:44:36 The ability to add specific syntaxes (using reader-macros), is really used only for non-lisper end-users. 23:45:50 -!- ichernetsky [~ichernets@195.222.69.67] has quit [Read error: Operation timed out] 23:46:58 "smoothlessly"? Is that some combination of "smoothly" and "seamlessly"? 23:48:28 a langage for general parsing is what I'm after. I implemented a decent parser in scheme. It *looks* like lisp, but I was doing a lot of interpreting of sexps that, from what I've read so far, could be done by transformations. Transform my domain-specific language to lisp, through macros. 23:48:34 Yes. I meant smoothly. 23:48:52 Well, I meant both yes. 23:49:09 I don't quite get *how* to completely implement that yet. For instance, I have two instances of `eval' in my app, which bugged me. It worked, but... 23:49:21 bytecolor: An interesting look at what you can do in s-expression form can be had by looking at parenscript - you enter your Javascript in a lisp-1/scheme-ish form; but from there you have macros that can read and write it in that form. 23:49:42 bytecolor: Even though, at the end you're spitting out Javascript - perhaps javascript full of boilerplate you'd otherwise not want to write. 23:50:12 Modius: nod, I think the rub comes when I stray too far from what *looks* like lisp. 23:50:41 which is maybe why there are two format/loop camps 23:50:47 bytecolor: I have my own custom JS generator which is more based around working like CL than Parenscript does (and I wanted other features, long story) - to make lexical scopes it does tons of (function (a, b) { ... } (3, 4)) type code - be a horror to type in in JS; but concealed by the macoros. 23:52:41 Modius: nod, my parser creates lexical scopes per form (scope1 (scope2 (scope3))) it works, but man the internals are nasty ;) 23:53:54 -!- Rix [~Rixiii@77-85-21-9.btc-net.bg] has quit [Quit: Leaving] 23:54:36 I think by the time I finish this book I'll have a much better grasp of the situation 23:55:09 bytecolor: see http://paste.lisp.org/display/90771 and http://paste.lisp.org/+207O/1 for some hacks :) 23:56:42 adeht: nod, you have your PEG ops as macros, that's where I failed. Mine are procedures that *I* interpret in the code. 23:56:52 mathrick pasted "LETREC" at http://paste.lisp.org/display/94921 23:56:57 bytecolor: Is it not possible to create those macros that you need using Scheme hygienic macros ? 23:57:29 TR2N: yes, but I was learning scheme as I wrote the parser 23:59:11 give me a sec and I'll post an ANSI Pascal parser written in my pseudo-scheme 23:59:24 -!- grouzen [~grouzen@91.214.124.2] has quit [Ping timeout: 256 seconds] 23:59:36 grouzen [~grouzen@91.214.124.2] has joined #lisp