tag:blogger.com,1999:blog-17087850.post920780018387069076..comments2023-10-31T06:50:41.697-04:00Comments on Factor: a practical stack language: Garbage collection throughput improvementsSlava Pestovhttp://www.blogger.com/profile/02768382790667979877noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-17087850.post-49267903893743604502008-05-12T01:55:00.000-04:002008-05-12T01:55:00.000-04:00However, GCC doesn't try to optimize higher-order ...<I>However, GCC doesn't try to optimize higher-order code at all, after all it is a C compiler not an ML compiler, and it isn't Sufficiently Smart Either!</I><BR/><BR/>Looks like it's time to change your mind on question 30 from your FAQ. C-way of optimization is allways "hell of a code explosion".Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-17087850.post-50976185061732624482008-05-11T18:47:00.000-04:002008-05-11T18:47:00.000-04:00Petter: the compiler will indeed optimize away 1 2...Petter: the compiler will indeed optimize away 1 2 3 3array drop, which is why I had to put it in its own non-inline word. That benchmark is not realistic but as you can see the other benchmarks such as Raytracer, SHA1, etc also exhibited improvements and they are a lot more realistic than the first three.Slava Pestovhttps://www.blogger.com/profile/02768382790667979877noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-64442850727081140502008-05-11T17:56:00.000-04:002008-05-11T17:56:00.000-04:00Could it be that this solution is addressing a "sh...Could it be that this solution is addressing a "should-not-exist-problem"?<BR/><BR/>The code 1 2 3 3array drop should not produce any garbage at all, as the tree first values are types (and not references to objects) and 3array is not addressed by another object at all?<BR/><BR/>Could the garbage-collector only "be activated" when it sees an object, which is containing a reference to another object?<BR/><BR/>PetterAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-17087850.post-23349158234970549432008-05-10T13:28:00.000-04:002008-05-10T13:28:00.000-04:00Fantastic. Keep it up.Fantastic. Keep it up._https://www.blogger.com/profile/03265402500778681991noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-34350672368858458692008-05-10T11:22:00.000-04:002008-05-10T11:22:00.000-04:00I should mention that you can read about the YHC r...I should mention that you can read about the YHC run-time here:<BR/><BR/>http://www.haskell.org/haskellwiki/Yhc/RTS/Machineebbhttps://www.blogger.com/profile/13637191794150667952noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-70974153239424156322008-05-10T11:17:00.000-04:002008-05-10T11:17:00.000-04:00The idea of using marked card decks sounds similar...The idea of using marked card decks sounds similar to a technique used in YHC (a Haskell compiler). They store node marks in an external bit-vector. This way, they only have one level of marks but it's still possible to vectorize the scan for marked nodes.ebbhttps://www.blogger.com/profile/13637191794150667952noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-87344751504736836882008-05-10T09:05:00.000-04:002008-05-10T09:05:00.000-04:00BTW: Do you have any times on bootstrapping? I hav...BTW: Do you have any times on bootstrapping? I have the feeling it all compiles a bit faster. But I can be wrong. I have no data on this.Anonymousnoreply@blogger.com