kozy_ has quit [Remote host closed the connection]
<Shinmera>
If I wasn't tied up with ELS, my thesis, exams, and Lichat, I'd offer to help out with such an infrastructure
kozy has joined #lisp
<Shinmera>
But for now I have too much in the cooker
<Xach>
I think I can crank out an rss feed per project within a few hours. (I can recycle some podcast rss code.)
<Shinmera>
Well, I was referring to _death's advanced suggestions
fikka has quit [Ping timeout: 260 seconds]
<Shinmera>
But yeah, feeds would already go a long way
manualcrank has joined #lisp
<_death>
it's just an idea :).. low hanging fruit is great as well
smurfrobot has quit [Ping timeout: 248 seconds]
Karl_Dscc has joined #lisp
uuplusu has joined #lisp
fikka has joined #lisp
uuplusu has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 264 seconds]
OS-26949 has joined #lisp
ykoda has joined #lisp
uuplusu has joined #lisp
JonSmith has joined #lisp
wxie has joined #lisp
uuplusu has quit [Ping timeout: 240 seconds]
smurfrobot has joined #lisp
JonSmith has quit [Ping timeout: 248 seconds]
smurfrobot has quit [Remote host closed the connection]
uuplusu has joined #lisp
fikka has joined #lisp
uuplusu has quit [Ping timeout: 265 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 260 seconds]
uuplusu has joined #lisp
attila_lendvai has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
fikka has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
beach has quit [Ping timeout: 255 seconds]
uuplusu has quit [Ping timeout: 248 seconds]
attila_lendvai has joined #lisp
jmercouris has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 248 seconds]
uuplusu has joined #lisp
ykoda_ has joined #lisp
ykoda_ has quit [Client Quit]
ykoda has quit [Quit: Leaving.]
ykoda has joined #lisp
JonSmith has joined #lisp
attila_lendvai has quit [Ping timeout: 272 seconds]
uuplusu has quit [Ping timeout: 252 seconds]
uuplusu has joined #lisp
ykoda has quit [Client Quit]
<mfiano>
Is there anything in alexandria similar to this, but which will allow duplicating elements to find all combinations as well, such as (X X X) '(X X Y) etc? (let ((results)) (alexandria:map-permutations (lambda (x) (push x results)) '(x y z) :length 3) results) => ((Z Y X) (Y Z X) (X Z Y) (Z X Y) (Y X Z) (X Y Z))
<mfiano>
Or how would you normally go about this with a mapping idiom?
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
<Xach>
Well
<Xach>
I could group together feeds based on github username prefixes
<Xach>
That could help limit the amount of subscriptions needed
fikka has joined #lisp
ykoda has joined #lisp
varjag has quit [Ping timeout: 252 seconds]
fikka has quit [Ping timeout: 272 seconds]
varjag has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
nirved has quit [Quit: Leaving]
fikka has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
jmercouris has joined #lisp
<jmercouris>
AeroNotix: The more I work with this API, the more I realize how strange some things are
varjag has quit [Ping timeout: 248 seconds]
attila_lendvai has joined #lisp
<jmercouris>
AeroNotix: You can't even get the length of a gtk-list-store!
fikka has quit [Ping timeout: 248 seconds]
<ykoda>
jmercouris: Which API?
<jmercouris>
ykoda: GTK
<jmercouris>
I'm working with cl-cffi-gtk which is a relatively thin layer over GTK
<jmercouris>
At least it feels thin, feels like I'm doing C programming in Lisp
<mfiano>
Actually, what I need is the "power set", but with repetitions allowed. This is the standard power set. https://rosettacode.org/wiki/Power_set#Common_Lisp Does anyone know if my requirements has a name?
<ykoda>
Oh cool!
<jmercouris>
ykoda: Definitely not cool :D more like frustrating
<ykoda>
lol! Yeah, I played around with a gtk library at one point but gave up. Since then I've been working on ECL + Cpp + QT
<jmercouris>
ykoda: Ah yeah, that is a very good combination, very easy, though deployment is a nightmare
<jmercouris>
ykoda: I'm very familiar with the technology :)
<jmercouris>
I worked quite a bit with it and developed the deployment for MacOS
<jmercouris>
I can help you with it if you have any problems
<ykoda>
I've primarily been a Xamarin guy for cross platform / mobile, so it's a crazy different world
<jmercouris>
Hmm yeah, Xamarin is something else entirely
fikka has joined #lisp
markong has quit [Ping timeout: 248 seconds]
<ykoda>
Oh definitely, it's just a nice way to get at the native stuff through .Net (unless you use Xamarin forms)
<ykoda>
What about QT/ECL deployment sucks?
<ykoda>
I'm thinking about using that combo for a project, but if it's going to be pain I'll find another way
<jmercouris>
ykoda: When deploying QT applications you usually want to bundle in a standalone app your users can double click, this is problematic because of some strange linking that occurs within EQL
<jmercouris>
Some modules are dynamically loaded, and this involves attempting to load the shared lib, which of course does not exist on every users' computer
<jmercouris>
so you want to force loading of the libs located within your application bundle
<ykoda>
Hmmm, do they have an installer creator tool that will bundle dependencies?
<jmercouris>
ykoda: There is something like that called macdeployqt
<jmercouris>
but unfortunately it is a garbage tool that only works on the most standard of applications, and even then it doesn't work
<ykoda>
Oh joy
<jmercouris>
The real question is what is your deployment strategy, and on which platforms do you wish to deploy
fikka has quit [Ping timeout: 268 seconds]
antonv has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
<ykoda>
Just getting into it, so I don't have good answers. Mac/Linux/Windows for sure
<jmercouris>
I see, well when you get closer to deployment, feel free to reach out to me
smurfrobot has joined #lisp
attila_lendvai has joined #lisp
<ykoda>
Thanks, man! With lisp I've only ever built cli tools, never had any success with guis. I end up going back to C#
attila_lendvai has quit [Read error: Connection reset by peer]
<ykoda>
I write enterprise crap all day at work, so it feels natural to use C#, sadly
<jmercouris>
ykoda: Yeah, it is a challenge, you can try MCClim as well, I've heard good things about it
dtornabene has joined #lisp
<ykoda>
I'll give that a look. A guy who I'm working with uses python + qt at work, so he's interested in using qt, but I might be able to talk him out of it
JonSmith has quit [Remote host closed the connection]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
<ykoda>
McCLIM ui looks dated but solid. I can dig it
attila_lendvai has quit [Read error: Connection reset by peer]
<jmercouris>
ykoda: There's a lot of work being put into it recently
<jmercouris>
I mean if you are going to use lisp, might as well go all the way lol
<jmercouris>
It'll make it easier to embrace the technology
JonSmith has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
smurfrobot has quit [Ping timeout: 256 seconds]
<ykoda>
Definitely. And yeah, the repo's super active for a lisp repo
JuanDaugherty has quit [Quit: Ex Chat]
<ykoda>
This looks pretty rad, thanks man
dtornabene has quit [Read error: Connection reset by peer]
JonSmith has quit [Remote host closed the connection]
dtornabene has joined #lisp
<jmercouris>
ykoda: No problem :)
fikka has joined #lisp
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
FreeBirdLjj has quit [Ping timeout: 248 seconds]
Baggers has quit [Remote host closed the connection]
smurfrobot has joined #lisp
smurfrobot has quit [Remote host closed the connection]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
dtornabene has quit [Read error: Connection reset by peer]
eazar001 has quit [Quit: WeeChat 2.0.1]
fikka has joined #lisp
<fiddlerwoaroof>
ykoda: the only problem with mcclim is that it only works on Linux or Mac with XQuartz
<fiddlerwoaroof>
(although someone was working on a Windows backend, and I'm interested in fixing an old Mac backend)
fikka has quit [Ping timeout: 264 seconds]
pmetzger has joined #lisp
<aeth>
fiddlerwoaroof: Writing a backend for cl-sdl2+cl-opengl could help with portability
<ykoda>
Yeah, I noticed the bit about it being able to run on systems that can run X11
d4ryus2 has joined #lisp
d4ryus1 has quit [Ping timeout: 248 seconds]
papachan has joined #lisp
pagnol has quit [Ping timeout: 272 seconds]
<jmercouris>
fiddlerwoaroof: You are going to work on beagle?
FreeBirdLjj has joined #lisp
fikka has joined #lisp
presiden has joined #lisp
pmetzger has quit []
fikka has quit [Ping timeout: 264 seconds]
jmercouris has quit [Ping timeout: 252 seconds]
EvW has quit [Ping timeout: 240 seconds]
mlau has quit [Ping timeout: 248 seconds]
<asarch>
Languages with similar syntax: '(Haskell Elm Erlang OCaml Caml), '(C C++ C## Java Go C# Vala)
<asarch>
While in Lisp: "Macros are what make lisp the greatest programming language in the world. When used properly, macros enable amazing feats of abstraction, programmer productivity, and code efficiency and security that are unheard of elsewhere. Macros let you do things you simply cannot do in other languages." -- From Let Over Lambda from Doug Hoyte
<asarch>
So, why to bother?
<parjanya>
why bother with the other ones? ; )
<asarch>
Yeah!
<asarch>
I was reading about the development process from Naughty Dog and its GOAL implementation, is it available?
<Bike>
sort of doubt it
fikka has joined #lisp
<aeth>
Most gamedev stuff never gets open sourced. Id's classic engines are the most notable exceptions.
<asarch>
Oh :-(
<aeth>
Sometimes it's impossible because of commercial middleware
AndChat-153225 has joined #lisp
<mfiano>
It would be nice if Mirai was though
<asarch>
Sadly, "geniuses" at Google don't do Lisp
mariari has quit [Ping timeout: 240 seconds]
<Bike>
what, the worm?
fikka has quit [Ping timeout: 248 seconds]
<asarch>
Is there any shell interpreter that understands Lisp?
<presiden>
eshell
<asarch>
Thank you!
<asarch>
Thank you very much :-)
<presiden>
it's Elisp tho
<asarch>
From Emacs?
<presiden>
yes
<asarch>
Is there any outside it?
<aeth>
asarch: I am considering writing one. An eshell-like shell requires only several parts. (1) Turn the line "foo bar baz" into "(foo bar baz)" if the function foo exists, (2) if the function foo does not exist, use UIOP to call the external program "foo" with the arguments "bar baz", (3) implement piping, output/input redirection, etc., with gray streams or some other approach, ...
<aeth>
..., (4) gradually implement the basic shell commands like mv and rm as built-in CL functions with the POSIX API
<aeth>
And that, afaik, is all you need to clone eshell.
<aeth>
There might be some trickier parts like the shell ";" and the shell "&&" and the shell "||"
damke has joined #lisp
makomo has quit [Ping timeout: 256 seconds]
* mfiano
thinks "requires only several parts" reads as "doable in X amount of time", coupled with an 'etcetera', that doesn't really say much :)
<aeth>
I don't think anyone has specifically attempted an eshell clone in CL, though.
<aeth>
mfiano: The etc is just to cover up for anything I missed. Is there anything other than |, >, >>, <, &>, etc.?
damke_ has quit [Ping timeout: 264 seconds]
<aeth>
Although I guess that still doesn't help :-p
randomstrangerb has quit [Ping timeout: 268 seconds]
<aeth>
I actually wonder how many of those eshell itself implements
randomstrangerb has joined #lisp
<asarch>
What about pipes?
<aeth>
mfiano: But, you've caught me, I tend to implement the easiest 60% of something and then move on, so I'd probably stop half way through step 3 and leave it half-finished
waynecolvin has joined #lisp
<mfiano>
Moreso, I just didn't think 'several' belongs next to 'only' if you want to convey any meaning whatsoever :)
<aeth>
well, afaik the design for cloning eshell is just (1) execute CL commands at the top level if the function exists, (2) call external programs like a shell if the function does not exist, (3) implement shell redirection in CL, (4) reimplement the core shell functionality in CL so #1 is actually useful.
<aeth>
It really is just those 4 steps unless I'm missing a feature
<aeth>
e.g. "+ 1 1" yields the same thing as "(+ 1 1)" and "ls -l" uses its own internal ls ("which ls" tells you that it uses a function in em-ls.el)
<aeth>
Strangely, (ls) isn't valid, so it isn't quite as simple as I thought.
fikka has joined #lisp
<aeth>
It looks like there's a third category of commands, Lisp functions with shell APIs and only shell APIs.
<aeth>
ah, it's (eshell/ls)
papachan has quit [Ping timeout: 248 seconds]
<aeth>
It's also a really good clone of ls's functionality
<fiddlerwoaroof>
jmercouris: hopefully, I need to learn more about the low-level details of osx first because there are some weird issues with the current library.
fikka has quit [Ping timeout: 252 seconds]
damke_ has joined #lisp
fikka has joined #lisp
damke has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
<fiddlerwoaroof>
Is there something that makes it so that the results of reader-macros don't get macroexpanded?
dieggsy has quit [Ping timeout: 260 seconds]
<|3b|>
they are completely unrelated
<|3b|>
things that would expand macros have no idea how the things they would expand were created, whether it involved reader macros or not
<White_Flame>
the reader macro could expand into a quoted something
<|3b|>
so anything that would prevent that expansion would do so regardless of source as well
<White_Flame>
but an automatically quoted expansion wouldn't do well in '(foo #reader-macro-thing bar), as the quotes would then nest
<fiddlerwoaroof>
Weird, that's what I thought, but I'm getting function undefined errors because some macro doesn't seem to be getting expanded
<|3b|>
well, /when/ things are READ/expanded/evaluated might also matter for that
fikka has joined #lisp
<fiddlerwoaroof>
Hmm
<White_Flame>
have you tried manually macroexpanding the output of the reader function?
<fiddlerwoaroof>
yeah, I'm getting the same error
safe has joined #lisp
<Bike>
package issue?
<|3b|>
also try manually READing the source and make sure that looks right?
<fiddlerwoaroof>
Yeah
<White_Flame>
if you're getting an error macroexpanding the reader macro, that smells like the error is happening during the reader macro processing itself, before its result is passed on
<White_Flame>
what happens if you just quote it?
fikka has quit [Ping timeout: 272 seconds]
kajo has quit [Ping timeout: 265 seconds]
<fiddlerwoaroof>
It comes out right
<White_Flame>
ok, then yeah it might be a package error or something
beach has joined #lisp
<fiddlerwoaroof>
and (macroexpand-1 '[ns-application shared-application]) even expands the macro
<White_Flame>
need something more specific to debug any furthe
<Bike>
well, that last is pretty weird.
<Bike>
i'm guessing some package problem because that's how it is like half the time
<fiddlerwoaroof>
I'm going to try starting from scratch :)
<beach>
Good morning everyone!
BitPuffin|osx has joined #lisp
fikka has joined #lisp
bgardner has quit [Remote host closed the connection]
<fiddlerwoaroof>
morning beach
<presiden>
morning beach
pransninja has joined #lisp
<pransninja>
Hello
<pransninja>
How does the sbcl and other REPL works?
fikka has quit [Ping timeout: 256 seconds]
<pransninja>
As in, how does the compile and run code works?
<aeth>
I think the SBCL REPL works by writing the expression to /tmp/ and then compiling that temporary file.
<pransninja>
How is the same "thread" and "contexts" are kept?
<fiddlerwoaroof>
They Read the input, Evaluate the read form, Print the result and then Loop back to the Read
<beach>
The first READ the expression. Then they EVAL what they read, and finally, they PRINT the result.
<pransninja>
So every "run" compiles and reruns the whole thing?
<rme>
aeth; I don't think that's true. It's certainly not true for CCL.
<aeth>
Some Lisps, like SBCL, compile the expression in the REPL. Other Lisps evaluate things in the REPL.
<pransninja>
I don't think that is true either
<pransninja>
I am making some changes to fs
<fiddlerwoaroof>
pransninja: sbcl can switch to interpreted mode
<beach>
pransninja: A modern implementation will just compile the code, stick it somewhere in memory as a function, and then call that function.
<fiddlerwoaroof>
But, by default, I think sbcl does what beach says
<pransninja>
fiddlerwoaroof: Oh My God. So it is JIT? please tell me it is not.
<aeth>
Lisps have a compiler and an interpreter (actually, I think SBCL has several interpreters iirc). By default, SBCL compiles everything, even things at the REPL. Some Lisps might use their interpreter at the REPL
<pransninja>
I really want it to be some other cool thing.
<fiddlerwoaroof>
not this again...
<Bike>
it compiles when you put a form in
<Bike>
if that means jit to you, it's jit
<aeth>
Lisps have runtime compilation of functions, but they lack the whole continually analyzing the execution to recompile it more efficiently that people normally think of when they think of JITs.
<|3b|>
most CL implementations are run-time AOT compilers
<Bike>
it's not magic or anything. you put something in it compiles it. easy to understand
<pransninja>
So not tracing, but it is actually JIT?
<fiddlerwoaroof>
(setf sb-ext:*evalutator-mode* :interpret) makes sbcl into an intepreter, I think
<aeth>
Lisps are usually AOT-compilation where you can (re)compile a function at runtime before calling it.
<pransninja>
As in, compile, put it on memory, mark it executable thing?
<Bike>
It does that, yes.
<pransninja>
Does that means in envs like iOS you can't have a lisp REPL? :(((
<Bike>
i think it's kind of annoying on iOS, yeah.
<fiddlerwoaroof>
No, you can implement eval with an interpreter, which would be allowed on iOS
<pransninja>
Or can you actually have a common lisp interpreter?
<Bike>
you can still have an evaluator though.
<pransninja>
Cool, thanks!
<fiddlerwoaroof>
ECL also has an interpreter, iirc
<Bike>
iiiii wanna say it compiles to bitcode and interprets that
<Bike>
not sure
<fiddlerwoaroof>
Yeah, not sure either, but I remember being surprised by how it works
<Bike>
on clasp, which uses llvm, to do this repl compilation stuff it uses llvm's "JIT" thing, because llvm is otherwise based on serializing compiled code rather than running it, i guess.
fikka has joined #lisp
<fiddlerwoaroof>
Ah, ECL does have a bytecode interpreter or something
<pransninja>
this is interesting
dtornabene has joined #lisp
<fiddlerwoaroof>
As we were saying the other day, "compiled language" and "interpreted language" are phrases that don't mean anything :)
<pransninja>
At the end of the day it all boils down to a few instruction ;)
<|3b|>
if i remember right, clisp can either evaluate directly, compile to bytecode and interpret that, or JIT the bytecode (last is experimental feature i think, not sure if it got released)
fikka has quit [Ping timeout: 252 seconds]
<|3b|>
who needs instructions, isn't the MMU turing complete? :p
damke_ has quit [Ping timeout: 264 seconds]
<pransninja>
The more I learn lisp, the more I see how it is super primitive, even simpler than ASM, yet so powerful.
<pransninja>
It is kind of majestic.
ykoda has quit [Quit: WeeChat 2.0.1]
fikka has joined #lisp
<pransninja>
"And because NIL, as I mentioned previously, is the name of a constant variable with the symbol NIL as its value, the expressions nil, (), 'nil, and '() all evaluate to the same thing--the unquoted forms are evaluated as a reference to the constant variable whose value is the symbol NIL, but in the quoted forms the QUOTE special operator evaluates to the symbol directly. "
<pransninja>
My head hurts. What does that means?
<antonv>
if I want with hunchentoot to set the session cookie to both 'www.mydomain.net' and 'mydomain.net', how whould I do that?
dieggsy has joined #lisp
<pransninja>
So '() is the same as 'nil which is to say Symbol of nil which is the same as nil value?
<Bike>
(symbol-value 'nil) => NIL. it's a constant variable bound to itself
<Bike>
() also reads as nil
<antonv>
pransninja: yes, in CL symbols have value, and some symbols refer themselves as the value
<Bike>
and '() is just the same as () since nil is self evaluating
<antonv>
so about hunchtood and sessions for both www.domain and just doman, how to do that?
<pransninja>
Let's take a step back.
<pransninja>
What does 'x exactly means in contrast to x?
<pransninja>
I understand it is to say "the symbol of x".
<pransninja>
As in, contrast to the value of x?
<antonv>
pransninja: do you know C?
<Bike>
'x is reader syntax for (quote x)
<beach>
pransninja: '<anything> is a reader macro that generates (quote <anything>) and QUOTE is a special operator that returns the argument unevaluated.
<Bike>
quote is a special operator
<pransninja>
antonv: Set the doamin to mydomain.net, or perhaps .mydomain because of RFC2109, but RFC6265 is mostly implemented everywhere
fikka has quit [Ping timeout: 272 seconds]
<pransninja>
antonv: Yes, a lil here and there.
<pransninja>
So how come 'nil and nil is the same thing?
<pransninja>
Oh, because nil evaluated is still nil?
<Bike>
right, it evaluates to itself.
<pransninja>
as if (defavr lol "lol"), where lol and 'lol is the same?
<Bike>
no, "lol" is a string, not a symbol
<|3b|>
nil and 'nil are different things that evaluate to the same thing
<pransninja>
So more like (defvar lol 'lol)?
<antonv>
presiden: can you have in C a pointer variable? and then set the value of that pointer variable to it's own address? The same with NIL - it's a symbol whose value is itself
<Bike>
pransninja: like that, yes.
<pransninja>
Bike: Okay, now I understand. Thanks everyone.
<antonv>
The problem with hunchentoot sessions - I see no API to specify domain
<Bike>
couldn't you only do that with a void*? it seems kind of weird
<pransninja>
antonv: That is a crazy example, but I see it. :)
<|3b|>
so can be distinguished if you don't evaluate them. for example (mapcar 'length '(nil () 'nil (quote nil))) -> (0 0 2 2)
<pransninja>
antonv: You just set the :name of cookie to '.mydomain.net' and it will be sent with every subdomain too.
<pransninja>
cool beans
bgardner has joined #lisp
fikka has joined #lisp
bgardner has quit [Client Quit]
damke_ has joined #lisp
waynecolvin has quit [Quit: WeeChat 2.0]
randomstrangerb has quit [Ping timeout: 256 seconds]
randomstrangerb has joined #lisp
bgardner has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
dtornabene has quit [Remote host closed the connection]
ryanbw has joined #lisp
dieggsy has quit [Ping timeout: 248 seconds]
Kyo91` has joined #lisp
dddddd has quit [Remote host closed the connection]
<pransninja>
.
<pjb>
antonv: in C, it is not really possible, because of the type system.
<pjb>
antonv: eg. void* p=&p; is wrong on some level, because &p is of type void** not void*. Now of course, given the rules of void*, it will be accepted. But is it acceptable?
<pjb>
antonv: and lisp symbols are not pointers.
<pjb>
To do the equivalent in C, you need a more complex structure, with struct, union, etc; basically you need to implement symbols in C.
schoppenhauer has quit [Ping timeout: 252 seconds]
<antonv>
pjb: right, I just wanted to explain the idea
<antonv>
a reference referencing to itself
<antonv>
it's not a precise analogy
<pjb>
Don't use C to explain lisp.
<pjb>
Use lisp to explain lisp.
<antonv>
pjb, I can explain lisp in many ways :)
schoppenhauer has joined #lisp
<pransninja>
I use my lips to explain lisp.
<pransninja>
But that is a different story.
turkja has joined #lisp
JuanDaugherty has joined #lisp
smurfrobot has joined #lisp
Tobbi has joined #lisp
zooey has quit [Ping timeout: 272 seconds]
zooey has joined #lisp
pransninja has quit [Ping timeout: 260 seconds]
randomstrangerb has quit [Ping timeout: 268 seconds]
smurfrobot has quit [Remote host closed the connection]
randomstrangerb has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
fikka has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
nika has joined #lisp
megalography has joined #lisp
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
nika has quit [Quit: Leaving...]
damke has joined #lisp
damke_ has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
uuplusu has quit [Remote host closed the connection]
smurfrobot has quit [Remote host closed the connection]
zooey has quit [Remote host closed the connection]
OS-26949 has quit [Quit: Leaving]
zooey has joined #lisp
uuplusu has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
smurfrobot has joined #lisp
fikka has joined #lisp
uuplusu has quit [Ping timeout: 264 seconds]
smurfrobot has quit [Ping timeout: 252 seconds]
wxie has quit [Quit: Bye.]
uuplusu has joined #lisp
asarch has quit [Quit: Leaving]
fikka has quit [Ping timeout: 248 seconds]
sz0 has joined #lisp
randomstrangerb has quit [Ping timeout: 240 seconds]
smurfrobot has joined #lisp
uuplusu has quit [Ping timeout: 264 seconds]
randomstrangerb has joined #lisp
Kyo91` has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
Kyo91` has joined #lisp
damke has quit [Ping timeout: 264 seconds]
smurfrobot has quit [Ping timeout: 248 seconds]
smurfrobot has joined #lisp
uuplusu has joined #lisp
rippa has joined #lisp
fikka has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
Bike has quit [Quit: Lost terminal]
uuplusu has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 248 seconds]
smurfrobot has joined #lisp
red-dot has joined #lisp
uuplusu has joined #lisp
smurfrobot has quit [Ping timeout: 252 seconds]
<earl-ducaine>
Hey Lisponauts! Trying to determine what the potential difference might be between sb-int:fixnump and a naively defined (defun fixnump (object) (typep object 'fixnum))
<earl-ducaine>
I looked at the SBCL code, but it's not easy to decern what it accomplished appart from the usual SBCL coldboot-ish machinery.
uuplusu has quit [Ping timeout: 248 seconds]
<|3b|>
probably mostly speed, particularly if you don't inline your function
DeadTrickster has quit [Read error: Connection reset by peer]
DeadTrickster has joined #lisp
damke has joined #lisp
<beach>
earl-ducaine: TYPEP can be quite expensive. FIXNUMP is just a matter of testing the last bit of the work and return true if it is 0.
<|3b|>
built-in one is also more likely to take advantage of type-inference in surrounding code, which would be lost by full function call
<earl-ducaine>
Ah, that makes sense. Thanks beach |3b|
smurfrobot has joined #lisp
<|3b|>
(probably smart enough to use it if the typep was inlined though)
uuplusu has joined #lisp
<beach>
Inlined or even just a compiler macro.
<beach>
Either way, (TYPEP OBJECT 'FIXNUM) will ultimately have to do what FIXNUMP does.
<|3b|>
also whether the compiler knows if it can skip the call entirely if you ignore the results, since it has no side effects, and some things like that
fikka has joined #lisp
smurfrobot has quit [Ping timeout: 256 seconds]
uuplusu has quit [Ping timeout: 248 seconds]
antonv has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 256 seconds]
<|3b|>
probably most important difference is that typep is a supported function, so less likely to be randomly changed/removed by sbcl devs :)
uuplusu has joined #lisp
smurfrobot has joined #lisp
fikka has joined #lisp
uuplusu has quit [Ping timeout: 260 seconds]
smurfrobot has quit [Ping timeout: 248 seconds]
uuplusu has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
smurfrobot has joined #lisp
uuplusu has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
smurfrobot has quit [Ping timeout: 268 seconds]
uuplusu has joined #lisp
<beach>
Hmm, I should learn to use reader conditionals. I mean, I know the way they work, but I don't naturally think of them for structuring my code.
fikka has quit [Ping timeout: 248 seconds]
<beach>
For example, I need to test SICL systems implementing things like the package dictionary, but I want to test it in some host environment like SBCL. Obviously, there are tons of package-lock violations then. I think perhaps reader conditional can help here.
smurfrobot has joined #lisp
<beach>
Even doing something like (defpackage package (...) (:metaclass built-in-class)) won't work in a host environment, but I can wrap the :metaclass part in a reader conditional.
<beach>
Er, DEFCLASS, not DEFPACKAGE. Sorry.
uuplusu has quit [Ping timeout: 256 seconds]
LocaMocha is now known as JPMorgan
smurfrobot has quit [Ping timeout: 248 seconds]
JPMorgan is now known as Sauvin
uuplusu has joined #lisp
turkja has quit [Ping timeout: 260 seconds]
uuplusu has quit [Ping timeout: 240 seconds]
smurfrobot has joined #lisp
damke_ has joined #lisp
fikka has joined #lisp
damke has quit [Ping timeout: 264 seconds]
uuplusu has joined #lisp
smurfrobot has quit [Ping timeout: 260 seconds]
gravicappa has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
uuplusu has quit [Ping timeout: 264 seconds]
smurfrobot has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
uuplusu has joined #lisp
smurfrobot has quit [Ping timeout: 265 seconds]
shka has joined #lisp
uuplusu has quit [Ping timeout: 268 seconds]
uuplusu has joined #lisp
smurfrobot has joined #lisp
milanj has joined #lisp
<beach>
If I have an ASFD system for the SYMBOL dictionary and another for the PACKAGE dictionary, then invariably, they are going to depend on each other. I think I'll make a common system for both. Does that seem like a good idea?
<Shinmera>
Well you can't have cyclic dependencies, so what other choice do you have?
<beach>
Yeah, exactly my conclusion. Thanks for confirming.
<beach>
I have a cold, so I am not necessarily thinking clearly. :)
uuplusu has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
smurfrobot has quit [Ping timeout: 264 seconds]
<mfiano>
Is it good practice to use EXPORT in a macro which generates hundreds of functions that you want external?
<mfiano>
Shinmera: That's quite funny actually, because I am using it for the exact same thing.
<mfiano>
swizzles
<Shinmera>
I still don't understand why you're replicating my library instead of extending it
fikka has quit [Ping timeout: 248 seconds]
<mfiano>
Serves different purpose, and was born before yours
smurfrobot has joined #lisp
<Shinmera>
Don't see why it couldn't be extended to serve your purpose too
fourier has joined #lisp
<mfiano>
It's not about extension, it's about implementation.
<Shinmera>
Meaning what?
uuplusu has quit [Ping timeout: 256 seconds]
smurfrobot has quit [Ping timeout: 240 seconds]
<mfiano>
It was implemented almost 2 years before your first commit, and was designed for critical physics simulations outside of game development until it was renamed and served as part of my game development toolbox. Afterwards a few such as yours and Baggers' rtg-math showed up.
attila_lendvai has quit [Read error: Connection reset by peer]
<mfiano>
I am only now adding swizzling because I am removing a custom accessor system I've been using, and wanted to integrate it into varjo to have the same API on the CPU and GPU
uuplusu has joined #lisp
<Shinmera>
I see.
SaganMan has joined #lisp
attila_lendvai has joined #lisp
<parjanya>
shouldn’t (describe 'x) always give the docstring of a function?
<Shinmera>
There's more things that can be named by symbols than functions.
<parjanya>
I would hope my question to presuppose 'x to be a function
<dmiles>
well all the docs related to the symbol is always nice (varible, function, class, etc)
smurfrobot has joined #lisp
<Shinmera>
Also, describe can do pretty much whatever it wants.
<parjanya>
how odd, sometimes it does show the docstring, sometimes not
<parjanya>
is there a way to squeeze the docstring out by force? : o )
<Shinmera>
Why not just use DOCUMENTATION
uuplusu has quit [Ping timeout: 248 seconds]
<parjanya>
that does work, tx Shinmera
fikka has joined #lisp
smurfrobot has quit [Ping timeout: 260 seconds]
<mfiano>
Shinmera: I will give you some feedback though. It would be nice if you also defined SETF swizzles (or maybe I'm just blind), and you also support the other 2 GLSL masks.
uuplusu has joined #lisp
smurfrobot has joined #lisp
<Shinmera>
mfiano: Right, places are missing. What do you mean by the other 2 masks?
<mfiano>
"there are 3 sets of swizzle masks. You can use xyzw, rgba (for colors), or stpq (for texture coordinates)."
<Shinmera>
Ah
<Shinmera>
I avoided those on purpose
<mfiano>
I am avoiding SETF too, I think. I don't really need it, and it has some additional tricky bits
fikka has quit [Ping timeout: 248 seconds]
uuplusu has quit [Ping timeout: 263 seconds]
smurfrobot has quit [Ping timeout: 272 seconds]
fikka has joined #lisp
uuplusu has joined #lisp
Murii has joined #lisp
randomstrangerb has quit [Ping timeout: 248 seconds]
randomstrangerb has joined #lisp
uuplusu has quit [Ping timeout: 248 seconds]
damke has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
uuplusu has joined #lisp
pjb has quit [Read error: Connection reset by peer]
attila_lendvai has quit [Read error: Connection reset by peer]
uuplusu has quit [Ping timeout: 248 seconds]
attila_lendvai has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
uuplusu has joined #lisp
pjb has joined #lisp
makomo has joined #lisp
uuplusu has quit [Ping timeout: 248 seconds]
uuplusu has joined #lisp
t0adst00l has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
uuplusu has quit [Ping timeout: 268 seconds]
uuplusu has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
uuplusu has quit [Ping timeout: 260 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
uuplusu has joined #lisp
random-nick has joined #lisp
hexfive has joined #lisp
uuplusu has quit [Ping timeout: 268 seconds]
smurfrobot has joined #lisp
uuplusu has joined #lisp
uuplusu has quit [Ping timeout: 248 seconds]
uuplusu has joined #lisp
attila_lendvai has quit [Quit: Leaving.]
scymtym has quit [Ping timeout: 240 seconds]
smurfrobot has quit [Remote host closed the connection]
iskander has quit [Ping timeout: 248 seconds]
d4ryus2 is now known as d4ryus
smurfrobot has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
markong has joined #lisp
randomstrangerb has quit [Ping timeout: 256 seconds]
scymtym has joined #lisp
hexfive has quit [Read error: Connection reset by peer]
randomstrangerb has joined #lisp
hexfive has joined #lisp
fourier has quit [Ping timeout: 260 seconds]
froggey has quit [Ping timeout: 248 seconds]
smurfrobot has quit [Remote host closed the connection]
froggey has joined #lisp
<dmiles>
am i correct to assume most compiled lisp programs do not need eval or macroexpansion at runtime ?
<dmiles>
That is, the compiler eliminates the need to do that
<Shinmera>
Yes
damke has quit [Ping timeout: 264 seconds]
<Shinmera>
Well, it's less that the compiler eliminates the need to do that, it's more that the cases where using eval or compile at runtime are hard to justify.
damke_ has joined #lisp
<Shinmera>
In the overwhelming majority of cases there are better ways to solve the problem than eval.
<dmiles>
Well assuming user code uses eval.. most of the time the compiler can still eliminate if in the end
fourier has joined #lisp
<dmiles>
(appart from the obvious eval from string)
<Shinmera>
Huh?
<Shinmera>
No it cannot?
<beach>
dmiles: If the application calls EVAL, it's because the code to be evaluated is not known at compile time, so it has to happen at run time.
<dmiles>
well forget that last question it is probably a red herring. the real reason i am asking to is if after compiling i should be able to expect that i can completely macroexpect things away at compile time
<Shinmera>
What?
<dmiles>
macroepect/macroexpand
<beach>
dmiles: You are confused.
makomo has quit [Ping timeout: 252 seconds]
<dmiles>
on the side eliminating eval is not any more special than eliminating funcall or apply in most cases outside of (evaluating a string supplied by a user)
<beach>
It has nothing to do with a string.
<dmiles>
i know that obviously
<beach>
EVAL takes a Common Lisp expression and that expression can be built at run time without any strings involved.
<dmiles>
the string case would be the exception to my question
<dmiles>
i am asking "outside of some program that wanted to read a string with a lisp reader and eval it"
<beach>
Yes, and I am telling you that strings have nothing to do with it.
<dmiles>
good, so do you understand what i am asking then?
<beach>
An expression can be constructed at run time without any strings, and if the application programmer needs to evaluate such an expression, then it must happen at run time.
<aeth>
eval(foo) in languages with eval() is like (eval (read-from-string foo)) in Lisp
<phoe>
that's simple, because READ reads bytes from standard-input, so, technically, from streams
<beach>
The answer to your question is "no". It is not just in the case of a string that the evaluation must happen at run time, simply because there are other ways of building expressions at run time, and if they are not known at compile time, they must be evaluated at run time.
<random-nick>
dmiles: well, it is common for people to include a Read Eval Print Loop in their program, so some programs do use "eval"
<dmiles>
beach: good example, indeed it may not be possible to eliminate
<phoe>
but (let ((expr (list (random-operator) (random-argument) (random-argument)))) (eval expr))
smurfrobot has joined #lisp
<Shinmera>
Eliminating eval is a pointless optimisation anyway
<Shinmera>
Either the user knows what they're doing and it has to happen at runtime, or they don't and they should eat the slowdown.
<phoe>
where random-operator can have arbitrary side effects
Ven`` has joined #lisp
Ven`` has quit [Client Quit]
shka has quit [Ping timeout: 264 seconds]
<dmiles>
many case i do eliminate eval like (eval (cons 'fn args))
<phoe>
that's funcall
<phoe>
or rather, apply
<dmiles>
right its an apply that ends up gettign eliminated
<Shinmera>
But whatever for
<Shinmera>
What's the point
<phoe>
...but hey hey hey
<beach>
dmiles: No sane application programmer would write that, so it is pointless (as Shinmera says) to optimize it.
milanj has quit [Quit: This computer has gone to sleep]
<dmiles>
the point is there is not reason to nnot eliminate it
papachan has joined #lisp
<phoe>
FN doesn't need to be a function
<Shinmera>
There is, it's a waste of your time
<phoe>
it can be a macro or worse, a special operator
<Shinmera>
Also, EVAL has to happen in a null-lexenv
<beach>
dmiles: Yes, there is. It is called "software maintenance". The more pointless code you have, the harder it is to maintain.
<Shinmera>
So if you try to "inline" the expression you're compiling wrong
damke_ has quit [Read error: Connection reset by peer]
<phoe>
dmiles: you basically need to have a really damn good reason to call EVAL in runtime
<dmiles>
i already have the code that eliminates that (time is done) .. what i am trying to decide is if i can expect that i will not need to macroexpand as well
smurfrobot has quit [Ping timeout: 240 seconds]
<phoe>
a REPL or RPC inside your program is such a reason.
damke_ has joined #lisp
<phoe>
why would you write EVAL in your code in the first place?
<Shinmera>
eval needs to do minimal compilation, which includes macroexpansion
<Shinmera>
phoe: Avoid code being interpreted as a declaration
<phoe>
also, you may have closures in there that COMPILE will catch
<dmiles>
right Shinmera, makes my point that eval is not that special
<Shinmera>
I remember there being a subtle difference.
<phoe>
Shinmera: thanks, you're correct.
<beach>
dmiles: It is very special indeed.
<beach>
And your optimization won't work.
<Shinmera>
dmiles: I made no such point
<dmiles>
the orignal question was "outside of the case of EVAL and some whereness of trying to eval at runtime" .. x y z
<beach>
dmiles: Because the arguments can contain arbitrary expressions that need to be evaluated before the function can be applied. This is elementary in implementing Common Lisp. You really should have a look at Lisp in Small Pieces.
<dmiles>
i was trying to avoid discussing eval :P but i accidently brought it upo in the question
<dmiles>
the question was "outside the case of EVAL, is there a reason one might have to macroexpand at runtime"
<random-nick>
well using LOAD usually leads to evaluation
<Shinmera>
dmiles: Someone calls macroexpand
<beach>
dmiles: Yes, when the programmer calls MACROEXPAND.
<beach>
Heh!
<dmiles>
beach: true!
hexfive has quit [Quit: WeeChat 1.9.1]
<Shinmera>
Alternatively if someone manually calls the macro function of a macro definition.
wxie has joined #lisp
damke has joined #lisp
<phoe>
^
<phoe>
also the reader's #.
<phoe>
although this directly calls eval
damke_ has quit [Ping timeout: 264 seconds]
<dmiles>
phoe: yeah, though mostly i make a little lambda that returns that experession with load-time-value for things liek that if they dont seem constant
<dmiles>
like a #.(random 666)
<beach>
That is perfectly constant at compile-time.
Ven`` has joined #lisp
fourier has quit [Ping timeout: 264 seconds]
smurfrobot has quit [Remote host closed the connection]
<dmiles>
yeah, though perhaps two #.(make-string )s
<dmiles>
(that make the same string bu the programmer expects them to not be 'eq)
<beach>
So #.(random 666) is first an example of something that is NOT constant at compile time, and then you agree that it IS?
<dmiles>
ok so i think the answer to my question is: "except in the cases that the programmer is forcing the need for eval, (yet they can still use apply/funcall), except the case the programmer is using macroexpand (or evaluating the macroexpransion with hopes of evaluating it next), you should be able able to complle programs well enough that you will not need to relly on preserving your enviroment
<dmiles>
you compiled with"
<random-nick>
shouldn't everything evaluated with #. be constant at compile-time since it is evaluated at read-time?
<beach>
dmiles: Oh, you never have to do that. The Common Lisp HyperSpec says so.
nirved has joined #lisp
<dmiles>
beach: really i assumed the lisp reader gave me a random number and i compile things never knowing the number ws random
<beach>
It gives you one number. So it is constant. But you gave this as an example of something that is NOT constant. And then you changed your mind.
<dmiles>
i was under the assumption it related to load-time-value (but i think that assumption was wrong)
fourier has joined #lisp
<dmiles>
if the users code contained (read-from-string ".(random 666) ") that might be differnt
mrcom_ has quit [Quit: Leaving]
<beach>
Maybe you don't care whether your implementation is conforming or not, but if you do, I think you are in for A LOT of work.
mlau has joined #lisp
<dmiles>
well i been working for 3 months it.. i have one month left in budget to be able to run 2 differnt applications.. then if i can get that done i get 2 more months to run/compile 2 more applications.. then after that i get to worry about conformance and passing the ansi-tests
raynold has quit [Quit: Connection closed for inactivity]
dddddd has joined #lisp
<dmiles>
so my intial goal is compile and run "DAYDREAMER" and (PTTP or "Knowledge Machine") by end of January
mlau has quit [Ping timeout: 260 seconds]
<dmiles>
conformance, maybe by end of year
uuplusu has quit [Remote host closed the connection]
mlau has joined #lisp
damke has quit [Ping timeout: 264 seconds]
damke has joined #lisp
<flip214>
Xach's report of ASDF 3.3.1 breakage in newer SBCL includes a few non-ASDF related things, AFAICT.
<dmiles>
beach: i brought that up to say intitial priority is a little scewed
<dmiles>
but i am doing it backwards in hopes of being able to get paid durring the time of "A LOT of work"
uuplusu has joined #lisp
pagnol has joined #lisp
<Xach>
flip214: that's one option
uuplusu has quit [Ping timeout: 256 seconds]
drcode has quit [Ping timeout: 240 seconds]
safe has quit [Read error: Connection reset by peer]
uuplusu has joined #lisp
smurfrobot has joined #lisp
<Xach>
flip214: but then there's no point in conditionalizing
<Xach>
flip214: it's better to wholly commit or wholly abandon
mejja has quit [Quit: mejja]
uuplusu has quit [Ping timeout: 252 seconds]
norfumpit_ has joined #lisp
smurfrobot has quit [Ping timeout: 248 seconds]
SaganMan has joined #lisp
uuplusu has joined #lisp
fourier has quit [Ping timeout: 260 seconds]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
uuplusu has quit [Ping timeout: 265 seconds]
oleba has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
uuplusu has joined #lisp
makomo_ has joined #lisp
makomo has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 248 seconds]
notzmv has joined #lisp
oleba has left #lisp ["ERC (IRC client for Emacs 25.1.1)"]
fikka has joined #lisp
<flip214>
well, the idea is that if it existed during compilation, it'll do so after reloading the FASLs too
fluke` has joined #lisp
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 250 seconds]
oleba has joined #lisp
<Shinmera>
flip214: That doesn't work
<Shinmera>
ASD files are not compiled.
<Shinmera>
So if you load b, load a, restart, load a, then a contains fasls with b in it, but the asd won't load b.
<Shinmera>
A "solution" would be to put #+b (ql:quickload :b) into the source files, except that'll give you nasal demons because recursive loading in ASDF is bad juju.
ykoda has joined #lisp
asarch has joined #lisp
<jackdaniel>
:weakly-depends-on was deprecated hm?
<Xach>
jackdaniel: I'm not sure, but I don't think it would help.
<jackdaniel>
ah, I've noticed the link right now, reading
<Shinmera>
More than weakly-depends-on, you'd need to be able to say that a component only gets loaded/compiled in the presence of a certain system.
<Xach>
flip214: I was wrong earlier, I didn't read your question right.
<Xach>
And the cache is only valid in the presence, too.
<Xach>
Similar to *features* issues
<Xach>
other *features* issues
Ven`` has joined #lisp
<jackdaniel>
well, I agree there is no good solution for that. If anything, before first use of b putting #+project-b (eval-when (…) (asdf:load-system :project-b))
<jackdaniel>
(not in asd file of course, but in dependencies.lisp or something like that
<jackdaniel>
)
<Xach>
jackdaniel: that seems like it would only load project-b when project-b is already loaded?
<Shinmera>
jackdaniel: Except that's not a good idea either
<Shinmera>
jackdaniel: See what I wrote above
<Shinmera>
Xach: The idea of the snippet is to encode the fact that it was compiled with b in the fasl.
<jackdaniel>
Xach: no, because this form is READ during first load, so load-system
<jackdaniel>
is "saved" in fasl
<Xach>
jackdaniel: How does project-b get added to *features*? In my example, it is added by loading project-b.
<Xach>
that is, project-b adds itself.
<jackdaniel>
yes, it is added by loading project-b, which prepends :project-b to features
<jackdaniel>
then you load project-a, which has project-b in features (and compiles it)
<Xach>
Oh, I see now, thanks.
<jackdaniel>
during compiling project-a source code, it reads #+project-b form
<jackdaniel>
OK
<Xach>
So if project-b is coincidentally loaded, it becomes explicit.
<jackdaniel>
Shinmera: if you grok asdf enough you start to understand, that it's nasal deamons even without recursive load (as in – it does what it does)
<Shinmera>
There's a lesser and greater demons
<jackdaniel>
actually undefined consequences are always undefined, that was at least claim in the original article
<jackdaniel>
but yes, more "common" settings are more frequntly tested and hack-patched
JonSmith has joined #lisp
JonSmith has quit [Ping timeout: 268 seconds]
norfumpit_ has quit [Ping timeout: 252 seconds]
<jackdaniel>
Xach: fwiw, if you consider loading fasls that way, you may want to put (require 'asdf) before asdf:load-system in this chunk
<Xach>
I wouldn't consider it!! I depend on everything all the time!!
Karl_Dscc has joined #lisp
<Shinmera>
Xach: Do you have info on which systems conflict with each other? As in, they can't both be loaded in the same instance
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
smurfrobot has quit [Remote host closed the connection]
smurfrobot has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
milanj has quit [Quit: This computer has gone to sleep]
fikka has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
angavrilov has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 248 seconds]
wxie has quit [Quit: Bye.]
fikka has joined #lisp
red-dot has joined #lisp
Ven`` has joined #lisp
smurfrobot has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 248 seconds]
pedh has joined #lisp
randomstrangerb has quit [Ping timeout: 272 seconds]
randomstrangerb has joined #lisp
JuanDaugherty has quit [Quit: Ex Chat]
<scymtym>
Xach: are you aware of any progress regarding cxml? i didn't hear back from dlichteblau yet (sent mail mid November, CCed you)
<beach>
So export takes a designator for a list of symbols. According to the glossary, that excludes a string or a list of strings if I read it correctly. Am I right?
Bike has joined #lisp
fikka has joined #lisp
<scymtym>
beach: assuming you mean the "designator" glossary entry, which part of the entry lets you conclude that?
<beach>
So if I substitute SYMBOL for OBJECT, I get "a non-nil symbol (denoting a singleton list whose element is that non-nil symbol) or a proper list (denoting itself)".
<scymtym>
wouldn't that contradict the example (non-normative, of course)?
<Bike>
none of the examples pass export a string
<beach>
I guess I am on the right track, because SBCL rejects a string (which would be a symbol DESIGNATOR, but not a symbol, of course).
<scymtym>
sorry, misread the example
<beach>
What example?
pedh has quit [Quit: pedh]
<beach>
Yes, I see.
<beach>
OK, thanks for the help.
<scymtym>
the EXPORT example. i thought it used a string which would become a singleton list containing a string. thus the question
<beach>
Yes, I got it.
smurfrobot has quit [Ping timeout: 260 seconds]
<beach>
By the way, I found a cute way of checking if something is a proper list. No doubt I am not the first one to do that, but it's simple: (integerp (ignore-error (list-length list)))
<beach>
IGNORE-ERRORS
thijso has quit [Ping timeout: 252 seconds]
ryanbw has quit [Ping timeout: 268 seconds]
* beach
now thinks he must be the only one who finds this cute.
makomo_ has quit [Ping timeout: 264 seconds]
<_death>
list=3
<Shinmera>
beach: Why not just (null (cdr (last list)))
serviteur has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
<beach>
KZiemian: I don't know if you have thought about this issue yet: There is a general explanation in the Common Lisp HyperSpec that if a dictionary page mentions an object type, and nothing explicit is said on that page about what happens if the type is violated, then the consequences are undefined (or perhaps unspecified, I don't remember) if it is.
<beach>
I think many people incorrectly assume that en error will be signaled. It would be worthwhile to remind the reader of such dictionary pages of these consequences. It could be in the form of a link to the general page (with an appropriate text), or a direct statement of what happens if the type is violated.
<beach>
Notice: "Except as explicitly specified otherwise, the consequences are undefined if these type restrictions are violated."
<KZiemian>
beach: I had no idea about it
<beach>
There you go.
<KZiemian>
beach: If I had time, I put today some explenation about CLUS current aims and problem
<KZiemian>
beach: to make today state more clear
smurfrobot has quit [Ping timeout: 268 seconds]
<KZiemian>
beach: I maked note about this problem from you statement
<beach>
Great!
<KZiemian>
beach: I make GitHub or send to community, whatever will see more appropriate
fikka has quit [Ping timeout: 268 seconds]
<beach>
KZiemian: If you want to make a specific note on each entry concerned, I can help you with the text for that. Like, for this one, I would say something like:
<beach>
Note from the CLUS maintainer: While this page explicitly says that there are no exceptional situations, notice that section 1.4.4.3 implies that, if the lists (all arguments except the last) are not proper lists, the consequences are undefined.
<KZiemian>
beach: Thank you :)
<beach>
... and if you compile a list of dictionary entries that need to be amended, I can work on such a list, and create specific notes.
<beach>
What I won't do is the markup. :)
<KZiemian>
beach: When I start to understand direction in which CLUS is going now enough to make this come true I will contact you
<KZiemian>
beach: now CLUS is for me like a maze, which have one path that I more or less understand
<KZiemian>
beach: I walk that path and clean some mess but don't deare to probe others
<KZiemian>
that will be my new year resolution
<KZiemian>
understand CLUS more
<beach>
Sounds good to me.
<loke>
Happy newyear Lisp!
<beach>
You too loke.
<KZiemian>
okey
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
fikka has joined #lisp
<KZiemian>
I put the best explenation of CLUS state that I can
red-dot has joined #lisp
<KZiemian>
on the Issue of CCLDoc, to make it more clear to CCL people
ryanbw has joined #lisp
<beach>
loke: Oh, it's already past midnight where you are! Nice!
<beach>
KZiemian: Before you put any of your own notes into the CLUS, you should have them reviewed by some native speakers of English, or possibly by me.
<beach>
phoe would go a good job as well. And flip214, and ...
<beach>
would DO a good job.
heurist_ is now known as heurist
fikka has quit [Ping timeout: 252 seconds]
makomo_ has joined #lisp
<KZiemian>
beach: you mean true CLUS, not GitHub Issue?
p_l has joined #lisp
arbv has quit [Ping timeout: 260 seconds]
<beach>
Yes. I don't care about the issues.
<KZiemian>
beach: I don't care too much about it too. Yes CLUS is serious matter, I don't dare put notes in it without chacking
fluke`` has quit [Ping timeout: 260 seconds]
<beach>
Good.
<KZiemian>
half serious, we need now member of CLUS colaboration
<beach>
I thought I was trying to help. No?
arbv has joined #lisp
<KZiemian>
English checker for polish-like input ;)
<KZiemian>
beach: if you will have time that will be great :)
<KZiemian>
beach: unfortunetly I don't know when CLUS will be back on the track
<beach>
I can't be a regular contributor, but certainly if you ask for specific help, I'll help out.
<KZiemian>
beach: enough to start adding some notes
<KZiemian>
beach: yes I know, but every bit of help is enough
fikka has joined #lisp
Oddity has joined #lisp
Oddity has quit [Changing host]
Oddity has joined #lisp
<KZiemian>
happy new year!
<KZiemian>
this will be a 60 year of Lisp!
<beach>
It's off to a bad start here, though, with storm Carmen coming in.
fikka has quit [Ping timeout: 276 seconds]
<KZiemian>
beach: ouu, I don't notice that. Here our main problem is that roads are wet.
<beach>
Yeah, well, you are a bit further away from the Atlantic.
<KZiemian>
hopefully 60 bitrhday of Lisp be a good year to it :)
<beach>
Let's hope so.
<KZiemian>
beach: hope that you will be ok after Carmen go out
<KZiemian>
happy new year all!
KZiemian has quit [Quit: Page closed]
milanj has joined #lisp
sz0 has quit [Quit: Connection closed for inactivity]
fourier has joined #lisp
Mandus_ has joined #lisp
Mandus_ has quit [Client Quit]
fikka has joined #lisp
Walex has quit [Ping timeout: 260 seconds]
moei has joined #lisp
flak has joined #lisp
QualityAddict has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 272 seconds]
yaewa has quit [Ping timeout: 264 seconds]
ikopico has quit [Ping timeout: 264 seconds]
ikopico has joined #lisp
samsungtv has quit [Ping timeout: 264 seconds]
ericmathison has quit [Ping timeout: 264 seconds]
ericmathison has joined #lisp
samsungtv has joined #lisp
rippa has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
orivej has quit [Ping timeout: 240 seconds]
makomo_ has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
EvW1 has quit [Remote host closed the connection]
red-dot has joined #lisp
fourier has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 264 seconds]
oleba has quit [Remote host closed the connection]
Karl_Dscc has quit [Remote host closed the connection]
fourier has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
nika has quit [Quit: Leaving...]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Jarwin has joined #lisp
jmarciano has joined #lisp
fikka has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
pchrist_ is now known as pchrist
smurfrobot has quit [Ping timeout: 272 seconds]
fikka has joined #lisp
JonSmith has joined #lisp
Ven`` has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
fikka has quit [Ping timeout: 268 seconds]
red-dot has joined #lisp
JonSmith has quit [Ping timeout: 252 seconds]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
angavrilov has joined #lisp
Ven`` has joined #lisp
sonologico has joined #lisp
fourier has quit [Ping timeout: 248 seconds]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
JonSmith has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
fikka has quit [Ping timeout: 252 seconds]
fourier has joined #lisp
random-nick has quit [Remote host closed the connection]
DeadTrickster has quit [Read error: Connection reset by peer]
DeadTrickster has joined #lisp
smurfrobot has joined #lisp
fikka has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
random-nick has joined #lisp
smurfrobot has quit [Ping timeout: 272 seconds]
ykoda has quit [Quit: WeeChat 2.0.1]
drcode has joined #lisp
drcode has quit [Remote host closed the connection]
fikka has joined #lisp
<ebrasca>
phoe: Happhy new year.
drcode has joined #lisp
EvW has joined #lisp
<ebrasca>
I have added initial for fat32 reading in mezzano.
fikka has quit [Ping timeout: 240 seconds]
earl-ducaine has quit [Remote host closed the connection]
earl-ducaine has joined #lisp
<shka>
ebrasca: cheers!
spoken-tales has joined #lisp
fikka has joined #lisp
EvW has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 240 seconds]
ozzloy has quit [Remote host closed the connection]
damke_ has joined #lisp
mson has joined #lisp
damke has quit [Ping timeout: 246 seconds]
fikka has joined #lisp
<earl-ducaine>
ebrasca: just saw the fat32 commit. Looks quite awesome!
BitPuffin|osx has quit [Ping timeout: 264 seconds]
<shka>
who knows how to extend metabang-bind ?
fikka has quit [Ping timeout: 268 seconds]
mson has left #lisp [#lisp]
spoken-tales has quit [Remote host closed the connection]
spoken-tales has joined #lisp
<phoe>
ebrasca: congrats!
Jarwin has quit [Remote host closed the connection]
jmarciano has quit [Remote host closed the connection]
fikka has joined #lisp
<phoe>
Is there any CL library for parsing Javascript source?
<shka>
ebrasca: i really can't help, but i love the idea
<shka>
power is currently the open architecture
Walex has quit [Quit: leaving]
<shka>
that alone makes it interesting
<ebrasca>
It have some cpu GC.
<ebrasca>
shka: Maybe you can help me with fat32 suport in mezzano.
<ebrasca>
I have low experience with big projects.
<shka>
busy with other stuff, but that cpu GC is fascinating
<shka>
i thought that those ideas are long gone
<ebrasca>
I only have found 1 line referencing GC in IBM documentation.
<ebrasca>
shka: What project are you working on?
fikka has joined #lisp
<shka>
cl-ds, mostly, i am trying to contribute to documentation-utils
Murii has quit [Quit: WeeChat 1.4]
OS-26949 has quit [Ping timeout: 260 seconds]
paul0 has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
<borodust>
'happy-new-year!
LiamH has joined #lisp
* ebrasca
don't understand how to write documentation.
<shka>
don't ask me about it…
<ebrasca>
shka: If you like I can ask you about documentation.
fikka has joined #lisp
OS-26949 has joined #lisp
<shka>
no
<shka>
just no
<ebrasca>
lol
scymtym has quit [Ping timeout: 265 seconds]
<ebrasca>
ok
ninegrid has quit [Quit: leaving]
<pjb>
Write documentation like programs. Write down specifications for the documentation, make an analysis, and write the implementation. Test it on real programmers.
fikka has quit [Ping timeout: 248 seconds]
randomstrangerb has quit [Ping timeout: 260 seconds]
randomstrangerb has joined #lisp
* ebrasca
only understand to write , eval and loop.
smurfrobot has quit [Remote host closed the connection]
<pjb>
You have a programmer process that needs to take specifications and module documentations as input, and produce code as output. You need to write the documentations. The specification of the documentation is that it provides good data to the programmer process so he's able to produce good code from the specifications.
<pjb>
It's a trivial meta-programming problem.
<pjb>
(trivial for a lisper).
<phoe>
(make-instance 'standard-programmer)
<shka>
architecture is very poorly designed and not portable at all!
<phoe>
shka: you mean power9?
<shka>
no
<ebrasca>
(make-documentation scr-code)
<shka>
i mean humans!
<phoe>
:D
<shka>
you can't write reliable code for that platform
rumbler31 has quit []
<pjb>
You can aim.
<pjb>
it is even possible to write code that will produce correct results when run on buggy and failing processors.
<ebrasca>
pjb: do you mean human brain architecture?
<pjb>
Even human brains, yes.
<pjb>
For human brains, there's even an easy solution: take a statistical approach.
<pjb>
Then you just let HR to prune the incompetent programmers.
spoken-tales has joined #lisp
turkja has joined #lisp
<pjb>
The lesson here is that programming doesn't involve computers at all. The job of programmers can be applied on any kind of systems, everywhere.
<shka>
well, i always argue that programming is very much humanist job
<ebrasca>
I think it is more math job.
<shka>
besides
<shka>
pjb: what if YOU are faulty processor as well? :-)
<shka>
ebrasca: it is, sometimes
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<pjb>
Of course, there's a tendency to move processes to hardware computers, and the more so when AI increases. But you can do your job with people when you don't have hardware, or when you need more human intelligence (cf. eg. the Mechanical Turk).
<pjb>
shka: that's why you need to write tests!
<pjb>
You don't test the program you write, you test your understanding of the problem!
red-dot has joined #lisp
<shka>
well, regarding lisp
<shka>
is there some sort of hook that can launch function on system loading?
<pjb>
depending on the implementation.
<pjb>
ccl has several of them.
<p_l>
shka: ASDF has hooks, rest is implementation-dependant
<ebrasca>
shka: sbcl have some script mode.
fikka has joined #lisp
<shka>
ok, whatever
<shka>
i can live without
<ebrasca>
You can install stumpwm and start all your lisp code with it.
random-nick has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
LiamH has quit [Quit: Leaving.]
LiamH has joined #lisp
DeadTrickster has quit [Read error: Connection reset by peer]
DeadTrickster has joined #lisp
bgardner has quit [Ping timeout: 260 seconds]
JonSmith has quit [Remote host closed the connection]
OS-26949 has quit [Ping timeout: 248 seconds]
smurfrobot has joined #lisp
fikka has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
turkja has quit [Ping timeout: 260 seconds]
smurfrobot has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 248 seconds]
scymtym has joined #lisp
JonSmith has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
bgardner has joined #lisp
JonSmith has quit [Ping timeout: 240 seconds]
JonSmith has joined #lisp
bgardner has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
orivej has joined #lisp
loli has quit [Quit: WeeChat 2.0.1]
JonSmith has quit [Ping timeout: 264 seconds]
orivej has quit [Ping timeout: 272 seconds]
fikka has quit [Ping timeout: 264 seconds]
loli has joined #lisp
pierpa has joined #lisp
<cryptomarauder>
happy new years everybody
spoken-tales has quit [Ping timeout: 260 seconds]
bgardner has joined #lisp
Murii has joined #lisp
gravicappa has quit [Ping timeout: 260 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
fikka has joined #lisp
rumbler31 has joined #lisp
<parjanya>
happy new year :)
red-dot has joined #lisp
smurfrobot has joined #lisp
attila_lendvai has joined #lisp
loli has quit [Quit: WeeChat 2.0.1]
krwq has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
OS-26949 has joined #lisp
<phoe>
gaaaah, I love dealing with things like (mapcar #'cadr (caddr (caadr foo)))
t0adst00l has quit [Remote host closed the connection]
t0adst00l has joined #lisp
wxie has joined #lisp
<Shinmera>
TBH I almost never find mapcar+lambda easier to read than loop
<phoe>
Shinmera: I got a parse tree from parse-js and this line above is meant to remove all the unnecessary trash from it, leaving just a list of lists containing the data I seek.
smurfrobot has joined #lisp
randomstrangerb has quit [Ping timeout: 268 seconds]
<TMA>
OTOH writing mapcar+lambda is easier. I do not need to reread the hyperspec to find out whether I should use OF, ON, OVER, IN, ACROSS, or FORTHWITH-WHEREAS-NOTWITHSTANDING :)