There are problems with the new network support when running on Windows
with a newer VM that provides IPv6 primitives. This preference allows the
new network support to be disabled.
Default setting is true, which enables the new network support (as
is currently the case for a trunk image). It can be set false to disable
new network support, and I think that this should be done for the
Squeak 4.4 release image, otherwise we are going to cause problems
for lots of Windows users.
If no objections I will move this to trunk in a day or so.
Dave
On Sun, Sep 23, 2012 at 05:32:54PM +0000, commits(a)source.squeak.org wrote:
> A new version of Network was added to project The Inbox:
> http://source.squeak.org/inbox/Network-dtl.137.mcz
>
> ==================== Summary ====================
>
> Name: Network-dtl.137
> Author: dtl
> Time: 23 September 2012, 1:32:32.394 pm
> UUID: b4bcd6e4-6a2d-4fc6-be4b-0d01accc3c72
> Ancestors: Network-ul.136
>
> Add a preference for "Enable IPv6 and new network support" in preference category "general". If enabled, IPv6 and the new network support will be enabled if the required primitives are present in the VM, otherwise the new network support is disabled regardless of whether the VM provides IPv6 primitives.
>
Hi Chris,
Apologies if you've answered this before. What OS/version does
squeakci run? It looks like it's running a CentOS of some description
or other,
I'm trying to write a build script for running a trunk image on a
stack VM, and I'll at least need to know what version it is before
anyone can give meaningful advice.
In case David Lewis is reading, I'm seeing this:
Installing Squeak-4.10.2.2614 for linux_i386 into
/var/lib/jenkins/workspace/LinuxStackVM/target/linux-stackvm
tar: Read 2048 bytes from -
Installation finished.
CHECKING squeakvm
/var/lib/jenkins/workspace/LinuxStackVM/target/linux-stackvm/lib/squeak/4.10.2-2614/squeakvm:
/lib/libc.so.6: version `GLIBC_2.11' not found (required by
/var/lib/jenkins/workspace/LinuxStackVM/target/linux-stackvm/lib/squeak/4.10.2-2614/squeakvm)
/var/lib/jenkins/workspace/LinuxStackVM/target/linux-stackvm/lib/squeak/4.10.2-2614/squeakvm:
/lib/libc.so.6: version `GLIBC_2.7' not found (required by
/var/lib/jenkins/workspace/LinuxStackVM/target/linux-stackvm/lib/squeak/4.10.2-2614/squeakvm)
/var/lib/jenkins/workspace/LinuxStackVM/target/linux-stackvm/lib/squeak/4.10.2-2614/squeakvm:
/lib/libc.so.6: version `GLIBC_2.15' not found (required by
/var/lib/jenkins/workspace/LinuxStackVM/target/linux-stackvm/lib/squeak/4.10.2-2614/squeakvm)
The machine in question has a /lib/libc-2.5.so, so perhaps that's
causing the problem?
The excerpt comes from [1]. The script that runs the build lives at [2].
Thanks,
frank
[1] http://squeakci.org/job/LinuxStackVM/7/console
[2] https://github.com/frankshearar/squeak-ci/blob/master/linux-stackvm.sh
A new version of Network was added to project The Inbox:
http://source.squeak.org/inbox/Network-dtl.137.mcz
==================== Summary ====================
Name: Network-dtl.137
Author: dtl
Time: 23 September 2012, 1:32:32.394 pm
UUID: b4bcd6e4-6a2d-4fc6-be4b-0d01accc3c72
Ancestors: Network-ul.136
Add a preference for "Enable IPv6 and new network support" in preference category "general". If enabled, IPv6 and the new network support will be enabled if the required primitives are present in the VM, otherwise the new network support is disabled regardless of whether the VM provides IPv6 primitives.
=============== Diff against Network-ul.136 ===============
Item was changed:
Object subclass: #NetNameResolver
instanceVariableNames: ''
+ classVariableNames: 'DefaultHostName EnableIPv6 HaveNetwork ResolverBusy ResolverError ResolverMutex ResolverReady ResolverSemaphore ResolverUninitialized UseOldNetwork'
- classVariableNames: 'DefaultHostName HaveNetwork ResolverBusy ResolverError ResolverMutex ResolverReady ResolverSemaphore ResolverUninitialized UseOldNetwork'
poolDictionaries: ''
category: 'Network-Kernel'!
!NetNameResolver commentStamp: '<historical>' prior: 0!
This class implements TCP/IP style network name lookup and translation facilities.
Attempt to keep track of whether there is a network available.
HaveNetwork true if last attempt to contact the network was successful.
LastContact Time of that contact (totalSeconds).
haveNetwork returns true, false, or #expired. True means there was contact in the last 30 minutes. False means contact failed or was false last time we asked. Get out of false state by making contact with a server in some way (FileList or updates).!
Item was added:
+ ----- Method: NetNameResolver class>>enableIPv6 (in category 'system startup') -----
+ enableIPv6
+ <preference: 'Enable IPv6 and new network support'
+ category: 'general'
+ description: 'If true allow IPv6 support. If false, NetNameResolver useOldNetwork is set.'
+ type: #Boolean>
+ ^EnableIPv6!
Item was added:
+ ----- Method: NetNameResolver class>>enableIPv6: (in category 'system startup') -----
+ enableIPv6: aBool
+ "Set a preference to control whether IPv6 primitives and new network support
+ should be used if available, and reinitialize the UseOldNetwork flag to recognize
+ the setting. If true, the new networking support will be used if the VM provides
+ the required primitives. If false, IPv6 and new network support will not be used.
+ The new network support may be unreliable on some platforms, so this preference
+ allows it to be explicitly disabled."
+
+ EnableIPv6 := aBool.
+ self initializeOldNetworkFlag
+ !
Item was changed:
----- Method: NetNameResolver class>>initialize (in category 'class initialization') -----
initialize
"NetNameResolver initialize"
"Note: On the Mac, the name resolver is asynchronous (i.e., Squeak can do other things while it is working), but can only handle one request at a time. On other platforms, such as Unix, the resolver is synchronous; a call to, say, the name lookup primitive will block all Squeak processes until it returns."
"Resolver Status Values"
ResolverUninitialized := 0. "network is not initialized"
ResolverReady := 1. "resolver idle, last request succeeded"
ResolverBusy := 2. "lookup in progress"
ResolverError := 3. "resolver idle, last request failed"
DefaultHostName := ''.
UseOldNetwork := self hasIpv6PrimSupport not.
+ self enableIPv6: true. "Initialize preference to permit use of new networking"
Smalltalk addToStartUpList: self.
!
Item was added:
+ ----- Method: NetNameResolver class>>initializeOldNetworkFlag (in category 'system startup') -----
+ initializeOldNetworkFlag
+
+ UseOldNetwork := self hasIpv6PrimSupport not or: [self enableIPv6 ~= true]!
Item was changed:
----- Method: NetNameResolver class>>startUp: (in category 'system startup') -----
startUp: resuming
+ "Set the UseOldNetwork flag if ipv6 primitives are not present or if the EnableIPv6 preference is not set."
- "Set the UseOldNetwork flag if ipv6 primitives are not present"
+ resuming ifTrue: [self initializeOldNetworkFlag]!
- resuming ifTrue: [UseOldNetwork := self hasIpv6PrimSupport not]!
This will keep the tests green when the VM is updated to a more recent version.
Dave
On Sun, Sep 23, 2012 at 01:50:36PM +0000, commits(a)source.squeak.org wrote:
> David T. Lewis uploaded a new version of Tests to project The Trunk:
> http://source.squeak.org/trunk/Tests-dtl.170.mcz
>
> ==================== Summary ====================
>
> Name: Tests-dtl.170
> Author: dtl
> Time: 23 September 2012, 9:50:16.094 am
> UUID: 68580c67-c932-4d59-a9cb-77ae53dc71ad
> Ancestors: Tests-ul.169
>
> All versions of Cog provide mirror primitive support. For the interpreter VM, support was added in version 4.7.19. Identify expected mirror primitive failures for older versions of the interpreter VM.
>
> =============== Diff against Tests-ul.169 ===============
>
> Item was changed:
> ----- Method: MirrorPrimitiveTests>>expectedFailures (in category 'testing') -----
> expectedFailures
> + "All versions of Cog provide mirror primitive support. For the interpreter VM,
> + support was added in version 4.7.19. Identify expected failures for older versions
> + of the interpreter VM."
>
> ^Smalltalk isRunningCog
> ifTrue: [#()]
> + ifFalse: [ | ver |
> + [ver := VersionNumber fromString: Smalltalk vm interpreterSourceVersion.
> + ((ver numbers first * 1000) + ver numbers second) >= 4008
> + ifTrue: [^#() "version 4.7.19 or greater with mirror primitive support"]]
> + on: Warning
> + do: ["primitiveInterpreterSourceVersion not available"].
> + ^#(testMirrorEqEq testMirrorPerform testMirrorSize) "older interpreter VMs"]
> + !
> - ifFalse: [#(testMirrorEqEq testMirrorPerform testMirrorSize)]!
>
David T. Lewis uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-dtl.170.mcz
==================== Summary ====================
Name: Tests-dtl.170
Author: dtl
Time: 23 September 2012, 9:50:16.094 am
UUID: 68580c67-c932-4d59-a9cb-77ae53dc71ad
Ancestors: Tests-ul.169
All versions of Cog provide mirror primitive support. For the interpreter VM, support was added in version 4.7.19. Identify expected mirror primitive failures for older versions of the interpreter VM.
=============== Diff against Tests-ul.169 ===============
Item was changed:
----- Method: MirrorPrimitiveTests>>expectedFailures (in category 'testing') -----
expectedFailures
+ "All versions of Cog provide mirror primitive support. For the interpreter VM,
+ support was added in version 4.7.19. Identify expected failures for older versions
+ of the interpreter VM."
^Smalltalk isRunningCog
ifTrue: [#()]
+ ifFalse: [ | ver |
+ [ver := VersionNumber fromString: Smalltalk vm interpreterSourceVersion.
+ ((ver numbers first * 1000) + ver numbers second) >= 4008
+ ifTrue: [^#() "version 4.7.19 or greater with mirror primitive support"]]
+ on: Warning
+ do: ["primitiveInterpreterSourceVersion not available"].
+ ^#(testMirrorEqEq testMirrorPerform testMirrorSize) "older interpreter VMs"]
+ !
- ifFalse: [#(testMirrorEqEq testMirrorPerform testMirrorSize)]!
Levente Uzonyi uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-ul.169.mcz
==================== Summary ====================
Name: Tests-ul.169
Author: ul
Time: 23 September 2012, 2:01:58.121 pm
UUID: bcf8b519-ab9d-5942-bc38-b6ac9f1f2fd8
Ancestors: Tests-ul.168
3 tests are still failing in MirrorPrimitiveTests using the Interpreter VM, so mark those as #expectedFailures again.
=============== Diff against Tests-ul.168 ===============
Item was added:
+ ----- Method: MirrorPrimitiveTests>>expectedFailures (in category 'testing') -----
+ expectedFailures
+
+ ^Smalltalk isRunningCog
+ ifTrue: [#()]
+ ifFalse: [#(testMirrorEqEq testMirrorPerform testMirrorSize)]!
On 20 September 2012 13:08, <commits(a)source.squeak.org> wrote:
> Bert Freudenberg uploaded a new version of Monticello to project The Trunk:
> http://source.squeak.org/trunk/Monticello-bf.525.mcz
>
> ==================== Summary ====================
>
> Name: Monticello-bf.525
> Author: bf
> Time: 20 September 2012, 2:07:49.849 pm
> UUID: 35b8d257-a1b4-4dda-baa1-f497de4d4328
> Ancestors: Monticello-eem.524
>
> SnapshotBrowser: label class extensions as *inst or *class
>
> =============== Diff against Monticello-eem.524 ===============
I haven't posted a progress report in a while. As of this commit we
have only 9 failing tests!
http://squeakci.org/job/SqueakTrunk/lastCompletedBuild/testReport/
One of those is entirely my fault: the HudsonBuildTools needs either
fleshing out to pull in RB and friends or, better, stripping down to
remove references to same.
frank
Seems I spoke a little too soon recently about the ease with which the
current The Weekly Squeak blog ( http://news.squeak.org ) RSS could be
switched to JSON from XML. Yes, there is a plugin that aims that way.
But it appears that is more for people who deploy Wordpress themselves.
Not so much for people who just use it for free with Wordpress doing the
deploying.
Unless I misread these:
https://developers.google.com/blogger/docs/2.0/json/getting_started#backgro…http://code.blogger.com/2011/09/blogger-json-api-now-available.htmlhttp://beautifulbeta.wikidot.com/json-feeds
it looks like Blogger has a JSON API what with it being Google and all.
So, the way to switch from a squeak.org that receives The Weekly Squeak
as XML to JSON looks easiest by switching from Wordpress to Blogger.
It's a thought. If somebody has a better grip on this, I'd love to hear it.
Chris
Changes to Trunk (http://source.squeak.org/trunk.html) in the last 24 hours:
http://lists.squeakfoundation.org/pipermail/packages/2012-September/005522.…
Name: SUnit-ul.89
Ancestors: SUnit-ul.88
Accept a block (and strings as before) as description in TestCase >> #assert:description:. Instead of printing the objects all the time, only do that if the test fails in TestCase>>assert:equals: and TestCase>>assert:equals:description:.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2012-September/005523.…
Name: Kernel-ul.711
Ancestors: Kernel-bf.710
Accept a block as description (besides a string) in Object>>assert:description:. This ensures that the method's behavior is the same as TestCase>>assert:description:'s.
=============================================