Search
Sunday, 22nd of July 2018, 1:32:20 UTC
1:56:05
drmeister
Allocate a 24 byte structure in the stack frame to store a va_list
1:58:58
drmeister
stack allocating an actual list would be fine as well.
3:30:51
beach
Good morning everyone!
4:25:00
drmeister
Bike: I get one pass through a &va-rest list - even if I copy it into another variable.
4:25:02
drmeister
https://www.irccloud.com/pastebin/3OqbTh5I/
4:26:20
drmeister
I would need a special operator to copy the &va-rest parameter to into another variable so that I can convert it to a list if there is an error.
4:27:25
Bike
stack lists definitely seem preferable
4:27:52
drmeister
But we would have to know how large they need to be at compile time - we don't have that.
4:28:40
drmeister
A vaslist structure is 32 bytes - it's like a wide pointer.
4:29:01
Bike
we would? you can have variable alloca... the "function" anyway, dunno the llvm semantics
4:29:55
drmeister
We could have an alloca?
4:30:59
drmeister
Something like (let ((thing (alloca 32))) ... ) ?
4:31:43
drmeister
Or (with-alloca (x 32) ...)
4:34:46
drmeister
I suppose I could just create a C++ class on the heap to contain these...
4:44:49
drmeister
What's a lispy way to declare things like this on the stack?
4:44:58
drmeister
This is what shared-initialize becomes using &va-rest
4:45:00
drmeister
https://www.irccloud.com/pastebin/ulQS7QEp/
4:45:19
drmeister
The only thing we lose is the ability to provide the arguments in the error message.
4:46:40
Bike
declare dynamic-extent, basically
4:46:42
drmeister
If I could go (let ((saved-initargs (core:vaslist-copy initargs))) (declare (dynamic-extent saved-initargs)) ... )
4:47:24
drmeister
I know that the thing returned by core:vaslist-copy is 32 bytes in size
4:52:08
drmeister
I could allocate it on the heap - but that kind of defeats the purpose of avoiding consing.
5:11:21
drmeister
Hoookay - that was a terrible idea. shared-initialize repeatedly loops over the initargs
5:12:54
drmeister
It would be a great idea if I had a way to create a vaslist on the stack.
5:13:10
drmeister
Then I could save the value of the vaslist at the start and keep resetting it.
5:26:34
drmeister
I'm gonna make vaslists rewindable by keeping a backup copy.
5:52:13
drmeister
https://www.irccloud.com/pastebin/33CH1OkQ/
6:00:38
drmeister
I changed less than 10 lines of code and now vaslist's are 64bytes rather than 32 and they keep a copy of their original value.
6:00:53
drmeister
That makes them rewindable.
13:10:22
beach
The code is not evolving very fast, but I recently completed a fairly complete specification of the garbage collector.
13:10:25
frgo
I read in the logs you are busy with getting debugging capabilities
13:12:36
frgo
What are you using for tex editing?
13:17:07
beach
An alternative would have to be significantly better for me to switch. For one thing, I can't see myself working without the abbrev processor and flyspell mode.
13:17:15
beach
... or something equivalent.
13:18:37
frgo
Last time I did create a tex text was in 1991... Si I was wondering if there is something else than emacs available these days.
13:19:12
beach
I am pretty sure there is.
13:21:08
frgo
Are you using LaTeX or some other TeX package?
13:22:08
frgo
Ok thanks. I am sick of Word for technical texts... Looking for some alternatves.
13:22:36
Shinmera
LaTeX sucks but it's still the best thing out there for nicely typeset documents.
13:22:48
beach
Something like that, yeah.
13:23:00
Shinmera
At least with the new engines like LuaTeX you can use custom fonts and lots of other things that erase some of the pain.
13:23:38
frgo
Well, in 1991, for me, LaTeX was A Good Thing. The only environment that was able to typeset and print my diploma thesis text the way it was supposed to look.
13:24:52
beach
You were lucky. I find that if I want to deviate from the default way of formating things, it is nearly impossible.
13:25:04
Shinmera
TeX is just madness when you want to do some advanced things.
13:25:34
Shinmera
I can't imagine the pain people who actually wrote packages for TeX went through
13:25:51
beach
Yes, I am glad someone else did that for me.
13:26:56
frgo
Good coincidence - wanted to talk to you about Deeds barking when being loaded intom AllegroCL.
13:27:41
frgo
:MUTABLE is an invalid initarg to make-instance of class
13:27:41
frgo
#<STANDARD-CLASS ACLMOP:STANDARD-DIRECT-SLOT-DEFINITION>
13:28:03
frgo
I was just running into this .... Need to dig deper.
13:28:51
Shinmera
Ha ha https://github.com/Shinmera/deeds/blob/master/event.lisp#L9
13:29:12
Shinmera
Looks like both commercial implementations aren't the greatest with MOP
13:30:54
frgo
That may well be. What's special for LW? Just the fact that the whole section needs to be available at read tome?
13:31:04
Shinmera
Not read time but compile time
13:31:22
frgo
Yes, sorry, sloppy wording.
Sunday, 22nd of July 2018, 13:32:20 UTC