<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.lang.smalltalk.vwnc">
    <title>gmane.comp.lang.smalltalk.vwnc</title>
    <link>http://blog.gmane.org/gmane.comp.lang.smalltalk.vwnc</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25032"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25030"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25029"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25028"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25022"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25021"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25020"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25017"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25013"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25010"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25009"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25008"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25004"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25002"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24998"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24997"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24996"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24984"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24978"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24977"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25032">
    <title>Reducers in Smalltalk</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25032</link>
    <description>&lt;pre&gt;Hi,

out of curiosity I did an initial port of Clojure's Reducers library. I've  
just pushed it to the public repository. It is by no means complete or  
optimized. In fact, I ask you for your impressions and ideas where to go  
 from here.

So, what's in here?
Reducers builds upon the simple abstraction that a collection is a  
reducible object, i.e., an object that understands #reduce:init:. It  
provides fundamental collection operations similar to classical methods,  
e.g., like #collect:, but offers specific advantages:
- Reducers are composable and reusable.
- Memory efficiency, since no intermediate collections are constructed.
- Enable collection operations on custom types simply by implementing  
#reduce:init:.
- Possibility of parallel operations on collections, e.g., with  
Polycephaly 2.

For example, the sum of odd numbers could be computed like this:

| col red |
col := (1 to: 10**6).
(Reducer filter: #odd from: col) reduce: #+ init: 0.

"composition of reducers works like this:"
red := (Reducer filter: #odd) &amp;lt;&amp;gt; (Reducer map: #squared).
(red from: col) reduce: #+ init: 0.

Some questions:
1. What do you think of the current API?
2. How could one improve the execution time? (Optimizations to the  
construction of the (nested) blocks?)

Have fun!
Steffen
&lt;/pre&gt;</description>
    <dc:creator>Steffen Märcker</dc:creator>
    <dc:date>2013-05-09T14:40:15</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25030">
    <title>indexedType: #illegal</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25030</link>
    <description>&lt;pre&gt;What is the meaning of "illegal" indexedType ?
If I file out the package with this, I can't read it again without
replacing the "illegal" by "none"


Smalltalk.UnPackage defineClass: #UneClasse
superclass: #{Core.Object}
indexedType: #illegal
private: false
instanceVariableNames: ''
classInstanceVariableNames: ''
imports: ''
category: ''
&lt;/pre&gt;</description>
    <dc:creator>Vincent Lesbros</dc:creator>
    <dc:date>2013-05-09T13:16:48</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25029">
    <title>External interfaces long long typedef returns a CPointer</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25029</link>
    <description>&lt;pre&gt;Hi,

I have defined an external interface to a C .dll
from the following header :

--header.h--
typedef __int64compteur;

compteur  fonction(void *ptr1, const float *ptr2, compteur nombre) ;

-external interface Interface defs :

compteur
&amp;lt;C: typedef long long compteur&amp;gt;

fonction: ptr1 with: ptr2 with: items
&amp;lt;C: compteur fonction(void *ptr1, const float * ptr2, compteur items)&amp;gt;
^self externalAccessFailedWith: _errorCode

When I call the function with this definition, the function fails and
the return value is erroneously instantiated with an (invalid)
CPointer (instead of the expected 64bit integer).
If I replace the typedef by the type long long as the return value,
Like this :

fonction: ptr1 with: ptr2 with: items
&amp;lt;C: long long fonction(void *ptr1, const float * ptr2, compteur items)&amp;gt;
^self externalAccessFailedWith: _errorCode

The function works well, and the return value is correct.
I don't understand why the first version fails ???
&lt;/pre&gt;</description>
    <dc:creator>Vincent Lesbros</dc:creator>
    <dc:date>2013-05-09T13:07:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25028">
    <title>Windows7LookExtraCairoPolicy</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25028</link>
    <description>&lt;pre&gt;
Hi,
 
I just published  a package called Windows7LookExtraCairoPolicy
 
It loads without hirks in a vanilla 7.9.1 image does not use any overrides and updates list and treeView selections.
 
Have fun,
 
Maarten,_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>maarten.mostert&lt; at &gt;stakepoint.com</dc:creator>
    <dc:date>2013-05-09T11:03:27</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25022">
    <title>[ANN] Gnome2 look</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25022</link>
    <description>&lt;pre&gt;Hi all,
I'd like to announce that I've published a look redesign matching Gnome2 
desktop. You can find it in UILooks-Gnome package in public repository.

Attached is a screenshot of VWnc 7.9.1 in Gnome2 look.

Gnome2 look adaptation is complete and stand-alone. All views and 
controllers are redesigned to match Gnome2. The package does not require 
any other look to be loaded. The look adds itself to settings menu and 
sets itself as default look for Linux and Solaris.

Bug reports are welcome.

Cheers and enjoy,
Milan Čermák
_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Milan Čermák</dc:creator>
    <dc:date>2013-05-05T07:42:48</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25021">
    <title>[ANN] JSONReader 1.17</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25021</link>
    <description>&lt;pre&gt;minor tweaks:

added jsonRead as unary implementation of JsonReader readFrom: aString
readStream

throw an error if writing a Dictionary with asJson if the key is not a
string (already a check on the read side; this was to prevent me from
writing a dictionary that I can't read)

JSONReaderTests updated to 1.2



--
View this message in context: http://forum.world.st/ANN-JSONReader-1-17-tp4685698.html
Sent from the VisualWorks mailing list archive at Nabble.com.
&lt;/pre&gt;</description>
    <dc:creator>Steve Cline</dc:creator>
    <dc:date>2013-05-04T19:59:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25020">
    <title>first MOOC about OOP with Smalltalk and Seaside?</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25020</link>
    <description>&lt;pre&gt;Dear Smalltalkers!

There is an initiative for funding the development of massive open online courses (moocs) by the "Stifterverband für die deutsche Wissenschaft"" (http://www.stifterverband.info/ueber_den_stifterverband/english/index.html).
You can get information about a running competition (MOOC PRODUCTION FELLOWSHIP) here: https://moocfellowship.org.
Following the link https://moocfellowship.org/submissions/objektorientierte-programmierung-von-web-anwendungen-von-anfang-an
YOU CAN VOTE for the course offered by me resp. the NORDAKADEMIE (www.nordakademie.de). For voting you have to register by Facebook or email only.

The MOOC we want to build will be based on a blended learning course we have been pursuing as a first year programming course under the headline "object oriented development of web applications" since a couple of years. During this class the students learn object oriented programming from the beginning using Smalltalk and Seaside.

Since the material of our blended learning course is in German the first version of the projected MOOC will be in German, too. Getting one of the awards should offer the possibility to build an English version later on.

I would be delighted if you could adjust our Smalltalk-MOOC project by voting for the course

https://moocfellowship.org/submissions/objektorientierte-programmierung-von-web-anwendungen-von-anfang-an

Thank you very much

Johannes Brauer

Prof. Dr.-Ing. Johannes Brauer
Dean of Computer Science Departement
Tel.: 04121 409030
Fax.: 04121 409040
e-mail: brauer&amp;lt; at &amp;gt;nordakademie.de
e-mal priv.: brauer&amp;lt; at &amp;gt;acm.org


________________________________


Staatlich anerkannte private Fachhochschule
NORDAKADEMIE
Gemeinnützige Aktiengesellschaft
Köllner Chaussee 11
25337 Elmshorn

Vorstand:
Prof. Dr. Georg Plate (Vorsitzender), Dipl.-Ing. Jörg Meier (stellv. Vorstand)

Vorsitzender des Aufsichtsrats:
Dr. h.c. Hans-Heinrich Bruns

Sitz:
Elmshorn, Amtsgericht Pinneberg, HRB 1682
&lt;/pre&gt;</description>
    <dc:creator>Johannes Brauer</dc:creator>
    <dc:date>2013-05-04T15:29:33</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25017">
    <title>xmlToSmalltalkBinding heteregeneous collection, item class based on element content</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25017</link>
    <description>&lt;pre&gt;Hi,

I'm trying to create an xmlToSmalltalkBinding to marshal/unmarshal
following 2 xml elements.
(In the context of parsing Google API Contact feeds)

*** XML Element 1 ****
xml1 := '&amp;lt;feed&amp;gt;
&amp;lt;entry&amp;gt;
&amp;lt;category name="user"/&amp;gt;
&amp;lt;firstName&amp;gt;Ivo&amp;lt;/firstName&amp;gt;
&amp;lt;lastName&amp;gt;Roefs&amp;lt;/lastName&amp;gt;
&amp;lt;/entry&amp;gt;
&amp;lt;/feed&amp;gt;'
 desiredObject := (Feed new)
entries: (User new firstName: 'Ivo'; lastName: 'Roefs'; yourself);
yourself

*** XML Element 2 ****
xml2 := '&amp;lt;feed&amp;gt;
&amp;lt;entry&amp;gt;
&amp;lt;category name="group"/&amp;gt;
&amp;lt;groupName&amp;gt;Smalltalkers&amp;lt;/groupName&amp;gt;
&amp;lt;/entry&amp;gt;
&amp;lt;/feed&amp;gt;'
 desiredObject := (Feed new)
entries: (Group new groupName: 'Smalltalkers'; yourself);
yourself
I started of with following binding description, but got stuck...
I can't figure out how to describe "entry" in the "feed" binding so that it
refers to both User an Group.
&amp;lt;schemaBindings&amp;gt;
&amp;lt;xmlToSmalltalkBinding targetNamespace="targetNamespace="urn:webservices"
 defaultClassNamespace="MyCorp"&amp;gt;
&amp;lt;object name="feed" smalltalkClass="Feed"&amp;gt;
&amp;lt;element name="entry" aspect="entries"
xpath="entry[category[&amp;lt; at &amp;gt;name='user']]"  maxOccurs="unbounded" minOccurs="0"
ref="entry"/&amp;gt;
&amp;lt;/object&amp;gt;
 &amp;lt;object name="user" smalltalkClass="User"&amp;gt;
&amp;lt;attribute name="firstName" ref="xsd:string"/&amp;gt;
&amp;lt;attribute name="lastName" ref="xsd:string"/&amp;gt;
&amp;lt;/object&amp;gt;
 &amp;lt;object name="group" smalltalkClass="Group"&amp;gt;
&amp;lt;attribute name="groupName" ref="xsd:string"/&amp;gt;
&amp;lt;/object&amp;gt;
&amp;lt;/xmlToSmalltalkBinding&amp;gt;
&amp;lt;/schemaBindings&amp;gt;

regards,
Ivo Roefs
_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Ivo Roefs</dc:creator>
    <dc:date>2013-05-03T14:37:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25013">
    <title>GLORP and DB2</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25013</link>
    <description>&lt;pre&gt;All,

I am working in a project which is in oracle and trying to make it to DB2
compatible. The GLORP for oracle we are using is very old. I have added the
DB2 GLORP support from VW7.8 to the existing code and getting the error
Glorp.DB2Sequence(Object)&amp;gt;&amp;gt;doesNotUnderstand: tableToSelectFromIn:for:  .

 The selector tableToSelectFromIn:for: is implemented only in PGSequence
but not in DB2Sequence. Am I missing something or a bug?

Also I loaded the glorp in  a VW7.9.1 vanilla image and checked to see any
of my code overloaded during the porting, but I don't think.  If I could
implement tableToSelectFromIn:for: in DB2Sequence, my problem may get
resolved. Please suggest.



Thanks in advance,

Suresh

Glorp.DB2Sequence(Object)&amp;gt;&amp;gt;doesNotUnderstand:
Receiver:
 a Glorp.DB2Sequence
Instance Variables:
 reservedNumbers = an OrderedCollection[0]
 name = 'SEQUENCE'
tableSelectCommand = nil
 schema = nil
 count = 0
sequenceIncrement = 1
 accessProtect = a Semaphore[0]
Arguments:
t1 = a Message with selector: #tableToSelectFromIn:for: and arguments: #(a
Glorp.GlorpSession a Glorp.DatabaseTable(TSK_DESC))
Temporaries:
t2 = a MessageNotUnderstood
 t3 = nil
Context PC = 25

----------------------------------------------------------------------
Glorp.DB2Sequence(Glorp.NamedSequence)&amp;gt;&amp;gt;reserveViaTableSelect:in:for:
Receiver:
a Glorp.DB2Sequence
Instance Variables:
reservedNumbers = an OrderedCollection[0]
 name = 'SEQUENCE'
 tableSelectCommand = nil
schema = nil
 count = 0
 sequenceIncrement = 1
accessProtect = a Semaphore[0]
Arguments:
t1 = 1
 t2 = a Glorp.GlorpSession
 t3 = a Glorp.DatabaseTable(TSK_DESC)
Temporaries:
 t4 = nil
 t5 = nil
Context PC = 7

----------------------------------------------------------------------
Glorp.DB2Sequence(Glorp.NamedSequence)&amp;gt;&amp;gt;reserveSequenceNumbers:in:for:
Receiver:
 a Glorp.DB2Sequence
Instance Variables:
 reservedNumbers = an OrderedCollection[0]
 name = 'SEQUENCE'
tableSelectCommand = nil
 schema = nil
 count = 0
sequenceIncrement = 1
 accessProtect = a Semaphore[0]
Arguments:
t1 = 1
 t2 = a Glorp.GlorpSession
t3 = a Glorp.DatabaseTable(TSK_DESC)
Temporaries:
t4 = 1
 t5 = nil
Context PC = 18

----------------------------------------------------------------------
optimized [] in [] in Glorp.UnitOfWork&amp;gt;&amp;gt;reserveSequenceNumbers
Receiver:
 an UndefinedObject
Arguments:
t4 = a Glorp.DB2Sequence(SEQUENCE)
Temporaries:
.t3 = an OrderedCollection[1]
 .self = a Glorp.UnitOfWork
 .t2 = a Glorp.DatabaseTable(TSK_DESC)
Context PC = 12

----------------------------------------------------------------------
OrderedCollection&amp;gt;&amp;gt;do:
Receiver:
 an OrderedCollection
Instance Variables:
 firstIndex = 1
 lastIndex = 1
Arguments:
 t1 = BlockClosure [] in [] in Glorp.UnitOfWork&amp;gt;&amp;gt;reserveSequenceNumbers
Temporaries:
t2 = 1
 t3 = 1
Context PC = 17

----------------------------------------------------------------------
optimized [] in Glorp.UnitOfWork&amp;gt;&amp;gt;reserveSequenceNumbers
Receiver:
 an UndefinedObject
Arguments:
 t2 = a Glorp.DatabaseTable(TSK_DESC)
t3 = an OrderedCollection[1]
Temporaries:
.self = a Glorp.UnitOfWork
Context PC = 13

Thanks,
-Suresh
_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Suresh Kumar</dc:creator>
    <dc:date>2013-05-02T16:20:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25010">
    <title>VW support for outlook  ...</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25010</link>
    <description>&lt;pre&gt;A client has asked us to interface between our systems list of 
"Contacts" and the MS-Outlook address-book.

I know outlook has a comprehensive API.

Has anyone done anything like this???

&lt;/pre&gt;</description>
    <dc:creator>Dennis Smith</dc:creator>
    <dc:date>2013-05-02T12:17:28</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25009">
    <title>InputFieldView catching keystroke change?</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25009</link>
    <description>&lt;pre&gt;Hello All,

Is there an event to catch intermediate (keystroke) changes on an InputFieldView?

I just see relevent events #changed/#changing that trigger only for the losingFocus case. Or maybe there is way to configure the widget to trigger in this regard?

Thank You,

gp_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Gary Peterson</dc:creator>
    <dc:date>2013-05-02T06:40:51</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25008">
    <title>VW7.9 Publish binary or not in Store</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25008</link>
    <description>&lt;pre&gt;What are the pros and cons for publishing binary or not in Store?
What is the best practice?

Thanks,
Aik-Siong Koh



--
View this message in context: http://forum.world.st/VW7-9-Publish-binary-or-not-in-Store-tp4684885.html
Sent from the VisualWorks mailing list archive at Nabble.com.
&lt;/pre&gt;</description>
    <dc:creator>askoh</dc:creator>
    <dc:date>2013-05-02T02:44:33</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25004">
    <title>[ANN] Regex11 version 1.4</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25004</link>
    <description>&lt;pre&gt;All, 
I have just published  Regex11 version 1.4 the Cincom Public Store Repository &amp;lt;http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Public+Store+Repository&amp;gt; .
Compared with previous version (1.3.4) it has the following new features.

VERSION 1.4 (April 2013)
1. Support for explicitely numbered repetitions, with 39 tests added
2. Tests can be fired from the Launcher tools menu
3. All tests passed
4. Updated Launcher menu items to enable logging during tests
5. Enhanced the test tools to collect and re-run test failures
6. Testing mechanics enhanced to support repeating capturing groups

The documentation contains the following new fragment

Repetitions can also be represented explicitely using numbers
- Exactly three occurences: {3}
- Two to five occurences: {2,5}
- Three or more occurences: {3,}
- Zero, one or two occurences: {,2}

'abbbc' matchesRegex: 'ab{3}c' -- true
'abc' matchesRegex: 'ab{2,5}c' -- false: need at least two b
'abbbbbbc' matchesRegex: 'ab{2,5}c'-- false: may not have more than five b
'abbbc' matchesRegex: 'ab{2,5}c'-- true
'abbbbbbc' matchesRegex: 'ab{3,}c'-- true
'ac' matchesRegex: 'ab{,2}c'-- true

Feedback is welcome. Depending on the feedback, Cincom may include this new version on the release media.

Enjoy,
Michel.

__________________________________________
Michel Bany
Cincom Systems S.A.
Cours des Bastions 3 bis
1205 Genève
Switzerland
Tel.  +41 (0) 223 105 879
Skype+33 (0) 970 444 870
Mobile+33 (0) 608 933 306
Skypemichel.bany
http://www.cincom.com/smalltalk
mailto:mbany&amp;lt; at &amp;gt;cincom.com

_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Bany, Michel</dc:creator>
    <dc:date>2013-05-01T15:30:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25002">
    <title>[ANN] DebuggerProtocolPrompt</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/25002</link>
    <description>&lt;pre&gt;All,

I have just released
DebuggerProtocolPrompt&amp;lt;https://github.com/randycoulman/DoubleAgents&amp;gt;,
an
extension that prompts for a method protocol when defining a new method in
the Visualworks debugger.

This is a simple extension that overrides one method in DebuggerService. If
Cincom would like to adopt this package in someform for inclusion in the
base Visualworks distribution, I hereby giveexplicit permission to do so.

DebuggerProtocolPrompt is available in the Cincom Public Store
Repository&amp;lt;http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Public+Store+Repository&amp;gt;.
A
snapshot of the current version is also
onGitHub&amp;lt;https://github.com/randycoulman/DebuggerProtocolPrompt&amp;gt;
.

The full release announcement is on my blog, Courageous
Software&amp;lt;http://randycoulman.com/blog/2013/05/01/debuggerprotocolprompt/&amp;gt;
.

It is licensed under the MIT license.

Thanks,
Randy
&lt;/pre&gt;</description>
    <dc:creator>Randy Coulman</dc:creator>
    <dc:date>2013-05-01T14:29:06</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24998">
    <title>Browsers and navigation</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24998</link>
    <description>&lt;pre&gt;Since Netscape 1, there was buttons to navigate from the current page to
the previous,
and to the next if we had go back...
I couldn't find this function in code browsers in Smalltalk.
Is there one ?
_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Vincent Lesbros</dc:creator>
    <dc:date>2013-04-30T21:36:55</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24997">
    <title>FloatArray(s) in FixedSpace</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24997</link>
    <description>&lt;pre&gt;Good night list !!
some reading, for insomniacs,
and 3 questions :

I did read carefully DLL &amp;amp; C Connect User's Guide

S I M P L I F I C A T I O N T H R O U G H I N N O V A T I O N ®

VisualWorks 7.9

P46-0112-10


 *I have to do interfaces with DLL implying callbacks, and dealing with
large amount of floating points values organised into arrays.*

*The callback running time is critical, so I try to minimize the time
exchanging data between C and Smalltalk environment.*

*I found in the OpenGL package, the class FloatArray, which, at first look,
seemed to be helpful in my situation : I can pass, directly an instance of
OpenGL.FloatArray as a float * argument of a C function,*

*example (from the OpenGL package )*


 *OpenGL.FloatArray*

*setUniform: index*

* gl Uniform1fv: index with: self size with: self.*

* OpenGL.gl CheckError*


 *Uniform1fv: location with: count with: value*

* &amp;lt;C: void glUniform1fv(GLint location, GLsizei count, const GLfloat *
value)&amp;gt;*

* ^self externalAccessFailedWith: _errorCode*


 *The const GLfloat * value « is » a FloatArray.*


 *It is working, but I have some doubt :*

*There is a strange definition in class FloatArray :*


 *FloatArray class*

*newInFixedSpace: anInteger*


 * ^super basicNew: anInteger * 4*


 *Why the #newInFixedSpace: has been redefined ?*


 *I try some test allocating the FloatArray in the heap by calling
gcCopyToHeap :*


 * | x xPtr |*

* self halt.*

* x := OpenGL.FloatArray new: 150.*

* 1 to: 150 do: [:index | x at: index put: index ].*

* xPtr := x gcCopyToHeap.*


 *And using the debugger I can see that the resulting malloc allocates 4
times he memory needed.*

*(copyToHeap: #malloc) inherited by IntegerArray is not appropriate for
FloatArray(s).*

*as it is clearly stated in the doc :*


 *«  The heap copy protocol cannot copy an arbitrary Smalltalk object (or*

*object graph) to the heap. It is designed to copy scalar objects*

*(numbers, strings, and byte arrays). The classes whose instances can be
copied directly with this protocol are as follows: Integer, Double, Float,
Character, ByteArray, ByteEncodedString (and its subclasses),*

*IntegerArray, TwoByteString, UninterpretedBytes, and WordArray. »*

*
*

*« You must override the implementation of copyToHeap if you want to*

*write specialized code to copy instances of one of your application*

*classes to the heap. »*


 I did some suplementary tests :


 I create a simple dll, with a function that returns the address we pass to
it :


 .h

const float * FloatIdentite(const float *source);


 .c

const float * DLL_EXPORT FloatIdentite(const float *source)

{

return source;

}


 And call it from Smalltalk :


 | x itf ptr1 ptr2 |

x := OpenGL.FloatArray new: 900000.


 itf := self new. "self is the ExternalInterface class"

ptr1 := itf FloatIdentite: x.


 ObjectMemory globalGarbageCollect.


 ptr2 := itf FloatIdentite: x.


 ^ptr1 -&amp;gt; ptr2

 "a CPointer {FF610028} (const float * ) -&amp;gt; a CPointer {FCB50028} (const
float * )"


 The address of the FloatArray x as moved between the two calls (because
the FloatArray is not in the FixedSpace).


 So, I try to allocate the FloatArray in the FixedSpace :


 | x itf ptr1 ptr2 |

x := OpenGL.FloatArray newInFixedSpace: 900000.


 itf := self new.

ptr1 := itf FloatIdentite: x.


 ObjectMemory globalGarbageCollect.

ptr2 := itf FloatIdentite: x.


 ^ptr1 -&amp;gt; ptr2

"a CPointer {FE2314F4} (const float * ) -&amp;gt; a CPointer {FCC3A6FC} (const
float * )"


 The result is the same because of the redefinition of #newInFixedSpace:

The same problem arise when I send an #asFixedArgument message.


 | x |

x := OpenGL.FloatArray newInFixedSpace: 900000.

x asFixedArgument isFixedArgument


 → false !!!


 The first question is : Is there a way to allocate FloatArray(s) in
FixedSpace ? or why not ?


 Actually, I use a gcMalloc: and the « copyAt: offset from: byteLikeObject
size: count startingAt: startIndex » to transfer bytes from the « moving »
FloatArray to a fixed float array in the heap.


 | x t1 gcPtr t2 z t3 |

"1/ création d'un tableau de flottants et affectation des valeurs"

x := OpenGL.FloatArray new: 900000.


 t1 := Time microsecondsToRun: [

1 to: 900000 do: [:index | x at: index put: index ]].


 "2/ allocation des octets dans le tas"

gcPtr := CLimitedPrecisionRealType float gcMalloc: 900000.

 "3/ transfert"

t2 := Time microsecondsToRun: [

gcPtr copyAt: 0

from: x

size: 900000 * 4

startingAt: 1 ].


 "4/ création d'un nouveau tableau de flottants Smalltalk et transfert en
sens inverse."

z := OpenGL.FloatArray new: 900000.

t3 := Time microsecondsToRun: [

gcPtr copyAt: 0

to: z

size: 900000 * 4

startingAt: 1 ].


 ^ (Array "with: x with: z" with: t1 with: t2 with: t3)


 "→ #(71588 1263 513)"


 *My second question is :*


 *Am I obliged to copy my float arrays before passing them to the C
functions ? *

*If I get the address of a FloatArray with the « FloatIdentite » function,
at any time between two Smalltalk instructions a GC can occur, and move the
table elsewhere. *

*Is there a mean to « freeze » the GC, while doing a critical opération ?*



Third point (subsidiary question).

The increment method for CPointer(s) is very slow ;

Incrémenter un pointeur en langage C est juste une seule instruction en
langage d'assemblage.

Incremeting a CPointer in Smalltalk invokes : #+= 1


 | floatPtr |

self halt.

floatPtr := CLimitedPrecisionRealType float gcMalloc: 1.

floatPtr += 1.


 CPointer

+= offset

"Increment the receiver by offset elements. The receiver is answered with
its referent address properly adjusted. The pointer value will be adjusted
by (offset * size of the receiver's referent type). Please see the class
comments for more details."


 theDatum := theDatum + (type referentType dataSize * offset)


 CPointerType

referentType

"Answer the type the receiver references."


 ^referentType


 CScalarType

dataSize

"Answer the number of bytes occupied by a type instance of the receiver."


 ^numBits + 7 bitShift: -3


 The gain of time if we assume the a float is 4 bytes and we redefine a
special method to increment the pointer is about 11% :


 incrementSpecial

theDatum := theDatum + 4



 Clearly, a loop with a CPointer and increment message in not the good way
to speed up the copy process.


 Question : why this implementation of #copyToHeap: in IntegerArray ?

Is it just to check one by one, if the integer value fits into the C
interger limits ?


 *copyToHeap: mallocSelector *

* "Copy the receiver to the external heap. The argument is a method *

* selector that accepts one argument and determines how to allocate *

* data for the receiver -- it is typically one of #malloc: or #malloc16:. *

* The selector's argument is the number of objects of the receiver's *

* baseCType to allocate. Answer a pointer to the data. If the allocation *

* fails a primitive failed signal is raised."*

*
*

* | aPointer currentPointer size |*

* aPointer := self baseCType referentType perform: mallocSelector with:
self basicSize.*

* currentPointer := aPointer copy.*

* size := self size.*

* 1 to: size*

* do: *

* [:index | *

* currentPointer contents: (self at: index).*

* currentPointer += 1].*

* ^aPointer*


Thanks for any suggestion.

Vincent
_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Vincent Lesbros</dc:creator>
    <dc:date>2013-04-30T21:21:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24996">
    <title>[ANN] DoubleAgents: A Test Double Library for Visualworks</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24996</link>
    <description>&lt;pre&gt;All,

I have just released
DoubleAgents&amp;lt;https://github.com/randycoulman/DoubleAgents&amp;gt;,
a library for creating "test doubles" in Visualworks Smalltalk.

DoubleAgents is available in the Cincom Public Store
Repository&amp;lt;http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Public+Store+Repository&amp;gt;.
A
snapshot of the current version is also on
GitHub&amp;lt;https://github.com/randycoulman/DoubleAgents&amp;gt;.
The Readme file on GitHub includes high-level documentation if you'd like
more information before diving in.

The full release announcement is on my blog, Courageous
Software&amp;lt;http://randycoulman.com/blog/2013/04/30/double-agents-a-test-double-library-for-visualworks-smalltalk/&amp;gt;
.

Thanks,
Randy
&lt;/pre&gt;</description>
    <dc:creator>Randy Coulman</dc:creator>
    <dc:date>2013-04-30T14:16:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24984">
    <title>dumb question (initialize-release)</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24984</link>
    <description>&lt;pre&gt;Hi,

this perhaps a stupid question, but, very basic :

When I define a class, subclass of Object,
define an initialize method,
redefine the new message to call the initialize,

and
define a release method.

If I create an instance, it is initialized, well.
but if I cut all the links to this instance and I call the garbage collector,
I thought that the "release" method will be called.
But, the release method is not called.

Is this normal ?
When the release message is sent ?

CF. Code in attachement.
_______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>Vincent Lesbros</dc:creator>
    <dc:date>2013-04-28T12:15:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24978">
    <title>DuplicatePrimaryKeyException</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24978</link>
    <description>&lt;pre&gt;

Hi,
The Task object I map to Glorp is a subclass off AssociationTreeWithParent

 
 
Smalltalk defineClass: #Task
 superclass: #{UI.AssociationTreeWithParent}
 
As Tasks are linked together with various relations ships both parent child and different end to start relationships they and up with an almost unlimited level of proxied relationships.
 
Now when Glorp checks whether the Cache contains a Task Object with the method 
 

 
includesKey: key as: anObject
 "Return true if we include the object, and it matches the given object. If we include a different object with the same key, raise an exception. Don't listen to any expiry policy"
 | item value |
 item := self basicAt: key ifAbsent: [^false].
 value := policy contentsOf: item.
 value == anObject ifFalse: [
 (DuplicatePrimaryKeyException new: anObject existing: value) signal].
 ^true.
 
The comparaison value == anObject  seem to return false because of the lower level proxy differences. (and hash values are sometimes different to ?!)
 
 
This has given me lots of problems as most of the time I have to use refeshed reads in order not to have duplicate errors. Meaning creating a seperate Object with a refreshed read, updating it and then refreshing the original one. In the end instead of doing a single update I refesh a whole number of related things, then I update and then I reread all these things again, ending up very inefficient in database trafic having way to much code.
 
No if I read all the comments in "isNew: anObject " I potentially have the impression that I might have hit something unfinished here ?!?
 

isNew: anObject 
 "When registering, do we need to add this object to the collection of new objects? New objects are treated specially when computing what needs to be written, since we don't have their previous state"
 
 | key descriptor |
 (currentUnitOfWork notNil and: [currentUnitOfWork isRegistered: anObject]) ifTrue: [^false].
 descriptor := self descriptorFor: anObject.
 descriptor isNil ifTrue: [^false].
 "For embedded values we assume that they are not new. This appears to work. I can't really justify it."
 self needsWork: 'cross your fingers'.
 descriptor mapsPrimaryKeys ifFalse: [^false].
 
 key := descriptor primaryKeyFor: anObject.
 
 key isNil ifTrue: [super halt.   ^true].
 "If the cache contains the object, but the existing entry is due to be deleted, then count this entry as a new one being added with the same primary key (ick) as the old one"
 ^[(self cacheContainsObject: anObject key: key) not]
 on: DuplicatePrimaryKeyException
 do: [:ex |
 (currentUnitOfWork notNil and: [currentUnitOfWork willDelete: ex existingObject]) 
 ifTrue: [
 self cacheRemoveObject: ex existingObject.
 ex return: true]
 ifFalse: [ex pass]].


 
I am now experimenting with = comparaisons instead of == comparisons, not sure this is the way to doit though.


Any hints ?
 
Regards,
 
&amp;lt; at &amp;gt;+Maarten,
 
 _______________________________________________
vwnc mailing list
vwnc&amp;lt; at &amp;gt;cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
&lt;/pre&gt;</description>
    <dc:creator>maarten.mostert&lt; at &gt;stakepoint.com</dc:creator>
    <dc:date>2013-04-27T13:30:40</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24977">
    <title>VisualWorks startup sequence</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24977</link>
    <description>&lt;pre&gt;Hi:

I would like to know what happens when I start VW
visual.exe visual.im
up to when the VisualLauncher is ready for user interactions.

A link to documentation would be great. A high level description and some
startup code to read would be good.

Similarly, what happens when I end my VW with "Save and Exit"?

Thanks,
Aik-Siong Koh



--
View this message in context: http://forum.world.st/VisualWorks-startup-sequence-tp4683968.html
Sent from the VisualWorks mailing list archive at Nabble.com.
&lt;/pre&gt;</description>
    <dc:creator>askoh</dc:creator>
    <dc:date>2013-04-27T12:21:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24971">
    <title>associate visual with .im files on Ubuntu?</title>
    <link>http://comments.gmane.org/gmane.comp.lang.smalltalk.vwnc/24971</link>
    <description>&lt;pre&gt;Anyone know the magic incanttions needed to associate ~/vw7.9.1/bin/linux86/vwlinux86gui with .im files on Ubuntu 12.04, so that you can double click a .im file to open it up?

Thx for any tips,
Ken G. Brown
&lt;/pre&gt;</description>
    <dc:creator>Ken G. Brown</dc:creator>
    <dc:date>2013-04-26T20:03:24</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.smalltalk.vwnc">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.smalltalk.vwnc</link>
  </textinput>
</rdf:RDF>
