logo
IRC Archive / Freenode / #lisp / 2010 / February / 02 / 1
Fare
"Your kitten of death awaits": is it a reference to this? http://www.facebook.com/l.php?u=http%3A%2F%2Fnews.yahoo.com%2Fs%2Fap%2F20100131%2Fap_on_re_us%2Fus_death_cat_doctor&h=73a3f4a6f11b2d741b363b16075dce53
housel
Fare: I always assumed it referred to http://www.sluggy.com/comics/archives/daily/000626
nyef
Hello all.
Fare
nyef, we were discussing kittens of death.
nyef
Oh, goody.
Fare
housel, is bunbun a kitten?
looks like a rabbit
xx7sinsx
lol
housel
bunbun is the rabbit
Fare
I see no kitten of death there
jsnell
read a few strips forwards
housel
You have to read through several comics (it's a fairly long story arc)
(It's a horror movie parody; the gist is that "The Evil" is a litter of kittens spawned by satan, which will reduce to a mist of blood and gore anyone who fails to keep them fed)
nyef: so is that where it came from, or is "your kitten of death awaits" an independent invention?
nyef
Independent.
lose("CATS. CATS ARE NICE.\n");
Fare
life justifies fiction after the fact.
nyef
If anything, deathkitten was inspired by Pratchett, except that I don't actually -like- the discworld books.
So, I noticed something last weekend: SBCL is clearly not standard-compliant with respect to PATHNAME-HOST. (pathname-host #p"") doesn't return a valid pathname host.
fe[nl]ix
nyef: nobody seems to have noticed it before :)
pr
does anybody know of some library which would allow me to read, write and convert-to fixed-size binary types, like if i'd want to deal with 12 bit vectors/"types"
Xach
pr: binary-types, maybe?
nyef
So, what I'm thinking for the UNC filespec thing is to define the share as the device and the server as the host, representing the host as a list of the hostname-as-a-string, to distinguish it from a valid logical pathname host (which must be a string), and from the local machine (which can be distinguished as a zero-length list of strings).
Since only logical pathname hosts have a defined syntax for parsing pathnames, we can then use //server/share/ to parse to :host ("server") :device "share".
Fade
ccl returns :UNSPECIFIC for that pathname-host form.
nyef
That's possibly a valid interpretation.
I'm not sure how it all works out yet, but this is the direction I'm leaning towards.
drewc
heh, i was reading "Macros that Reach Out and Touch Somewhere" and thinking to myself "hrmm... this is almost like monads".. then i threw the idea way because _everything_ has looked like monads to me lately.
pkhuong
drewc: sounds right.
xx7sinsx
Does anyone know the command for droping to shell mode in emacs GNU 23?
drewc
sure enough, the conclusion mentions that it's like monads
nyef
So, the other thing that's bugging me right now is that SBCL doesn't build the assembler-routines before first genesis, which neatly complicates my plan for destroying x86oid-assem.S.
wgl
xx7sinsx: M-x shell
xx7sinsx
wgl: Thank you
wgl
yw
p_l
nyef: regarding UNC spec, could we get logical-pathnames -> UNC with local C: as "\\.\C:"?
nyef
Not sure.
p_l
I mean, CL kinda isn't limited to using DOS-compatible pathnames and logical pathnames serve as IMHO nice way to slip NT pathnames in
HET2
what are logical pathnames
nyef
clhs 19.3
specbot
http://www.lispworks.com/reference/HyperSpec/Body/19_c.htm
nyef
HET2: That's the section of the CLHS on the subject.
HET2
thanks
p_l
HET2: I can't decide if logical pathnames are awesome gift of god or rotten stuff to leave alone ;-)
nyef
(Action) leans more towards awsome gift, but is aware of some of the rotten stuff that got mixed in.
HET2
oh my god, lispworks lisp is so insanely expensive
fe[nl]ix
depends on your budget
drewc
(Action) thinks lispworks is a pretty good deal if you need what it offers
and if you're just a hobbyist, they offer a free version... which is not expensive at all.
nyef
(Action) checks his budget... Funny, it's all allocated towards books, food, and the occasional bit of hardware, with the minor possibility of buying a 64-bit windows license.
drewc
(Action) has budgeted for a new guitar
the one i want makes lispworks look cheap
the one i'm going to get, otoh
fe[nl]ix
Scieneer ?
drewc
is about the same price range.
p_l
(Action) for some reason ended with having a 2k8r2 server license for free. It's his only personally-owned non-oem windows license o_O
drewc
genera still 5k?
antoszka
p_l: A non-edu one? Someone just gave it to you?
p_l
antoszka: edu one, except instead of MSDNAA I got it straight from MS
antoszka
uhm
lucky b'tard :)
p_l
well, a slightly modified edu - basically, it's "don't use it for commercial purposes" and the rest is normal :D
antoszka: you might be eligible as well ;D
nyef
Oh, I might be getting a PPC G5 next weekend.
Ralith
p_l: "don't use it for commercial purposes?" So basically, don't own it while you have a job?
p_l
Ralith: no, don't use it to run business/develop commercial software
nyef
What about using it to develop open source software?
stassats
and selling it?
nyef
(What about using it to develop open source software -for money-?)
Ralith
what about using it to develop open source software *someone else* sells?
pastorn
i'm looking for the eval/apply picture with the two hands holding each other
p_l
nyef: well, in theory, you can develop open source on it, as long as it isn't directly used for commercial purpose
pastorn
google images gives me no luck
p_l
Ralith: so selling by third party is possible
nyef
What about a third party selling the software and giving you a "kickback"?
p_l
nyef: murky area
Ralith
p_l: even if the third party is the actual project, and you're submitting patches?
p_l
I suspect it depends on local laws
anyway, it fills my purposes nicely
pastorn
does anyone know what picture i'm talking about?
proun
is PAIP a book worth having on your desk as a reference?
stassats
it's not a reference book
drewc
it _is_ worth having mind you.
p_l
proun: not as reference. As an actual textbook to learn various useful things (not only for Lisp), yes
antoszka
Mine's on the way.
proun
just in your personal perference, would you get it in dead tree form?
p_l
(Action) keeps university's only "on shelf" copy for himself
drewc
i got my copy at the MIT coop :)
Ralith
stassats: the introduction suggests it be used as such.
p_l
I'm kinda disappointed that no-one tried to recall mine. I suspect I'm one of the few lispers around -_-
(on the uni, I mean)
proun
so all and all, worth owning? by that i mean i can go back to it again and again?
p_l
proun: I'd say so
proun
thanks
nyef
... Is there a maximum length for defined constants in C?
Ralith
nyef: for their names?
nyef
Yeah.
Ralith
Zhivago would probably know
nyef
I think the longest I have here is about 35 characters.
And, while I'm clearly going to have trouble with the ones that try to have an *, a <, or a > in their names, I'd like to know I'm not going to run into trouble about simple length.
reb
nyef: There used to be absurdly short limits, such as externals needed be unique in the first 7? characters. Any modern compiler should be able to handle very long macro names.
nowhere_man
why would #\* be a problem in a name?
nyef: sorry, I read CL, not C
nyef
nowhere_man: Yeah, I'm generating C #defines from a lisp program.
Ralith
reb: macros are handled by the preprocessor.
shouldn't get to the compiler at all.
nyef
I'm also finding that there are two separate extern definitions for call_into_lisp, in separate .c files.
reb
Ralith: I was interpreting "defined constants" to mean preprocessor macro constants.
Ralith
reb: the concept of "external" doesn't apply to preprocessor symbols.
nor does the modernnes of the compiler have much bearing.
reb
By the way, there's no demand for a separate preprocessor. It can be and often is built in to the compiler.
Ralith
nyef: for those very reasons I don't actually think that *<>etc are likely to be an issue.
reb
Ralith: I am aware of that. I was using it merely as an example of outdated limits that no compiler observes today, save perhaps embedded ones.
nyef
Ralith: My reason for *, < and > not being an issue is simpler: I don't actually need to refer to them from C code, they just got caught in the conversion process.
Adlai
what's the point of writing compiler macros for macros?
Ralith
reb: 'kay
nyef
Adlai: Compiler macros for normal macros? Very little, I'd imagine.
adeht
nyef: C++98 suggests a minimum limit of 1024 for "initial characters" in an identifier
Ralith
adeht: damn O.o
I guess that's a case of "Find the largest sane limit, and raise it an order of magnitude."
p_l
nyef: Will go outside 255 bytes + null?
Adlai
nyef, I wonder why it's allowed by the spec.
nyef
p_l: I'd be surprised if the identifiers break 50 characters, and completely shocked if they break 80.
adeht
nyef: same with C++03.. C99 imposes a minimum of 63 characters limit for internal identifiers and 31 for external identifiers (but watch out for "universal character names")
nyef
(Action) tries to remember how to do a cast to a function pointer without involving a typedef.
Ralith
nyef: just involve typedef.
for sanity's sake.
think of the readers.
nyef
(Action) just didn't want to burn the extra identifier, but an _t suffix is unlikely to collide.
#define call_into_lisp ((call_into_lisp_t)ASMRTN_CALL_INTO_LISP), here we come!
Ralith
nyef: what are you doing in C, anyway?
nyef
Moving some assembly around, actually.
Uh-oh... How on earth am I supposed to convert GNAME(current_thread)@TPOFF(%rax) to something I can use?
Guthur
I was using function pointers there recently, what an awful form
p_l
nyef: is the platform constrained in any way or does it have to be very portable?
nyef
I'm not sure at this point.
I'm targetting gcc at this point, with the exepctation that someone will want to re-target to MSVC.
p_l
on ELF platforms, most compilers will give you *very* long identifiers, at least in C, since they usually just output the symbol literally, and C++ kinda forces the linkers to support symbol names that are way longer than 100 characters
Adlai
hm, why are symbol macros replacement templates, rather than expanders like normal macros?
rahul
erm... what would be involved in "expanding" them?
Adlai
same thing that would be involved in expanding a macro, except that this expansion function would have zero arguments
rahul
. . .
nyef
Adlai: You're... looking to conditionalize the expansion of a symbol-macro on some piece of dynamic state?
Adlai
nyef, no, I'm wondering whether it's possible to generate the expansion of a symbol macro, rather than have to write it all out. This is just out of curiosity though.
rahul
yes, it's possible
how would anything NOT be possible? this is lisp, man!
Adlai
I guess you could wrap the definition of the symbol macro with a macrolet that did the code generation.
or maybe expand to the macrolet? dunno. I'll cross this bridge _if_ I even reach it :)
*ever
rahul
or expand to a macro
or expand to a macro invocation, rather
Adlai
right, I guess (define-symbol-macro foo (macrolet ((generate-expansion () ..)) (generate-expansion)))
eh
nyef
I usually wrap them the other way around, TBH.
But then, I usually use -local- symbol-macros.
Adlai
what do you mean, nyef ?
nyef
I have a symbol-macro that expands into an accessor form, and have the accessor defined -around- the symbol-macrolet, but it doesn't actually matter which way it happens.
Another cute thing you can do is have a macro that expands to a define-symbol-macro.
rahul
formulate has a macro that expands to define-symbol-macro
for implementing variables that are formulas
nyef
Okay, time to see if this maniac idea passes its smoke test.
qrush
hi there, trying to run something with sbcl, i've got it loaded up, and it has a defun run in it...
how the heck do i call that?
(run) doesn't work
i linked the .asd, ran (asdf:oos 'asdf:load-op :myprog)
and it definitely compiles
nyef
I would suggest that the problem is most likely something to do with the package system. Have a look for a DEFPACKAGE form in the source and try (package-name:run).
Oh, -joy-. all_threads is hit from lisp -before- toplevel form processing.
How do I make this not suck?
qrush
nyef: yeah, it's got a cl:defpackage in it
exports #:run
How do i call that?
nyef
What's the package name?
First parameter to the defpackage.
qrush
(cl:defpackage :mcpixel
nyef
Okay, try (mcpixel:run).
qrush
debugger invoked on a SIMPLE-ERROR: No CLIM-SYS:MAKE-PROCESS here.
i've got CLIM working with asdf
nyef
And now you're beyond where I can really help you, I'm afraid.
qrush
this whole CLIM thing is really, really frustratingly complex.
nyef: well, i'm just trying to run the program...i definitely have it compiled
nyef
... Actually, one thing comes to mind. Are you running on a threaded SBCL or one without thread support?
qrush
I have no idea, whatever macports installed.
nyef
(Look for :sb-thread in *features*.)
qrush
why does that even matter?
pkhuong
qrush: can't make a new thread if your implementation doesn't support threads.
nyef
Because CLIM-SYS:MAKE-PROCESS is a function to create a new thread.
pkhuong: Hey, any ideas on how to resolve an assembly-routine address in Lisp code prior to toplevel-form processing in cold-init?
qrush
Yeah, fu*k this. way too complicated.
Thanks for the help, just not worth it though :)
pkhuong
nyef: can't you do that while building th ecold core?
nyef
McCLIM loses again... and vendor packaging doesn't win either.
From outside the compiler?
I think I may need a parallel to foreign-symbol-dataref-sap or something.
pkhuong
Yeah, outside the compiler. When you build the cold core you know where the routines have wound up.
nyef
Sure, but how do I persuade the compiler to dump a fixup in the first place?
pkhuong
nyef: it's probably a matter of "port install sbcl+thread", actually.
oh. Right.
nyef
I have hope that this may be the last hurdle before my initial proof-of-concept for this entire demented idea works.
Guthur
nyef: what is your demented idea; if it can be summed up quickly