00:00:02 bitonic: that's not what maxm is talking about. 00:00:51 pkhuong: what is he talking about then? 00:01:22 continuations-based web framework for direct-syle webapps. 00:01:58 pkhuong: OK, but how you do concurrency on that level does not really have to do with what I was asking, no? 00:02:01 What I meant, there is a toolkit called Wt, basically it models itself as Qt for the web 00:02:18 pkhuong: which you said as well, looking back 00:02:30 and they have synchronious modal dialogs, where thread simply suspends itself until client responds.. 00:03:13 obviously you can't have more then N threads in a pool of such threads waiting, but with session timeouts, and leaving separate thread pool for admin tasks, it would be hard to DOS 00:03:48 maxm: sure, but that's not what I was asking - actually the two models I proposed (Erlang and Haskell) do allow operations like that 00:03:51 in different ways 00:04:03 I'm really not a fan of the CPS style concurrency 00:04:34 bitonic: the way I understand it erlang simply doing cps behind the scenes, ie their threads are actually continuations thats why they cheap 00:05:31 maxm: that's only true if you consider posix threads to actually be continuations. Which, while true, is usually useless. 00:05:46 -!- stlifey [~stlifey@121.11.44.25] has quit [Quit: WeeChat 0.3.8] 00:06:00 maxm: I'm not sure what you mean. The erlang VM implements a runtime that gives you the possibility to send and receive (in a selective and synchronous way) messages to/from other threads. Every concurrency facility is implemented on top of that 00:06:09 including synchronous RPC calls, for example 00:07:02 well the receive is synchronous. The send just fires off a message, there is no response 00:07:05 bitonic: the funny bit is, the majority of erlang code I've seen could easily be re-written as a state machine or with a light wrapper around CPS: all the blocking happens in a small top-level loop. 00:07:41 pkhuong: I work on a big erlang project (RabbitMQ) and I can assure you that it would not be "easy" at all 00:08:01 bitonic: gen_server is barely even a state machine. 00:08:03 -!- gigamonkey [~gigamonke@adsl-76-254-20-77.dsl.pltn13.sbcglobal.net] has quit [Quit: gigamonkey] 00:08:22 sykopomp: yeah but gen server works thanks to Erlang messages 00:08:26 bitonic: the only thing you can't easily emulate once you have an event library is gen_server:call and plain receive. 00:08:57 bitonic: You can have messaging, a supervision structure, and individual actors in a system without actually supporting M:N threading. 00:09:08 continuations-based web framework?! yay! 00:09:26 bitonic: http://akka.io/ does just that, without any special runtime support. 00:09:40 sykopomp: well that's not a small thing... also, with Erlang you can distribute across nodes easily 00:09:49 sykopomp: yeah but akka is quite a big effort. 00:10:05 of course it is possible, I just wouldn't like to code that myself 00:10:28 *maxm* suspects you can write CL framework like this on top of ZMQ + serialization framework like cl-store 00:10:29 bitonic: the big effort isn't in the lightweight threading here... 00:10:36 bitonic: I've been thinking of cloning it for CL. I experimented with having actors working on top of threads, but I'm not sure it's worth it (but if you only want to spawn a couple of hundred gen_servers, it works great!) 00:10:52 pkhuong: maybe not, the conversation diverged a bit 00:11:07 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Ping timeout: 240 seconds] 00:11:08 thats basically how eve online client works, they wrote their own RPC layer, which just pickles all args, makes the call on the server over the wire and unpickles 00:11:24 its actually a pretty dumb implementation 00:11:31 bitonic: wrt distribution: at work, we don't use Distributed Erlang at all. We multinode using rabbit :) 00:11:38 as in nothing fancy, just pickle everything and do it 00:11:44 so in the end, I would 'multinode' in Lisp using rabbit or zmq, as well. 00:11:48 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 00:12:08 sykopomp: glad to hear that :). I just like to have that facility available. I think it is very liberating 00:12:28 bitonic: never touched it, really, and rabbit/zmq are already available. 00:12:34 -!- pnq [~nick@AC81CA45.ipt.aol.com] has quit [Ping timeout: 265 seconds] 00:12:57 but to get a lot of the nice things that come with Erlang you have to change your model a bit 00:13:03 sykopomp: never touched what? 00:13:11 bitonic: Distributed Erlang. 00:13:19 ah. It is really nice. 00:13:43 the whole OTP environment is really nice. even the messy thing (e.g. mnesia) are very useful 00:13:49 *things 00:14:27 in any case -- my current thinking is that cloning akka is, in the end, the Way To Go if you want the benefits of Erlang-style development. I don't think you lose much with that approach, considering how "real" erlang/otp code is written. 00:15:10 and I'm not sure it's that much work to actually build something like Akka. 00:15:27 cataska [~cataska@210.64.6.233] has joined #lisp 00:15:38 sykopomp: do you mean that having the gen_server like abstractions is enough, and you don't need distributed Erlang itself? 00:15:47 *are enough. 00:15:50 *bitonic* is tired 00:16:52 bitonic: I mean two things: A. gen_server/supervisor/etc are the way Erlang code is Actually Written, and those don't actually behave preemptively. You still end up writing your code in, essentially, an event-based way. 00:16:57 damn it interesting conversation, but I have to learn erlang to understand it.. some day 00:17:19 B. For distribution, using an external, possibly-persistent message queue is Good Enough, if not better, than something like Distributed Erlang. 00:17:56 sykopomp: I agree on both points. Mine was mostly a "does something like that exists for CL?", not an implicit declaration of uselessness of CL :P 00:18:09 bitonic: "Not yet" 00:18:15 but it's been on my todo list for a couple of weeks. 00:18:30 I wrote this as an experiment, before that: https://github.com/sykopomp/memento-mori 00:18:50 a sad name. 00:19:10 kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has joined #lisp 00:19:12 so if you don't care about spawning tens of thousands of actors and you still want erlang-style development with message passing and supervision trees, that library might do the trick. 00:19:20 or at least, it was meant to :) 00:20:12 I have no need right now. I still think that in the long run languages which are good (or excellent) at doing that will win (which is a fairly obvious prediction...) 00:20:15 part of the reason I wrote it was to learn the little details of Erlang's messaging semantics and the OTP tools. 00:20:50 bitonic: when it comes to Lisp, the main question is "Should I bother building it?", in most cases. 00:21:54 -!- jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has quit [Ping timeout: 244 seconds] 00:22:10 sykopomp: but that's not a good logic - I don't want to spend time rebuilding OTP/Akka. I'd rather go with the already existing one. I'll never produce something as reliable in a reasonable time - OTP has been battle tested for decades 00:22:58 bitonic: pay me to build it for you! 00:23:03 jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has joined #lisp 00:23:04 :) 00:23:06 sykopomp: I have no money! 00:23:07 ehe 00:23:15 fix that, and then you'll have what you want. 00:23:24 Lisp is a tool-building tool. 00:23:26 funnily enough most of these things is already solved in "enterprise" systems, ie Tuxde, WebSphere MQ etc.. Including load balancing, replication, failure recover and such. But they are written in C, and interface and transaction semathics are extremely complex, and admin work is even more complex then programming 00:23:39 Tuxedo I meant.. 00:24:03 -!- homie [~levgue@xdsl-78-35-160-115.netcologne.de] has quit [Read error: Operation timed out] 00:24:37 -!- flanfl [~flanfl@cpc1-sgyl27-2-0-cust785.sgyl.cable.virginmedia.com] has quit [Remote host closed the connection] 00:24:56 maxm: well if you're already talking about distributed transactions and stuff like that that's a completely different thing :P 00:26:31 I was just talking about the concurrency primitives 00:26:37 bitonic: well Tuxedo clustering / load balancing / recovery can be done without distributed transaction part, they are orthogonal. 00:27:20 maxm: but those are all much more sophisticated things than what I was talking about 00:27:37 ok, since I don't know Erlang erlang sounds mysterious and capable to me :-) 00:27:47 maxm: Erlang is actually quite simple 00:27:54 Erlang is much less mysterious when you actually use it. 00:28:14 The Language That Made Luke Gorrie A Star 00:28:18 in fact, you start realizing how hacky and boilerplatey the language is :) 00:28:29 it's quite a small language. kinda grew organically but it's still fun 00:28:57 like an organic, deformed potato. 00:29:32 maxm: and I have no experience with the software you mentioned, so there is a communication problem :) 00:29:44 Bitonic: What Tuxedo does, basically makes one large applications from a bunch of Unix machines, clusters and processes. Application has a global namespace, (using C strings), and API for synthronious call, asynchronious call, receive reply, subscribe/notify, and stateful session (open convo, send/rcv within the conve, close convo), and persistent queuing 00:30:32 maxm: the wiki page says "Written in: C, C++, COBOL, Python, Ruby, PHP". what the fuck? 00:30:58 maxm: not it sounds even more like a big and complicated thing :) 00:31:18 those are bindings, its written in C, and its heritage is original AT&T unix 00:32:16 from top of my head other then place I worked on, PeopelSoft uses it, and a lot of banks 00:32:34 the fact that cobol bindings even exist is a bit scary. I'm sure it's "enterprise ready" 00:34:15 Xach: Luke Gorrie is the distel and slime guy! I owe him something 00:34:38 if only distel was as nice as slime! 00:34:44 but anyway reason I brought it up is that it does what I think sykopomp says he want to do 00:35:19 sykopomp: ehe. still something. 00:35:38 so does not hurt to study the way other systems do it 00:35:51 it's lovely, though. Erlang is the only other language I've used that lets me do the same workbench-like style of development. :) 00:36:36 sykopomp: what do you mean "workbench-like"? Do-stuff-from-emacs? 00:36:39 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Ping timeout: 255 seconds] 00:36:47 you can kind of do it with php/jsp/asp pages. thats why php programmers are so productive, its closer to lisp then you think :-) 00:37:11 ie edit/f5/edit/f5 00:37:15 bitonic: I have a program, it's running, I write some code and change the program as I go, only restarting for occasional full-compile sanity checks (or horrendous-crash recovery) 00:38:22 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 00:38:22 sykopomp: ah, right. I come from years of Haskell so I guess I'm just not used to that - static types are hard to reconciliate with dynamic reloading 00:39:04 doesn't smalltalk do something like that? 00:39:07 static types work for some people. I find I work best in languages and environments where I can work with the code like clay under my fingers. 00:39:19 maxm: the last time I've tried PHP, it was quite awful to debug. 00:39:23 it does, yes, but I've never worked with smalltalk/self/etc. 00:39:33 sykopomp: you can with flexible enough types 00:39:50 yes, and dynamic typing is pretty flexible. 00:39:52 :) 00:40:17 -!- r_r_r [~chatzilla@77.126.198.200] has quit [Quit: ChatZilla 0.9.88.2 [Firefox 13.0.1/20120614114901]] 00:41:41 well, speaking of types, dynamic types are not, at runtime. 00:41:48 so they're everything 00:42:04 *at compile time 00:42:19 *maxm* actually not sure how ppl debug lisp web apps 00:42:56 do they just tail -f teh log file or submit mock requests from REPL? 00:43:08 maxm: hunchentoot lets you pop up the debugger on handler error. 00:43:08 maxm: (setf ucw-core:*debug-on-error* t) 00:43:34 you make your http requests however you need, if you need to test at the request level. 00:43:36 and yeah, hunchentoot has something similar 00:49:26 wow, ucw looks pretty cool, one of those continuations based frameworks if I understand correctly 00:49:43 -!- k0001 [~k0001@host76.190-228-122.telecom.net.ar] has quit [Ping timeout: 255 seconds] 00:50:17 yeah, arnesi has a interpreter for a CL-alike that has call/cc 00:51:20 I have used UCW for 9 years, then I decided that it was 'a little bit big' or something, so I wrote my own based on the monad. 00:51:36 -!- ZC|Mobile [~weechat@unaffiliated/forgottenwizard] has quit [Read error: Operation timed out] 00:51:52 *drewc* is in the UCW commit messages for quite a lot of things... ucw-core was my idea IIRC 00:52:04 -!- ezakimak [~nick@ns1.nickleippe.com] has quit [Remote host closed the connection] 00:52:07 drewc: is is still maintained? the website looks a bit stale 00:52:23 -!- dnolen [~user@pool-68-161-100-113.ny325.east.verizon.net] has quit [Ping timeout: 244 seconds] 00:53:05 -!- jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has quit [Remote host closed the connection] 00:53:45 slyrus [~chatzilla@99-28-163-106.lightspeed.miamfl.sbcglobal.net] has joined #lisp 00:54:07 it is ... though not by the author these days... I have an app the is using a 4 year old UCW that is still completely fine ... but ikki has just added a patch so that it directly supported parenscript, and the age of course doesn't matter ... when was the hyperspec last updated? :) 00:54:19 https://github.com/drewc/ftw/blob/master/dispatcher/monads.lisp#L113 <--- monad 00:54:49 drewc: well, it doesn't, but I prefer a maintained project over a unmaintained one 00:55:14 *bitonic* uses a mail client which is more or less dead since 2006 00:55:39 bitonic: well, what if it does not need maintaining? 00:55:51 drewc: that happens rarely, but ok 00:56:19 if there is an active community it almost certainly need maintaining 00:56:21 homie [~levgue@xdsl-78-35-160-115.netcologne.de] has joined #lisp 00:56:32 This is #lisp, it happens all the time for a 'finished' library ;) 00:57:09 -!- fantazo [~fantazo@91.119.101.47] has quit [Remote host closed the connection] 00:57:22 I thought that happened to qmail and tex only 00:57:33 well actually tex is still mantained. 00:57:35 but, then again, when something needs done in UCW, well, I do it... and I can commit to the UCW repo because, well, it is on common-lisp.net 00:57:37 in some way 00:58:06 drewc: the last commit in the darcs repo is in 2010 00:58:19 ah no. 2011. 00:58:31 yeah I can see drewc :) 00:58:32 and common-lisp.net, well, I have the root password, it is on my server, etc... so my opinion on that sort of thing probably does not count. 00:58:44 w00t! :) 00:59:11 wbooze [~wbooze@xdsl-78-35-160-115.netcologne.de] has joined #lisp 00:59:56 2011 was a bit of a difficult year for me personally, so I did not commit to UCW ... but yeah, there will be a new commit soon! 01:00:33 the big committer is @unknownlamer.org :) 01:00:37 well, was. 01:01:38 sellout: pull request! 01:01:43 yeah, he was employed by me for working on an app that runs one of my clients business... so things that didn 01:01:48 noss [~cs@110.35.136.223] has joined #lisp 01:01:57 't work were made to work 01:02:50 drewc: so you see, when you start using things in some new project you inevitably find some thing that does not work 01:02:59 and I bet that UCW is not web 2.0! 01:03:25 web 3.0 ... 01:04:07 ehe 01:04:37 and there is/was ucw-ajax which the important things were merged into the proper UCW 01:05:54 *drewc* has been on the internet since before there was a WWW, so web 2.0 is, well, a silly name IMO :) 01:06:58 *bitonic* was born in a world with WWW 01:07:21 "new record" irc.escape.com hits 1000 users 01:07:54 actually, I was born the same year as WWW. that must mean something. 01:07:58 and these days I do not use UCW for a new project, but I still use YACLML quite a bit. I use a custom web library that I wrote these days that I probably should commit to github under FTW 01:08:43 but yeah, UCW is still great 01:09:29 damn, I'm one month older than the first working web server. 01:09:52 and I can recommend using UCW because it is quite, well, complete and documented. 01:11:06 peterhil [~peterhil@91-157-48-51.elisa-laajakaista.fi] has joined #lisp 01:11:58 Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has joined #lisp 01:12:02 drewc: I'll probably try it if my CL adventure will continue :) 01:12:19 it's just that I was writing a lot of elisp lately and I wanted to try the real thing 01:13:09 CL is the real thing, even emacs has (require 'cl) or something like that. 01:13:29 -!- impulse [~impulse@bas3-toronto48-1176313909.dsl.bell.ca] has quit [Ping timeout: 265 seconds] 01:13:32 drewc: it does, and it is very useful 01:13:38 I used racket scheme a bit 01:15:37 yup, I have used scheme as well, and I have written a compiler for Kernel as well. 01:15:41 http://web.cs.wpi.edu/~jshutt/kernel.html 01:16:10 k0001 [~k0001@host76.190-228-122.telecom.net.ar] has joined #lisp 01:16:15 -!- jcorneli [896c9127@gateway/web/freenode/ip.137.108.145.39] has quit [Ping timeout: 245 seconds] 01:17:55 and of course I can use elisp, though I don't like it all that much :D 01:18:02 ah right. special forms are not first class. that is disappointing. 01:19:53 I can recommend Kernel once, well, you have learned Common Lisp. CL is still the best Lisp out there IMO 01:20:19 drewc: how do you handle fexprs? 01:20:30 drewc: I haven't much drive to learn a new language. But practical common lisp is a very readable book 01:21:25 drewc: Kernel isn't quite as... usable. 01:22:13 -!- iLogical [~iLogical@unaffiliated/ilogical] has quit [Remote host closed the connection] 01:22:48 Ralith: how do I handle things with my Kernel compiler? It depends... and I have not worked on it in a while, so my $vau is kind of foreign to me at this point. 01:23:10 drewc: I've put quite some time into trying to compile a kernel-like and found those to make things very challenging; I'd be interested to hear about your approach 01:23:52 drewc: I mean, it makes conventional compilation more or less impossible; surely you remember something about how you attacked that. 01:25:24 drewc: what are examples of special forms that you can't implement with macros? 01:25:29 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Quit: leaving] 01:25:32 instead of fexprs 01:26:17 Ralith: well, I sort of remember, but I am likely going that start over and try it again because it had some issues, and the compilation was to basically make the interpretion very fast 01:27:15 bitonic: define 'implement' 01:27:40 bitonic: heh .. SETQ is the first one I can think of 01:27:41 drewc: well, what're your plans, then? 01:28:12 Ralith: to start completely over again, essentially. 01:28:45 drewc: isn't that (defmacro setq (symbol value) `(set ',symbol value)) ? I did not even know that setq was a special form 01:28:57 should be ,value 01:29:01 Ralith: beyond that, no plans beyond 'start fresh' 01:29:31 drewc: you can implement setq with macros, though, can't you? :) 01:29:35 oh, you've decided your current approach is inviable and haven't worked out a new one? 01:29:42 dammit 01:30:15 bitonic: set cannot change the value of a lexical variable. 01:30:43 Ralith: yeah, either decided or forgot what I was trying to do. 01:30:52 drewc: it can't? and setq can? I guess I'm used to elisp. 01:31:02 clhs set 01:31:02 http://www.lispworks.com/reference/HyperSpec/Body/f_set.htm 01:31:06 clhs set1 01:31:06 Sorry, I couldn't find anything for set1. 01:31:10 well, I'll be interested to hear if you work something out--I've been thinking about giving them another go myself 01:31:15 clhs setq 01:31:15 http://www.lispworks.com/reference/HyperSpec/Body/s_setq.htm 01:31:58 Ralith: well, when I do find the time, I will tell you both what I think and what I am trying, and ask you for advice :) 01:33:34 ^^ 01:34:09 I want fexprs. 01:34:13 :D 01:34:58 do you want them for anything in particular? 01:35:01 is fexprs = call-by-name function or something more? it sounds too simple to be hard to implement 01:35:11 -!- jschaefer [~user@99-122-69-191.lightspeed.milwwi.sbcglobal.net] has quit [Ping timeout: 255 seconds] 01:35:20 sykopomp: (defmacro setq (var val) `(cl:setq ,var ,var)) :) 01:35:21 it's not hard to implement. It's hard to compile properly. 01:35:37 sykopomp: why? 01:36:12 well actually, it is subtler 01:36:26 bitonic: https://secure.wikimedia.org/wikipedia/en/wiki/Fexpr 01:36:29 bitonic: because interpreting code at runtime kinda sucks. 01:37:37 sykopomp: well that problem is shared with macros isn't it? 01:37:46 no 01:37:53 not at all 01:37:55 because macros are always, by definition, expanded at compile time. 01:38:06 whereas fexprs are technically runtime constructs. 01:38:45 -!- wbooze [~wbooze@xdsl-78-35-160-115.netcologne.de] has quit [Read error: Connection reset by peer] 01:38:47 *when* you use them like macros, you can, in theory, 'expand' them at compile-time, just like macros, but since there's more dynamic features to them, this is not always possible. 01:39:54 and you have to do very involved state-tracking tricks to even get close 01:39:54 -!- Jasko [~tjasko@c-174-59-201-95.hsd1.pa.comcast.net] has quit [Read error: Connection reset by peer] 01:39:55 sykopomp: ah right, my confusion derives on how template haskell works 01:40:13 Jasko [~tjasko@c-174-59-201-95.hsd1.pa.comcast.net] has joined #lisp 01:40:27 where macros strictly work with compile time data - e.g. you can't read a line and then pass the result to a macro 01:40:37 since that would make it impossible to typecheck 01:40:59 macros in CL also exclusively work with compile time data. 01:41:05 so I had that as a standard for "macros at compile time" 01:41:17 It just happens that CL compile time also happens to be a full lisp system, so you -could- read at compile time and manipulate whatever you read. 01:41:22 *drewc* pastes that last part of haskell code he looked at : 01:41:26 ; callCC f = Cont $ \k -> runCont (f (\a -> Cont $ \_ -> k a)) k 01:41:26 but you know, it'll try to read when you compile :) 01:41:52 sykopomp: you can have (defmacro foo (string) (if (string= foo "bar") ... ..)) 01:42:14 and string can be some symbol containing runtime data 01:42:19 in Haskell this must not happen 01:42:28 bitonic: you are confused. 01:42:40 bitonic: no, foo must be bound at compile time. 01:42:42 -!- kanru` [~kanru@36-226-34-183.dynamic-ip.hinet.net] has quit [Ping timeout: 264 seconds] 01:42:45 Ralith: that's likely :) 01:42:56 foo is bound at compile time, because it is the macro you are defining, for starters :P 01:42:58 sykopomp: I'm talking about `string', not `foo' 01:43:02 minion: tell bitonic about PCL 01:43:03 bitonic: direct your attention towards PCL: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 01:43:55 ok wait, let me give a concrete example 01:47:39 dubz [~d0ng@ec2-23-23-243-24.compute-1.amazonaws.com] has joined #lisp 01:51:22 uhm. I was trying (foo (foo (read-line *query-io*))) with (defun bar () (foo (read-line *query-io*))), but it does not ask me for a line 01:51:31 sorry, there is one foo too much 01:52:44 so I guess I am confused. why does that happen? 01:53:09 -!- k0001 [~k0001@host76.190-228-122.telecom.net.ar] has quit [Ping timeout: 250 seconds] 01:55:15 ah. right. 01:55:45 at that moment that (read-line *query-io*) is just a list, obviously 01:56:26 *bitonic* should just go to sleep 01:58:49 k0001 [~k0001@host76.190-228-122.telecom.net.ar] has joined #lisp 01:59:49 I had completely misunderstood macros, from the few elisp and schemes I had seen. I think I had fexprs in mind, more or less.b 01:59:56 -!- iocor [~textual@unaffiliated/iocor] has quit [Quit: Computer has gone to sleep.] 02:00:13 leo2007 [~leo@123.116.127.245] has joined #lisp 02:05:24 so the claims that macros in some way are a substitute for lazyness are completely bogus, right? 02:07:12 organixpear [HydraIRC@96-42-14-128.dhcp.fdul.wi.charter.com] has joined #lisp 02:08:41 for example here: http://stackoverflow.com/questions/7046950/lazy-evaluation-vs-macros "Lazy evaluation can substitute for certain uses of macros (those which delay evaluation to create control constructs) but the converse isn't really true.". Does he mean delaying evaluation by having macros that automate the wrapping/unwrapping in thunks, or does he refer to the fact that macros get their arguments "as they are", without eval 02:08:41 them? because in the latter case, it does not make much sense 02:08:49 (sorry for the poor terminology) 02:08:52 -!- Khisanth [~Khisanth@50.14.244.111] has quit [Ping timeout: 248 seconds] 02:20:10 meiji11 [~user@96.51.60.120] has joined #lisp 02:20:30 -!- Sorella [~quildreen@201-58-224-9.user.veloxzone.com.br] has quit [Ping timeout: 264 seconds] 02:21:16 hey. is there an idiomatic way of doing dynamic programming in lisp, without involving arrays? 02:21:26 arrays seem unlispy. 02:23:38 Khisanth [~Khisanth@50.14.244.111] has joined #lisp 02:24:14 meiji11: http://en.wikipedia.org/wiki/Common_Lisp#Dynamic what is it that you are asking exactly? 02:24:31 getoffmalawn [~getoffmal@14-202-66-99.static.tpgi.com.au] has joined #lisp 02:24:42 -!- leo2007 [~leo@123.116.127.245] has quit [Remote host closed the connection] 02:25:35 drewc: I'm wondering if there's a good functional way to go about implementing algorithms that use the dynamic programming technique in lisp. 02:26:28 dynamic programming is a method you use to design algorithms.. 02:27:01 leo2007 [~leo@123.116.127.245] has joined #lisp 02:27:45 it has nothing to do with 'computer programming' as such 02:27:56 the name is a weird relic from the '50s or something. 02:28:19 or you probably know all of that and I just phrased my question poorly :P 02:30:17 what algo do you wish to implement, and is there subproblems you can break it down to? 02:30:54 well, that's the thing. I have an algorithm to solve the problem, my question, more generally, is how to go about writing algorithms of that flavor in lisp. 02:31:04 I have a general template that I use to write dp algorithms.. 02:31:10 which I tried to abstract away into a macro. 02:31:42 which worked, but it didn't save me any typing, or provide me with any further syntactic control or convenience, so.. what was the point? heh.. 02:31:52 I'm wondering if there's a way that one could make it even more compact. 02:32:14 my current approach is to write the objective function as a memoizing recursive function, and iterate over whatever sequences I need in a loop. 02:32:30 I wonder if I could eliminate the loop. 02:32:50 because this approach works for a wide family of dp algorithms, and I use dynamic programming a lot.. 02:34:32 so, is that the question? how to eliminate a LOOP? Perhaps I am confused about your question... 02:34:49 not quite, no. you understand what dynamic programming is, right? 02:34:59 you mentioned overlapping subproblems, so.. it sounds as though you do. 02:35:19 you have an objective function that gives the optimal solution in terms of the optimal solutions of subproblems.. 02:35:25 yes, I am aware what dynamic programming is defined as. 02:35:30 and you build those optimal solutions from the ground up. 02:35:31 right. 02:35:54 but, the questions "is there an idiomatic way of doing dynamic programming in lisp, 02:36:05 the standard way to approach that, in the literature, is with an array. 02:36:08 right. 02:36:13 it's hard to explain. 02:36:40 and ... " good functional way to go about 02:36:49 the way I approach dp, in lisp, is very imperative, as it's taught in the literature. 02:36:53 not very functional. 02:37:02 heh, c/p is not working correctly :) 02:37:27 so, what literature have you read? 02:37:44 a number of algorithms texts, I have tons of course and lecture notes.. 02:37:55 -!- smithzv_ [~smithzv@99-71-111-56.lightspeed.whtnil.sbcglobal.net] has quit [Quit: leaving] 02:38:16 the pseudocode invariably involves imperative loops, and arrays.. they never deviate from that. 02:38:19 we are talking about a common lisp course that you are taking? 02:38:25 no, I'm taking about algorithms courses. 02:38:40 general CS theory, they don't touch on programming languages or implementation techniques much.. 02:38:53 regardless, they take a ruthlessly imperative view of computation. 02:39:40 talking about * 02:39:47 so, you want a functional solution to your imperative solution? 02:40:17 .. yeah, I guess the solution is imperative. :P 02:41:22 I don't know, I suppose I'm anxious over whether my solution is suitable. 02:41:58 minion: lisppaste 02:41:58 lisppaste: lisppaste is an IRC bot that runs under the nickname "lisppaste" and can be used (only for the #lisp IRC channel!) at http://paste.lisp.org/new/lisp - or http://paste.lisp.org/ for other destinations 02:42:22 it's in clojure, not common lisp.. 02:42:40 #clojure exists 02:42:54 right. 02:43:04 eh, it's a general lisp question. 02:43:12 you can memoize functions in common lisp, right? 02:43:25 or create self-memoizing functions, I should say 02:44:15 sometimes you find that a lot of classical problems can be elegantly translated into functional terms.. the haskell community seems especially fond of those. 02:44:20 I was wondering if the same was true of dynamic programming. 02:46:44 http://www.tfeb.org/lisp/hax.html#MEMOIZE has examples of memoization 02:49:53 oh wow, I'm an idiot. use reduce.. 02:50:04 sorry for the volume of type. 02:50:08 -!- fold [~fold@71-8-117-85.dhcp.ftwo.tx.charter.com] has quit [Ping timeout: 245 seconds] 02:52:30 not a problem, glad I could "help" 02:57:45 -!- _tca [~tca@thewired.me] has quit [Quit: Lost terminal] 02:57:52 -!- ravster [~user@184.175.28.107] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 02:59:31 -!- bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has quit [Remote host closed the connection] 03:03:16 -!- benny [~user@i577A881D.versanet.de] has quit [Ping timeout: 248 seconds] 03:04:29 -!- kuzary [~who@gateway/tor-sasl/kuzary] has quit [Quit: return 0;] 03:05:11 _tca [~tca@thewired.me] has joined #lisp 03:05:37 lebro [~monx@ool-18bab6ce.dyn.optonline.net] has joined #lisp 03:08:36 Yuuhi`` [benni@p5483BE55.dip.t-dialin.net] has joined #lisp 03:08:48 theos [~theos@unaffiliated/theos] has joined #lisp 03:10:18 -!- Yuuhi` [benni@p5483A99C.dip.t-dialin.net] has quit [Ping timeout: 264 seconds] 03:10:55 emma [~em@unaffiliated/emma] has joined #lisp 03:10:59 -!- em [~em@unaffiliated/emma] has quit [Read error: Connection reset by peer] 03:34:57 wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has joined #lisp 03:41:12 chu [~chu@unaffiliated/chu] has joined #lisp 03:46:00 -!- leo2007 [~leo@123.116.127.245] has quit [Ping timeout: 246 seconds] 03:51:38 - 03:51:42 -!- organixpear [HydraIRC@96-42-14-128.dhcp.fdul.wi.charter.com] has quit [Quit: HydraIRC -> http://www.hydrairc.com <- Go on, try it!] 03:58:44 -!- homie [~levgue@xdsl-78-35-160-115.netcologne.de] has quit [Ping timeout: 248 seconds] 04:04:13 teggi [~teggi@113.172.61.61] has joined #lisp 04:07:33 htroyack [htroyack@189-106-82-25.user.veloxzone.com.br] has joined #lisp 04:10:15 -!- htroyack [htroyack@189-106-82-25.user.veloxzone.com.br] has quit [Client Quit] 04:14:51 Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has joined #lisp 04:18:28 -!- k0001 [~k0001@host76.190-228-122.telecom.net.ar] has quit [Ping timeout: 248 seconds] 04:24:42 sabalaba [~Adium@199-188-193-145.PUBLIC.monkeybrains.net] has joined #lisp 04:26:30 -!- sabalaba [~Adium@199-188-193-145.PUBLIC.monkeybrains.net] has quit [Client Quit] 04:27:19 sabalaba [~Adium@199-188-193-145.PUBLIC.monkeybrains.net] has joined #lisp 04:32:32 -!- pnpuff [~pnpuff@unaffiliated/pnpuff] has quit [Quit: leaving] 04:34:36 -!- Vutral [~ss@mirbsd/special/Vutral] has quit [Ping timeout: 248 seconds] 04:36:27 -!- ThomasH [~user@pdpc/supporter/professional/thomash] has left #lisp 04:38:54 -!- gurrag [~gurrag@unaffiliated/gurrag] has quit [Ping timeout: 265 seconds] 04:40:04 pnpuff [~pnpuff@unaffiliated/pnpuff] has joined #lisp 04:43:39 -!- xaxisx [~xaxisx@184.175.54.34] has left #lisp 04:44:32 xaxisx [~joey@67.217.170.130] has joined #lisp 04:44:45 Vutral [ss@mirbsd/special/Vutral] has joined #lisp 04:47:06 -!- pnpuff [~pnpuff@unaffiliated/pnpuff] has quit [Ping timeout: 265 seconds] 04:48:39 lcc [~user@unaffiliated/lcc] has joined #lisp 04:49:23 leo2007 [~leo@123.114.34.241] has joined #lisp 04:53:02 brendyn [brendyn@2a01:7e00::f03c:91ff:fedf:65b4] has joined #lisp 05:00:55 -!- sabalaba [~Adium@199-188-193-145.PUBLIC.monkeybrains.net] has quit [Quit: Leaving.] 05:01:38 sabalaba [~Adium@nat-sonicnet.noisebridge.net] has joined #lisp 05:04:58 -!- emma is now known as em 05:13:22 -!- lobo_d_b [~lobo_d_b@unaffiliated/juan--d--b/x-561435] has quit [Read error: Connection reset by peer] 05:13:40 lobo_d_b [~lobo_d_b@181.132.160.27] has joined #lisp 05:13:40 -!- lobo_d_b [~lobo_d_b@181.132.160.27] has quit [Changing host] 05:13:41 lobo_d_b [~lobo_d_b@unaffiliated/juan--d--b/x-561435] has joined #lisp 05:18:28 Spion [~spion@unaffiliated/spion] has joined #lisp 05:19:40 -!- Myk267 [~myk@71.149.250.130] has left #lisp 05:21:42 -!- Spion_ [~spion@unaffiliated/spion] has quit [Ping timeout: 264 seconds] 05:22:34 -!- rbarraud [~rbarraud@125-237-76-181.jetstream.xtra.co.nz] has quit [Quit: Konversation terminated!] 05:22:50 rbarraud [~rbarraud@125-237-76-181.jetstream.xtra.co.nz] has joined #lisp 05:24:00 sylecn [~sylecn@49.79.104.241] has joined #lisp 05:24:41 -!- DDR [~chatzilla@d172-218-2-5.bchsia.telus.net] has quit [Ping timeout: 246 seconds] 05:27:47 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 05:32:38 -!- kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has quit [Ping timeout: 245 seconds] 05:32:39 -!- sawjig [~sawjig@gateway/tor-sasl/sawjig] has quit [Remote host closed the connection] 05:35:14 sawjig [~sawjig@gateway/tor-sasl/sawjig] has joined #lisp 05:36:23 I'm trying to test my macro writing skills and choose to implement python ** function call in lisp. in python func(**dict) expands key value pairs in dict to key parameters of a function call. Here is my attempt that does not work: http://paste.lisp.org/display/130434. expansion fails, but I can't see the problem. 05:38:15 ie, there's no need for a macro here. 05:38:59 (defun python-funcall-**-wrong (fun a-list) (apply fun (alexandria:alist-plist a-list))) 05:39:14 (let ((dict '(:one 1 :two 2))) (python-funcall-**-wrong (function f) dict)) 05:40:52 Kron_ [~Kron@2.49.82.19] has joined #lisp 05:40:57 stardiviner [~stardivin@218.74.177.23] has joined #lisp 05:41:01 DDR [~chatzilla@d172-218-2-5.bchsia.telus.net] has joined #lisp 05:42:19 impulse [~impulse@bas3-toronto48-1176313909.dsl.bell.ca] has joined #lisp 05:47:31 til `apply' support all the argument forms in a lambda list. I thought it only support required arguments. thanks pjb. 05:48:28 on the other hand, do you known why the expansion fail? 05:48:30 gravicappa [~gravicapp@ppp91-77-160-249.pppoe.mtu-net.ru] has joined #lisp 05:52:45 agumonkey [~agu@85.158.70.86.rev.sfr.net] has joined #lisp 05:52:51 teggi_ [~teggi@113.172.38.202] has joined #lisp 05:53:36 -!- teggi [~teggi@113.172.61.61] has quit [Ping timeout: 244 seconds] 05:55:11 k0001 [~k0001@host76.190-228-122.telecom.net.ar] has joined #lisp 05:58:13 sylecn: it tells you why in the error message! The value ACONS is not of type LIST 05:59:28 clhs macroexpand 05:59:28 http://www.lispworks.com/reference/HyperSpec/Body/f_mexp_.htm 06:00:14 clhs macroexpand-1 06:00:14 http://www.lispworks.com/reference/HyperSpec/Body/f_mexp_.htm 06:01:22 I used macroexpand-1 to check what's wrong. but I thought the whole ACONS call should be evaluated by ,#(break-alist v) part, while infact it's not. 06:02:41 typo above. ,@(break-alist v) (it's typed correct in the paste) 06:02:59 what is the value of v? 06:03:21 it's in a let binding outside the backquote of a defmacro 06:03:45 that should be evaluated at compile time, right? 06:04:18 -!- chu [~chu@unaffiliated/chu] has quit [Ping timeout: 245 seconds] 06:04:36 sylecn: break-alist works with an a-list, some data, which is known only at run-time. Therefore it cannot produce anything useful for the macro, which needs to know the arguments at compilation time. 06:06:25 m7w [~chatzilla@80.249.86.64] has joined #lisp 06:07:45 -!- mcspiff [~user@CPE78cd8ec16698-CM78cd8ec16695.cpe.net.cable.rogers.com] has quit [Read error: Operation timed out] 06:08:26 *sylecn* experimenting to understand that 06:08:34 sylecn: try PRINTing that value of v at compile time.. or for that matter remove the let completely because it does not do anything, and print the value of alst 06:08:44 clhs PRINT 06:08:45 Sorry, I couldn't find anything for PRINT. 06:09:00 Alzheimer. 06:09:03 -!- EyesIsMine [~Eyes@WiseOS/Founder/EyesIsMine] has quit [Read error: Connection reset by peer] 06:09:19 heh ... http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_pr.htm 06:11:12 what is making that error happen is that your use of LOOP expects a list, not a symbol 06:12:18 If you write: (defmacro python-funcall-**-wrong (func alst) `(funcall ,func ,@(print (mapcar (lambda (x) `(quote ,x)) (break-alist alst))))) 06:13:11 But since you want to pass a run-time variable to the macro call, ie. an expression instead of a literal list, then you cannot do the work at macroexpansion time, therefore you don't need a macro. 06:17:24 chu [~chu@unaffiliated/chu] has joined #lisp 06:26:52 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 06:29:22 benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has joined #lisp 06:30:09 sdemarre [~serge@91.176.86.181] has joined #lisp 06:30:44 -!- wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has quit [Quit: leaving] 06:32:18 -!- sabalaba [~Adium@nat-sonicnet.noisebridge.net] has quit [Quit: Leaving.] 06:36:03 foreignFunction [~niksaak@94.27.88.134] has joined #lisp 06:36:17 (hello 'world) 06:36:38 I, as allways, have a question. 06:36:44 angavrilov [~angavrilo@217.71.227.190] has joined #lisp 06:39:36 How #'open function works? Does it load entire file in memory? 06:40:13 No, it doesn't. 06:40:36 clhs open 06:40:36 http://www.lispworks.com/reference/HyperSpec/Body/f_open.htm 06:41:21 "open creates, opens, and returns a file stream that is connected to the file specified by filespec. Filespec is the name of the file to be opened. If the filespec designator is a stream, that stream is not closed first or otherwise affected." 06:44:02 So it is safe to copy a N GiB file just with (with-open-file :direction :input ...) nested in another (with-open-file :direction :output ...)? 06:45:21 The two with-open-file forms aren't going to do anything to effect the copying. 06:45:47 The amount of memory taken up by copying data from an input stream to an output stream is going to be determined by what else you put in there. 06:47:28 robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has joined #lisp 06:47:36 -!- DDR [~chatzilla@d172-218-2-5.bchsia.telus.net] has quit [Quit: for the love of god this is not safe for work] 06:47:59 No, of course I not mean just with-open-file forms. ^___^ 06:49:40 It's "safe" in the sense that the parts that could make it safe or unsafe aren't part of your question. 06:50:33 zodiac1111 [~zodiac111@101.68.104.132] has joined #lisp 06:53:01 -!- benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has quit [Ping timeout: 244 seconds] 06:53:43 Ahha~ Then is it safe to copy N GiB file with two (with-open-file) and (copy-stream)? 06:56:22 Yes. 06:56:38 Assuming you mean the copy-stream function in cl-fad. 06:56:41 woops, it seems copy-stream is not part of the standard, my mistake 06:57:13 Well, I mean, it's safe for your memory, unless you're very badly memory constrained. 06:57:17 It may fill up your filesystem. 06:57:32 Or have other deleterious effects. 07:00:35 benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has joined #lisp 07:03:01 -!- kennyd [~kennyd@93-138-98-171.adsl.net.t-com.hr] has quit [Read error: Connection reset by peer] 07:04:41 kanru [~kanru@36-226-34-183.dynamic-ip.hinet.net] has joined #lisp 07:05:24 fantazo [~fantazo@91.119.101.47] has joined #lisp 07:06:19 kennyd [~kennyd@93-138-98-171.adsl.net.t-com.hr] has joined #lisp 07:06:56 kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has joined #lisp 07:07:09 insomnia1alt [~milan@port-92-204-9-67.dynamic.qsc.de] has joined #lisp 07:07:09 -!- insomnia1alt [~milan@port-92-204-9-67.dynamic.qsc.de] has quit [Changing host] 07:07:09 insomnia1alt [~milan@unaffiliated/iammilan] has joined #lisp 07:10:40 -!- insomniaSalt [~milan@unaffiliated/iammilan] has quit [Ping timeout: 265 seconds] 07:10:40 -!- insomnia1alt is now known as insomniaSalt 07:13:19 moah [~moah@dslb-188-109-174-053.pools.arcor-ip.net] has joined #lisp 07:13:20 -!- benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has quit [Read error: Connection reset by peer] 07:16:37 mrSpec [~Spec@net-93-159-145-154.connected.pl] has joined #lisp 07:16:37 -!- mrSpec [~Spec@net-93-159-145-154.connected.pl] has quit [Changing host] 07:16:37 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:18:00 -!- kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 07:18:05 kmcorbett1 [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has joined #lisp 07:20:36 foreignFunction: You can use com.informatimago.common-lisp.cesarum.stream:copy-stream or com.informatimago.common-lisp.cesarum.file:copy-file 07:20:51 benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has joined #lisp 07:21:15 foreignFunction: I can suggest looking at the source for CL-FAD:COPY-STREAM ... it is pretty obvious what it does. 07:21:56 Or https://gitorious.org/com-informatimago/com-informatimago/blobs/master/common-lisp/cesarum/stream.lisp#line98 07:21:57 foreignFunction: or COPY-FILE, which does all the WITH-OPEN-FILE things that need to be done 07:22:33 I should add a parameter for thebuffer size, 4K is way too low. For big files, you want a buffer as big as the track. 07:22:40 or cylinder even. 07:23:29 yeah, or just use pjb's stuff, because he is here to support it! :D 07:25:13 pnpuff [~pnpuff@unaffiliated/pnpuff] has joined #lisp 07:25:21 -!- pnpuff [~pnpuff@unaffiliated/pnpuff] has left #lisp 07:25:41 pnpuff [~pnpuff@unaffiliated/pnpuff] has joined #lisp 07:26:05 -!- benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has quit [Ping timeout: 244 seconds] 07:28:30 Oh, thanx ^___^ 07:28:31 hello, is there some canonical way to convert a 2d array into a vector? i.e. #2a((1 2)(3 4)) => #(1 2 3 4)? 07:37:16 moah: (make-array (array-total-size 2darray) :element-type (array-element-type 2darray :displaced-to 2darray)) 07:41:54 benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has joined #lisp 07:47:32 pjb: that still returns the original 2d array. 07:48:21 -!- Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has quit [Ping timeout: 265 seconds] 07:49:02 (make-array (array-total-size 2darray) :element-type 07:49:03 (array-element-type 2darray) :displaced-to 2darray) 07:50:14 -!- meiji11 [~user@96.51.60.120] has quit [Remote host closed the connection] 07:50:15 aehm, sorry, my wrong, it does return a vector. 07:50:30 -!- benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has quit [Ping timeout: 264 seconds] 07:50:38 thanks. 07:50:45 Note the slots of the vector are the slots of the 2darray. 07:51:31 But if you need a copy you can easily wrap it into a copy-seq. 07:53:12 attila_lendvai [~attila_le@176.222.152.103] has joined #lisp 07:53:12 -!- attila_lendvai [~attila_le@176.222.152.103] has quit [Changing host] 07:53:13 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 07:54:02 benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has joined #lisp 08:03:03 -!- noss [~cs@110.35.136.223] has quit [Ping timeout: 245 seconds] 08:03:21 -!- dan64 [~dan64@dannyadam.com] has quit [Excess Flood] 08:06:33 piko [~piko@ip4-83-240-108-205.cust.nbox.cz] has joined #lisp 08:06:51 -!- piko [~piko@ip4-83-240-108-205.cust.nbox.cz] has quit [Client Quit] 08:13:06 Jeanne-Kamikaze [~Jeanne-Ka@235.177.223.87.dynamic.jazztel.es] has joined #lisp 08:14:32 Is it possible to make tail-calling lambda in cl? 08:18:53 -!- sylecn [~sylecn@49.79.104.241] has quit [Read error: Connection reset by peer] 08:24:30 sabalaba [~Adium@108-252-136-195.lightspeed.sntcca.sbcglobal.net] has joined #lisp 08:24:49 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 08:26:18 dan64 [~dan64@dannyadam.com] has joined #lisp 08:26:18 -!- dan64 [~dan64@dannyadam.com] has quit [Excess Flood] 08:29:38 -!- getoffmalawn [~getoffmal@14-202-66-99.static.tpgi.com.au] has quit [Ping timeout: 244 seconds] 08:32:31 noss [~cs@110.35.136.223] has joined #lisp 08:33:47 eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has joined #lisp 08:39:26 ice [~ice@222.130.135.204] has joined #lisp 08:42:41 poisonarms [~poisonarm@cpe-70-116-22-88.austin.res.rr.com] has joined #lisp 08:44:06 -!- benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has quit [Ping timeout: 244 seconds] 08:46:07 yakov [~yakov@37-144-36-142.broadband.corbina.ru] has joined #lisp 08:46:39 ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 08:49:35 francogrex [~user@109.130.31.15] has joined #lisp 08:51:40 -!- yakov [~yakov@37-144-36-142.broadband.corbina.ru] has quit [Ping timeout: 265 seconds] 08:51:41 benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has joined #lisp 08:52:33 dan64 [~dan64@dannyadam.com] has joined #lisp 08:52:33 -!- dan64 [~dan64@dannyadam.com] has quit [Excess Flood] 08:56:30 -!- sabalaba [~Adium@108-252-136-195.lightspeed.sntcca.sbcglobal.net] has quit [Quit: Leaving.] 08:57:59 -!- fantazo [~fantazo@91.119.101.47] has quit [Remote host closed the connection] 08:59:58 Houl [~Parmi@unaffiliated/houl] has joined #lisp 09:01:20 -!- kmcorbett1 [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has quit [Quit: Leaving.] 09:04:55 punee [~punee@set25-1-88-166-168-141.fbx.proxad.net] has joined #lisp 09:06:18 dan64 [~dan64@dannyadam.com] has joined #lisp 09:06:18 -!- dan64 [~dan64@dannyadam.com] has quit [Excess Flood] 09:07:31 foreignFunction: in any programming language, it's possible to make tail calls. 09:07:44 If it wasn't possible, no program would terminate! 09:08:06 No, I mean anonymous lambda. 09:08:19 Self-calling. 09:08:27 Yes. Search for y-combinator. 09:09:00 With a Y combinator, or just give it a name. Some people have macros that expand into (labels ((foo ...)) #'foo). 09:11:48 dan64 [~dan64@dannyadam.com] has joined #lisp 09:11:49 -!- dan64 [~dan64@dannyadam.com] has quit [Excess Flood] 09:13:11 -!- francogrex [~user@109.130.31.15] has quit [Remote host closed the connection] 09:13:24 -!- benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has quit [Ping timeout: 248 seconds] 09:17:04 benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has joined #lisp 09:18:51 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Ping timeout: 276 seconds] 09:19:32 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 09:22:46 NooBlack [~manfred@2001:da8:d800:101:ecfa:ea2:8fce:9785] has joined #lisp 09:28:36 EyesIsMine [~Eyes@WiseOS/Founder/EyesIsMine] has joined #lisp 09:28:36 slava [~slava@li32-38.members.linode.com] has joined #lisp 09:29:15 Blkt [~user@82.84.189.92] has joined #lisp 09:37:14 Alice3 [~Alice@cpc3-grim12-0-0-cust856.12-3.cable.virginmedia.com] has joined #lisp 09:39:26 stassats [~stassats@wikipedia/stassats] has joined #lisp 09:39:45 flanfl [~flanfl@cpc1-sgyl27-2-0-cust785.sgyl.cable.virginmedia.com] has joined #lisp 09:39:51 -!- stardiviner [~stardivin@218.74.177.23] has quit [Quit: my website: http://stardiviner.dyndns-blog.com/] 09:40:00 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 09:41:31 Joreji [~thomas@ip-213-135-245-76.static.luxdsl.pt.lu] has joined #lisp 09:43:00 -!- theos [~theos@unaffiliated/theos] has quit [Ping timeout: 244 seconds] 09:43:53 MoALTz [~no@host-92-8-235-248.as43234.net] has joined #lisp 09:46:51 -!- Ralith [~ralith@63.64.64.178] has quit [Quit: Lost terminal] 09:47:17 -!- jayne [~jayne@freenode/staff/jayne] has quit [Read error: Connection reset by peer] 09:47:25 Ralith [~ralith@63.64.64.178] has joined #lisp 09:49:45 -!- Ralith [~ralith@63.64.64.178] has quit [Client Quit] 09:49:59 Ralith [~ralith@63.64.64.178] has joined #lisp 09:50:26 -!- Ralith [~ralith@63.64.64.178] has quit [Client Quit] 09:51:04 dan64 [~dan64@dannyadam.com] has joined #lisp 09:51:05 -!- dan64 [~dan64@dannyadam.com] has quit [Excess Flood] 09:51:08 Ralith [~ralith@63.64.64.178] has joined #lisp 09:52:12 -!- djinni` [~djinni@li125-242.members.linode.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 09:52:21 jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has joined #lisp 09:52:38 jayne [~jayne@freenode/staff/jayne] has joined #lisp 09:54:20 -!- [SLB] [~slabua@unaffiliated/slabua] has quit [Quit: Close the world, Open the nExt] 09:55:26 djinni` [~djinni@li125-242.members.linode.com] has joined #lisp 10:01:36 -!- Oddity [~Oddity@unaffiliated/oddity] has quit [Ping timeout: 244 seconds] 10:05:01 stat_vi [~stat@dslb-094-218-224-144.pools.arcor-ip.net] has joined #lisp 10:09:07 -!- rbarraud [~rbarraud@125-237-76-181.jetstream.xtra.co.nz] has quit [Ping timeout: 240 seconds] 10:12:19 dan64 [~dan64@dannyadam.com] has joined #lisp 10:13:37 -!- Joreji [~thomas@ip-213-135-245-76.static.luxdsl.pt.lu] has quit [Ping timeout: 240 seconds] 10:15:39 benny [~user@i577A1954.versanet.de] has joined #lisp 10:26:07 -!- tensorpudding [~michael@99.148.200.61] has quit [Ping timeout: 240 seconds] 10:32:48 homie [~levgue@xdsl-78-35-156-228.netcologne.de] has joined #lisp 10:36:51 [SLB] [~slabua@host55-130-dynamic.59-82-r.retail.telecomitalia.it] has joined #lisp 10:36:51 -!- [SLB] [~slabua@host55-130-dynamic.59-82-r.retail.telecomitalia.it] has quit [Changing host] 10:36:51 [SLB] [~slabua@unaffiliated/slabua] has joined #lisp 10:42:28 Guthur [~user@host86-148-164-73.range86-148.btcentralplus.com] has joined #lisp 10:51:13 wbooze [~wbooze@xdsl-78-35-156-228.netcologne.de] has joined #lisp 10:53:27 -!- dmiles_afk [~dmiles@dsl-216-155-214-237.cascadeaccess.com] has quit [Read error: Connection reset by peer] 10:54:03 dmiles_afk [~dmiles@dsl-216-155-214-237.cascadeaccess.com] has joined #lisp 11:04:05 how do signed-byte 16 and integer relate to each other ? 11:04:30 <|3b|> signed-byte 16 is a subtype of integer? 11:06:00 33489 ?! 11:06:40 <|3b|> 33489 is an integer but not a signed-byte 16 11:06:45 but i get an error in closure that 33489 is not a signed-byte 11:06:55 <|3b|> it is a signed-byte 11:07:00 uh 11:07:15 <|3b|> signed-byte without a parameter is equivalent to integer 11:07:28 bah 11:08:30 -!- EyesIsMine [~Eyes@WiseOS/Founder/EyesIsMine] has quit [Ping timeout: 264 seconds] 11:10:04 <|3b|> by 'closure' do you mean the web browser? (does that even still work?) or do you mean clozure common lisp or clojure? 11:10:10 pnq [~nick@ACA2204B.ipt.aol.com] has joined #lisp 11:11:05 closure the clim browser 11:11:23 |3b|: well, homie gets an error, so the answer to whether it works is "no" 11:11:34 i found the patched version for iolib.trivial-sockets version 11:11:39 in github 11:11:46 and it works partially... 11:11:54 <|3b|> stassats: apparently so :) 11:12:05 and i see everywhere in the imagelib things unsigned-bytes.... 11:12:11 no mention of signed ones.... 11:12:29 i get the error when visiting planet.lisp.org 11:12:39 EyesIsMine [~Eyes@WiseOS/Founder/EyesIsMine] has joined #lisp 11:12:54 and i get another error that the index 1 is too big for the search google functionality 11:13:06 whenever i attempt to use that i mean.... 11:13:49 naeg [~naeg@194.208.239.170] has joined #lisp 11:16:05 -!- ur5us [~ur5us@121-98-128-74.bitstream.orcon.net.nz] has quit [Read error: Operation timed out] 11:16:15 <|3b|> well, the error as described sounds legitimate, no idea what causes it without more context 11:16:54 homie: since CL operator usually signal errors on invalid arguments, lisp programmers tend to ignore validation of parameters, and defer to the callee. This is not good to get meaningful error messages close to the problem. 11:17:07 francogrex [~user@109.130.31.15] has joined #lisp 11:17:07 homie: that is: you're a programmer, debug it! 11:17:10 |3b|: I suspect weak copy-paste skills. 11:19:04 -!- setmeaway [~setmeaway@118.45.149.206] has quit [Quit: Leaving] 11:19:29 -!- wbooze [~wbooze@xdsl-78-35-156-228.netcologne.de] has quit [Read error: Connection reset by peer] 11:21:48 -!- francogrex [~user@109.130.31.15] has quit [Client Quit] 11:22:17 francogrex [~user@109.130.31.15] has joined #lisp 11:24:41 jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has joined #lisp 11:30:18 -!- Kvaks [~quassel@15.123.34.95.customer.cdi.no] has quit [Ping timeout: 250 seconds] 11:36:21 setmeaway [~setmeaway@118.45.149.206] has joined #lisp 11:38:18 -!- naeg [~naeg@194.208.239.170] has quit [Quit: WeeChat 0.3.8] 11:40:47 -!- jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has quit [Quit: jcazevedo] 11:43:29 -!- teggi_ [~teggi@113.172.38.202] has quit [Remote host closed the connection] 11:48:09 iocor [~textual@unaffiliated/iocor] has joined #lisp 11:48:39 -!- leo2007 [~leo@123.114.34.241] has quit [Quit: rcirc on GNU Emacs 24.1.1] 11:57:36 -!- jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has quit [Ping timeout: 252 seconds] 11:59:12 DrForr [~jgoff@d149031.upc-d.chello.nl] has joined #lisp 11:59:29 Kvaks [~quassel@15.123.34.95.customer.cdi.no] has joined #lisp 11:59:33 -!- ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 255 seconds] 11:59:53 -!- foreignFunction [~niksaak@94.27.88.134] has left #lisp 12:00:16 -!- quazimodo [~quazimodo@c27-253-100-110.carlnfd2.nsw.optusnet.com.au] has quit [Remote host closed the connection] 12:08:53 -!- kennyd [~kennyd@93-138-98-171.adsl.net.t-com.hr] has quit [Ping timeout: 265 seconds] 12:09:50 jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has joined #lisp 12:12:48 kennyd [~kennyd@93-136-56-99.adsl.net.t-com.hr] has joined #lisp 12:12:57 -!- jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has quit [Client Quit] 12:13:28 -!- poisonarms [~poisonarm@cpe-70-116-22-88.austin.res.rr.com] has quit [Ping timeout: 245 seconds] 12:15:37 poisonarms [~poisonarm@cpe-70-116-22-88.austin.res.rr.com] has joined #lisp 12:18:55 -!- francogrex [~user@109.130.31.15] has quit [Quit: ERC Version 5.2 (IRC client for Emacs)] 12:24:06 -!- kcj [~casey@unaffiliated/kcj] has quit [Ping timeout: 264 seconds] 12:24:25 -!- NooBlack [~manfred@2001:da8:d800:101:ecfa:ea2:8fce:9785] has quit [Remote host closed the connection] 12:25:12 bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has joined #lisp 12:41:18 kuzary [~who@gateway/tor-sasl/kuzary] has joined #lisp 12:43:04 gurrag [~gurrag@bb-216-195-184-91.gwi.net] has joined #lisp 12:43:05 -!- gurrag [~gurrag@bb-216-195-184-91.gwi.net] has quit [Changing host] 12:43:05 gurrag [~gurrag@unaffiliated/gurrag] has joined #lisp 12:43:17 homie: what patched version ? 12:48:26 leo2007 [~leo@123.114.34.241] has joined #lisp 12:49:00 Sorella [~quildreen@201-58-224-9.user.veloxzone.com.br] has joined #lisp 12:49:00 -!- Sorella [~quildreen@201-58-224-9.user.veloxzone.com.br] has quit [Changing host] 12:49:00 Sorella [~quildreen@oftn/member/Sorella] has joined #lisp 12:51:23 -!- pnpuff [~pnpuff@unaffiliated/pnpuff] has quit [Quit: Lost terminal] 12:52:09 theos [~theos@unaffiliated/theos] has joined #lisp 12:54:43 -!- Guthur [~user@host86-148-164-73.range86-148.btcentralplus.com] has quit [Remote host closed the connection] 12:56:54 -!- gravicappa [~gravicapp@ppp91-77-160-249.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 13:01:20 MoALTz_ [~no@host-92-2-112-60.as43234.net] has joined #lisp 13:02:08 -!- stat_vi [~stat@dslb-094-218-224-144.pools.arcor-ip.net] has quit [Quit: leaving] 13:02:57 -!- MoALTz [~no@host-92-8-235-248.as43234.net] has quit [Ping timeout: 244 seconds] 13:06:08 jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has joined #lisp 13:07:05 -!- gurrag [~gurrag@unaffiliated/gurrag] has quit [Ping timeout: 255 seconds] 13:08:09 -!- [SLB] [~slabua@unaffiliated/slabua] has quit [Quit: Close the world, Open the nExt] 13:12:38 [SLB] [~slabua@host55-130-dynamic.59-82-r.retail.telecomitalia.it] has joined #lisp 13:12:38 -!- [SLB] [~slabua@host55-130-dynamic.59-82-r.retail.telecomitalia.it] has quit [Changing host] 13:12:38 [SLB] [~slabua@unaffiliated/slabua] has joined #lisp 13:13:09 -!- ice [~ice@222.130.135.204] has quit [Ping timeout: 265 seconds] 13:14:10 -!- Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has quit [Quit: trivial-irc-0.0.3] 13:14:28 Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has joined #lisp 13:15:05 ice [~ice@222.130.135.204] has joined #lisp 13:17:46 puchacz [~puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 13:26:45 gko [~user@114-34-168-13.HINET-IP.hinet.net] has joined #lisp 13:26:54 gurrag [~gurrag@bb-216-195-184-91.gwi.net] has joined #lisp 13:26:54 -!- gurrag [~gurrag@bb-216-195-184-91.gwi.net] has quit [Changing host] 13:26:54 gurrag [~gurrag@unaffiliated/gurrag] has joined #lisp 13:27:26 -!- ice [~ice@222.130.135.204] has quit [Ping timeout: 252 seconds] 13:29:14 ice [~ice@222.130.135.204] has joined #lisp 13:33:27 -!- gko [~user@114-34-168-13.HINET-IP.hinet.net] has quit [Ping timeout: 265 seconds] 13:35:13 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 13:37:56 -!- lobo_d_b [~lobo_d_b@unaffiliated/juan--d--b/x-561435] has quit [Quit: leaving] 13:41:24 -!- atsidi [~nkraft@ip72-192-253-246.dc.dc.cox.net] has quit [Quit: Leaving on a jet plane...] 13:42:23 -!- chu [~chu@unaffiliated/chu] has quit [Quit: leaving] 13:54:07 zeissoctopus [~zeissocto@183178133120.ctinets.com] has joined #lisp 13:55:26 gko [~user@114-34-168-13.HINET-IP.hinet.net] has joined #lisp 13:55:48 gravicappa [~gravicapp@ppp91-77-160-249.pppoe.mtu-net.ru] has joined #lisp 13:56:01 fantazo [~fantazo@213.129.230.10] has joined #lisp 14:01:20 -!- jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has quit [Ping timeout: 244 seconds] 14:01:28 Is there any distributed OS which has built-in robustness against individual hardware failure in existence (meaning that one can install it and see it working)? 14:01:48 jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has joined #lisp 14:02:51 IBM's stuff. SUN's maybe. 14:03:23 pkhuong: you mean their mainframes? 14:03:28 Yes. 14:03:44 pkhuong: does that also work inter mainframe? 14:04:32 KingsKnighted [~quassel@c-174-52-149-13.hsd1.ut.comcast.net] has joined #lisp 14:04:44 No clue. I assume they must deal with hardware failure in BlueGene and all the other fancy clusters. Or, you can do it like google and minimise shared state. 14:04:52 lobo_d_b [~lobo_d_b@unaffiliated/juan--d--b/x-561435] has joined #lisp 14:06:08 Well, that's always a smart thing to do. 14:07:43 Why do you want this at an OS level? 14:08:02 Is it so that you can try to ignore it at the application level? 14:08:16 iLogical [~iLogical@unaffiliated/ilogical] has joined #lisp 14:13:21 Zhivago: well, it's that or basically replacing the 'shell' with something which doesn't talk directly to the OS. 14:13:57 fold [~fold@71-8-117-85.dhcp.ftwo.tx.charter.com] has joined #lisp 14:14:01 -!- gko [~user@114-34-168-13.HINET-IP.hinet.net] has quit [Read error: Connection reset by peer] 14:14:05 Zhivago: if you run some command, you ideally just want the command to change the system state to the desired state, you don't want to hear excuses. 14:14:25 Zhivago: things like "oh, yeah, the harddisk just died", "there was no power", whatever. 14:15:19 Zhivago: there exist practical solutions for all of those already, but having a single system which already integrates all of those properties would be nice. 14:16:55 kushal [~kdas@114.143.164.80] has joined #lisp 14:16:55 -!- kushal [~kdas@114.143.164.80] has quit [Changing host] 14:16:55 kushal [~kdas@fedora/kushal] has joined #lisp 14:18:17 naeg [~naeg@194.208.239.170] has joined #lisp 14:18:42 -!- jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has quit [Ping timeout: 264 seconds] 14:19:14 jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has joined #lisp 14:19:37 *maxm* vaguely remembers some nanokernel based thing, where they were demoing it with a calculation going on, then plugged the power cord out, then plugged it back in and it resumed where it was last checkpointed 14:19:47 from around 10 years or so ago 14:22:41 -!- eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has quit [Quit: Leaving] 14:22:49 fasta: On a practical level, both IBM and HP offer fault tolerant solutions, where you have 2 identically setup machines. They have private ping line between them. When the heartbeat detects that 1 "primary" is down, 2nd machine makes itself primary, takes over teh IP addresses, and disks of the old machine, and comes back up in 20-30 seconds.. there is some scsi trickery with making the shared disk array switch 14:22:54 -!- gurrag [~gurrag@unaffiliated/gurrag] has quit [Ping timeout: 264 seconds] 14:23:41 maxm: that doesn't sound high-tech. 14:23:42 we tested it several times (with IBM solution) and it worked pretty well in simulation, did not really tested in real life. This was implemented by several airlines after NYC blackout 14:24:01 maxm: the nanokernel thing is sort of interesting. 14:25:06 fasta: it depends on you needs. If you have hobby/research needs, probably nanokernel/custom stuff. If you doing it for customer, go with IBM/HP, but it will cost good money.. Or Microsoft also has very similar solution, but I forgot what its called 14:27:42 -!- pnq [~nick@ACA2204B.ipt.aol.com] has quit [Ping timeout: 264 seconds] 14:27:49 fasta: use this google query, the result is top link "AIX ibm high availability planning" 14:28:02 should be PDF with a planning guide explaining the system I described above 14:31:25 IMHO solutions like above will tend to be eliminated by using Amazon, but then how much you trust amazon? Ie what if there is 3 day blackout in whenever US state their farm is located 14:32:18 maxm: the persistent OS sounds like CoyoteOS the other OS Shapiro worked on before. Very old stuff. 14:32:35 fasta: the closest you can see for truly fault-tolerant would be probably NonStop 14:33:07 pkhuong: yes I remember this was around late 90s early 2000 could be +/- 5 years. I remember they were running custom nano-kernel, with linux on top 14:35:51 jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has joined #lisp 14:36:39 -!- zodiac1111 [~zodiac111@101.68.104.132] has quit [Read error: Connection reset by peer] 14:39:29 -!- lebro [~monx@ool-18bab6ce.dyn.optonline.net] has quit [Read error: Connection reset by peer] 14:39:48 Ok, apparently a nano kernel is techno babble. 14:40:18 here found the link, it was indeed Shapiro I was off by a decade :-) http://www.cis.upenn.edu/~KeyKOS/NanoKernel/NanoKernel.html 14:42:09 Where does Google store its MySQL databases such that it doesn't require a lot of maintenance? 14:42:22 fasta: in the cloud 14:42:25 fasta: not necessarily. L4 is IMHO a good example. Just take into account that Mach really gave bad rep to whole area, and Tanenbaum vs. Torvalds is, at least in my opinion, not really about micro/monolithic kernel 14:43:31 p_l|backup: a microkernel has a definition, but a nano kernel does not. 14:44:08 a thousand times smaller than a microkernel? 14:44:19 p_l|backup: I would say that a nano kernel is a microkernel. 14:44:37 Why would a microkernel have anything in it, which isn't needed? 14:45:08 incidentally, what does this have to do with lisp? 14:45:21 stassats: nothing 14:45:23 Genera Reloaded! 14:45:51 fasta: probably because micro kernels tried to do too many things 14:45:57 including security etc. 14:46:12 nanokernel farmed that out 14:46:18 -!- Blkt [~user@82.84.189.92] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 14:46:19 gurrag [~gurrag@unaffiliated/gurrag] has joined #lisp 14:46:49 r_r_r [~chatzilla@77.127.28.70] has joined #lisp 14:46:51 AFAIK, you don't even need a MMU to build a secure machine these days. 14:47:06 It's basically just wasting hardware/energy. 14:47:33 fasta: MMU reminds me of Mach ;P 14:47:35 yes, let's throw address translation away. 14:47:50 When do we ever get rid of the BIOS too? 14:47:52 -!- CrazyEddy [~CrazyEddy@wrongplanet/CrazyEddy] has quit [Ping timeout: 244 seconds] 14:47:54 there's #lispcafe, if you're not going to discuss CL 14:48:23 Starting the BIOS takes longer than starting the OS. 14:49:06 see fasta your "distributed OS" goal is kind of broad. Is it "distributed OS, with custom programming (ie you have to change your programs)"? Thats google/cloud. Do you mean distributed OS, transparent to programs? Then its IBM/HP stuff, or single image linux cluster like http://en.wikipedia.org/wiki/LinuxPMI 14:49:54 fasta: bios is on it's deathbed, UEFI is the replacement 14:50:12 net4all: yeah, but that also has negative sides to it. 14:50:22 linux clusters are kind of nice.. :) 14:50:35 fasta: agreed, it's far from perfect 14:51:26 stassats: it would be possible to abuse virtual memory to emulate a huge shared SBCL heap on multiple machines ;) I'm convinced that's an awful idea as well. 14:52:18 sharing memory is fun :) 14:52:33 until a machine goes down :( 14:53:15 Guthur [~user@host86-148-164-73.range86-148.btcentralplus.com] has joined #lisp 14:53:37 net4all: that's what stuff like NonStop is for. AFAIK outside of operator misconfiguration, they only go down if you forget to refill the diesel tanks in datacenter 14:58:49 -!- r_r_r [~chatzilla@77.127.28.70] has quit [Quit: ChatZilla 0.9.88.2 [Firefox 13.0.1/20120614114901]] 15:01:21 maxm: Does linuxpmi still even exist? Their website doesn't. 15:02:08 -!- iocor [~textual@unaffiliated/iocor] has quit [Quit: Textual IRC Client: http://www.textualapp.com/] 15:02:14 fasta: I just googled them, have not used any of them personally, just kind of vague memories of reading about that stuff on slashdot.. (damn I'm old) 15:02:54 maxm: I do get the impression that its better to put this logic inside the application. 15:03:01 maxm: or rather inside libraries. 15:03:14 it's* 15:03:22 iocor [~textual@unaffiliated/iocor] has joined #lisp 15:03:25 -!- jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has quit [Quit: jcazevedo] 15:03:41 *maxm* had personally used IBM HACMP and microsoft's solutions, and they work pretty well, but they are more of "how to stay up automatically if machine fails" thing, altho with link over VPN and cluster distributed across country, it also becomes quite a disaster tolerant solution 15:05:14 stat_vi [~stat@dslb-094-218-247-164.pools.arcor-ip.net] has joined #lisp 15:05:35 fasta: yes most recent successes with web2.0 guys, use massive clusters of throw-away pc's and custom programming.. But then its not exactly 100 million losses when instagram or angry birds go down for a day. But when a trading desk or airline goes down for a day, they seriously lose tons of money 15:05:36 fasta: if you are developing a new application i would say it's easier to make it tolerant, rather than building something under it. 15:06:31 maxm: yeah, but how do they make ACID databases work in the 'cloud'? 15:07:00 fasta: connect over VPN, and replication, oracle will help you with that 15:07:18 mysql too, but I'm not familiar with state of the art on that front 15:07:44 maxm: how has VPN got anything to do with it? 15:08:22 maxm: the problem with replication is that the replicated versions are out of date very quickly. 15:08:45 VPN: lets your databases to have a LAN that spans continental USA, then database uses multicasting or whatever to provide fault tolerant replication 15:08:48 maxm: i.e., AFAIK, they throw away the ACID properties. 15:09:15 maxm: ok, so just independent installations which receive the same commands? 15:10:02 maxm: but then you need to wait for some amount of servers to return 'success', right? 15:10:23 maxm: which hurts performance again. 15:10:40 maxm: in short, it seems it's an unsolvable problem without adding some assumptions. 15:12:03 FreeArtMan [~fam@93.177.213.54] has joined #lisp 15:12:07 fasta: I have not tried oracle distributed db, but I think they have a solution, google it. I don't want to get into offtopic, solution I have used is called X/Open XA, implementation I used is called Tuxedo, and yes it allows you to begin_transaction() on a PC in NYC, change database in chicago, send JMS message to london, then issue abort() from the PC in NYC, and everything will roll back nicely 15:12:54 maxm: I have no doubt that it works; I wonder what its limitations/assumptions are. 15:13:19 edgar-rft [~GOD@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has joined #lisp 15:13:20 maxm: I read the distributed database advanced topics in one of my university books. 15:13:36 maxm: and that basically said that it's not all that great. 15:13:47 fasta: requires custom programming, support from vendors of data sources (basically db's that you change), high administrative cost to setup right (higher then actual programming) 15:14:33 benefits: you can have application that spans the globe, with acid transactions, and fault tolerance, load balancing and such 15:14:40 maxm: latency will have to go up for example. 15:15:16 maxm: but does it actually wait for all the nodes to agree/half + 1? 15:15:50 mcspiff [~user@CPE78cd8ec16698-CM78cd8ec16695.cpe.net.cable.rogers.com] has joined #lisp 15:16:12 fasta: google 2 phase commit 15:17:08 coz I was just using it, not really ready to describe every implementation detail to you, go out there and do research on your own, so we can stop flooding the channel 15:18:15 The protocol assumes that there is stable storage at each node with a write-ahead log, that no node crashes forever, that the data in the write-ahead log is never lost or corrupted in a crash, and that any two nodes can communicate with each other. 15:19:18 kruhft [~user@d50-99-111-248.abhsia.telus.net] has joined #lisp 15:19:24 But given those assumptions, I don't see that any problem has been solved now. 15:20:38 zodiac1111 [~zodiac111@101.68.104.132] has joined #lisp 15:23:51 ehu` [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 15:25:09 fasta: yes the failure points are data sources, ie databases. For these you use the above described high availability stuff, or custom solution like this http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts001.htm Again I had only personally used the former (single oracle db, on hacmp cluster), you probably better of talking about this in #oracle, #mysql or related channels, you'll find people who actually used it 15:25:54 -!- jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has quit [Ping timeout: 264 seconds] 15:28:19 -!- kpreid [~kpreid@adsl-75-36-181-224.dsl.pltn13.sbcglobal.net] has quit [Quit: Quitting] 15:28:57 kpreid [~kpreid@adsl-75-36-181-224.dsl.pltn13.sbcglobal.net] has joined #lisp 15:30:37 <|3b|> does trivial-features not detect thread support? 15:31:21 |3b|: supposedly one would use bordeaux-threads 15:31:37 *|3b|* doesn't actually want to use threads just detect it 15:31:53 for what purpose? 15:32:17 <|3b|> freeglut (or xlib or xcb or whatever) seems to have gotten more sensitive to being called from multiple threads, and likes to SIGABRT 15:32:28 well, with bordeaux-threads, it's #+thread-support 15:32:38 Bike [~Glossina@67-5-204-108.ptld.qwest.net] has joined #lisp 15:33:09 <|3b|> was thinking about just calling XInitThreads before loading libglut.so on threaded unix 15:34:05 actually, just doing (asdf:find-system :bordeaux-threads) is enough 15:34:15 since its system is not declarative 15:34:51 Zabaq [~Zaba@ip-89-176-173-114.net.upcbroadband.cz] has joined #lisp 15:35:01 <|3b|> that assumes it is installed though 15:35:31 well, you can just steal that bit 15:36:17 *|3b|* will probably just skip checking for threads 15:40:20 -!- kushal [~kdas@fedora/kushal] has quit [Quit: Leaving] 15:41:19 <|3b|> or possibly i should just ignore the problem and use glop instead, since i manage to convince it to kill the lisp a different way while trying to test that fix 15:43:40 does anyone have some code for auto-recompiling stale fasls ? 15:45:41 any why is closure displaying all images way way below or behind displayable areas ? 15:46:17 -!- naeg [~naeg@194.208.239.170] has quit [Quit: WeeChat 0.3.8] 15:48:26 http://www.sbcl.org/manual/Automatic-Recompilation-of-Stale-Fasls.html 15:48:34 doesn't asdf handle that nowadays? 15:51:34 cfdm [~user@222.235.51.254] has joined #lisp 15:51:50 here http://imagepaste.nullnetwork.net/viewimage.php?id=4374 15:52:10 scroll to bottom of image to see how it displays the png files, almost non-visible.... 15:53:19 |3b|: chose glop, then if there is issues either patch or let Patzy know and it can be made better 15:53:31 ...and we all can benefit 15:54:21 tensorpudding [~michael@99.148.200.61] has joined #lisp 15:56:42 gigamonkey [~gigamonke@adsl-99-155-193-68.dsl.pltn13.sbcglobal.net] has joined #lisp 15:57:13 homie: it's well known that closure is bitrotten and broken 15:59:02 yay for rudi schlatte! 15:59:19 rudi_ [~rudi@cm-84.208.89.228.getinternet.no] has joined #lisp 15:59:22 he closed the last failure of ABCL on the Closer MOP compatibility test! 15:59:28 rudi_: yay! 15:59:36 :) 15:59:53 ehu`: "wontfix" ;) 16:00:08 erm 16:00:12 what now ? 16:00:16 fixed or not ? 16:00:21 that's boring, when will abcl be actually supported by closer-mop? 16:00:31 -!- rudi_ is now known as rudi 16:00:56 when rudi sends his patch and pascal accepts it... 16:00:58 doesn't make much sense submitting patches before a MOPey abcl is actually released 16:01:08 rudi: 16:01:18 that's a chicken-and-egg problem, isn't it :- 16:01:19 ) 16:01:37 but "soon" is the answer, I think - closer-mop contains lots of code working around known deficiencies in various implementations, and we don't have any ;) 16:01:42 well, anyway, I think we should start looking at fixing some of the other open bugs and quickly create a release... 16:01:50 (emphasis on the "known", of course) 16:02:30 if possible, I'd like to keep ABCL as clean as possible in that respect. 16:03:30 interesting next question: how does it perform? 16:04:01 teggi [~teggi@113.172.38.202] has joined #lisp 16:04:10 but we'll look at that when it really works, I'd say. 16:04:27 about the same as before if you're not using it, I suspect :) most of the work was introducing additional code paths 16:04:55 pnq [~nick@AC8148D6.ipt.aol.com] has joined #lisp 16:05:16 ok. that's comforting news for those who didn't need it :-) 16:06:04 I /think/ the generic function invocation and slot lookup paths are unchanged for standard classes 16:08:03 *rudi* runs abcl ansi-tests 16:08:59 I fixed all ansi-test failures I'd introduced up until that point 2 weeks ago, checking whether I made some new ones now 16:13:54 -!- sdemarre [~serge@91.176.86.181] has quit [Ping timeout: 264 seconds] 16:15:53 Joreji [~thomas@vpn-ho1.unidsl.de] has joined #lisp 16:18:37 -!- Arbamisto [~Arbamisto@67.197.37.202] has quit [Ping timeout: 240 seconds] 16:19:26 eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has joined #lisp 16:20:37 Arbamisto [~Arbamisto@67.197.37.202] has joined #lisp 16:21:31 hmm, indeed 7 new failures ... will have a look. 16:21:33 -!- dan64 [~dan64@dannyadam.com] has quit [Excess Flood] 16:22:54 -!- phax [~phax@unaffiliated/phax] has quit [Ping timeout: 264 seconds] 16:25:08 homie` [~levgue@xdsl-78-35-137-133.netcologne.de] has joined #lisp 16:25:31 sytse [sytse@swielinga.nl] has joined #lisp 16:27:06 -!- homie [~levgue@xdsl-78-35-156-228.netcologne.de] has quit [Ping timeout: 252 seconds] 16:27:51 -!- zeissoctopus [~zeissocto@183178133120.ctinets.com] has quit [Quit: ] 16:28:18 -!- gigamonkey [~gigamonke@adsl-99-155-193-68.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 255 seconds] 16:30:30 -!- KingsKnighted [~quassel@c-174-52-149-13.hsd1.ut.comcast.net] has quit [Remote host closed the connection] 16:32:02 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Quit: leaving] 16:32:28 Joreji_ [~thomas@vpn-ho1.unidsl.de] has joined #lisp 16:32:29 algal [~anonymous@149.241.63.143] has joined #lisp 16:32:44 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 16:32:44 -!- algal [~anonymous@149.241.63.143] has left #lisp 16:33:07 dan64 [~dan64@dannyadam.com] has joined #lisp 16:33:14 -!- pnq [~nick@AC8148D6.ipt.aol.com] has quit [Ping timeout: 244 seconds] 16:34:34 gigamonkey [~gigamonke@adsl-99-155-193-68.dsl.pltn13.sbcglobal.net] has joined #lisp 16:34:43 Noobie_ [b89114f1@gateway/web/freenode/ip.184.145.20.241] has joined #lisp 16:35:58 hi there I wanted to know if someone could name me some good common lisp tutorials (books, videos, etc.) I have past experience with Java but if you could give me some beginnier-type suggestions that would be really helpful 16:36:02 r_r_r [~chatzilla@77.127.28.70] has joined #lisp 16:37:12 Noobie_: from another noobie: read SICP 16:37:13 minion: please tell Noobie_ about PCL 16:37:14 Noobie_: have a look at PCL: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 16:37:40 don't listen to net4all, SICP is not about Common Lisp 16:37:50 oh ok 16:37:54 thank you 16:38:33 oh, i read just lisp, my bad 16:38:53 -!- kanru [~kanru@36-226-34-183.dynamic-ip.hinet.net] has quit [Ping timeout: 245 seconds] 16:39:02 net4all: that's a common lisp channel, so even if it were just "lisp" 16:39:41 stassats: as i said, my bad 16:39:47 -!- lcc [~user@unaffiliated/lcc] has quit [Quit: bye] 16:40:43 and sicp is not really about lisp either, it's about computation 16:41:31 well, it worked perfectly for me 16:42:02 perfectly for what? 16:42:17 it's useless for writing real programs in CL 16:42:42 -!- rudi [~rudi@cm-84.208.89.228.getinternet.no] has quit [Quit: Textual IRC Client: http://www.textualapp.com/] 16:43:26 stassats: it teaches you how basic lisp works, and as i said, i got it wrong on the common lisp part 16:44:19 -!- cfdm [~user@222.235.51.254] has left #lisp 16:45:29 mrSpec [~Spec@LPuteaux-156-15-35-166.w82-127.abo.wanadoo.fr] has joined #lisp 16:45:30 -!- mrSpec [~Spec@LPuteaux-156-15-35-166.w82-127.abo.wanadoo.fr] has quit [Changing host] 16:45:30 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 16:48:00 DDR [~chatzilla@d172-218-2-5.bchsia.telus.net] has joined #lisp 16:48:29 Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has joined #lisp 16:50:55 when are unsigned-bytes relevant on x86's ? 16:51:50 jcazevedo [~jcazevedo@213.138.108.93.rev.vodafone.pt] has joined #lisp 16:53:00 -!- Noobie_ [b89114f1@gateway/web/freenode/ip.184.145.20.241] has quit [Quit: Page closed] 16:53:43 your question doesn't make any sense 16:54:43 to correctly use bytes you need the signature from the byte certification authority. without that certification, bytes are called unsigned, and they have less weight to the CPU then signed bytes 16:55:14 you know https:// like when it gives you the warning about certificate? its because the bytes were unsigned 16:56:40 -!- Joreji_ [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 255 seconds] 16:59:27 maxm: and "s" means "signed"? 16:59:33 me prefers the not so lightweight ones.... 16:59:48 neither slim nor fat! 16:59:48 stassats: I never thought about it but now it makes sense 16:59:51 lol 17:00:02 homie`: but what were you asking? 17:00:29 nvm, i think someone just decided to use unsigned-bytes all over.... 17:00:49 without ever giving sb-ext:octet-bytes a chance or so.... 17:01:03 depending on the endiannes..... 17:01:08 jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has joined #lisp 17:01:11 what is sb-ext:octet-bytes? 17:01:35 you sound confusing 17:01:56 unsigned-byte is an integer that is not negative 17:03:32 and it has nothing to do withe endianness 17:05:33 -!- jcazevedo [~jcazevedo@213.138.108.93.rev.vodafone.pt] has quit [Quit: jcazevedo] 17:13:29 -!- lobo_d_b [~lobo_d_b@unaffiliated/juan--d--b/x-561435] has quit [Read error: Connection reset by peer] 17:14:03 -!- Joreji [~thomas@vpn-ho1.unidsl.de] has quit [Ping timeout: 246 seconds] 17:16:36 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Ping timeout: 276 seconds] 17:17:15 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 17:17:33 CrazyEddy [~corollifo@wrongplanet/CrazyEddy] has joined #lisp 17:18:36 Spion_ [~spion@unaffiliated/spion] has joined #lisp 17:18:43 -!- ISF [~ivan@201.82.158.233] has quit [Ping timeout: 255 seconds] 17:19:12 lobo_d_b [~lobo_d_b@181.132.160.27] has joined #lisp 17:19:12 -!- lobo_d_b [~lobo_d_b@181.132.160.27] has quit [Changing host] 17:19:12 lobo_d_b [~lobo_d_b@unaffiliated/juan--d--b/x-561435] has joined #lisp 17:21:06 -!- k0001 [~k0001@host76.190-228-122.telecom.net.ar] has quit [Ping timeout: 264 seconds] 17:21:43 actually i guess it could be confusing coming from c/c++ background 17:22:04 -!- Spion [~spion@unaffiliated/spion] has quit [Ping timeout: 265 seconds] 17:22:53 homie: in CL unsigned-byte or signed-byte do not have same meaning as in C, they need to be qualified with size in bits.. So the classic translation of the u_int_8 from C land will be (unsigned-byte 8) 17:23:05 homie`: on processors data is not typed: there's only bit fields. 17:23:14 homie`: it's the operations that give type to the bit fields. 17:23:32 *maxm* is actually not sure if "char" supposed to be 8-bit by C standard, but everyone assumes it is so anyway 17:23:33 homie`: and sometimes, even not the operation, but what flag you read after the operation! 17:24:21 homie`: eg. ADD.L D0,D1 --> .L means we use fields of 32-bit from and to the registers. ADD means some binary operation on thos binary fields, setting some status flags. 17:24:57 homie`: you can then read different flags, which will tell you different thing if you considered the bit fields to be 2-complement signed, or unsigned fields. 17:26:22 I'm trying to learn loop, and I wonder if some of you might share some improvements or comments 17:26:25 http://paste.lisp.org/+2SNH 17:27:03 is there a better way to do that crazy if shit and the funcall in finally there? 17:27:51 homie`: notably, see the conditionnal branch instruction. BLE vs. BLS ; one is for signed, the other for unsigned interpretation of the status flags. 17:27:59 -!- fantazo [~fantazo@213.129.230.10] has quit [Remote host closed the connection] 17:28:02 sytse: use cond 17:28:32 ah, sure 17:29:00 i didn't really catch what it's trying to do 17:29:13 sytse: I would use LET and FLET. 17:29:41 and COND or embedded IFs, since you're testing several times the same conjonctions. 17:29:44 -!- teggi [~teggi@113.172.38.202] has quit [Remote host closed the connection] 17:29:45 stassats: the result at the bottom should explain it all 17:29:52 it doesn't 17:29:57 what's penalty? 17:30:05 break a paragraph into nodes as a preparation for linebreaking 17:30:38 and for penalty see 'the formulas for demerits' at http://defoe.sourceforge.net/folio/knuth-plass.html 17:30:55 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Read error: Connection reset by peer] 17:31:10 (this will be an extremely simplified version just for fixed-width text-only output) 17:31:48 pjb: loop seems useful for the 'for last = nil then ch for ch across par' part 17:32:23 (and also, less nesting or less arguments for the push-word function) 17:32:35 do you want this to be fast or short? 17:32:59 is there a huge difference in this case? 17:33:28 (let's say fast) 17:33:40 pnq [~nick@ACA21B46.ipt.aol.com] has joined #lisp 17:34:02 jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has joined #lisp 17:35:01 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 17:36:06 sadly, i'm not interested in fast 17:36:24 snearch [~snearch@f053003182.adsl.alicedsl.de] has joined #lisp 17:38:30 -!- jcazevedo [~jcazevedo@bl11-3-228.dsl.telepac.pt] has quit [Ping timeout: 264 seconds] 17:40:26 stassats: what suggestion would you have for short? (I've already changed it to (let (nodes word) (flet ((push-word [...])) (loop [...])))) 17:41:54 sytse: thats pretty good, I would also move ch and last into the let, and make new function (next) which gets returns next character in string, or nil if at the end, plus sets and maintains ch and last as well 17:43:18 -!- punee [~punee@set25-1-88-166-168-141.fbx.proxad.net] has quit [Ping timeout: 264 seconds] 17:43:30 -!- theos [~theos@unaffiliated/theos] has quit [Remote host closed the connection] 17:44:24 then you'll be able to write stuff like (loop while ch do (cond ((eq ch ...) ...) ((and (eq ch ..) (eq last ..))))).. In fact move any repetitive code into outer flet, (change it to labels if sub-functions need to call each other) 17:45:32 sytse: you can use loop, but it's better to use flet, and therefore to define the variable enclosed with let than with :with. 17:46:07 Joreji [~thomas@vpn-eu1.unidsl.de] has joined #lisp 17:47:59 lebro [~monx@ool-18bab6ce.dyn.optonline.net] has joined #lisp 17:48:04 why is making a next function better than http://paste.lisp.org/+2SNH/1 ? 17:48:26 sytse: its a personal preference, to me its readability 17:49:03 'for last = nil then ch for ch across par' seems very readable to me, but maybe I'm deluded ;-) 17:50:02 sytse: and for example if for some reason you need to look 2 chars back and 1 forward, its easy to change (next) to also do that.. so its kind of neater. Then if you lets say decide to make "get next word" into its own function, its easier to do so, if (next) is also a local function 17:50:08 -!- mcspiff [~user@CPE78cd8ec16698-CM78cd8ec16695.cpe.net.cable.rogers.com] has quit [Ping timeout: 245 seconds] 17:50:14 yes, in terms of flexibility it's neater 17:50:17 I agree with that 17:52:11 anything wrong technically? (at least I didn't forget to use eql instead of eq here =]) 17:52:29 k0001 [~k0001@host76.190-228-122.telecom.net.ar] has joined #lisp 17:53:52 -!- Joreji [~thomas@vpn-eu1.unidsl.de] has quit [Read error: Operation timed out] 17:54:01 no otherwise looks fine, its a matter of style I guess. Personally I find that for anything but non-trivial loop is better destructured into smaller pieces, your loop is at the "upper boundary" of what I consider non-trivial, ie at the point where if it needs more stuff inside, I would break it 17:54:38 *anything but trivial 17:54:44 sure, I guess 17:55:05 ie this is how I do my parsers http://paste.lisp.org/display/130447 17:55:23 *maxm* expects comment from drewc how state machine can be replaced with monad :-) 17:56:59 that example of yours is way beyond the boundary of where I'd start demanding a good parser generator (DFA+LALR, or parser combinator) 17:57:06 ;-) 17:57:51 monad! 17:57:52 too much margin for error 17:58:00 again probably personal style thing, I find I can write parsers in that style faster then using a lexer generator 17:59:03 also, most current parser generators suck in terms of error handlig 17:59:05 *handling 17:59:08 hrm ... parsers? 17:59:26 I know nothing about that at all .... https://github.com/drewc/smug/blob/master/smug.org 17:59:50 -!- homie` [~levgue@xdsl-78-35-137-133.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 18:00:11 drewc: :-D 18:00:47 Fare [~fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has joined #lisp 18:01:01 I already named your parser as something I'd prefer over maxms example 18:01:02 19:56:59 < sytse> that example of yours is way beyond the boundary of where I'd start demanding a good parser generator (DFA+LALR, or parser combinator) 18:01:05 ;-) 18:01:20 parser combinators are awesome, I guess 18:01:26 ahem. Apart from fset and lisp-interface-library, are there any pure ("hash") table implementations for CL ? 18:02:03 there is the skip-list implementation that beach once did, if that qualifies. 18:02:30 i suppose it does 18:02:32 I'd think writing a hash table implementation in pure lisp is (mostly) useless 18:02:36 it already has one 18:02:57 sytse: and you're saying that one hash table implementation should fit all use cases? 18:03:01 and if that's not sufficient, what you're demanding is better performance in some cases, which would suggest ffi to me 18:03:12 cl-skip-list bknr-skip-list --- I *hate* the NIH syndrome in the CL community 18:03:24 s/in the CL community// 18:03:42 Fare: bet you $1 you'll try them and write your own :-) 18:03:43 sytse: sometimes, different algorithms fit certain applications better. 18:03:46 I see another skip list from richard fateman, probably earlier than the above 18:03:55 and more 18:04:08 Fare: the world has become much better with quicklisp 18:04:11 Fare: just look at GNU, with its two separate longopt getopt-implementations 18:04:25 syste: two is one thing. Tens is another 18:04:56 when researching a good portable run-program abstraction, I found ~14 different ones, none of them doing the right thing 18:04:57 that's because it's easier to throw some parens together and put it out onto the net in lisp ;-) 18:05:20 heh, yep 18:05:25 ticking [~janpaulbu@87.253.189.132] has joined #lisp 18:05:25 Fare: I have a persistent b-tree type thing that I wrote, but I stopped using it a while ago, and the code is not very great. 18:05:28 lots of software that does not do the right thing at all 18:05:31 *maxm* is always feeling that in tight code with significant amount of insertions, CL wastes hash lookup when doing (gethash) twice to check if element is there, then to insert it.. C++ has right idea with the "hint" object from previous search for maps 18:06:15 algal [~anonymous@149.241.63.143] has joined #lisp 18:06:18 maxm: the standard specifically suggests caching the last search as an optimization. 18:06:24 GPL-vs-BSD-vs-some-other-licence-NIH is the worst, that at least you don't see in the CL world right? 18:07:03 drewc: I see that you wrote your own persistence thing, too. How does it compare to rucksack? 18:07:07 hmm, do any of the implementation do it? 18:07:09 -!- algal [~anonymous@149.241.63.143] has left #lisp 18:07:21 drewc: persistent as in pure functional, or as in disk-backed? 18:07:29 both 18:07:35 oh yes, I also have a key-value thing I wrote in lisp 18:07:57 but that's very specific; it stores GNU-style longopts ;-) 18:08:10 (trie binary tree) 18:09:32 Fare: btw, think back to the time when knuth wrote TAOCP.. every single program even had its own memory allocation code, probably often even multiple ones 18:09:48 Fare: it basically uses an append-only index, and stores it to disk along with the file that has the proper btree in it. So persistent and persistent. 18:09:53 today at least you can choose =] 18:10:03 -!- bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has quit [Remote host closed the connection] 18:10:14 Fare: I did a GC for it at one point as well... not sure where it is at all.... 18:10:14 flavioribeiro [~flaviorib@177.142.160.5] has joined #lisp 18:10:54 -!- pnq [~nick@ACA21B46.ipt.aol.com] has quit [Ping timeout: 264 seconds] 18:11:13 wait, 'the time when knuth wrote TAOCP' is.. *any* time :-D 18:13:46 Oddity [~Oddity@unaffiliated/oddity] has joined #lisp 18:14:10 homie [~levgue@xdsl-78-35-137-133.netcologne.de] has joined #lisp 18:15:15 *maxm* checked SBCL does the gethash/puthash cache thing 18:15:44 when keys are EQ 18:17:20 zulu_inuoe [~zulu_inuo@c-174-58-204-235.hsd1.fl.comcast.net] has joined #lisp 18:19:08 -!- tensorpudding [~michael@99.148.200.61] has quit [Read error: Connection reset by peer] 18:20:08 kushal [~kdas@fedora/kushal] has joined #lisp 18:21:18 tensorpudding [~michael@99.148.200.61] has joined #lisp 18:23:31 Fare: I've got a run-program on the fire myself. 18:24:14 We need a run-program that runs everywhere, that's full featured, and stand alone. 18:25:43 sytse: sure, there are proponents of MIT/BSD and proponent of GPL here too. 18:25:57 (I'm on the GPL3 / AGPL3 side). 18:26:22 *sytse* 2 18:26:40 although I do like netbsd a lot 18:27:58 didn't gwking write a portable run-program type thing? 18:28:10 *drewc* googles 18:28:20 *|3b|* is in the 'would NIH to avoid GPL' side :p 18:28:27 <|3b|> (for some things at least) 18:28:44 *H4ns* does not link to gpl code. 18:29:35 ah yes, sort of a run-program like thing : http://common-lisp.net/project/trivial-shell/ 18:30:07 I'm very much in favor of the non-GPL side as well. 18:30:13 *drewc* does not use GPL for his libs, prefers MIT or WTF 18:30:17 it's simply better for the eco system. 18:31:25 hi 18:31:28 pjb: hi 18:32:54 -!- xristos [~x@2001:4968:200:0:5652:ff:fe55:7b51] has quit [Read error: Connection reset by peer] 18:33:28 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Read error: Connection reset by peer] 18:33:50 -!- leo2007 [~leo@123.114.34.241] has quit [Quit: rcirc on GNU Emacs 24.1.1] 18:36:27 schoppenhauer [~christoph@unaffiliated/schoppenhauer] has joined #lisp 18:38:53 -!- Zabaq [~Zaba@ip-89-176-173-114.net.upcbroadband.cz] has quit [Ping timeout: 245 seconds] 18:38:59 blackwol` [~blackwolf@ool-4575fc51.dyn.optonline.net] has joined #lisp 18:40:35 mcspiff [~user@CPE78cd8ec16698-CM78cd8ec16695.cpe.net.cable.rogers.com] has joined #lisp 18:40:46 -!- blackwolf [~blackwolf@ool-4575fc51.dyn.optonline.net] has quit [Ping timeout: 246 seconds] 18:41:04 -!- kushal [~kdas@fedora/kushal] has quit [Quit: Leaving] 18:43:28 {"response":{"test":15,"ebay":15}} 18:43:32 *Fare* wanted to unify the interfaces of lil and cl-containers, but they are somewhat different -- lil so far focuses on tables (dictionaries, maps, whatever you call them) and cl-containers on sets / multisets / queues / lists 18:43:40 yikes, pasted in the wrong window there! 18:43:45 pjb: inferior-shell has that 18:43:56 pjb: and/or xcvb-driver that implements the run-program itself 18:44:04 Zabaq [~Zaba@ip-89-176-173-114.net.upcbroadband.cz] has joined #lisp 18:44:12 drewc: IIRC, trivial-shell just suck 18:44:13 s 18:44:25 hmm, is there any better alternative for loop's 'collect' than push and final nreverse? 18:44:40 various collect macros. 18:44:51 wbooze [~wbooze@xdsl-78-35-137-133.netcologne.de] has joined #lisp 18:44:54 *Fare* would use GPL for C software, not for lisp software 18:45:10 Or not using lists long enough for it to matter. 18:45:16 fantazo [~fantazo@91.119.101.47] has joined #lisp 18:45:27 Fare: yeah, that may indeed be true... I have not used it or looked at the code. For that matter I only have SBCL installed and only use it on linux, so I do not know much at all 18:45:32 pjb: what is "full-featured" for you in this context? 18:45:44 I find inferior-shell and xcvb-driver pretty full-featured. 18:45:46 pkhuong: in other words, no :-) 18:46:01 sytse: what's wrong with "various collect macros"? 18:46:06 hellooooooo 18:46:14 *wbooze* winks 18:46:24 pkhuong: hm, what's the best (simple) one in your opinion? 18:46:34 hi wbooze 18:46:37 are you with booze? 18:46:45 I use the one in SBCL for obvious reasons 18:46:50 xcvb-driver and inferior-shell runs on *all* unix or windows implementations, and can capture program output. 18:47:15 inferior-shell can further do various redirections, piping, etc., but only on unix or with a unix shell on windows 18:47:26 which one is that pkhuong? 18:47:33 inferior-shell can ssh onto a remote host if necessary 18:48:03 sytse: it's in sb-int. Don't use it unless you're hacking on SBCL itself. 18:48:08 ah 18:48:25 or unless I copy-paste it 18:48:26 Is it fair to go on a cliki page and write "don't use this library, use that library" ? 18:48:36 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 18:48:47 pkhuong: and what's it called? 18:49:00 collect, amazingly enough. 18:49:29 hmm 18:49:33 that was unsurprising 18:49:38 :D 18:49:54 early-extensions.lisp 18:52:07 anyway 18:52:20 that collect macro does reverse collect followed by nreverse 18:52:35 hmwait 18:52:38 Fare: as long as you include your name so we/they know who is giving the advice, I say go for it 18:52:40 no it doesn't 18:54:30 seangrove [~user@c-71-202-126-17.hsd1.ca.comcast.net] has joined #lisp 18:55:37 -!- eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has quit [Ping timeout: 240 seconds] 18:55:47 Fare: here is the interface I have so far http://paste.lisp.org/display/130449 18:56:00 for run-program. 18:57:06 -!- Houl [~Parmi@unaffiliated/houl] has quit [Quit: weil das Wetter so schön ist] 18:57:06 Fare: I don't think it's fair. Better describe the advantages and inconvenient, and leave people decide for themselves. You could list alternatives. 18:57:30 Apart from really crappy libraries :-) 18:58:46 pjb: if you care about asynchronous execution, gpfeil already has a library to do that, that could support more implementations 18:58:56 pjb: if you don't, just use xcvb-driver 18:59:06 doesn't make sense to start a new one 18:59:36 Well, it matters. eg. inferior-shell is not "full featured" on MSWindows. 19:00:49 The problem is that a run-program call would be used to provide missing features on different systems. If we can't rely on it, to provide the missing features, then it's useless. 19:00:59 samium gromoff's executor is also nice, though still only for sbcl ccl clisp ecl 19:01:19 pjb: inferior-shell is better featured than most on windows 19:01:23 You see why there are a lot of libraries :-) 19:01:35 -!- wbooze [~wbooze@xdsl-78-35-137-133.netcologne.de] has quit [Quit: Client Quit] 19:01:36 no I still don't see it 19:01:48 there could be one library that lots of people contribute to 19:01:49 Fare: ok, thanks for the advice. I'll see if I can use it (but then, it's for a project on the back burner). 19:01:50 apathor [~apathor@c-24-218-104-106.hsd1.ma.comcast.net] has joined #lisp 19:01:56 pick any existing one that's well done and contribute 19:02:08 Fare: indeed, there should. We'd need somebody to organize that collaboration. 19:02:15 don't needlessly start a new one 19:02:38 xcvb-driver and inferior-shell are full-featured and 100% portable within their constraint (synchronous execution) 19:02:44 still, what kind of use case do you have that you can just call the same command line on windows and *nix?? 19:02:49 (and no ffi linking) 19:03:27 Well, IIRC what motivated my working on it was getting the hostname for asdf binary directory. 19:03:29 if you go for an async execution library, pick an existing one, such as executor, and make it more portable. 19:03:45 my plan was to write a portable one based on iolib 19:04:03 which requires FFI, but at least can be 100% portable. 19:04:17 But iolib needs asdf to load, so no go for me 19:04:25 pjb: asdf now has hostname, thank you 19:04:33 Yes :-) 19:04:34 pjb: I added that feature just for you! 19:04:50 why the asdf-aversion? 19:04:54 Indeed. That's why my run-program is not completed :-) 19:04:58 btw, elisp/tramp might be a good example for how to do running commands platform-independently right 19:05:08 It's not an aversion, it's an order of loading. 19:05:18 it doesn't care at all whether it's calling putty on windows or openssh on *nix 19:05:30 run-program -> hostname -> asdf 19:05:31 xcvb-driver doesn't need asdf to load and has a reasonable run-program (sync only) 19:06:11 hell, asdf itself has a semi-decent run-program that's good enough to run hostname 19:06:21 Not on MS-Windows. 19:06:27 That's what I used before. 19:07:16 xcvb-driver works on windows 19:07:51 Well, nowadays, you need quicklisp integration for general acceptance of an asdf replacement. 19:08:07 yup, the bar has been raised for xcvb. sigh. 19:08:29 naeg [~naeg@194.208.239.170] has joined #lisp 19:08:46 maxigas [~user@dsl51B6539B.pool.t-online.hu] has joined #lisp 19:08:53 -!- maxigas [~user@dsl51B6539B.pool.t-online.hu] has left #lisp 19:09:15 Anyways I take note of your hints and I'll have a look at them when I go back to this question. Thanks. 19:10:14 -!- zodiac1111 [~zodiac111@101.68.104.132] has quit [Ping timeout: 246 seconds] 19:11:35 you're welcome. 19:13:04 -!- naeg [~naeg@194.208.239.170] has quit [Ping timeout: 255 seconds] 19:13:18 punee [~punee@set25-1-88-166-168-141.fbx.proxad.net] has joined #lisp 19:13:55 -!- ticking [~janpaulbu@87.253.189.132] has quit [Quit: Leaving...] 19:15:08 -!- sytse [sytse@swielinga.nl] has quit [Ping timeout: 248 seconds] 19:15:49 -!- schoppenhauer [~christoph@unaffiliated/schoppenhauer] has quit [Quit: leaving] 19:16:23 -!- m7w [~chatzilla@80.249.86.64] has quit [Ping timeout: 245 seconds] 19:17:31 -!- peterhil [~peterhil@91-157-48-51.elisa-laajakaista.fi] has quit [Ping timeout: 245 seconds] 19:18:17 -!- noss [~cs@110.35.136.223] has quit [Ping timeout: 246 seconds] 19:19:02 -!- puchacz [~puchacz@87-194-5-99.bethere.co.uk] has quit [Ping timeout: 265 seconds] 19:20:24 mucker [~mucker@183.83.240.198] has joined #lisp 19:20:32 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Read error: Connection reset by peer] 19:21:06 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Ping timeout: 264 seconds] 19:22:06 sytse [sytse@swielinga.nl] has joined #lisp 19:25:40 naeg [~naeg@194.208.239.170] has joined #lisp 19:26:08 b__ [~b@cpc14-acto3-2-0-cust114.4-2.cable.virginmedia.com] has joined #lisp 19:28:01 I am going to buy a new laptop, does it matter to SBCL if I go for intel cpus with lesser cores but having 'threads' per core or instead AMD with just more cores? 19:30:06 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 19:30:10 *|3b|* doubts SBCL itself cares, since it doesn't do anything with threads unless you tell it to as far as i know 19:30:50 b__: Threads-per-core are just an implementation of the hardware multithreading technology, called hyperthreading in intelspeak. 19:31:18 -!- alexander__b [~alexander@140.100.189.109.customer.cdi.no] has quit [Ping timeout: 264 seconds] 19:31:29 b__: This usually shows up as separate CPU's from the OS's point of view, but doesn't parallelize code as well as a proper separate cpu/core would. 19:31:35 b__: interesting question. lisp applications generally don't have a gazilion threads per application. however, for things like webapps it wouldn't matter at all. i seriously doubt you'll be unhappy with either of both. 19:31:46 b__: So if you want to run highly parallel code you want more real cpus/cores. 19:31:57 b__: Otherwise sbcl will not care. 19:33:34 madnificent: there is no such thing as "generally" in lisp applications. 19:34:10 madnificent: it sounds counter intuitive to me : to a loaded webapp, shouldnt it matter? 19:34:11 madnificent: i've recently become a very happy lparallel user and used it to parse multiple large files in parallel. i begin to actually care about how much performance i can get out of the multiple cores that i have. 19:34:22 H4ns: haskell and erlang spur more threads than lisp applications tend to do, i'd say. i somewhat agree with you though. 19:34:22 peterhil [~peterhil@91-157-48-51.elisa-laajakaista.fi] has joined #lisp 19:34:35 b__: are you planning to run a busy web app on your laptop? 19:35:23 H4ns: in beginnings .. yes! 19:35:42 alexander__b [~alexander@140.100.189.109.customer.cdi.no] has joined #lisp 19:36:24 b__: web servers tend to have a bunch of worker threads. as each request comes in, it's handled by a separate thread. if you don't make your algorithms use multiple threads, then something that serves web pages may still use all 8 cores... 19:36:29 b__: i'd say that to you, it does not matter whether you choose intel or amd. 19:36:53 b__: i guess the answer is: in practice, unless you have specific needs, no, it shouldn't matter. 19:37:02 madnificent: my web servers do not tend to have a bunch of server threads. you're claiming generality where there is none. 19:37:28 H4ns: hunchentoot has worker threads, that's the most common one AFAICT 19:37:37 -!- jtza8 [~jtza8@196-210-172-211.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 19:37:41 madnificent: i'm not using hunchentoot with multiple threads. 19:38:03 *madnificent* is 19:38:16 wbooze [~wbooze@xdsl-78-35-137-133.netcologne.de] has joined #lisp 19:39:01 madnificent: you're probably not running very busy web servers then :) 19:39:07 I take it means hunchentoot will be able to proper utilise all the threads on intel cores and not just queue up on each core one thread. 19:39:44 b__: by default, it spawns one thread per connection. if that is what you mean by "proper utilise" then yes. 19:40:30 cool,so that 'lisp thread' maps to 'core thread' through sbcl-linux 19:40:39 b__: from there on, your kernel (ie linux) will choose which thread runs where and when 19:41:02 coo, thats what i was hoping for! 19:41:10 it takes a lot of users or a lot of sloppy programming to saturate one core with a web server. 19:41:16 kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has joined #lisp 19:41:49 hmmm, does lispworks have *any* advantage left over other lisp implementations? 19:42:03 H4ns: I am curious, which model is your server based on, i thought all servers have thread based model 19:42:11 (that justifies the 3200/user price) 19:42:25 uh, 3600 19:42:25 or well, multiple process based model 19:42:27 sytse: capi, commercial support, solid smp 19:42:29 puchacz [~puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 19:42:32 -!- Arbamisto [~Arbamisto@67.197.37.202] has quit [Ping timeout: 252 seconds] 19:42:35 H4ns: ah, solid smp, k 19:43:04 commercial support goes without saying :) 19:43:09 but that's not an advantage over allegro 19:43:22 -!- k0001 [~k0001@host76.190-228-122.telecom.net.ar] has quit [Ping timeout: 244 seconds] 19:43:28 Sciener CL has even sturdlier smp, (and is ten times more expensive :-) ) 19:43:29 b__: i serve all requests serially and use a front-end cache. my handlers don't normally block, and if they do, i use specific mechanisms rather than just letting the http request hang 19:43:43 sytse: lispworks also has sane licensing, which allegro does not. 19:44:13 it also inspires a little more trust through the website 19:44:15 And they're on the right side of the pond. 19:45:08 -!- lebro [~monx@ool-18bab6ce.dyn.optonline.net] has quit [Ping timeout: 245 seconds] 19:45:48 H4ns: oo, now i remember, you encouraged me to have global lock when i was doing an app with cl-store :) 19:46:04 b__: right. i'd still do that. 19:46:30 right side of the pond? Vancouver? :) <--- lives on the pacific ocean in Howe Sound 19:46:58 it's obvious east is the right side 19:47:05 or you'd have to hold the globe upside down 19:47:06 ;-) 19:47:23 H4ns: Yes but you then gotta code more with your eyes open 19:47:39 b__: what if they're glued shut like H4ns's? 19:47:49 b__: i tend to code with my eyes open. 19:48:03 sytse: offense taken 19:48:09 \o/ 19:48:15 troll successful 19:48:21 but what if your app is handed ultimately to other not so open programmers heheh 19:48:52 b__: then you're in the wrong market. 19:49:49 lebro [~monx@ool-18bab6ce.dyn.optonline.net] has joined #lisp 19:50:04 *sytse* puts a huge bunch of fresh coriander into his hugely belated rice and eats it 19:50:17 yum 19:50:37 :) , off i go to continue search for laptop, offtopic: I just read logicomix (a graphic novel), it gave me some better background of computing...even lisp than other books 19:50:39 thanks all 19:50:40 sytse: can #lisp be exempt from your culinary endeavours? 19:50:55 I suppose 19:51:43 this is one of those rare, strange channels where the ostensible topic is actually on-topic and the rest off-topic huh ;-) 19:52:22 sytse: let's discuss your cooking skills in #lisp-cafe with everyone that cares! 19:52:57 -!- sellout [~Adium@c-98-245-92-119.hsd1.co.comcast.net] has quit [Quit: Leaving.] 19:54:04 -!- ChanServ has set mode +o drewc 19:54:16 bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has joined #lisp 19:54:58 -!- sytse [~user@212.110.167.245] has been kicked from #lisp by drewc (on topic and no insulting please) 19:55:17 sytse [sytse@swielinga.nl] has joined #lisp 19:55:18 -!- ChanServ has set mode -o drewc 19:55:25 sorry drewc 19:55:51 -!- McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has quit [Ping timeout: 276 seconds] 19:56:11 I didn't mean an insult, that was a bit silly 19:57:21 McMAGIC--Copy [~McMAGIC--@gateway/tor-sasl/mcmagic--copy] has joined #lisp 19:58:15 -!- kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 19:58:21 kmcorbett1 [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has joined #lisp 19:58:23 It's #lispcafe 20:00:22 k0001 [~k0001@host76.190-228-122.telecom.net.ar] has joined #lisp 20:00:39 tsuru` [~charlie@adsl-98-87-25-130.bna.bellsouth.net] has joined #lisp 20:04:04 sellout [~Adium@c-98-245-92-119.hsd1.co.comcast.net] has joined #lisp 20:07:46 pnq [~nick@ACA32E7B.ipt.aol.com] has joined #lisp 20:10:00 -!- kmcorbett1 [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 20:10:05 kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has joined #lisp 20:11:35 so I finished porting that sudoku solver in CL and it's much slower than Norvig's python version 20:11:49 time to understand using fixnums as bit-vectors I guess 20:12:13 dim: which lisp are you using? 20:12:16 is there a more complete document than http://psg.com/~dlamkins/sl/chapter18.html 20:12:21 Fare: CCL 1.8 20:12:30 dim: have you tried profiling it? 20:12:32 and yes, CCL won't be the fastest 20:12:32 if you want bit-vectors, there are such things in CL #*0110010 20:12:47 oh I didn't try (declare speed) and the like 20:12:55 Fare: I'm using them yes 20:13:01 -!- tsuru` [~charlie@adsl-98-87-25-130.bna.bellsouth.net] has quit [Read error: Connection reset by peer] 20:13:03 SBCL will probably be faster than CCL 20:13:04 dim: try on sbcl 20:13:15 using (make-array 10 :element-type 'bit :initial-element 1) 20:13:18 also, sometimes octet-vectors are faster than bit vectors. 20:13:48 is it a matter of replacing 'bit with 'byte here? 20:13:53 yes 20:14:02 if you want speed, use sbcl rather than ccl 20:14:19 tsuru` [~charlie@adsl-98-87-44-20.bna.bellsouth.net] has joined #lisp 20:14:37 but before you go all the way into low-level optimization -- what about high-level optimization? 20:15:02 just low-level de-pessimization and high-level optimization are usually much better than low-level optimization. 20:15:12 no such luck here 20:15:17 there's no such type, byte 20:15:34 (deftype octet () `(unsigned-byte 8)) 20:15:56 Fare: I want to implement the same algo as in the python version 20:15:59 meiji11 [~user@96.51.60.120] has joined #lisp 20:16:11 I've been changing the basic data structures thoug 20:16:20 from a hash-table to a 9x9 array 20:16:22 does it do forward constraint propagation? 20:16:23 so, why haven't you measured on sbcl yet? 20:16:24 dnolen [~user@pool-96-224-18-102.nycmny.east.verizon.net] has joined #lisp 20:16:37 -!- moah [~moah@dslb-188-109-174-053.pools.arcor-ip.net] has left #lisp 20:16:46 stassats: because I have to check the version I have here 20:16:59 and my slime isn't configured for sbcl 20:17:00 etc 20:17:23 shouldn't matter, as long as it's from this decade 20:17:34 This is SBCL 1.0.55.0-abb03f9, an implementation of ANSI Common Lisp. 20:17:52 good enough 20:19:53 that's 1.0.55 exactly 20:20:03 a bit silly that it includes the git revision for tagged commits 20:20:34 Array element type of :DISPLACED-TO array does not match specified element type 20:20:40 the code fails on SBCL 20:20:49 are you using displaced arrays? gosh 20:21:06 no I just borrowed a copy-array implementation 20:21:08 sytse: how else are you going to find which revision it is from? 20:21:18 dim: it's a bad one 20:21:21 stassats: the tag. 20:21:33 was from http://lemonodor.com/archives/000100.html, stassats 20:21:46 'sbcl-1.0.55' is equivalent to abb03f939ada55bdc1856df5cc48815fd0dff69d 20:21:50 dim: yes, i know what it is 20:22:10 dim: don't use magic tricks, just copy it manually 20:22:21 sytse: so what? 20:22:22 (the convention is using v1.0.55 or 1.0.55 as the tag) 20:22:29 stassats: fair enough 20:22:35 stassats: this way you can't see if it's a release or not 20:22:38 I'm new to this game 20:22:40 i never use a release version of sbcl 20:22:43 you have to look it up with git 20:22:45 point version have no tags 20:22:50 versions 20:22:53 didn't really want to think about it and realise it's a magic trick 20:23:01 I have no clue what a displaced array is 20:23:02 stassats: still, this is 1.0.55 20:23:15 (the released version) 20:23:22 -!- naeg [~naeg@194.208.239.170] has quit [Quit: WeeChat 0.3.8] 20:23:36 xristos [~x@2001:4968:200:0:5652:ff:fe55:7b51] has joined #lisp 20:23:42 -!- xristos is now known as Guest46453 20:23:51 I'm just stating the convention with other major git-based projects (which is my personal preference as well), that's all 20:24:03 it is, yes, but my sbcl version is 1.0.56.72.master.1-356ac6b, why should there be an inconsistent version scheme? 20:24:23 jcazevedo [~jcazevedo@253.225.189.46.rev.vodafone.pt] has joined #lisp 20:24:43 -!- snearch [~snearch@f053003182.adsl.alicedsl.de] has quit [Quit: Verlassend] 20:25:08 convention plus that it's easy to get confused by the git suffix into believing it's not a release version 20:25:23 Evaluation took: 0.079 seconds of real time 20:25:25 wow. 20:25:56 5,311,632 bytes consed 20:26:09 btw, does the official .tar.bz2 bundle show 'SBCL 1.0.57.0-77d8891' as well? 20:26:10 now I guess high-level optimization would include caring about that? 20:26:28 can you peak some real concern to complain about? 20:27:17 -!- dryman [~dryman@OpenISDM.iis.sinica.edu.tw] has quit [Ping timeout: 244 seconds] 20:27:18 I'm just saying.. if you disagree, that's fine 20:27:39 no need for hostility 20:28:34 ticking [~janpaulbu@87.253.189.132] has joined #lisp 20:30:07 even faster with (proclaim '(optimize 'speed)) 20:30:25 why proclaim? 20:30:34 -!- Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has quit [Ping timeout: 265 seconds] 20:30:47 I just don't know 20:30:54 well, it should be declaim 20:31:02 I want a global spec, I understood that one do that with proclaim 20:31:32 if you put proclaim into a file, it won't do a thing 20:31:44 -!- benkard [~benkard@mnch-5d854eab.pool.mediaWays.net] has quit [Remote host closed the connection] 20:31:53 it errs here 20:32:00 i tried that too...no dice 20:32:06 only declaim works 20:32:08 tsuru`` [~charlie@adsl-98-87-45-152.bna.bellsouth.net] has joined #lisp 20:32:15 wbooze: proclaim? it has too much quouting 20:32:36 (proclaim '(optimize speed)), or rather (declaim (optimize speed)) 20:32:38 -!- Phoodus [~foo@ip72-223-116-248.ph.ph.cox.net] has quit [Ping timeout: 245 seconds] 20:33:23 wait 20:33:44 (proclaim '(blah blah)) and (declaim (blah blah)) ? 20:33:55 so one has to have quotes ? 20:34:02 the other not ? 20:34:02 the former is a function 20:34:08 the later is a macro 20:34:09 oh 20:34:14 heh 20:34:18 -!- tsuru` [~charlie@adsl-98-87-44-20.bna.bellsouth.net] has quit [Ping timeout: 264 seconds] 20:34:30 dryman [~dryman@OpenISDM.iis.sinica.edu.tw] has joined #lisp 20:34:41 that's why you put declaim into the file, not proclaim, just proclaim will be run on load, after the compilation has finished 20:34:41 but apart from that i mean if you got the syntax right now, do they differ in any way ? 20:35:07 declaim expands into (eval-when (:compile-toplevel :load-toplevel :execute) (proclaim ...)) 20:35:17 aah 20:35:42 ok i have it right then.. no need for proclaim 20:36:21 proclaim is needed when you want to make declarations at run-time, which is quite rare 20:36:47 ok 20:37:16 -!- b__ [~b@cpc14-acto3-2-0-cust114.4-2.cable.virginmedia.com] has quit [Quit: Ex-Chat] 20:38:10 and there's no proclare... 20:42:12 -!- Vutral [ss@mirbsd/special/Vutral] has quit [Ping timeout: 255 seconds] 20:42:29 stassats: or when you need to compute a declamation at compile-time 20:43:09 -!- kennyd [~kennyd@93-136-56-99.adsl.net.t-com.hr] has quit [Quit: bye] 20:43:39 -!- FreeArtMan [~fam@93.177.213.54] has quit [Remote host closed the connection] 20:44:25 fe[nl]ix: declaim does that quite well too 20:44:50 -!- gravicappa [~gravicapp@ppp91-77-160-249.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 20:44:55 stassats: how ? 20:45:38 straightforwardly? perhaps you were implying something else 20:46:21 meaning, you just expand your macro into declaim and that's all 20:46:27 BeLucid_ [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 20:46:33 Vutral [ss@mirbsd/special/Vutral] has joined #lisp 20:46:50 -!- BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Read error: No route to host] 20:47:33 why would a (defmacro "&" () "&") not work in sbcl ? 20:47:43 I find it clearer to see (proclaim (compute-optimization-flags)) than some random macro 20:47:46 "&" is not valid macro name 20:47:53 |&| is 20:47:57 but you're right, it's not necessary 20:48:02 oh 20:48:03 Fare: & is 20:49:18 -!- Zabaq [~Zaba@ip-89-176-173-114.net.upcbroadband.cz] has quit [Ping timeout: 264 seconds] 20:49:51 fe[nl]ix: if you're putting it into every file, (optimization-flags) will look better than (eval-when (:all) (proclaim (compute-optimization-flags))) 20:50:03 or (declaim-optimization-flags) 20:50:40 and besides, declaim may expand into something else than just proclaim 20:51:03 like (CCL::COMPILE-TIME-PROCLAMATION ...) 20:51:31 so i could also use |"&"| i think... 20:51:44 wbooze: what do you want to do? 20:52:26 or EXCL::COMPILER-PROCLAIM on ACL 20:52:35 interesting 20:53:31 i don't want todo, it's from /home/wbooze/quicklisp/dists/quicklisp/software/mcclim-20120520-cvs/Tools/gilbert/clim-doc-convert.lisp there's a (define-simple-macro.....thing there 20:53:51 which was failing ... 20:54:05 it complained about some unicode stuff.... 20:55:38 why do you want to run this file? 20:55:57 not running just opening it would fail somehow.... 20:56:10 let running aside i mean.... 20:56:19 which editor? 20:56:25 not climacs, i hope 20:56:28 both emacs and climacs 20:56:45 is your emacs from the last century? 20:58:08 -!- apathor [~apathor@c-24-218-104-106.hsd1.ma.comcast.net] has quit [Quit: leaving] 20:58:34 why http://picpaste.de/pics/Bildschirmfoto2-yrKH8OJZ.1341781097.png 20:59:03 you're even using beirc, how quaint 20:59:28 yes 21:00:04 how well does it handle ? 21:00:54 well it displays it 21:01:18 anyhow, clim-doc-convert is using latin-1 21:01:49 and gnu emacs shouldn't complain 21:02:26 oh 21:02:32 and it's complaining not about "&", but about the next form 21:02:49 so i have to use external-format opening it ? 21:02:50 the "" there has a e with a diacritic mark 21:03:11 really ? 21:03:19 yes 21:03:31 climacs just can't decode it 21:03:35 i only see a normal e 21:04:02 it's ((equal x '("e")) "é") 21:04:09 ah 21:04:27 mine is empty 21:04:42 it's ((equal x '("e") "") here 21:04:54 well, i seen on the screenshot 21:04:59 even in gnu emacs? 21:05:25 i don't even know how to type in diacritics in it 21:05:30 it seems to not work 21:05:58 C-x 8 ' e in gnu emacs 21:06:55 or just é 21:06:56 :P 21:07:22 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Read error: Connection reset by peer] 21:07:34 oh wait, my X IME doesn't work with emacs (yet, old bug) 21:07:54 and somehow the compose key doesn't either, nvm 21:09:40 yep even in emacs 21:10:30 -!- Vutral [ss@mirbsd/special/Vutral] has quit [Quit: Life is too short] 21:10:39 what version of emacs is that? 21:10:50 or did you just delete that character? 21:12:45 phax [~phax@unaffiliated/phax] has joined #lisp 21:16:02 -!- MoALTz_ [~no@host-92-2-112-60.as43234.net] has quit [Quit: bbl] 21:17:50 -!- Kron_ [~Kron@2.49.82.19] has quit [Quit: Kron awayyy!] 21:18:15 Kron_ [~Kron@2.49.82.19] has joined #lisp 21:18:19 Vutral [~ss@mirbsd/special/Vutral] has joined #lisp 21:18:34 Solved 50 of 50 easy puzzles (avg .0036 sec (274.7 Hz), max 0.021 secs). 21:18:34 Solved 95 of 95 hard puzzles (avg 0.24 sec (4.166 Hz), max 3.404 secs). 21:18:34 Solved 11 of 11 hardest puzzles (avg .0086 sec (115.8 Hz), max 0.049 secs). 21:18:47 i think it showed as a ? mark ringed and shadowed there originally... 21:18:49 -!- Kron_ [~Kron@2.49.82.19] has quit [Client Quit] 21:18:56 puzzles? 21:18:57 then i saved it again i think and it got lost 21:19:01 the collection of "hard" puzzles is running really slower than in the Norvig's examples 21:19:07 i just now inserted one thru emacs there 21:19:14 sytse: see http://norvig.com/sudoku.html 21:19:16 and it's showing normally in climacs too 21:19:19 weird 21:19:19 ah, sudoku 21:19:42 -!- sellout [~Adium@c-98-245-92-119.hsd1.co.comcast.net] has quit [Quit: Leaving.] 21:19:54 -!- lebro [~monx@ool-18bab6ce.dyn.optonline.net] has quit [Ping timeout: 264 seconds] 21:20:29 wbooze: well, you inserted it using utf-8 21:20:32 it was in latin-1 21:20:41 ok 21:20:42 saved, meaning 21:20:57 well at least it's now in utf-8 21:21:37 so i'm off now 21:21:41 bye all 21:21:44 atsidi [~nkraft@ip72-192-253-246.dc.dc.cox.net] has joined #lisp 21:22:58 schoppenhauer [~christoph@unaffiliated/schoppenhauer] has joined #lisp 21:23:20 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 21:24:45 ku1 [~ku1@ip68-103-255-176.ks.ok.cox.net] has joined #lisp 21:26:06 Joreji [~thomas@vpn-eu1.unidsl.de] has joined #lisp 21:26:34 so I next step will be trying to beat that python version with some CL optimisation tricks, maybe revisiting the data structures 21:26:36 kingless [~user@108-65-61-54.lightspeed.rlghnc.sbcglobal.net] has joined #lisp 21:27:10 I have more than doubled the line count for much less speed average 21:27:12 not good 21:27:56 -!- Vutral [~ss@mirbsd/special/Vutral] has quit [Ping timeout: 248 seconds] 21:28:15 -!- mcspiff [~user@CPE78cd8ec16698-CM78cd8ec16695.cpe.net.cable.rogers.com] has quit [Ping timeout: 244 seconds] 21:30:10 dim: meh 21:31:05 sellout [~Adium@c-98-245-90-138.hsd1.co.comcast.net] has joined #lisp 21:32:00 BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 21:33:15 *maxm* had just spent 2 hours fighting with pretty printer, just so that I can have the vertical line right in the :stream part of this: http://i.imgur.com/DiWxw.png 21:33:24 -!- Guthur [~user@host86-148-164-73.range86-148.btcentralplus.com] has quit [Read error: Connection reset by peer] 21:33:28 -!- BeLucid_ [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Ping timeout: 245 seconds] 21:34:41 Vutral [~ss@vutral.net] has joined #lisp 21:36:02 BeLucid_ [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 21:36:29 -!- Vutral [~ss@vutral.net] has quit [Client Quit] 21:36:51 -!- BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Read error: Connection reset by peer] 21:37:51 kcj [~casey@unaffiliated/kcj] has joined #lisp 21:39:20 Guthur [~user@host86-148-164-73.range86-148.btcentralplus.com] has joined #lisp 21:40:05 BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 21:40:35 maxm: now that's some nice swankery :-P 21:40:37 -!- BeLucid_ [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Read error: No route to host] 21:40:55 looks good 21:41:45 ha thats nothing, look at this: http://i.imgur.com/dh2wW.png 21:42:00 Vutral [ss@mirbsd/special/Vutral] has joined #lisp 21:42:00 *maxm* is going to release this hopefully in next quicklisp 21:42:12 -!- BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Read error: Connection reset by peer] 21:42:27 BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 21:44:14 pjb: help hlavaty with iolib's windows port and you'll have a full-featured run-program 21:44:18 the idea is you can quickly nail down logging config you want (I do it by enabling everything, then muting stuff I don't need), then (log:save :conf1) or such, so you can have many configs for working on diff parts of the system 21:44:28 -!- BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Read error: Operation timed out] 21:44:36 BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 21:45:19 is there a lot of code out there already using log4cl maxm? 21:45:47 sytse: no idea, I had around 20 clones before it was in quicklisp, and 2 or 3 bugreports 21:46:15 ah 21:46:35 but the 7max/log4cl github repo is still the authoritative repo? 21:46:45 *maxm* does not really care that much about popularity to be honest, I put it out there, posted announcement etc.. "horse to water" and all that 21:46:56 sytse: yea 21:47:24 if you care about popularity I guess common lisp is not your thing =] 21:48:12 -!- BeLucid [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Read error: No route to host] 21:48:15 BeLucid_ [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 21:48:47 1 133 13.3 140 14.0 133 13.3 - SUDOKU::COUNT-REMAINING-POSSIBLE-VALUES 21:48:51 ahah I have profiling 21:48:55 sabalaba [~Adium@199-188-193-145.PUBLIC.monkeybrains.net] has joined #lisp 21:49:22 that would be a single call to integer-length with fixnums as bit-vectors, I have to do that tomorrow :) 21:49:47 logcount, you mean? 21:50:00 ah, yes, sorry, that one indeed 21:50:06 5 64 6.4 64 6.4 454 45.4 - SB-IMPL::SLOW-HAIRY-DATA-VECTOR-REF 21:50:16 does not feel good reading that either 21:50:27 -!- Alice3 [~Alice@cpc3-grim12-0-0-cust856.12-3.cable.virginmedia.com] has quit [] 21:50:31 is it slower to access a (9 9) array compared to a flat 81 vector ? 21:50:38 that means that your arrays are not properly declared 21:51:17 well I still have (make-array '(9 9) :element-type 'array), array of bit-vectors 21:51:49 trying (make-array '(9 9) :element-type 'simple-bit-vector) 21:52:03 neither makes any difference 21:52:10 you can just omit it 21:52:12 Fare: was it you that once posted an explanation of how nested eval-when forms work ? 21:52:14 ok 21:52:24 the element-type argument, that is 21:52:26 I'm using log4cl in a few places. 21:53:07 but, (make-array '(9 9 9) :element-type 'bit) might 21:53:23 -!- ehu` [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 250 seconds] 21:53:33 hurray, a customer! 21:53:40 the access are not the same then, so I'd rather switch to logcount and friends 21:54:38 count on bit-vectors is using logcount underneath, if it knows that it's a simple-bit-vector at compile-time 21:54:48 of course, there's some overhead 21:54:54 is there an easy way to get an integer from a bit-vector ? 21:54:54 I haven't had any trouble with it. seems to work as advertised. Thanks. :) 21:55:06 oh 21:55:57 maxm: wheheh 21:56:01 if you have (declare ((simple-bit-vector 9) bv)) (count 1 bv) it's going to be quite fast 21:56:18 or 10, rather 21:56:34 (declare (type (simple-bit-vector 10) possible-values)) 21:56:36 I have that 21:56:41 or 9, i guess it doesn't include 0 21:56:48 or no, it's still 10 21:56:58 I include it so that I don't have to map the indexes 21:57:16 right 21:57:43 dim: and you do have (count 1 possible-values)? 21:57:59 I didn't, I was doing it with a manual loop 21:58:05 I'm trying with it 21:58:20 it's way better in the simplest case, change nothing in the slower one 21:58:45 well, reprofile and repeat 21:58:55 yes, not now tho, it's midnight already 21:59:01 are you doing this in sbcl? because everything i said was about sbcl 21:59:04 thanks for the trick already tho :) 21:59:12 yes I just did try in sbcl 21:59:51 -!- bzzbzz [~franco@modemcable151.155-57-74.mc.videotron.ca] has quit [Quit: leaving] 22:00:00 -!- pnq [~nick@ACA32E7B.ipt.aol.com] has quit [Read error: Connection reset by peer] 22:01:58 -!- jcazevedo [~jcazevedo@253.225.189.46.rev.vodafone.pt] has quit [Quit: jcazevedo] 22:02:16 it did no good at all to ccl 22:02:40 because it doesn't have such optimizations 22:02:47 -!- punee [~punee@set25-1-88-166-168-141.fbx.proxad.net] has quit [Quit: punee] 22:04:36 -!- stat_vi [~stat@dslb-094-218-247-164.pools.arcor-ip.net] has quit [Quit: leaving] 22:04:40 jcazevedo [~jcazevedo@253.225.189.46.rev.vodafone.pt] has joined #lisp 22:08:46 -!- BeLucid_ [~belucid@cpe-066-057-057-247.nc.res.rr.com] has quit [Read error: Connection reset by peer] 22:09:20 tsuru``` [~charlie@adsl-98-87-50-157.bna.bellsouth.net] has joined #lisp 22:09:20 BeLucid_ [~belucid@cpe-066-057-057-247.nc.res.rr.com] has joined #lisp 22:11:11 adam7504 [~adam@host86-157-32-173.range86-157.btcentralplus.com] has joined #lisp 22:11:30 -!- tsuru`` [~charlie@adsl-98-87-45-152.bna.bellsouth.net] has quit [Ping timeout: 264 seconds] 22:13:20 -!- atsidi [~nkraft@ip72-192-253-246.dc.dc.cox.net] has quit [Quit: Leaving on a jet plane...] 22:15:24 -!- sytse [sytse@swielinga.nl] has quit [Ping timeout: 248 seconds] 22:17:37 -!- mucker [~mucker@183.83.240.198] has quit [Ping timeout: 240 seconds] 22:17:46 -!- ticking [~janpaulbu@87.253.189.132] has quit [Quit: Leaving...] 22:19:49 ticking [~janpaulbu@87.253.189.132] has joined #lisp 22:20:15 -!- Joreji [~thomas@vpn-eu1.unidsl.de] has quit [Ping timeout: 246 seconds] 22:22:31 -!- adam7504 [~adam@host86-157-32-173.range86-157.btcentralplus.com] has quit [Quit: Colloquy for iPhone - http://colloquy.mobi] 22:24:06 -!- DrForr [~jgoff@d149031.upc-d.chello.nl] has quit [Ping timeout: 264 seconds] 22:26:04 fe[nl]ix, I wrote something about eval-when http://fare.livejournal.com/146698.html 22:26:14 so far as I know, when nested, the innermost wins. 22:26:42 eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has joined #lisp 22:26:43 at least as long as it hasn't been totally cancelled by outer ones 22:27:11 that sounds like the outermost loses 22:27:21 it's probably not safe to portably rely on anything bad 22:28:06 stassats: I suspect an (eval-when () (eval-when (:load-toplevel) foo) expands to NIL, not foo 22:28:27 Phoodus [~foo@wsip-68-107-217-139.ph.ph.cox.net] has joined #lisp 22:29:26 (eval-when () anything) will be NIL 22:29:42 ltriant [~ltriant@110-174-168-43.static.tpgi.com.au] has joined #lisp 22:30:18 stassats: exactly what I said -- so as long as the outer ones don't NILify everything, I expect the innermost to win. 22:30:41 win sounds like there's a competition and someone loses 22:31:00 "has precedence" 22:31:08 precedence over what? 22:31:23 over outer :load-toplevel :compile-toplevel statements 22:31:54 I suppose it would be valid also to always use the strictest interpretation 22:32:10 i.e. (eval-when (compile) (eval-when (load) foo)) ==> nil 22:32:26 Fare: http://paste.lisp.org/+2SNN 22:33:24 -!- kingless [~user@108-65-61-54.lightspeed.rlghnc.sbcglobal.net] has quit [Ping timeout: 252 seconds] 22:33:45 fe[nl]ix, that's fucked up 22:33:50 -!- Vutral [ss@mirbsd/special/Vutral] has quit [Ping timeout: 255 seconds] 22:33:51 Fare: precedence over something means to me either it overrides the actions of outermost or is processed before them 22:33:54 -!- ticking [~janpaulbu@87.253.189.132] has quit [Quit: Linkinus - http://linkinus.com] 22:34:16 Fare: that was related to stassats's remark that declaim has a non-trivial expansion on CCL 22:34:25 i'd call it that the outermost combined with the innermost allows a statement to be executed 22:34:27 carlo_au [~carlo@ppp59-167-1-133.lns1.mel4.internode.on.net] has joined #lisp 22:34:35 fe[nl]ix, a lot of things are a bit weird on ccl 22:34:43 so I was wondering what happens if I wrap the expansion of CCL's declaim in a eval-when :compile-toplevel 22:34:54 not what I had expected 22:34:56 see how I worked around some weirdness when implementing asdf-finalizers 22:35:12 -!- r_r_r [~chatzilla@77.127.28.70] has quit [Quit: ChatZilla 0.9.88.2 [Firefox 13.0.1/20120614114901]] 22:35:26 Fare: and it's the same on SBCL and CCL, so I guess it's a reasonable interpretation of the standard 22:35:29 fe[nl]ix: that's how it's specified in CLHS 22:35:41 where ? 22:35:41 commit 61dce865e03a7d93ef5683f5e048d995e914ae3c 22:35:54 gtg 22:36:03 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Read error: Connection reset by peer] 22:36:05 clhs 3.2.3.1 22:36:05 Processing of Top Level Forms: http://www.lispworks.com/reference/HyperSpec/Body/03_bca.htm 22:36:17 the table, specifically 22:36:29 Fare: what branch ? 22:36:33 -!- flavioribeiro [~flaviorib@177.142.160.5] has quit [Read error: Connection reset by peer] 22:36:54 in other words, ccl's eval-when flushes some evaluation structures; without that, (final-forms) after an (eval-when) would fail to do the right thing 22:37:03 Fare: branch master @ git://common-lisp.net/projects/asdf/asdf.git doesn't have that commit 22:37:09 fe[nl]ix, ssh://common-lisp.net/project/asdf/git/asdf-finalizers.git 22:37:14 aah 22:37:15 ok 22:37:40 -!- Fare [~fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has quit [Quit: Leaving] 22:37:41 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 22:38:15 Vutral [ss@mirbsd/special/Vutral] has joined #lisp 22:39:07 -!- bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has quit [Remote host closed the connection] 22:39:40 bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has joined #lisp 22:39:49 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Remote host closed the connection] 22:41:01 killerboy [~mateusz@217.17.38.43] has joined #lisp 22:42:25 pnq [~nick@AC82EABC.ipt.aol.com] has joined #lisp 22:42:35 -!- jcazevedo [~jcazevedo@253.225.189.46.rev.vodafone.pt] has quit [Quit: jcazevedo] 22:45:36 -!- schoppenhauer [~christoph@unaffiliated/schoppenhauer] has quit [Quit: leaving] 22:45:42 flavioribeiro [~flaviorib@177.142.160.5] has joined #lisp 22:46:18 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Ping timeout: 264 seconds] 22:46:32 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 22:46:36 -!- carlo_au [~carlo@ppp59-167-1-133.lns1.mel4.internode.on.net] has quit [Quit: Leaving] 22:46:47 -!- Tristam [~Tristam@bodhilinux/team/Tristam] has quit [Ping timeout: 244 seconds] 22:46:49 Trystam [~Tristam@bodhilinux/team/Tristam] has joined #lisp 22:48:33 tsuru```` [~charlie@adsl-98-87-48-203.bna.bellsouth.net] has joined #lisp 22:50:30 -!- tsuru``` [~charlie@adsl-98-87-50-157.bna.bellsouth.net] has quit [Ping timeout: 264 seconds] 22:51:07 iLogical_ [~iLogical@unaffiliated/ilogical] has joined #lisp 22:51:15 Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has joined #lisp 22:52:09 right, just rechecked the logic of CLHS, it checks out with the behaviour of all implementations 22:52:42 and the maxim that unless you know what you're doing, you should always use all options for eval-when still stands 22:53:02 indeed 22:53:37 -!- puchacz [~puchacz@87-194-5-99.bethere.co.uk] has quit [Ping timeout: 240 seconds] 22:53:43 but that's of no avail if I want to limit something to the compilation environment 22:54:42 -!- iLogical [~iLogical@unaffiliated/ilogical] has quit [Ping timeout: 264 seconds] 22:55:13 you shall not desire such things 22:55:16 Demosthenex [~demo@206.180.155.43.adsl.hal-pc.org] has joined #lisp 22:55:49 would not just :compile-type :execute do it? 22:55:58 ie define a function which is used in a reader maro 22:56:06 wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has joined #lisp 22:56:08 -!- wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has quit [Client Quit] 22:56:34 maxm: fe[nl]ix is talking about eval-whens inside eval-whens 22:56:56 (eval-when (:compile-toplevel :execute) (defun me-visible-only-when-compiling-or-loading-source ...) (change-readtable-to-use-above)) 22:57:08 ah 22:57:21 (eval-when (:compile-toplevel :execute) (eval-when (:compile-toplevel) (print 'x))) won't be executed 22:57:39 wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has joined #lisp 22:57:52 -!- wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has quit [Client Quit] 22:58:14 -!- flanfl [~flanfl@cpc1-sgyl27-2-0-cust785.sgyl.cable.virginmedia.com] has quit [Remote host closed the connection] 22:58:33 wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has joined #lisp 22:58:35 -!- wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has quit [Client Quit] 22:58:44 I'm afraid that the only answer may be that eval-when wasn't designed for this use case, too bad for me 22:59:03 and not defining functions at run-time is a good way to piss-of somebody who wants to do run-time modifications 22:59:10 -!- Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has quit [Quit: leaving] 22:59:10 -!- Demosthenex [~demo@206.180.155.43.adsl.hal-pc.org] has quit [Client Quit] 22:59:12 :) 22:59:23 but you can't just use :compile-time portably. you need to combine with :execute to handle lisps with no compiler 22:59:27 Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has joined #lisp 22:59:27 and sbcl is quite guilty of it 22:59:53 I was thinking more of making sure that a declamation is file-local 22:59:58 possibility to just have single :compile is there I think to allow targeting implementations where you are sure there is a compiler 23:00:05 maxm: imagine that you're not putting (eval-when (:compile-time)) directly 23:00:11 -!- sellout [~Adium@c-98-245-90-138.hsd1.co.comcast.net] has quit [Quit: Leaving.] 23:00:45 (macroexpand '(declaim )) => (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (CCL::COMPILE-TIME-PROCLAMATION 'NIL NIL)) (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE))) 23:01:15 wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has joined #lisp 23:01:15 -!- wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has quit [Client Quit] 23:01:31 wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has joined #lisp 23:01:36 maxm: so, if you put (eval-when (:compile-time :execute) (declaim ...)) for the chance that it will get the ccl::compile-time-proclamation, you won't get it 23:02:12 -!- wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has quit [Client Quit] 23:03:20 supposedly, proclaim does the same thing as ccl::compile-time-proclamation, but who knows 23:04:52 -!- _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has quit [Ping timeout: 244 seconds] 23:04:53 -!- meiji11 [~user@96.51.60.120] has quit [Remote host closed the connection] 23:05:08 wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has joined #lisp 23:05:11 -!- ku1 [~ku1@ip68-103-255-176.ks.ok.cox.net] has quit [Ping timeout: 252 seconds] 23:05:41 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 23:08:08 sellout [~Adium@c-98-245-92-119.hsd1.co.comcast.net] has joined #lisp 23:08:26 jcazevedo [~jcazevedo@bl6-94-169.dsl.telepac.pt] has joined #lisp 23:13:08 -!- dnolen [~user@pool-96-224-18-102.nycmny.east.verizon.net] has quit [Ping timeout: 244 seconds] 23:14:43 -!- alexander__b [~alexander@140.100.189.109.customer.cdi.no] has quit [Ping timeout: 245 seconds] 23:15:33 Amadiro_ [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has joined #lisp 23:15:37 I don't get it, you saying the compile-time-proclamation is not called above in ccl? 23:16:40 -!- Amadiro [~Amadiro@ti0021a380-dhcp0217.bb.online.no] has quit [Ping timeout: 252 seconds] 23:18:05 -!- iocor [~textual@unaffiliated/iocor] has quit [Quit: Computer has gone to sleep.] 23:18:10 -!- sabalaba [~Adium@199-188-193-145.PUBLIC.monkeybrains.net] has quit [Read error: Connection reset by peer] 23:18:18 sabalaba [~Adium@199-188-193-145.PUBLIC.monkeybrains.net] has joined #lisp 23:20:07 stassats: tested it and yes its not called, I say its a bug in ccl.. according to that clhs CT LT E table, (:compile-toplevel) by itself should be always evaluated, no? 23:20:41 it's not a bug, read the spec more carefully 23:21:17 hmm "Yes No --- --- Evaluate --- " seems to say evaluate regardless? which other part you mean 23:21:20 alexander__b [~alexander@140.100.189.109.customer.cdi.no] has joined #lisp 23:22:13 -!- eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has quit [Quit: Leaving] 23:22:23 read the beat about evaluate, and then "eval-when forms cause compile-time evaluation only at top level." 23:22:35 when the action is evaluate, it's not at the top level 23:23:11 -!- Guest46453 is now known as xristos 23:23:43 -!- bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has quit [Remote host closed the connection] 23:23:43 -!- Jasko [~tjasko@c-174-59-201-95.hsd1.pa.comcast.net] has quit [Read error: Connection reset by peer] 23:24:13 Jasko [~tjasko@c-174-59-201-95.hsd1.pa.comcast.net] has joined #lisp 23:24:48 ah ok, got it, the "evaluate" part does in not a top-level environment 23:24:50 bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has joined #lisp 23:25:11 -!- bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has quit [Remote host closed the connection] 23:25:44 bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has joined #lisp 23:26:14 -!- bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has quit [Remote host closed the connection] 23:26:17 there must be some way to figure it out, by using various combinations of eval-when to figure out current compilation mode, ie CTT or NCT, and set global var, then use it from inside of evaluated code 23:26:54 bitonic [~user@host86-154-103-109.range86-154.btcentralplus.com] has joined #lisp 23:27:27 -!- ChibaPet [~ChibaPet@fsf/member/chibapet] has left #lisp 23:28:18 -!- wormphlegm [~wormphleg@c-50-131-44-231.hsd1.ca.comcast.net] has quit [Ping timeout: 264 seconds] 23:28:38 -!- pnq [~nick@AC82EABC.ipt.aol.com] has quit [Ping timeout: 244 seconds] 23:29:38 current mode can be determine by execute only.. ie (progn (eval-when (:compile-toplevel) (setf *mode* :NCT)) (eval-when (:execute) (setf *mode* :CTT))) 23:30:05 1st setf will be evaluated always, and 2nd one only if we are in CTT 23:30:41 why would you want to determine it? 23:31:55 -!- sellout [~Adium@c-98-245-92-119.hsd1.co.comcast.net] has quit [Quit: Leaving.] 23:32:05 so you can have a macro that for example expands into another eval-when with either (proclaim) or (declaim) 23:32:20 depending on mode 23:32:53 anyway, now my head hurts, and I forgot wtf I was doing before I got involved, gee thanks 23:33:59 -!- kmcorbett [~kmcorbett@173-9-35-41-NewEngland.hfc.comcastbusiness.net] has quit [Quit: Leaving.] 23:34:35 -!- Guthur [~user@host86-148-164-73.range86-148.btcentralplus.com] has quit [Remote host closed the connection] 23:40:11 -!- Jeanne-Kamikaze [~Jeanne-Ka@235.177.223.87.dynamic.jazztel.es] has quit [Quit: Did you hear that ?] 23:41:15 pnq [~nick@ACA35713.ipt.aol.com] has joined #lisp 23:42:52 atsidi [~nkraft@ip72-192-253-246.dc.dc.cox.net] has joined #lisp 23:44:28 -!- killerboy [~mateusz@217.17.38.43] has quit [Quit: bye] 23:46:18 -!- tsuru```` [~charlie@adsl-98-87-48-203.bna.bellsouth.net] has quit [Ping timeout: 264 seconds] 23:47:35 that's eval-when for you 23:47:53 but you one should just use a fully-qualified eval-when and be done with it 23:53:19 sellout [~Adium@70.96.9.235] has joined #lisp