freenode/#lisp - IRC Chatlog
Search
5:39:32
beach
It's an investment. We fully expect you to contribute to the community once you gain enough experience. :)
5:40:48
borei
i don't mind, and will do once i have more or less logically completed code, right now it's handbombed in too many spots
9:26:41
jackdaniel
uh oh, reddit 1.0 written in Lisp: https://github.com/reddit-archive/reddit1.0 :)
10:12:15
puchacz
hi, in bt:condition-wait and bt:condition-notify - if a lock is a recursive lock, should wait release the lock all recursive levels, to make it free? or just release last level?
10:12:35
puchacz
I think it should release it completely, but I have an impression that at least in lispworks it releases only one level
10:16:31
shka
so condition variable is condition variable, not a semaphore, mutex is mutex and not critical section
10:17:33
puchacz
shka: not really. my expectation that condition-wait should release recursive lock all the way up comes from java synchronized blocks. this is how it behaves in java
10:19:10
puchacz
in java, if you have synchronized (lock) {.....} and your thread already owns the lock, you can enter this sort of block as many times as you want. and when you call lock.wait(), it releases it
10:20:39
shka
Release the recursive LOCK. The lock will only become free after as many Release operations as there have been Acquire operations. See RELEASE-LOCK for other information.
10:20:44
puchacz
and in posix / BT it behaves like I think I discovered, right? i.e. recursive lock is freed only once when wait is called?
10:22:53
puchacz
shka: so what's the equivalent of what I want please? it makes sense if you have 2 public API functions, but function A internally calls function B as well, so both needs to be in critical section, but if B is not called directly by "user", but by A, the lock is already owned.
10:24:04
puchacz
shka: thanks. at least I know that java synchronization has different semantics than posix locks
10:26:39
puchacz
shka: this is the use case; A and B both critical, both callable externally and in addition to it, A internally calls B
10:27:32
puchacz
but I understood that I do not want recursive locks. they behave differently, they cannot be released all levels at once
10:28:52
puchacz
shka: You are right, I can try. and you are reading my mind, I don't like many mutexes because if I do something that allows for calling both ways, I can get a deadlock.
10:29:37
shka
puchacz: multiple mutexes are fine, just keep your locking schema well documented and you are golden
10:31:26
shka
puchacz: yes, but recursive locks promote poorly scalable applications with very narrow bottlenecks
14:07:05
phoe
Reddit code is full of syntax that uses square brackets, but I cannot find the definition of that bracketed code anywhere.
14:18:38
dlowe
the whole thing looks rather trashy. I'm afraid they hacked something together and then declared "lisp is great for prototyping but not for production" without actually trying to design something nice.
14:22:02
phoe
someone should actually look at this code, make it work, rewrite it properly, and declare that this is how things should be written in Lisp
14:24:34
phoe
more arrogant than writing shitty code like that and then claiming Lisp isn't good enough for production?
14:25:56
Shinmera
phoe: Regardless of circumstance, it would amount to "wow you fucking suck look at me and how I do it better," which probably would just reinforce people's image of lispers being asshole snobs.
14:27:41
Bike
okay but did they actually say that. is there an actual statement, or are you inferring
14:27:48
Xach
Yeah, there were 50 contemporary reddit clones in lisp the day they announced they were switching.
14:28:32
Bike
No, I'm just saying, inferring that somebody said something mean about you and responding as if that inference is certainly true is needless escalation.
14:29:58
beach
phoe: Put yourself in their situation. You just produced a load of crap with a language that you know isn't popular anyway. Would you say "I made a mess because I am a bad programmer" or would you say "I failed because this language is crap"?
14:31:06
dlowe
I think it'd be fine to say "I made a mess because I was hacking stuff together and now we need to do a rewrite to solve our technical debt problem."
14:31:30
Shinmera
I don't think reddit is a very significant piece of engineering anyway. Forums softwares are as old as the www.
14:31:56
Shinmera
dlowe: Yes but beach's way of putting it makes it sound a lot more lofty and, I imagine, has better marketing value.
14:33:17
_death
I think Lisp was instrumental in helping them get a quick proof of concept.. then of course a rewrite would come, and Aaron Swartz, who wasn't a Lisper, designed a nice simple web framework in Python, so they switched.. he had to promote his way some way
14:41:44
_death
and as Xach said, simplified reddit clones were created, sometimes to show off Lispy web frameworks (I remember the ucw one..)
14:44:35
dlowe
yeah, except it turns out the vast majority actually doesn't care at all about what language something is written in.
14:45:35
Xach
and there were many years of fringe, about-to-fail, crashing-all-the-time semi-popularity. overnight success takes a while.
14:46:20
_death
it's grabbing a big enough userbase, mining their data and selling it off, tweaking their interests and preferences to suit paying customers' will
15:56:41
puchacz
hi, when using sb-ext:run-program on linux, can I set priority to nice and io priority to ionice?
16:00:42
cgay
I've never understood the attraction of using both parens and brackets in Lisp dialects. i.e., what problem is it solving?
16:01:40
puchacz
cgay: it is worse for me. in javascript I have to be very careful how I am closing a statement: ); }} ;)
16:02:45
cgay
Seems like it forces you to visually match up your parens more, rather than trusting your indenter.