2015-05-16T00:00:27Z x1n4u quit (Ping timeout: 276 seconds) 2015-05-16T00:01:24Z clop2 joined #lisp 2015-05-16T00:03:40Z bebonu is now known as bejonu 2015-05-16T00:06:06Z dmiles_afk quit (Read error: Connection reset by peer) 2015-05-16T00:06:08Z j4cknewt joined #lisp 2015-05-16T00:06:40Z k-stz quit (Remote host closed the connection) 2015-05-16T00:15:01Z j4cknewt quit (Remote host closed the connection) 2015-05-16T00:17:19Z joneshf-laptop joined #lisp 2015-05-16T00:18:32Z harish__ quit (Remote host closed the connection) 2015-05-16T00:21:36Z harish joined #lisp 2015-05-16T00:23:13Z katco: is there a way to define a string so that i don't have to escape quotes? e.g.: `this is "my" string` 2015-05-16T00:23:18Z katco: in CL 2015-05-16T00:23:58Z Adlai: clhs set-macro-character 2015-05-16T00:23:58Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_set_ma.htm 2015-05-16T00:25:16Z katco: Adlai: reading over that, that is not to answer my question is it? 2015-05-16T00:26:06Z Adlai: you want to set-macro-character #\` to something that snarfs up to the next #\` and returns that 2015-05-16T00:27:19Z katco: Adlai: ah ok. ty 2015-05-16T00:27:45Z harish quit (Ping timeout: 276 seconds) 2015-05-16T00:30:23Z Cthulhux: trying to build a version comparison script in lisp 2015-05-16T00:30:56Z Cthulhux: why does this not work? :| 2015-05-16T00:30:57Z Cthulhux: http://paste.lisp.org/display/148277 2015-05-16T00:31:18Z Cthulhux: (compare-versions "2.4" "2.5") -> it says "not REAL" which is true... 2015-05-16T00:34:57Z dmiles_afk joined #lisp 2015-05-16T00:35:54Z wooden joined #lisp 2015-05-16T00:35:54Z wooden quit (Changing host) 2015-05-16T00:35:54Z wooden joined #lisp 2015-05-16T00:38:54Z jdm_ joined #lisp 2015-05-16T00:41:47Z Oladon1 joined #lisp 2015-05-16T00:42:13Z a2015_ joined #lisp 2015-05-16T00:42:37Z x1n4u joined #lisp 2015-05-16T00:44:47Z Oladon quit (Ping timeout: 264 seconds) 2015-05-16T00:46:45Z Bike: string> doesn't return a number 2015-05-16T00:47:04Z Bike: er, sorry, yes it does 2015-05-16T00:47:21Z futpib quit (Ping timeout: 240 seconds) 2015-05-16T00:48:21Z Bike: string> can return a number or NIL, and (plusp NIL) isn't going to work 2015-05-16T00:48:33Z singularity_1021 joined #lisp 2015-05-16T00:48:54Z voidlily joined #lisp 2015-05-16T00:49:33Z Cthulhux: can i catch this case by returning 0? 2015-05-16T00:50:12Z Cthulhux: my plan was to return "t" or "NIL" but i seem to have misunderstood the whole syntax here 2015-05-16T00:51:01Z eazar001_nondet joined #lisp 2015-05-16T00:51:37Z Bike: no, because string> doesn't work like you want any way - try (string> "2.4" "2.5") and (string> "2.4" "2.4") 2015-05-16T00:51:40Z eazar001_nondet is now known as juliuscaezar001 2015-05-16T00:52:18Z Bike: no, wait, confused again. i'm sorry. 2015-05-16T00:52:33Z Cthulhux: in some cases i get a number which is perfect. 2015-05-16T00:52:47Z Cthulhux: don't worry, sometimes i try code before asking questions about it :) 2015-05-16T00:53:02Z Bike: You'll get a number out of (string> a b) iff a is greater than b. if they're equal, OR if a is less than b, you get nil. 2015-05-16T00:54:07Z Cthulhux: so, basically, a (if (string> "2.4" "2.5") (1) (0)) should do? 2015-05-16T00:54:37Z dmiles_afk quit 2015-05-16T00:55:07Z Bike: Why is it returning numbers now? 2015-05-16T00:55:12Z Bike: but yeah, just string>, no plusp. 2015-05-16T00:55:44Z Cthulhux: i could live with true or false, but afaics lisp usually has numbers 2015-05-16T00:56:02Z Bike: no, it's usually t and nil. 2015-05-16T00:56:11Z Cthulhux: oh, ok 2015-05-16T00:56:27Z Bike: also, even if it wasn't, "(1)" isn't valid, that would try to call the "1" function, which doesn't make a ton of sense. 2015-05-16T00:58:30Z pacon joined #lisp 2015-05-16T00:58:31Z Cthulhux: good point 2015-05-16T00:58:36Z Cthulhux: thanks, it works now :) 2015-05-16T01:03:48Z jdm_ quit (Ping timeout: 244 seconds) 2015-05-16T01:07:34Z Oladon1: JokesOnYou77: Why did you stuff my code full of bugs? 2015-05-16T01:07:39Z Jaskologist joined #lisp 2015-05-16T01:08:15Z Oladon1 is now known as Oladon 2015-05-16T01:13:54Z radioninja quit (Ping timeout: 276 seconds) 2015-05-16T01:14:08Z joga quit (Ping timeout: 244 seconds) 2015-05-16T01:14:35Z pyon quit (Quit: fix config) 2015-05-16T01:15:03Z joga joined #lisp 2015-05-16T01:16:21Z enitiz joined #lisp 2015-05-16T01:16:37Z enitiz_ joined #lisp 2015-05-16T01:17:09Z pyon joined #lisp 2015-05-16T01:17:28Z cosmicexplorer quit (Ping timeout: 272 seconds) 2015-05-16T01:17:49Z harish joined #lisp 2015-05-16T01:19:21Z pacon quit (Read error: Connection reset by peer) 2015-05-16T01:20:02Z enitiz_ quit (Client Quit) 2015-05-16T01:20:09Z enitiz quit (Client Quit) 2015-05-16T01:20:39Z pacon joined #lisp 2015-05-16T01:21:42Z cyphase quit (Ping timeout: 256 seconds) 2015-05-16T01:21:51Z 6A4ACHBUG quit (Ping timeout: 256 seconds) 2015-05-16T01:24:26Z aap_ joined #lisp 2015-05-16T01:24:37Z JokesOnYou77 not it 2015-05-16T01:24:42Z JokesOnYou77: ^Again 2015-05-16T01:24:57Z Jaskologist quit (Ping timeout: 240 seconds) 2015-05-16T01:25:04Z Guest4130 joined #lisp 2015-05-16T01:25:10Z JokesOnYou77: Oladon, At least, I don't think it was me 2015-05-16T01:27:10Z Oladon: JokesOnYou77: You protest too much... must've been you. 2015-05-16T01:27:44Z JokesOnYou77: :_( 2015-05-16T01:28:06Z aap quit (Ping timeout: 272 seconds) 2015-05-16T01:28:43Z Oladon: It all started when I decided to try to write a portion of my code in a better way 2015-05-16T01:29:27Z Oladon: rewrite* 2015-05-16T01:30:24Z JokesOnYou77: Oladon, O, but I'll keep my word 2015-05-16T01:30:36Z JokesOnYou77: And, It always starts that way. 2015-05-16T01:31:27Z JokesOnYou77: I wrote a short style guide for interns, my favorite part is: "If you find yourself in the middle of a massive refactor and you don't know how you got there..." 2015-05-16T01:31:32Z f3lp joined #lisp 2015-05-16T01:31:42Z Oladon: "... you're doing it right"? 2015-05-16T01:31:46Z Oladon: :P 2015-05-16T01:33:45Z oleo_ joined #lisp 2015-05-16T01:34:38Z gz quit (Connection reset by peer) 2015-05-16T01:34:56Z XachX quit (Connection reset by peer) 2015-05-16T01:35:05Z JokesOnYou77: Actually, I went with, "don't panic. Look around and ask yourself, when was the last time you had something to eat" 2015-05-16T01:35:15Z Oladon: That works too, I suppose. 2015-05-16T01:35:15Z JokesOnYou77: ? 2015-05-16T01:35:27Z oleo quit (Ping timeout: 256 seconds) 2015-05-16T01:35:45Z Oladon: Sigh... I keep coming back to predicate dispatch as the best way of solving this problem, but I suspect it really isn't. 2015-05-16T01:35:55Z JokesOnYou77: It was based heavily on personal experience, and what I wish I'd done more often lol. 2015-05-16T01:36:07Z JokesOnYou77: predicate dispatch/ 2015-05-16T01:36:09Z JokesOnYou77: ? 2015-05-16T01:36:30Z JokesOnYou77: Stupid right shift key... stopped woking last week and I still don't know why 2015-05-16T01:36:53Z Oladon: Yeah, dispatching method(s) at run-time based on slot values of the arguments 2015-05-16T01:37:35Z Oladon: But for one, I /really/ don't want to implement something like that, and for two... there must be a better way. 2015-05-16T01:37:41Z Guest4130 quit (Changing host) 2015-05-16T01:37:41Z Guest4130 joined #lisp 2015-05-16T01:38:40Z JokesOnYou77: So, pass in an arg that has slots that tell you what functions to run? That doesn't sound completely unreasonable, but maybe I'm missing something? 2015-05-16T01:40:14Z Oladon: Not quite -- basically instead of (defmethod foo ((bar number)) ...) you could do something like (defmethod foo ((bar (slot-value x 'slot1))) ...) 2015-05-16T01:41:00Z Oladon: Specializing on arbitrary things about the arguments instead of just their class 2015-05-16T01:41:21Z Oladon: Based on cursory research, I think it's not usually very efficient 2015-05-16T01:42:34Z JokesOnYou77: Hmmm...there is a certain appeal in terms of abstraction/flexibility, but I can see why you wouldn't want to write that, it seems like debugging would be a nightmare. 2015-05-16T01:43:05Z Oladon: Yeah, not to mention the time spent not working on my actual project 2015-05-16T01:43:14Z JokesOnYou77: heh 2015-05-16T01:43:51Z Oladon: It was nearly ready for alpha a few days ago... and then I thought "I could just add this one other feature..." 2015-05-16T01:43:57Z Oladon: Two (three?) refactors later... 2015-05-16T01:45:00Z JokesOnYou77: Yeah, when you move fast there's always that trade off between working on features and working on code. 2015-05-16T01:46:32Z Oladon grumbles 2015-05-16T01:46:35Z jlongster joined #lisp 2015-05-16T01:50:01Z JokesOnYou77 completely mesmerized by graph layout algorithm running O.O 2015-05-16T01:50:08Z Guest4130 left #lisp 2015-05-16T01:50:34Z cyphase joined #lisp 2015-05-16T01:50:40Z Oladon: Alrighty, I'm gonna submerge myself in this code again. Good chatting! 2015-05-16T01:50:55Z JokesOnYou77: You too. Good luck! 2015-05-16T01:52:37Z average quit (Quit: leaving) 2015-05-16T01:53:33Z jdz quit (Ping timeout: 276 seconds) 2015-05-16T01:53:33Z trilakin quit (Quit: Page closed) 2015-05-16T01:57:21Z bejonu is now known as irobevjodu 2015-05-16T01:58:40Z Adlai is now known as adlai 2015-05-16T01:59:44Z grant joined #lisp 2015-05-16T01:59:50Z grant is now known as Guest68839 2015-05-16T01:59:57Z stardiviner quit (Ping timeout: 250 seconds) 2015-05-16T02:00:42Z jdz joined #lisp 2015-05-16T02:02:17Z Guest68839 left #lisp 2015-05-16T02:02:27Z {}grant joined #lisp 2015-05-16T02:03:35Z zacharias_ joined #lisp 2015-05-16T02:03:38Z zacharias_ quit (Changing host) 2015-05-16T02:03:38Z zacharias_ joined #lisp 2015-05-16T02:07:05Z zacharias quit (Ping timeout: 246 seconds) 2015-05-16T02:07:20Z nikki93 joined #lisp 2015-05-16T02:09:38Z drmeister: Clasp has immediate fixnum's, character's, and single-float's 2015-05-16T02:12:25Z nikki93 quit (Remote host closed the connection) 2015-05-16T02:13:59Z harish quit (Ping timeout: 245 seconds) 2015-05-16T02:15:41Z joneshf-laptop quit (Quit: Leaving) 2015-05-16T02:15:59Z joneshf-laptop joined #lisp 2015-05-16T02:17:22Z A205B064 quit (Ping timeout: 255 seconds) 2015-05-16T02:21:07Z badkins_ quit 2015-05-16T02:22:46Z clop2 quit (Ping timeout: 255 seconds) 2015-05-16T02:23:23Z theos quit (Disconnected by services) 2015-05-16T02:23:49Z theos joined #lisp 2015-05-16T02:24:26Z keen____ quit (Read error: Connection reset by peer) 2015-05-16T02:25:06Z jlongster quit (Ping timeout: 272 seconds) 2015-05-16T02:25:36Z Davidbrcz quit (Ping timeout: 265 seconds) 2015-05-16T02:26:25Z jdm_ joined #lisp 2015-05-16T02:27:25Z keen____ joined #lisp 2015-05-16T02:30:37Z innertracks1 joined #lisp 2015-05-16T02:31:38Z innertracks quit (Ping timeout: 244 seconds) 2015-05-16T02:32:15Z jlongster joined #lisp 2015-05-16T02:32:46Z zacts quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-05-16T02:35:03Z rtoym quit (Quit: ChatZilla 0.9.91.1 [Firefox 37.0.2/20150415140819]) 2015-05-16T02:41:56Z {}grant quit (Ping timeout: 252 seconds) 2015-05-16T02:43:48Z cirklo joined #lisp 2015-05-16T02:43:50Z cirklo: ahh it's a wonderful day 2015-05-16T02:45:04Z lemonpepper24_: How do I measure time in milliseconds in common lisp? 2015-05-16T02:45:25Z ndrei quit (Ping timeout: 264 seconds) 2015-05-16T02:46:20Z adlai: clhs get-internal-real-time 2015-05-16T02:46:21Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_get_in.htm 2015-05-16T02:46:33Z lemonpepper24_: thanks. 2015-05-16T02:47:03Z ndrei joined #lisp 2015-05-16T02:47:05Z Oladon: cirklo: Except it's night... ;) 2015-05-16T02:49:16Z sdothum quit (Quit: ZNC - 1.6.0 - http://znc.in) 2015-05-16T02:50:49Z sz0 quit (Ping timeout: 256 seconds) 2015-05-16T02:52:14Z jlongster quit (Ping timeout: 246 seconds) 2015-05-16T02:52:49Z sz0 joined #lisp 2015-05-16T02:54:19Z jlongster joined #lisp 2015-05-16T02:55:37Z wemeetagain joined #lisp 2015-05-16T02:59:23Z juliuscaezar001 quit (Quit: Connection closed for inactivity) 2015-05-16T03:00:52Z irobevjodu quit (Ping timeout: 256 seconds) 2015-05-16T03:01:15Z KarlDscc joined #lisp 2015-05-16T03:02:18Z singularity_1 joined #lisp 2015-05-16T03:03:06Z singularity_1021 quit (Ping timeout: 276 seconds) 2015-05-16T03:03:34Z harish joined #lisp 2015-05-16T03:04:50Z Karl_Dscc quit (Ping timeout: 258 seconds) 2015-05-16T03:05:12Z dmiles_afk joined #lisp 2015-05-16T03:05:59Z thinkpad_ joined #lisp 2015-05-16T03:07:00Z Denommus joined #lisp 2015-05-16T03:08:48Z thinkpad quit (Ping timeout: 272 seconds) 2015-05-16T03:09:17Z cosmicexplorer joined #lisp 2015-05-16T03:10:37Z innertracks1 quit (Quit: innertracks1) 2015-05-16T03:11:20Z dmiles_afk is now known as dmiles 2015-05-16T03:12:21Z thinkpad_ quit (Ping timeout: 256 seconds) 2015-05-16T03:14:45Z idafyaid joined #lisp 2015-05-16T03:21:44Z pyon quit (Quit: fix config) 2015-05-16T03:22:05Z linux_dream quit (Quit: Leaving) 2015-05-16T03:22:29Z pyon joined #lisp 2015-05-16T03:23:56Z beach joined #lisp 2015-05-16T03:24:05Z beach: Good morning everyone! 2015-05-16T03:27:10Z drmeister: Hi beach. 2015-05-16T03:27:27Z drmeister: I have immediate fixnum's, character's, and single-float's. 2015-05-16T03:27:36Z drmeister: Clasp is compiling itself now. 2015-05-16T03:28:09Z beach: Congratulations! 2015-05-16T03:28:28Z beach: I was worried there for a while because of all the problems you had to solve. 2015-05-16T03:29:12Z drmeister: I was worried as well. 2015-05-16T03:29:20Z drmeister: That was quite a transformation. 2015-05-16T03:29:33Z beach: Yeah. 2015-05-16T03:32:47Z beach: drmeister: Would there be any advantage to creating LLVM bitcode files from Common Lisp? 2015-05-16T03:33:01Z beach: drmeister: I.e., could such files be used to bootstrap the system? 2015-05-16T03:33:46Z innertracks joined #lisp 2015-05-16T03:35:40Z drmeister: Re: fitting a double precision value into 64bits with a tag. What if you were to store a tag in the lower three bits and when you want to recover the double precision value you copy bits 62,61,60 -> 2 1 0. Then you limit the range of the double precision but you don't mess with the precision. 2015-05-16T03:35:47Z frkout joined #lisp 2015-05-16T03:35:50Z k-dawg joined #lisp 2015-05-16T03:36:58Z drmeister: I generate bitcode files from Common Lisp all the time. They could be used to bootstrap the system but it's not any better than the C++ source. 2015-05-16T03:37:43Z beach: drmeister: You could generate bitcode files from an existing Common Lisp implementation. 2015-05-16T03:37:59Z beach: drmeister: Wouldn't that help in bootstrapping the system? 2015-05-16T03:38:09Z innertracks quit (Client Quit) 2015-05-16T03:38:44Z innertracks joined #lisp 2015-05-16T03:38:55Z innertracks quit (Client Quit) 2015-05-16T03:39:10Z drmeister: I don't see the path. 2015-05-16T03:39:41Z beach: I could be wrong. I don't know what it takes to load bitcode files, I guess. 2015-05-16T03:39:52Z Bike: you compile some basic stuff into bitcode, distribute the bitcode, have people run that instead of a whole c++ compiler to get things started? 2015-05-16T03:40:22Z Bike: also, for the doubles thing, that doesn't seem very fast. 2015-05-16T03:40:45Z beach: OK, lets discuss doubles first. 2015-05-16T03:41:08Z beach: drmeister: I don't think the most significant bits of the exponent are zero for numbers with small exponents. 2015-05-16T03:41:27Z beach: drmeister: They don't use 2s complement for the exponent as I recall. 2015-05-16T03:41:28Z drmeister: Ah, that was one of my assumptions. 2015-05-16T03:41:52Z beach: drmeister: So you would have to do arithmetic on those bits in addition to moving them. 2015-05-16T03:41:59Z drmeister: Yeah. 2015-05-16T03:42:15Z beach: drmeister: Can someone else confirm this? Don't they use excess-N rather than 2s complement? 2015-05-16T03:43:05Z Bike: you subtract 1023 from the exponent, so i don't think negatives come up 2015-05-16T03:43:55Z smokeink joined #lisp 2015-05-16T03:43:56Z beach: Right, and that means that for numbers close to 1, the exponent is not close to 0. 2015-05-16T03:44:04Z innertracks joined #lisp 2015-05-16T03:44:08Z drmeister: Too bad. 2015-05-16T03:44:13Z beach: The representation of the exponent. 2015-05-16T03:44:30Z drmeister: I thought limiting the range would be better than messing with the precision. 2015-05-16T03:44:32Z beach: But those bits could be 100. 2015-05-16T03:44:55Z beach: So maybe you get lucky. 2015-05-16T03:44:57Z Bike: in general i wouldn't be too clever about messing with float formats, just because that is some very finicky math and programming and easy to fuck up 2015-05-16T03:45:44Z beach: drmeister: It might work... 2015-05-16T03:46:05Z beach: er, no forget it. 2015-05-16T03:46:07Z jdm_ quit (Ping timeout: 250 seconds) 2015-05-16T03:46:31Z beach: I don't think it will be very fast unfortunately. 2015-05-16T03:46:44Z beach: You would have to modify the exponent for each multiplication. 2015-05-16T03:47:21Z cosmicexplorer quit (Remote host closed the connection) 2015-05-16T03:47:43Z cosmicexplorer joined #lisp 2015-05-16T03:47:46Z beach: drmeister: I suggest you write some examples in assembler or C to check performance. 2015-05-16T03:47:55Z innertracks quit (Client Quit) 2015-05-16T03:48:24Z Bike: copying bits inside a number isn't very fast either... i think. maybe there's some ridiculous-ass x86 instruction for it 2015-05-16T03:48:31Z kovrik joined #lisp 2015-05-16T03:48:37Z beach: There probably is. :) 2015-05-16T03:49:02Z jtz quit (Quit: WeeChat 1.0.1) 2015-05-16T03:49:03Z drmeister: There's an x86 instruction for everything. 2015-05-16T03:49:17Z jtz joined #lisp 2015-05-16T03:49:33Z Bike: it sounds like a butterfly shifter sort of complication. 2015-05-16T03:49:40Z Bike: well, anyway. how do sbcl and ccl do it? 2015-05-16T03:49:48Z Bike: no need to think for yourself, i always say 2015-05-16T03:50:04Z drmeister: Do what? 2015-05-16T03:50:28Z Bike: immediate doubles, if they have them, which i don't know 2015-05-16T03:50:42Z beach: I don't think they have them. 2015-05-16T03:50:45Z drmeister: I don't know how anyone can. 2015-05-16T03:50:48Z Bike: i mean, i know sbcl generates code that just uses doubles, with enough static typing 2015-05-16T03:51:06Z beach: Sure, and also specialized arrays for it. 2015-05-16T03:51:13Z beach: But no immediates as I recall. 2015-05-16T03:51:15Z Bike: but that's a bit different, and i'm sort of wondering if having tagged immediate doubles would actually be much more helpful than just that sort of unboxing. 2015-05-16T03:51:24Z drmeister: You have 64 bits to work with, you need 2-4 for a tag and doubles require 64 bits. Arithmetic be a harsh mistress. 2015-05-16T03:51:57Z kobain quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/) 2015-05-16T03:52:13Z k-dawg quit (Quit: This computer has gone to sleep) 2015-05-16T03:53:46Z a2015_ quit (Quit: Page closed) 2015-05-16T03:55:04Z drmeister: So what can I tell you about bitcode/ 2015-05-16T03:55:05Z drmeister: ? 2015-05-16T03:55:29Z beach: I was wondering whether you can bootstrap your system that way. 2015-05-16T03:55:50Z beach: In order to avoid having any C++ code at all in your system. 2015-05-16T03:56:14Z beach: Bitcode files are just, well, files, so you can generate them from any Common Lisp program using any Common Lisp implementation. 2015-05-16T03:57:13Z drmeister: You could, it would require an LLVM backend. brucem is doing that. 2015-05-16T03:57:28Z drmeister: For OpenDylan 2015-05-16T03:58:38Z drmeister: They are generating bitcode directly rather than using the LLVM C API 2015-05-16T03:58:49Z beach: Right, that's what I mean. 2015-05-16T03:59:12Z beach: Then you can have more code in Common Lisp and less in C++. 2015-05-16T03:59:30Z beach: And you can bootstrap using only Common Lisp, or at least mostly. 2015-05-16T04:00:41Z Karl_Dscc joined #lisp 2015-05-16T04:01:11Z drmeister: Why that rather than native code? Portability? I think there are issues with LLVM portability. There is a google project called NaCl to create a portable LLVM-IR subset. 2015-05-16T04:01:46Z drmeister: The idea is to compile down to native code in the browser. 2015-05-16T04:02:19Z jlongster quit (Ping timeout: 245 seconds) 2015-05-16T04:02:44Z beach: I am afraid I don't know enough about bitcode files to know the advantages or disadvantages. 2015-05-16T04:02:55Z beach: Are bitcode files architecture independent? 2015-05-16T04:03:27Z KarlDscc quit (Ping timeout: 250 seconds) 2015-05-16T04:04:10Z drmeister: I don't think so. http://stackoverflow.com/questions/14258194/llvm-bitcode-cross-platform 2015-05-16T04:05:05Z beach: More so than native code I think. 2015-05-16T04:05:13Z Denommus quit (Remote host closed the connection) 2015-05-16T04:06:02Z drmeister: Yeah, definitely. 2015-05-16T04:06:30Z drmeister: It looks like the NaCl approach is to fix sizes of integers and whatnot and then provide an ABI for NaCl bitcode files to interact with. 2015-05-16T04:07:45Z beach: I think those are details that could be dealt with. 2015-05-16T04:08:20Z beach: Even if there are some architecture-specific aspects of the bitcode files, that's not a big problem. 2015-05-16T04:09:24Z drmeister: That's what I was recommending to Shinmera. That we write the scrapers in Clasp Common Lisp and then generate bitcode for them and run that on other systems to bootstrap Clasp. 2015-05-16T04:09:24Z beach: I am wondering how Clasp could have less C++ code in it by generating bitcode files during bootstrapping, and bootstrapping from Common Lisp code using an existing Common Lisp implementation. 2015-05-16T04:10:10Z beach: drmeister: Tell me again what C++ code is processed by the scrapers? 2015-05-16T04:11:01Z drmeister: All of the Clasp source code - but it's really simple, it just looks for CPP macros that define exposed classes and Common Lisp symbols. 2015-05-16T04:11:24Z beach: But if Claps source code were in Common Lisp, those scrapers would not be necessary. 2015-05-16T04:11:50Z gingerale joined #lisp 2015-05-16T04:14:56Z frkout quit (Remote host closed the connection) 2015-05-16T04:14:57Z beach: ... so what I am suggesting seems different from what you recommended to Shinmera, no? 2015-05-16T04:14:58Z ggole joined #lisp 2015-05-16T04:15:17Z drmeister: That is true if my only purpose was to develop another Common Lisp. 2015-05-16T04:15:40Z beach: I know the purpose, and I think I am taking that into account. 2015-05-16T04:16:33Z beach: Now, if you tell me that the scrapers are also used to process C++ code other than the Clasp source code, that's different. 2015-05-16T04:16:37Z beach: Is that the case? 2015-05-16T04:17:07Z drmeister: Yeah, my chemistry code 2015-05-16T04:17:23Z beach: OK, that's why I asked what C++ code is processed by the scrapers. 2015-05-16T04:17:29Z kcj joined #lisp 2015-05-16T04:17:51Z beach: And I took the answer to mean only the Clasp source code. 2015-05-16T04:17:54Z beach: My bad. 2015-05-16T04:17:58Z cluck: beach: you can. in fact, generating images from bitcode/bytecode (and often directly from source "files") is how smalltalks usually bootstrap. open genera did it too, after a fashion ;) 2015-05-16T04:18:24Z joneshf-laptop quit (Read error: Connection reset by peer) 2015-05-16T04:18:54Z joneshf-laptop joined #lisp 2015-05-16T04:20:17Z beach: cluck: Yes, of course. The particular problem we are trying to solve here is to use less C++ code and more Common Lisp code in Clasp itself. 2015-05-16T04:21:26Z beach: drmeister: OK, so you can't get rid of the scrapers. But you could avoid them in bootstrapping Clasp. 2015-05-16T04:21:36Z Jaskologist joined #lisp 2015-05-16T04:22:43Z cluck: beach: i was just pointing out the obvious, it can be lisp all the way down (and using an example where performance and functionality are not affected significantly compared with native code) 2015-05-16T04:23:04Z drmeister: How do you interoperate with C++? 2015-05-16T04:23:25Z drmeister: Or how do you take that into account? 2015-05-16T04:23:40Z Denommus joined #lisp 2015-05-16T04:24:04Z beach: drmeister: I suppose the same way as now. 2015-05-16T04:24:23Z XachX quit (Connection reset by peer) 2015-05-16T04:24:27Z drmeister: I don't follow. 2015-05-16T04:24:28Z beach: drmeister: I still don't see how the system has to be largely written in C++ in order to interoperate with C++. 2015-05-16T04:25:35Z drmeister: I don't see how you avoid it. 2015-05-16T04:25:40Z beach: drmeister: Never mind. Let's drop it. I guess I still don't know enough of the details of how to interoperate with C++ to have something intelligent to say. 2015-05-16T04:25:50Z cluck: if you can call native code from the "VM"/bitcode you can call anything you want 2015-05-16T04:26:00Z drmeister: No problem. 2015-05-16T04:26:04Z harish quit (Ping timeout: 272 seconds) 2015-05-16T04:26:19Z Petit_Dejeuner joined #lisp 2015-05-16T04:26:33Z drmeister: cluck: Calling C code is easy. Dealing with C++ is a lot harder. 2015-05-16T04:26:43Z cluck: i know :( 2015-05-16T04:28:16Z drmeister: Look at how much work the D folks have to go through to get any kind of interoperation with C++. http://dlang.org/cpp_interface.html 2015-05-16T04:29:10Z cosmicexplorer quit (Remote host closed the connection) 2015-05-16T04:29:20Z clop quit (Ping timeout: 265 seconds) 2015-05-16T04:30:43Z gz quit (Ping timeout: 183 seconds) 2015-05-16T04:31:14Z XachX quit (Connection reset by peer) 2015-05-16T04:32:06Z setheus quit (Ping timeout: 256 seconds) 2015-05-16T04:32:08Z cluck: C++ is one day going to give birth to an AGI (not that one will be written in/with it, someone's just going to finally crack and automate backwards compatibility handling until it develops sentience from emergent complexity, then it's going to kill us all because "to hell with c++ and it's ilk") 2015-05-16T04:33:34Z setheus joined #lisp 2015-05-16T04:34:22Z chuchana joined #lisp 2015-05-16T04:34:47Z drmeister: Grrr - it's taking about 30 seconds to start up the Boehm version of clasp with tagged pointers, and immediate fixnums, characters, and single-floats. It used to take 4 seconds. 2015-05-16T04:35:03Z drmeister: I've been messing around with it so much - there may be debugging code running in there. 2015-05-16T04:36:08Z drmeister: Tagged pointers and immediate values should not have any effect or slightly speed up Clasp at this point. Not slow it down by a factor of 5. 2015-05-16T04:36:10Z drmeister: (sigh) 2015-05-16T04:36:57Z Jaskologist quit (Quit: Leaving) 2015-05-16T04:38:12Z a2015 joined #lisp 2015-05-16T04:45:44Z clop joined #lisp 2015-05-16T04:47:14Z cluck quit (Remote host closed the connection) 2015-05-16T04:49:17Z White_Flame joined #lisp 2015-05-16T04:51:18Z XachX quit (Ping timeout: 185 seconds) 2015-05-16T04:54:55Z chuchana quit (Ping timeout: 256 seconds) 2015-05-16T04:55:34Z DrWat joined #lisp 2015-05-16T04:56:11Z clop quit (Ping timeout: 264 seconds) 2015-05-16T05:03:45Z kami joined #lisp 2015-05-16T05:03:59Z dmiles quit (Ping timeout: 245 seconds) 2015-05-16T05:04:02Z kami: Good morning 2015-05-16T05:05:18Z emaczen joined #lisp 2015-05-16T05:06:20Z drmeister: Loading ASDF doesn't take any more time than it used to. Maybe I just screwed something up in the startup proceedure. 2015-05-16T05:07:29Z emaczen: So I am mimicking an OO message passing model with (defun ... (let ... (lambda (msg) (case msg (...))))) 2015-05-16T05:08:01Z scymtym quit (Ping timeout: 250 seconds) 2015-05-16T05:08:38Z dmiles_afk joined #lisp 2015-05-16T05:08:48Z dmiles_afk is now known as dmiles 2015-05-16T05:09:06Z emaczen: and one of my "methods" i.e. one of the case forms needs to call one of the other "methods." How can I do that? 2015-05-16T05:09:36Z Bike: instead of a lambda, use a labels to have a recursive binding. 2015-05-16T05:09:57Z Bike: like (labels ((this (msg) (case msg ...))) #'this), and if you want to call another method just call (this ...) 2015-05-16T05:10:38Z emaczen: Bike: ahhh I see. 2015-05-16T05:10:43Z Bike: maybe wrap the labels in a macro for clarity. 2015-05-16T05:10:45Z emaczen: Thanks :) 2015-05-16T05:12:29Z kovrik quit (Ping timeout: 256 seconds) 2015-05-16T05:20:19Z A205B064 joined #lisp 2015-05-16T05:23:13Z dmiles quit (Ping timeout: 264 seconds) 2015-05-16T05:24:50Z pacon2 joined #lisp 2015-05-16T05:25:24Z frkout joined #lisp 2015-05-16T05:27:07Z pacon3 joined #lisp 2015-05-16T05:27:43Z pacon quit (Ping timeout: 255 seconds) 2015-05-16T05:29:24Z dmiles_afk joined #lisp 2015-05-16T05:30:06Z frkout quit (Ping timeout: 258 seconds) 2015-05-16T05:30:59Z pacon2 quit (Ping timeout: 264 seconds)