<Josh_2>
Have you tested to see what sort of performance you can get with lots of 3d models?
<Shinmera>
No. As the PR mentions, passing rig data through textures to allow instanced rendering is left for later.
<Shinmera>
It's already gpu-skinned though, so it should be fast even for high-poly models.
<Shinmera>
all that's done on the CPU is transform the bones.
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 250 seconds]
vassenn has joined #commonlisp
igemnace has quit [Ping timeout: 276 seconds]
tiziodcaio has quit [Quit: Reconnecting]
igemnace has joined #commonlisp
azimut has joined #commonlisp
xlarsx has joined #commonlisp
Fare has quit [Ping timeout: 250 seconds]
epony has quit [Remote host closed the connection]
epony has joined #commonlisp
seletz has joined #commonlisp
morganw has joined #commonlisp
azimut_ has joined #commonlisp
azimut has quit [Ping timeout: 258 seconds]
xlarsx has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
aartaka has joined #commonlisp
epony has quit [Ping timeout: 252 seconds]
epony has joined #commonlisp
xlarsx has quit [Ping timeout: 272 seconds]
dipper has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 272 seconds]
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 255 seconds]
aartaka has quit [Ping timeout: 255 seconds]
aartaka has joined #commonlisp
xlarsx has joined #commonlisp
igemnace has quit [Ping timeout: 250 seconds]
akoana has joined #commonlisp
aartaka has quit [Ping timeout: 250 seconds]
aartaka has joined #commonlisp
Guest25 has joined #commonlisp
seletz has quit [Ping timeout: 276 seconds]
aartaka has quit [Ping timeout: 272 seconds]
aartaka has joined #commonlisp
Guest25 has quit [Quit: Client closed]
Mandus has quit [Ping timeout: 260 seconds]
Mandus has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
aartaka has joined #commonlisp
<char[m]>
Hello common lisp. What is up with out of bounds behavior being unstandard? It seems like (svref (vector) 1) behaves differently across implementations even if it is just the condition type being different. What's the reasoning for not having a standard out-of-bounds-error condition?
vassenn has quit [Remote host closed the connection]
<phoe>
huh, the spec doesn't say what condition type should be signaled then
<phoe>
char[m]: most likely a deficiency in the standard, "exceptional situations" for clhs glossary entries are often unsatisfying
<kakuhen>
the cleanup issues related to AREF also show some other deficiencies :P
<Alfr>
phoe, I think those are mostly covered by 1.4.4.3, at least when we pass in unexpected things.
<char[m]>
Unsatisfying and unsettling. Is there anything to be done about stuff like this? I would rather not write implementation specific code to handle out of bounds (out of bounds might happen is library code).
<phoe>
char[m]: can't see anything better than (deftype out-of-bounds () #+sbcl .. #+ccl ... #+ecl ...) and then using OUT-OF-BOUNDS as a condition type in handlers
<Alfr>
char[m], it essentially says, that you can't rely on an error being signaled instead of it rebooting the universe.
<char[m]>
phoe: the problem with that is that many implementations (including sicl!) have chosen to make the out-ouf-bounds-error a some kind of type-error. You're example will end up trying to handle all type errors.
<char[m]>
Wouldn't the ... Just be (typep c 'simple-type-error)?
White_Flame has quit [Remote host closed the connection]
<phoe>
no, this is too general
<phoe>
SICL likely defines some sort of out-of-bounds condition on its own, at which point you can (deftype out-of-bounds () #+sicl 'sicl-conditions:out-of-bounds-error) or something
<phoe>
where I imagined the package and symbol name
epony has quit [Ping timeout: 252 seconds]
<phoe>
other implementations probably do a similar thing
White_Flame has joined #commonlisp
epony has joined #commonlisp
<char[m]>
Sbcl does this. Ecl ccl (hard to tell) clisp and sicl just use type error.
<phoe>
CCL does a simple error
<char[m]>
Isn't that even worse?
<phoe>
(defun out-of-bounds-p (c) #+ccl (and (typep c 'simple-error) (string= (simple-condition-format-control c) "Array index ~S out of bounds for ~S .") (= 2 (length (simple-condition-format-arguments c)))))
<phoe>
it's a god damn hack, but that's the best you can do
<phoe>
unless you make an issue/PR to the CCL repo
vassenn has joined #commonlisp
<char[m]>
Given the lack of standard, best is is probably all implementations doing what sbcl does. With your solution, is it possible to (signal 'out-of-bounds ...)?
<phoe>
nope
<phoe>
because out-of-bounds names a type but not an instantiable condition type
<char[m]>
That is what I feared.
tyson2 has quit [Remote host closed the connection]
<Josh_2>
Best make sure you aren't out of bounds then ;)
igemnace has joined #commonlisp
<char[m]>
Josh_2: that would be ideal wouldn't it.
<jackdaniel>
programs should have no errors, so the condition system is obsolete when it comes to errors
jeffrey has quit [Remote host closed the connection]
<Josh_2>
Exactly :sunglasses:
cowboy8625 has joined #commonlisp
<cowboy8625>
whats the best way to check if a string is a valid number?
<phoe>
a string is never a valid number because the types STRING and NUMBER are disjoint
<phoe>
if you mean whether it contains a number, then parse-integer or parse-float
<phoe>
or in general (ql:quickload :parse-number)
<jackdaniel>
(numberp (read-from-string <string>)) and add the check whether the whole string was gobbled
McParen has joined #commonlisp
<cowboy8625>
:jackdaniel thanks!
<char[m]>
Be careful: parse-integer and read-from-string can signal errors if the input is malformed.
son0p has quit [Remote host closed the connection]
_cymew_ has quit [Quit: Konversation terminated!]
_cymew_ has joined #commonlisp
<char[m]>
Also read-from-string can have other unwanted consequences.
phantomics has joined #commonlisp
<phoe>
which is why I suggested parse-number
<phoe>
no need to use the full reader this way
<jackdaniel>
(cdr (assoc …)) is always more fun than (let ((foo (assoc …))) (cond ((null foo) nil) ((eql (cdr foo) nil) :null) (t (cdr foo))), just saying
cage has quit [Quit: rcirc on GNU Emacs 27.1]
vassenn has quit [Remote host closed the connection]
<char[m]>
jackdaniel: It is a great thing that car and cadr return nil on nil input. Btw your input about error free programs helps on on an emotional level.
<jackdaniel>
heh, I'm glad to hear that :)
<char[m]>
phoe: even parse-number can signal an invalid-number error.
<phoe>
char[m]: yes, I wish that there were more condition types defined overal
<phoe>
l
<phoe>
(but I am biased)
<char[m]>
You mean like different condition types defined for how the number is invalid?
<phoe>
no, like different condition types when different things go wrong
<phoe>
the fact that most implementations use either simple-errors or simple-type-errors for SVREF failures is such a thing
<char[m]>
It would be ideal, but what jack and josh said holds a lot of water.
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
waleee has joined #commonlisp
<char[m]>
I cant think of anything other than invalid-number could go wrong when trying to parse a number.
<Bike>
number's too big and you run out of memory
Guest12 has joined #commonlisp
<Bike>
(or it's not representable in your float format)
Guest12 has quit [Client Quit]
<jackdaniel>
float underflow et al
<Bike>
i agree that it would have been nice if there was a standard out-of-bounds condition, by the way. there's also no requirement that aref ever actually signal an error, but they could have at least thrown a "might be signaled" in there
<Bike>
to do this conformingly, rather than checking for an error, which might not happen, you have to check array-in-bounds-p yourself
cowboy8625 has quit [Quit: WeeChat 3.5]
makomo has joined #commonlisp
son0p has joined #commonlisp
Oddity has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
zyni-moe has joined #commonlisp
zyni-moe has quit [Quit: died]
son0p has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
epony has quit [Ping timeout: 252 seconds]
epony has joined #commonlisp
McParen has left #commonlisp [#commonlisp]
akoana has quit [Quit: leaving]
makomo has quit [Quit: WeeChat 3.6]
qhong has quit [Remote host closed the connection]
mathrick has quit [Ping timeout: 276 seconds]
tyson2 has quit [Remote host closed the connection]
jmdaemon has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
mathrick has joined #commonlisp
pranavats has joined #commonlisp
<thuna`>
How do you get coerce to return an adjustable vector?
seletz has joined #commonlisp
<Josh_2>
Maybe you can do something like this instead: (let* ((l '(1 2 3))) (make-array (length l) :initial-contents l :adjustable t))
mariari has quit [Ping timeout: 260 seconds]
seletz has quit [Ping timeout: 272 seconds]
<pjb>
thuna`: there's no type for adjustable. You could define a satisfies type, but coerce couldn't possibly use that.
<thuna`>
Huh, I see that adjustability isn't a type
<thuna`>
That's a bit odd, I would have expected it to be
<pjb>
fill-pointers either.
jeosol has joined #commonlisp
_cymew_ has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
<phoe>
pjb: (and array (not simple-array)) is kinda tempting, but
bitmapper has joined #commonlisp
<phoe>
(typep (coerce '(1 2 3) '(and vector (not simple-array))) 'simple-array) returns T on SBCL and errors on some other implementations
cosimone has quit [Read error: Connection reset by peer]
Lycurgus has joined #commonlisp
mariari has joined #commonlisp
Lycurgus has quit [Quit: Exeunt juan@acm.org]
markb1 has joined #commonlisp
seletz has joined #commonlisp
Fare has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
seletz has quit [Ping timeout: 260 seconds]
aartaka has quit [Ping timeout: 250 seconds]
Fare has quit [Ping timeout: 240 seconds]
shka has quit [Ping timeout: 272 seconds]
aartaka has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
tyson2 has joined #commonlisp
xlarsx has quit [Ping timeout: 250 seconds]
aartaka has quit [Ping timeout: 260 seconds]
epony has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
epony has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
xlarsx has joined #commonlisp
thuna` has quit [Remote host closed the connection]
morganw has quit [Remote host closed the connection]