freenode/#lisp - IRC Chatlog
Search
14:26:18
pjb
knobo: in the worst case, marry and make a baby, and in 10 years, you can have a newbie lisper, in 20 a seasonned lisper!
16:08:38
jasom
yup. She asked me about programming and I was about to say that my first language was gwbasic, but then I realized we had done logo in school, just nobody told us it was programming.
16:09:14
jasom
JuanDaugherty: she had some developmental delays so I had to wait until she could read without struggling
16:13:06
jasom
Qbasic was the first thing I *really* got into, and then C shortly after. I wrote a bubble sort in C and quickbasic, compiled both. The quickbasic ran 8minutes interpreted, 1 minute compiled. C ran in under a second.
16:14:06
jasom
you can still buy my first C compiler too: http://www.mixsoftware.com/product/powerc.htm It requires DOS 2.0 or later!
16:15:12
jasom
Yeah It was less cheaper with the library source than to get MSC or TC without source
16:17:27
jasom
That and Thomas Plum's "Learning to Program in C" (A great text that is unfortunately dated due to predating ANSI) is what got me started
18:05:17
whoman
genuis lispers! i require a little headful discussion of an idea thats not too crazy, if anyone happens to know about laziness, unification, declarative pattern matching stuff (ala prolog, haskell)
18:12:33
whoman
"First of all there is no portable way (yet) to list all the slots of a given structure. " for CLOS - its true?
18:39:37
phoe_
I have the Slime debugger open. How can I jump to the definition of a method called in a frame?
18:55:51
phoe_
How can I tell CFFI's foreign-array-to-lisp to return not SIMPLE-VECTOR, but SIMPLE-ARRAY (UNSIGNED-BYTE 8)?
19:01:21
phoe_
I have a method that might not be very effectively, namely COERCE'ing the resulting vector into the proper type.
20:25:27
pjb
whoman: have a look at: http://informatimago.com/articles/usenet.html#Improved-DEFSTRUCT-macro--run-time-access-to-the-fields
20:26:56
pjb
whoman: if you don't have access to the source then you can write such macros just to declare the slots, and to generate your own forward-accessors.
22:50:22
mfiano
Yeah CL is strange in that order is context-dependent. Many different functions unituitively have reverse order. It's just something you grow used to. eldoc helps though
22:52:31
aeth
generally it should go (foo item index) unless it's just there for backwards compatibility
22:52:47
aeth
and the reason why the order flipped (obviously nth is much older than most of these) is because of aref being multidimensional
0:08:42
drmeister
Energy efficiency of different languages. Lisp fares very well - Python is a disaster.
0:11:08
jmercouris
pjb: and I have this run file here: https://github.com/nEXT-Browser/nEXT/blob/master/next/run.lisp
0:11:26
jmercouris
when I try to load a system I've defined here: https://github.com/nEXT-Browser/nEXT/blob/master/next/next.asd
0:11:36
jmercouris
it simply complains that whatever package is not installed isn't, doesn't attempt to install
0:13:13
pjb
You may also rather symlink your next source directory to ~/quicklisp/local-projects/next so you don't have to touch *central-registry*, and can directly (ql:quickload :next) instead of (laod "run.lisp")
0:15:16
jmercouris
that file is here: https://github.com/nEXT-Browser/nEXT/blob/master/next/make.lisp
0:16:00
pjb
I usually name it generate.lisp or generate-application.lisp and call it from a Makefile.
0:16:31
jmercouris
the issue I have is if you see on line 4, I was normally loading all of the things manually
0:16:42
jmercouris
like this: https://github.com/nEXT-Browser/nEXT/blob/master/next/dependencies.lisp
0:17:42
pjb
Those dependencies can always be dealt automatically by quicklisp. But you need some other setup, and notably when generating the executable, you want to control what is loaded in your lisp imageā¦
0:18:24
aeth
drmeister: seems to be in line with general benchmark results, where there are very fast languages, "normal" languages, and very slow languages.
0:18:40
pjb
But the loading of your system and other stuff, you have to do in a script to build the application.
0:19:45
pjb
jmercouris: notably, in generate-application, I quickload the libraries needed by the builder.lisp script which is common between generate-application.lisp and loader.lisp
0:20:31
pjb
Not instead. The makefile only serves to record how the lisp implementation should be run on the make.lisp script to build correctly the program.
0:21:55
pjb
Another example: https://framagit.org/nasium-lse/nasium-lse/tree/master/src in this one, the makefile lets you choose between several versions of binaries (server, cli).
0:23:56
pjb
jmercouris: the requirements: 1- you want all the dependencies in asd files. 2- you want to avoid duplication between loading an image for an executable and loading to develop/debug. 3- you want a reproducible build (in different environments) to generate the executable.
0:24:32
pjb
And depending on the complexity of the project, you may have additionnal things, such as downloading, installing and compiling dependencies that are not in quicklisp! :-)
0:26:12
pjb
So for the later, I run the scripts manually, but in Patchwork I use logical pathnames to point to the directories where those dependencies are stored.
0:27:15
pjb
It is conceivable to combine both scripts, to be able to download automatically non-quicklisp dependencies when needed.
0:28:26
pjb
Yes, it depends on the degree of ease you want to provide for co-workers, or other developers getting your sources and compiling them.
0:29:13
jmercouris
I think a little bit too much room to break if I pull in other sources as well, I think i'll just leave it how it is, maybe only automating download of quicklisp dependencies
0:55:21
jasom
Xach: am I misinterpreting systems.txt or does QL think that cl-unicode/build depends on the system cl-unicode? That seems wrong to me.