Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » Whiskers: Scratch 2.0 for Incompatible Devices
- timrowledge
- Scratcher
14 posts
Whiskers: Scratch 2.0 for Incompatible Devices
That would be something to do with the fact that the vm architecture is intimately bound up with the image architecture. It needs to understand the object format in memory or you're really out of luck. Remember, Smalltalk does not load up a bunch of sources and create an image every time you start up; it loads a memory dump (literally - we write the used section(s) of the object memory out to a binary file and read it in) and starts where it left off. This is how you can save an image where you are in the midst of debugging something, transfer it to another machine and carry on working. (With obvious limits if you have been using machine specific outside things like sockets. Even Smalltalk can't make sockets on machine A magically transfer to machine B). Thanks! It works great, but why shouldn't the image work independent of VM architecture?
The Smalltalk *code* is almost entirely vm portable except where it deals with details right down in the dirt. There are places where it makes a difference whether you are using 32 or 64 bit object pointers for example. That's just the way life is.
Right now we have several VM types available.
An interpreter VM that can handle almost any image from the past, up to v5. In general you can still run a 1999 image.
An interpreter VM that handles more modern images from the last few years and is a bit faster.
A dynamic compilation VM that handles more modern images and is a lot faster
A dynamic compilation VM that handles images for Squeak 5 an later, aka Spur. This is a new object format that helps make things another ~50% faster
A 64 bit object memory VM that is almost identical but uses 64 bit object pointers. It's not noticeably faster or slower in general. I anticipate that a 128Gb image might be a bit slower for large benchmarks because the amount of memory it has to manage. Not to mention the amount of electricity so much memory will suck from your wall socket.
If we had infinite resources to do the work I guess we'd make a release that combined all options into one and sorted it out for you. But we don't, so we haven't.
My advice for most people would be to download Squeak 5.x and work from that. Stick with the 32 bit system unless you truly need multi-gigabyte images. Join the squeak-general mailing list and join in. Have fun.
Last edited by timrowledge (Aug. 16, 2017 21:24:37)
- Jonathan50
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Ok, thanks for the detailed response.
Not yet a Knight of the Mu Calculus.
- Epiccraft
- Scratcher
41 posts
Whiskers: Scratch 2.0 for Incompatible Devices
I just ran across a bug that maybe you could fix. You can't really duplicate blocks like you can in 1.4 or 2.0. Everytime I try to
SOURCE CODE OF ERROR:
doesNotUnderstand: t1
|t2 t3|
(t2 := MessageNotUnderstood new) message: t1;
reciever: self.
t3 := t2 signal
^ t2 reachedDefaultHandler
ifTrue:
ifFalse:
————————————-
***System error handling failed***
MessageNotUnderstioood: UndefinedObject>>position:
Project class>>tryEmergencyEvaluatorForRecovery:
Project class>>handlePrimitiveError:
MorphicProject(Object)>>primitiveError:
MorphicProject(Project)>>handleFatalDrawingError:
Debugger class>>morphicOpenOn:context:label:contents:fullView:
MorphicProject(Project)>>dispatchTo:addPrefixAndSend:withArguments:
etc….
SCREENSHOT OF ERROR: (It's a link, not an image)
Screenshot PNG
I don't want to use imageshack. I don't have any money to pay for them at all
copy / duplicate, it crashes saying MessageNotUnderstood: UndefinedObject>>position. The source is as explained here
SOURCE CODE OF ERROR:
doesNotUnderstand: t1
|t2 t3|
(t2 := MessageNotUnderstood new) message: t1;
reciever: self.
t3 := t2 signal
^ t2 reachedDefaultHandler
ifTrue:
ifFalse:
————————————-
***System error handling failed***
MessageNotUnderstioood: UndefinedObject>>position:
Project class>>tryEmergencyEvaluatorForRecovery:
Project class>>handlePrimitiveError:
MorphicProject(Object)>>primitiveError:
MorphicProject(Project)>>handleFatalDrawingError:
Debugger class>>morphicOpenOn:context:label:contents:fullView:
MorphicProject(Project)>>dispatchTo:addPrefixAndSend:withArguments:
etc….
SCREENSHOT OF ERROR: (It's a link, not an image)
Screenshot PNG
I don't want to use imageshack. I don't have any money to pay for them at all
- eribetra
- Scratcher
100+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Well, vector loading is unfortunately not applied to Whiskers, so full .sb2 loading is currently not possible.
- Penguin5664
- Scratcher
100+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Uhm… This comment is old but anyways… I just made some improvements to the moble view on the website.
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“
It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."
Yeh. You cannot thank yourself, I guess. XD
The fact is that you made some instructions too.
((づ。◕‿‿◕。::sensing)づ::sensing) // This is "Mini-Bloky". He protects my signature from the kumquats!How many Block Requests we can get? Please request! Check @78ch3's Everything Shop, too!
when gf clicked :: #B46200
vector :: #C56B00
scratch :: #DA8B00
blocks! :: control
- infinitytec
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
I guess I can't!Uhm… This comment is old but anyways… I just made some improvements to the moble view on the website.
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“
It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."
Yeh. You cannot thank yourself, I guess. XD
The fact is that you made some instructions too.
I asked for review for a reason.
- Penguin5664
- Scratcher
100+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Off-topic: What about Doors 7 I'd help?I guess I can't!Uhm… This comment is old but anyways… I just made some improvements to the moble view on the website.
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“
It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."
Yeh. You cannot thank yourself, I guess. XD
The fact is that you made some instructions too.
I asked for review for a reason.
On-topic: Uhm, its past a month(I think) and NoMod is not yet commenting. When is the Vector images support getting added?
((づ。◕‿‿◕。::sensing)づ::sensing) // This is "Mini-Bloky". He protects my signature from the kumquats!How many Block Requests we can get? Please request! Check @78ch3's Everything Shop, too!
when gf clicked :: #B46200
vector :: #C56B00
scratch :: #DA8B00
blocks! :: control
- NoMod-Programming
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Getting that fixed for the next releasewhen backdrop switches to .backdrop[ v] :: hat eventsThere is an unnecessary period in this block.
Sure! If you know how to program in Squeak, then you can directly contribute to development at the Github Repository ( This is great! is there any way I could help make this better?https://github.com/NoMod-Programming/Whiskers). If you don't, that's alright! You can still help by noting the inconsistencies between Whiskers and Scratch 2.0/3.0, and post them here so that I can keep Whiskers updated.
Just found the error. It's actually in LibraryItemMorph >> mouseEnterDragging: (Something to do with the stage not having a rollover costume). I'll get that fixed once I get svgs done (I have an image with finished svgs, but…long story, I don't have my computer at the moment, and my parents are reluctant to give it back. I can probably redo it again, but I'm not sure how long that will take) I just ran across a bug that maybe you could fix. You can't really duplicate blocks like you can in 1.4 or 2.0. Everytime I try tocopy / duplicate, it crashes saying MessageNotUnderstood: UndefinedObject>>position. The source is as explained here
SOURCE CODE OF ERROR:
doesNotUnderstand: t1
|t2 t3|
(t2 := MessageNotUnderstood new) message: t1;
reciever: self.
t3 := t2 signal
^ t2 reachedDefaultHandler
ifTrue:
ifFalse:
————————————-
***System error handling failed***
MessageNotUnderstioood: UndefinedObject>>position:
Project class>>tryEmergencyEvaluatorForRecovery:
Project class>>handlePrimitiveError:
MorphicProject(Object)>>primitiveError:
MorphicProject(Project)>>handleFatalDrawingError:
Debugger class>>morphicOpenOn:context:label:contents:fullView:
MorphicProject(Project)>>dispatchTo:addPrefixAndSend:withArguments:
etc….
SCREENSHOT OF ERROR: (It's a link, not an image)
Screenshot PNG
I don't want to use imageshack. I don't have any money to pay for them at all
Can you explain what parts of a .sb2 don't load properly? That way I can get Whiskers working with those files Imports .sb perfectly, but the same could not be said for .sb2
Off-topic: What about Doors 7 I'd help?I guess I can't!Uhm… This comment is old but anyways… I just made some improvements to the moble view on the website.
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“
It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."
Yeh. You cannot thank yourself, I guess. XD
The fact is that you made some instructions too.
I asked for review for a reason.
On-topic: Uhm, its past a month(I think) and NoMod is not yet commenting. When is the Vector images support getting added?
Sorry for the long wait . I had schoolwork to focus on, as well as had my computer taken away from me by my parents (they're reluctant to give it back right now). If I can get some time within the next week, I can push out a release with vector image support, but as for some parts of it, such as an editor or checking that the engine meets svg specifications, I might not be able to get those parts done. Really sorry for making you guys wait, though
I'll take a look into that, and hopefully release a fix for that along with the vector loading image within the next week.Also, some blocks like Well, vector loading is unfortunately not applied to Whiskers, so full .sb2 loading is currently not possible.show variable [no v]don't work with imported sb2.
Long-since moved on from Scratch, if you need to find all my posts, search this in google: 3499447a51c01fc4dc1e8c3b8182b41cb0e88c67
- eribetra
- Scratcher
100+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Are you going to implement vector loading? Also, is the font in vector or is it force-antialiased? If so, then you could modify the font system to load vector images.
- NoMod-Programming
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
I'll add that to my to-do list. The problem is that Squeak doesn't have built-in support for vector images, and the system that I'm using right now is a little complicated (but so is the svg format, at lease IMO), so when I find the time, I can implement a better way to load and use vector images. Are you going to implement vector loading? Also, is the font in vector or is it force-antialiased? If so, then you could modify the font system to load vector images.
By asking whether the font is in vector or whether it is force-antialiased, I am assuming that you are asking whether or not the font is using TrueType or a similar system. If so, the answer is that some of the fonts in Squeak are, to the best of my knowledge, in TrueType, but many of the ones currently in Whiskers are not, and I would need to import fonts such as Helvetica into the Squeak image in order to use them. If I find the time, again, I can do this and tweak some settings to make sure that it looks good on different kinds of screens, but until I can get my hands on my HiDPI mac, and my low-resolution monitor, I am wary to make too many change with font choices.
Long-since moved on from Scratch, if you need to find all my posts, search this in google: 3499447a51c01fc4dc1e8c3b8182b41cb0e88c67
- NoMod-Programming
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Just pushed out 0.9a6! This update includes, among a few embarrassing bug fixes, a few more features and helps increase compatibility with Scratch 2.0. Here's a list of what changed:
The source code is available on Github here: https://github.com/NoMod-Programming/Whiskers
A .image, .changes, and .sources file is available here: https://github.com/NoMod-Programming/Whiskers/tree/master/Build. Please note, however, that the 64 bit image is not updated at the moment.
- Fixed an issue where dragging a script or media onto a sprite in the sprite library caused a fatal error
- Fixed an issue where files downloaded from nXIII's getsb2 utility would not work with Whiskers
- Added the ability to read and write comments to .sb2 files
- Added the ability to rename and delete variables from the context menu
- Cleaned up code, and started some small refactoring
- Added inset border to ArgMorph instances
- Fixed an issue where custom blocks would not save correctly
- Made most menus (Excluding main menu bar) look like the ones used in Scratch 2.0
- Made comments look more like Scratch 2.0, and allow vertical resizing of comments
- Made new variable and rename variable dialogs look closer to Scratch 2.0
- Move to new variable storing and accessing system, which allows for efficient renaming of variables
- Fix `show variable ` and `hide variable ` blocks turning red after re-opening project
The source code is available on Github here: https://github.com/NoMod-Programming/Whiskers
A .image, .changes, and .sources file is available here: https://github.com/NoMod-Programming/Whiskers/tree/master/Build. Please note, however, that the 64 bit image is not updated at the moment.
Long-since moved on from Scratch, if you need to find all my posts, search this in google: 3499447a51c01fc4dc1e8c3b8182b41cb0e88c67
- infinitytec
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Cool! I'll try to update the installer soon. Just pushed out 0.9a6! This update includes, among a few embarrassing bug fixes, a few more features and helps increase compatibility with Scratch 2.0. Here's a list of what changed:
- Fixed an issue where dragging a script or media onto a sprite in the sprite library caused a fatal error
- Fixed an issue where files downloaded from nXIII's getsb2 utility would not work with Whiskers
- Added the ability to read and write comments to .sb2 files
- Added the ability to rename and delete variables from the context menu
- Cleaned up code, and started some small refactoring
- Added inset border to ArgMorph instances
- Fixed an issue where custom blocks would not save correctly
- Made most menus (Excluding main menu bar) look like the ones used in Scratch 2.0
- Made comments look more like Scratch 2.0, and allow vertical resizing of comments
- Made new variable and rename variable dialogs look closer to Scratch 2.0
- Move to new variable storing and accessing system, which allows for efficient renaming of variables
- Fix `show variable ` and `hide variable ` blocks turning red after re-opening project
The source code is available on Github here: https://github.com/NoMod-Programming/Whiskers
A .image, .changes, and .sources file is available here: https://github.com/NoMod-Programming/Whiskers/tree/master/Build. Please note, however, that the 64 bit image is not updated at the moment.
Do we really need 64 bit? Most incompatible devices will just be 32 bit.
- Jonathan50
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
Getting a 32-bit Squeak with all the 32-bit libraries to work properly on 64-bit Linux isn't easy, and there are plenty of 64-bit platforms Adobe Flash/Pepper Flash aren't available for, like PowerPC 64 and UltraSPARC, although virtually noone uses them and I'm not even sure if Squeak 5 will compile on them.
NoMod-Programming, who is Whisker's target audience, now that Scratch 2.0 works on Raspberry Pi?
NoMod-Programming, who is Whisker's target audience, now that Scratch 2.0 works on Raspberry Pi?
Not yet a Knight of the Mu Calculus.
- NoMod-Programming
- Scratcher
1000+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
For the most part, Whisker's target audience is users of older Raspberry Pi models (The RPi Zero and the Original model), and users who don't want to use flash to run Scratch 2.0 (due to the slow speed of running flash on chromium, and the approaching end-of-life for flash). Additionally, Whiskers targets, but not as a main audience, users who would prefer to create modifications on Squeak rather than AS3 for Scratch 2.0. Getting a 32-bit Squeak with all the 32-bit libraries to work properly on 64-bit Linux isn't easy, and there are plenty of 64-bit platforms Adobe Flash/Pepper Flash aren't available for, like PowerPC 64 and UltraSPARC, although virtually noone uses them and I'm not even sure if Squeak 5 will compile on them.
NoMod-Programming, who is Whisker's target audience, now that Scratch 2.0 works on Raspberry Pi?
Regarding your point of getting 32-bit Squeak…I've got Squeak on my 32-bit machine, and I have no audio output available (as well as a requirement to run squeak with `sudo`), and on my 64-bit machine (which I currently cannot use at the moment), I have similar issues. Getting the 32-bit vm set up on my mac (64-bit), though, took a while, and I had to download lots of different i386-compatability libraries to get it to run, let alone get things like sound… With a 64-bit image, though (when I did it a few months ago), it was much easier, and, for the most part, it was much quicker to get it set up and runningCool! I'll try to update the installer soon. Just pushed out 0.9a6! This update includes, among a few embarrassing bug fixes, a few more features and helps increase compatibility with Scratch 2.0. Here's a list of what changed:
- Fixed an issue where dragging a script or media onto a sprite in the sprite library caused a fatal error
- Fixed an issue where files downloaded from nXIII's getsb2 utility would not work with Whiskers
- Added the ability to read and write comments to .sb2 files
- Added the ability to rename and delete variables from the context menu
- Cleaned up code, and started some small refactoring
- Added inset border to ArgMorph instances
- Fixed an issue where custom blocks would not save correctly
- Made most menus (Excluding main menu bar) look like the ones used in Scratch 2.0
- Made comments look more like Scratch 2.0, and allow vertical resizing of comments
- Made new variable and rename variable dialogs look closer to Scratch 2.0
- Move to new variable storing and accessing system, which allows for efficient renaming of variables
- Fix `show variable ` and `hide variable ` blocks turning red after re-opening project
The source code is available on Github here: https://github.com/NoMod-Programming/Whiskers
A .image, .changes, and .sources file is available here: https://github.com/NoMod-Programming/Whiskers/tree/master/Build. Please note, however, that the 64 bit image is not updated at the moment.
Do we really need 64 bit? Most incompatible devices will just be 32 bit.
Long-since moved on from Scratch, if you need to find all my posts, search this in google: 3499447a51c01fc4dc1e8c3b8182b41cb0e88c67
- ihgfedcba
- Scratcher
100+ posts
Whiskers: Scratch 2.0 for Incompatible Devices
ISSueS Wİth graphİCS:
The bitmap images become blurry (shifted by half a pixel?) when a Scratch 2.0 project is opened.
Want to edit images with an editor? There does not exist.
The image center from opened .sb2 files is incorrect.
ISSueS:
It can't open .sprite2 format for Scratch 2.0 sprites.
Sounds become corrupted (sounding like a bunch of clicks) when a Scratch 2.0 project is opened.
The icon is the same as the Scratch 1.4 one, which can cause confusion when the user is in another program on Windows 7, 8 and 10.
Found that some projects are a LOT more laggy in Whiskers.
It uses the Scratch 1.4 rounding behavior (negative halfways round down).
Renaming variables not allowed.
It's impossible to morph variables into other ones.
Takes ages to open a sb2 file, only for it to turn awful quality because of above issues.
The bitmap images become blurry (shifted by half a pixel?) when a Scratch 2.0 project is opened.
Want to edit images with an editor? There does not exist.
The image center from opened .sb2 files is incorrect.
ISSueS:
It can't open .sprite2 format for Scratch 2.0 sprites.
Sounds become corrupted (sounding like a bunch of clicks) when a Scratch 2.0 project is opened.
The icon is the same as the Scratch 1.4 one, which can cause confusion when the user is in another program on Windows 7, 8 and 10.
Found that some projects are a LOT more laggy in Whiskers.
It uses the Scratch 1.4 rounding behavior (negative halfways round down).
Renaming variables not allowed.
It's impossible to morph variables into other ones.
Takes ages to open a sb2 file, only for it to turn awful quality because of above issues.
- Discussion Forums
- » Advanced Topics
- » Whiskers: Scratch 2.0 for Incompatible Devices