<VarunA>
Hey Guys.. check out http://ht3.org - A search engine I made for non-mainstream-media non-monetized tech related sites! I'm looking for feedback and suggestions..
<VarunA>
I use cl for a lot of things and i find new and interesting things on ht3 that i dont find on google.. so i thought i'd share..
<beach>
Yeah, well, this channel is very strict on being on topic, so unless your code is written in Common Lisp, I am afraid it is very much off topic.
yauhsien has joined #commonlisp
<VarunA>
beach: part of it is: the logic that selects which sites to index is written in cl.. the frontend and the search index querying is node
<beach>
Can you post that code to a paste site, please?
<VarunA>
haha
<beach>
Why is that funny?
<VarunA>
no! im not sharing how i made the engine.. its easy to manipulate the results.. you'd ask google for pagerank?
<beach>
I am now more convinced than ever that your stuff is off topic. I suggest you try some other channels to push it.
<VarunA>
ok thats your opinion. i'd like to hear it from others as well.. isnt that fair?
<beach>
Not really. We can't have hundreds of people vote on each off-topic subject. My guess is that you will be kicked if you continue.
yauhsien has quit [Ping timeout: 272 seconds]
<VarunA>
how about not a hundred. how about 3?
<beach>
I have said enough.
<VarunA>
good
yauhsien has joined #commonlisp
hashfunc1f63 has joined #commonlisp
hashfunc1f63 has quit [Remote host closed the connection]
Cymew has joined #commonlisp
<Shinmera>
This is an IRC network about open source software. If your software isn't open source, it's not only off-topic in this channel in specific, but in general.
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
waleee has joined #commonlisp
<beach>
Shinmera: Thanks for pointing that out. I wasn't sure about the network policy, but I now looked it up.
Algernon69 has joined #commonlisp
euandreh has quit [Ping timeout: 260 seconds]
waleee has quit [Ping timeout: 260 seconds]
akoana has joined #commonlisp
euandreh has joined #commonlisp
Major_Biscuit has joined #commonlisp
Major_Biscuit has quit [Client Quit]
mgl has joined #commonlisp
MajorBiscuit has joined #commonlisp
ssafar has quit [Ping timeout: 260 seconds]
akoana has quit [Ping timeout: 246 seconds]
rogersm has joined #commonlisp
VarunA has quit [Ping timeout: 260 seconds]
shka has joined #commonlisp
s-liao has joined #commonlisp
Dynom has joined #commonlisp
cosimone has joined #commonlisp
attila_lendvai has joined #commonlisp
Krystof has quit [Ping timeout: 256 seconds]
nature has joined #commonlisp
lispy has quit [Quit: Client closed]
Josh_2 has joined #commonlisp
<Josh_2>
Good morning all
<Josh_2>
Is there a library for aiding with creating nested hash tables?
<Josh_2>
Actually there might be a better datastructure
<Josh_2>
I have a client, a product id, a currency and then finally the price. If I was using hash-tables I would store a hash for client, hash for product, hash for currency and then finally the price would have an object
<Josh_2>
Is there a more applicable datastructure for this? Perhaps in the future I will store these in postgres but for now I am just using ram, maybe I can just make a list because its only temporary anyway
<jackdaniel>
Josh_2: it depends on how you access these "tuples" and how many there are
<Josh_2>
There could be thousands
<Josh_2>
there wont be many clients, or many products, but there would be lots of prices stored under currencies
<jackdaniel>
and why don't you make a currency part of the price? is it that there is one product with single currency with multiple prices?
semz_ is now known as semz
<Josh_2>
Yes, lots of prices under a single currency
<Josh_2>
lots of currencies
<jackdaniel>
and how will you access things? i.e when you want to read a price, then what will you do? (read-price <fill-the-gap-please>)
<Josh_2>
(read-price <client> <product> currency quantity) -> Hopefully a price object, if not then have to make one
<Josh_2>
s/quantity/price
<jackdaniel>
OK, then make a hash table with a test #'equal where keys are (list <client> <product> <currency>) that maps to a price
<jackdaniel>
and then (defun read-price (...) (* quantity (gethash … …)))
<Josh_2>
I didn't know I could use lists as keys
<jackdaniel>
I mean there are certainly more clever solutions, but are they worth considering?
<jackdaniel>
(make-hash-table :test #'equal) should do
prokhor has quit [Remote host closed the connection]
<jackdaniel>
fun fact: many implementations allow extending hash tables with arbitrary test functions (but that require additional definitions i.e for computing keys)
<jackdaniel>
that said standard mentinos only eq, eql, equal and equalp
s-liao has quit [Quit: Ping timeout (120 seconds)]
rotateq has joined #commonlisp
Oddity has quit [Ping timeout: 256 seconds]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
hayley has joined #commonlisp
dre has quit [Quit: Leaving]
yauhsien has quit [Ping timeout: 260 seconds]
wacki has joined #commonlisp
<hayley>
I'm trying to define a pattern for the Trivia pattern matcher that would help me have a nicer way of testing some property of a value. It works, but I get full warnings saying "failed to infer the type from test (HAS-TAGS-P ?)" which indicates I'm doing something wrong.
<hayley>
Something like (trivia:match 2 ((satisfies evenp) 'even)) also produces full warnings. And I don't see why it's an issue, given there just isn't a Common Lisp type representing the values that satisfy EVENP. It's not my problem, though I recall the Quicklisp tests will not accept code that generates full warnings when compiled, and I'm trying to clean up one-more-re-nightmare for submission to Quicklisp.
<jackdaniel>
if that's the only goal, then perhaps you could muffle the condition locally
<hayley>
It's not the only goal. But I would like to turn some calls into TRIVIA.NEXT:NEXT into more precise patterns.
ssafar has joined #commonlisp
yauhsien has joined #commonlisp
<rotateq>
maybe via a compiler macro?
<_death>
hayley: if I understand it correctly, it tries to infer the type of X from the expression (not (has-tags-p x)) in the case where the expression returns true or false.. it has an "unary-function" inference rule that fumbles around with the name HAS-TAGS-P, stripping the -P and looking for the type HAS-TAGS.. since there's no such type, it gives up on inference.. then there's a decision to warn about it..
<hayley>
Don't see how it'd help here.
<flip214>
hayley: which SBCL version? karlosz has done some type inference work over the last 2-3 weeks, IIRC.
<jackdaniel>
(deftype has-tags () t) or something
<_death>
maybe post a request for a more customizable approach to warnings, or at least the use of a proper condition type for it
<hayley>
_death: Right. I don't think it's a very good decision, but I can't fix it, and I can't see a way around.
<hayley>
jackdaniel: I guess. But that's nasty. And then it could conclude that the type of X matching (not (has-tags-p X)) is NIL.
* jackdaniel
is only pattern (ke ke) matching (not unlike eliza and minion)
<hayley>
Hm, maybe I could write the (somewhat metacircular) definition (deftype has-type () (satisfies has-type-p)) which would be sound.
<hayley>
But, again, I don't think giving a full warning for failing to infer types is good behaviour, and I don't feel like "pandering" to it.
<_death>
can create a patch with a proper condition type
<hayley>
Sure. I'd need two, since the type-i library signals a warning of type WARNING, and then Trivia should (optionally) muffle that warning.
akoana has joined #commonlisp
<_death>
the muffling could happen in your program.. then you can write a single patch
<hayley>
Trivia makes extensive use of nested macros to compile, so I'd need to muffle every nested macroexpansion. And, still, I don't think it's good default behaviour to expect every predicate to correspond to a type (that isn't a SATISFIES type).
<_death>
well, fumbling with the names to infer types may be a bad decision in itself
<_death>
you could also add your own inference rule ;)
aeth has quit [Ping timeout: 260 seconds]
aeth has joined #commonlisp
pjb has joined #commonlisp
VarunA has joined #commonlisp
random-nick has joined #commonlisp
kevingal has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
kevingal has quit [Ping timeout: 260 seconds]
kevingal has joined #commonlisp
<hayley>
Again, there is nothing useful to infer; the predicates I want to use have no correspondence with the Common Lisp type system.
<hayley>
...nor any type system which doesn't have refinement or dependent types, even.
<_death>
I mean something like (type-i::define-inference-rule my-rule (test) (if (typep test '(cons (eql has-tags-p))) '((typep type-i::? 't)) nil))
<hayley>
Well, I guess that'd work.
usermain has quit [Ping timeout: 260 seconds]
tyson2 has joined #commonlisp
lisp123 has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 260 seconds]
lisp123 has quit [Ping timeout: 260 seconds]
prokhor has joined #commonlisp
s-liao has joined #commonlisp
razetime has joined #commonlisp
scymtym has joined #commonlisp
treflip has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
MajorBiscuit has quit [Quit: WeeChat 3.4]
MajorBiscuit has joined #commonlisp
yauhsien has joined #commonlisp
Brucio-61 has joined #commonlisp
Algernon69 has joined #commonlisp
Algernon91 has joined #commonlisp
Algernon69 has quit [Ping timeout: 256 seconds]
razetime has quit [Ping timeout: 246 seconds]
aeth has quit [Ping timeout: 272 seconds]
aeth has joined #commonlisp
cage has joined #commonlisp
Bike has joined #commonlisp
razetime has joined #commonlisp
treflip has quit [Remote host closed the connection]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 246 seconds]
lisp123 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
lisp123 has quit [Ping timeout: 260 seconds]
<Josh_2>
Has anyone written a nonce value into a script html tag with Spinnert?
<Josh_2>
spinneret*
yauhsien has joined #commonlisp
Krystof has joined #commonlisp
s-liao has quit [Ping timeout: 250 seconds]
Algernon91 has quit [Quit: Leaving]
szkl has quit [Quit: Connection closed for inactivity]
rotateq has quit [Quit: ERC (IRC client for Emacs 26.3)]
attila_lendvai has quit [Ping timeout: 272 seconds]
<cage>
Hi! Are there some commands, functions or tool to detect memory leaks for a program compiled with SBCL?
<beach>
It is hard to even define a memory leak in Common Lisp, no?
<_death>
there's the allocation profiler (aprof.lisp in sbcl source tree)
<_death>
it's easy to create a memory leak if you hold references to objects you don't need
<beach>
Yes, but how would a tool determine that you don't need those objects?
<_death>
it helps you determine what those objects are and who might hold a reference
<Bike>
sbcl also has the search-roots extension function to see what's keeping an object alive.
<Bike>
but yeah, i'm not sure a tool to detect memory leaks makes sense, being application dependent
treflip has joined #commonlisp
<beach>
_death: So you mean, given an object that you think should be GC-ed but isn't, find out where it is referenced from?
VarunA has quit [Quit: Leaving...]
<cage>
thanks to you all for your help!
zacque has quit [Quit: Goodbye :D]
<Bike>
yeah. that's not really detecting a memory leak, but it's something you might want to do once you've identified one
<Bike>
and it's what search-roots is for
<_death>
it can tell you how many instances of particular types you have.. so if you have lots of objects of a particular type that shouldn't really be you know where to look for the problem
<_death>
well, sometimes ;)
<cage>
i am using drakma to make several http request and i suspect there something leaking around that, maybe is something related to FFI and TLS, but these are only guesses so far
tyson2 has joined #commonlisp
treflip has quit [Remote host closed the connection]
treflip has joined #commonlisp
<cage>
for example i was not closing socket in some functions and this was, of course, a problem
<random-nick>
wouldn't those objects have finalizers on them?
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
kpoeck has joined #commonlisp
treflip has quit [Remote host closed the connection]
treflip has joined #commonlisp
<lagash>
random-nick: as in, they "clean up" after themselves..?
waleee has joined #commonlisp
treflip has quit [Client Quit]
eugercek has joined #commonlisp
kpoeck has quit [Quit: Client closed]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<CodeBitCookie[m]>
Hello Everyone!
<cage>
random-nick: drakma can returns a stream after starting an http request, then the caller is in charge of close the stream, i failed to do that :(
<cage>
CodeBitCookie[m]: hi!
tyson2 has quit [Remote host closed the connection]
epolanski has quit [Quit: Connection closed for inactivity]
morganw has joined #commonlisp
lisp123 has joined #commonlisp
kpoeck has quit [Ping timeout: 250 seconds]
lisp123 has quit [Ping timeout: 272 seconds]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 250 seconds]
kevingal has quit [Remote host closed the connection]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
waleee has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
yauhsien has quit [Ping timeout: 256 seconds]
eddof13 has joined #commonlisp
karlosz has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
usermain has quit [Ping timeout: 245 seconds]
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 260 seconds]
poselyqualityles has quit [Ping timeout: 260 seconds]
kpoeck has joined #commonlisp
<CodeBitCookie[m]>
I was wondering, now that I know a bit about CL. What is the easiest way to contribute to Common Lisp?
<Bike>
what kind of contribution are you talking about?
scymtym has joined #commonlisp
Brucio-61 has joined #commonlisp
wacki has quit [Quit: Leaving.]
kpoeck has quit [Ping timeout: 250 seconds]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
mgl has quit [Ping timeout: 250 seconds]
kevingal has joined #commonlisp
kpoeck has joined #commonlisp
karlosz has quit [Ping timeout: 250 seconds]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
<Shinmera>
one easy way is to throw money at existing developers so they can spend more (or any!) time working on lisp stuff.
<Guest74>
throw money? I hear it's nicer just to stick it in their thong.
yauhsien has joined #commonlisp
<Guest74>
I thought somebody was working on a site to keep track of which areas/projects could use help?
<Shinmera>
As always with lisp, I'm sure there's multiple of those already.
Dynom has quit [Quit: WeeChat 3.4]
<Guest74>
though it probably works best to just look at the area you're interested in and the candidates show themselves.
yauhsien has quit [Ping timeout: 260 seconds]
<Guest74>
out of curiousity. Do people run multiple repls when developing?
<Shinmera>
I don't, but some do.
poselyqualityles has joined #commonlisp
yauhsien has joined #commonlisp
<Guest74>
I'm trying to decide whether my hacked together project manager should just change to a new desktop, or start another repl, and/or start a completely new emacs client for each project.
mon_aaraj has quit [Ping timeout: 272 seconds]
kpoeck has quit [Quit: Client closed]
<pjb>
Guest74: with slime, you have virtually an infinite number of REPLs since each C-x C-e in a lisp buffer forks a new thread. So you can have several expressions evaluating in parallel.