On Fri, Jun 2, 2017, 17:05 Steffen Märcker <merk...@web.de> wrote: > Dear all, > > thanks for the many suggestions. I didn't had time to test all > import/export ways yet. But for now, I can report on two: > > 1) NGFileOuter > Unfortunately It raised several MNUs in my image. I'll investigate them > later. > > 2) FileOut30 (VW Contributed) > I was able to file out the code except for the package definition. > Replacing {category: ''} in the class definitions with {package: > 'Transducers'} fixed that. However, methods that extend existing classes > did not end up in the Transducers package. Is there a similar easy change > to the file-out making that happen? Also I'd like to add the package > comment if that's possible. > > Most things appear to work as far as I can see. Two exceptions: > 1) Random is a subclass of Stream in VW and in Pharo it is not. Hence, > I'll have to copy some methods from Stream to Random. > 2) I used #beImmutable in VW but I couldn't yet figure out how to make > objects immutable in Pharo. >
#beReadOnlyObject. Pharo 6.1 and onwards. #beWritable to revert. > However, until the tests are ported, I cannot guarantee. Porting the test > suite will be another beast, since I rely on the excellent mocking/stubbing > library DoubleAgents by Randy Coulman. I am not sure how I will handle > that. In general, I think it would be really worth the effort to be ported > to Pharo, too. DoubleAgents is pretty powerful and produces easy to read > and understand mocking/stubbing code. Personally, I prefer it clearly, > e.g., over Mocketry (no offence intended!). > > Attached you'll find the file-out that I loaded into Pharo. The issues > above are not addressed yet. However, the following example works: > > | scale sides count collect experiment random samples coin flip | > > scale := [:x | (x * 2 + 1) floor] map. > sides := #(heads tails) replace. > count := 1000 take. > > collect := [:bag :c | bag add: c; yourself]. > experiment := (scale * sides * count) transform: collect. > random := #(0.1 0.3 0.4 0.5 0.6 0.7 0.8 0.9). > > samples := random > > reduce: experiment > init: Bag new. > > samples := random > > transduce: scale * sides * count > reduce: collect > init: Bag new. > > coin := sides <~ scale <~ random. > > flip := Bag <~ count. > > samples := flip <~ coin. > > > Best, Steffen > > > > Am .06.2017, 08:16 Uhr, schrieb Stephane Ducasse <stepharo.s...@gmail.com > >: > > There is a package for that NGFileOuter or something like that on cincom >> store. >> We used it for mobydic code. >> >> On Wed, May 31, 2017 at 6:35 PM, Alexandre Bergel < >> alexandre.ber...@me.com> >> wrote: >> >> If I remember correctly, there is a parcel in VisualWorks to export a file >>> out (Squeak format). >>> >>> @Milton, can you give a hand to Steffen? >>> >>> Alexandre >>> -- >>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >>> Alexandre Bergel http://www.bergel.eu >>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >>> >>> >>> >>> On May 31, 2017, at 10:32 AM, Steffen Märcker <merk...@web.de> wrote: >>> >>> Thanks for the encouraging response! First question: Which is the >>> recommended (friction free) way to exchange code between VW and Pharo? >>> >>> Cheers! >>> Steffen >>> >>> Am .05.2017, 16:22 Uhr, schrieb Alexandre Bergel < >>> alexandre.ber...@me.com >>> >: >>> >>> I second Sven. This is very exciting! >>> >>> Let us know when you have something ready to be tested. >>> >>> Alexandre >>> >>> >>> >>> >>>