00:03:34 kuzary [~who@gateway/tor-sasl/kuzary] has joined #lisp 00:07:15 -!- kuzary [~who@gateway/tor-sasl/kuzary] has quit [Remote host closed the connection] 00:08:26 teiresias [~teiresias@archlinux/trusteduser/teiresias] has joined #lisp 00:09:38 kuzary [~who@gateway/tor-sasl/kuzary] has joined #lisp 00:12:34 -!- edgar-rft [~user@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has quit [Ping timeout: 252 seconds] 00:14:15 -!- AI|Loop [~Lazik@173.231.109.130] has quit [Read error: Connection reset by peer] 00:14:22 -!- kanru`` [~user@61-228-144-114.dynamic.hinet.net] has quit [Ping timeout: 276 seconds] 00:14:23 AI|Loop [~Lazik@173.231.109.130] has joined #lisp 00:15:34 realitygrill_ [~realitygr@76.226.193.213] has joined #lisp 00:16:08 Kron_ [~Kron@206.126.93.212] has joined #lisp 00:17:19 -!- realitygrill [~realitygr@adsl-76-226-120-143.dsl.sfldmi.sbcglobal.net] has quit [Ping timeout: 260 seconds] 00:17:19 -!- realitygrill_ is now known as realitygrill 00:18:12 two- [~textual@c-67-171-131-23.hsd1.wa.comcast.net] has joined #lisp 00:18:26 -!- AI|Loop [~Lazik@173.231.109.130] has quit [Read error: Connection reset by peer] 00:19:19 -!- Kron [~Kron@206.126.93.212] has quit [Ping timeout: 245 seconds] 00:19:36 -!- sykopomp [~sykopomp@gateway/tor-sasl/sykopomp] has quit [Remote host closed the connection] 00:19:54 -!- Odin- [~sbkhh@214-106-22-46.fiber.hringdu.is] has quit [Quit: Meep.] 00:20:38 -!- pkhuong [~pkhuong@gravelga.xen.prgmr.com] has quit [Ping timeout: 240 seconds] 00:21:54 mel0on [1000@h-70-73.a146.priv.bahnhof.se] has joined #lisp 00:23:37 -!- mmajchrzak [~mmajchrza@dynamic-62-87-247-153.ssp.dialog.net.pl] has quit [Ping timeout: 246 seconds] 00:24:40 -!- hugod [~user@bas1-montreal08-1279564323.dsl.bell.ca] has quit [Ping timeout: 252 seconds] 00:25:25 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Ping timeout: 276 seconds] 00:27:36 fyi the author line in rfc2388.asd breaks quicklisp loading in my sbcl 00:28:57 pkhuong [~pkhuong@gravelga.xen.prgmr.com] has joined #lisp 00:29:22 Try starting SBCL in an environment where code is loaded as UTF-8. 00:30:14 meaning? 00:30:22 i started it via slime 00:31:33 -!- adu [~ajr@64.134.96.202] has quit [Quit: adu] 00:31:43 stassats` [~stassats@wikipedia/stassats] has joined #lisp 00:32:41 hugod [~user@bas1-montreal08-1279584440.dsl.bell.ca] has joined #lisp 00:33:16 ezakimak: what operating system? 00:33:21 linux 00:33:57 on my linux setup, setting LANG=en_US.UTF-8 will do the trick. Your setup may vary. 00:34:31 -!- slyrus [~chatzilla@adsl-99-24-163-252.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 276 seconds] 00:37:20 lbc [~quassel@1908ds1-aboes.0.fullrate.dk] has joined #lisp 00:37:37 -!- gaidal [~gaidal@h164n1-m-sp-d4.ias.bredband.telia.com] has quit [Remote host closed the connection] 00:38:22 -!- lbc [~quassel@1908ds1-aboes.0.fullrate.dk] has quit [Remote host closed the connection] 00:44:29 -!- kuzary [~who@gateway/tor-sasl/kuzary] has quit [Quit: return 0;] 00:44:37 Odin- [~sbkhh@214-106-22-46.fiber.hringdu.is] has joined #lisp 00:46:11 -!- Froward [~uh-oh@c-71-200-123-212.hsd1.md.comcast.net] has quit [Quit: even in laughter, the heart of Snorlax is sorrowful. and the end of that mirth is heaviness.] 00:47:24 -!- nitro_idiot [~nitro_idi@EM1-114-41-32.pool.e-mobile.ne.jp] has quit [Remote host closed the connection] 00:47:55 nitro_idiot [~nitro_idi@EM1-114-41-32.pool.e-mobile.ne.jp] has joined #lisp 00:51:43 LiamH [~healy@pool-74-96-16-203.washdc.east.verizon.net] has joined #lisp 00:52:07 -!- nitro_idiot [~nitro_idi@EM1-114-41-32.pool.e-mobile.ne.jp] has quit [Ping timeout: 244 seconds] 00:52:34 -!- BigHugeDog [~QQ@221.0.13.125] has quit [Read error: Connection reset by peer] 00:54:38 BigHugeDog [~QQ@221.0.13.125] has joined #lisp 00:57:20 nitro_idiot [~nitro_idi@122x221x184x68.ap122.ftth.ucom.ne.jp] has joined #lisp 00:58:15 -!- setmeaway [setmeaway3@118.45.149.126] has quit [Read error: Connection reset by peer] 01:01:02 setmeaway [~setmeaway@118.45.149.126] has joined #lisp 01:02:31 jasox [~jasox@178.239.26.136] has joined #lisp 01:07:03 retupmoca [~retupmoca@adsl-99-119-128-139.dsl.klmzmi.sbcglobal.net] has joined #lisp 01:09:32 slyrus [~chatzilla@adsl-99-24-163-252.dsl.pltn13.sbcglobal.net] has joined #lisp 01:13:57 -!- BigHugeDog [~QQ@221.0.13.125] has quit [Ping timeout: 248 seconds] 01:18:54 adu [~ajr@pool-72-83-26-98.washdc.fios.verizon.net] has joined #lisp 01:22:06 achiu [~achiu@ip68-96-95-213.oc.oc.cox.net] has joined #lisp 01:22:08 -!- ISF [~ivan@187.106.49.167] has quit [Ping timeout: 272 seconds] 01:26:16 edgar-rft [~user@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has joined #lisp 01:29:12 -!- achiu [~achiu@ip68-96-95-213.oc.oc.cox.net] has quit [Ping timeout: 252 seconds] 01:30:09 -!- jollyG [~JollyG@cpe-075-176-001-037.carolina.res.rr.com] has quit [Remote host closed the connection] 01:31:45 jollyG [~JollyG@cpe-075-176-001-037.carolina.res.rr.com] has joined #lisp 01:34:08 -!- sacho [~sacho@95-42-98-81.btc-net.bg] has quit [Ping timeout: 246 seconds] 01:35:58 -!- timack [~timack@142.177.9.114] has quit [Remote host closed the connection] 01:39:19 -!- hyoyoung [seoz@enlightenment2.osuosl.org] has quit [Remote host closed the connection] 01:44:23 ihyoyoung [seoz@enlightenment2.osuosl.org] has joined #lisp 01:48:44 -!- CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has quit [Ping timeout: 272 seconds] 01:48:52 achiu [~achiu@ip68-96-95-213.oc.oc.cox.net] has joined #lisp 01:52:41 -!- jasox [~jasox@178.239.26.136] has quit [Quit: Leaving] 01:54:10 fantasticsid [~user@2001:da8:8001:708:cc1e:4821:8fea:862] has joined #lisp 01:58:10 -!- vpit3833 [~user@mail.protocomtechnology.com] has quit [Ping timeout: 252 seconds] 01:59:18 ignas [~ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 02:00:47 -!- DDR [~chatzilla@d99-199-11-52.bchsia.telus.net] has quit [Quit: ChatZilla 0.9.88.1 [Firefox 11.0/20120310011224]] 02:01:55 CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has joined #lisp 02:14:22 enerccio [~chatzilla@158.194.169.150] has joined #lisp 02:14:27 dnolen [~user@67.106.254.3.ptr.us.xo.net] has joined #lisp 02:16:12 -!- ihyoyoung is now known as hyoyoung 02:19:39 gko [~gko@220.228.255.202] has joined #lisp 02:21:12 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Ping timeout: 265 seconds] 02:22:52 is there a way to include quicklisp in asd file? 02:27:08 -!- xyxu [~xyxu@222.68.158.80] has quit [Ping timeout: 245 seconds] 02:27:10 enerccio: no 02:28:29 enerccio: to what end? 02:28:32 vpit3833 [~user@mail.protocomtech.com.au] has joined #lisp 02:29:46 well I am trying to add lispbuilder-sdl to asd file 02:31:07 Ok. Where does quicklisp come into the picture? 02:34:46 well this is what I used to do: http://pastebin.com/qfc4zDQE 02:35:28 enerccio: Better to put :depends-on in the my-project.asd file and use (ql:quickload "my-project") 02:35:52 Xach: what do you mean? 02:36:30 enerccio: write a system file for your project, express its relationships with other systems there, and then let quicklisp load everything automatically (including your project) 02:36:56 well I am not sure I can do that from cusp 02:37:11 You can. 02:37:25 http://xach.livejournal.com/278047.html shows what i usually use these days, kind of 02:37:37 Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has joined #lisp 02:42:06 but how to integrate it to cusp? 02:42:32 most people use slime 02:42:46 cusp works under indigo? 02:42:53 enerccio: you don't need to integrate it in any special way. the function calls are still function calls in cusp. 02:43:16 well, let me back up a bit. does cusp have a repl? 02:43:18 JuanDaugherty: it uses slime + sbcl 02:43:23 yes 02:44:13 it apparently only uses swank 02:44:19 That said, quicklisp has quicklisp-slime-helper and swank systems; slime could have a command to download and install quicklisp. 02:44:20 not slime 02:44:28 So either way, newbies would get both :-) 02:45:53 -!- StaffGiraffe [~tdubellz@freenode/staff/tdubellz] has quit [Quit: Lost terminal] 02:47:39 -!- Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has quit [Ping timeout: 245 seconds] 02:48:07 sykopomp [~sykopomp@gateway/tor-sasl/sykopomp] has joined #lisp 02:49:55 -!- benny [~benny@i577A1F97.versanet.de] has quit [Ping timeout: 260 seconds] 02:52:20 Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has joined #lisp 02:53:15 Yuuhi` [benni@p54839D06.dip.t-dialin.net] has joined #lisp 02:54:59 -!- Yuuhi [benni@p5483B1E2.dip.t-dialin.net] has quit [Ping timeout: 246 seconds] 02:55:43 cusp looks not to be current 02:55:51 Xach 02:56:02 how do I add lispbuilder-sdl to the required? 02:56:19 I tried: 02:56:21 :depends-on (#:cffi 02:56:23 #:lispbuilder-sdl) 02:56:25 but it didnt work 03:01:40 enerccio: what happened? 03:02:05 Component #:LISPBUILDER-SDL not found, required by 03:02:25 -!- gigamonkey [~gigamonke@adsl-99-2-151-118.dsl.pltn13.sbcglobal.net] has quit [Quit: gigamonkey] 03:02:40 enerccio: what command did you use to load your system? 03:03:03 Load File on asd file from cusp 03:03:14 enerccio: use (ql:quickload ...) instead. 03:03:22 its the one generated from the quickproject 03:03:38 where should I put it to be automatical? 03:04:00 You could put it in your .sbclrc I suppose. 03:04:36 gigamonkey [~gigamonke@adsl-99-2-151-118.dsl.pltn13.sbcglobal.net] has joined #lisp 03:05:06 -!- nitro_idiot [~nitro_idi@122x221x184x68.ap122.ftth.ucom.ne.jp] has quit [Quit: Leaving...] 03:05:37 Xach: seems to work at least so far no error 03:06:05 nitro_idiot_ [~nitro_idi@www31335u.sakura.ne.jp] has joined #lisp 03:06:19 but loading that asd file wont put me in my package 03:06:25 instead I am in common lisp user 03:07:30 -!- nitro_idiot_ is now known as nitro_idiot 03:07:33 you can use (in-package ...) to change the current package 03:07:49 I know, but shouldnt that happen automatically? 03:07:56 No. 03:08:03 in the file 03:08:12 that is in components part 03:08:13 why would you thing that? 03:08:13 Nope. LOAD binds CL:*PACKAGE* 03:08:19 *think 03:08:29 those files are not loaded? 03:08:53 enerccio: *package* has nothing to do with having the files loaded or not. 03:09:07 And ASDF and quickload load systems, not packages. 03:10:48 pjb: the autogenerated files 03:10:54 for lisp projects in cusp 03:11:01 do automatically change project 03:11:10 and they are very similar to what quickproject generated 03:12:20 and are eclipse projects? 03:12:29 yeah 03:13:15 and you're running like eclipse 3.4? 03:13:28 3.7.2 03:15:14 killown [~geek@unaffiliated/killown] has joined #lisp 03:16:18 Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has joined #lisp 03:17:55 hmm 03:17:58 the only difference is 03:18:04 -!- lebro [~monx@ool-18bc4a28.dyn.optonline.net] has quit [Read error: Connection reset by peer] 03:18:13 that cusp is defsystem 03:18:18 while quickproject is 03:18:21 asdf:defsystem 03:18:46 tensorpudding [~michael@108.87.21.241] has joined #lisp 03:21:26 angavrilov [~angavrilo@217.71.227.190] has joined #lisp 03:21:34 -!- Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has quit [Ping timeout: 276 seconds] 03:23:07 xyxu [~xyxu@58.41.1.67] has joined #lisp 03:27:09 -!- LiamH [~healy@pool-74-96-16-203.washdc.east.verizon.net] has quit [Quit: Leaving.] 03:28:07 lebro [~monx@ool-18bc4a28.dyn.optonline.net] has joined #lisp 03:30:57 -!- JuanDaugherty [~Ren@cpe-72-228-189-184.buffalo.res.rr.com] has quit [Remote host closed the connection] 03:32:41 -!- killerboy [~mateusz@195.225.68.249] has quit [Ping timeout: 244 seconds] 03:39:02 Spion_ [~spion@unaffiliated/spion] has joined #lisp 03:42:25 -!- Spion [~spion@unaffiliated/spion] has quit [Ping timeout: 246 seconds] 03:43:54 -!- mathrick [~mathrick@85.218.148.156] has quit [Ping timeout: 245 seconds] 03:44:13 mathrick [~mathrick@94.144.63.10] has joined #lisp 03:50:38 -!- enerccio [~chatzilla@158.194.169.150] has quit [Ping timeout: 240 seconds] 03:55:07 pnq [~nick@ACA26EF6.ipt.aol.com] has joined #lisp 03:57:30 gavino [~ddcgavins@67.201.120.8] has joined #lisp 03:58:31 -!- lemoinem [~swoog@205.233.80.94] has quit [Ping timeout: 244 seconds] 03:58:55 DDR [~chatzilla@d99-199-11-52.bchsia.telus.net] has joined #lisp 03:59:19 lemoinem [~swoog@200-91-252-216.dsl.colba.net] has joined #lisp 04:12:10 leo2007 [~leo@119.255.41.67] has joined #lisp 04:20:20 -!- dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has quit [Read error: Connection reset by peer] 04:21:01 dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has joined #lisp 04:26:39 uniqanomaly [~ua@78.10.49.119] has joined #lisp 04:27:42 -!- uniqanomaly [~ua@78.10.49.119] has left #lisp 04:29:13 redsky [~vigil@adsl-074-229-197-048.sip.mco.bellsouth.net] has joined #lisp 04:31:20 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 04:37:36 kuzary [~who@gateway/tor-sasl/kuzary] has joined #lisp 04:50:18 -!- dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has quit [Read error: Connection reset by peer] 04:50:59 dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has joined #lisp 04:51:27 -!- CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has quit [Quit: Leaving] 04:56:06 scrimohsin [~a9h6d5a@gateway/tor-sasl/scrimohsin] has joined #lisp 04:57:08 -!- theos [~theos@unaffiliated/theos] has quit [Ping timeout: 240 seconds] 04:58:47 sodel [~dralston@S0106687f74a12729.va.shawcable.net] has joined #lisp 05:04:55 is there a macro equivalent of lambda? think I need anonymous macros 05:05:17 macrolet 05:05:45 I thought that was a local named macro? 05:05:53 redsky: no. 05:06:09 redsky: there is no anonymous macro facility. how would you invoke such a thing? 05:06:15 -!- gigamonkey [~gigamonke@adsl-99-2-151-118.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 265 seconds] 05:06:45 redsky: the "no." was in reply to your original question. macrolet defines local macros. 05:06:58 H4ns: (macall #`my-anonymous-macro args) of course 05:07:17 redsky: and you cannot use a function exactly why? 05:08:44 Because I want to be able to pass in a quoted symbol, have it propogate through a series of macros as needed (some anonymous for expressivity reasons, so I can easily curry, etc.) , then wrap the whole thing in a let and/or lambda that closes over the free variables. 05:08:58 macros expose free variables, functions don't. 05:09:08 -!- Kron_ [~Kron@206.126.93.212] has quit [Quit: Kron awayyy!] 05:09:23 -!- pnq [~nick@ACA26EF6.ipt.aol.com] has quit [Ping timeout: 246 seconds] 05:09:36 redsky: that is true, but you _can_ use functions to create code which returns free variable references 05:10:06 i mean which _containt_ free variable references 05:10:07 H4ns: closures? They have limitations. 05:10:09 constains. 05:10:13 Really, the worst thing you can do in CL is use a macro where a function would do. The Pope does not sudo ex cathedra to say, "It's not the heat, it's the humidity." -- Ken Tilton 05:10:18 redsky: no. code. 05:10:40 theos [~theos@unaffiliated/theos] has joined #lisp 05:10:42 felideon: PLEASE 05:10:44 :) 05:10:46 minion: advice on accomplish? 05:10:46 #11903: What are you really trying to accomplish here? 05:10:48 05:10:48 kornshell` [~user@gateway/tor-sasl/skulls] has joined #lisp 05:11:27 so for instance, how would you write a macro that functions as a curry for any function, special operator, or macro? 05:11:34 I could do so easily with a macro-lambda 05:11:38 pnq [~nick@ACA26EF6.ipt.aol.com] has joined #lisp 05:11:51 what does the verb "functions" mean to you? 05:12:06 ah. hold on. too early for me. 05:12:13 "works"? 05:12:15 yes? 05:12:16 you cannot compose macros 05:12:25 you can with a macro-lambda 05:12:32 I think I will call it omega 05:12:33 what is macro-lambda? 05:13:03 an anonymous macro / macro literal, just like lambda is an anonymous function / function literal 05:13:34 StaffGiraffe [~tdubellz@freenode/staff/tdubellz] has joined #lisp 05:13:38 can you provide an example of how the code would like when using this mysterious macro? 05:13:43 *felideon* checks clock. notes april fool's is over. 05:13:48 right. please use paste.lisp.org 05:14:06 felideon: you can go overboard at any date. 05:14:23 hah 05:14:37 specifically, how would it differ from #.? 05:14:49 -!- achiu [~achiu@ip68-96-95-213.oc.oc.cox.net] has quit [Ping timeout: 252 seconds] 05:15:17 so you use lcurry like so: (lcurry function-to-curry arg1 arg2). Assuming function-to-curry is a function of 5 parameters, lcurry will in this case return a function of 3 parameters, the first two already being "baked in" as it were 05:16:01 I want that, except I want the function to be optionally a macro or special operator. Easy to do, if I'm returning a macro instead of returning a function 05:16:17 benny` [~benny@i577A1094.versanet.de] has joined #lisp 05:16:21 returning a macro, that doesn't make sense 05:16:32 -!- benny` is now known as benny 05:16:33 did you know that macros are functions? 05:17:09 yes-ish. I've had mighty debates with people from this very channel who are adamant that they are not 05:17:37 it all depends on whether you care about compile time vs. runtime, or other stuff going on under the hood 05:17:38 redsky: they accomplished their goal. you are confused now. 05:17:43 -!- mel0on [1000@h-70-73.a146.priv.bahnhof.se] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 05:18:21 Well I am. If you agree it makes no sense to return a macro, then you say that a macro is a function, and lisp already supports function-returning-functions... 05:18:28 ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 05:18:42 clhs macro-function 05:18:43 http://www.lispworks.com/reference/HyperSpec/Body/f_macro_.htm 05:18:56 -!- jacius [~jacius@c-24-13-89-230.hsd1.il.comcast.net] has quit [Quit: Leaving] 05:19:17 redsky: a macro is a function that the compiler calls. it is how the macro function used that makes it "special" 05:19:20 what makes macros special is when this function runs and what is done with its return values 05:19:57 now, what would happen when you return a macro from another macro, i don't know; why not just call another macro from the first one? 05:20:29 _or_ call an ordinary function from the macro function that creates (part of) the macro expansion? 05:20:50 Did you see my lcurry example? Currying is a reasonably common thing to want to do in high level programming. And would be nice to do it with special ops or macros. 05:21:05 redsky: i don't understand your lcurry with macros example 05:21:17 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 05:22:39 redsky: "currying" a macro is done by creating another, named, macro that uses the original macro in its expansion. 05:22:56 stassats`: what part? if you understand currying then this is exactly the same, except you return an anonymous macro (which is what I was asking about) instead of an anonymous function. It's a way of pre-setting parameters on functions, special ops or macros 05:22:58 Remember that macros are not called, but are expanded. 05:23:14 Zhivago: right, but you can overload call! 05:23:15 redsky: but, calling that "currying" is really not the right thing to do. it is not even partial application. 05:23:16 Trying to think of macro expansion like function invocation is doomed to exciting failure. 05:23:38 See guys, this was the one I was talking about :-). Hi Zhivago 05:23:46 heh. 05:24:02 Exciting because you'll get away with it until you've invested enough in it in order to keep on trying to do so when it stops working. 05:24:03 and don't you mean partial application by currying? 05:24:47 stassats`: the two aren't technically the same, but yes either/or. Just a way of pre-setting a parameter. 05:25:13 Did you read that kernel paper yet, or are you just blathering on as usual? 05:25:53 -!- DDR [~chatzilla@d99-199-11-52.bchsia.telus.net] has quit [Ping timeout: 245 seconds] 05:25:55 redsky: about macros not being functions, you must've misunderstood, the macros aren't the same as functions, but the code that does the job of a macro is a function 05:25:56 blathering, most likely. I found the LOL quotes if you want. I am happy to think of macros as function calls for some specific purposes. 05:26:14 the piclisp guy calls mcroes a hack 05:26:23 and if you dont compile can just use functon 05:26:29 whatye think o that? 05:26:37 lol references, gavino. help! 05:26:39 redsky: you can see a function of a macro by calling MACRO-FUNCTION 05:26:52 H4ns: regarding your currying solution, you are saying to manually write out the currying involved as a separate named macro every time you want to curry a special op or macro? 05:27:34 (funcall (macro-function 'cond) '(cond (t 10)) nil) => (THE T (PROGN 10)) 05:27:40 gavino: depends on if picolisp supports fexprs or not. (thanks Zhivago) 05:27:46 see, i can funcall a macro 05:27:46 redsky: i don't have a "currying solution". i just said that if you want to augment a macro with "pre-set" parameters, you write a named new macro that uses the original macro. 05:27:46 kushal [kdas@nat/redhat/x-lpzracgigvqhjaar] has joined #lisp 05:27:56 -!- kushal [kdas@nat/redhat/x-lpzracgigvqhjaar] has quit [Changing host] 05:27:56 kushal [kdas@fedora/kushal] has joined #lisp 05:29:10 -!- realitygrill [~realitygr@76.226.193.213] has quit [Quit: realitygrill] 05:29:16 pre-set, when would the un-set parameters be set? 05:29:26 realitygrill [~realitygr@76.226.193.213] has joined #lisp 05:29:29 Anonymous macros: http://paste.lisp.org/display/128712 05:29:45 stassats`: that is somewhat new to me, though not entirely sure if it's applicable or not. What is the macro's function exactly? by funcalling the macro presumably you force args to be evaluated? 05:30:21 redsky: macro function is a function that given a piece of code produces another piece of code 05:30:35 i.e., it does the expansion of a macro 05:30:35 abeaumont [~abeaumont@90.165.165.246] has joined #lisp 05:30:48 toekutr [~user@50-0-51-2.dsl.static.sonic.net] has joined #lisp 05:32:19 it also has a fancy argument processing when you define it with DEFMACRO 05:32:46 pjb: Weren't you the one who did the ncurry too? heh, what's your hourly rate? 05:32:49 -!- srolls [~user@c-76-126-212-192.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 05:33:10 redsky: no. 30 EUR/h + VAT. 05:33:29 pjb: not that I am proficient enough to decipher your code that quicky, but all of the major pieces seem there 05:34:22 pjb: yes you were: http://paste.lisp.org/display/128425 05:34:38 that was a bit easier though 05:34:41 DDR [~chatzilla@d66-183-117-69.bchsia.telus.net] has joined #lisp 05:34:45 Oh, that ncurry. There are so many curry functions in libraries 05:36:42 -!- wbooze [~wbooze@xdsl-78-35-148-212.netcologne.de] has quit [Read error: Connection reset by peer] 05:37:30 *stassats`* doesn't understand why do people call partial application currying 05:38:06 wbooze [~wbooze@xdsl-78-35-164-247.netcologne.de] has joined #lisp 05:38:08 -!- wbooze [~wbooze@xdsl-78-35-164-247.netcologne.de] has quit [Excess Flood] 05:38:12 Can I call it schönfinkeling instead? 05:39:26 wbooze [~wbooze@xdsl-78-35-164-247.netcologne.de] has joined #lisp 05:39:29 http://software-lab.de/doc/faq.html#macros 05:41:55 stassats`: so thanks for bringing macro function to my attention, seems as though my primary texts have glossed over this. Could I use it e.g. in my currying example to curry a macro or special op? 05:41:56 -!- gavino [~ddcgavins@67.201.120.8] has quit [Read error: Connection reset by peer] 05:42:22 i don't know, because i don't understand what it means 05:42:25 -!- lebro [~monx@ool-18bc4a28.dyn.optonline.net] has quit [Remote host closed the connection] 05:42:35 sorry, partial application then 05:42:45 neither this 05:43:09 redsky: you cannot partially apply a macro because a macro is not applied, but expanded. 05:44:13 let's call it partial expansion, but i don't understand the semantics of this either 05:44:22 Yes, you can, but since you cannot understand my mlambda, should you? 05:44:34 IMO, you shouldn't try to do that if you don't understand it. 05:44:40 asvil [~asvil@178.124.160.180] has joined #lisp 05:45:22 -!- kornshell` [~user@gateway/tor-sasl/skulls] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 05:45:39 pjb: well there are only so many things I can attempt to understand in one lifetime. If I can do what I want with macro-function, then maybe I should attempt to understand that before I attempt to understand mlambda. 05:45:44 pjb: i said in the beginning "how do anonymous macro differ from #."? 05:46:30 redsky is in the 'exciting' phase of this class of failure. 05:46:47 He needs to read the kernel paper, which actually has a sensible solution to this problem. 05:47:07 stassats`: indeed. The point is that it's written in the source text, so it has no purpose. You could as well write what you meant. 05:48:05 wow almost 1 hour since I said macrolet 05:48:24 42 minutes 05:48:27 Zhivago: I have it bookmarked. But you didn't seem to understand my goals, which makes it less likely your advice was applicable. I freely admit to being an overreaching noob, but the simple fact is functions and even closures do not give me anywhere near the level of expressivity I crave. 05:48:47 redsky: I understand your goals -- the problem is that they are incoherent. 05:49:06 tomodo: macrolet is named. Though it could be useful as part of an anonymous macro builder 05:49:17 redsky: To make them coherent, you need to decompose things down to the special operator level. 05:50:49 redsky: use a name then 05:50:53 problem solved 05:51:05 gaidal [~gaidal@h164n1-m-sp-d4.ias.bredband.telia.com] has joined #lisp 05:51:37 -!- optikalmouse [~user@bas1-toronto07-1176123523.dsl.bell.ca] has quit [Remote host closed the connection] 05:52:29 lebro [~monx@ool-18bc4a28.dyn.optonline.net] has joined #lisp 05:53:12 stassats`: so what does #. do? All I have seen so far is "value of expression at read time" which is a little vague. and is kinda tricky for me to google 05:53:31 look it up in CLHS 05:53:40 clhs #. 05:53:41 http://www.lispworks.com/reference/HyperSpec/Body/02_dhf.htm 05:54:11 redsky: what exactly is "vague" about that description? 05:54:46 (defmacro anomacro ((lambda-list body) &rest args) (let ((name (gensym))) `(macrolet ((,name ,lambda-list ,body)) (,name ,@args)))) 05:54:53 (anomacro ((x) `(list ,x ,x)) 1) => (1 1) 05:54:56 well it is vague for someone who has not fully absorbed the readtime vs. compiletime vs. runtime differences. Specifically the word "value". 05:56:01 http://www.lispworks.com/documentation/HyperSpec/Body/03_.htm 05:56:13 -!- sodel [~dralston@S0106687f74a12729.va.shawcable.net] has quit [Quit: leaving] 05:57:29 redsky: you see, then that is where you need to start before inventing things like "anonymous macros" 05:58:05 -!- pnq [~nick@ACA26EF6.ipt.aol.com] has quit [Ping timeout: 252 seconds] 05:59:36 and to compare anomacro with #.: (anomacro ((x) `(list ,@(make-list 10 :initial-element x))) 1) and #.`(list ,@(make-list 10 :initial-element 1)) 05:59:44 would both produce the same result 05:59:46 H4ns: it's fine to invent the concept first. Lisp itself was invented and formalized before there was any way of running it 06:01:08 redsky: do you understand the difference between how lisp is evaluated and how macro expansion is performed? 06:01:11 redsky: sure. but if you try to discuss a language with people who understand it, then it it becomes kind of a problem if you don't understand it yourself. 06:01:38 -!- lebro [~monx@ool-18bc4a28.dyn.optonline.net] has quit [Read error: Connection reset by peer] 06:01:54 flip214 [~marek@86.59.100.100] has joined #lisp 06:01:54 -!- flip214 [~marek@86.59.100.100] has quit [Changing host] 06:01:55 flip214 [~marek@unaffiliated/flip214] has joined #lisp 06:02:23 redsky: especially if you don't try to discuss how you could apply the language, but rather how you could change it to make it "more expressive". 06:04:25 I'm not sure if this is really relevant, depending on how what you mean or intend to implement it, but when I tried using macro-writing macros too much I sometimes got stuck in the complexity of multiple-level quoting 06:04:25 -!- realitygrill [~realitygr@76.226.193.213] has quit [Quit: realitygrill] 06:04:26 Other than the currying/partial application thing, I said I wanted to use macros for a large portion of my logic so that I could use arbitrary quoted symbols as arguments, then bind over the free variables with a lambda. 06:04:40 achiu [~achiu@ip68-96-95-213.oc.oc.cox.net] has joined #lisp 06:04:41 redsky: examples: (mac1 (mac2 3)) and (f (g 3)). mac1 is expanded first, but g is evaluated first 06:04:52 in which case it's generally best to also use some normal functions, which can themselves be used by macros as necessary too 06:05:01 phadthai: that's why it's usually advised to split... what you said 06:05:23 redsky: do you understand this? 06:05:31 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 06:05:33 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Excess Flood] 06:05:38 and sometimes I needed to use macroexpand, which is another sign that something in the design is flawed 06:05:39 tomodo: yes 06:05:56 redsky: this sounds very advanced. maybe you can paste a piece of example code that illustrates what you want to do to paste.lisp.org to get some implementation advice. 06:06:31 redsky: with this in mind you should be able to see why this necessitates naming (as in macrolet) 06:06:44 kanru`` [~user@118-163-10-190.HINET-IP.hinet.net] has joined #lisp 06:06:45 (of course I mean macroexpand in code, rather than interactively to see what a macro expands to) 06:06:49 H4ns: it's not advanced so much as unorthodox. It's pretty simple to do using Hoyte's defmacro!, the only piece I am missing is anonymous macros. 06:06:53 -!- flip214 [~marek@unaffiliated/flip214] has quit [Ping timeout: 252 seconds] 06:07:05 redsky: and these "anonymous macros" are not possible 06:07:32 tomodo: pjb made it in less than half an hour. Probably 5 min. I haven't tested it yet though 06:07:34 redsky: hoyte is not usually seen as a reference in this channel. 06:07:56 redsky: but maybe you want to paste some code that shows what you want to do? 06:08:04 flip214 [~marek@86.59.100.100] has joined #lisp 06:08:04 -!- flip214 [~marek@86.59.100.100] has quit [Changing host] 06:08:05 flip214 [~marek@unaffiliated/flip214] has joined #lisp 06:08:54 redsky: are you saying that you can use this thing pjb pasted to solve your problem? 06:09:11 jake [~jake@63.249.57.43] has joined #lisp 06:09:37 -!- jake is now known as Guest7381 06:10:16 you seem to be making contradictions 06:10:20 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 06:10:25 in order to evade the realization that what you want is not possible 06:10:30 tomodo: quite possibly. he is right in that it's not a great thing to use something you don't understand. Plus I am still wondering about other approaches mentioned here. #. maybe not so much, since I'd have to reimplement the arg logic, but macro function maybe... 06:10:32 -!- Guest7381 is now known as jake__________ 06:11:51 tomodo: where did I contradict anything? I asked for anonymous macros and pjb ostensibly built one. too busy discussing and researching to tinker with it at the moment 06:12:16 http://www.lispforum.com/viewtopic.php?f=2&t=3323#p9590 06:12:40 "the only piece I am missing is anonymous macros." 06:13:40 H4ns: check out that post, it's the beginings of the kind of abstraction I am going for. The ability to pass arguments to a closure, and have those arguments be distributed to some of the closure's inputs (which are functions, but I want them to be macros or special ops as well) 06:14:14 redsky: just try to think about what I said about the execution order and why that makes anonymous macros impossible 06:14:45 tomodo: would you like me to shut up now that I got what I want? I am interested in hearing all views. Also, may need to take pjb's thing apart to make it work with Hoyte's sublexical scope. 06:15:22 you are always deflecting and evading every opportunity to realize the truth 06:15:42 it'd be possible to write your own macroexpander and invoke compile on the results too, but I also wonder if that's much useful if you have to go that route 06:15:54 tomodo: tell me how pjb's thing is broken then? You are the one claiming it's not possible. 06:16:16 -!- jjkola_work [c064748e@gateway/web/freenode/ip.192.100.116.142] has quit [Ping timeout: 245 seconds] 06:16:21 are you saying that you can solve your problem using the code pjb pasted? 06:17:10 pnathan [~Adium@75.87.255.164] has joined #lisp 06:17:12 -!- [SLB] [~slabua@unaffiliated/slabua] has quit [Quit: Close the world, Open the nExt] 06:17:17 are you going to evade this question a second time because answering it woud force you to realize that your "anonymous macros" are not possible? 06:17:30 tomodo: either that or it's a nice practical joke. 06:17:41 mishoo [~mishoo@79.112.104.38] has joined #lisp 06:17:46 -!- ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 252 seconds] 06:17:51 " tomodo: quite possibly." I did not evade the question the first time. 06:18:15 redsky: i'd like to see how your new abstraction is used, not how it cannot be implemented. 06:19:00 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Ping timeout: 265 seconds] 06:19:11 redsky: that's an evasive non-answer 06:19:13 H4ns: 'my new abstraction' is referring to the anon macro or the arg pass through system I linked here: http://www.lispforum.com/viewtopic.php?f=2&t=3323#p9590 ? 06:19:15 (twice) 06:19:43 redsky: your anonymous macros. 06:20:37 H4ns: well I intend to use it to greatly improve the utility of the arg pass through tool, probably replacing it entirely by injecting free variables (quoted symbols) and binding over them with a let or lambda. 06:20:47 redsky:no matter how simple I explain it it's not going to get through beecause you've already decided on the (wrong) answer 06:20:57 redsky: why don't you paste some code? 06:21:46 redsky: ah, no. forget about it. i think we're wasting our time, sorry. 06:21:48 tomdo: by anonymous macro I mean a form akin to lambda that, when macalled (new equivalent of funcall) would be invoked as a macro literal in a manner analogous to a lambda being a function literal. 06:22:17 H4ns: I have pasted code at the link I sent you twice. Sorry, did you want me to copy it to pastebin? 06:22:28 i very much like nick levine's USING macro, btw. 06:22:33 http://www.lispforum.com/viewtopic.php?f=2&t=3323#p9590 final version is at the bottom 06:22:38 redsky: if you'd just accept the possibility that this cannot be done, then think about it in terms of hte execution order that I pointed out earlier, it is well within your technical ability to see why this is not possible 06:23:11 killerboy [~mateusz@195.225.68.249] has joined #lisp 06:23:14 H4ns: to be clear, http://www.lispforum.com/viewtopic.php?f=2&t=3323#p9590 is my post. I am vigil_ante 06:24:21 -!- ASau [~user@95-27-143-55.broadband.corbina.ru] has quit [Ping timeout: 248 seconds] 06:26:09 ASau [~user@95-27-143-55.broadband.corbina.ru] has joined #lisp 06:26:50 Is this is some new really weird form of trolling? From both tomodo and H4ns. Repeatedly asking for code examples and ignoring it when given? 06:27:14 I never once asked you for code 06:27:24 but you ignore pjb's implementation 06:27:31 false 06:28:17 redsky: as i said, we're wasting our time. i asked for code that _used_ your abstraction. i do not understand why you want to do what you do, and hoped to learn how that abstraction can improvde code. 06:28:18 how does evaluation order matter? the code walker should see mac1 and mac2 just fine. But the second one should expand into an anonymous macro form. 06:28:27 code walke? 06:28:29 code walker? 06:28:52 reader, whatever. invocation order isn't changed at all 06:28:55 redsky: so, let's call it quits. that's all. no hard feelings. sorry to have participated in a discussion that i can't understand. 06:29:01 maybe I was wrong, and you don't know how macro-expansion occurs 06:30:08 -!- ASau [~user@95-27-143-55.broadband.corbina.ru] has quit [Remote host closed the connection] 06:30:40 -!- jake__________ [~jake@63.249.57.43] has quit [Quit: leaving] 06:30:42 attila_lendvai [~attila_le@37.99.77.115] has joined #lisp 06:30:42 -!- attila_lendvai [~attila_le@37.99.77.115] has quit [Changing host] 06:30:42 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 06:30:48 albacker [~eni@unaffiliated/enyx] has joined #lisp 06:31:00 redsky: when evaluating lisp forms it is done innermost first. When macro-expanding source code it is done outermost first. When running a piece of lisp source code you can think of it being completely macro expanded, then evaluated. 06:31:07 pnathan1 [~Adium@75.87.255.164] has joined #lisp 06:31:17 ASau [~user@95-27-143-55.broadband.corbina.ru] has joined #lisp 06:31:25 -!- pnathan [~Adium@75.87.255.164] has quit [Read error: Connection reset by peer] 06:32:29 kilon [~kvirc@178.59.17.196] has joined #lisp 06:32:41 redsky: is that clear? did you already know this? 06:32:46 tomodo: a very cursory glance at pjb's thing implies he's using a gemsym'ed macrolet, which is how I'd envisioned it. i.e. the closest you can get to a name that doesn't really exist. So I am guessing (very rough guess here) that the read macro transforms the anonymous macro form into a gemsymed macrolet. Which is expanded like any other macro. 06:33:32 you're right about that 06:33:42 Ragnaroek [~chatzilla@boccacio.fh-trier.de] has joined #lisp 06:33:46 tomodo: if you want to call that cheating and not really an anonymous macro then fine. assuming it wasn't in the standard, I didn't expect a pure anon solution to exist, and so long as it doesn't pollute the namespace I do not care 06:33:56 -!- albacker [~eni@unaffiliated/enyx] has quit [Client Quit] 06:34:04 I never once called it "cheating" 06:34:20 I've asked several times whether or not it solves your problem but you refuse to answer 06:34:28 so what is it then if not an anonymous macro, which you've repeatedly said was impossible? 06:34:41 <|3b|> if it doesn't have a name, it is just a function 06:34:58 my problem is the language isn't expressive enough. I've given the general-purpose curry/preapply as an example of something I could fix with an anon macro. 06:35:01 <|3b|> the only thing that makes a particular function a macro, is being used as such by the compiler 06:35:04 lebro [~monx@ool-18bc4a28.dyn.optonline.net] has joined #lisp 06:35:38 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 06:36:03 <|3b|> a particular function object could be both a macro and normal function if used as such with different names 06:36:13 Read the kernel paper ... 06:36:25 Stop wasting your time with this incoherent babbling. 06:36:49 |3b|: the macro-function thing is new to me, if that's what you're talking about. I want to deal with macroexpansions because I want to purposefully inject free variables into them, which you can't do with compiled functions and I'm assuming not interpreted. 06:38:35 *|3b|* has no idea what you intend from that description 06:38:57 *redsky* sighs 06:40:00 jjkola_work [c064748e@gateway/web/freenode/ip.192.100.116.142] has joined #lisp 06:40:05 *|3b|* 's point is that "macro"ness is associated with names in CL, so it can't really have a concept of "anonymous macro" 06:40:18 <|3b|> if it has no name, it is just a function 06:40:21 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 248 seconds] 06:40:31 it's the obsession with intentionality that's destroying our future. it's why we have java damnit. /rant 06:40:35 <|3b|> you can write your own macro to add that concept if you want 06:40:41 mcsontos [mcsontos@nat/redhat/x-vmlwfsklisddwkea] has joined #lisp 06:40:47 so let me be really, really general here: 06:43:57 I want operators that can accept arguments and bind them sublexically (Hoyte's term, in context of macros basically means that the bindings will not commute to nested macro calls) and for the purposes of my project I want to envision them as return blocks of code. Since it is just returning a block of code, I can have unbound symbols in it. In fact, I can use the arguments as a controlled way of injecting unbound symbols. 06:44:45 that's totally impossible 06:44:49 The project, if you must know, is AI. Trying to design skynet. In any AI/expert system app, tweaking of parameters is paramount. Thus a macro-centric view with free variable injection allows one to expose and tweak parameters like nothing else 06:45:08 christ on a cracker, of course it's not. It's how variable capture works 06:45:34 remember the difference between evaluation order and macro-expansion order? 06:45:36 have you looked at the vau-calculus & fexprs? 06:46:36 pnathan1: I've recently been told of fexprs. Haven't gone hunting for libraries yet. 99% of what I want to do is compile time anyway, so I'm hesitant to go looking for a solution that will be slower. 06:47:20 99% of what I want to do with these operators, I mean. There's a hefty runtime layer too of course. and eventually will be recompiling at runtime and all that awesome stuff. 06:47:20 What's "free variable injection"? 06:47:42 sn0rri [~sn0rri@62.169.219.149] has joined #lisp 06:47:43 redsky: my understanding is that you will have to have an interpreter-y solution to dynamically rebind variables. 06:47:46 -!- sn0rri [~sn0rri@62.169.219.149] has quit [Read error: Connection reset by peer] 06:48:03 sn0rri [~sn0rri@62.169.219.149] has joined #lisp 06:48:15 redsky: make sure that you understand the difference between load-, compile-, macroexpansion- and run-time before you want the awesomeness to start. 06:48:28 teggi [~teggi@113.172.40.224] has joined #lisp 06:48:28 <|3b|> don't forget read-time 06:48:34 right. 06:50:27 I suspect you can /do/ this in CL, but you will have to determine how to do *super*-late binding; I'd guess you'll have to directly call read/eval. 06:50:44 If you have a blog of your progress, I'd be interested. 06:50:51 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 06:51:11 tomodo: I may not be using it as Hoyte uses it. I just mean I can design macros that will, if given certain args, will macroexpand into something with no free variables, but if given other args (most obviously, an uninterred quoted symbol) will macroexpand into a form that has free variables. Which can be bound over by a let, or a lambda. So I can create customization whereever I want it. 06:51:36 <|3b|> a macro can return any code you want 06:51:39 yeah 06:52:17 yes... 06:52:19 -!- DataLinkDroid [~David@1.155.46.12] has quit [Quit: Bye] 06:52:31 So having a way to modify macros and return them as anonymous macros would be especially powerful, no? 06:52:37 no 06:52:38 pnathan: progv might do what you want. 06:52:38 just like functions are done 06:52:47 <|3b|> "return" from where? 06:52:51 redsky: you can already write macros that write macros 06:52:53 <|3b|> and to where? 06:53:01 macros get expanded I don't believe that they 'return' anything 06:53:04 redsky: it's called creating a "macro system" 06:53:34 redsky: basically it means instead of using defmacro you use your own tools to build macros 06:53:56 yes but I'd rather not write, say, 10k macros by hand 06:54:06 <|3b|> so don't 06:54:09 Zhivago: interesting, haven't run into progv before 06:54:13 right, you can automatically create 10k macros using your own macro system 06:54:24 <|3b|> or generate 10k functions, and call them from a macro 06:54:38 <|3b|> or write 1 flexible function or macro 06:55:23 so how would you call 10k macros without designing some kind of anonymous macro like system with macall instead of funcall? 06:55:59 the point is you have to be able to say "go build me a thing" then take the thing and use it. 06:56:10 -!- Skola [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has quit [Ping timeout: 252 seconds] 06:56:26 <|3b|> macall is a macro, it calls functions 06:56:32 <|3b|> those functions can be anonymous 06:56:47 <|3b|> they must exist in the compilation environment 06:56:53 redsky: you can write a macro M such that (M X) expands into (N X) where N is a macro too, then the "N" macro will be expanded. You don't need any "MACALL" 06:57:00 <|3b|> since they are called by a macro during compilation 06:57:22 <|3b|> what do you want that isn't covered by that? 06:58:33 if you think about the order that macro-expansion is done in, you will understand why you never ever need to write (MACALL #'N X) instead of (N X) (where MACALL and N are macros) 06:59:54 -!- lebro [~monx@ool-18bc4a28.dyn.optonline.net] has quit [Remote host closed the connection] 06:59:55 tomodo: of course you are right. and N is named. unnamed macros would obviously need something like macall or a read macro 06:59:56 notice this is different from evaluation, where FUNCALL does have uses 07:00:02 no 07:01:44 -!- cmm [~cmm@bzq-79-181-196-95.red.bezeqint.net] has quit [Ping timeout: 246 seconds] 07:01:54 You need to understand what the purpose of a macro is. 07:01:56 |3b|: again, functions can't have free variables. I would like to optionally have free variables in the operators I call 07:02:14 -!- asvil [~asvil@178.124.160.180] has quit [Ping timeout: 272 seconds] 07:02:14 <|3b|> redsky: can macros have free variables? 07:02:15 It is a compiler from the language containing that macro to the language not containing that macro. 07:02:31 <|3b|> redsky: note that i said /call functions/ not /return calls to functions/ 07:02:34 Macros don't have variables. 07:02:38 <|3b|> or /return code that calls a function/ 07:02:41 -!- superflit [~superflit@71-218-200-111.hlrn.qwest.net] has quit [Remote host closed the connection] 07:02:43 They receive source code to translate. 07:02:43 |3b|: yes, so long as you define those variables in the enclosing environment. 07:02:50 -!- pnathan1 [~Adium@75.87.255.164] has quit [Quit: Leaving.] 07:02:52 superflit [~superflit@140.226.4.54] has joined #lisp 07:03:09 redsky: there are not "unnamed macros" 07:03:10 <|3b|> redsky: (defmacro foo () bar) <- where is teh enclosing environment? 07:03:42 cmm [~cmm@bzq-79-176-202-109.red.bezeqint.net] has joined #lisp 07:04:16 tomodo: again, I understand that CL has no support for unnamed macros. Conceptually, it is easy to imagine how they would work though. pjb did. 07:04:18 <|3b|> (defun generate-some-code () `(foo bar baz)) <- no free variables 07:04:41 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:04:49 redsky: but i showed you a true unnamed macro! 07:04:55 redsky: "Conceptually, it is easy to imagine how they would work though." I disagree, I've demonstrated that they are impossible several times 07:05:17 redsky: maybe you should write out a spec for them 07:05:23 stassats: the #. thing? It is interesting yes but one would have to reimplement the arg logic no? 07:05:30 <|3b|> redsky: i'm not sure pjb's example does what you want though 07:05:52 redsky: no, (defmacro anomacro ((lambda-list body) &rest args) (let ((name (gensym))) `(macrolet ((,name ,lambda-list ,body)) (,name ,@args)))) 07:05:56 -!- treyka [~treyka@85.234.199.185] has quit [Ping timeout: 246 seconds] 07:06:26 <|3b|> redsky: i still think you are missing the implications of macros being implemented by functions though 07:06:40 this is really a fascinating discussion, but I'm going to sleep 07:06:44 <|3b|> once it has no name, it is just a function, interchangable with /any other function/ 07:06:48 oh, wait, 4/1 was yesterday 07:07:06 <|3b|> so you can just use normal anonymous functions for what you want 07:07:22 -!- stassats` [~stassats@wikipedia/stassats] has quit [Remote host closed the connection] 07:07:38 |3b|: and if I don't want my args to be auto-evaluated? 07:08:07 <|3b|> you already said you wanted to have a MACALL macro, right? that takes care of that 07:08:21 nikodemus [~nikodemus@87-93-21-117.bb.dnainternet.fi] has joined #lisp 07:08:49 I've already explained that MACALL is useslss 07:09:01 <|3b|> (defmacro macall (foo &rest bar) (apply (pick-a-function foo) bar)) 07:09:12 <|3b|> tomodo: not completely, but it would be hard to use effectively 07:09:15 having a smoke and testing pjb's thing, brb. 07:09:15 redsky is the troll that just keeps on giving because he can't read the kernel paper. 07:09:22 |3b|: oh, that's different than I thought 07:10:00 It's been 2 hours since I said MACROLET. I really thought 1 hour 30 would be enough 07:10:04 Zhivago: and you still don't know what my goals are because you haven't read LOL. But I don't begrudge you that. 07:10:31 is your goal to write unreadable code? 07:10:38 Your goal is incoherent. 07:10:53 So it is impossible to actually know it. 07:11:06 The problem is that you haven't figured that out yet. :) 07:11:12 jdz [~jdz@193.206.22.97] has joined #lisp 07:11:33 tomodo: and I said 2x or 3x that if it wasn't preexisting already, a gemsymed macrolet would probably be the way to go. just "use macrolet" isn't a solution any more than "use labels" would be a solution for someone needing to invent lambda 07:11:44 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Ping timeout: 272 seconds] 07:12:16 redsky: you cannot make an analogy between the macro language and the function language 07:13:14 -!- ltriant [~ltriant@lithium.mailguard.com.au] has quit [Ping timeout: 260 seconds] 07:13:20 Actually, you can, but it requires decomposing both into special operators. 07:13:28 Which is what the kernel paper does. 07:13:36 The problem is that you cannot handle macros as functions. 07:13:45 Zhivago: what kernel paper? 07:13:49 Their domains are completely different. 07:13:57 <|3b|> (defmacro my-lambda (args &rest body) `(labels ((some-hidden-package::foo ,args ,@body)) #'some-hidden-package::foo)) ? 07:14:14 <|3b|> or gensym, if you want to be really paranoid 07:14:33 s/be really paranoid/it to work at all/ 07:14:34 Ok, so, from the very beginning I have been using the source-to-source mental model. I want operators that translate and splice source code into source code, and I wrap the whole thing up in one happy little lambda in the end. 07:14:48 http://web.cs.wpi.edu/~jshutt/kernel.html 07:14:48 I understand shit is more complicated under the hood 07:14:59 redsky: Then read the goddamned kernel paper. 07:15:14 redsky: what you just said didn't mean anything 07:15:34 that doesn't mean I need to know how to rebuild the transmission in order to operate the blinker. Though I admit it's a flawed comparison because the thing I am attempting to do isn't standard. 07:15:54 What you are attempting is incoherent. 07:16:03 Which is why you can't explain it coherently. 07:16:06 <|3b|> (defun splice-source (source1 source2) (append source-1 source2)) 07:16:15 mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has joined #lisp 07:16:18 This should be a warning sign. 07:16:21 <|3b|> that is just a function 07:16:43 <|3b|> (splice-source '(list a b c) '(d e f)) -> (list a b c d e f) 07:16:56 H4ns: But Nick's using fails as soon as you have a dotted list in your source, such as (assoc key '((a . 1) (b . 2))). 07:17:06 Zhivago: can't explain actuarial science to people either, still got an 8 on my FM after a week and a half of studying. 07:17:29 <|3b|> (defmacro foo (a b) (splice-source a b)), (foo (list a b c) (d e f)) expands to (list a b c d e f) 07:17:38 H4ns: http://paste.lisp.org/+2RBE 07:17:42 Zhivago: I say that just to clarify that I'm not stubborn so much as I realize where most the misunderstanding is likely occurring 07:17:56 redsky: If you can't explain actuarial science, then you're incompetent. 07:18:27 Zhivago: I prefer to think that most of western education is competent and has thought people to think literally instead of conceptually 07:18:46 redsky: That is gibberish. 07:18:56 Zhivago: my point exactly 07:19:00 <|3b|> redsky: arguing with Zhivago tends to be counterproductive 07:19:19 Zhivago: you're like a compiler really, any free variable you encounter is gibberish 07:19:20 redsky: Your point is that you're speaking gibberish? 07:19:20 not true 07:19:44 I have to agree with tomodo, I've had productive arguments with zhi before 07:19:51 haha 07:20:38 -!- kanru`` [~user@118-163-10-190.HINET-IP.hinet.net] has quit [Ping timeout: 240 seconds] 07:21:07 -!- leo2007 [~leo@119.255.41.67] has quit [Ping timeout: 264 seconds] 07:21:12 |3b|: I appreciate the effort though I didn't mean splice quite that literally. Was just an effort to explain I was thinking about thinks in terms of macroexpansions. 07:21:27 krrrcks [~krrrcks@krrrcks.de] has joined #lisp 07:21:30 <|3b|> redsky: so substitute some other operation 07:21:44 <|3b|> it is lisp code, full turing complete language 07:22:16 |3b|: although maybe something like that could work if you put a sublet over it, then reimplement the arg logic. but kinda redundant 07:22:20 -!- dnolen [~user@67.106.254.3.ptr.us.xo.net] has quit [Ping timeout: 260 seconds] 07:22:22 ivan-kanis [~user@nantes.visionobjects.com] has joined #lisp 07:23:03 Go and read shutt's paper. He provides a unified base for both macro and function. 07:23:18 Then you might be able to stop gibbering incoherently. 07:23:31 leo2007 [~leo@119.255.41.67] has joined #lisp 07:23:37 I'm just wondering if you can compile away all the macros in this kernel thing before executing any code 07:23:38 <|3b|> Zhivago: why do you assume the problem isn't a misunderstanding of how CL works? 07:23:50 3b: It's not about CL. 07:24:05 <|3b|> tomodo: if they could have been CL macros, it should be able to 07:24:09 attila_lendvai1 [~attila_le@87.247.57.24] has joined #lisp 07:24:09 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Disconnected by services] 07:24:12 -!- attila_lendvai1 is now known as attila_lendvai 07:24:13 -!- attila_lendvai [~attila_le@87.247.57.24] has quit [Changing host] 07:24:13 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 07:24:14 3b: He doesn't know the problem that he's trying to solve. 07:24:16 |3b|: kernel 07:24:30 3b: He just knows some symptoms of an unknown problem that he wants to go away. 07:24:37 can or can't macroexpansion be viewed in a simplified manner as splicing in code as determined by the logic in defmacro ? 07:24:41 3b: Which is why he can't express the underlying problem meaningfully. 07:24:43 *|3b|* 's understanding is that kernel lets you do some more powerful stuff, so the more powerful stuff might not be able to be resolved at compile time 07:25:10 Zhivago: no, I am beyond that little utility now and I never said it was an unknown problem, I knew exactly why it didn't work with special ops and macros. 07:25:12 <|3b|> Zhivago: i think he just can't tell whether the problem is meaningful or not 07:25:13 that's the question 07:25:38 Kernel may not be the right thing, but it provides a unified base for functions and macros, which is what underlies the symptioms he is complaining about. 07:25:38 <|3b|> redsky: a macro is a function that happens to be called with some source code and return some source code during compilation 07:26:03 <|3b|> redsky: that function can call any other functions which exist during compilation 07:26:04 redsky: Then explain the problem in a coherent fashion. 07:26:09 Ok, so that's it then, I am returning source code. Period, that's all I care about at the moment. 07:26:35 Then macros are fine -- that's what they do -- receive source containing the macro invocation and produce source not containing it. 07:26:46 <|3b|> (defun return-some-source-code () (list 'this 'is 'code)) 07:26:49 They compile from language-with-that-macro to language-without-that-macro. 07:27:26 The 'problem' is multipart: 1. I wish to structure all of my logic in a certain part of my program in macros so that I can inject free variables (pass quoted uninterred symbols) and bind the whole thing with a lambda. 07:27:31 Eventually you run out of macros, and you're down to the base language. 07:27:33 <|3b|> (defmacro expand-to-source-code () (list 'this 'is 'more 'code)) 07:27:37 Do you accept #1? 07:27:56 I know better than to proceed to #2 before knowing you know what I'm talking about with #1 07:28:08 varjag [~eugene@122.62-97-226.bkkb.no] has joined #lisp 07:28:10 What do macros have to do with that problem? 07:28:47 You can pass symbols to functions. 07:28:50 *|3b|* thinks #1 is too general to get useful feedback 07:29:46 Zhivago: yes but the function isn't expecting a symbol, it's expecting something else, so generates an error. Worse yet, that value needs to be passed to some other nested functions. 07:29:56 Why isn't it expecting a symbol? 07:30:28 Then you don't want to pass quoted uninterned symbols. 07:30:32 So your question is wrong. 07:30:46 Is it expecting the value of the symbol? 07:31:03 If so, pass (symbol-value symbol) instead of symbol. 07:31:59 The idea is to return an unexecuted code block from the macro call. so you can supply either the actual values it's looking for OR a quoted uninterned symbol. If you do the latter, you must close over the free variable with a let/lambda. 07:32:42 <|3b|> so either write a macro that does that, or generate code and EVAL or COMPILE it 07:33:02 Start by writing the code without any macros. 07:33:04 |3b|: this is just #1, remember? yes, there is no conceptual problem here 07:33:13 When it works, you'll have a coherent implementation. 07:33:14 Zhivago: I did, and you saw the problems I hit 07:33:21 <|3b|> ok, so #1 is "you want to write a macro"? 07:33:26 I remember a lot of incoherent drivel. 07:33:40 You seem to be in a lucid moment, so reiterate. 07:33:42 So Zhi, are you with me on #1? 07:33:48 redsky: No. 07:34:01 I am at "write it without macros". 07:34:14 So, tell us why that doesn't work. 07:34:49 multiple evaluation, for one 07:34:55 well 07:34:57 nevermind 07:35:18 <|3b|> Zhivago: by "write it without macros" do you mean "write what the macro would have expanded to if it existed"? 07:35:21 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 07:35:24 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Excess Flood] 07:35:27 splittist [d417faa6@gateway/web/freenode/ip.212.23.250.166] has joined #lisp 07:35:31 odd that you said I was lucid, just starting to really lose my train of thought here. 07:35:43 difficult having to do baby steps to this degree 07:35:45 <|3b|> or "write a function that processes a list and returns the desired code"? 07:35:56 3b: Sure. 07:36:20 3b: Sorry. "What macros would have expanded to". 07:36:22 Hi, I want to hash a password with the Ironclad library. Would be something like (ironclad:digest-sequence 'ironclad:sha1 "secret") appropriate? 07:36:33 -!- Phoodus [~foo@ip72-223-116-248.ph.ph.cox.net] has quit [Ping timeout: 244 seconds] 07:36:51 morning 07:36:58 Zhivago: it seems like you can't compile away all the macros in kernel before evaluating the code 07:37:10 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 07:37:40 tomodo: They decompose into applicatives. 07:37:41 Zhivago: alright, so the operator needs to be able to take special operator or macro arguments. This clearly rules out functions and implies macros, yes? 07:37:51 redsky: Wrong. 07:37:58 redsky: The operator doesn't need to be able to do that. 07:38:06 redsky: What problem are you trying to solve? 07:38:20 wait so you can? 07:38:50 tomodo: Yes, but it depends on what you mean by macro. 07:38:54 the thesis has so much unnecessary stuff in it I gave up reading it 07:39:11 it looks intersting but the paper could be much shorter 07:39:15 Zhivago: ah and so the top-down ogre rears its head again. again, the problem is AI. an example of a very simplied sort of thing I want is here: http://www.lispforum.com/viewtopic.php?f=2&t=3323#p9590 07:39:35 What you want is irrelevant. 07:39:40 What problem are you trying to solve? 07:39:42 hkBst [~marijn@gentoo/developer/hkbst] has joined #lisp 07:39:56 Really, what you want is the problem. Your desire is incoherent. 07:40:06 <|3b|> redsky: can you give an example of a call to the macro you want, and what it should expand to? 07:40:10 -!- adu [~ajr@pool-72-83-26-98.washdc.fios.verizon.net] has quit [Quit: adu] 07:40:10 So forget about that, and talk about the problem you're trying to solve with this nonsense. 07:40:37 |3b|: i believe that's what was asked repeatedly for the past couple of hours 07:40:57 *H4ns* asked that, too 07:41:12 <|3b|> stassats: probably, hopefully i at least phrased it differently 07:41:18 morning 07:41:36 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:41:46 *|3b|* sees lots of failure to communicate in this conversation :( 07:42:19 Stupid people are generally stupid because they can't see that they're being stupid. 07:42:20 -!- tensorpudding [~michael@108.87.21.241] has quit [Ping timeout: 246 seconds] 07:42:23 Otherwise they'd stop. 07:42:28 The same applies to incoherent people. 07:42:29 ahinki [~chatzilla@212.99.10.150] has joined #lisp 07:42:47 <|3b|> even intelligent people can't tell how much they don't know though 07:43:17 Sure. 07:43:25 I can re-parse the example I've already given you here: http://www.lispforum.com/viewtopic.php?f=2&t=3323#p9590 , but I have more advanced usages in mind. 07:43:27 You can be intelligent and stupid at the same time. :) 07:43:34 So, perhaps ... my simple Ironclad question get a chance to on the channel's agenda? ;) *G* 07:43:45 So, I want an operator, let's call it argpass 07:43:48 Zhivago: i think you mean ignorant 07:43:50 redsky: What goddamned problem are you trying to solve with that nonsense? 07:44:08 (argpass this-operator arg1 arg2 arg3...) 07:44:14 redsky: What problem do you want to solve with this operator? 07:44:26 redsky: show us some code that uses the operator. 07:44:50 <|3b|> (defmacro argpass (op &rest args) ...)ok, what's next? 07:45:03 gravicappa [~gravicapp@ppp91-77-185-69.pppoe.mtu-net.ru] has joined #lisp 07:45:08 <|3b|> krrrcks: is the question about how to use ironclad or whather that is a good thing to do? 07:45:33 krrrcks: questions about questions are not welcome 07:45:38 ask the real question 07:45:52 I want to hash a password with the Ironclad library. Would be something like (ironclad:digest-sequence 'ironclad:sha1 "secret") appropriate? 07:46:01 this-operator can be a special op, macro or function. ditto args, but also can be constants (will be a read macro or something to differentiate, will figure that out later). I want this to return a closure. The closure, when invoked, will call all of the original args (except the constant ones, which in some cases can include function-objects) with the arguments supplied to the closure 07:46:07 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Ping timeout: 276 seconds] 07:46:12 redsky: What problem do you want to solve with this operator? 07:46:21 <|3b|> redsky: so what should (argpass let ...) do? 07:46:24 The simplest example I can think of is filtering 07:46:42 krrrcks: yes, but consider adding salt to it 07:46:44 Give a specific example of a problem that you want to solve with this operator. 07:46:45 bleh 07:46:45 MoALTz_ [~no@host-92-8-155-109.as43234.net] has joined #lisp 07:46:51 <|3b|> you can't /call/ special operators 07:46:59 the kernel thing is annoying because it's interesting and badly written 07:47:03 this-operator is a filter, and I want some pass-through behavior to its dependencies 07:47:11 krrrcks: and you can just pass :sha1 07:47:20 3b: Fortunately you can solve that problem by generating a function containing the special operator. 07:47:34 Give a specific example of a problem that you want to solve with this operator. 07:47:37 (argpass my-filter input1 input2 some-constant input3) 07:47:38 <|3b|> Zhivago: right, which means 1 fewer requirement for the desired macro 07:47:56 Out pops a closure I can call that will combine and filter inputs 07:48:17 -!- hkBst [~marijn@gentoo/developer/hkbst] has quit [Ping timeout: 246 seconds] 07:48:23 -!- fantasticsid [~user@2001:da8:8001:708:cc1e:4821:8fea:862] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 07:48:47 hkBst [~marijn@79.170.210.172] has joined #lisp 07:48:47 -!- hkBst [~marijn@79.170.210.172] has quit [Changing host] 07:48:47 hkBst [~marijn@gentoo/developer/hkbst] has joined #lisp 07:48:59 stassats: okay. thanks. 07:49:08 -!- MoALTz [~no@host-92-8-157-169.as43234.net] has quit [Ping timeout: 265 seconds] 07:49:18 krrrcks: and keep in mind that digest-sequence accepts using-byte-8 arrays, so you need to convert the string to it 07:49:31 Use FUNCTION to produce a function for that purpose. 07:49:31 using, for example, babel:string-to-octets 07:49:34 Problem solved. 07:49:46 -!- MrBusiness [~MrBusines@184.99.7.19] has quit [Quit: Leaving] 07:50:12 or in case you're using an ascii string, ironclad:ascii-string-to-byte-array will do 07:50:12 Zhivago: I really can't be more specific than that. In many ways this is a bottom-up project. I know for sure there will be plenty of filtering scenarios like that. 07:50:41 stassats: ah. good hint. i was just wondering why DIGEST-SEQUENCE with SHA1 for "secret" gives the same result as for "secure"... 07:51:24 ah. converting is a good idea :) 07:51:35 -!- flip214 [~marek@unaffiliated/flip214] has quit [Quit: Leaving] 07:51:37 krrrcks: that's strange, it should signal an error 07:51:50 unless your code is compiled with safety 0, which is a no-no 07:51:50 (ironclad:digest-sequence 'ironclad:sha1 "secret") 07:51:51 redsky: Your problem is trivially solved using functions. 07:52:02 worked in my ccl. 07:52:06 redsky: Rejoice, for your incoherent operator nonsense is unnecessary. 07:52:30 Zhivago: again, args and this-operator can be macros, functions or special ops. 07:52:48 no they can't 07:52:57 redsky: No. They need to be functions. 07:53:09 redsky: So, just generate functions. 07:53:13 <|3b|> redsky: which special operators could you meningfully use there? 07:53:15 redsky: Problem solved. 07:53:55 argpass has all the classic symptoms of freshman macrology. (1) desire to do something awesome (2) handwavy semantics (3) no real use cases to hand 07:54:11 |3b|: I don't know, but a solution that works for macros will also almost certainly work for special ops as well. 07:54:20 krrrcks: note again that you can just pass a keyword: (ironclad:digest-sequence :sha1 (ironclad:ascii-string-to-byte-array "secret")) 07:54:33 <|3b|> http://www.lispworks.com/documentation/HyperSpec/Body/03_ababa.htm#clspecialops <- seriously, look at that list and think about it 07:54:55 desire to do something awesome is not terrible, in itself :) 07:55:18 mathrick_ [~mathrick@85.218.148.156] has joined #lisp 07:55:19 -!- cmm [~cmm@bzq-79-176-202-109.red.bezeqint.net] has quit [Ping timeout: 264 seconds] 07:55:35 -!- naiv_ [~naiv@AAnnecy-552-1-217-40.w109-208.abo.wanadoo.fr] has quit [Ping timeout: 260 seconds] 07:55:43 -!- DGASAU [~user@91.218.144.129] has quit [Remote host closed the connection] 07:55:52 naiv_ [~naiv@AAnnecy-552-1-228-149.w83-197.abo.wanadoo.fr] has joined #lisp 07:56:22 (argpass if success-function fail-function), pass resulting closure to a statistical analysis routine, have it iterate over the underlying parameters (which are passed to both success-function and fail-function). If is a special operator. 07:56:33 krrrcks: indeed, that means CCL isn't doing enough type-checking 07:56:35 but to write a macro you either need to have clear semantics in mind (which is what zhivago is calling you out -- you haven't really provided any), OR you need to gave a bunch of real use cases. either will do, but if you have neither you're just doing a finger-excercise 07:56:48 So, instead of doing that nonsense, generate a function that does the if for you. 07:56:50 <|3b|> redsky: ok, what would the expansion of that call look like? 07:56:53 cmm [~cmm@109.65.209.35] has joined #lisp 07:56:56 stassats: yes, seems that this was my problem. I didn't read the documentation carefully enough. But on CCL this worked: http://paste.lisp.org/display/128715 07:57:06 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 07:57:23 (lambda (c y n) (if c (funcall y) (funcall n)) 07:57:23 perhaps froydnj is used to SBCL's type declarations are assertions 07:57:31 And there was much rejoicing. 07:58:02 and if it's (argpass if macro1 macro2) ? 07:58:17 Then you're an idiot, and need to rewrite it. 07:58:18 <|3b|> you want to call the macros at runtime? 07:58:24 stassats: SBCL complains about the wrong type (TYPE ERROR). 07:58:33 perhaps the API exposed functions should call check-type 07:58:49 Convert those macros into function also. 07:58:49 Yes, well, you refuse to try to understand conceptual explanations and I'm sorry I can't give you detailed concrete ones. I do know what my program will need 07:59:02 redsky: It doesn't need your stupid operator. 07:59:03 stassats: Thanks for your help. I'll send froydn an e-mail about the CCL thing. But now I know how to handle it. 07:59:15 redsky: All it needs are ways to produce functions containing special operators and macros. 07:59:27 redsky: Once you grasp this point, then the solution becomes straight-forward. 07:59:36 krrrcks: don't send an email, open an issue at https://github.com/froydnj/ironclad 07:59:44 The answer should never be "the programmer should never want to do that". Lisp is great precisely because macros allow you to bypass the can'ts 07:59:52 -!- mathrick [~mathrick@94.144.63.10] has quit [Ping timeout: 272 seconds] 07:59:54 redsky: how long have you been working with lisp? 08:00:16 <|3b|> redsky: i think some of it isn't "shouldn't want to" but "doesn't need to" 08:00:17 redsky: You don't understand what macros are, then. They are not magical goddamned ponies. 08:00:18 a few months. Again, the example is trivial and I'm sure has other trivial solutions 08:00:32 MoALTz__ [~no@host-92-2-138-171.as43234.net] has joined #lisp 08:00:34 stassats: Yes. 08:00:38 People start drooling around here when I try to talk about anything more complex 08:00:40 And your problem is trivially solved by generating functions. 08:00:51 So, go and solve that problem. 08:02:05 redsky: the people who you're talking to are actually pretty damn knowledgeable, and won't blink at complex stuff. perhaps you have a coherent idea that will do what you need, but you haven't really presented it so that others can graps it 08:02:29 What I want is to never use a function except when I need runtime behavior. If you don't accept this, then you are a slave to the Schemers' ideology and need to read up on Hoyte's sublexical scope asap. 08:02:35 /troll 08:02:41 only sorta 08:02:49 I don't belive that /troll. 08:02:50 <|3b|> redsky: so no macros? 08:02:55 flip214 [~marek@86.59.100.100] has joined #lisp 08:02:56 -!- flip214 [~marek@86.59.100.100] has quit [Changing host] 08:02:56 flip214 [~marek@unaffiliated/flip214] has joined #lisp 08:02:57 LoL is considered harmful 08:03:01 -!- MoALTz_ [~no@host-92-8-155-109.as43234.net] has quit [Ping timeout: 244 seconds] 08:03:01 |3b|: so only macros 08:03:04 <|3b|> since /macros are functions/ 08:03:08 -!- toekutr [~user@50-0-51-2.dsl.static.sonic.net] has quit [Remote host closed the connection] 08:03:09 stassats: the harm has been done, apparently 08:03:11 *|3b|* can't say it any simpler than that 08:03:13 <|3b|> macros 08:03:13 <|3b|> are 08:03:14 |3b|: except for variables that need changing at runtime 08:03:15 <|3b|> functions 08:03:16 redsky: that was really stupid 08:03:24 <|3b|> redsky: macros are functions 08:03:25 what you just said 08:03:37 |3b|: that was said at the very beginning 08:03:53 but, to no avail 08:04:00 <|3b|> stassats: yeah, i'll probably give up soon too 08:04:03 redsky: i meant no offence with my "freshman macrology" comment, but please believe me when i tell you that the kind trying-to-push-macros-into-doing-magic is typical of what many people do during their first year-or-so or hacking lisp 08:04:06 Macros are compilers. 08:04:14 This is the point that he can't grasp. 08:04:32 I am starting to think that redsky is actually an idiot 08:04:32 In order to interpret code you need to get rid of them. 08:04:33 yeah well, the conversation has degenerated to the point where stepping on eggshells isn't very useful anymore. Above and beyond the real expressiveness gains that are only possible with macros, I believe you should use a function only when you need a function's behavior. 08:04:36 <|3b|> Zhivago: no, i think it really is the 'macros are functions' part 08:04:41 They arne't. 08:04:53 <|3b|> redsky: imagine you didn't have macros 08:04:55 Macros can be implemneted using functions, but they are not themselves functions. 08:05:04 some of them succeed, because what they were pushing for wasn't really magic. many of them fail because their goals were never really clarified. 08:05:30 <|3b|> redsky: now write a program to transform some list into the code you want 08:05:47 <|3b|> (some-function '(progn (this is code) (and more code))) 08:06:12 nikodemus: his goal is clear, he is implementing skynet. 08:06:16 nikodemus: it is ai 08:06:21 zolk3ri [~zolk3ri@unaffiliated/zolk3ri] has joined #lisp 08:06:21 <|3b|> you can add free variables, and have it return (progn (+ free variable (this is code))) 08:06:23 hey buddies 08:06:35 -!- ASau [~user@95-27-143-55.broadband.corbina.ru] has quit [Remote host closed the connection] 08:06:54 Zhivago: I don't want magic, I want the compiler to stop yelling it me for using a new operator in a VERY INTUITIVE WAY with non-functions because it was expecting a function. This is most easily accomplished via macro, not this bending over backwards to not use macro stuff you are pushing 08:07:18 <|3b|> redsky: you need to understand how macros work though 08:07:20 treyka [~treyka@77.109.79.57] has joined #lisp 08:07:22 <|3b|> and how they don't wortk 08:07:25 redsky: So, generate a goddamned function. 08:07:38 |3b|: do they work by returning code? yes? because I can wrap my head around that 08:07:46 redsky: The problem is that it wants a function, so bloody well give it one. 08:07:46 functions are not more intuitive than macros, they are less intuitive 08:07:52 redsky: That's all there is to it. 08:08:02 easier to debug due to lexical environment, yes... 08:08:02 ASau [~user@95-27-143-55.broadband.corbina.ru] has joined #lisp 08:08:21 <|3b|> redsky: "returning code" is what they do, not how they work 08:08:48 laters 08:08:50 -!- nikodemus [~nikodemus@87-93-21-117.bb.dnainternet.fi] has quit [Quit: Leaving] 08:08:52 krrrcks: also not, if you don't want your code to be portable, you can use ccl:encode-string-to-octets or sb-ext:string-to-octets instead of babel:string-to-octets 08:09:12 so what was this 4 hours? 08:09:21 before I realized he's an idiot 08:09:21 but, with quicklisp nowadays, you shouldn't care much about this and just use babel 08:09:43 -!- ignas [~ignas@ctv-79-132-160-221.vinita.lt] has quit [Ping timeout: 264 seconds] 08:09:43 if I knew "hoyte" wrote "let over lambda" it would have been quicker 08:09:45 He just wants think to be 'nice'. The problem is that he doesn't realize that that's incoherent. 08:09:59 tomodo: so let's make the feeling mutual, explain why functions are better for compile-time behavior than sublexically scoped macros. 08:10:05 s/think/things 08:10:10 redsky: you're an idiot 08:10:13 *stassats* is a bit sick of this macro discussion and wishes people would stop 08:10:30 tomodo: that's what I thought. closet schemer 08:10:54 stassats: I'll use the babel library, I think. 08:11:00 stassats: pretty sure it's almost done falling apart, plus I'm tired 08:11:16 -!- sty [~quassel@dsl-173-248-200-188.acanac.net] has quit [Remote host closed the connection] 08:11:17 <|3b|> redsky: for example the compiler is given a list, say (foo bar), containing 2 symbols, named "FOO" and "BAR" respectively, if it determines FOO names a macro, it calls the function associated with that macro, passing the remainder of the list (BAR in this case) as arguments, and expects that function to return a form for further compilation 08:11:28 this is why we are stuck with .net and java, you goddamn fools. Using functions because your CS 101 prof told you too, it's just sad. 08:11:57 |3b|: yes, I think I'm with you there 08:11:59 <|3b|> redsky: want to move this to #lispcafe before people get even more annoyed? 08:12:05 hm, i'm more interested why minion and specbot don't crash despite so much action going on, perhaps i should try it without slime 08:12:41 minion: wanna crash? 08:12:42 please stop playing with me... i am not a toy 08:12:44 superflit_ [~superflit@71-218-200-111.hlrn.qwest.net] has joined #lisp 08:13:02 redsky: i'm not stuck with .net or java. 08:14:10 -!- specbot [~specbot@pppoe.178-66-11-74.dynamic.avangarddsl.ru] has quit [Remote host closed the connection] 08:14:10 -!- minion [~minion@pppoe.178-66-11-74.dynamic.avangarddsl.ru] has quit [Remote host closed the connection] 08:14:29 minion [~minion@pppoe.178-66-11-74.dynamic.avangarddsl.ru] has joined #lisp 08:14:46 specbot [~specbot@pppoe.178-66-11-74.dynamic.avangarddsl.ru] has joined #lisp 08:15:12 -!- Ralith [~ralith@S010600221561996a.vc.shawcable.net] has quit [Quit: Lost terminal] 08:15:25 Yet I present a very simple, intuitive operator to pass arguments through to sub-operators, and I'm told I'm doing it wrong. I should bend over backwards to use functions instead. I'm an idiot for wanting to use macros to solve a limitation in the language. What drivel. 08:15:32 stop talking you idito 08:15:42 -!- superflit [~superflit@140.226.4.54] has quit [Ping timeout: 272 seconds] 08:15:42 -!- superflit_ is now known as superflit 08:15:47 <|3b|> redsky: seriously, join #lispcafe 08:15:52 Thanks for the offer 3b, too sleepy to meaningfully continue I think. I don't recall what your specific objection was 08:15:54 redsky: Consider a very simple, intuitive operator called DWIM. 08:16:00 you don't know enough of the language to know its limitation and how to solve them 08:16:01 redsky: It does exactly what I mean. 08:16:14 redsky: That doesn't make it coherent. 08:16:22 (DWIM) ;; implements an awesome AI 08:16:24 redsky: Being simple and intuitive is irrelevant. 08:16:30 Ralith [~ralith@S010600221561996a.vc.shawcable.net] has joined #lisp 08:16:38 redsky: Your problem is that you need to generate functions. 08:16:54 redsky: Solve it by generating functions. 08:17:17 dwim? 08:17:19 functions introduce a new lexical environment, which I do not always need or desire 08:17:25 do-what-i-mean 08:17:29 <|3b|> redsky: i think you misinterpret some of the conversation 08:17:40 redsky: Irrelevant. 08:17:47 redsky: That is not part of the problem. 08:17:49 ow 08:17:56 minion: what does DWIM mean? 08:17:57 Deceivingly Warrioress Interventionism Moronry 08:18:05 fitting enough 08:18:19 |3b|: can you refresh my memory, what was your specific input on my goals? Why did I need to understand macroexpansion better? 08:18:43 <|3b|> redsky: because i think you are either asking for something trivial, or something you don't need 08:19:35 <|3b|> redsky: and to determine which, either i need to understand your project, or you need to understand the tools better, and the latter seems like more of a new win :) 08:19:56 hi 08:20:00 oh. Well, thanks for the more reasonable tone but I've only been having that conversation for the past 3 hours. It doesn't matter if I need it or not, it results in more readable code. That happens to be faster as well. 08:20:16 <|3b|> no, i don't mean you don't need the macro 08:20:20 redsky: But it doesn't. 08:20:24 if I was going to focus only on what I need, I certainly would not have chosen lisp 08:20:26 redsky: Because you can't make it work. 08:20:31 <|3b|> i mean you don't need whatever complicated scheme you are imagining to /implement/ it 08:20:39 redsky: So what you mean is that you _wished it resulted in ..._ 08:20:47 <|3b|> (the macro may or may not actually be useful as well, but that's a different issue) 08:20:47 redsky: You need to be honest with yourself. 08:21:15 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 260 seconds] 08:21:33 <|3b|> redsky: the point is that once you understand things, you can use macros to automate it 08:23:01 skulls [~user@gateway/tor-sasl/skulls] has joined #lisp 08:23:18 This is to an unavoidable extent bottom up. I am finding that the more I invent utilities, the better I understand how I want different pieces to work because I get hands-on experience using them. I know the behavior I want, and despite Zhivago's ramblings I know it's doable with macros. I don't want to know some other hackish way using functions and extra indirection. 08:23:40 redsky: due to being stupid you are wrong 08:23:41 This is akin to a conversation I had with someone on Ruby once 08:23:50 <|3b|> you realize macros call functions to operate, right? 08:24:05 <|3b|> you can't use macros in CL without using functions 08:24:13 No. He's just too stupid to realize that he's trying to solve the wrong problem in the wrong way. 08:24:16 does hoyte have his own channel where he takes care of the minds that he's managed to twist with his book? 08:24:23 "Um, what's the ruby equivalent of for?" "Why do you need a for?" It's just asinine. expressivity is everything, period, otherwise machine code ftw. 08:24:47 attila_lendvai [~attila_le@92.47.249.58] has joined #lisp 08:24:47 -!- attila_lendvai [~attila_le@92.47.249.58] has quit [Changing host] 08:24:47 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 08:24:48 So, write a compile to generate the code that generates the functions that you need. 08:25:01 a fruit salad is not expressive 08:25:06 Problem solved -- because the problem is "functions that you need". 08:25:21 if you had only macros, you'd not have any code executing, except at compile-time, and you can't have endless compilation, do you agree? 08:25:33 it's not really problem solved becaues he's (pretending) to be programming something impossible 08:25:42 If you had only macros, you would never have any code to execute. 08:25:42 <|3b|> redsky: why do you assume we think we dislike expressivity, rather than that we don't see why CL isn't expressive enough to trivially implement what you want, and so can't see where you get stuck? 08:25:44 H4ns: Maybe he leaves that task for ... the audience? 08:25:49 except I've told you all of my filters will be defined at runtime so functions are a waste of computing power even before we consider the extra work / lack of clarity they entail. 08:25:55 Besides, it's easy to have compile-time functions: (eval-when (:compile-toplevel) (do-something)) 08:26:04 krrrcks: "thank you, doug" 08:26:17 redsky: Wrong. See cl-ppcre. 08:26:35 <|3b|> redsky: how is calling a function at compile time a waste? 08:26:40 redsky: macro are expanded at macroexpansion time at compilation time. So if your filters are defined at runtime, macros cannot be used with them. 08:26:45 <|3b|> (Assuming it doe something useful for compilation) 08:27:17 pjb: I meant defined at compiletime 08:27:59 pjb: you have a website or something? I have an on-again off-again financier, 30 EUR / hour ain't bad. 08:28:00 <|3b|> redsky: so why is it a waste to call them at compile time if they are functions, but not if they are macros (which are actually implemented as functions) 08:28:17 redsky: one thing you don't seem to understand is that macros are just hooks into the compiler, they're just functions like any other. You can make it even more apparent if you write separately a defun and a defmacro; defmacro is kernel wrap. 08:28:52 He hasn't managed to read the kernel paper yet. 08:29:00 <|3b|> redsky: "use a function" and "do stuff at runtime" are orthogonal 08:29:22 stassats` [~stassats@wikipedia/stassats] has joined #lisp 08:29:50 redsky: (defun si* (cond then else) (if cond then else)) (defmacro si (cond then else) (si* cond then else)) (si* 't '(print 'hi) '(print 'lo)) --> (print (quote hi)) (macroexpand '(si t (print 'hi) (print 'lo))) --> (print (quote hi)) 08:30:34 Well, actually since the function si* is used at macroexpansion time at compilation time, it needs to be in an (eval-when (:compile-toplevel) ) 08:31:19 But what that shows, is that you can just write functions, and when you need to call a function at compilation time to generate some code, wrap it in a macro. 08:32:05 it's 4:30 AM, I'm not a CS major, and I've been using lisp for a couple months. So yes, you can obfuscate the issue with nitpicks about my terminology and probably misconceptions i have about how it works under the hood. I've given examples of things that you can't do with functions. In the end that is what I care about, not the performance. 08:32:24 macros are the lowest common denominator 08:32:37 <|3b|> redsky: we aren't picking nits 08:32:43 it's easier to generalize on that, then wrap the thing with a lambda if/when I desire 08:32:59 why are you not listening to people who are awake, have been using lisp for a couple of decades, and don't have misconceptions? 08:33:04 <|3b|> redsky: there seems to be a fundamental gap in your understanding 08:33:13 I mean, think about it 08:33:23 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 08:33:24 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Excess Flood] 08:33:47 maybe, just maybe, they have knowledge and experience that you could learn from, rather than reject 08:34:07 probably because he's a vampire that, for no reason, just wants to suck peoples time up and make them explain basic concepts over and over 08:34:07 pjb: wrapping function in a macro sounds good. think I considered something like that 08:34:39 redsky: http://paste.lisp.org/+2RBG 08:35:02 was it actually a brucio line? ("I wonder if you can wrap a macro in a closure")? 08:35:22 redsky: the point is that you'd never use defmacro; just define functions, and determine if they're called at compilation time with a wrap. 08:35:50 -!- leo2007 [~leo@119.255.41.67] has quit [Ping timeout: 260 seconds] 08:35:52 <|3b|> redsky: if your goal is to do things at compile time vs runtime, focus on that rather than macro vs function 08:36:03 redsky: If lack of sleep is making you stupid, go and get some sleep and come back when you don't have that excuse. 08:36:19 <|3b|> a 'macro' is just a convenient hook into 'compile-time'... once you are there, you are just writing CL 08:36:41 redsky: to do things at compilation time you just need (eval-when (:compile-toplevel) ). 08:36:53 I will try, briefly, to explain the reason why I want macros instead of functions: being able to consider every macro call leaves me able to easily reason about their behavior, and most importantly it allows me to capture free variables however I please 08:37:00 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 260 seconds] 08:37:12 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 08:37:32 <|3b|> do you mean the expansion of the macro can have free variables? 08:37:32 I want giant blocks of encapsulated code, all parameters optionally exposed for tweaking. 08:37:36 YES YES YES! 08:37:44 a billion times yes, oh dear god almighty 08:37:57 <|3b|> so what does that have to do whether that macro calls functions or not? 08:38:07 this is what happens when you allow Zhivago to bully you into making a concrete simplification 08:38:08 redsky: then just use emacs lisp and its dynamic binding. 08:38:40 redsky: You start to make enough sense to have it pointed out to you where you are wrong? 08:38:43 (defun f (z) (+ x z)) (let ((x 1) (f 2))) --> 3 ; (let ((x 42) (f 2))) --> 44 ; in emacs lisp. 08:38:45 pjb: because the upper layer will indeed involve closures. 08:38:56 There are no closures in emacs lisp <24. 08:39:15 they could be faked 08:39:47 <|3b|> redsky: a macro that expands to code with a free variable is no different than a function that generates code with a free variable 08:40:05 CL has dynamic variables anyway, if that were the solution. Actually that is an interesting idea 08:40:32 You can achieve the same in CL by declaring all your variables special. I guess you could do that automatically with a code walker to collect all variables and insert special declarations where they're needed from a defun* macro. 08:41:15 pjb: read code, then declaim all interned symbols special? 08:41:25 lol 08:41:32 Yes, that's a way to do it. 08:41:47 c_arenz [arenz@nat/ibm/x-aytzszrptmnqvjau] has joined #lisp 08:41:58 or shadow all binding operators 08:41:59 <|3b|> redsky: so calling a function from a macro (not /not/ calling it in the expansion returned by the macro) is no different from /expanding/ into a call to another macro 08:42:39 3b: Except for evaluation semantics ... 08:42:50 |3b|: for performance, yes I grasp that 08:43:01 <|3b|> redsky: no, for expressivity 08:43:24 |3b|: it's not as expressive because you can't do as much with a function as you can a macro, period. 08:43:33 <|3b|> redsky: you aren't listening 08:43:42 <|3b|> a macro is a function 08:43:49 <|3b|> a macro can call a function 08:43:50 oh wait, you are saying the macro can parse the function's args for it? 08:43:53 A macro is not a function. 08:44:07 <|3b|> ok, a macro-function is a function, better Zhivago? 08:44:13 Yes. 08:44:25 A function may be part of the implementation of a macro. 08:44:29 <|3b|> redsky: (defmacro (a) (list ,@a)) 08:44:38 But they do fundamentally different things -- a macro is a compiler. 08:44:40 <|3b|> redsky: consider that macro 08:44:49 DGASAU [~user@91.218.144.129] has joined #lisp 08:45:16 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Ping timeout: 276 seconds] 08:45:22 <|3b|> redsky: the expansion doesn't call LIST 08:45:42 <|3b|> redsky: LIST is called /during the compilation of code containing the macro call/ 08:45:47 Beetny [~Beetny@ppp118-208-15-112.lns20.bne1.internode.on.net] has joined #lisp 08:45:57 *|3b|* now notices i forgot the name, so pretend it was named properly 08:45:59 yes, if you make the macro responsible for parsing the function's input then sure, It's not as expressive as two macros because the macro has to make sure whatever it's feeding into the function is a valid lisp form. 08:46:14 3b: you also forgot the quasiquote 08:46:19 <|3b|> jdz: no i didn't 08:46:34 3b: and yet used unquote? 08:46:37 <|3b|> though i guess i didn't need the ,@ 08:46:40 3b: Then it's illegal, because you can't have a comma outside of backquote. 08:47:17 *|3b|* wonders if i should just try again, that example was pretty broken :/ 08:47:45 Both of you just need to get the difference between compiler and interpreter into your heads. 08:47:56 A function is an interpreter. A macro is a compiler. 08:48:12 This is the fundamental rift that you cannot cross on redsky's pony. 08:48:26 Zhivago: Again, talking about transmissions when I am just trying to install a knob for the gearshift 08:48:29 -!- Kryztof [~user@81.174.155.115] has quit [Ping timeout: 245 seconds] 08:48:51 redsky: That's because you're trying to install a knob on the insurance documentation. 08:49:04 redsky: And getting frustrated because it doesn't fit. 08:49:08 It's a safety knob 08:49:10 foam rubber 08:49:11 redsky: You're conceptually confused. 08:49:21 -!- tomodo [~tomodo@gateway/tor-sasl/tomodo] has quit [Quit: leaving] 08:49:32 If you want to write a compiler, then do that. 08:49:59 If you want to interpret code that requires a function, then do that. 08:50:10 If you want to compile code to a function to be interpreted, then do that. 08:50:17 |3b|: You meant (defmacro m (a) a) 08:50:22 Just stop trying to ignore the difference between the two. 08:50:28 <_death> Zhivago, and a compiler is an interpreter 08:50:37 <|3b|> pjb: not quite, calling a function to generate the expansion was part of my point 08:50:50 death: Not of the code it compiles. 08:50:56 Like this: (defun si* (cond then else) (if cond then else)) (defmacro si (cond then else) (si* cond then else)) 08:50:59 jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has joined #lisp 08:51:12 <_death> Zhivago, yes it is.. just with different semantics 08:51:20 death: You are wrong. 08:51:24 Shall we introduce now compiler macros? 08:51:50 I want syntax shortcuts. I want to be able to express more in fewer characters. To this end I choose to view macros as functions that return code. This is a reasonable simplification for a beginner to make, I believe. 08:51:51 <_death> Zhivago, a compiler takes a program and interprets it in order to produce another program 08:51:53 <|3b|> pjb: sort of, i was hoping using a built-in function would avoid some confusion 08:52:02 redsky: Then write a compiler. 08:52:18 redsky: Choosing to view macros as functions is your error. They aren't. 08:52:21 (defmacro m (a b) (list 'progn a b)) 08:52:41 -!- _death is now known as adeht 08:54:24 <|3b|> Zhivago: so "view macros as implemented by functions that return code"? 08:55:39 No. 08:55:42 -!- nialo- [~nialo@ool-182d5684.dyn.optonline.net] has quit [Read error: Connection reset by peer] 08:55:51 Just view macros as simple compilers. 08:55:57 How they work doesn't matter. 08:55:59 nialo- [~nialo@ool-182d5684.dyn.optonline.net] has joined #lisp 08:56:52 It is the work they do that is important here. 08:56:59 Jeanne-Kamikaze [~Jeanne-Ka@125.Red-88-11-26.dynamicIP.rima-tde.net] has joined #lisp 08:57:15 And it's what redsky isn't grasping -- talking about macro-function just confuses the issue. 08:57:37 And it won't help with IF and COND, for example. 08:58:11 lindes [~user@p4FF1C32E.dip0.t-ipconnect.de] has joined #lisp 08:58:57 *|3b|* disagrees with Zhivago as to where the problem is, but both of us trying to explain at different levels would just make things worse, so i'll give up for now 09:00:14 -!- sn0rri [~sn0rri@62.169.219.149] has quit [Quit: Leaving...] 09:00:45 3b: redsky has an intuition that he can pretend that macros and functions and special operators are all the same. 09:00:53 3b: That's the fundamental problem. 09:01:08 No, I have an intuition that I can design macros that will treat them the same for purposes of their expansion 09:01:21 Like I said. 09:01:24 Because invocation is the same 09:01:29 It isn't. 09:01:42 yes it is, (op-name arg1 arg2) 09:01:44 <|3b|> Zhivago: i see it as a broken mental model of CL compilation, leading to try to do things the wrong way, even if the actual end goal is possible 09:01:58 redsky: do arg1 and arg2 get evaluated? 09:02:09 the syntax is the same, therefore macros can return them without caring what they are. 09:02:14 redsky, if you know you're right, what's the point of discussion? just implement your idea and have fun 09:02:18 redsky: do arg1 and arg2 get evaluated? 09:02:38 He can't implement it, which is why he's asking for help. :) 09:02:43 Zhivago, shhh :) 09:02:54 Zhivago: I said invocation, not what happens after you invoke. With my oversimplified argpass example, you can see how something can intuitively be used with all three. 09:03:01 redsky: do arg1 and arg2 get evaluated? 09:03:48 Zhivago: if it's a function then yes. If it's macro or special operator then no. IT DOESN'T HAPPEN WHEN THE MACRO IS RUN, only when the macroexpansion is. 09:03:52 <|3b|> redsky: you can assemble code out of any symbols you want, it doesn't matter if they name functions, macros of special operators 09:03:59 redsky: Then the invocation isn't the same. 09:04:04 redsky: Please try again. 09:04:33 This is still going on? 09:04:35 redsky: If the invocation is the same, then the answer must be the same for both cases. 09:04:35 redsky: to be more precise -- it's under macro/special operator control whether to evaluate them or not 09:04:50 redsky: So, so do arg1 and arg2 get evaluated or not? 09:05:32 By (op-name arg1 arg2), that is. 09:05:46 again, using argpass example: (argpass if dothis dothat) vs. (argpass + dothis dothat) 09:05:54 sn0rri [~sn0rri@62.169.219.149] has joined #lisp 09:06:08 <|3b|> redsky: could you paste the desired expansions of those 2 calls to lisppaste? 09:06:08 -!- sn0rri [~sn0rri@62.169.219.149] has quit [Read error: Connection reset by peer] 09:06:10 I don't care what word you prefer, Zhi, but I am going to call those invocations the same 09:06:12 kpachnis [~sn0rri@62.169.219.149] has joined #lisp 09:06:44 redsky: Provide the expansion 3b has asked for. 09:07:37 <|3b|> redsky: we still can't tell if you want something trivial, or complicated, or impossible, or meaningless... if you give us a concrete example (with original and expanded form) we can probably at least implement that case 09:07:50 <|3b|> then you can find another case where that implementation doesn't work 09:08:04 <|3b|> and iterate from there until somebody figures out what is going on 09:09:18 first case: (lambda (&rest args) (if (dothis args) (dothat args))) yes I need to splice it in there, too tired to remember how atm. 09:09:40 -!- teggi [~teggi@113.172.40.224] has quit [Ping timeout: 244 seconds] 09:09:53 bas_ [~bas@89.184.179.185] has joined #lisp 09:09:53 -!- bas_ is now known as Skola 09:10:11 But lambda will evaluate it arguments ... 09:10:13 second case is the same but with a + instead of an if. 09:10:15 That's not going to work. 09:10:35 untrue. the lambda doesn't evaluate dothat 09:10:41 unless dothis evaluates as true 09:10:55 teggi [~teggi@113.172.40.224] has joined #lisp 09:10:56 It will evaluate args ... 09:10:59 What's in args? 09:11:02 yes, those args 09:11:11 anything 09:11:23 again, the original purpose was filtering but I can think of some other uses 09:11:46 So you want to generate functions ... which is what I said that you need to do. 09:11:47 you have different observations of the same thing, different logic branches you are unifying, rulesets you are testing, whatever 09:11:51 What's the problem? 09:12:16 I think you need to learn about pass-by-value 09:12:22 <|3b|> so are dothis and dothat functions? 09:12:37 or special ops. Or macros though that may be tricky 09:13:09 <|3b|> you can't pass values at runtime to a macro 09:13:23 I think redsky had better provide a proper expansion for that. 09:13:26 -!- gravicappa [~gravicapp@ppp91-77-185-69.pppoe.mtu-net.ru] has quit [Ping timeout: 260 seconds] 09:13:34 <|3b|> (lamba (&rest args) (if (some-macro args) ...)) can't work 09:13:36 yes but I might get away with using that closure at compiletime only 09:13:40 -!- qonco [~qonco@113.232.71.172] has quit [Ping timeout: 252 seconds] 09:13:45 That doesn't seem to perserve the semantics of if at all. 09:13:58 <|3b|> some-macro will only see the name "ARGS", not the values passed to that closure 09:14:14 " yes I need to splice it in there, too tired to remember how atm." 09:14:14 <|3b|> (the symbol ARGS, not the string) 09:14:20 <|3b|> you /can't/ 09:14:25 So, go to sleep and try again when you're less stupid. 09:14:29 it's a bloody list isn't it? 09:14:32 <|3b|> those values aren't there to be spliced 09:14:56 <|3b|> no, it is just a symbol when the macro is expanded 09:15:04 "The redsky situation" is why I feel people learn lisp "the righter way" by going PCL => knowing most of non-advanced stuff => PAIP 09:15:05 This is your mission; provide a correct expansion of that case. 09:15:18 Come back when you've given up or believe that you have succeeded. 09:15:21 fine, then it doesn't work, which is why I wanted a pure macro solution with free variables and a let capture. 09:15:32 -!- ChanServ has set mode +o Zhivago 09:15:42 if they go "PAIP" first, they end up here, doing "yo dawgs, I like to put a continuation into my closures, so I can macroexpand while I continuate, would not it be great" 09:15:44 -!- redsky [~zhivago@li49-59.members.linode.com] has been kicked from #lisp by Zhivago (Bye!) 09:16:39 -!- Zhivago has set mode -o Zhivago 09:18:04 redsky [~vigil@adsl-074-229-197-048.sip.mco.bellsouth.net] has joined #lisp 09:18:15 That was quick -- what's the expansion? 09:18:28 i wish i could get sleep so fast... 09:18:30 -!- ChanServ has set mode +o Zhivago 09:18:40 2 seconds for a goodbye? 09:18:42 -!- Zhivago has set mode +q redsky!*@* 09:18:42 <|3b|> redsky: i'll be in #lispcafe if you want to try there 09:18:53 /msg me when you know. 09:19:07 qonco [~qonco@113.232.71.172] has joined #lisp 09:19:09 -!- Zhivago has set mode -o Zhivago 09:20:08 sometimes I see (defpackage :happy-package), and sometimes I see (defpackage #:happy-package). why the difference? which is my fate? 09:20:24 robot-beethoven, it's mostly a stylistic difference 09:20:45 robot-beethoven: the #:happy-package form does not intern the package name into the keyword package 09:20:45 <|3b|> :happy-package interns a symbol in the KEYWORD pacage, #:happy-package doen't intern a symbol anywhere 09:20:46 2nd person is more pedantic then 1st, but you can probably expect his code to be slightly more polished 09:20:48 robot-beethoven, defpackage expects a string designator for package name.. and both serve as such 09:20:58 robot-beethoven, personally I use #:foo 09:21:15 You could also use "HAPPY-PACKAGE" but that has case issues. 09:21:24 robot-beethoven: which would only make sense if the package was never referred to by a keyword, i.e. if then only (:in-package #:happy-package) was used. 09:21:57 <|3b|> either is reasonable, and the differences are probably to subtle to care about 09:22:04 robot-beethoven: but as most people use keywords as package designators, using a keyword as package name in defpackage is just fine. 09:22:46 Zhivago, you can also use (defpackage #\Z) :) 09:23:09 adhet: Very exciting; I am tingly. 09:23:35 -!- kleppari_ [~spa@bitbucket.is] has quit [Quit: Lost terminal] 09:24:31 *|3b|* votes to reserve those for local nicknames (which reminds me, i never did respond to H4ns about that...) 09:24:54 |3b|: i've not responded to sykopomp either, due to the lack of time. 09:25:13 |3b|: and i kind of like USING, as it seems to be a neat solution to the problem. 09:25:56 <|3b|> is that something like a lexical scoped use-package? 09:26:19 |3b|: right - nick levine blogged that yesterday or so. 09:26:36 *|3b|* thinks that wouldn't help for me, i really do want it for whole packages 09:26:58 <|3b|> for example using webgl as GL: while having cl-opengl being used as GL: for other code in the same image 09:27:18 What you want it for are systems. 09:27:29 <|3b|> hmm, maybe 09:27:33 |3b|: i'd also like that, but it is a little complicated to make it happen. last week, someone said he had time to actually work on a multiple-implementation solution. 09:27:33 To say "when loading these files, package "X" is actually package "Y") 09:27:41 <|3b|> i could see using multiple JSON libs in 1 system 09:27:50 do you know about Kylheku's PKG reader macro? 09:27:59 *H4ns* does not 09:28:00 I found that one quite interesting 09:28:01 Then it would solve the distributed author collision problem properly. 09:28:33 <|3b|> system-local-nicknames would be better than nothing though 09:28:33 H4ns, http://paste.lisp.org/display/72068 09:28:59 H4ns, though I think he mentioned some newer version on c.l.l lately 09:29:21 Phoodus [~foo@wsip-68-107-217-139.ph.ph.cox.net] has joined #lisp 09:30:34 <|3b|> though i guess i'd probably use different names (nicknames or otherwise) if i was using different libs in the same code 09:32:43 zxq9 [~zxq9@FL1-119-244-165-111.okn.mesh.ad.jp] has joined #lisp 09:33:36 -!- kushal [kdas@fedora/kushal] has quit [Ping timeout: 272 seconds] 09:36:35 gravicappa [~gravicapp@ppp91-77-180-143.pppoe.mtu-net.ru] has joined #lisp 09:36:50 -!- DDR [~chatzilla@d66-183-117-69.bchsia.telus.net] has quit [Quit: ChatZilla 0.9.88.1 [Firefox 11.0/20120310011224]] 09:43:56 CrazyThinker [~CrazyThin@122.166.149.8] has joined #lisp 09:43:57 -!- CrazyThinker [~CrazyThin@122.166.149.8] has quit [Changing host] 09:43:57 CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has joined #lisp 09:45:09 ferada [~ferada@dslb-094-219-146-252.pools.arcor-ip.net] has joined #lisp 09:45:43 -!- qonco [~qonco@113.232.71.172] has quit [Ping timeout: 276 seconds] 09:52:06 attila_lendvai [~attila_le@87.247.57.24] has joined #lisp 09:52:06 -!- attila_lendvai [~attila_le@87.247.57.24] has quit [Changing host] 09:52:06 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 09:53:11 -!- nialo- [~nialo@ool-182d5684.dyn.optonline.net] has quit [Read error: Connection reset by peer] 09:53:28 nialo- [~nialo@ool-182d5684.dyn.optonline.net] has joined #lisp 09:54:39 [SLB] [~slabua@host22-160-dynamic.3-87-r.retail.telecomitalia.it] has joined #lisp 09:54:40 -!- [SLB] [~slabua@host22-160-dynamic.3-87-r.retail.telecomitalia.it] has quit [Changing host] 09:54:40 [SLB] [~slabua@unaffiliated/slabua] has joined #lisp 10:00:17 kushal [kdas@nat/redhat/x-iuqsblgmvuzwpgcc] has joined #lisp 10:00:17 -!- kushal [kdas@nat/redhat/x-iuqsblgmvuzwpgcc] has quit [Changing host] 10:00:17 kushal [kdas@fedora/kushal] has joined #lisp 10:01:20 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 10:01:24 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Excess Flood] 10:04:00 -!- killerboy [~mateusz@195.225.68.249] has quit [Ping timeout: 252 seconds] 10:10:55 xiaohanyu [~lox@114.112.45.197] has joined #lisp 10:17:13 syrinx_ [~syrinx_@unaffiliated/syrinx-/x-4255893] has joined #lisp 10:17:56 -!- syrinx_ [~syrinx_@unaffiliated/syrinx-/x-4255893] has left #lisp 10:18:02 Skola_ [~bas@ip51cd221d.speed.planet.nl] has joined #lisp 10:18:05 -!- Fullma [~fullma@ram94-2-82-66-69-246.fbx.proxad.net] has quit [Ping timeout: 246 seconds] 10:20:29 -!- Skola [~bas@89.184.179.185] has quit [Ping timeout: 260 seconds] 10:20:55 -!- setmeaway [~setmeaway@118.45.149.126] has quit [Read error: Connection reset by peer] 10:21:23 saschakb [~saschakb@p4FEA1110.dip0.t-ipconnect.de] has joined #lisp 10:23:29 setmeaway [~setmeaway@118.45.149.126] has joined #lisp 10:24:13 -!- tic [~tic@c83-249-198-162.bredband.comhem.se] has quit [Ping timeout: 246 seconds] 10:24:17 tic [~tic@c83-249-198-162.bredband.comhem.se] has joined #lisp 10:29:15 -!- Intensity [4c1eFHrfL0@unaffiliated/intensity] has quit [Quit: Quit] 10:30:09 -!- jollyG [~JollyG@cpe-075-176-001-037.carolina.res.rr.com] has quit [Remote host closed the connection] 10:46:13 -!- gko [~gko@220.228.255.202] has quit [Ping timeout: 248 seconds] 10:48:42 -!- cmm [~cmm@109.65.209.35] has quit [Ping timeout: 265 seconds] 10:48:46 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Ping timeout: 276 seconds] 10:50:07 cmm [~cmm@109.65.209.35] has joined #lisp 10:50:24 -!- kuzary [~who@gateway/tor-sasl/kuzary] has quit [Quit: return 0;] 10:52:29 -!- xyxu [~xyxu@58.41.1.67] has quit [Ping timeout: 244 seconds] 10:53:48 -!- ferada [~ferada@dslb-094-219-146-252.pools.arcor-ip.net] has quit [Ping timeout: 245 seconds] 10:56:10 -!- teggi [~teggi@113.172.40.224] has quit [Remote host closed the connection] 10:57:17 -!- CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has quit [Ping timeout: 252 seconds] 10:57:28 vina [~fgn@110.137.44.239] has joined #lisp 11:00:08 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 11:00:09 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Excess Flood] 11:02:23 kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has joined #lisp 11:03:34 -!- redsky [~vigil@adsl-074-229-197-048.sip.mco.bellsouth.net] has quit [Quit: Leaving] 11:04:09 mmajchrzak [~mmajchrza@78.9.146.7] has joined #lisp 11:04:40 ferada [~ferada@dslb-094-219-146-252.pools.arcor-ip.net] has joined #lisp 11:09:15 jollyG [~JollyG@KennPAT.uncc.edu] has joined #lisp 11:10:14 chavezgu [~chavezgu@CableLink38-217.telefonia.InterCable.net] has joined #lisp 11:12:52 -!- kushal [kdas@fedora/kushal] has quit [Ping timeout: 246 seconds] 11:15:29 CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has joined #lisp 11:15:45 BigHugeDog [~QQ@218.58.12.164] has joined #lisp 11:19:10 -!- BlankVerse [~pankajm@202.3.77.219] has quit [Ping timeout: 260 seconds] 11:19:42 mhm 11:26:03 asvil [~asvil@178.124.160.180] has joined #lisp 11:26:29 kushal [kdas@fedora/kushal] has joined #lisp 11:27:59 -!- jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has quit [Ping timeout: 250 seconds] 11:28:44 -!- impulse32 [~impulse@bas3-toronto48-1176314164.dsl.bell.ca] has quit [Ping timeout: 260 seconds] 11:29:57 -!- saschakb [~saschakb@p4FEA1110.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 11:30:10 lebro [~lebro@ool-18bc4a28.dyn.optonline.net] has joined #lisp 11:30:39 impulse32 [~impulse@bas3-toronto48-1176314164.dsl.bell.ca] has joined #lisp 11:33:59 -!- tritchey [~tritchey@c-68-51-88-12.hsd1.in.comcast.net] has quit [Quit: tritchey] 11:34:12 tritchey [~tritchey@c-68-51-88-12.hsd1.in.comcast.net] has joined #lisp 11:34:40 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 11:35:32 kpal [~kpal@janus-nat-128-240-225-120.ncl.ac.uk] has joined #lisp 11:38:48 -!- kushal [kdas@fedora/kushal] has quit [Ping timeout: 245 seconds] 11:40:20 -!- Nisstyre [~yours@c-208-90-102-250.netflash.net] has quit [Ping timeout: 246 seconds] 11:40:55 -!- Ragnaroek [~chatzilla@boccacio.fh-trier.de] has quit [Remote host closed the connection] 11:40:57 Ragnaroek_ [~chatzilla@boccacio.fh-trier.de] has joined #lisp 11:41:06 -!- Ragnaroek_ is now known as Ragnaroek 11:45:21 AndroUser [~androirc@116.197.5.164] has joined #lisp 11:45:46 ahinki_ [~chatzilla@212.99.10.150] has joined #lisp 11:47:39 -!- ahinki [~chatzilla@212.99.10.150] has quit [Ping timeout: 245 seconds] 11:48:06 -!- ahinki_ [~chatzilla@212.99.10.150] has quit [Client Quit] 11:48:23 -!- kpachnis [~sn0rri@62.169.219.149] has quit [Quit: Leaving...] 11:48:25 ahinki [~chatzilla@212.99.10.150] has joined #lisp 11:52:14 -!- nialo- [~nialo@ool-182d5684.dyn.optonline.net] has quit [Ping timeout: 245 seconds] 11:55:43 kushal [kdas@fedora/kushal] has joined #lisp 11:57:47 -!- AndroUser [~androirc@116.197.5.164] has quit [Ping timeout: 252 seconds] 11:57:56 jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has joined #lisp 11:58:00 -!- Zephyrus [~emanuele@unaffiliated/zephyrus] has quit [Ping timeout: 272 seconds] 12:00:42 djuber [~djuber@c-76-16-60-176.hsd1.il.comcast.net] has joined #lisp 12:01:58 sn0rri [~sn0rri@62.169.219.149] has joined #lisp 12:02:51 -!- Jeanne-Kamikaze [~Jeanne-Ka@125.Red-88-11-26.dynamicIP.rima-tde.net] has quit [Quit: Did you hear that ?] 12:04:32 Jeanne-Kamikaze [~Jeanne-Ka@125.Red-88-11-26.dynamicIP.rima-tde.net] has joined #lisp 12:04:51 asynchrony [~user@adsl-98-65-176-58.dab.bellsouth.net] has joined #lisp 12:07:11 -!- sn0rri [~sn0rri@62.169.219.149] has quit [Quit: Leaving...] 12:09:20 -!- cmm [~cmm@109.65.209.35] has quit [Ping timeout: 260 seconds] 12:10:48 cmm [~cmm@bzq-79-179-227-241.red.bezeqint.net] has joined #lisp 12:11:50 -!- asynchrony [~user@adsl-98-65-176-58.dab.bellsouth.net] has quit [Remote host closed the connection] 12:11:56 -!- Beetny [~Beetny@ppp118-208-15-112.lns20.bne1.internode.on.net] has quit [Ping timeout: 244 seconds] 12:14:30 -!- kilon [~kvirc@178.59.17.196] has quit [Quit: KVIrc 4.0.4 Insomnia http://www.kvirc.net/] 12:16:23 Zephyrus [~emanuele@unaffiliated/zephyrus] has joined #lisp 12:17:38 bzzbzz [~franco@modemcable151.155-57-74.mc.videotron.ca] has joined #lisp 12:21:00 -!- kushal [kdas@fedora/kushal] has quit [Ping timeout: 260 seconds] 12:23:03 araujo [~araujo@190.38.61.1] has joined #lisp 12:23:03 -!- araujo [~araujo@190.38.61.1] has quit [Changing host] 12:23:03 araujo [~araujo@gentoo/developer/araujo] has joined #lisp 12:26:32 Darn, I thought I found some subtle and interesting implication of the spec but it turns out it's quite explicit and unsubtle. 12:26:58 what is it? 12:27:03 If a symbol is inherited in a package and thene exported from a package, what is the second value of (find-symbol the-symbol's-name package)? 12:27:12 "then exported", rather 12:27:44 without looking, i would say the home package, but then i'll go to look 12:28:02 oh 12:28:08 the second value of find-symbol is one of nil, :inherited, :internal, or :external 12:28:09 i forgot what value does it return altogheter 12:28:45 I guess it is slightly subtle if you didn't know/remember that calling EXPORT will first import symbols into the exporting package. 12:28:54 leo2007 [~leo@222.130.140.86] has joined #lisp 12:29:01 Neronus: I got all your blog posts again 12:29:07 -!- Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has quit [Read error: No route to host] 12:31:41 Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has joined #lisp 12:31:49 -!- zolk3ri [~zolk3ri@unaffiliated/zolk3ri] has quit [Ping timeout: 245 seconds] 12:33:32 *stassats* discovers FIND-ALL-SYMBOLS, don't remember ever considering/using it 12:34:38 wow, same here 12:35:14 (find-all-symbols "FOO") :) 12:35:24 (symbol-name (caar (sort (loop for symbol being the symbols collect (find-all-symbols symbol)) #'> :key #'length))) => "X" 12:35:30 no wonder! 12:35:46 (find-all-symbols "FROB") has some good stuff too 12:35:56 a frob for all seasons 12:35:58 hahaha 12:36:31 15 most used: ("X" "C" "RESULT" "VAR" "FOR" "CODE" "OBJECT" "ARG" "OP" "COLLECT" "PATH" "O" "OUTPUT" "BEING" "SLOT") 12:36:37 ainm [~ainm@214.Red-83-33-86.dynamicIP.rima-tde.net] has joined #lisp 12:37:04 varfor det? 12:39:28 -!- ferada [~ferada@dslb-094-219-146-252.pools.arcor-ip.net] has quit [Ping timeout: 250 seconds] 12:40:41 something's not right with this result 12:40:45 ("NAME" "BODY" "I" "VALUE" "FILE" "INDEX" "KEY" "X" "S" "C" "ARGS" "BUFFER" "F" "RESULT" "START") for rather quaint CCL env 12:42:13 loop doesn't iterate over all packages 12:46:48 the all package version is rather slow 12:47:16 results in ("NAME" "VALUE" "X" "BODY" "C" "ARGS" "I" "RESULT" "S" "N") 12:47:20 (mapcar (lambda (x) (symbol-name (car x))) (subseq (sort (mapcar #'find-all-symbols (delete-duplicates (apropos-list "") :test #'string=)) #'> :key #'length) 0 10)) 12:48:21 ("NAME" "BODY" "I" "VALUE" "INDEX" "FILE" "FUN" "LISP" "KEY" "S" "X" "C" "ARGS" "BUFFER" "F") for all packages 12:48:46 now, what would we do with this information? 12:49:22 think about new names to use so it won't get boring 12:49:30 paradoja [~paradoja@acceso-cmp174-159.lpa.idec.net] has joined #lisp 12:50:32 XXNAMEXX 12:50:55 |xXxNaMeXxX| 12:51:00 kushal [~kdas@fedora/kushal] has joined #lisp 12:51:24 hehe Xach I was a bit more sophisticated and started checking out the Thesaurus 12:52:50 well, we can ask minion 12:52:54 minion: what does I mean? 12:52:55 Impuritan 12:53:20 stassats: so did you see why my original question was not answered by some subtle and thorough understanding of the package system? 12:53:34 But in fact by a really explicit sentence in the documentation of FIND-SYMBOL? 12:53:49 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 12:54:04 Xach: in the example section? but examples are not normative! 12:54:28 EXPORT spelled it out more clearly 12:54:45 stassats: i meant by the "not present in the package" language 12:54:50 since export makes something present 12:55:13 yes, but i didn't know it did so 12:55:40 I didn't know about the "not present in the package" requirement and I thought it was just implied because otherwise you might never know that something is exported. 12:55:48 ferada [~ferada@dslb-094-219-146-252.pools.arcor-ip.net] has joined #lisp 12:56:12 snearch [~snearch@f053001021.adsl.alicedsl.de] has joined #lisp 12:56:18 *Xach* shaves so many yaks instead of finishing his non-terrible package guide 12:56:39 will there be a package-quiz finally? 12:57:30 someday, perhaps 12:58:43 "CAN YOU IMPLEMENT A PACKAGE SYSTEM WITHOUT LOOKING IN THE SPECK? FIND OUT NOW!" 12:59:37 *A* package system yes. *A Conforming* package system, it's harder. But thanks to Xach's zpack, we're learning ;-) 12:59:48 i remember there was a quiz "how many of CL symbols do you know?" 12:59:51 bjonnh [~bjonnh@147.210.71.83] has joined #lisp 13:00:02 972, why? 13:00:13 what did you do with other 6? 13:00:46 Forgot them :-) 13:00:52 978 13:01:13 unfortunately the passing grade is 99.9% 13:01:16 you have failed 13:01:30 hahaha 13:02:07 Fullma [~fullma@ram94-2-82-66-69-246.fbx.proxad.net] has joined #lisp 13:02:16 i know that i use only about 30% of CL symbols 13:03:09 zpack + my complements -> 94 out of 499 total tests failed 13:05:08 -!- lindes [~user@p4FF1C32E.dip0.t-ipconnect.de] has quit [Ping timeout: 272 seconds] 13:05:44 Xach: do you load all quicklisp systems into the same image usually? 13:06:33 -!- MoALTz__ [~no@host-92-2-138-171.as43234.net] has quit [Quit: brb] 13:06:44 stassats: no 13:06:51 stassats: i start a fresh instance for each system 13:06:55 MoALTz [~no@host-92-2-138-171.as43234.net] has joined #lisp 13:07:16 is there a command to download all available systems? 13:07:24 stassats, does that include symbols used mostly at the repl, such as **, TIME, TRACE, DESCRIBE, ... 13:07:28 ql-dist::(map nil 'ensure-installed (provided-systems t)) 13:07:42 -!- StaffGiraffe is now known as tdubellz 13:08:00 adeht: i calculate only defsystemd files 13:08:04 adeht: https://gist.github.com/741780 13:08:36 stassats, I remember the reddit post :) 13:08:59 sn0rri [~sn0rri@62.169.219.149] has joined #lisp 13:09:09 -!- vina [~fgn@110.137.44.239] has quit [] 13:09:17 i now want to calculate the least used symbols in CL in QL 13:09:59 stassats: least but > 0? 13:10:01 -!- Fullma [~fullma@ram94-2-82-66-69-246.fbx.proxad.net] has quit [Ping timeout: 252 seconds] 13:10:09 for fun first come up with a guess 13:10:14 i can imagine that there are several that are used 0 times 13:10:21 e.g., /// - 0 uses 13:10:21 Xach: including 0, excluding 13:10:29 any variations 13:10:45 stassats: i have a script that runs a file for each system in ql 13:10:52 let me find it, maybe save you some time... 13:11:20 but i think i need to rewrite the above thing to not load each system and just handle package errors 13:11:30 Hmm, I guess I don't. 13:12:09 What I have relies on some other internal stuff, so it's probably easier to just make something yourself. 13:12:31 *|3b|* wonders if ql contains enough implementations of CL or parts thereof to avoid any symbols showing up 0 times... not sure if "implementing" counts as "using" though 13:12:40 nowhere_man [~pierre@2001:660:2402:14:76de:2bff:fe41:2f1] has joined #lisp 13:12:50 does it have ansi-tests? 13:12:53 ql-dist::(map 'name (provided-systems t)) will give you a list of all available ASDF system names 13:13:07 oops 13:13:10 mapcar, not map 13:13:32 or things like clim-lisp which reexport every CL symbol 13:13:39 grr 13:14:07 maybe pjb has a repl in his libs, so stuff like /// isn't absent 13:14:41 still, it won't boost usage much, so, it'll be safe to save that low numbers aren't used actually 13:14:45 (but that wouldn't be cl:/// ...) 13:15:13 *|3b|* would probably use cl:/// if implementing a repl 13:16:13 -!- leo2007 [~leo@222.130.140.86] has quit [Remote host closed the connection] 13:16:21 -!- jollyG [~JollyG@KennPAT.uncc.edu] has quit [Quit: Leaving] 13:16:22 guess you could 13:17:22 alright, /me waits for all systems to be fetched 13:17:31 -!- MoALTz [~no@host-92-2-138-171.as43234.net] has quit [Ping timeout: 264 seconds] 13:18:00 *Xach* hears pennies siphon from his S3 account 13:18:16 that's for science! 13:18:45 but i figured that i have to load all systems, otherwise i won't be able to figure out the package of a symbol 13:18:47 science doesn't clothe my children in rayon or put synthetic food on my table 13:19:53 adeht: it's cl:/// Why whould it be something different? 13:20:05 if you put all systems into a single tarball, you could save a couple of dimes! 13:20:52 I tend to download everything, or update everything. I grew up at a time Internet wasn't connected 100% of the time 13:21:00 kilon [~kilon@athedsl-321356.home.otenet.gr] has joined #lisp 13:21:24 eek, my AWS bill has shot up to $1.78 (from $1.33) 13:21:35 sacho [~sacho@95-42-98-81.btc-net.bg] has joined #lisp 13:21:45 xyxu [~xyxu@222.68.158.80] has joined #lisp 13:21:49 pjb, I didn't think it through, that's why :) 13:22:13 about a 30% increase in europe & US HTTP activity for the month 13:22:18 schoppenhauer [~christoph@unaffiliated/schoppenhauer] has joined #lisp 13:22:43 Xach: why not in Asia? There are Chinese and Japanese lispers, and should be Vietnamese now. 13:22:59 i know of a nice trick how to update * ** *** variables! (shiftf *** ** * new-value) 13:23:29 pjb: asian activity is about the same as february 13:23:34 yeah shiftf/rotatef rock 13:23:40 -!- kushal [~kdas@fedora/kushal] has quit [Ping timeout: 250 seconds] 13:24:01 pjb: i don't know why US/europe is up...maybe my recent interview and its position on hacker news or something 13:24:11 Xach: what's the ratio of contients? 13:24:21 continents. 13:24:36 i've came with exactly two uses for shiftf so far, for repl variables and for Fibonacci numbers 13:24:59 stassats: to implement a small circular buffer. 13:25:00 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 13:25:15 USA: 28K requests, EU: 32K requests, Tokyo region: 9K requests, Singapore region: 5K requests, South America: 700 requests 13:25:37 pjb: i know it can be used for different things, but those are the only ones i've actually employed 13:25:39 Nothing from China or India? 13:25:53 pjb: Amazon does not differentiate india and china in any way 13:25:59 I don't know what region collects their traffic 13:26:02 -!- killown [~geek@unaffiliated/killown] has quit [Quit: Ex-Chat] 13:26:16 what does it mean by Tokyo region? 13:26:36 killerboy [~mateusz@195.225.68.249] has joined #lisp 13:26:47 Xach: are they different users or total requests? 13:26:49 does the rest of japan not count or something? 13:27:00 geek [~geek@unaffiliated/geek] has joined #lisp 13:27:03 pjb: total HTTP requests 13:27:06 stassats: it may even cover China and Korea. 13:27:16 stassats: I'm not sure how it works, sorry. 13:27:30 stassats, sometimes you want to keep the "last" value so you use (shiftf last current (compute-new)) 13:27:30 I am using the language they use when providing statistics for billing purposes 13:28:17 -!- geek is now known as killown 13:28:25 -!- killown [~geek@unaffiliated/geek] has quit [Changing host] 13:28:25 killown [~geek@unaffiliated/killown] has joined #lisp 13:29:39 pjb: last month USA and EU were both around 20K requests 13:29:51 so is that a 50% increase instead? 13:29:52 That's ludicruously low. 13:30:04 adeht: prog1 can be used too 13:30:21 pjb: sorry, "each", not combined 13:30:36 pjb: you can always improve the stats by downloading more stuff 13:30:50 stassats, I used prog1 yesterday 13:30:59 Xach: well, I'd be more happy if you had 32K users in Europe. 13:31:43 stassats, for that purpose, actually ;) 13:32:00 pjb: you can improve those stats by proselytizing locally 13:32:08 adeht: and PSETF too 13:32:24 "I use Common Lisp, and now look at me!" 13:32:48 stassats, hehe.. now last psetf use was likely months back 13:32:57 S1am [guest@eth-209.20-homell.natm.ru] has joined #lisp 13:33:42 and FOR with AND in LOOP 13:34:47 -!- xiaohanyu [~lox@114.112.45.197] has quit [Ping timeout: 246 seconds] 13:35:04 -!- kpreid [~kpreid@128.153.213.162] has quit [Quit: Quitting] 13:36:00 LiamH [~none@pdp8.nrl.navy.mil] has joined #lisp 13:37:57 leo2007 [~leo@123.114.38.172] has joined #lisp 13:38:25 -!- ChanServ has set mode +o Zhivago 13:38:33 -!- Zhivago has set mode -q redsky!*@* 13:38:37 South America seems very low. Time for some rapida lisp coverage 13:38:43 -!- Zhivago has set mode -o Zhivago 13:38:52 Just turn the map upside down. 13:39:26 splittist, just call your next toylisp EmpanadaLisp 13:40:23 Zhivago: this is the map I use http://flourish.org/upsidedownmap/hobodyer-large.jpg 13:41:26 do you use dvorak too? 13:42:27 damn, somehow, alexandria produces an alist from a hashtable which breaks sbcl pretty printer 13:42:40 -!- leo2007 [~leo@123.114.38.172] has quit [Ping timeout: 260 seconds] 13:43:04 rmarianski [~rmariansk@mail.marianski.com] has joined #lisp 13:43:14 (pprint '(LOOP . 10)) 13:43:22 foiled! 13:43:45 so, this whole exercise didn't turn out to be completely useful, i've found a bug in SBCL! 13:43:51 heh 13:43:56 s/useless/ 13:44:02 ignas [~ignas@office.pov.lt] has joined #lisp 13:44:20 even so, it would only be useless if your time and effort was valuable 13:46:05 leo2007 [~leo@123.114.38.172] has joined #lisp 13:46:24 Kron_ [~Kron@206.126.93.212] has joined #lisp 13:47:12 That's quite a nice map. 13:47:43 ehu [~ehuels@109.35.90.23] has joined #lisp 13:48:25 -!- BigHugeDog [~QQ@218.58.12.164] has quit [Read error: Connection reset by peer] 13:49:00 -!- mcsontos [mcsontos@nat/redhat/x-vmlwfsklisddwkea] has quit [Ping timeout: 265 seconds] 13:52:42 kushal [~kdas@fedora/kushal] has joined #lisp 13:58:48 -!- kushal [~kdas@fedora/kushal] has quit [Ping timeout: 245 seconds] 13:59:30 asdfhjkl [~bob@i5E879AE1.versanet.de] has joined #lisp 13:59:49 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 246 seconds] 13:59:59 The date-change line, really! 14:00:50 dtw [~dtw@pdpc/supporter/active/dtw] has joined #lisp 14:02:45 -!- nitro_idiot [~nitro_idi@www31335u.sakura.ne.jp] has quit [Quit: ZNC - http://znc.sourceforge.net] 14:03:50 -!- Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has quit [Ping timeout: 246 seconds] 14:05:46 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 14:07:48 pnathan [~Adium@75.87.255.164] has joined #lisp 14:11:54 nitro_idiot [~nitro_idi@www31335u.sakura.ne.jp] has joined #lisp 14:13:23 -!- krrrcks [~krrrcks@krrrcks.de] has quit [Ping timeout: 265 seconds] 14:13:36 zpack + my complements -> 58 out of 499 total tests failed. 14:15:03 -!- stlifey [~stlifey@119.121.235.204] has quit [Read error: Connection reset by peer] 14:15:37 pjb: For didactic purposes, I didn't get involved with designators or the fact that NIL is really a symbol too. 14:15:43 kilon_alios [~kilon@athedsl-384487.home.otenet.gr] has joined #lisp 14:15:45 stlifey [~stlifey@119.121.235.204] has joined #lisp 14:16:27 krrrcks [~krrrcks@krrrcks.de] has joined #lisp 14:18:07 -!- kilon [~kilon@athedsl-321356.home.otenet.gr] has quit [Ping timeout: 244 seconds] 14:18:35 totzeit [~kirkwood@c-71-227-253-228.hsd1.wa.comcast.net] has joined #lisp 14:19:16 kilon [~kilon@athedsl-188198.home.otenet.gr] has joined #lisp 14:20:20 splittist: This is the map on my office wall: http://www.bfi.org/about-bucky/buckys-big-ideas/dymaxion-world/dymaxion-map (and yes, I do use Dvorak). 14:21:21 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Remote host closed the connection] 14:22:20 -!- kilon_alios [~kilon@athedsl-384487.home.otenet.gr] has quit [Ping timeout: 260 seconds] 14:23:13 BlankVerse [~pankajm@202.3.77.220] has joined #lisp 14:23:18 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 14:23:46 -!- stlifey [~stlifey@119.121.235.204] has quit [Read error: Connection reset by peer] 14:24:02 -!- snearch [~snearch@f053001021.adsl.alicedsl.de] has quit [Quit: Verlassend] 14:24:08 sellout: OK. I only play an eccentric on the internet... (and that map seems to have relegated the important part to the bottom left) 14:25:29 splittist: Actually, the map's title, etc. are printed on both sides, so you can just rotate it 180°. 14:26:54 ramkrsna [~ramkrsna@115.241.98.37] has joined #lisp 14:28:11 lars_t_h [~lars_t_h@002129194179.mbb.telenor.dk] has joined #lisp 14:28:42 -!- nowhere_man [~pierre@2001:660:2402:14:76de:2bff:fe41:2f1] has quit [Quit: Konversation terminated!] 14:28:46 snearch [~snearch@f053001021.adsl.alicedsl.de] has joined #lisp 14:30:25 xiaohanyu [~lox@125.39.68.33] has joined #lisp 14:30:59 -!- minion [~minion@pppoe.178-66-11-74.dynamic.avangarddsl.ru] has quit [Ping timeout: 245 seconds] 14:31:05 Fare [~Fare@216.239.55.82] has joined #lisp 14:31:28 Xach: Yes, I realize it: I wonder if it's still a derived work ;-) 14:31:34 -!- specbot [~specbot@pppoe.178-66-11-74.dynamic.avangarddsl.ru] has quit [Ping timeout: 252 seconds] 14:32:03 -!- krrrcks [~krrrcks@krrrcks.de] has left #lisp 14:32:43 -!- Vivitron [~user@pool-173-48-170-228.bstnma.fios.verizon.net] has quit [Remote host closed the connection] 14:32:46 pjb: designators actually inhibited my ability to absorb the underlying package semantics via osmosis. 14:32:50 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 260 seconds] 14:33:00 Several functions took strings that I thought took symbols 14:33:00 loke [~elias@bb115-66-85-121.singnet.com.sg] has joined #lisp 14:33:10 -!- stassats` [~stassats@wikipedia/stassats] has quit [Ping timeout: 272 seconds] 14:33:26 It's clear in retrospect after actually absorbing the package semantics from the spec 14:34:41 I have a FORMAT query... Is it at all possible to create a format control string that format a number like so: N=0  'no objects', N=1  "one object" or N>1  "{N} objects" 14:35:23 loke: yes 14:35:28 How? 14:35:35 l1sp.org/cl/~{ has an example with english grammar 14:35:45 hmm, no it doesn't. wrong thing. 14:35:47 *Xach* looks again 14:35:54 (loop for i below 3 collect (format nil "~[no objects~;one object~:;{~:*~A}~]" i)) => ("no objects" "one object" "{2}") 14:35:56 Well, I sort of figured out a way it could be done, but... Can it be done for arbitary N? 14:36:00 l1sp.org/cl/~[ 14:36:03 loke: yes. 14:36:20 -!- xyxu [~xyxu@222.68.158.80] has quit [Ping timeout: 260 seconds] 14:36:25 (loop for i below 5 collect (format nil "~[no objects~;one object~:;{~:*~A}~]" i)) => ("no objects" "one object" "{2}" "{3}" "{4}") 14:36:40 Xach: I've read those but still can't get it to work... :-( 14:37:00 do pjb's examples help? 14:37:11 pjb: Haha, I should have known you'd have the answer :-) 14:37:20 Xach: for this case, yes. I think so. Let me test 14:37:37 or even: (loop for i below 5 collect (format nil "~[no~;one~:;{~:*~A}~] object~:*~P" i)) => ("no objects" "one object" "{2} objects" "{3} objects" "{4} objects") 14:37:55 However, pgb's example don't handle arbitary N. WHat if, for example, I want it to say for N>100  'lots of objects' 14:38:15 loke: well, you'd have to have 100 ~; AFAIK. 14:38:26 pjb: OK, got it. 14:38:27 loke: no fair changing the target after it's been hit 14:39:04 loke: you can add a (< 100 n) argument to format, and test it in the format control string. 14:39:08 pjb: Which means that there is no generic way to handle Russian ordinals either, right? (russian uses different words depending on the last digit of the number) 14:39:17 But most people would say it's clearer to do a mere IF. 14:39:27 pjb: Yes of course. That's how you handle Russian in Java 14:39:30 stlifey [~stlifey@119.121.235.204] has joined #lisp 14:39:43 loke: you can always program. (format t "~/fmt:russian-ord/" n) 14:39:45 This is for translations, so ideally you'd want the translator to only have to touch the format strings. 14:39:48 what a country! 14:40:00 -!- ehu [~ehuels@109.35.90.23] has quit [Ping timeout: 252 seconds] 14:40:06 Xach: Yeah, :-) 14:40:18 I miss it though. It's been 10 years since I vitied Moscow 14:40:21 -!- Kron_ [~Kron@206.126.93.212] has quit [Quit: Kron awayyy!] 14:40:23 I love that city 14:40:30 <|3b|> ~// might get you closer to only modifying format strings 14:40:43 <|3b|> (but i guess pjb already suggested that) 14:40:49 loke: or even: (format t "~/fmt:eval/" formating-expression data) 14:41:18 Vivitron [~user@pool-173-48-170-228.bstnma.fios.verizon.net] has joined #lisp 14:41:21 formating-expression being a sexp the translator may set up to produce an algorithmic format. 14:42:18 Well, no, in that case, let him just give a formater function instead of the control string. So in the localization file, there may be control strings, or lambda expressions. 14:45:50 -!- ahinki [~chatzilla@212.99.10.150] has quit [Quit: ChatZilla 0.9.88.1 [Firefox 12.0/20120321033733]] 14:46:08 zpack + my complements -> 35 out of 499 total tests failed. 14:46:22 But mostly, I'm correcting ansi-tests :-) 14:48:29 Oh? 14:48:35 How so? 14:48:54 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 14:48:55 re 14:49:04 Sorry. Had to do housework 14:49:31 pjb: are you the maintainer of closer-mop? 14:49:36 -!- dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has quit [Read error: No route to host] 14:50:06 another pascal 14:50:11 Pascal J. Costanza 14:50:24 dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has joined #lisp 14:50:29 the J stands for "Just kidding, I don't know his real middle initial" 14:51:11 -!- jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has quit [Ping timeout: 244 seconds] 14:51:34 -!- dim [~dim@prometheus.naquadah.org] has left #lisp 14:51:55 jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has joined #lisp 14:52:07 dim [~dim@prometheus.naquadah.org] has joined #lisp 14:53:40 MoALTz [~no@host-92-2-133-68.as43234.net] has joined #lisp 14:54:12 -!- kilon [~kilon@athedsl-188198.home.otenet.gr] has quit [Remote host closed the connection] 14:54:25 pjb: Which lisp is making progress? 14:57:12 Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has joined #lisp 14:57:56 -!- Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has quit [Client Quit] 15:00:47 scheme? 15:01:56 -!- cmm [~cmm@bzq-79-179-227-241.red.bezeqint.net] has quit [Ping timeout: 246 seconds] 15:02:00 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 252 seconds] 15:03:24 n1tn4tsn0k [~nitnatsno@37.79.36.212] has joined #lisp 15:03:51 hello 15:04:00 cmm [~cmm@bzq-109-65-198-252.red.bezeqint.net] has joined #lisp 15:06:20 programs in cl are distributed as sources with coordinating asdf-file. such program runs in 5-6 seconds if it is large. how can i distribute my program that it runs in a split second? 15:06:31 sorry for my english, in advance 15:06:47 n1tn4tsn0k: you need to dump an image. 15:07:07 and it will work on any machine? 15:07:34 n1tn4tsn0k: on any machine with the same operating system and cpu 15:07:44 n1tn4tsn0k: you could try http://www.cliki.net/trivial-dump-core 15:07:59 CCL includes a facility for that, SBCL another one, etc 15:08:14 n1tn4tsn0k: or, for sbcl, http://www.xach.com/lisp/buildapp/ 15:08:33 and clisp? 15:08:37 http://ccl.clozure.com/ccl-documentation.html#Saving-Applications 15:08:49 n1tn4tsn0k: look at the manual 15:09:06 n1tn4tsn0k: in clisp, the function is call saveinitmem, iirc 15:09:18 Xach: any chances having buildapp work with ccl? 15:09:32 maybe that's not needed though 15:09:47 dim: I'd love to make it, just don't have the time right now 15:09:59 -!- mmajchrzak [~mmajchrza@78.9.146.7] has quit [Ping timeout: 246 seconds] 15:10:10 i'm not sure the general idea can work 15:10:33 last time someone asked for full control over a saved image with embedded runtime, gary's answer seemed to be "if you ask nicely, maybe". 15:10:38 but i might also be misremembering 15:10:38 https://github.com/rolando2424/trivial-dump-core seems to be supporting both SBCL and CCL 15:11:12 -!- Jeanne-Kamikaze [~Jeanne-Ka@125.Red-88-11-26.dynamicIP.rima-tde.net] has quit [Quit: Did you hear that ?] 15:12:46 H4ns: and will clisp's initmem work on other machine with same os? 15:14:12 realitygrill [~realitygr@76.226.194.30] has joined #lisp 15:14:15 n1tn4tsn0k: I think it will. 15:14:28 ok, thx 15:15:59 -!- Skola_ [~bas@ip51cd221d.speed.planet.nl] has quit [Ping timeout: 244 seconds] 15:16:05 is I think it will the same answer as spelled on some other channel as What happens when you try?? :) 15:16:54 -!- sn0rri [~sn0rri@62.169.219.149] has quit [Quit: Leaving...] 15:20:38 -!- jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has quit [Ping timeout: 244 seconds] 15:20:50 blackwolf [~blackwolf@ool-4575fc51.dyn.optonline.net] has joined #lisp 15:21:01 -!- hkBst [~marijn@gentoo/developer/hkbst] has quit [Quit: Konversation terminated!] 15:21:34 jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has joined #lisp 15:22:14 milanj [~milanj_@212-200-192-196.dynamic.isp.telekom.rs] has joined #lisp 15:23:07 -!- quazimodo [~quazimodo@c122-107-122-25.carlnfd1.nsw.optusnet.com.au] has quit [Ping timeout: 246 seconds] 15:23:15 -!- quazimod1 [~quazimodo@c122-107-122-25.carlnfd1.nsw.optusnet.com.au] has quit [Ping timeout: 260 seconds] 15:23:24 m7w [~chatzilla@80.249.86.162] has joined #lisp 15:24:06 trebor_dki [~user@mail.dki.tu-darmstadt.de] has joined #lisp 15:24:58 kmcorbett [~kmcorbett@199.180.145.100] has joined #lisp 15:26:27 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 15:27:35 -!- jdz [~jdz@193.206.22.97] has quit [Ping timeout: 265 seconds] 15:28:30 xyxu [~xyxu@222.68.158.80] has joined #lisp 15:30:59 -!- Ragnaroek [~chatzilla@boccacio.fh-trier.de] has quit [Remote host closed the connection] 15:32:42 sn0rri [~sn0rri@62.169.219.149] has joined #lisp 15:33:58 Qworkescence [~quad@unaffiliated/quadrescence] has joined #lisp 15:34:19 -!- xyxu [~xyxu@222.68.158.80] has quit [Ping timeout: 245 seconds] 15:35:01 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 246 seconds] 15:35:45 -!- paradoja [~paradoja@acceso-cmp174-159.lpa.idec.net] has quit [Ping timeout: 252 seconds] 15:36:25 quazimodo [~quazimodo@c122-107-122-25.carlnfd1.nsw.optusnet.com.au] has joined #lisp 15:36:28 hello. afte updating slime (from cvs) i get an error when starting slime: keyword argument :coding-system not one of (:coding-systems). i've put my .emacs-part on http://paste.lisp.org/display/128723. Can someone give me a hint to what I obviously overlook? 15:36:30 quazimod1 [~quazimodo@c122-107-122-25.carlnfd1.nsw.optusnet.com.au] has joined #lisp 15:37:51 Spion [~spion@77.29.253.90] has joined #lisp 15:37:56 -!- Spion [~spion@77.29.253.90] has quit [Changing host] 15:37:56 Spion [~spion@unaffiliated/spion] has joined #lisp 15:37:57 <|3b|> trebor_dki: s ? 15:38:01 clintm [~clintm@c-98-232-33-73.hsd1.wa.comcast.net] has joined #lisp 15:39:09 -!- Spion_ [~spion@unaffiliated/spion] has quit [Read error: Operation timed out] 15:39:27 trebor_dki: you use ":coding-system utf-8-unix" 15:39:40 as the error message tells, you have to use :coding-systems 15:40:02 i tried :coding-systems as well then i get a different error, (.. wait ...) 15:40:37 ... cond: Keyword argument :coding-systems not one of (:program :program-args :directory :coding-system :init :name :buffer :init-function :env) 15:42:31 I don't know then, sorry 15:43:06 trebor_dki: "coding-system" no plural then 15:43:58 oh wait, ignore me -.- 15:45:05 in slime.el -> (defvar slime-net-valid-coding-systems ... (utf-8-unix t "utf-8-unix") ...) and (slime-find-coding-system 'utf-8-unix) -> (utf-8-unix t "utf-8-unix") 15:47:51 dnolen [~user@67.106.254.3.ptr.us.xo.net] has joined #lisp 15:48:00 loke: no, I'm not maintained of closer-mop. I have a closer-weak package. 15:48:24 what is the 'process filter'? i tried to find the message or parts of it in /*.* but i did not succeed ... 15:48:41 reb: I'm completing Xach's zpack package implementation. 15:48:56 reb: so it's just a part of a new CL implementation if you will. 15:49:17 reb: I want to use it with my lisp reader to read lisp sources without interning symbols in the host lisp package system. 15:51:19 n1tn4tsn0k: for better results, save executable images: they contain both the run-time and the image, so you're sure you can run them wherever they can run (modulo external shared libraries used thru FFI). 15:52:06 -!- S1am [guest@eth-209.20-homell.natm.ru] has quit [] 15:56:27 ehu [~ehuels@109.32.87.211] has joined #lisp 15:56:35 -!- MoALTz [~no@host-92-2-133-68.as43234.net] has quit [Ping timeout: 265 seconds] 16:00:42 jasox [~jasox@178.239.26.136] has joined #lisp 16:01:22 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 16:01:30 wishbone4 [~user@167.216.131.126] has joined #lisp 16:04:39 NICBM [75c358a0@gateway/web/freenode/ip.117.195.88.160] has joined #lisp 16:05:34 I tried to put my problem into a more dense form: http://paste.lisp.org/display/128723#1. Maybe somebody notices what i am overlooking badly (must be a very-simple-error). Thanks. 16:05:44 *trebor_dki* googles meanwhile 16:06:11 trebor_dki: :coding-system is not one of (:coding-systems) 16:06:32 trebor_dki: note the plural vs. singular error 16:07:16 H4ns: yes? i tried :coding-systems, too. or do you mean sth different? 16:07:48 trebor_dki: no. well, then paste the error message when you use the right spelling for the keyword argument. 16:09:23 H4ns: I thought that i pasted 3 error-messages. (1) :coding-system utf-8-unix (2) :coding-systems utf-8-unix and (3) :coding-system xxxxxxx. aren't they displayed at http://paste.lisp.org/display/128723#1? 16:10:00 (it is the first annotation to http://paste.lisp.org/display/128723) 16:10:13 I am new to Lisp. What do you recommend for learning Common Lisp? Paul Graham's ANSI Common Lisp or Practical Common Lisp or Common Lisp the Language or Common Lisp a Gentle Introduction to Symbolic Computation by DavidTouretzky or Paul Graham's On Lisp? I am confused. 16:10:32 trebor_dki: to me, it seems as if you have some incompatible parts of slime or swank that are being used. 16:10:58 trebor_dki: i'd scratch everything and start afresh. wait, no, i'd use quicklisp-slime-helper. 16:10:59 -!- n1tn4tsn0k [~nitnatsno@37.79.36.212] has quit [Quit: KVIrc 4.0.4 Insomnia http://www.kvirc.net/] 16:11:07 NICBM: if you're a programmer, PCL, otherwise gentle. 16:11:18 NICBM: check http://cliki.net/ 16:11:24 NICBM: i second that recommendation. 16:11:33 -!- mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has quit [Quit: Leaving] 16:11:41 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 16:11:52 Yes, I can program in C. 16:11:56 -!- xiaohanyu [~lox@125.39.68.33] has quit [Ping timeout: 246 seconds] 16:12:02 Then you can go to PCL. 16:12:12 Gentle is nice too, but it starts slowly. 16:12:29 NICBM: on the other hand, you could easily read all the available lisp books, there are not so many of them :-) 16:12:46 :) 16:12:59 What do you want to do with Common Lisp? 16:13:12 H4ns: i do (load ".../quicklisp/slime-helper.el") is that what you mean? 16:13:13 pjb: that's quite a claim, and it is wrong. i have loads of lisp books, and my collection is far from complete. 16:13:45 trebor_dki: yes. but you said something about "slime from cvs". 16:13:55 H4ns: even if there are much more than what I imagine, that'd still be readable in less than a lifetime. Not so for Java or C books. 16:14:08 pjb: that much i concur with 16:14:55 davlaps [~davlaps@pool-108-49-122-166.bstnma.fios.verizon.net] has joined #lisp 16:15:17 pjb: I want to write intelligent algorithms in Lisp. My inspiration is Artificial Intelligence. 16:15:25 Fine. 16:15:29 H4ns: yes, i do not know anything about quicklisp/slime-helper, i thought that would be some additional /helper/modules. 16:15:39 NICBM: then you might want to read "paradigms of artificial intelligence programming" 16:15:51 NICBM: it teaches common lisp and ai algorithms. 16:15:58 ISF [~ivan@143.106.196.41] has joined #lisp 16:16:11 NICBM: have a look at LISA (a library for rete networks) and at Act-r (a model of cognition). 16:16:23 trebor_dki: it is not. if you use (ql:quickload :quicklisp-slime-helper), you get a working version of slime. 16:18:29 -!- treyka [~treyka@77.109.79.57] has quit [Ping timeout: 245 seconds] 16:18:49 wow that's interesting 16:18:49 enerccio [~chatzilla@158.194.169.150] has joined #lisp 16:18:57 hello, is there a way to get current environment? 16:19:13 NICBM: or KM The Knowledge Machine (quickloadable!) 16:19:33 http://www.cs.utexas.edu/~mfkb/km.html 16:21:09 -!- snearch [~snearch@f053001021.adsl.alicedsl.de] has quit [Quit: Verlassend] 16:21:29 pjb: what parts of the tests are you fixing? 16:21:39 mcsontos [~mcsontos@hotspot8.rywasoft.net] has joined #lisp 16:22:46 Xach: mostly the part where they use the reader instead of the package system. Ie 'foo instead of (intern "FOO" "CL-TEST"), where intern is zpack:intern. 16:22:48 H4ns: ok. i get slime-2011-11-03. is it possible to update this version? (ql:update-dist :quicklisp-slime-helper) resulted in an error. 16:23:45 trebor_dki: i'd fix quicklisp first 16:24:03 -!- scrimohsin [~a9h6d5a@gateway/tor-sasl/scrimohsin] has left #lisp 16:24:24 trebor_dki: (aka delete and reinstall it) 16:24:29 pjb: ah 16:24:37 -!- dnolen [~user@67.106.254.3.ptr.us.xo.net] has quit [Ping timeout: 265 seconds] 16:25:39 pjb: please let me know if you find implementation errors 16:26:10 splittist, H4ns, pjb thanks. 16:26:29 H4ns: i removed all references to slime-cvs. after restarting emacs. slime (2011-11-03) worked. i did (ql:quickload :quicklisp-slime-helper) and it downloaded (the same version). what is the recent verion of slime in quicklisp? 16:26:34 -!- ivan-kanis [~user@nantes.visionobjects.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 16:26:53 trebor_dki: i don't know 16:27:03 -!- schoppenhauer [~christoph@unaffiliated/schoppenhauer] has quit [Quit: leaving] 16:27:13 tensorpudding [~michael@108.87.21.241] has joined #lisp 16:27:19 trebor_dki: 2012-03-07 or so 16:27:32 (ql:update-dist "quicklisp") might fetch it for you 16:27:48 any idea how to get environment from somewhere? 16:28:04 ah (quicklisp not quicklisp-slime-helper ...) trying, thanks Xach. 16:28:17 enerccio: compilation environment or process environment or? 16:28:18 ysph [~user@mobile-166-147-113-122.mycingular.net] has joined #lisp 16:28:24 -!- ysph [~user@mobile-166-147-113-122.mycingular.net] has quit [Remote host closed the connection] 16:28:36 H4ns: environment to use with eval/setf 16:29:09 enerccio: not portably 16:29:20 Xach: works perfectly, thank you very much! 16:29:21 Xach: sure. There's a couple. 16:29:35 ysph [~user@mobile-166-147-113-122.mycingular.net] has joined #lisp 16:29:35 H4ns: there is no function that would return the current environment at least? 16:29:36 Thanks H4ns for your patience, too 16:29:45 otherwise I see no point of having that option for eval/setf... 16:29:57 -!- ISF [~ivan@143.106.196.41] has quit [Quit: WeeChat 0.3.7] 16:30:33 ISF [~ivan@143.106.196.41] has joined #lisp 16:30:36 -!- ysph [~user@mobile-166-147-113-122.mycingular.net] has quit [Client Quit] 16:31:30 enerccio: you can access the current environment in a macro function if you use the &environment lambda lisp option. see clhs defmacro. 16:31:49 didi [~user@unaffiliated/didi/x-1022147] has joined #lisp 16:31:55 Well, "access" is a big word. The only thing you can do with it is pass it to macroexpand 16:32:08 (unless you have implementation extensions). 16:32:32 hmmmm... I was more looking for emulation of scopes 16:32:52 ysph [~user@mobile-166-147-113-122.mycingular.net] has joined #lisp 16:32:57 like to have one lexical scope where I would eval various things and all would take from that 16:32:57 pjb: that is the "not portably" part 16:33:00 -!- ysph [~user@mobile-166-147-113-122.mycingular.net] has quit [Remote host closed the connection] 16:33:19 Jeanne-Kamikaze [~Jeanne-Ka@125.Red-88-11-26.dynamicIP.rima-tde.net] has joined #lisp 16:34:11 gigamonkey [~gigamonke@adsl-99-2-151-118.dsl.pltn13.sbcglobal.net] has joined #lisp 16:34:18 enerccio: have a look at http://groups.google.com/group/comp.lang.lisp/browse_frm/thread/fadbcbf462264423/29713966b57546c7 16:34:37 chiguire|m [~chiguire@gentoo/developer/chiguire] has joined #lisp 16:36:34 Do you use iterate? 16:36:38 pjb: your link did not jump to your post for me until I closed a frame on the left half of the page 16:37:01 http://l1sp.org/iterate/initially works now thanks to Krzysztof Drewniak 16:37:13 Vivitron: unfortunately google groups has become terrible :( 16:38:09 hmm I am not sure what to do with that... 16:38:37 I dont think I can omit eval 16:38:46 the thing is, I am making a sorta script reader 16:38:53 Xach: yes, it's unfortunate 16:38:54 which will read all lines in a script 16:38:58 enerccio: you can write a macro (or a set of macros) that builds their own kind of environment for you to use conformingly. 16:39:05 -!- kpal [~kpal@janus-nat-128-240-225-120.ncl.ac.uk] has quit [Ping timeout: 260 seconds] 16:40:16 pjb: I suppose, although what happens to setf then? 16:40:46 setf doesn't change the environment. 16:41:20 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 246 seconds] 16:41:22 schoppenhauer [~christoph@unaffiliated/schoppenhauer] has joined #lisp 16:42:01 -!- stlifey [~stlifey@119.121.235.204] has quit [Read error: Connection reset by peer] 16:42:27 stlifey [~stlifey@119.121.235.204] has joined #lisp 16:43:04 -!- c_arenz [arenz@nat/ibm/x-aytzszrptmnqvjau] has quit [Ping timeout: 245 seconds] 16:43:18 -!- jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has quit [Ping timeout: 252 seconds] 16:43:45 -!- milanj [~milanj_@212-200-192-196.dynamic.isp.telekom.rs] has quit [Ping timeout: 260 seconds] 16:44:04 lindes [~user@p4FF1C32E.dip0.t-ipconnect.de] has joined #lisp 16:44:15 jtza8 [~jtza8@196-215-120-164.dynamic.isadsl.co.za] has joined #lisp 16:44:39 -!- ferada [~ferada@dslb-094-219-146-252.pools.arcor-ip.net] has quit [Quit: Leaving] 16:44:49 pjb: any way to get a binding from env once I have it? 16:45:30 Not in the standard. Check the documentation of your implementation, a few of them may allow something. 16:45:47 I have sbcl 16:48:26 milanj [~milanj_@79-101-137-236.dynamic.isp.telekom.rs] has joined #lisp 16:49:58 dstatyvka [ejabberd@pepelaz.jabber.od.ua] has joined #lisp 16:50:46 add^_ [~add^_^@m212-152-11-21.cust.tele2.se] has joined #lisp 16:51:11 -!- varjag [~eugene@122.62-97-226.bkkb.no] has quit [Quit: Leaving] 16:54:07 -!- leo2007 [~leo@123.114.38.172] has quit [Ping timeout: 246 seconds] 16:54:27 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 16:54:35 -!- ramkrsna [~ramkrsna@115.241.98.37] has quit [Ping timeout: 260 seconds] 16:58:25 -!- sn0rri [~sn0rri@62.169.219.149] has quit [Quit: Leaving...] 16:58:40 -!- NICBM [75c358a0@gateway/web/freenode/ip.117.195.88.160] has quit [Quit: Page closed] 16:59:33 -!- gigamonkey [~gigamonke@adsl-99-2-151-118.dsl.pltn13.sbcglobal.net] has quit [Quit: gigamonkey] 17:03:06 if I have a list of binds in a variable that I want to use as the bindings in a let... how would I do that? 17:03:17 SaidinWoT: you can't do it with LET. 17:03:23 is it doable? 17:03:29 SaidinWoT: you could do it with PROGV 17:04:04 time to read about progv 17:04:06 (funcall (coerce `(lambda () (let ,bindings ,expression)) 'function)) 17:04:16 sn0rri [~sn0rri@62.169.219.149] has joined #lisp 17:06:35 -!- achiu [~achiu@ip68-96-95-213.oc.oc.cox.net] has quit [Quit: WeeChat 0.3.6] 17:06:37 SaidinWot: building let bindings is something I've seen mostly in the context of macros, and it's straitforward to do in that context 17:07:23 -!- m7w [~chatzilla@80.249.86.162] has quit [Ping timeout: 265 seconds] 17:07:27 SaidinWoT: by default, let binds lexically. Therefore the variables are written in the source, they're known at compilation time. 17:07:31 -!- trebor_dki [~user@mail.dki.tu-darmstadt.de] has quit [Remote host closed the connection] 17:08:04 Yeah, I was trying to make a macro for it but it kept just leaving the variable name in there 17:08:29 but coerce looks like it might be what I was missing 17:09:05 the other thing that I have done once, but probably bad style, was to use #. to generate the binding at read time, when I knew the value of the list of bindings at read time 17:09:05 (defmacro multiple-setq (bindings) `(progn ,@(loop for (var val) in bindings collect `(setq ,var ,val)))) 17:09:29 SaidinWoT: what are you doing in the bigger picture? 17:09:37 naeg [~naeg@194.208.239.170] has joined #lisp 17:09:39 That's wrong. 17:09:51 That multiple-setq 17:10:27 setq already accepts multiple bindings 17:10:36 Xach: right now just playing around with ideas for how to do my homework 17:11:22 not really sure where I'm going at the moment, so I don't know how to give a better answer 17:11:39 *ski_* . o O ( "PROGV is a testament to the success of synthetic methamphetamines in the rearing and education of the inveterately brain-damaged contributors to the X3J13 standardisation" ) 17:11:58 Fare: I wanted to assign to lexical variable from a run-time list of bindings. 17:12:06 ski_: O_o 17:12:17 But I *like* PROGV 17:12:18 SaidinWoT: sometimes the answer is just "don't try to do that" 17:12:19 -!- ehu [~ehuels@109.32.87.211] has quit [] 17:12:25 one thing I love about quicklisp is that it has given me a repository of code to grep over when I want to, e.g. see examples of progv 17:13:04 Vivitron: i wish there was a smarter & online search interface for it! 17:13:10 yes! 17:13:12 something that could possibly do structural searches 17:13:26 like only matching something if it is a real function call 17:13:42 or the like 17:14:03 *ski_* idly wonders what, more specifically, SaidinWoT tried with making a macro 17:14:07 that would be nice, the grep method tends to catch uninteresting comments/commits/docs 17:14:48 hmmm 17:14:54 tomodo [~tomodo@gateway/tor-sasl/tomodo] has joined #lisp 17:15:04 you cant add environment parameter to eval function? 17:15:46 (Odin- : try saying `BOOLE' to rudybot ..) 17:17:44 -!- didi [~user@unaffiliated/didi/x-1022147] has quit [Ping timeout: 246 seconds] 17:18:35 I was thinking eval can have optional parameter environment as is in scheme... 17:18:53 bas_ [~bas@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #lisp 17:18:53 -!- bas_ is now known as Skola 17:19:08 enerccio: you can implement your lisp in CL. 17:19:19 enerccio: have a look at pseudo, a r4rs scheme implemented in CL. 17:19:26 jewel [~jewel@196-209-224-252.dynamic.isadsl.co.za] has joined #lisp 17:19:37 pjb: I suppose so 17:20:01 its more like that having environment option withe eval is quite useful 17:20:07 why was it not included? 17:20:09 *Xach* hopes to get pseudoscheme working with ASDF sometime 17:20:28 -!- Ralith [~ralith@S010600221561996a.vc.shawcable.net] has quit [Ping timeout: 245 seconds] 17:21:24 enerccio: it didn't exist in the previous lisp that were commonalized by the CL standard. 17:21:39 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 17:21:40 -!- realitygrill [~realitygr@76.226.194.30] has quit [Read error: Connection reset by peer] 17:22:13 realitygrill [~realitygr@adsl-76-226-126-102.dsl.sfldmi.sbcglobal.net] has joined #lisp 17:22:15 -!- clintm [~clintm@c-98-232-33-73.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 17:22:27 ferada [~ferada@dslb-188-097-116-074.pools.arcor-ip.net] has joined #lisp 17:22:35 clintm [~clintm@c-98-232-33-73.hsd1.wa.comcast.net] has joined #lisp 17:25:23 -!- splittist [d417faa6@gateway/web/freenode/ip.212.23.250.166] has quit [] 17:26:19 hmmm 17:26:30 apparently there are extensions which might provide that kind of eval 17:26:43 but no one said names of them... 17:27:52 -!- kennyd [~kennyd@78-1-158-49.adsl.net.t-com.hr] has quit [Ping timeout: 276 seconds] 17:28:56 attila_lendvai1 [~attila_le@87.247.51.114] has joined #lisp 17:28:56 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Disconnected by services] 17:30:31 naeg_ [~naeg@194.208.239.170] has joined #lisp 17:30:40 -!- mcsontos [~mcsontos@hotspot8.rywasoft.net] has quit [Quit: Leaving] 17:31:44 dl [~download@chpcwl01.hpc.unm.edu] has joined #lisp 17:32:48 -!- naeg [~naeg@194.208.239.170] has quit [Ping timeout: 252 seconds] 17:33:03 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 17:34:25 Kron_ [~Kron@129-97-124-16.uwaterloo.ca] has joined #lisp 17:34:56 -!- Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has quit [Ping timeout: 265 seconds] 17:36:14 Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has joined #lisp 17:38:20 -!- BlankVerse [~pankajm@202.3.77.220] has quit [Ping timeout: 260 seconds] 17:39:38 -!- naeg_ [~naeg@194.208.239.170] has quit [Ping timeout: 240 seconds] 17:40:13 BlankVerse [~pankajm@202.3.77.219] has joined #lisp 17:40:58 dl` [~download@chpcwl01.hpc.unm.edu] has joined #lisp 17:40:59 -!- Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has quit [Ping timeout: 252 seconds] 17:41:39 hefner [~hefner@c-69-255-57-56.hsd1.md.comcast.net] has joined #lisp 17:42:08 -!- billitch_ [~billitch@bastille.ma3.tv] has quit [Ping timeout: 245 seconds] 17:43:49 -!- dl [~download@chpcwl01.hpc.unm.edu] has quit [Ping timeout: 248 seconds] 17:43:53 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 265 seconds] 17:46:51 -!- BlankVerse [~pankajm@202.3.77.219] has quit [Ping timeout: 252 seconds] 17:47:06 -!- slyrus [~chatzilla@adsl-99-24-163-252.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 252 seconds] 17:49:43 -!- dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has quit [Read error: Connection reset by peer] 17:50:38 dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has joined #lisp 17:50:39 sacho_ [~sacho@95-42-98-81.btc-net.bg] has joined #lisp 17:53:13 naeg_ [~naeg@194.208.239.170] has joined #lisp 17:53:32 Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has joined #lisp 17:53:33 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 17:54:07 -!- sacho [~sacho@95-42-98-81.btc-net.bg] has quit [Ping timeout: 264 seconds] 17:55:04 -!- naeg_ [~naeg@194.208.239.170] has quit [Client Quit] 17:55:11 naeg [~naeg@194.208.239.170] has joined #lisp 17:55:22 ZabaQ [~johnfredc@ip-89-176-173-114.net.upcbroadband.cz] has joined #lisp 17:55:31 -!- ainm [~ainm@214.Red-83-33-86.dynamicIP.rima-tde.net] has quit [Ping timeout: 244 seconds] 17:56:02 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 244 seconds] 17:59:12 -!- xan_ [~xan@80.174.78.154.dyn.user.ono.com] has quit [Ping timeout: 252 seconds] 18:00:09 xan_ [~xan@80.174.78.224.dyn.user.ono.com] has joined #lisp 18:01:18 ainm [~ainm@214.Red-83-33-86.dynamicIP.rima-tde.net] has joined #lisp 18:03:41 BlankVerse [~pankajm@202.3.77.220] has joined #lisp 18:04:04 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 18:04:36 wbooze| [~wbooze@xdsl-78-35-183-116.netcologne.de] has joined #lisp 18:04:37 -!- wbooze| [~wbooze@xdsl-78-35-183-116.netcologne.de] has quit [Excess Flood] 18:05:03 wbooze| [~wbooze@xdsl-78-35-183-116.netcologne.de] has joined #lisp 18:05:04 -!- wbooze| [~wbooze@xdsl-78-35-183-116.netcologne.de] has quit [Excess Flood] 18:05:05 achiu [~arthurchi@216.174.109.254] has joined #lisp 18:05:50 -!- tdubellz is now known as Staffgiraffe 18:06:00 -!- wbooze [~wbooze@xdsl-78-35-164-247.netcologne.de] has quit [Ping timeout: 260 seconds] 18:08:02 minion [~minion@pppoe.178-66-48-194.dynamic.avangarddsl.ru] has joined #lisp 18:08:05 stassats [~stassats@wikipedia/stassats] has joined #lisp 18:08:10 -!- skulls [~user@gateway/tor-sasl/skulls] has quit [Ping timeout: 276 seconds] 18:08:23 specbot [~specbot@pppoe.178-66-48-194.dynamic.avangarddsl.ru] has joined #lisp 18:08:35 Ralith [~ralith@static-209-139-215-92.gtcust.grouptelecom.net] has joined #lisp 18:09:45 REPLeffect [~REPLeffec@69.54.115.254] has joined #lisp 18:10:42 -!- ignas [~ignas@office.pov.lt] has quit [Ping timeout: 265 seconds] 18:12:36 -!- dtw [~dtw@pdpc/supporter/active/dtw] has quit [Quit: (sb-ext:save-lisp-and-die)] 18:13:57 anyone knows how to modify environment in sbcl? 18:14:04 I cant seems to find that information 18:15:11 have you found sb-cltl2? 18:15:55 no 18:16:10 I only found that mention in allegro CL 18:16:21 wbooze [~wbooze@xdsl-78-35-183-116.netcologne.de] has joined #lisp 18:16:34 as he interface to environment objects which was not included because I dunno 18:17:25 the only mention I found of why it wasn't included was a Kent Pitman (iirc) usenet post stating that the people who created the environments proposal withdrew it after it proved to be buggy 18:18:02 kilon [~kilon@athedsl-384841.home.otenet.gr] has joined #lisp 18:18:11 We'll probably have environments in v2 of the standard. 18:18:12 but check the package sb-cltl2 in sbcl and the respective chapter in cltl2. 18:19:36 schaueho [~schaueho@dslb-088-066-005-206.pools.arcor-ip.net] has joined #lisp 18:19:44 -!- dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has quit [Read error: No route to host] 18:19:54 -!- BlankVerse [~pankajm@202.3.77.220] has quit [Ping timeout: 272 seconds] 18:20:25 -!- attila_lendvai1 [~attila_le@87.247.51.114] has quit [Quit: Leaving.] 18:20:45 dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has joined #lisp 18:23:11 treyka [~treyka@85.234.199.185] has joined #lisp 18:23:39 .... 18:23:41 The consequences are undefined if the lambda-expression contains any references to variable or function bindings that are lexically visible in env, 18:23:42 why?? 18:23:52 for enclose lambda-expression &optional env 18:24:47 -!- bjonnh [~bjonnh@147.210.71.83] has quit [Read error: Connection reset by peer] 18:27:40 MoALTz [~no@host-92-8-232-184.as43234.net] has joined #lisp 18:28:35 BlankVerse [~pankajm@202.3.77.220] has joined #lisp 18:30:28 albacker [~eni@unaffiliated/enyx] has joined #lisp 18:31:39 -!- sn0rri [~sn0rri@62.169.219.149] has quit [Quit: Leaving...] 18:34:54 sacho [~sacho@95-42-98-81.btc-net.bg] has joined #lisp 18:35:46 stlifey_ [~stlifey@119.121.235.204] has joined #lisp 18:36:00 damn, can't load 3bmd from quicklisp, how did Xach let it happen?! 18:37:05 *stassats* deletes fasls at tries again 18:38:04 -!- sacho_ [~sacho@95-42-98-81.btc-net.bg] has quit [Read error: Operation timed out] 18:38:32 didn't help 18:38:39 Guthur [~user@212.183.128.52] has joined #lisp 18:38:54 -!- stlifey [~stlifey@119.121.235.204] has quit [Ping timeout: 272 seconds] 18:39:13 MoALTz_ [~no@host-92-2-134-106.as43234.net] has joined #lisp 18:41:05 |3b|: do you know of this? the loading order results in %extended-special-char-rules% not being defined when it's needed 18:41:10 pjb: I'm not sure I understand your use case. Using symbol-value and/or setf symbol-value ? 18:41:48 barryfm [~barryfm@fl-67-232-182-18.dhcp.embarqhsd.net] has joined #lisp 18:42:01 MoALTz__ [~no@host-92-2-118-174.as43234.net] has joined #lisp 18:42:50 -!- MoALTz [~no@host-92-8-232-184.as43234.net] has quit [Ping timeout: 252 seconds] 18:42:59 no, the order is right 18:44:14 <|3b|> which asd are you loading? 18:44:16 oh, doh, that's my error 18:44:19 sellout: dropped some more stuff onto the pull request, mainly because I haven't worked out how to get github to split them up 18:44:32 straightforward fixes though. 18:44:38 -!- MoALTz_ [~no@host-92-2-134-106.as43234.net] has quit [Ping timeout: 245 seconds] 18:44:50 Ralith: Thanks  I'll try to get to it today. 18:45:26 m7w [~chatzilla@80.249.86.162] has joined #lisp 18:46:11 untrusted [~user@stgt-5f719ef5.pool.mediaWays.net] has joined #lisp 18:46:12 jacius [~jacius@c-24-13-89-230.hsd1.il.comcast.net] has joined #lisp 18:46:20 i'm not handling #. correctly 18:47:18 -!- dmiles_afk [~dmiles@dsl-72-19-50-006.cascadeaccess.com] has quit [Ping timeout: 244 seconds] 18:47:27 dmiles_afk [~dmiles@dsl-216-155-215-135.cascadeaccess.com] has joined #lisp 18:47:54 and i'm not sure how to handle it correctly.. 18:48:04 kk 18:48:06 skulls [~user@gateway/tor-sasl/skulls] has joined #lisp 18:49:21 i just need to get a the form #. is quoting without evaluating it 18:50:14 LaPingvino [~LaPingvin@d54C06DE6.access.telenet.be] has joined #lisp 18:53:30 -!- Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has quit [Ping timeout: 244 seconds] 18:54:42 gkeith_glaptop_ [gkeith@nat/google/x-gkpjbgzwijtapqsz] has joined #lisp 18:55:03 Kvaks [~kvaks@15.123.34.95.customer.cdi.no] has joined #lisp 18:56:07 dlila [~dlila@72.53.70.164] has joined #lisp 18:57:30 -!- dl` is now known as dl 18:58:19 Xach: how is this possible (find "abort-ks-execution-example" ql-dist::(mapcar 'name (provided-systems t)) :test #'equal) => "abort-ks-execution-example" but (asdf:find-system * nil) => NIL 18:59:38 -!- BlankVerse [~pankajm@202.3.77.220] has quit [Ping timeout: 240 seconds] 19:01:23 BlankVerse [~pankajm@202.3.77.219] has joined #lisp 19:01:37 ehu` [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 19:02:23 how come the eval cannot modify the environment? 19:02:36 if I eval '(setf a 5) 19:02:47 nothing will change in that environment... 19:03:05 gbbopen does something fishy with asdf 19:03:20 enerccio: because it's run in the null lexical environment 19:03:41 stassats: so null environment cant be modified? 19:04:31 setf doesn't modify any environment 19:04:44 -!- sacho [~sacho@95-42-98-81.btc-net.bg] has quit [Read error: Connection reset by peer] 19:05:11 sacho [~sacho@95-42-98-81.btc-net.bg] has joined #lisp 19:05:16 even with A present in the environment, setf would just change its value, but environment will stay the same 19:05:25 MoALTz_ [~no@host-92-2-123-99.as43234.net] has joined #lisp 19:06:18 -!- lindes [~user@p4FF1C32E.dip0.t-ipconnect.de] has quit [Ping timeout: 244 seconds] 19:06:38 -!- lars_t_h [~lars_t_h@002129194179.mbb.telenor.dk] has quit [Quit: Leaving] 19:06:52 -!- CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has quit [Read error: Connection reset by peer] 19:06:52 -!- [SLB] [~slabua@unaffiliated/slabua] has quit [Remote host closed the connection] 19:07:12 so then there is no way of evaluating lisp code from elsewhere in the same environment, so those evaluated forms could get/change forms in the environment 19:07:55 no, there's no way 19:08:05 -!- MoALTz__ [~no@host-92-2-118-174.as43234.net] has quit [Ping timeout: 248 seconds] 19:08:13 that is kinda terrible... 19:08:16 you can only create new environment which will include the parent environment 19:08:20 enerccio: why is that? 19:08:38 stassats: exactly because of that 19:08:48 because of what? 19:08:49 stassats` [~stassats@wikipedia/stassats] has joined #lisp 19:08:54 you can evaluate code from somewhere else 19:09:32 [SLB] [~slabua@host22-160-dynamic.3-87-r.retail.telecomitalia.it] has joined #lisp 19:09:32 -!- [SLB] [~slabua@host22-160-dynamic.3-87-r.retail.telecomitalia.it] has quit [Changing host] 19:09:33 [SLB] [~slabua@unaffiliated/slabua] has joined #lisp 19:09:44 do you understand what "lexical" in the environment means? 19:10:02 stassats: yes, and? 19:10:18 even in python you can execute in different locals, globals, thus getting to the lexical scope 19:10:32 sure, and python is a toy interpreter. 19:11:00 maybe, but this breaks evaluating lisp code outside native load/compile 19:11:11 if you want python, you know where to find it 19:11:19 enerccio: nobody sane does that 19:11:31 stassats`: why not? 19:11:45 because it doesn't work! =p =/ 19:11:53 enerccio: Can you give an example of code where you would like to do that? http://paste.lisp.org/ 19:12:03 -!- two- [~textual@c-67-171-131-23.hsd1.wa.comcast.net] has quit [Quit: Computer has gone to sleep.] 19:13:01 did people mistook today for the april 1st? what's up with all not understanding and complaining about lisp today? 19:13:11 -!- Kron_ [~Kron@129-97-124-16.uwaterloo.ca] has quit [Ping timeout: 252 seconds] 19:13:12 :D 19:13:24 -!- asdfhjkl [~bob@i5E879AE1.versanet.de] has quit [Quit: Leaving] 19:13:26 http://paste.lisp.org/+2RBU 19:13:30 what, no talk of Phosphorous? 19:14:24 jacius: I basically want to go over a less lispy s statments that look like this: 19:14:27 http://lambda-the-ultimate.org/node/3488 19:14:44 :anca 19:14:45 defcharacter Anca "Nasa Mila Anca" (255 234 123 90) 19:14:47 enerccio: I don't get why you can't just use CL's EVAL there. 19:15:23 because they are macros evaluating into functions 19:15:28 that will be called at later time 19:15:53 didi [~user@unaffiliated/didi/x-1022147] has joined #lisp 19:16:00 problem being that these functions would have no native access to variables defined 19:16:38 -!- pnathan [~Adium@75.87.255.164] has quit [Ping timeout: 244 seconds] 19:16:46 *hefner* shrugs, wastes time elsewhere 19:16:49 for instance 19:16:50 kephas [~pierre@AStrasbourg-551-1-94-128.w81-49.abo.wanadoo.fr] has joined #lisp 19:18:03 http://paste.lisp.org/display/128731 19:18:07 here is defcharacter macro 19:19:01 stassats: gbbopen has some kind of fucked up "module manager" that confuses me, asdf, quicklisp, and everything else 19:19:08 stassats: sorry 19:20:31 -!- nowhereman [~pierre@AStrasbourg-551-1-38-160.w92-148.abo.wanadoo.fr] has quit [Ping timeout: 264 seconds] 19:20:39 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 260 seconds] 19:20:53 i'm think about loading systems sequentially 19:21:04 because some mess up the readatables 19:21:11 i mean, sequentially in different images 19:21:29 and i need to mess the readtable too, for #. to work 19:21:45 well, that's for tomorrow 19:22:59 -!- enerccio [~chatzilla@158.194.169.150] has quit [Ping timeout: 260 seconds] 19:23:15 enerccio: Let's talk in private chat, I'll try to help you get something working, ok? 19:23:41 Fare: my idea was to provide a macro that would set the variable in the lexical environment according to a binding list. It seems that I have to give the list of the variable in the lexical environment that can be thus assigned. 19:23:57 (let (a b) (set-variables (a b) (compute-bindings))) 19:24:00 iLogical [~iLogical@unaffiliated/ilogical] has joined #lisp 19:24:45 -!- kephas is now known as nowhere_man 19:25:20 -!- skulls [~user@gateway/tor-sasl/skulls] has quit [Remote host closed the connection] 19:26:39 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 19:26:44 kornshell` [~user@gateway/tor-sasl/skulls] has joined #lisp 19:26:59 -!- untrusted [~user@stgt-5f719ef5.pool.mediaWays.net] has quit [Remote host closed the connection] 19:28:01 pnathan [~Adium@75.87.255.164] has joined #lisp 19:29:19 -!- stassats` [~stassats@wikipedia/stassats] has quit [Ping timeout: 245 seconds] 19:29:45 -!- schaueho [~schaueho@dslb-088-066-005-206.pools.arcor-ip.net] has quit [Ping timeout: 260 seconds] 19:30:26 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 19:32:14 kennyd [~kennyd@78-1-172-177.adsl.net.t-com.hr] has joined #lisp 19:32:34 -!- pnathan [~Adium@75.87.255.164] has quit [Client Quit] 19:35:28 -!- gkeith_glaptop_ [gkeith@nat/google/x-gkpjbgzwijtapqsz] has quit [Ping timeout: 245 seconds] 19:39:02 gigamonkey [~gigamonke@adsl-99-2-151-118.dsl.pltn13.sbcglobal.net] has joined #lisp 19:40:32 -!- jasox [~jasox@178.239.26.136] has quit [Remote host closed the connection] 19:40:47 sdemarre [~serge@91.176.196.243] has joined #lisp 19:41:54 schaueho [~schaueho@dslb-088-066-026-115.pools.arcor-ip.net] has joined #lisp 19:46:52 -!- karswell [~coat@93-97-29-243.zone5.bethere.co.uk] has quit [Remote host closed the connection] 19:47:22 tsuru`` [~charlie@adsl-74-179-31-89.bna.bellsouth.net] has joined #lisp 19:48:52 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 250 seconds] 19:49:05 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 19:49:34 -!- tsuru` [~charlie@adsl-74-179-198-58.bna.bellsouth.net] has quit [Ping timeout: 276 seconds] 19:54:12 ainm_ [~ainm@134.Red-83-61-33.dynamicIP.rima-tde.net] has joined #lisp 19:54:12 -!- ainm [~ainm@214.Red-83-33-86.dynamicIP.rima-tde.net] has quit [Disconnected by services] 19:54:15 -!- ainm_ is now known as ainm 19:54:19 vervic [~vervic@84.114.246.246] has joined #lisp 19:56:24 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Ping timeout: 245 seconds] 19:57:27 lindes [~user@p4FF1C32E.dip0.t-ipconnect.de] has joined #lisp 19:58:14 -!- lebro [~lebro@ool-18bc4a28.dyn.optonline.net] has quit [Quit: leaving] 20:00:01 -!- vervic [~vervic@84.114.246.246] has quit [Quit: vervic] 20:00:19 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Ping timeout: 252 seconds] 20:00:23 pjb: how is that different from (destructuring-bind (a b) (mapcar #'symbol-value bindings)) ? 20:01:16 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 20:01:36 is the difficulty in bindings being themselves lexical vs dynamic? 20:01:39 -!- treyka [~treyka@85.234.199.185] has quit [Ping timeout: 265 seconds] 20:02:44 karswell [~coat@93-97-29-243.zone5.bethere.co.uk] has joined #lisp 20:03:55 francogrex [~user@109.130.103.247] has joined #lisp 20:04:02 I asked on #emacs, but maybe I'll ask here, too. Anyone seen the SLIME repl freeze up as being "Text is read only"? It still works fine otherwise (e.g. evaluating forms from a lisp file buffer), I just can't type at it. Point is at the end of the buffer. 20:04:04 ignas [~ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 20:04:37 Fare: we want lexical bindings from a run-time binding list. 20:05:06 lindes: I haven't seen that. 20:05:19 :-/ 20:05:27 pjb: oh, so your problem is all in compute-bindings. Joe Marshall is the specialist in optimizing such things, which he did for MIT Scheme. 20:05:36 err, "Text is read-only"... and actually, in *Messages*, it shows a "progn: " before that.... hmmm. 20:06:23 MoALTz__ [~no@host-92-8-227-31.as43234.net] has joined #lisp 20:06:23 I want to make a program to calculate poker probabilities by using monte carlo simulations, do you think it's a good idea to represent each card as a cons, for example : ("Ace" . "Spade") ... ? Or is there something more efficient/elegant ? 20:06:34 pjb: basically, everywhere you have a binding form, it must now maintain a mapping of all the variables that are bound, though said mapping might be thrown away if no introspection was done. 20:06:36 srwsrwuk [~srw@84.45.158.52] has joined #lisp 20:07:02 that requires basically a complete CL-on-CL implementation, too. 20:07:05 ebobby [~fms@50-0-172-141.dsl.dynamic.sonic.net] has joined #lisp 20:07:21 lindes: I've had that problem, but did not resolve it 20:07:23 (if I understand correctly) 20:07:26 I checked, and the *buffer* isn't read-only... 20:07:36 Vivitron: ok. I guess I'll just re-start slime or something. 20:07:58 Well, it's not my problem, it was enerccio's. And yes, if you have access to the local environment, you can set the lexical variables "dynamically" (ie. without knowing they're there before runtime). 20:08:03 i.e. (let ((x 1)) (lexical-binding-of 'x)) ==> 1 ? 20:08:27 lindes: iirc you can kill the repl buffer, m-x slime, and then there is an option to use the old lisp image 20:08:51 I'm not sure why people what to do that (apart for a debugger), since you could very well build a binding list that has no corresponding lexical variable, or if you create a new lexical variable at run-time, you won't have any (lexical) code refering it. 20:08:53 -!- MoALTz_ [~no@host-92-2-123-99.as43234.net] has quit [Ping timeout: 248 seconds] 20:09:03 Fare: yes. 20:09:20 I can imagine it being useful only in debuggers. 20:09:21 Vivitron: ahh, yes. Alas, I'd already done slime-restart-inferior-lisp, but I'm guessing what you say would have worked. 20:09:28 Vivitron: thanks, though. 20:09:36 if/when I hit it again, I'll try that. 20:10:23 francogrex: what's elegant is to hide whatever representation you choose behind a function abstraction. 20:10:46 (card-color (make-card :ace :spade)) --> :spade ; etc. 20:11:13 You can (setf (symbol-function 'make-card) (symbol-function 'cons)) if you want, it's just an implementation detail. 20:11:41 -!- tensorpudding [~michael@108.87.21.241] has quit [Read error: Connection reset by peer] 20:11:59 mmajchrzak [~mmajchrza@dynamic-87-105-113-130.ssp.dialog.net.pl] has joined #lisp 20:15:46 treyka [~treyka@85.234.199.185] has joined #lisp 20:16:03 tensorpudding [~michael@108.87.21.241] has joined #lisp 20:18:41 newbie syntax question (I think) - working through a tutorial here http://www.cs.sfu.ca/CourseCentral/310/pwfong/Lisp/2/tutorial2.html on exercise apply-func-list, I have a working example but for second part I tried passing a lambda function in the list of functions to apply e.g. (apply-func-list (list #'(lamba (x) (* 10 x)) #'rest #'rest ...)) clearly that isn't the syntax to add a lamba function to a list of functions - it may depend how I process the list bu 20:18:42 pjb: ok. I thought I should you structs or objects 20:18:57 hi 20:19:19 DDR [~chatzilla@d66-183-117-69.bchsia.telus.net] has joined #lisp 20:20:21 srwsrwuk: cut off at "how I process the list bu" 20:20:35 the list but I get "FUNCTION: (LAMBA (X) (* 10 X)) is not a function name; try using a symbol instead" 20:20:37 -!- dmiles_afk [~dmiles@dsl-216-155-215-135.cascadeaccess.com] has quit [Read error: No route to host] 20:20:44 dmiles_afk [~dmiles@dsl-216-155-215-135.cascadeaccess.com] has joined #lisp 20:21:02 srwsrwuk: what is lamba? 20:21:11 heh 20:21:24 *Xach* read that over and over again as lambda/LAMBDA 20:22:04 srwsrwuk: spelling it lambda should do the trick 20:23:05 Modius_ [~Modius@cpe-70-123-128-240.austin.res.rr.com] has joined #lisp 20:23:19 Xach: doh - thanks. 20:24:25 mon_key` [~user@74-143-70-82.static.insightbb.com] has joined #lisp 20:24:34 -!- clintm [~clintm@c-98-232-33-73.hsd1.wa.comcast.net] has quit [Quit: clintm] 20:24:44 CLISP's error in this case isn't very good :( 20:24:54 clintm [~clintm@c-98-232-33-73.hsd1.wa.comcast.net] has joined #lisp 20:26:02 -!- izz__ [joel@montezuma.acc.umu.se] has quit [Ping timeout: 246 seconds] 20:26:08 -!- mon_key` [~user@74-143-70-82.static.insightbb.com] has quit [Client Quit] 20:26:33 -!- MoALTz__ [~no@host-92-8-227-31.as43234.net] has quit [Quit: brb] 20:26:46 mon_key` [~user@74-143-70-82.static.insightbb.com] has joined #lisp 20:26:54 MoALTz [~no@host-92-8-227-31.as43234.net] has joined #lisp 20:27:26 adhoc_ [adhoc@50-56-189-236.static.cloud-ips.com] has joined #lisp 20:27:26 quazimod2 [~quazimodo@c122-107-122-25.carlnfd1.nsw.optusnet.com.au] has joined #lisp 20:27:32 Tordek_ [tordek@supporter.blinkenshell.org] has joined #lisp 20:27:38 -!- ainm [~ainm@134.Red-83-61-33.dynamicIP.rima-tde.net] has quit [Disconnected by services] 20:27:42 ainm [~ainm@252.Red-83-33-84.dynamicIP.rima-tde.net] has joined #lisp 20:27:55 egn_ [~egn@li101-203.members.linode.com] has joined #lisp 20:27:56 guaqua_ [gua@xob.kapsi.fi] has joined #lisp 20:28:00 setheus_ [~setheus@cpe-72-190-112-13.tx.res.rr.com] has joined #lisp 20:28:13 otwierac1 [~gonet9@v6.gen2.org] has joined #lisp 20:28:13 pkhuong_ [~pkhuong@gravelga.xen.prgmr.com] has joined #lisp 20:28:14 cataska_ [~cataska@210.64.6.233] has joined #lisp 20:28:58 francogrex: soon enough you will want to use a defstruct or defclass, but this should be hidden behind the function abstraction, so that you can switch from conses to lists to structures to clos instances without having to change the rest of your program. 20:29:09 zpack + my complements -> 10 out of 500 total tests failed: 20:30:13 pjb sound argument. Abstraction then 20:30:21 snafuchs [foobar@care.boinkor.net] has joined #lisp 20:30:24 izz_ [joel@montezuma.acc.umu.se] has joined #lisp 20:30:26 fmu` [UNKNOWN@an9iex1i.u10r.net] has joined #lisp 20:30:31 -!- ignas [~ignas@ctv-79-132-160-221.vinita.lt] has quit [Ping timeout: 276 seconds] 20:30:38 pjb: My compliments on your complements. 20:30:53 flip215 [~marek@unaffiliated/flip214] has joined #lisp 20:30:57 -!- rvchangue [~rvchangue@unaffiliated/rvchangue] has quit [Ping timeout: 260 seconds] 20:30:57 -!- anthracite [anthracite@2a01:7e00::f03c:91ff:fedf:eaaa] has quit [Ping timeout: 260 seconds] 20:30:57 -!- fmu [UNKNOWN@unaffiliated/fmu] has quit [Ping timeout: 260 seconds] 20:30:57 -!- achiu [~arthurchi@216.174.109.254] has quit [Ping timeout: 260 seconds] 20:30:57 -!- quazimodo [~quazimodo@c122-107-122-25.carlnfd1.nsw.optusnet.com.au] has quit [Ping timeout: 260 seconds] 20:30:58 -!- howeyc [~howeyc@2607:f2f8:a958::2] has quit [Ping timeout: 260 seconds] 20:30:58 -!- jlaire [~jlaire@80-248-244-51.cust.suomicom.fi] has quit [Ping timeout: 260 seconds] 20:30:58 -!- monotux [~user@juno.hamsterkollektivet.se] has quit [Ping timeout: 260 seconds] 20:30:58 -!- adhoc [~adhoc@50-56-189-236.static.cloud-ips.com] has quit [Ping timeout: 260 seconds] 20:30:58 -!- antifuchs [foobar@care.boinkor.net] has quit [Ping timeout: 260 seconds] 20:30:58 -!- Tordek [tordek@supporter.blinkenshell.org] has quit [Ping timeout: 260 seconds] 20:30:58 -!- flip214 [~marek@unaffiliated/flip214] has quit [Ping timeout: 260 seconds] 20:30:58 -!- pkhuong [~pkhuong@gravelga.xen.prgmr.com] has quit [Ping timeout: 260 seconds] 20:30:59 -!- cpt_nemo [cpt_nemo@rfc1459.de] has quit [Ping timeout: 260 seconds] 20:30:59 -!- cataska [~cataska@210.64.6.233] has quit [Ping timeout: 260 seconds] 20:30:59 -!- gkeith_lt [georgekeit@nat/google/x-hrsaoelqpplxmuvs] has quit [Ping timeout: 260 seconds] 20:30:59 -!- zbigniew [~zb@ipv6.3e8.org] has quit [Ping timeout: 260 seconds] 20:30:59 -!- Modius [~Modius@cpe-70-123-128-240.austin.res.rr.com] has quit [Ping timeout: 260 seconds] 20:30:59 -!- otwieracz [~gonet9@v6.gen2.org] has quit [Ping timeout: 260 seconds] 20:30:59 -!- setheus [~setheus@cpe-72-190-112-13.tx.res.rr.com] has quit [Ping timeout: 260 seconds] 20:30:59 -!- mon_key [~user@unaffiliated/monkey/x-267253] has quit [Ping timeout: 260 seconds] 20:30:59 -!- guaqua [gua@xob.kapsi.fi] has quit [Ping timeout: 260 seconds] 20:30:59 -!- egn [~egn@li101-203.members.linode.com] has quit [Ping timeout: 260 seconds] 20:30:59 -!- Subfusc [~Subfusc@tjenen.de] has quit [Ping timeout: 260 seconds] 20:31:03 -!- snafuchs is now known as antifuchs 20:31:03 Subfusc [~Subfusc@tjenen.de] has joined #lisp 20:31:25 rvchangue [~rvchangue@unaffiliated/rvchangue] has joined #lisp 20:31:32 achiu [~arthurchi@216.174.109.254] has joined #lisp 20:31:43 gkeith_lt [georgekeit@nat/google/x-yucmpzzsmeyezsnl] has joined #lisp 20:32:46 -!- egn_ is now known as egn 20:33:23 cpt_nemo [cpt_nemo@rfc1459.de] has joined #lisp 20:33:25 anthracite [anthracite@2a01:7e00::f03c:91ff:fedf:eaaa] has joined #lisp 20:33:36 zbigniew [~zb@ipv6.3e8.org] has joined #lisp 20:33:38 -!- gaidal [~gaidal@h164n1-m-sp-d4.ias.bredband.telia.com] has quit [Quit: Leaving] 20:33:45 jlaire [~jlaire@80-248-244-51.cust.suomicom.fi] has joined #lisp 20:34:42 Nisstyre [~yours@c-208-90-102-250.netflash.net] has joined #lisp 20:35:20 howeyc [~howeyc@2607:f2f8:a958::2] has joined #lisp 20:35:29 -!- jewel [~jewel@196-209-224-252.dynamic.isadsl.co.za] has quit [Ping timeout: 246 seconds] 20:35:46 -!- mon_key` [~user@74-143-70-82.static.insightbb.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 20:37:39 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Read error: Connection reset by peer] 20:37:50 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 20:38:32 mon_key [~user@unaffiliated/monkey/x-267253] has joined #lisp 20:38:34 mcox [~user@203-206-28-125.dyn.iinet.net.au] has joined #lisp 20:39:01 Is the flexi-streams mailing list operational? 20:43:32 (using math-ish notation on the left): if when f(x) => (or t nil) is called a "predicate", what's g(x,y) => (or t nil) called? 20:43:52 err, what's g called in such a case? 20:44:34 a "binary predicate"??? 20:44:57 yes 20:45:04 an arity 2 predicate 20:45:05 ok, cool. thanks. 20:45:17 ahhh... interesting 20:46:07 thanks, mcox and adeht. 20:48:58 -!- francogrex [~user@109.130.103.247] has quit [Remote host closed the connection] 20:49:07 -!- gigamonkey [~gigamonke@adsl-99-2-151-118.dsl.pltn13.sbcglobal.net] has quit [Quit: gigamonkey] 20:51:20 madnificent: was away from reliable IRC client at the time I'll try here first in the future 20:52:55 -!- add^_ [~add^_^@m212-152-11-21.cust.tele2.se] has quit [Quit: add^_] 20:58:40 -!- a7p [a7p@9.83.238.89.in-addr.arpa.manitu.net] has quit [Ping timeout: 265 seconds] 21:00:49 hi 21:01:04 madnificent You were interested in oauth2, right? You can have a look at https://github.com/Neronus/oauth2 - it even contains an example that shows how to work with the google "user profile" api. I'd be glad to hear what you think 21:01:43 -!- sdemarre [~serge@91.176.196.243] has quit [Ping timeout: 276 seconds] 21:03:12 -!- barryfm [~barryfm@fl-67-232-182-18.dhcp.embarqhsd.net] has left #lisp 21:07:13 -!- m7w [~chatzilla@80.249.86.162] has quit [Ping timeout: 252 seconds] 21:13:21 Neronus: I just cloned that today  very happy that you made it. 21:15:39 -!- cmm [~cmm@bzq-109-65-198-252.red.bezeqint.net] has quit [Ping timeout: 252 seconds] 21:15:40 -!- milanj [~milanj_@79-101-137-236.dynamic.isp.telekom.rs] has quit [Quit: Leaving] 21:17:09 sellout: I'm very glad that somebody likes it. Have fun with it. If you add something, let's merge it back :) 21:17:33 cmm [~cmm@bzq-79-181-201-27.red.bezeqint.net] has joined #lisp 21:17:33 Neronus: Of course. That's my MO. 21:18:28 MO? 21:18:35 modus operandi 21:18:39 ah :) 21:18:51 I guess I didn't read enought detective novels 21:19:56 MoALTz_ [~no@host-92-8-225-89.as43234.net] has joined #lisp 21:22:02 -!- kmcorbett [~kmcorbett@199.180.145.100] has quit [Quit: Leaving.] 21:22:29 -!- MoALTz [~no@host-92-8-227-31.as43234.net] has quit [Ping timeout: 248 seconds] 21:23:31 Jordan_U [~jordan@216.57.70.194] has joined #lisp 21:23:34 ainm_ [~ainm@225.Red-83-61-38.dynamicIP.rima-tde.net] has joined #lisp 21:23:46 -!- ainm [~ainm@252.Red-83-33-84.dynamicIP.rima-tde.net] has quit [Disconnected by services] 21:23:47 -!- ainm_ is now known as ainm 21:26:57 -!- LaPingvino [~LaPingvin@d54C06DE6.access.telenet.be] has quit [Quit: Going to sleep] 21:28:20 -!- ainm [~ainm@225.Red-83-61-38.dynamicIP.rima-tde.net] has quit [Ping timeout: 246 seconds] 21:35:13 -!- mcox [~user@203-206-28-125.dyn.iinet.net.au] has left #lisp 21:36:29 ainm [~ainm@62.Red-79-159-7.staticIP.rima-tde.net] has joined #lisp 21:37:10 -!- dl [~download@chpcwl01.hpc.unm.edu] has quit [Ping timeout: 244 seconds] 21:40:22 Kryztof [~user@84.40.217.82] has joined #lisp 21:41:38 Nauntilus [~androirc@wsip-68-14-222-194.ph.ph.cox.net] has joined #lisp 21:41:51 -!- kilon [~kilon@athedsl-384841.home.otenet.gr] has quit [Remote host closed the connection] 21:47:02 -!- albacker [~eni@unaffiliated/enyx] has quit [Quit: Leaving] 21:48:39 -!- ISF [~ivan@143.106.196.41] has quit [Ping timeout: 244 seconds] 21:51:30 -!- pkhuong_ is now known as pkhuong 21:52:02 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 21:54:11 -!- Jeanne-Kamikaze [~Jeanne-Ka@125.Red-88-11-26.dynamicIP.rima-tde.net] has quit [Quit: Did you hear that ?] 21:57:20 -!- LiamH [~none@pdp8.nrl.navy.mil] has quit [Quit: Leaving.] 21:58:34 daniel_ [~daniel@p5B326991.dip.t-dialin.net] has joined #lisp 22:00:22 -!- mishoo [~mishoo@79.112.104.38] has quit [Ping timeout: 246 seconds] 22:00:59 -!- daniel___ [~daniel@p50829338.dip.t-dialin.net] has quit [Ping timeout: 245 seconds] 22:01:53 ltriant [~ltriant@lithium.mailguard.com.au] has joined #lisp 22:02:44 -!- rmarianski [~rmariansk@mail.marianski.com] has quit [Quit: leaving] 22:04:03 zpack + my complements -> 1 out of 501 total tests failed. I'll leave that last failure, since it's not really a bug in zpack, and it would require a lot of changes in ansi-tests to resolve satisfactorily. Yay! 22:04:29 -!- zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has quit [Read error: Connection reset by peer] 22:04:58 \o/ 22:05:08 package goodness ahead 22:05:59 -!- Nauntilus [~androirc@wsip-68-14-222-194.ph.ph.cox.net] has quit [Quit: Nauntilus] 22:09:13 Xach: Do you mind if I distribute it with my lisp reader? wc -l --> 2074 package.lisp 354 zpack.lisp 22:09:13 22:09:30 zolk3ri [~zolk3ri@catv-89-132-196-182.catv.broadband.hu] has joined #lisp 22:09:49 I wonder if parenscript and CL-Javascript are semantic inverse 22:10:35 Nauntilus [~Nauntilus@wsip-68-14-222-194.ph.ph.cox.net] has joined #lisp 22:10:52 Neronus: no. 22:11:18 pjb: That answers that question 22:11:22 -!- Nauntilus [~Nauntilus@wsip-68-14-222-194.ph.ph.cox.net] has quit [Client Quit] 22:11:31 Nauntilus [~NickServ@wsip-68-14-222-194.ph.ph.cox.net] has joined #lisp 22:11:59 The inverse of parenscript is found in jwacs. 22:12:24 -!- Nauntilus [~NickServ@wsip-68-14-222-194.ph.ph.cox.net] has quit [Client Quit] 22:12:30 jwacs contains a javascript parser, and With some patches, you can produce back parenscript forms. 22:12:56 Well I guess you could do a similar patch to CL-Javascript to do the same. 22:12:58 -!- schaueho [~schaueho@dslb-088-066-026-115.pools.arcor-ip.net] has quit [Ping timeout: 246 seconds] 22:13:21 Nauntilus [~NickServ@wsip-68-14-222-194.ph.ph.cox.net] has joined #lisp 22:14:11 I said "semantic inverse" for a reason. I mean: Take the subset of parenscript that is also common lisp, write some program P, compile it to javascript, execute it with cl-javascript. Run that and compare its behaviour to that of for example SBCL executing P. 22:14:46 Basically, I wonder if we have a commuting diagram 22:15:11 I don't want to get CL-code again from CL-Javascript 22:15:48 -!- gravicappa [~gravicapp@ppp91-77-180-143.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 22:16:02 -!- ehu` [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 244 seconds] 22:16:19 -!- ainm [~ainm@62.Red-79-159-7.staticIP.rima-tde.net] has quit [Ping timeout: 264 seconds] 22:16:22 -!- schoppenhauer [~christoph@unaffiliated/schoppenhauer] has quit [Quit: leaving] 22:17:44 lebro [~lebro@ool-18bc4a28.dyn.optonline.net] has joined #lisp 22:18:35 ainm [~ainm@85.Red-83-61-34.dynamicIP.rima-tde.net] has joined #lisp 22:20:08 -!- chiguire|m [~chiguire@gentoo/developer/chiguire] has quit [Quit: Leaving] 22:20:35 pjb: Thanks for the zpack info. 22:24:13 nialo- [~nialo@ool-18ba4405.dyn.optonline.net] has joined #lisp 22:24:48 schaueho [~schaueho@dslb-088-064-177-039.pools.arcor-ip.net] has joined #lisp 22:24:55 -!- srwsrwuk [~srw@84.45.158.52] has left #lisp 22:24:59 airolson [~airolson@CPE00222d55a738-CM00222d55a735.cpe.net.cable.rogers.com] has joined #lisp 22:26:05 -!- ainm [~ainm@85.Red-83-61-34.dynamicIP.rima-tde.net] has quit [Quit: ((call/cc call/cc) (call/cc call/cc))] 22:26:05 -!- iLogical [~iLogical@unaffiliated/ilogical] has quit [Ping timeout: 246 seconds] 22:30:40 -!- clintm [~clintm@c-98-232-33-73.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 22:31:35 Kron_ [~Kron@206.126.93.212] has joined #lisp 22:33:07 pjb: feel free 22:38:08 It's there: https://gitorious.org/com-informatimago/com-informatimago/trees/master/common-lisp/lisp-reader 22:38:30 xyxu [~xyxu@222.68.158.80] has joined #lisp 22:38:56 ha, people actually fixing the package system? 22:39:25 if you wait long enough, others will do it for you strategy, pays off yet again :-) 22:42:49 maxm-: well, not exactly. Xach wrote a "reference implementation" of the core the package system, and I completed it to specifications. So now we have a package system independent from the host package system, that can be used with my lisp readar to read lisp sources without interning symbols in the host packages. 22:43:08 Or you could use it in a CL implementation; perhaps sicl will use it. 22:43:11 pjb: have you checked out the package some russian guy announced on c.l.l? 22:43:19 When? 22:43:22 he can conversation with that other guy that Xach says is an ahole 22:43:26 RG? 22:43:46 pjb: around 2-3 weeks ago.. He had back and forth with RG, comparing features and stuff, lemme get link 22:44:00 Well, I have a kill file and I tend to not be too careful to people who answer to people in my kill file 22:44:12 pjb: it was kind of very impressive, with package local nicknames, ability to do symbol-type reader macros (ie dispatch on stuff in the mid of symbol) etc 22:44:25 Yes, but this is based on the host package sysmte. 22:44:56 The point here is that you can read sources without impacting the host packages, so that you can analyse them. 22:45:15 pjb: http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/f484c215c5376b3e?pli=1 22:45:42 *maxm-* has in in todo list to check this out asap. I sent guy an email to encourage him to continue working on it, coz it looked awesome from description 22:45:54 Eg. one difference is that the reader may intern all read symbols even if they're not exported, or even in undefined packages, when you need to read sources using alien packages. 22:46:30 Yes, RG's are extensions to the package system, not the same thing. 22:46:42 pjb: ah ok, I get the direction of it now 22:47:07 I thought you were eventually going with making a package, where all CL package functionality is shadowed to the new zwhatever stuff 22:47:10 -!- sykopomp [~sykopomp@gateway/tor-sasl/sykopomp] has quit [Remote host closed the connection] 22:47:21 My package passes the package ansi-test. 22:47:50 maxm-: no that's a whole implementation, totally independent from the host system. 22:48:25 pjb: I'll have to check it out too, and compare to the budden's thing 22:48:43 *maxm-* is mostly interested it doing reader/infix etc magic stuff 22:50:25 -!- schaueho [~schaueho@dslb-088-064-177-039.pools.arcor-ip.net] has quit [Ping timeout: 246 seconds] 22:51:05 AndroUser2 [~androirc@116.197.6.27] has joined #lisp 22:51:53 -!- ferada [~ferada@dslb-188-097-116-074.pools.arcor-ip.net] has quit [Quit: leaving] 22:57:42 *maxm-* actually went to read this guy's code, and man is it messy 22:58:19 _main_ [~main@c-67-180-22-241.hsd1.ca.comcast.net] has joined #lisp 22:59:50 -!- AndroUser2 [~androirc@116.197.6.27] has quit [Ping timeout: 272 seconds] 23:00:23 -!- __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 246 seconds] 23:00:59 DataLinkDroid [~David@1.150.217.186] has joined #lisp 23:01:49 -!- Qworkescence [~quad@unaffiliated/quadrescence] has quit [Quit: Leaving] 23:01:55 -!- Yuuhi` [benni@p54839D06.dip.t-dialin.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:02:06 pjb: does your reader have a separate system, that does not pulls 10 other things with it? 23:02:11 -!- _main_ is now known as __main__ 23:02:33 -!- Nauntilus [~NickServ@wsip-68-14-222-194.ph.ph.cox.net] has quit [Ping timeout: 245 seconds] 23:03:29 BigHugeDog [~QQ@218.58.12.164] has joined #lisp 23:04:34 answering my own question apparently it was as easy as (ql:quickload "com.informatimago.common-lisp.lisp-reader") 23:05:59 How would you like querying your github account from lisp? For example checking the status of your repo, checking out pull requests, etc? 23:06:31 oh, you can even do commits 23:06:55 -!- ASau [~user@95-27-143-55.broadband.corbina.ru] has quit [Remote host closed the connection] 23:07:08 S11001001 [~sirian@fsf/member/S11001001] has joined #lisp 23:07:29 ASau [~user@95-27-143-178.broadband.corbina.ru] has joined #lisp 23:07:37 -!- __main__ [~main@c-67-180-22-241.hsd1.ca.comcast.net] has quit [Read error: Connection reset by peer] 23:07:43 all I care about are new followers. 23:07:49 :D 23:07:52 in fact, they should wire it into twitter. 23:08:27 _main_ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has joined #lisp 23:09:44 -!- naeg [~naeg@194.208.239.170] has quit [Quit: WeeChat 0.3.7] 23:12:38 -!- _main_ is now known as __main__ 23:12:50 -!- asvil [~asvil@178.124.160.180] has quit [Ping timeout: 260 seconds] 23:14:17 -!- didi [~user@unaffiliated/didi/x-1022147] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:15:07 maxm-: (ql:quickload :com.informatimago.common-lisp.lisp-reader) 23:15:45 Well, I use gitorious :-) 23:15:47 pjb: yea found it already.. you should do some kind of quickstart / examples etc.. Coz despite code being of good quiality, sheer amount seems overwhelming 23:16:38 pjb: and I'm still trying to figure out how to trivially use your readtable, so far i'm in lisp-text/source-text.lisp source-parse-token, and have a "this is not sparta, I'm lost" face 23:16:57 Yes. What I'm doing now will help me finalize the readtable-parse-token hook and document it. But don't expect anything for a few months. 23:17:11 -!- __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 246 seconds] 23:17:37 check lisp-text it's an example of using lisp-reader. 23:21:38 pjb: gee, what prompted your "Importing into KEYWORD" post? 23:22:44 keyword.1 and keyword.3 23:23:24 and the new import.13. 23:26:23 __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has joined #lisp 23:27:41 MrBusiness [~MrBusines@184.99.7.19] has joined #lisp 23:28:03 if i have (progn (make-package :something) other-code) then other-code can operate on the package :something, right? 23:28:13 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Ping timeout: 252 seconds] 23:28:48 Yes. 23:29:02 But not like this: (progn (make-package :something) (other-code 'something::x)) 23:29:11 because the form is read before the package is created. 23:29:37 Like this: (progn (make-package :something) (other-code (find-symbol "X" "SOMETHING"))) 23:30:23 hmm, that's annoying in my current use case 23:30:50 i'm generating and populating a package 23:31:53 -!- Fare [~Fare@216.239.55.82] has quit [Ping timeout: 246 seconds] 23:31:56 pjb: is there a way around it? can a macro somehow generate code that, within the code the macro has generated, has access to the package? 23:32:43 (eval-always (defpcakage))... then do stuff to it in your macro 23:32:54 (progn (make-package "P") (dolist (name '("A" "B" )) (intern name "P"))) 23:33:04 *maxm-* did it in log4cl/package.lisp which is a forwarder to implementation package 23:33:22 If you're creating the package at run-time, you don't need defpackage, you can do everything with the rest of the package dictionnary. 23:33:49 i'm doing it at compile-time 23:34:16 mcox [~user@140.253.50.113] has joined #lisp 23:34:45 that is to say, the macro generates the code to operate on the package, but the code-generation is user-extensible so it shouldn't be too hard to define functions and the likes in the generated code. 23:34:58 -!- __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 244 seconds] 23:35:17 maxm-: where is eval-always? 23:35:23 ah 23:35:53 madnificent: thought everyone has that in their utility lib, just shorter way to write (eval-when (:execute :compile-toplevel :load-toplevel)) 23:36:13 maxm-: ah yes, but that doesn't seem to solve it if it needs to occur at read-time 23:36:27 Well, it's the same at compilation time yes. defpackage itself just calls functions in the package dictionnary. 23:36:53 -!- Ralith [~ralith@static-209-139-215-92.gtcust.grouptelecom.net] has quit [Read error: Connection reset by peer] 23:36:56 madnificent: read time will be able to access your package defined at compile time just fine, but it will be empty 23:37:12 Ralith [~ralith@static-209-139-215-92.gtcust.grouptelecom.net] has joined #lisp 23:37:14 but then the second form in the progn still wouldn't be able to say (defun p::a ...) 23:37:25 if you mean to access yourpackage:blah, with blah being (defun yourpackage:blah), then it won't appear in your package, until load time 23:37:48 maxm-: not if you fill it before compilation ends. Then the filled package will be saved in the fasl. 23:37:49 so at read time, symbol is not yet in the package 23:38:06 madnificent: no, not in the same form. 23:38:30 pjb: yea, he could intern it before hand (at compile time again), but then you can just use (defpackage) which is a shorthand for all of that basically 23:38:56 Butsince youre generating it from a mcro, you can easily do (progn (make-package ) `(progn (make-package ) (defun ,(intern "A" "P") )) 23:40:27 pjb: but the generated code needs to contain the make-package as well, no? otherwise it won't be available the next time the code is loaded (if you tell me i'm wrong now, i'd be very happy) 23:40:49 -!- Kryztof [~user@84.40.217.82] has quit [Ping timeout: 246 seconds] 23:41:47 BigHugeDog1 [~QQ@218.58.12.164] has joined #lisp 23:42:25 madnificent: if loaded code somehow saved a reference to *package*, I guess it will be dumped as pjb describes, but it seems safer to just use (eval-when (:load-toplevel :compile-toplevel :Execute)..) Thats what (defpackage) does.. 23:42:39 -!- BigHugeDog [~QQ@218.58.12.164] has quit [Ping timeout: 245 seconds] 23:43:45 -!- lindes [~user@p4FF1C32E.dip0.t-ipconnect.de] has quit [Ping timeout: 244 seconds] 23:45:20 Fare [~Fare@216.239.55.82] has joined #lisp 23:46:03 maxm-: but then the generated code still can't access the package if it's in the progn after that defpackage form... does it? 23:47:40 hmm you put it into different progn 23:48:03 madnificent: the (progn) at top level is special, every form in it is treated as top level itself 23:48:14 so you can have macro generating entire file, like so 23:48:40 (progn (eval-when (...) ...make your package ...) .... code here can use your package ...) 23:49:00 madnificent: check the source of defpackage in package-mac.lisp and of %define-package and the make-load-form method in package-fun.lisp in https://gitorious.org/com-informatimago/com-informatimago/trees/master/common-lisp/lisp-reader 23:49:22 and can i only make the package if it doesn't exist yet? (should (unless (find-package x) (make-package x)) work?) 23:49:42 madnificent: why do you want to put code that _reads_ symbols interned in your package, in the same form as the code that defines it? 23:50:00 (define-my-stuff zz) (use-my-stuff zz:x zz:y) 23:51:06 pjb: it's a library for generating xml output functionality. the user supplies a (possibly inexistant) package name and a dtd, and the library generates the code for outputting xml for that dtd. 23:54:16 __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has joined #lisp 23:54:32 -!- __main__ [~main@adsl-99-173-15-158.dsl.pltn13.sbcglobal.net] has quit [Read error: Connection reset by peer] 23:55:48 odd thing is: when i execute the code for creating and populating the package in the repl, it seems to work just fine. but when it's in a file, it seems to fail. 23:56:34 -!- Ralith [~ralith@static-209-139-215-92.gtcust.grouptelecom.net] has quit [Ping timeout: 276 seconds] 23:57:04 -!- xyxu [~xyxu@222.68.158.80] has quit [Ping timeout: 252 seconds] 23:58:23 -!- achiu [~arthurchi@216.174.109.254] has quit [Quit: WeeChat 0.3.7]