freenode/#lisp - IRC Chatlog
Search
21:24:41
White_Flame
while trying to express things reasonably without requiring that level of hand-tuning
21:24:57
aeth
Yes, but... if you get everyone to standardize on a thread pool that isn't designed for hard real time requirements, you're basically forcing users with those requirements to not be able to use any library that uses that thread pool.
21:25:15
aeth
Maybe fine for a scripting language, but I don't think CL should restrict domains like that.
21:26:14
White_Flame
having multiple very customized ones in some situations might, but again I would take "I'm using threadpools" as equivalent to "I'm not doing hard realtime"
21:27:13
aeth
afaik, and I haven't looked into this in detail yet, you can just treat a game engine's thread situation like: "these n threads can return within a reasonable amount of time while these m threads have to synchronize every k frames"
21:27:57
aeth
i.e. the former are basically async but you need an answer of some sort "eventually" (which could be a few seconds, which is like an eternity to the game engine)
21:28:15
aeth
so even if a thread pool doesn't work for real time, well, you can still sort of thread pool the rest
21:29:09
aeth
I guess some of those things should be time limited (e.g. AI) and some of those things shouldn't (e.g. loading the next chunk of the world map in a Minecraft clone)
21:30:46
aeth
(and a game engine isn't hard real time, anyway... missing a frame or two isn't the end of the world)
21:32:10
White_Flame
right, but there's a framerate target, which means budgeting milliseconds for various tasks, as well as polygon/texture budgets, etc. It's still designed as realtime even if it doesn't kill 300 people if it fails its targets
21:42:49
aeth
White_Flame: that just means that the threads must synchronize by a certain amount of time. But if you have, say, 6 physics threads, then the physics work can still be distributed.
21:43:36
White_Flame
measured against the load that the game needs, and affects level design, weapon firing rates, etc
21:44:15
White_Flame
but still, this falls more into the SIMD-ish style processing that pillton brought up
21:53:48
aeth
White_Flame: AMD has been selling 12c24t and 16c32t CPUs to the consumers/mainstream/gamers segment for well over a year now. And anything started now will probably take years to ship.
21:55:02
aeth
Some systems will be "bucket of tasks" systems, such as perhaps the AI system. And when you have 32 real hardware threads to work with, they might be allocated a decent number
21:55:41
White_Flame
or I should better say, the game industry is heavily affected by that, while the rest isn't as much
21:56:33
aeth
The thing about games is that they can do basically everything. And when it does "basically everything", the timing requirements differ, too.
21:57:03
aeth
To the point where some of them are probably best expressed as not really having a requirement. As long as the rest of the world can move on so the game doesn't hang.
21:58:30
aeth
console-first AAA games will probably spend all of the thread budget on rendering threads, but basically just those will, and none of them will be using Common Lisp
22:52:33
pillton_
White_Flame: My primary goal was to enforce "component providers" to not require a particular scheduler in order to function. This should be chosen by the user.
23:19:55
aeth
In case someone's wondering why I brought up game engines... I think any "serious" language should consider a game engine, a web browser, and a database. Big, complicated applications that need some degree of performance and an unbounded number of features limited only by ambition and time.
23:20:18
aeth
Fairly non-overlapping, too, so just those three should span most application development concerns.
23:21:28
aeth
Maybe add something that heavily involves integers, but maybe that's already covered by the cryptography that's needed by networking...
0:13:38
matta
Can anyone tell me what the #+dev in https://github.com/vseloved/cl-agraph/blob/master/cl-agraph.asd is doing? I know that this conditionally includes the subsequent form, but how does this "dev" thing get set, and do conditional :depends-on tricks like this play nice with quicklisp?
0:24:13
pillton
matta: It would be better to define a cl-agraph/test system rather than use the conditional reader.
0:24:32
lotuseater
if the keyword is in *features*it will put the following atom/sexp. otherwise it will comment it out
0:28:23
pillton
matta: Have a look at secion 7.1.1 Predefined operations of ASDF in the ASDF manual https://common-lisp.net/project/asdf/asdf.html
0:34:38
matta
pillton: thanks, I had seen separate foo/test systems defined elsewhere. This #+dev approach was different, so it cought my eye.
0:43:32
fiddlerwoaroof
https://github.com/fiddlerwoaroof/daydreamer/blob/8b29101b298da546bc1555c5c2abc44622ffa980/daydreamer.asd#L35
0:44:36
fiddlerwoaroof
It's better than conditionals in your .asd because ASD can track the features
0:45:52
fiddlerwoaroof
I mostly use it to filter out files that contain code that doesn't work in Lispworks
4:07:24
phoe
well, my old personal statement still holds true; I can only properly wish you good morning if I don't sleep during the night
4:10:18
phoe
been busy earning the achievement of being proclaimed the biggest threat to the Common Lisp community right now
4:11:45
phoe
I guess that I annoyed him a wee bit too much with my posts at https://github.com/cl-library-docs/common-lisp-libraries/issues/3
4:14:07
phoe
beach: no worries. I am glad that I was able to spend some time and compile some publicly available data on him that will hopefully help keep the Lisp community a better place in the future.
4:15:01
phoe
and the best news is that neither Xach nor lispm hold the position of the #1 Lisp baddie anymore!
4:37:15
mfiano
I still hold the record for longest grudge held against. Only recently as yesterday have I seen him mention me. Serious psychological issues over there.
5:10:14
janis
i think im gonna try this more often bc i found out emacs has a built in irc client LOL
5:10:40
phoe
you might want to visit #lispcafe if you feel like having some general random/offtopic chat with lispers
5:12:24
phoe
also just feel free to hang around and tune in to general #lisp discussion about Common Lisp the language
5:14:57
Bike
i envy their internet experience if the craziest thing anyone has ever said to them on the internet was that they're not good at lisp
5:15:45
phoe
in my case it's just a combination of patience, persistence, data scraping and a decision to allocate some time to solve this issue with his aggression once and for all.
5:16:31
Bike
so the reason this arrows thing would need a code walker is just to distinguish whether a form has <> in it, right?
5:17:29
phoe
because otherwise it cannot easily tell apart (list (list (list '<>))) from (list (list (list <>)))
5:19:20
Bike
and the reason that matters is because if there's no <> then it's implicitly the first argument to the next form, right... odd stuff
8:26:11
jackdaniel
ACTION puts down the bowl with popcorn and closes the issue #3 on github. all you said phoe is something I agree with :)
8:31:27
jackdaniel
actually it was a donut (and it was tasty), but popcorn seems to be a "figure of speech"
8:51:00
phoe
imode: https://github.com/cl-library-docs/common-lisp-libraries/issues/3 - wear a hazmat suit before entering.
8:52:43
ldb
in general i don't like arrow, bcs i'd choose another language for doing functional style programming
9:06:08
jackdaniel
OK, frauds and drama aside, lisp lisp lisp (pun at the phrase "team team team" from the it crowd franchise)
9:12:57
ldb
I think I'd headache if I recived a peice of code from 30 years ago with "idioms" been used everywhere and has to reverse engineering what's going on there
9:19:15
phantomics
It's just 4 lines, I understand quux needs parens because it has arguments after the first implicit one
9:20:04
phoe
this is to be able to provide function names to the arrow macro, which is kinda convenient
9:22:11
ck_
Here is some helpful code that subsumes many uses https://github.com/randomcorp/thread-first-thread-last-backwards-question-mark-as-arrow-cond-arrow-bang