freenode/#clasp - IRC Chatlog
Search
20:50:26
attila_lendvai
drmeister: luckily most of my efforst for the bootstrap refactor went into thinking. i need to think about this a bit more now, but i think your proposal will not change much fundamentally in my plans.
20:51:21
attila_lendvai
the problem will remain forever: if you add a new language feature, and you want to use it in the code that implements your language, then you need to go through a bootstrap stage
21:01:17
Bike
https://github.com/trivial-gray-streams/trivial-gray-streams/blob/master/package.lisp#L51 why is there an ellipsis
21:08:59
Bike
are cl:stream-element-type and stuff supposed to be generic with gray streams, or is it a separate package
21:16:35
attila_lendvai
ACTION has added a link to this irc log to the build wiki page: https://github.com/clasp-developers/clasp/wiki/The-Build-Process
21:29:14
scymtym
Bike: does clasp already use eclector? eclector reads "..." as a symbol but it should signal an error
21:30:12
Bike
of course, the "..." is only hit in the first place if trivial-gray-streams lacks implementation support
21:35:26
Shinmera
Bike: Definitions handles definition discovery, Staple handles documentation generation, and Staple-server provides on-the-fly docs in your browser.
21:37:55
Shinmera
Bike: Also see, http://shinmera.github.io/staple/#system http://shinmera.github.io/staple/staple-server/#system
21:38:07
Shinmera
::notify Bike https://irclog.tymoon.eu/freenode/%23clasp?around=1531344883#1531344883
22:07:34
scymtym
making ".." but not ".||." signal an error will probably require a protocol change in eclector
22:07:59
Colleen
Bike: Shinmera said 29 minutes, 52 seconds ago: https://irclog.tymoon.eu/freenode/%23clasp?around=1531344883#1531344883
22:33:07
scymtym
on the bright side, this forces me to tackle some inefficiencies around token escape handling
23:43:26
drmeister
The link time is added on top of real time to get the total time. I will add that to real and run time.
0:32:20
drmeister
It's in a ThirdLaw LLC area that you aren't connected to - so tell me if you are able to see it and edit it.
0:42:23
drmeister
Now - this is a proposal for one way to move forward. The rebuilding of C++ objects is a bit of an unknown for me - but if that's not too bad a problem then I think we can make this work.
0:43:13
Bike
from what i understand, martin wants to compact the arena and then pretty much just write it out verbatim
0:44:08
drmeister
It occurred to me as I was writing it. The bignum example was my best first example. bignums with lots of digits must be stored on the heap - it's probably got a resizable vector of parts that are on the C++ heap. We need to save that somehow and then regenerate it at load time.
0:45:34
drmeister
I describe what I think is a straightforward mechanism obj_save/obj_load that builds off of ideas that are in the MPS documentation - so the Ravenbrook folks will hopefully understand it right away.
0:46:33
drmeister
What it needs is details about objects that I should be able to recover - and maybe limiting ourselves to a subset of classes that can be written out this way.
0:46:55
Bike
i mean like, bignums for example - internally they could have a vector, or maybe a deep linked list or something
0:46:58
drmeister
The static analyzer should be able to help us identify classes that have pointers into the C++ heap.
0:47:45
drmeister
Yeah - but I wouldn't use that at all. I would just generate a text representation base10 of the bignum and write that out. Then recreate the bignum on loading from that string.
0:59:02
drmeister
Using ROOM we know what objects are in memory - and using the static analyzer I can figure out what classes have pointers to C++ memory.
1:03:59
drmeister
A question that is still buzzing around in my head is - "Is there another way" like changing the order in which objects are created at startup.
1:05:01
Bike
well, what we basically want to do is eliminate side effects at startup. that reduces complexity, bootstrap problems, and startup time.
1:34:31
drmeister
What are the side effects that we need to eliminate - (1) classes should all be defined at once at the start (2) functions should be bound to symbols at start.
7:26:22
scymtym
currently, INTERPRET-TOKEN receives an array of Booleans indicating whether a given token character was escaped
7:26:54
scymtym
this is insufficient for distinguishing .. from .||. (the former is illegal, the latter is a symbol)
7:28:13
scymtym
what i would like to do, and implemented prototypically, is passing a list of escaped ranges, which can be potentially empty
7:29:29
scymtym
this is also more efficient for a couple of things since in the common case, the current escape indicator array is all false
7:30:35
scymtym
this also allows CONVERT-ACCORDING-TO-READTABLE-CASE to take a shortcut instead of looking at each character if there are no escapes. again, the common case