freenode/#lisp - IRC Chatlog
Search
12:58:32
schweers
I have a question regarding packages. I am a little fed up with having to include a certain set of dependencies into every package I create. such as metabang-bind and iterate. I wanted to create a "base" package which depends on said packages and exports all symbols exported from any of its dependencies and of course from "COMMON-LISP". This is the package I created: http://paste.lisp.org/display/353574
12:59:50
schweers
when I try to quickload another package which depends on it, and :USEes it (and nothing else, not even :CL) I get an error claiming that <PACKAGENAME>::NIL is not defined
13:02:55
zulu_inuoe_
My immediate guess would be you need an eval-when to make sure that export loop runs at the right time
13:05:06
schweers
I added (eval-when (:compile-toplevel :load-toplevel :execute) ...) around the loop, didn’t help. Even restarted the lisp process
13:07:14
Bike
well, forget about compile time side effects for a minutes. if you just load the code one form at a time, does the package export everything it's supposed to?
13:11:14
zulu_inuoe
Please tell me there's another lisper that's into Dark Souls. I'd have found my soul mate then
13:12:38
zulu_inuoe
Yeah it'd be finding a niche person (who may not even be a programmer) and teaching them lisp. That's sure to work great
13:13:18
schweers
zulu_inuoe: you might have more luck with non-programmers. they have not yet been conditioned to believe that lisp is evil
13:16:13
dlowe
Quote: It was Bernie Greenberg, who discovered that it was. He wrote a version of Emacs in Multics MacLisp, and he wrote his commands in MacLisp in a straightforward fashion. The editor itself was written entirely in Lisp. Multics Emacs proved to be a great success programming new editing commands was so convenient that even the secretaries in his office started learning how to use it. They used a manual someone had written which showed how to extend Em
13:16:24
schweers
I recently stumbled across the claim that every site is a dating site if you’re creepy enough ;)
13:18:04
zulu_inuoe
schweers: It's actually just interfacing with people, I think. My experience has been that dating sites are some of the worst places to find people to date. More effective to join a group and just mingle naturally
13:18:10
dlowe
as much as I love that anecdote, there should be a disclaimer: "These secretaries were MIT secretaries"
13:18:52
schweers
zulu_inuoe: people seem to often use such sites with the wrong expectations, but that wasn’t my point. I was just joking a little.
13:24:19
dlowe
schweers: I don't know how "especially smart" you are saying, but I'm saying that the sample is probably skewed towards high capacity to deal with 1970s computers
13:25:29
schweers
don’t know that much about MIT, so I don’t know how their secretaries are. or were. I’m too young for such stories ;)
15:35:07
thetabit
How do I format a number as a string and if the number is less than 10 place a zero on the front. I am trying to print datetime so that it will be compliant with mysql datetime
15:37:55
thetabit
I've got something like (format nil "~[00~;01~;02~;03~;04~;05~;06~;07~;08~;09~]" <input>)
15:43:06
dlowe
thetabit: you might want to check out local-time which has formatting for stuff just like this
16:58:36
Fare
jasom: ok, so between 2013 and early 2017 --- I removed the name recently. Is anyone using it directly?
17:53:47
_user
one of them that looks pretty good to me is this one: https://github.com/fukamachi/prove
17:57:04
_user
I see a lot of reccomendations for FiveAm as well, but I haven't seen active dev on it
17:57:59
rpg
_user: I thought it had been recently overhauled to remove its ancient arnesi dependency. But TBH, I haven't been tracking it that carefully.
17:59:05
rpg
For reasons of stability, we use a local copy, and haven't had much time to pull changes from upstream. Which is actually a good sign that it isn't broken!
17:59:44
rpg
I would avoid RT, which is interesting, but crude (e.g., doesn't take well to multiple bits of testable software sharing the same image).
18:00:11
_user
yeah, I was going to avoid RT, based on your feedback I'm now considering prove/fiasco
18:00:36
rpg
we also have a "FiveAM ASDF" system that provides the ability to use 5AM to supply the TEST-OP for ASDF systems.
18:09:40
Shinmera
rpg: You can do (define-test foo (define-test bar)) which is the same as (define-test foo) (define-test bar :parent foo)
18:10:04
Shinmera
rpg: I implemented the 5Am compat layer so I should know what it means exactly in terms of 5Am, but I don't anymore.
18:10:10
jasom
minion: memo for Fare: quux-hunchentoot uses asdf/package and it appears to still be present in the most recent QL version
18:10:37
rpg
PS one suggestion: for ASDF I also added a test count, so that you can check and make sure that the expected number of checks is run. After being burned by that before.
18:11:14
rpg
:-( have to leave this interesting discussion because I'm getting temporarily evicted from my office by cleaners....
18:24:14
jasom
in doing ql2nix I have come up with a number of patches for various projects; it will be interesting to see if any of them are accepted upstream
18:26:41
jasom
Shinmera: I don't think so; the list so far (I'm about 70% of the way through all systems in QL) is here: http://paste.lisp.org/+7KTZ
18:27:44
jasom
which isn't *wrong* but is also usually unnecessary since asdf has an output directory
18:30:34
jasom
IIRC it's something like load-asd sets up a specific package for .asd files to be executed in and then the various fancy features added recently can be confused by it. This is all stuff I only slighty understood 6 months ago and have now forgotten, so may be 100% wrong now.
18:34:10
minion
Fare, memo from jasom: quux-hunchentoot uses asdf/package and it appears to still be present in the most recent QL version
18:45:53
Shinmera
I just had it in my template, so it's in pretty much every single ASD I've ever written
18:47:34
jasom
Shinmera: it's very nearly a non-problem; I think I can handle it now with ql2nix (bundling was broken on enough packages that now I fall back to a more traditional load structure).
18:50:37
jasom
however the architecture for ql2nix that was 90% complete when I stopped working on it last fall appears to be a good choice; There is one nix package for each "project" (I think that's the term quicklisp uses for a single source tarball) that just installs the source, and then each ASDF system gets its own nix package, which depends on the project package (and possibly other things).
19:43:25
Shinmera
I realised that i need to go back and rework some lower systems though, so I've been kinda stuck on that and progress is painfully slow
20:05:25
copec
This is what I have completed of my first real CL program: http://paste.lisp.org/display/353593
20:05:51
copec
I would appreciate any feedback and/or shooting down of things that anyone could offer.
20:10:33
copec
I know I could have just kept lexically binding the same names over, I was trying to make it readable for when I come back to it at some arbitrary future date
20:11:40
Shinmera
As for making it more readable, the nesting of m-v-b/push-fragment screams for a macro.
20:14:01
pillton
The CLHS entry for COMPILE says "is false if no conditions of type error or warning were detected by the compiler, and true otherwise."
20:14:18
specbot
Exceptional Situations in the Compiler: http://www.lispworks.com/reference/HyperSpec/Body/03_be.htm
20:14:28
pillton
But CLHS 3.2.5 says "Both compile and compile-file return three values, the second two indicating whether the source code being compiled contained errors and whether style warnings were issued."
20:16:08
Shinmera
copec: Anyway, if you really want the plus in the names, you still don't need to use ||. nfa+begin+a-in+a-out is a valid variable name.
20:17:08
copec
yeah, that came about from me experimenting with reading it when I wasn't in "the mode"
20:17:11
Shinmera
I'm too tired to give a more in-depth review of your code, so that's all the advice I can give. Sorry.
20:19:29
copec
FWIW I used caps to emphasize acronyms, Sets, and Capital Greek letters, with that other ugly symbol |NFA+begin+A-in+A-out+B-in+B-out+end| to help me keep track of where I was at when I was writing it.
20:22:10
copec
If I ever want to write code for more than just myself then I'll defer to your experience
23:21:07
White_Flame
if I load stuff through quicklisp, save an image, and run that image on another machine, will quicklisp have problems between the homedir being "/home/user1" on the first box, and "/home/user2" ont he second?
23:21:31
White_Flame
specifically, with intent to load new quicklisp systems after the image has been saved & moved
0:02:11
White_Flame
out of simplicity, I think I'll load quicklisp after deployment, just to be safe