Dnia 23.01.2015 17:29:35, Mateusz Grotek napisał(a):
Hello,
I tried to start the Context image, but failed.
What I've done is:
git clone 'https://github.com/ccrraaiigg/context.git'
context/context.app/Contents/RUNME/linux/context.sh
The output is:
START /usr/bin/firefox "http://localhost:8090/README.html"
(process:8349): GLib-CRITICAL **: g_slice_set_config: assertion
'sys_page_size == 0' failed
A new browser tab shows up with the address:
"http://localhost:8090/README.html", but no page appears (the "cannot
connect" error page).
Also the program stops after showing the lines above.
Am I doing anything wrong? Thank you for any help.
Mateusz
_______________________________________________
Spoon mailing list
Spoon(a)lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/spoon
2015-01-19 15:41 GMT+01:00 Craig Latta <craig(a)netjam.org>:
>
> Okay, I'll add both of the execution-driven imprinters to the
> repository. They're called "active" and "passive" imprinting.
>
> Active imprinting is directed by the system that initially has the
> desired code. An ActiveImprintingServer has clients in the systems which
> will receive the code. Every time the server system runs a method in a
> certain process, it imprints that method onto each of the clients. One
> use case for this is giving the code of a demo to an audience as you run
> it.
>
> Passive imprinting is directed by the system that wants the code.
> The target system makes a remote-messaging connection to a system which
> has the code, and runs an expression which will use the code. Every time
> a method is missing from the target system (in any process), the target
> system requests the missing method from the provider system, installs
> it, and retries running that method.
>
> I have imprinted the exception-handling system, the compiler, and
> the class builder with both approaches.
>
>
>
In this scheme, something is striking me.
Some images share some code (classes, compiledMethods)
But what about code mutations/updates?
Without such mutations, is it still Smalltalk?
Without active imprinting, such mutations might not be obvious to propagate
(for example a subclass now overrides a message of super)
And since you import class builder and compiler in the target, on what
purpose? Is the target going to change a class locally? What if it then
imports incompatible methods from provider? Or is the goal to just
replicate some mutations from the provider?
Maybe the scheme is more interesting for deployment of static code, but I'm
curious to know if ever live updates would still be possible...
> thanks,
>
> -C
>
> --
> Craig Latta
> netjam.org
> +31 6 2757 7177 (SMS ok)
> + 1 415 287 3547 (no SMS)
>
>
>
>
> Sure, right now you can browse the kernel memory from Squeak 4.5.
> Every time you accept a method, you're compiling it in Squeak 4.5 and
> imprinting it onto the kernel. But you're referring to imprinting driven
> by method execution?
Yes exactly!
> (Each method that is run is imprinted elsewhere, as
> a side-effect.) What code would you like to see imprinted?
>
Test suites. To me, the holy-grail of deployment scaling is I first I
develop and configure in a big luxurious Cadillac image loaded with tools
until I'm ready to deploy. When I'm ready to deplooy I fire up a copy of
your 1MB core image as the "target" with my luxury image as the 'source'
and then I simply bring over a top-level test-suite method into the target
and run it.
As the methods are executed and found to be missing in the 1MB target, they
are brought over from the source.
By the time the tests are done, /all/ and /only/ the methods which were
needed to run the tests were brought over by Spoon / Naiad.
Now I want to save that target image (maybe 5MB now) and deploy it. I will
want to run many multiple copies of of that 5MB image but since my tests
probably don't have 100% coverage it would be too risky to run in
production unless each of those 5MB images could have backup Spoon access
to a single running copy of my mother Caddi' image, in case one more method
is found to be needed...
So I see Spoon as a way for learning about systems like you, but also as a
solution for scaling -- from the smallest single core for limited hardware
<---> to the largest multi-core, applications because one can run MORE
images concurrently due to their smaller size.
> In any case, I do plan to make videos showing all the top-level
> features.
>
>
> thanks,
>
> -C
>
> --
> Craig Latta
> netjam.org
> +31 6 2757 7177 (SMS ok)
> + 1 415 287 3547 (no SMS)
>
>
>
Branch: refs/heads/master
Home: https://github.com/ccrraaiigg/context
Commit: 6e2581daab3164b77993b2752171d9ba76cd4545
https://github.com/ccrraaiigg/context/commit/6e2581daab3164b77993b2752171d9…
Author: Craig Latta <github(a)netjam.org>
Date: 2015-01-17 (Sat, 17 Jan 2015)
Changed paths:
A context.app/Contents/Resources/context processor.app/Contents/JavaScript/Flow.js
M context.app/Contents/Resources/context processor.app/Contents/Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/946BE974-48B7-4D11-B209-6355B3E49722
M context.app/Contents/Resources/context processor.app/Contents/Resources/context/memories/CFE10A14-D883-4ACE-990A-0DDA86AA362B
Log Message:
-----------
Started JavaScript version of the Flow external streaming plugin, for use with SqueakJS. Tweaked the console's welcome page.