Guest User

Untitled

a guest
Jan 22nd, 2018
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. <MrGwen> bonzini: I've removed the ObjectTable
  2. <bonzini> ??!?!?!? :)
  3. * zecke (~ich@91-64-83-241-dynip.superkabel.de) ha entrat a #gnu-smalltalk
  4. <MrGwen> yep :D
  5. <bonzini> how is performance?
  6. <bonzini> you're batshit crazy :)
  7. <zecke> hi
  8. <MrGwen> :)
  9. <bonzini> examples/Bench.st will do :)
  10. <MrGwen> :)
  11. <MrGwen> I've removed the compiler/bootstrapper and only generate images from a st bootstrap
  12. <MrGwen> also multiple kernels in the VM
  13. <bonzini> ahah
  14. <bonzini> gimme those numbers for the OT come on!
  15. <bonzini> :)
  16. * bonzini only 13 to go
  17. <bonzini> also, how do you handle objects that move during GC?
  18. <bonzini> kind of like the incubator does with the OT?
  19. <MrGwen> I've no GC right now
  20. <bonzini> aaaah :) :)
  21. <MrGwen> I've do to one but don't know what will be the design
  22. <MrGwen> I've time
  23. <bonzini> you can reuse 99% of the code in mine, i think
  24. <MrGwen> yes but I'm not sure if I won't use a kind of // gc
  25. <bonzini> the current GC can be made parallel
  26. <bonzini> just replace the marking stack with a lock-free stack
  27. <bonzini> the copying phase is not parallel, true, but it is very short
  28. <bonzini> and update the REACHABLE bits atomically
  29. <MrGwen> true
  30. <MrGwen> i've broke also readline stuff and I plan to do it in the image too, by the way I generate small images (1 mo for 64 bits)
  31. <bonzini> :)
  32. <MrGwen> removing all the objects known (and the compiler, parser, ...) by the vm makes the vm easier to hack
  33. <bonzini> yep, how do you bootstrap?
  34. <bonzini> that'd be the first part i'd like to merge
  35. <MrGwen> simple i load everything in a namespace and I've made a kind of objectdumper too but I control if I don't escape the world
  36. <bonzini> so how do you build your loading format from kernel/*
  37. <MrGwen> I load files from kernel (updated a bit) and inject them in a namespace
  38. <MrGwen> I follow the graph and save the objects
  39. <bonzini> you distribute a binary then
  40. <MrGwen> yep
  41. <MrGwen> an image
  42. <bonzini> and you have a C loader for the objectdumper
  43. <bonzini> ?
  44. <MrGwen> yes
  45. <MrGwen> I load the image and fix the pointers
  46. <MrGwen> I use your infrastructure
  47. <bonzini> do you save the image from Smalltalk code (SystemTracer), or is it a different format?
  48. <MrGwen> the format is a bit diff since I take care of object alignment (like your allocator)
  49. <MrGwen> correct me If I am wrong
  50. <bonzini> yes, i think i understand
  51. <bonzini> it's ugly though to distribute a binary...
  52. <bonzini> you cannot build from ./configure && make
  53. <MrGwen> I think the model could be C world (parser/compiler) generate a simple image => from the image generate a full image
  54. <MrGwen> the cworld would send no messages but only see objects as structures
  55. <bonzini> or, move the parser/compiler to a separate user of libgst
  56. <bonzini> and out of libgst
  57. <bonzini> it would break the ABI though
  58. <MrGwen> good idea
  59. <MrGwen> Paolo I've break too much stuff :D
  60. <bonzini> and move the REPL to a smalltalk script like gst-load etc.
  61. <bonzini> now you have to fix it :
  62. <bonzini> )
  63. <MrGwen> Also the context allocation is refactored in a way allowing the vm to have multiple smalltalk stacks
  64. * MrGwen has a lot of work
  65. <MrGwen> for become there is the solution described in the "Third generational Smalltalk" paper they put a bit on the object header if it is set to one this is "proxy" I 've to investigate on it
Add Comment
Please, Sign In to add comment