[Pharo-users] Pharo VM v10.2.1
Hi, there is a new release of the VM ## v10.2.1 * Adding the missing tty.c file in the packaging. by @tesonep in https://github.com/pharo-project/pharo-vm/pull/771 * Do not allow comparing objects of different types by @guillep in https://github.com/pharo-project/pharo-vm/pull/772 * Prepare release 10.2.1 by @guillep in https://github.com/pharo-project/pharo-vm/pull/773 * Constant conversion warning by @guillep in https://github.com/pharo-project/pharo-vm/pull/777 * Fix tautological-pointer-compare warnings by @guillep in https://github.com/pharo-project/pharo-vm/pull/775 * Removed Cogit>>#voidNSSendCache: by @jordanmontt in https://github.com/pharo-project/pharo-vm/pull/776 * Re-enable incompatible-function-pointer-types warning by @guillep in https://github.com/pharo-project/pharo-vm/pull/778 * Removed unused functions from the C written by hand by @jordanmontt in https://github.com/pharo-project/pharo-vm/pull/780 * Fix function pointer comparison warning by @guillep in https://github.com/pharo-project/pharo-vm/pull/783 * Fix -return-type warnings by @doste in https://github.com/pharo-project/pharo-vm/pull/781 * Fix shift-negative-value warning and reenable warning by @guillep in https://github.com/pharo-project/pharo-vm/pull/785 * Remove warnings c compiler by @PalumboN in https://github.com/pharo-project/pharo-vm/pull/789 * Remove StackInterpreter interruptPending instance variable by @jordanmontt in https://github.com/pharo-project/pharo-vm/pull/793 * Do not use asserta: in a statement by @guillep in https://github.com/pharo-project/pharo-vm/pull/788 * Bump to MacOS 11 and above by @guillep in https://github.com/pharo-project/pharo-vm/pull/792 * Moving pharo.signatures files for OSX Bundle to Resources folder by @tesonep in https://github.com/pharo-project/pharo-vm/pull/770 * Do not retain any selectors in CogAbstractInstruction by @RenaudFondeur in https://github.com/pharo-project/pharo-vm/pull/798 * remove warning because of type and unsigned shift issues by @RenaudFondeur in https://github.com/pharo-project/pharo-vm/pull/800 * add tests for type harmonization by @RenaudFondeur in https://github.com/pharo-project/pharo-vm/pull/807 * Primitive format by @doste in https://github.com/pharo-project/pharo-vm/pull/802 * Adding an implementation of the aio.c using EPOLL in Linux. by @tesonep in https://github.com/pharo-project/pharo-vm/pull/805 * Fixing warnings that are errors in newer versions of clang by @tesonep in https://github.com/pharo-project/pharo-vm/pull/813 ## New Contributors * @RenaudFondeur made their first contribution in https://github.com/pharo-project/pharo-vm/pull/798 **Full Changelog**: https://github.com/pharo-project/pharo-vm/compare/v10.2.0...v10.2.1 More Information: https://github.com/pharo-project/pharo-vm/releases/tag/v10.2.1 -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: [Pharo-dev] The results of the Pharo Browser usage survey are available
That is a really cool survey, thanks for the work!!! On Tue, Sep 5, 2023 at 10:11 PM Koen De Hondt < k...@all-objects-all-the-time.st> wrote: > Dear Pharo users and developers, > > Last week at ESUG’23 I presented the results of the survey on the usage of > the Pharo Browser. Half an hour was not enough to show and discuss all > questions and answers. You find all results on my blog: > https://all-objects-all-the-time.st/#/blog/posts/3. If you have > questions, comments, or suggestions, please do not hesitate to send me a > message. > > Best regards, > Koen > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Pharo VM Release - v10.0.5
Hello, we have released a new version of the Pharo VM for Pharo 11. This VM is accessible right now from Zero-Conf, updating it in the Pharo Launcher or using the usual downloads (as described in pharo.org/download). Also, OBS packages are ready to be updated using your distribution package manager. This is the new VM that will be stable for Pharo 11 release and Pharo 12 alpha, it is also compatible with Pharo 10 images but it is not the default for Pharo 10. Changelog * Testing scavenger tenuring by @PalumboN in https://github.com/pharo-project/pharo-vm/pull/588 * Deleting Pharo image from the VM repo by @jordanmontt in https://github.com/pharo-project/pharo-vm/pull/591 * Cleaning Up Third Party Libraries by @tesonep in https://github.com/pharo-project/pharo-vm/pull/581 **Full Changelog**: https://github.com/pharo-project/pharo-vm/compare/v10.0.4...v10.0.5 Thanks a lot, and any doubt please let us know. Cheers, Pablo on behalf of the whole Pharo team. -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Pharo VM Release - v10.0.0
Hello, we have released a new version of the Pharo VM for Pharo 11. This VM is accessible right now from Zero-Conf, updating it in the Pharo Launcher or using the usual downloads (as described in pharo.org/download). OBS packages are still in work and will come later. This is the new VM that will be stable for Pharo 11 release, it is also compatible with Pharo 10 images but it is not the default for Pharo 10. It has a lot of changes and improvements, as it is the result of more than a year and a half of improvements, clean-ups, and bug fixes. Changelog v10.0.0 - Slang (Smalltalk to C Translator) - Introducing a C AST to ease the generation of C Code - Having a Pretty Printer for C AST - Translation Tests - Fixing Translation Issues - Clear separation between Slang and VM code - Improving Cast generation - Clean Up: - Remove Old Bytecode Set - Remove Old Block Implementation - Simplification of the Primitives - Removing Unused / Old Code / Dead Code - Cleanup / Removal of Old Unused primitives - Removing Old FFI Implementation - Removing MT Experiment from the code base (Kept in own branch) - Fixing Compilation Warnings - Improving Type annotations to fix bugs in the translation / compilation - Removing Conditional Code on Old Configurations / Features - Renaming Concepts to be inline with Common terminology - Remove Newspeak, Multiple Bytecode and Old Memory Managers - Removing Unused Plugins - Tests - GNUification Tests - Tests for Math primitives including overflow and conversion testing. - Tests for comparison primitives (Equals / Not Equals / Less than / Less or Equals / Greater Than / Greater or Equals) - Testing Primitives for objects Pinned in Memory - Testing Math Primitives for Immediate Classes (SmallFloats / SmallIntegers) - Improving Simulation Infrastructure - Using Sista Bytecode in all Tests - Updating Unicorn version - Improving Machine Code emulation - Testing Image Read / Image Write - Using the same memory map in Tests and Execution - Testing Ephemerons - Become Primitives - Ephemeron - Fix for large ammounts - Make it available - Testing Signal Finalizations - Fixing Become Errors. - Fixing XRay Primitive - Single-Instruction Multiple-Data (SIMD) initial Support: - Initialization of new objects using SIMD (ARM64) - Adding Bytecode Extensions to support SIMD instructions - Adding Vector Registers - Vector Register bytecodes - Auto Localization of Interpreter loop variables and edge detection simplifying development and minimizing code - ImageReader / ImageWriter reification needed for Permanent Space. - Improving the Memory Map of the VM (Using constant positions) - Dependencies Improvements Thanks a lot, and any doubt please let us know. Cheers, Pablo on behalf of the whole Pharo team -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Pharo VM Release - v9.0.21
Hello, I have released a new version of the Pharo VM for Pharo 9, Pharo 10 and Pharo 11. This VM is accessible right now from Zero-Conf, updating it in the Pharo Launcher or using the usual downloads (as described in pharo.org/download). This version includes a series of bug fixes and upgrades on the third-party libraries. Changelog: - Implementing High resolution clock for ARM64 (Used during profiling) - Updating third party libraries for all the graphic layer. - Fixing a performance regression on the allocation of opcodes and fix-ups. Cleaning only the ones that are going to be used. Like this, this version has the same speed than before when allocating in the stack. - Correctly handling the encoding of the command line arguments of the VM (Windows) - Allocating the opcodes and fixup structs only once and reusing them (Reducing risk of C Stack Overflow) Thanks a lot, and any doubt please let me know. Cheers, Pablo on behalf of the whole Pharo team. -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Pharo VM Release - v9.0.13
Hello, I have released a new version of the Pharo VM for Pharo 9 and Pharo 10. This VM is accessible right now from Zero-Conf, updating it in the Pharo Launcher or using the usual downloads (as described in pharo.org/download). This version includes a series of bug fixes. Changelog: - Correct handling OOB (Out of Band Data) in Window - Blocking signals while signalling semaphores to avoid deadlocks caused by signal handlers - Make MAXHOSTNAMELEN at least 256: improving resolution of names in Linux - Improving VM Simulator Machine debugger - Integrating Processor Simulator for RISCV - Using a new SDL2 version built for OSX Mojave compatibility Thanks a lot, and any doubt please let me know. Cheers, Pablo on behalf of the whole Pharo team. -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Pharo VM Release - v9.0.11
Hello, I have released a new version of the Pharo VM for Pharo 9 and Pharo 10. This VM is accessible right now from Zero-Conf, updating it in the Pharo Launcher or using the usual downloads (as described in pharo.org/download). This version includes a series of minor bug fixes. Changelog: - Include FloatArrayPlugin in the build - Updating SDL2 to 2.0.18 for OSX X86_64 - Using Pharo 10 image as VMMaker image - Fixing issue in message counting on non-JIT VM Thanks a lot, and any doubt please let me know. Cheers, Pablo on behalf of the whole Pharo team. -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: uFFI: Calling conventions?
Hi All, The answer is yes and no. Let's go step by step. To declare the calling convention a class can override the method #ffiCallingConvention. Returning a Symbol representing the Calling Convention. Yesterday we have implemented the image side part in P10 to correctly honour the calling convention. I have implemented it for X86 but this can be easily extended to ARM32 (ARM64 has a single calling convention). If this fix is useful, it can be backported to P9. However, this only works for X86_64 as it depends on the new FFI implementation. We still do not have an X86 32 bits VM, it is possible to compile it from sources, but we are not distributing it. In X86_64 only exists the Windows and the GNU calling convention, we are supporting both. On the other hand, you are asking about ThisCall. This calling convention is only relevant in 32bits systems. What is your target system/library? Does it not exist as 64-bit library? Thanks On Tue, Aug 24, 2021 at 9:33 PM egarrulo wrote: > Hi all, > > I haven't found any information on calling conventions in the "Unified > FFI - Calling Foreign Functions from Pharo" manual. What conventions are > available, please? > > If the ThisCall[1] convention isn't supported, could it be implemented > in code with some boilerplate? > > Thank you. > > -- > > [1] ThisCall works like StdCall, but the first parameter - the "this" > pointer - is passed via the ECX register. > > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: Pharo concurrency: select on socket or file IO
Hi, Socket implementation in the VM already handles Async IO operations. The execution model in Pharo is intended to have many concurrent green threads (they are not OS threads, they are handled by Pharo VM). These green threads are called processes in Pharo. Pharo Green threads are quite cheap to create and use, and the context switch of them is quite cheap also. The programming model of Pharo is intended to have many concurrent green threads, without caring if they block in tIO operations. These block green threads are handled by the VM and the VM continue executing useful code. For orchestrating and communication between the green threads you can use low-level synchronization as semaphores and mutex, but also there is a rich library (Taskit) for using Asynchronous tasks, Callables and Futures. Cheers, Pablo On Thu, Jul 22, 2021 at 8:57 AM wrote: > Can the Pharo VM or a library do a “select” on a collection of processes > waiting on a socket or file IO? Something like > https://man7.org/linux/man-pages/man2/select.2.html, or > https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-select > . > > Say I have a bunch of forked processes and some will get blocked waiting > for IO. I would put the blocked connections/processes in a collection and > non-blocked processes can continue to do useful work. At some appropriate I > would do a select on the blocked processes and resume those that are done. > > Vince > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: Pharo 9.0 vm same-as Pharo 8.0 ?
Thanks for the report, I will update the page. On Mon, Jul 19, 2021 at 6:34 PM Isaac Gouy via Pharo-users < pharo-users@lists.pharo.org> wrote: > On Monday, July 19, 2021, 12:55:08 AM PDT, Guillermo Polito < > guillermopol...@gmail.com> wrote: > > > > that link is now obsolete in favour of pharo-vm-Linux-[ARCH]-stable.zip. > > > > > That "obsolete" link is still given in the section > > "Pharo standalone" > > on the page > > "https://pharo.org/download; > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: New Pharo-based commercial software
This is so cool, congrats!!! On Sat, Jun 12, 2021, 11:36 Noury Bouraqadi wrote: > Hi everyone, > > I'm glad to announce a new Pharo-based commercial product: PLC3000 ( > https://plc3000.com). > > It's a SaaS solution for teaching PLC programming for factory automation. > The server side is based on Zinc and the client side uses PharoJS. > > This wouldn't have been possible without the great work done by the > community in large, and more specifically, the Pharo consortium. > > Thank you all, > Noury >
[Pharo-users] Re: New VM, how do I get it
Hi David, for M1 we have Pharo 9 compatible VMs, you can download them using Zero Conf or directly. For the latest: - wget -O - https://get.pharo.org/vmLatest90 | bash - http://files.pharo.org/get-files/90/pharo-vm-Darwin-arm64-latest.zip For the stable: - wget -O - https://get.pharo.org/vm90 | bash - http://files.pharo.org/get-files/90/pharo-vm-Darwin-arm64-stable.zip If you are scripting the download I recommend using ZeroConf. For Pharo 8, we don't have a M1 native version, because Pharo 8 requires changes in the image to support the newer VMs. We have plans to backport the changes in the future, now we are putting all efforts in the release of Pharo 9. However, if the community consider it, we can switch priorities but it is not magical; we will need to leave something aside. Also, future versions of the Pharo Launcher will have support for detecting the architecture. In the meantime, Pharo 8 / 9 can be used without a problem with Rossetta, although the performance is not ideal. Tell me if you have any problem. Cheers, Pablo On Tue, May 18, 2021 at 3:54 PM David Pennington wrote: > Hi there. I am currently using v8.0 on a new M1 MacBookAir. When I save > the image I keep getting a message telling me that my VM is too old and to > download a new one. I have looked in my Pharo Launcher but there is no new > one there. What do I do please? > > David -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: Pharo and LLVM?
Quintin Ducasse has been working with this: - https://github.com/QDucasse/LLVMBindings - https://github.com/QDucasse/LLVM-C - https://github.com/QDucasse/Booklet-LLVMCompilationWithPharo Maybe he can provide more insights of the level of advance the bindings have. On Mon, Jan 25, 2021 at 4:26 PM Alexandre Bergel via Pharo-users < pharo-users@lists.pharo.org> wrote: > Hi! > > Just wondering, someone has done something with LLVM and Pharo? > Any URL / blog post / anything? > > Cheers, > Alexandre > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Beta Testing ARM64 Linux & Windows
ory to take the current versions sudo apt update 3) Install Pharo9 VM sudo apt install pharo9 libgit2 4) In case of using the interactive version (with UI) check if the packages libsdl2-2.0-0 and libcairo2 are installed (Usually they are installed, but depends what it is installed in the system). These are not needed for the headless execution or if it is not used by the image. *Getting the images:* The images can be downloaded using zero-conf, the latest image is ready to be used. It can be done with: wget -O - get.pharo.org/64/90 | bash *Running Pharo* pharo Pharo.image eval 42 factorial Or interactive pharo Pharo.image --interactive *Windows Testing* A version of the VM is ready to be tested in Windows ARM64. A zip containing the VM is available in: https://files.pharo.org/vm/pharo-spur64/Windows-ARM64/PharoVM-9.0.0-4df0e562a-Windows-ARM64-stockReplacement-bin.zip As in Linux, the latest image is compatible with this version of the VM. *Error reporting* In case of encountering errors please report them attaching: - crash.dmp file and PharoDebug.log - Version of the image using (in case of any community project loaded, the names of those) - Complete machine version (the result of executing uname -a) - Complete information about the Linux distribution - Steps for reproducing the error (if needed) Thanks for the effort!! -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: [Pharo-dev] [ANN] New Pharo VM released (v8.6.1)
Hi Martin, yes, it is true. I have to rollback the change because it was a compatibility issue with Debian 9.11, and this version is the one used by Jenkins docker images. I will do a release as soon as I can fix it. I want to push OBS to the last step to be productive. There is a lot of work on that and we need to profit it. The headless VM in Linux has been updated to the latest and that one has not been rollbacked. On Fri, Nov 27, 2020 at 5:48 AM Martin McClure wrote: > > Is this new VM available for Linux? I only see Windows and Mac VMs that > are dated 2020-11-02. > In the launcher (launcher 2.2, still the latest AFAICT) refreshing the > 90-x64 VM just re-downloads the one from 2020-02-11. > > Thanks, > -Martin > > On 11/2/20 7:48 AM, teso...@gmail.com wrote: > > Hi, > > this is an announcement of a new release of the Pharo VM. This > > new version is available to be downloaded through get-pharo scripts > > and through the Pharo Launcher. From the Pharo Launcher, remember to > > update the VM from the VM manager window. > > > > This version includes a series of improvements: > > > > - Unification of code base with the headless VM > > - Preparation for supporting HDPI displays. > > - Improvements in the speed of Threaded FFI (40x times faster in > > SameThread runner and 2x in Threaded worker). > > - Better handling of semaphores > > - Improvements in the loading of large images (better buffering) > > - Better support for headless execution on non-main thread > > > > Please let me know if you find any issues. > > > > Cheers, Pablo > > > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] [ANN] New Pharo VM released (v8.6.1)
Hi, this is an announcement of a new release of the Pharo VM. This new version is available to be downloaded through get-pharo scripts and through the Pharo Launcher. From the Pharo Launcher, remember to update the VM from the VM manager window. This version includes a series of improvements: - Unification of code base with the headless VM - Preparation for supporting HDPI displays. - Improvements in the speed of Threaded FFI (40x times faster in SameThread runner and 2x in Threaded worker). - Better handling of semaphores - Improvements in the loading of large images (better buffering) - Better support for headless execution on non-main thread Please let me know if you find any issues. Cheers, Pablo -- Pablo Tesone. teso...@gmail.com
[Pharo-users] Re: [Pharo-dev] [ANN] Libgit 1.0.0 in Pharo 9
Hi Martin, thanks for testing it. Can you tell me the version / flavour of Debian are you using? Maybe we need to ship PCRE with the VM. I am not fun of that, but we need to do it until we can have a proper packaging for each Linux distribution (Esteban is working on having a nice OBS configuration for the VM extending what Holger has previously done). It takes time and a lot of testing, but the idea is to fix (or at least control better) the dependency nightmare between different Linux distributions. Cheers, Pablo On Tue, Oct 13, 2020 at 7:49 AM Martin McClure wrote: > > Thanks, this is great news. > > Are there instructions on how to make P9 actually use the new version of > libgit2? I see that the stable Linux VM for 9.0 does include > "libgit2.1.0.0.so" but Pharo is still loading libgit2.so.0.25.1. > > ...this may be because Pharo's libgit2.1.0.0.so has not-found > dependencies on libpcre.so.3 and libpcreposix.so.3. > > I find Debian's versioning of libpcre somewhat confusing. The package > "libpcre3" is the *old* libraries, and new stuff is supposed to use > "pcre2." 2 is apparently newer than 3. At any rate PCRE library naming > is rather distro-specific, and although I have the right packages > installed, the libraries have different filenames. > > But libgit2 is not supposed to have PCRE as a dependency. The source > code for PCRE is included in the source for libgit2. Seems like it would > be possible (and nice!) to compile the libgit2.1.0.0.so included with > the VM to include the PCRE code internally, rather than depend on an > external library. > > Thanks, > -Martin > > On 10/12/20 2:26 AM, teso...@gmail.com wrote: > > Hi, a later announcement (this have been done some months ago... but I > > never send the mail). > > > > We have upgraded in Pharo 9 to use the latest stable version of Libgit. > > It required to have some improvements in Libgit to handle the updated > > version and also to support the previous version. > > > > From the point of view of new features, it does not add new things. > > However, this version fixes a lot of existing problems in Libgit. > > > > We can be sure this was a successful deployment as we don't have > > problems with it. We are really happy that this has been done > > transparently and keeping the working version with different > > configurations of images and VMs. As we should support new and old > > images, on the same VM. And also running new images in old VMs > > > > Thanks. > > > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] [ANN] Libgit 1.0.0 in Pharo 9
Hi, a later announcement (this have been done some months ago... but I never send the mail). We have upgraded in Pharo 9 to use the latest stable version of Libgit. It required to have some improvements in Libgit to handle the updated version and also to support the previous version. >From the point of view of new features, it does not add new things. However, this version fixes a lot of existing problems in Libgit. We can be sure this was a successful deployment as we don't have problems with it. We are really happy that this has been done transparently and keeping the working version with different configurations of images and VMs. As we should support new and old images, on the same VM. And also running new images in old VMs Thanks. -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Iceberg "adopt commit" behavior
You can always get the registered repositories through: IceRepository registry But take care that the API is not intended to be stable through versions as it is always intended to be used by the UI. So, script it as you wish, we can answer whatever doubt you have, but I have warn you :D! On Fri, Aug 21, 2020 at 3:44 PM Sean P. DeNigris wrote: > > Esteban A. Maringolo wrote > > so I add how do I get the IceLibgitRepository > > instance? (given I provide the name). > > I got it via Iceberg contextMenu -> Extra -> Inspect, which works via the UI > but maybe you're looking for a programmatic way? > > > > - > Cheers, > Sean > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Iceberg "adopt commit" behavior
Yes, it should work. The same if you repair the repository doing a checkout loading the changes from the repository (there should not be changes) Tell us if you have any questions Thanks! On Thu, Aug 20, 2020 at 2:21 PM Esteban Maringolo wrote: > > Hi Pablo, > > Thanks for the answer. > > So my workflow of editing files outside of Pharo, committing them, and > then adopting the latest commit would be safe? (as long I don't modify > files modified by Pharo). > > Best regards! > > > Esteban A. Maringolo > > On Thu, Aug 20, 2020 at 6:46 AM teso...@gmail.com wrote: > > > > Hi, > > the adopt commit operation has nothing to do with the rebase. It > > sets the reference commit of the image to the given commit. It does > > not affect the git repository. > > The image knows at any moment the commit it has loaded (or it supposed > > to have loaded). > > The adopt operation overrides the reference commit with the selected > > one, it does not affect the loaded code. > > There is risk of doing so, it changes the commit in the image but > > without changing the repository nor the loaded code. So, it can > > produce a detached working-copy, and also it affects the records of > > changes the image has. > > > > On Thu, Aug 20, 2020 at 5:16 AM Esteban Maringolo > > wrote: > > > > > > Hi, > > > > > > What does the "Adopt commit" mean? > > > > > > It seems like a rebase, but I'm not sure. > > > > > > I often have ongoing changes in my image, and also changes in the > > > filesystem (css, js, Dockerfile, etc.). So what I do is to commit on > > > the filesystem, and then "adopt" the recently created commit, and then > > > commit in Iceberg (and probably push). > > > > > > Is this okay? Is there any risk in doing this? > > > > > > Regards! > > > > > > Esteban A. Maringolo > > > > > > > > > -- > > Pablo Tesone. > > teso...@gmail.com > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Iceberg "adopt commit" behavior
Hi, the adopt commit operation has nothing to do with the rebase. It sets the reference commit of the image to the given commit. It does not affect the git repository. The image knows at any moment the commit it has loaded (or it supposed to have loaded). The adopt operation overrides the reference commit with the selected one, it does not affect the loaded code. There is risk of doing so, it changes the commit in the image but without changing the repository nor the loaded code. So, it can produce a detached working-copy, and also it affects the records of changes the image has. On Thu, Aug 20, 2020 at 5:16 AM Esteban Maringolo wrote: > > Hi, > > What does the "Adopt commit" mean? > > It seems like a rebase, but I'm not sure. > > I often have ongoing changes in my image, and also changes in the > filesystem (css, js, Dockerfile, etc.). So what I do is to commit on > the filesystem, and then "adopt" the recently created commit, and then > commit in Iceberg (and probably push). > > Is this okay? Is there any risk in doing this? > > Regards! > > Esteban A. Maringolo > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] GTK3 / PDF Viewer
Hello, Robert I have checked previously and seems that there is not a component to present PDF in Gtk basic library. Gtk components are intended to be building blocks to other more complex UI. For doing what you are intending maybe it is required to build a more complex window using Gtk components. One alternative is to do a binding with the Ghostscript library (https://www.ghostscript.com/doc/current/Lib.htm) that already provides all the support to render PDFs. It is designed to call the interested user with a callback with instructions how to render the content. This rendering can be later done directly in Morphic or in Athens. In both cases, they can be shown as part of a GTK window. Another alternative is to check the implementation of Evince (the GTK based PDF presenter of Gnome) to check if it provides a component that can be extracted. It was supposed to be a reusable component but there is lack of documentation of it (https://developer.gnome.org/libevview/stable/) Cheer, Pablo On Sun, Aug 16, 2020 at 5:48 PM wrote: > > Hi, > > > > what is the best way to integrate a PDF Viewer with a Spec2 / GTK3 > application on Windows? > > I couldn’t find any mentioning of PDF viewer on the GTK3 site. > > > > Thx for your help > > > > Best > > > > Robert -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] UFFI asynchronous callbacks
Hello, for executing it you will need the headless VM. If you are using Pharo Launcher you can change the VM for that image in the configuration combo box (The click on "Edit Configurations..."). If you are using the zero-conf you can use "wget -O - get.pharo.org/64/vmHeadlessLatest90 | bash" Cheers, Pablo On Sat, Jul 25, 2020 at 10:17 AM ASAM wrote: > > Hi Pablo, > today I have a little bit of time to try out the "threaded FFI". > But immediately with the load I get the following error message > "PrimitiveFailed: primitive #primitiveInitializeQueueWith: in > TFCallbackQueue failed". > > see pic: <http://forum.world.st/file/t372350/ThreadedFFI.png> > > When I load it again it looks good. But then I get the error message with > every Pharo start. > > To rule out possible errors, I tested with a fresh Pharo8 64bit image, of > course. > > Could you tell me what i'm doing wrong? > > Thanks > ASAM > > > > > > > > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] UFFI asynchronous callbacks
Hi, as Ben correctly pointed out there is the alternative of using a Queue based approach for FFI. It is available as a plugin for the headless VM and it can be used with Pharo 8. It is here: https://github.com/pharo-project/threadedFFI-Plugin The plugin is already compiled and shipped with the VM. It is only required to load the Smalltalk side code with: Metacello new baseline: 'ThreadedFFI'; repository: 'github://pharo-project/threadedFFI-Plugin'; onConflictUseLoaded; load. This is fully integrated as a backend of UFFI, so all the code you already have it will be working fine. You need to give more information to select the callout strategy to use (https://github.com/pharo-project/threadedFFI-Plugin/wiki/Using-with-UFFI) Using TFFI it is possible to receive callbacks from other threads and process them in the VM thread. If you need any help, please feel free to ask in the list, so it can be useful for everybody. Cheers, Pablo On Sun, Jul 19, 2020 at 6:32 PM Ben Coman wrote: > > Hi Asam, > > On Sun, 19 Jul 2020 at 21:38, ASAM wrote: > > > > Hello Ben, > > > > I quickly made a dummy DLL to limit the problem to the essentials. > > Great idea. A more generic example is attractive for people to > examine and help out. > I browsed the code but I'm sorry it needs a deeper expertise than I have. > Hopefully someone working on the threaded FFI will tune in. > > In the meantime, it won't solve your query but you may find this > interesting to watch... > Strategies for Non-Blocking FFI > https://www.youtube.com/watch?v=L_QFwsNOMAc > > cheers -ben > > > > > I think my problem comes more from how I use the semaphore. > > > > I wanted to do that: > > > > only "semaphore signal", > > But that somehow doesn't work. > > Now i'm doing that "[ Processor yield. semaphore signal ] fork" (it work's) > > but i don't know if that's a good idea. > > > > > > ffiCallback > > ^ FFICallback signature: #( void #( uint32 foo ) ) block: [ :foo | > > Transcript > > show: 'API Funktion value: ' , foo asString, ' > > activePriority:', > > Processor activePriority asString; cr. > > > > "that's working" > > [ Processor yield. semaphore signal ] fork. > > > > "that usually works 80%." > > "[ semaphore signal ] fork" > > > > "that crashes pharo almost always." > > "semaphore signal" > > ] > > > > I also have a little problem, too. Why can I use my own C-Type UNUM32 at > > ...self ffiCall: #( T_ERROR StartMyThreadFunction(UNUM32 millisecondsToFire) > > ). > > But with FFICallback signature: # (void # (uint32 foo)) I get an error > > "Unable to resolve external type: UNUM32. Why is that? > > > > Thanks for your help. > > > > testDllForAsyncCallback.dll > > <http://forum.world.st/file/t372350/testDllForAsyncCallback.dll> > > testDllForAsyncCallback.cpp > > <http://forum.world.st/file/t372350/testDllForAsyncCallback.cpp> > > testDllForAsyncCallback.h > > <http://forum.world.st/file/t372350/testDllForAsyncCallback.h> > > testDllForAsyncCallback.h > > <http://forum.world.st/file/t372350/testDllForAsyncCallback.h> > > UFFICallback.st <http://forum.world.st/file/t372350/UFFICallback.st> > > CTypes.st <http://forum.world.st/file/t372350/CTypes.st> > > <http://forum.world.st/file/t372350/Transcript.png> > > > > > > > > > > -- > > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Pharo on Chromebook
Hi, I have tested with CloudReady (another variation of Chromium OS) but I couldn't reproduce the error. Maybe there is a problem with the latest version of Chrome OS (that of course is not the same). On Mon, Jun 8, 2020 at 8:25 AM Stéphane Ducasse wrote: > > I think that we will have to buy one of such device. > What would be a good choice? > I know Olivier runs pharo on his without problem, > @olivier which Chrome book do you suggest us to buy? > > S. > > On 8 Jun 2020, at 00:40, tbrunz wrote: > > Hi Pablo, > > I'm seeing the same thing on a Chromebook "Pixelbook" Crostini (Linux) > container: > > Debian v9 ("stretch"), Linux kernel 4.9.0-12, recently updated. The system > has 8GB RAM & 128GB SSD. > > The ChromeOS version in 81.0.4044.141. > > I'm running the latest Pharo Launcher, 2.0-2020.04.07, VM 5.0-202002121043. > > Just opening Pharo Launcher, and without even launching an image, I'm seeing > the same tearing and rendering problems as Jan. If I open the Settings > dialog, it partially renders, and when I try to move the window, I get the > tearing behavior. > > And I was also able to run PL & images on this platform without problems in > the past. (It's been at least a month since I tried running Pharo on a > Chromebook.) > > -Ted > > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > > > > Stéphane Ducasse > http://stephane.ducasse.free.fr / http://www.pharo.org > 03 59 35 87 52 > Assistant: Aurore Dalle > FAX 03 59 57 78 50 > TEL 03 59 35 86 16 > S. Ducasse - Inria > 40, avenue Halley, > Parc Scientifique de la Haute Borne, Bât.A, Park Plaza > Villeneuve d'Ascq 59650 > France > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Thinking aloud about project at hand
Hi Tomaz, >From the comments about the requirements you do I suggest: - For data storage, my recommendation goes depending on two factors: 1)Installation complexity, 2) volume of data. These are two variables that will be against one and the other. I will recommend to use MongoDB + Voyage, that goes very well. It grows excellent with the amount of data, it has really cool integration with Pharo and Voyage is an excellent mapping tool; also it is a mature solution and it has a lot of support for back-up schemes and solutions. Using MongoDB complicates the installation process, so if you have the idea of a easy installable application maybe SQLlite is a good alternative. - I think using Spec2 + GTK + Roassal3 + Polymath is a good idea. Check that Spec2 and Roassal3 are still under heavy development. They are getting much better, but of course, it will take some time to stabilize; but both of them are progressing very fast and they are already quite stable. - For developing DSL and interactive programming for non-programmers users, Pharo is ideal. It presents a lot of tools to easily develop DSL and the UI to make them work excellent. The idea of live manipulation of objects and inspection of all the instances can be easily added to a DSL. Thanks for your attention! On Thu, Apr 9, 2020 at 9:13 PM Tomaž Turk wrote: > > Dear all, > > I'm thinking about implementing a software solution in Pharo (as one of the > candidate environments), it's a project that I'm dealing with professionally. > The goal is to develop a financial planning/simulation application on the > country level, which is at present developed as a set of interrelated Excel > spreadsheets. The requirement is that the solution should be more > "manageable", resilient and straightforward than Excel permits, that it > should present a workflow to the user - i.e. , that the tasks the user should > do are suggested through the GUI. > > The majority of the data is in a form of a time series (for instance: GDP for > a series of years). There are many variables in the model which shoud be > calculated from other variables, year by year. There are also lagged > variables (the value for the current year depends from the value of previous > year), and running averages. There are also some variables which are not time > series (parameters). As a part of GUI, there is a need to present the results > as diagrams, too (scatterplots, line charts), otherwise tables are the output. > > I found Pharo to be a very elegant language and environment, with version 8.0 > it became pretty stable, however I don't have any experiences in building > software solutions of this type in Smalltalk. In other words, I'd like to be > more confident in setting the architecture, both in the sense of the model > content (variables interrelation) and the architecture of classes. Besides, > for the calculated variables I'd like to have a relatively simple syntax to > define them (like 'GDPpC <- GDP / Population'). > > My thoughts and questions: > - for easier maintenance I'd like to separate the data from the code - so the > question is what would be the best way to implement persistence (another > Pharo image - with what?, some relational database, XML/JSON, flat files ...) > - I wonder what would be the best "architecture" of classes - so, we have a > lot of aggregate variables like GDP and population, which can be grouped at > least according to the stage in the planning workflow. There are also > resulting (calculated) variables (e.g. GDP per capita). On the other hand, > since this is a planning software, it's a kind of simulation, where we have a > "data warehouse", experiments and results > - As a core packages I would use Spec2, Roassal, and PolyMath. > > I'm just thinking aloud, and would greatly appreciate any thoughts from > experienced Pharoers :-) > > Best wishes, > Tomaz -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Automation of MS Office from Pharo
Hi!!! This was a great report. I have submitted a fix in the master of Pharo-COM. Basically the problem was to free twice the BSTR in the Variant. It was being free in the access to the value and in the free of the struct. Why it works with other BSTR when they are smaller, I cannot know. I have added another smoke test using Word Can you try the fix? Thanks, both for helping me with the reports, they were great. On Wed, Apr 8, 2020 at 9:37 AM PBKResearch wrote: > > Tomaz, that was my understanding from the VBA piece you cited yesterday. So > presumably it must be something in Pharo-Com which imposes the limits we have > seen. I am OK at the moment, because all this work is just an exploration of > possibilities; I can wait until you and Pablo have sorted it out. But from > the results of your tests, a maximum of 16K in 64-bit systems must be a > serious limitation, so something in Pharo-Com needs fixing. > > > > For my immediate work, I shall continue exporting the full text using > MailItem.SaveAs; my further processing uses files I have exported manually in > this way, so it’s not a problem. > > > > Thanks > > > > Peter Kenny > > > > From: Pharo-users On Behalf Of Tomaž > Turk > Sent: 08 April 2020 07:58 > To: Any question about pharo is welcome > Subject: Re: [Pharo-users] Automation of MS Office from Pharo > > > > Thanks, Stephane, for the acknowledgement. Peter, as I understand, the limits > in COM BSTR data type are defined by the header's length prefix (which is 4 > bytes) and software implementatios - for instance, string data type in Visual > Basic for Applications is described as "a variable-length string can contain > up to approximately 2 billion (2^31) characters", which is in line with the > BSTR header. I'm not sure if the OS architecture (32 and 64 bit) influences > these values. > > > > Best wishes, > > Tomaz > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Automation of MS Office from Pharo
Hi Peter, First, thanks to try to use Pharo-COM, that is great, I love to have users for it and find it is useful. Secondly, the Pharo 7 problem is an error I have introduced. It is clear that some changes I have done to support the new version of UFFI (the framework in Pharo to handle FFI calls) have broken the Pharo 7 version, so I will fix it to maintain compatibility. It is great that you were able to make it work! Cheers, On Mon, Apr 6, 2020 at 12:18 PM PBKResearch wrote: > Hello Tomaž > > > > Many thanks for your patient explanation. I should have been able to work > out for myself how the Word test works, and indeed I realized some of it > when I came to shut down the Word instance and its two documents. But it > was late at night, and I should have packed up before then. > > > > My last test last night showed that basically I have cracked it for my job > of automating Outlook. I have been able to connect to my running instance > of Outlook, open my application and interrogate the names of my top-level > folders. From now on it should be just a matter of understanding the MS > documentation of the Outlook model. > > > > However, all this is with Pharo-Com installed in a new Pharo 8 image. I > have no idea what went wrong with my first effort on Pharo 7. But I shan’t > worry about that – I shall gradually move all my bits and pieces to P8. I > shall try to work it out myself from here, but I shall come back if I get > stuck. > > > > Thanks again > > > > Peter Kenny > > > > *From:* Pharo-users *On Behalf Of *Tomaž > Turk > *Sent:* 06 April 2020 08:04 > *To:* Any question about pharo is welcome > *Subject:* Re: [Pharo-users] Automation of MS Office from Pharo > > > > Hello Peter, > > > > If you look at the code in the Word test you will notice that the test > firstly > > - creates a new Word instance, > > - makes it visible to the end user, > > - then adds an empty document to the documents collection with the text > "Hello from Pharo!" > > - then it tests whether it can receive the same text back from Word. > > > > After that, the test > > - adds a new empty document to the documents collection with the text > "Hello from Pharo! Some additional text. ", this time as an array of two > texts > > - it activates this second document (this imitates the end user's window > activation on the desktop) > > - then it tests whether it can receive the same text back from Word. > > > > If you look at the Task Manager, you'll notice that you have one Word > process with two open documents: > > > > > > Namely, for each document Word creates a new, separate window - the > documents are not displayed in one "Word application window", but > separately - that's a normal behavior for some versions of MS Office, and > it happens also if you open several documents directly in Word. So, there > is just one Word instance. > > > > 'finalize' clears the references to the Word instance, it doesn't close > the program by itself. If you want to do that, you can send Quit message to > Word before you destroy the reference ( > https://docs.microsoft.com/en-us/office/vba/api/word.application.quit(method) > ). > > > > Similar behaviour is with Outlook, here's one example: > https://www.excelcommand.com/excel-help/excel-how-to.php?i=124116 > > > > The calling among COM objects is asynchronous, and it's usually wise to > wrap it in error handling structures. > > > > Please tell us how it goes. > > > > Best wishes, > > Tomaz > > > > > > > > > > > > > > > > > > -- Original Message -- > > From: "PBKResearch" > > To: "Any question about pharo is welcome" > > Sent: 5.4.2020 23:18:02 > > Subject: Re: [Pharo-users] Automation of MS Office from Pharo > > > > Pablo - a final update before I close for the night. The Word test on the > pharo 8 version comes up green. The strange error message is nowhere to be > seen in any Pharo 8 runs. The result is not what I expected; I finish up > with two Word documents open, one with the first message, the other with > the two messages. I thought the 'finalize' command would close it down. > > > > Anyway, it looks as if I need to switch to P8 to use Pharo-Com. I shall > continue testing tomorrow on P8. > > > > Sorry for the late-night hassle. > > > > Peter > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Automation of MS Office from Pharo
Ok, I was trying to find an easy solution. I will try tomorrow morning to see the problem. Sorry, On Sun, Apr 5, 2020 at 10:29 PM PBKResearch wrote: > > Pablo – Yes, I saw the instruction. I used the quoted Metacello procedure for > P7 – I used copy and paste from the repo Readme. Peter > > > > From: Pharo-users On Behalf Of > teso...@gmail.com > Sent: 05 April 2020 21:19 > To: Any question about pharo is welcome > Subject: Re: [Pharo-users] Automation of MS Office from Pharo > > > > The install instructions are not the same for Pharo 7, or pharo 8/9 > > > > On Sun, Apr 5, 2020, 22:18 teso...@gmail.com wrote: > > If you are using pharo 7, you have to install a different branch of the > project. Check in the documentation of pharo-com(the read me in the same repo) > > > > On Sun, Apr 5, 2020, 21:41 PBKResearch wrote: > > Hello Pablo > > Many thanks for the suggestion. I have tried to use Pharo-Com to connect to > Outlook, and have now got myself into a complete tangle. I have been able to > connect to my already-running copy of Outlook, but when I tried to enter > propertyNamed: 'Folders', an error message appeared with the text: "Instance > of FFIExternalObjectType did not understand emitArgument:context:inCallout:". > I could not understand this, so I closed the debugger, assuming the effects > would be unwound. > > I found that, whatever I tried after that, the same message appeared. In > desperation I closed down Pharo, without saving the image, and started again. > Whatever I tried in using Pharo-Com, the exact same message appeared. Even > when I tried running one of your tests, the same message. > > It seems clear that something in my system, not part of Pharo, has been > changed in a way which persists from one run of Pharo to another. I have no > idea what it can be, but I see that some parts of Pharo-Com address the > registry, so I wonder if I have corrupted that in some way. > > For the time being I have stopped work on Pharo-Com. I hope that a night's > sleep will bring inspiration. In case it means anything to you, I attach a > screenshot of the error stack when I try to run the testWord case in > PharoCOM-Tests. > > Thanks again > > Peter Kenny > > -Original Message- > From: Pharo-users On Behalf Of > teso...@gmail.com > Sent: 05 April 2020 16:23 > To: Any question about pharo is welcome > Subject: Re: [Pharo-users] Automation of MS Office from Pharo > > Hello, >One of the alternatives to integrate with Office is the use of the COM > interface. There is an implementation in > https://github.com/tesonep/pharo-com. In the test package, there are examples > to integrate with Word, Excell, Internet Explorer, and Access. Integration > with Outlook can be done in the same fashion. It is good that the API of all > the Office products is heavily documented. > > You can get more information about how to use Outlook here: > https://docs.microsoft.com/en-us/office/vba/api/overview/outlook/object-model > > If you have any questions, please let me know. > Cheers, > Pablo. > > On Sun, Apr 5, 2020 at 2:44 PM PBKResearch wrote: > > > > Hello All > > > > > > > > I am using Pharo (currently P7, moving to P8) under Windows 10. I have MS > > Office 365 on my system, and use it regularly for non-Smalltalk tasks. It > > would be very convenient if I could issue commands to MS Office components > > from within Pharo. My current interest is to manage my incoming e-mails in > > Outlook, but I can see many other applications. I have a recollection of > > seeing a reference to automation of Excel to transfer data both ways, but I > > cannot recall where. I have searched the catalog, but could not see > > anything that looked relevant. I have also read the uFFI booklet, but again > > no luck. Could anyone point me to any information or examples of such > > control, please? It would not have to be Outlook, though that is my main > > interest; given examples for other Office components, I should be able to > > follow the pattern. > > > > > > > > TIA > > > > > > > > Peter Kenny > > > > -- > Pablo Tesone. > teso...@gmail.com -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Automation of MS Office from Pharo
The install instructions are not the same for Pharo 7, or pharo 8/9 On Sun, Apr 5, 2020, 22:18 teso...@gmail.com wrote: > If you are using pharo 7, you have to install a different branch of the > project. Check in the documentation of pharo-com(the read me in the same > repo) > > On Sun, Apr 5, 2020, 21:41 PBKResearch wrote: > >> Hello Pablo >> >> Many thanks for the suggestion. I have tried to use Pharo-Com to connect >> to Outlook, and have now got myself into a complete tangle. I have been >> able to connect to my already-running copy of Outlook, but when I tried to >> enter propertyNamed: 'Folders', an error message appeared with the text: >> "Instance of FFIExternalObjectType did not understand >> emitArgument:context:inCallout:". >> I could not understand this, so I closed the debugger, assuming the >> effects would be unwound. >> >> I found that, whatever I tried after that, the same message appeared. In >> desperation I closed down Pharo, without saving the image, and started >> again. Whatever I tried in using Pharo-Com, the exact same message >> appeared. Even when I tried running one of your tests, the same message. >> >> It seems clear that something in my system, not part of Pharo, has been >> changed in a way which persists from one run of Pharo to another. I have no >> idea what it can be, but I see that some parts of Pharo-Com address the >> registry, so I wonder if I have corrupted that in some way. >> >> For the time being I have stopped work on Pharo-Com. I hope that a >> night's sleep will bring inspiration. In case it means anything to you, I >> attach a screenshot of the error stack when I try to run the testWord case >> in PharoCOM-Tests. >> >> Thanks again >> >> Peter Kenny >> >> -Original Message- >> From: Pharo-users On Behalf Of >> teso...@gmail.com >> Sent: 05 April 2020 16:23 >> To: Any question about pharo is welcome >> Subject: Re: [Pharo-users] Automation of MS Office from Pharo >> >> Hello, >>One of the alternatives to integrate with Office is the use of the COM >> interface. There is an implementation in >> https://github.com/tesonep/pharo-com. In the test package, there are >> examples to integrate with Word, Excell, Internet Explorer, and Access. >> Integration with Outlook can be done in the same fashion. It is good that >> the API of all the Office products is heavily documented. >> >> You can get more information about how to use Outlook here: >> >> https://docs.microsoft.com/en-us/office/vba/api/overview/outlook/object-model >> >> If you have any questions, please let me know. >> Cheers, >> Pablo. >> >> On Sun, Apr 5, 2020 at 2:44 PM PBKResearch >> wrote: >> > >> > Hello All >> > >> > >> > >> > I am using Pharo (currently P7, moving to P8) under Windows 10. I have >> MS Office 365 on my system, and use it regularly for non-Smalltalk tasks. >> It would be very convenient if I could issue commands to MS Office >> components from within Pharo. My current interest is to manage my incoming >> e-mails in Outlook, but I can see many other applications. I have a >> recollection of seeing a reference to automation of Excel to transfer data >> both ways, but I cannot recall where. I have searched the catalog, but >> could not see anything that looked relevant. I have also read the uFFI >> booklet, but again no luck. Could anyone point me to any information or >> examples of such control, please? It would not have to be Outlook, though >> that is my main interest; given examples for other Office components, I >> should be able to follow the pattern. >> > >> > >> > >> > TIA >> > >> > >> > >> > Peter Kenny >> >> >> >> -- >> Pablo Tesone. >> teso...@gmail.com >> >
Re: [Pharo-users] Automation of MS Office from Pharo
If you are using pharo 7, you have to install a different branch of the project. Check in the documentation of pharo-com(the read me in the same repo) On Sun, Apr 5, 2020, 21:41 PBKResearch wrote: > Hello Pablo > > Many thanks for the suggestion. I have tried to use Pharo-Com to connect > to Outlook, and have now got myself into a complete tangle. I have been > able to connect to my already-running copy of Outlook, but when I tried to > enter propertyNamed: 'Folders', an error message appeared with the text: > "Instance of FFIExternalObjectType did not understand > emitArgument:context:inCallout:". > I could not understand this, so I closed the debugger, assuming the > effects would be unwound. > > I found that, whatever I tried after that, the same message appeared. In > desperation I closed down Pharo, without saving the image, and started > again. Whatever I tried in using Pharo-Com, the exact same message > appeared. Even when I tried running one of your tests, the same message. > > It seems clear that something in my system, not part of Pharo, has been > changed in a way which persists from one run of Pharo to another. I have no > idea what it can be, but I see that some parts of Pharo-Com address the > registry, so I wonder if I have corrupted that in some way. > > For the time being I have stopped work on Pharo-Com. I hope that a night's > sleep will bring inspiration. In case it means anything to you, I attach a > screenshot of the error stack when I try to run the testWord case in > PharoCOM-Tests. > > Thanks again > > Peter Kenny > > -Original Message- > From: Pharo-users On Behalf Of > teso...@gmail.com > Sent: 05 April 2020 16:23 > To: Any question about pharo is welcome > Subject: Re: [Pharo-users] Automation of MS Office from Pharo > > Hello, >One of the alternatives to integrate with Office is the use of the COM > interface. There is an implementation in > https://github.com/tesonep/pharo-com. In the test package, there are > examples to integrate with Word, Excell, Internet Explorer, and Access. > Integration with Outlook can be done in the same fashion. It is good that > the API of all the Office products is heavily documented. > > You can get more information about how to use Outlook here: > > https://docs.microsoft.com/en-us/office/vba/api/overview/outlook/object-model > > If you have any questions, please let me know. > Cheers, > Pablo. > > On Sun, Apr 5, 2020 at 2:44 PM PBKResearch > wrote: > > > > Hello All > > > > > > > > I am using Pharo (currently P7, moving to P8) under Windows 10. I have > MS Office 365 on my system, and use it regularly for non-Smalltalk tasks. > It would be very convenient if I could issue commands to MS Office > components from within Pharo. My current interest is to manage my incoming > e-mails in Outlook, but I can see many other applications. I have a > recollection of seeing a reference to automation of Excel to transfer data > both ways, but I cannot recall where. I have searched the catalog, but > could not see anything that looked relevant. I have also read the uFFI > booklet, but again no luck. Could anyone point me to any information or > examples of such control, please? It would not have to be Outlook, though > that is my main interest; given examples for other Office components, I > should be able to follow the pattern. > > > > > > > > TIA > > > > > > > > Peter Kenny > > > > -- > Pablo Tesone. > teso...@gmail.com >
Re: [Pharo-users] Automation of MS Office from Pharo
Hello, One of the alternatives to integrate with Office is the use of the COM interface. There is an implementation in https://github.com/tesonep/pharo-com. In the test package, there are examples to integrate with Word, Excell, Internet Explorer, and Access. Integration with Outlook can be done in the same fashion. It is good that the API of all the Office products is heavily documented. You can get more information about how to use Outlook here: https://docs.microsoft.com/en-us/office/vba/api/overview/outlook/object-model If you have any questions, please let me know. Cheers, Pablo. On Sun, Apr 5, 2020 at 2:44 PM PBKResearch wrote: > > Hello All > > > > I am using Pharo (currently P7, moving to P8) under Windows 10. I have MS > Office 365 on my system, and use it regularly for non-Smalltalk tasks. It > would be very convenient if I could issue commands to MS Office components > from within Pharo. My current interest is to manage my incoming e-mails in > Outlook, but I can see many other applications. I have a recollection of > seeing a reference to automation of Excel to transfer data both ways, but I > cannot recall where. I have searched the catalog, but could not see anything > that looked relevant. I have also read the uFFI booklet, but again no luck. > Could anyone point me to any information or examples of such control, please? > It would not have to be Outlook, though that is my main interest; given > examples for other Office components, I should be able to follow the pattern. > > > > TIA > > > > Peter Kenny -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [ANN] Pharo-Spreedsheet on GitHub
Thanks, it is really cool! On Fri, Apr 3, 2020 at 10:20 PM Guillermo Polito wrote: > > Thanks! > > > El 3 abr 2020, a las 21:39, Torsten Bergmann escribió: > > > > Hi, > > > > I just moved "Spreadsheet" from SmalltalkHub > > (http://www.smalltalkhub.com/#!/~TorstenBergmann/Spreadsheet) > > to a community owned location at GitHub > > ("https://github.com/pharo-contributions/Pharo-Spreadsheet;). > > > > If I remember correctly the project goes back to ancient Squeak times - but > > it was kept up to date > > and is basically working. So if you want to write the next killer > > spreadsheet application in Pharo > > then you might want to use this as a base. > > > > Screenshot attached > > > > Have fun > > T. (aka astares) > > > > > > > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [Pharo-dev] [ANN] New Headless VM (Still Alpha, but getting better)
Yes... it is basically the same version... maybe I should change the version to 9 On Mon, Feb 3, 2020 at 4:06 PM Damien Pollet wrote: > > just tried it (from get.pharo.org/64/vmHeadlessLatest90), but the VM I get > says this: > ./pharo --version > Pharo 8.2.0 built on Dec 25 2019 … > > On Tue, 28 Jan 2020 at 10:35, teso...@gmail.com wrote: >> >> A new version of the headless VM is available. >> >> It can be downloaded from: >> >> https://files.pharo.org/vm/pharo-spur64-headless/win/PharoVM-8.3.0-b612fd5f-win64-bin.zip >> https://files.pharo.org/vm/pharo-spur64-headless/linux/PharoVM-8.3.0-b612fd5-linux64-bin.zip >> https://files.pharo.org/vm/pharo-spur64-headless/mac/PharoVM-8.3.0-b612fd5-mac64-bin.zip >> >> Or more easily using ZeroConf: >> >> With the image >> $ wget -O - get.pharo.org/64/90+vmHeadlessLatest | bash >> >> Without >> $ wget -O - get.pharo.org/64/vmHeadlessLatest90 | bash >> >> This new version has a series of bugfixes and the following features: >> >> - Update TFFI to v1.2.0: Allowing better marshaling and callbacks from >> outside threads. >> - Update README.md >> - Add instructions on how to create a vmmaker image. >> - Fixing UnixOSProcessPlugin >> - Redefinition of squeakFileOffset >> - Generating include files as an artifact >> - Adding a configurable strategy for reading / writing the image >> - Building using Musl Libc >> - A cleaner implementation of the print to stdout and file. >> - OSX File Dialog >> - OSX icon customization >> - OSX customization for apps. >> - Adding build on GitHub actions >> >> I will like to thank all the contributors specially Guille, Esteban, >> Ronnie. And also, Feenk and Schmidt that they are using it, reporting >> issues and contributing. >> >> Just a friendly reminder, if you want to contribute, you are always welcome!! >> >> https://github.com/pharo-project/opensmalltalk-vm >> >> Cheers, >> Pablo >> >> -- >> Pablo Tesone. >> teso...@gmail.com >> > > > -- > Damien Pollet > type less, do more [ | ] http://people.untyped.org/damien.pollet -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Large Image Generator
Hi Benoit, the main idea as always is to have better tests. We have seen that Pharo, and many users reported, that Pharo does not behaves correctly in some cases when handling large images. When I take about large images, I am talking about images with a lot of code and/or with a lot of data (yes the code for us is data... but I am just differencing because if we are testing senders / implementors we don't care about having a 10GB ByteArray). Also we have seen that for correctly testing this scenarios, we need good images, because depending the characteristics of the image it stress different parts of the system. As you correctly said we need to improve the tools (Calypso, System Navigation, Spotter, Iceberg, etc) and the infrastructure (GC, Compiler, VM in general). So we need to generate a lot of different images with different characteristics. Also, as you correctly mentioned we need to generate images with static behavior and with dynamic behavior (e.g., lots of concurrent processes). The main goal of the project is to start a recollection of existing solutions and to add new ones to generate this synthetic images. We want also to generate images that reproduce the nature of images. For example, it is not enough to generate random method selectors if we are testing the indexing of them. A good index varies its performance depending of the nature of the text. We need to generate random methods following some rules a developer whould use, for example using more a given word or using real words. So basically, we started collecting the easy algorithms to generate and we will add more, and of course, it is open to contribution from anyone and to different usage scenarios. The two I have implemented are the ones we are using this week to solve three issues: (1) improving the startup time, (2) improving the detection of deprecated methods, (3) improving the analysis of big literal methods. I have finished 1, the other two we are in working. Also, I will like to add an implementation of the work of Clement and Sophie to generate images to stress the GC. If you have ideas or things to add let's share them!! Cheers, Pablo On Wed, Jan 29, 2020 at 6:48 PM Benoit St-Jean via Pharo-users wrote: > > Just read that announcement > (https://pharoweekly.wordpress.com/2020/01/29/ann-large-image-generator/) > on Pharo Weekly. > > Anyone knows more about the precise goal of that project? What is the > exact purpose of those images and what are we trying to test? Garbage > collection? The VM behavior under stress? Limitations of Pharo on a > specific OS? A reference against which future versions will be > benchmarked for performance? Iceberg and code management performance? > How base classes react when they have to deal with millions of objects > (e.g. a Bag with 15 million objects, forking 15000 processes, creating > 2 semaphores, etc) ? > > -- > - > Benoît St-Jean > Yahoo! Messenger: bstjean > Twitter: @BenLeChialeux > Pinterest: benoitstjean > Instagram: Chef_Benito > IRC: lamneth > GitHub: bstjean > Blogue: endormitoire.wordpress.com > "A standpoint is an intellectual horizon of radius zero". (A. Einstein) > > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] [ANN] New Headless VM (Still Alpha, but getting better)
A new version of the headless VM is available. It can be downloaded from: https://files.pharo.org/vm/pharo-spur64-headless/win/PharoVM-8.3.0-b612fd5f-win64-bin.zip https://files.pharo.org/vm/pharo-spur64-headless/linux/PharoVM-8.3.0-b612fd5-linux64-bin.zip https://files.pharo.org/vm/pharo-spur64-headless/mac/PharoVM-8.3.0-b612fd5-mac64-bin.zip Or more easily using ZeroConf: With the image $ wget -O - get.pharo.org/64/90+vmHeadlessLatest | bash Without $ wget -O - get.pharo.org/64/vmHeadlessLatest90 | bash This new version has a series of bugfixes and the following features: - Update TFFI to v1.2.0: Allowing better marshaling and callbacks from outside threads. - Update README.md - Add instructions on how to create a vmmaker image. - Fixing UnixOSProcessPlugin - Redefinition of squeakFileOffset - Generating include files as an artifact - Adding a configurable strategy for reading / writing the image - Building using Musl Libc - A cleaner implementation of the print to stdout and file. - OSX File Dialog - OSX icon customization - OSX customization for apps. - Adding build on GitHub actions I will like to thank all the contributors specially Guille, Esteban, Ronnie. And also, Feenk and Schmidt that they are using it, reporting issues and contributing. Just a friendly reminder, if you want to contribute, you are always welcome!! https://github.com/pharo-project/opensmalltalk-vm Cheers, Pablo -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Embedding pharo in C++
Hi Roland, the function vm_main_with_parameters() starts the vm and it will not return until the image finishes. In my example, only when the SDL window is closed, the quit primitive is executed and the function ends. To do a nicer POC we need to make modifications in the image, so it handles keeping the image open. On Wed, Jan 22, 2020 at 7:08 PM Roland Plüss via Pharo-users wrote: > > I gave the C-Example repository a try but I don't fully understand how > it works. Does the vm_main_with_parameters() block until the VM is quit > or some function it runs? From looking at the source code I'm not sure > what it does. > > On 1/22/20 12:17 PM, Pierce Ng wrote: > > On Wed, Jan 22, 2020 at 11:04:07AM +0100, teso...@gmail.com wrote: > >>nice to hear about the Pascal experiment, > > I've published my code on GH and sent an announcement to pharo-dev. > > > > Repo is https://github.com/PierceNg/pharo-vm-embedded-pascal > > > > Pierce > > > > > > -- > Yours sincerely > Plüss Roland > > Leader and Head Programmer > - Game: Epsylon ( http://www.indiedb.com/games/epsylon ) > - Game Engine: Drag[en]gine ( http://www.indiedb.com/engines/dragengine > , http://dragengine.rptd.ch/wiki ) > - As well as various Blender export scripts und game tools > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Embedding pharo in C++
Hi, we are working on the tools required to have embedded Pharo in different solutions. My idea is to implement an API to communicate to the image, I was thinking more in an API similar to Objective-C Bridge or COM objects. Still I am not sure how to design the API or the way to integrate it. Today, I am thinking about not having to much marsharlling of Pharo Objects to external objects, I am thinking to use a similar strategy like the used with FFI. A simple start point begins with exposing callbacks from the image. This will only work with the new Queue based callbacks, as the image will receive callbacks from outside a call-out. I have started with a POC of this, but time / resources is the limitant. I will try to put some time on it, but we have other priorities. Cheers, On Wed, Jan 22, 2020 at 9:38 AM Pierce Ng wrote: > > On Tue, Jan 21, 2020 at 08:20:48PM +0100, Roland Plüss via Pharo-users wrote: > > The first mode is the "runtime mode". This would be the mode used for > > the released products and does not allow to "directly modify" the image. > > This mode would only require basic set of classes (frameworks) since the > > game engine provides a large set of functionality in the module layer so > > the script layer provides the logic, UI and things like that. This image > > would not require to be enriched with a lot of things. > > This is doable currently. The Pharo image is embedded into the > executable and used in read-only mode. Although personally I'd implement > as much of the app logic in Pharo as possible simply because of the high > productivity. > > > The second mode is the "development mode". For this one I thought about > > exposing a Pharo VM image acting as the Coding and Debugging IDE. Here I > > would opt to expose the full power of Pharo/Smalltalk to the developer. > > I envisage doing this via some kind of data exchange between the host > program and Pharo, which seems doable for both the embedded and 'over the > wire' development cases. > > Pablo recently published an example of embedding a headless-but-GUI > Pharo image inside a C program via the Windows resource mechanism. As it > happens, I have just implemented the same example that works on Linux > and MacOS from one source code. Didn't test on Windows, but I'm sure > it'll work there too. In a day or two I will publish the code and blog > post. > > Attached teaser screenshot. :-) > > Pierce > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] [ANN] Embedding Image Example (Win)
Hi, I have produced an example of using the headless VM to have an embedded image in Windows. The example is hosted in Github (https://github.com/tesonep/pharo-vm-embedded-example) The example is a CMake project to generate a new small executable that uses the VM as a library. Also, it shows how to perform the branding of applications (I have used the same Pharo icon, but we can use anything else). In the example, I am opening one of the SDL2 examples, it opens a window where we can draw in an Athens Canvas. It requires a Cygwin environment, but if you are able to build the headless VM you already have it!. I will do other examples of the use case we are thinking for the headless VM! Cheers, Pablo -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Pharo TechTalk Oct 24
Hi, I am putting the recorded version. https://youtu.be/6iAzRYybY_M Cheers, Pablo On Thu, Oct 24, 2019 at 11:18 AM teso...@gmail.com wrote: > > Friendly reminder: > > Today at 17:00 (GMT+2, Paris Time) we have the techtalk about the headless VM > > Calendar entry: https://association.pharo.org/event-3419545 > > On Thu, Oct 17, 2019 at 1:02 PM Marcus Denker wrote: > > > > Hi, > > > > Next techtalk will be *next* week (Oct 24): > > > > Topic: Headless VM > > > > Calendar entry: https://association.pharo.org/event-3419545 > > > > > > (it was originally dated to today, we will try to be better in pre-planning > > from the next one on) > > > > -- > Pablo Tesone. > teso...@gmail.com -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Pharo TechTalk Oct 24
Friendly reminder: Today at 17:00 (GMT+2, Paris Time) we have the techtalk about the headless VM Calendar entry: https://association.pharo.org/event-3419545 On Thu, Oct 17, 2019 at 1:02 PM Marcus Denker wrote: > > Hi, > > Next techtalk will be *next* week (Oct 24): > > Topic: Headless VM > > Calendar entry: https://association.pharo.org/event-3419545 > > > (it was originally dated to today, we will try to be better in pre-planning > from the next one on) -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [Pharo-dev] The Lands Platform at SLE 2019: Pharo magic inside
Really nice!!! On Thu, Oct 24, 2019 at 8:44 AM Santiago Bragagnolo wrote: > > I loved it. great job nick! > > El mié., 23 oct. 2019 a las 9:16, Nick Papoylias () > escribió: >> >> The Lands Platform: Lan.guages and D.omain S.yntax, >> @sleconf 2019, co-located with @splashcon >> >> https://youtu.be/HMgJK8mVPYw >> >> Showcasing live magic tricks powered by the @pharoproject >> >> Best, >> >> Nick -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Microsoft COM
Hi Tomaz, nice to hear you like the code you found. It is a prototype and it is still needing some work. Basically, I needed a use case to continue improving it. Also, historically there was a limitation with the callbacks coming from an external thread, but that should be fixed now with the new Threading-ffi plugin. So, it will be possible also to expose Pharo objects as COM objects. Of course, we should join efforts. Do you have any use case in mind to start working on? Thanks, Pablo On Wed, Sep 25, 2019 at 10:29 PM eftomi wrote: > > Hi, > > I finally got some time to check Pablo's PharoCOM package closely. At first > I had problems with simple things, like making Word visible with > properyNamed:put: (it's frustrating when you see the app on the processes > list but you cannot control it :-)) but then I found the reason - it was a > tiny detail in Win32VariantBool>>#write:to:, and then - voila! > > Here's an example of opening Word for Windows, adding a blank document, > typing some text and getting this text back to Pharo: > > Ole32Lib uniqueInstance initLibrary. > wrd := COMDispatchInstance createInstanceByName: 'Word.Application'. > wrd propertyNamed: 'Visible' put: true. > > docs := wrd propertyNamed: 'Documents'. > docs dispatch: 'Add'. > > sel := wrd propertyNamed: 'Selection'. > sel dispatch: 'TypeText' withArguments: {'Hello from Pharo!'}. > > sel dispatch: 'WholeStory' . > Transcript show: (sel propertyNamed: 'Text'); cr. > > Another example is with Active Data Objects to get DB access: > > conn := COMDispatchInstance createInstanceByName: 'ADODB.Connection' . > conn dispatch: 'Open' withArguments: { 'DSN=this; Uid=that; Pwd=theOther;' } > . > conn propertyNamed: 'State' . --> true! > rst := (COMDispatchInstance createInstanceByName: 'ADODB.Recordset') . > rst dispatch: 'Open' withArguments: { 'SomeTableName' . conn . 3 . 1 }. > > The last line raises an exception because not all of the data types that > functions are reporting are implemented yet, as Pablo mentioned in his post. > > The package is really nicely prepared. The most impressive is it's > reflective capability. My "proof of concept" work with DispHelper library > that I mentioned in another forum topic was successful (I can get to the SQL > Server :-)), however it's a dead-end regarding the reflection. > > I'm very interested in COM implementation since I found Pharo to be very > useful as a tool, and since I work in "windowed" environment the COM > interaction is crucial to me. I decided to spent my free evenings working on > the project finalization. I'm not sure of how long will it take though :-) > Pablo, I hope that I can count on your help regarding the questions about > the overall architecture that you set. > > Is anybody else interested in this? Maybe we can join our efforts. > > Best wishes, > Tomaz > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [ANN] New Windows VM - Fixes 1903 error
A little information I was missing, the fixed VM is for both Pharo 7 and Pharo 8 Thanks Guille! Cheers, On Fri, Sep 20, 2019 at 12:06 PM teso...@gmail.com wrote: > Hello, > a new stable VM has been deployed. This VM uses a new version of > libSSH allowing us to work in the latest Windows version. > > It can be directly updated using Pharo Launcher or downloaded using > ZeroConf scripts. > > To update from Pharo Launcher you have to access to the VM Manager window. > Just click on the marked button and then in "Update" > [image: updateVM.png] > > Thanks!!! > > Cheers, > Pablo > > -- > Pablo Tesone. > teso...@gmail.com > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] [ANN] New Windows VM - Fixes 1903 error
Hello, a new stable VM has been deployed. This VM uses a new version of libSSH allowing us to work in the latest Windows version. It can be directly updated using Pharo Launcher or downloaded using ZeroConf scripts. To update from Pharo Launcher you have to access to the VM Manager window. Just click on the marked button and then in "Update" [image: updateVM.png] Thanks!!! Cheers, Pablo -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [Pharo-dev] [ANN] Pharo Headless - Beta (Actually what is between Alpha and Beta)
Hi, the repos is https://github.com/pharo-project/opensmalltalk-vm in the headless branch Cheers, Pablo On Mon, Aug 12, 2019 at 11:07 AM Tudor Girba wrote: > > Hi, > > Thanks for the answers! > > Could you point me to where the platforms for minheadless are (which > repository should we look at)? Also, to the build scripts that are used to > build it? > > Cheers, > Doru > > > > On Aug 12, 2019, at 10:56 AM, teso...@gmail.com wrote: > > > > Hi, > >The executables are not the same. > >We have 2 different now: the Stock VM (that is downloaded by the > > launcher, and it is the default download in Zero-conf), and the > > headless VM (this is downloaded by zero-conf when using > > vmLatestHeadless). > > > >Those platforms are not representative we currently have: OSX, > > Windows, and Linux all 64bits. We are working in ARM 32bits. > >In the near future, I will work on validating different flavors of > > Unix, but again It depends on the roadmap, and they are not there now. > > > >If someone requires some other platform we can talk to see how it > > can fit in the roadmap. > > > > Cheers, > > Pablo > > > > On Mon, Aug 12, 2019 at 10:03 AM Tudor Girba wrote: > >> > >> Hi, > >> > >> Yes. We will be testing these days and we will come back with more details. > >> > >> Two more questions: > >> - Is minheadlessVM now integrated in the regular VM binary or are the two > >> different artifacts? > >> - Also are the platforms from > >> https://github.com/pharo-project/opensmalltalk-vm/tree/pharo/platforms > >> representative for minheadlessVM? > >> > >> Cheers, > >> Doru > >> > >> > >> > >>> On Aug 12, 2019, at 9:11 AM, teso...@gmail.com wrote: > >>> > >>> Hi Doru, > >>> can you give us more insight of the errors? Because there should > >>> not be changes in the behavior of the VM. Maybe there are issues, we > >>> have used the Pharo tests as a guarantee and we are laking some tests. > >>> > >>> Cheers, > >>> Pablo. > >>> > >>> On Sun, Aug 11, 2019 at 9:04 PM Tudor Girba wrote: > >>>> > >>>> Hi, > >>>> > >>>> > >>>> > >>>>> On Aug 11, 2019, at 5:29 PM, ducasse wrote: > >>>>> > >>>>> > >>>>> > >>>>>> On 11 Aug 2019, at 13:19, Tudor Girba wrote: > >>>>>> > >>>>>> Excellent news! > >>>>>> > >>>>>> I should say that for GT we are currently using the minheadlessVM > >>>>>> (Ronie’s work) out of the opensmalltalk-vm repo > >>>>>> (https://bintray.com/opensmalltalk/vm/cog) and it works remarkably > >>>>>> well. > >>>>>> > >>>>>> We started to play with your minheadlessVM. So far it looks like there > >>>>>> are differences, although I am sure they are not large. > >>>>> > >>>>> like what? > >>>> > >>>> I do not know yet, but running GT in headless opens the window with the > >>>> one from opensmalltalk-vm, but not with the new one. We did not yet look > >>>> into details, but we will. > >>>> > >>>> Cheers, > >>>> Doru > >>>> > >>>> > >>>>>> So, what is the difference between the minheadlessVM built by you > >>>>>> versus the one from opensmalltalk-vm? > >>>>>> > >>>>>> Cheers, > >>>>>> Doru > >>>>>> > >>>>>> > >>>>>>> On Aug 8, 2019, at 9:53 AM, teso...@gmail.com wrote: > >>>>>>> > >>>>>>> TL;DR; > >>>>>>> == > >>>>>>> > >>>>>>> For the anxious, you can get real headless vm and image from > >>>>>>> zero-conf. > >>>>>>> > >>>>>>> $ wget get.pharo.org/64/80+vmHeadlessLatest | bash > >>>>>>> > >>>>>>> Zero conf scripts remain unchanged for users. > >>>>>>> > >>>>>>> However, if you are launching the VM by hand from the executable > >>&g
Re: [Pharo-users] [Pharo-dev] [ANN] Pharo Headless - Beta (Actually what is between Alpha and Beta)
Hi, The executables are not the same. We have 2 different now: the Stock VM (that is downloaded by the launcher, and it is the default download in Zero-conf), and the headless VM (this is downloaded by zero-conf when using vmLatestHeadless). Those platforms are not representative we currently have: OSX, Windows, and Linux all 64bits. We are working in ARM 32bits. In the near future, I will work on validating different flavors of Unix, but again It depends on the roadmap, and they are not there now. If someone requires some other platform we can talk to see how it can fit in the roadmap. Cheers, Pablo On Mon, Aug 12, 2019 at 10:03 AM Tudor Girba wrote: > > Hi, > > Yes. We will be testing these days and we will come back with more details. > > Two more questions: > - Is minheadlessVM now integrated in the regular VM binary or are the two > different artifacts? > - Also are the platforms from > https://github.com/pharo-project/opensmalltalk-vm/tree/pharo/platforms > representative for minheadlessVM? > > Cheers, > Doru > > > > > On Aug 12, 2019, at 9:11 AM, teso...@gmail.com wrote: > > > > Hi Doru, > >can you give us more insight of the errors? Because there should > > not be changes in the behavior of the VM. Maybe there are issues, we > > have used the Pharo tests as a guarantee and we are laking some tests. > > > > Cheers, > > Pablo. > > > > On Sun, Aug 11, 2019 at 9:04 PM Tudor Girba wrote: > >> > >> Hi, > >> > >> > >> > >>> On Aug 11, 2019, at 5:29 PM, ducasse wrote: > >>> > >>> > >>> > >>>> On 11 Aug 2019, at 13:19, Tudor Girba wrote: > >>>> > >>>> Excellent news! > >>>> > >>>> I should say that for GT we are currently using the minheadlessVM > >>>> (Ronie’s work) out of the opensmalltalk-vm repo > >>>> (https://bintray.com/opensmalltalk/vm/cog) and it works remarkably well. > >>>> > >>>> We started to play with your minheadlessVM. So far it looks like there > >>>> are differences, although I am sure they are not large. > >>> > >>> like what? > >> > >> I do not know yet, but running GT in headless opens the window with the > >> one from opensmalltalk-vm, but not with the new one. We did not yet look > >> into details, but we will. > >> > >> Cheers, > >> Doru > >> > >> > >>>> So, what is the difference between the minheadlessVM built by you versus > >>>> the one from opensmalltalk-vm? > >>>> > >>>> Cheers, > >>>> Doru > >>>> > >>>> > >>>>> On Aug 8, 2019, at 9:53 AM, teso...@gmail.com wrote: > >>>>> > >>>>> TL;DR; > >>>>> == > >>>>> > >>>>> For the anxious, you can get real headless vm and image from zero-conf. > >>>>> > >>>>> $ wget get.pharo.org/64/80+vmHeadlessLatest | bash > >>>>> > >>>>> Zero conf scripts remain unchanged for users. > >>>>> > >>>>> However, if you are launching the VM by hand from the executable > >>>>> instead of the launcher scripts (pharo and pharo-ui) as in > >>>>> > >>>>> $ ./pharoexecutable Pharo.image > >>>>> > >>>>> the image will launch in headless mode and will not open a window. > >>>>> To launch it in headfull, you can use the --interactive argument after > >>>>> the image, which will make the image open a window using SDL2. > >>>>> > >>>>> $ ./pharoexecutable Pharo.image --interactive > >>>>> > >>>>> Long version > >>>>> > >>>>> > >>>>> Hi, this mail is the happy intermediate result of the work that us, > >>>>> the Pharo Consortium Team, has been doing in the last couple of > >>>>> months. > >>>>> Our main objective is to have a real headless implementation of Pharo > >>>>> where all the responsibility to open or not a World window (or other) > >>>>> is handled by the image. > >>>>> For doing so we have done a series of modifications in the image and > >>>>> the VM side. > >>>>> We consider this is the path that Pharo 8 and following versions > >
Re: [Pharo-users] [Pharo-dev] [ANN] Pharo Headless - Beta (Actually what is between Alpha and Beta)
Hi Doru, can you give us more insight of the errors? Because there should not be changes in the behavior of the VM. Maybe there are issues, we have used the Pharo tests as a guarantee and we are laking some tests. Cheers, Pablo. On Sun, Aug 11, 2019 at 9:04 PM Tudor Girba wrote: > > Hi, > > > > > On Aug 11, 2019, at 5:29 PM, ducasse wrote: > > > > > > > >> On 11 Aug 2019, at 13:19, Tudor Girba wrote: > >> > >> Excellent news! > >> > >> I should say that for GT we are currently using the minheadlessVM (Ronie’s > >> work) out of the opensmalltalk-vm repo > >> (https://bintray.com/opensmalltalk/vm/cog) and it works remarkably well. > >> > >> We started to play with your minheadlessVM. So far it looks like there are > >> differences, although I am sure they are not large. > > > > like what? > > I do not know yet, but running GT in headless opens the window with the one > from opensmalltalk-vm, but not with the new one. We did not yet look into > details, but we will. > > Cheers, > Doru > > > >> So, what is the difference between the minheadlessVM built by you versus > >> the one from opensmalltalk-vm? > >> > >> Cheers, > >> Doru > >> > >> > >>> On Aug 8, 2019, at 9:53 AM, teso...@gmail.com wrote: > >>> > >>> TL;DR; > >>> == > >>> > >>> For the anxious, you can get real headless vm and image from zero-conf. > >>> > >>> $ wget get.pharo.org/64/80+vmHeadlessLatest | bash > >>> > >>> Zero conf scripts remain unchanged for users. > >>> > >>> However, if you are launching the VM by hand from the executable > >>> instead of the launcher scripts (pharo and pharo-ui) as in > >>> > >>> $ ./pharoexecutable Pharo.image > >>> > >>> the image will launch in headless mode and will not open a window. > >>> To launch it in headfull, you can use the --interactive argument after > >>> the image, which will make the image open a window using SDL2. > >>> > >>> $ ./pharoexecutable Pharo.image --interactive > >>> > >>> Long version > >>> > >>> > >>> Hi, this mail is the happy intermediate result of the work that us, > >>> the Pharo Consortium Team, has been doing in the last couple of > >>> months. > >>> Our main objective is to have a real headless implementation of Pharo > >>> where all the responsibility to open or not a World window (or other) > >>> is handled by the image. > >>> For doing so we have done a series of modifications in the image and > >>> the VM side. > >>> We consider this is the path that Pharo 8 and following versions > >>> should follow, as it will severely improve server-side and command > >>> line Pharo and in building custom desktop applications. > >>> > >>> These modifications are available only in 64-bits machines (Windows, > >>> OSX, and Linux). > >>> ARM32 and 64bits headless is in the roadmap, but it is delayed because > >>> we have prioritized our three major platforms for this first couple of > >>> months. > >>> > >>> All this work is based in Opensmalltalk-VM and Ronnie's initial work > >>> on headless. > >>> We are really grateful to all the contributors in the history of this > >>> nice product. > >>> To achieve a real headless VM we have brought modifications in the > >>> source tree because most of the platform code to open and manipulate > >>> windows is not required anymore. > >>> Instead, we use the SDL2 library that implements a nice layer on top > >>> of the OS and allows us to manage on the image side through FFI. > >>> > >>> So this mail is now an open call for (beta?)testing. > >>> The sources of the current VM we are building are in the headless branch > >>> in > >>> https://github.com/pharo-project/opensmalltalk-vm > >>> And we have set up a CI that is both building and testing the VM in > >>> https://ci.inria.fr/pharo-ci-jenkins2/job/pharo-vm/job/headless/ > >>> > >>> For the future we have a lot of ideas, that will wait for another long > >>> email or a beer-talk @ESUG. > >>> We want to hear your ideas!! > >>> > >>> Image-Side Improvements > &g
Re: [Pharo-users] Desktop - just try ...
Very very nice, and it fits perfectly!!! On Thu, Aug 8, 2019 at 12:16 AM Torsten Bergmann wrote: > > |image| > image := ZnEasy getJpeg: > 'http://www.bing.com/th?id=OHR.NubbleLight_EN-US4307721919_1920x1080.jpg=LaDigue_1920x1080.jpg=hp'. > > World > backgroundImage: image > layout: #scaled. > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] [ANN] Pharo Headless - Beta (Actually what is between Alpha and Beta)
TL;DR; == For the anxious, you can get real headless vm and image from zero-conf. $ wget get.pharo.org/64/80+vmHeadlessLatest | bash Zero conf scripts remain unchanged for users. However, if you are launching the VM by hand from the executable instead of the launcher scripts (pharo and pharo-ui) as in $ ./pharoexecutable Pharo.image the image will launch in headless mode and will not open a window. To launch it in headfull, you can use the --interactive argument after the image, which will make the image open a window using SDL2. $ ./pharoexecutable Pharo.image --interactive Long version Hi, this mail is the happy intermediate result of the work that us, the Pharo Consortium Team, has been doing in the last couple of months. Our main objective is to have a real headless implementation of Pharo where all the responsibility to open or not a World window (or other) is handled by the image. For doing so we have done a series of modifications in the image and the VM side. We consider this is the path that Pharo 8 and following versions should follow, as it will severely improve server-side and command line Pharo and in building custom desktop applications. These modifications are available only in 64-bits machines (Windows, OSX, and Linux). ARM32 and 64bits headless is in the roadmap, but it is delayed because we have prioritized our three major platforms for this first couple of months. All this work is based in Opensmalltalk-VM and Ronnie's initial work on headless. We are really grateful to all the contributors in the history of this nice product. To achieve a real headless VM we have brought modifications in the source tree because most of the platform code to open and manipulate windows is not required anymore. Instead, we use the SDL2 library that implements a nice layer on top of the OS and allows us to manage on the image side through FFI. So this mail is now an open call for (beta?)testing. The sources of the current VM we are building are in the headless branch in https://github.com/pharo-project/opensmalltalk-vm And we have set up a CI that is both building and testing the VM in https://ci.inria.fr/pharo-ci-jenkins2/job/pharo-vm/job/headless/ For the future we have a lot of ideas, that will wait for another long email or a beer-talk @ESUG. We want to hear your ideas!! Image-Side Improvements === - The image handles the creation or not of the main world window. - We incorporated the idea of World renderer, where different backends are used to render the world. - We have 3 backends: VM support (compatibility with non-headless VMs), and OSWindow with two backends: SDL and GTK3+. - The modifications in the image are fully backward compatible with the non-headless VM and are pushed since weeks in the latest 8.0 image. - We move the handling of events to the image side when using SDL and GTK3+, opening the door to a richer set of events and finer-grained control over them. - SDL and GTK versions are implemented using FFI calls. VM-Side Improvements - VMMaker code migrated to Tonel thanks to Feenk and included in the repository of the VM. - Making VMMaker execute in Pharo 7 and 8. - Removing GPL code from the VM repository (GDB). - Slowly adding new tests for the JIT / Slang and VMGeneration. - Restructuring of the source code. - A new simpler CMake build. - Generate VM code from Slang on each build. - A CI process to validate (including the run of the tests in Pharo and the ones adding to the VM). - Simplification of the codebase. - Maximize the reuse of code between the platforms (preferring the standard versions over the platform-specific). - Cleaning up duplicated code. - All the plugins are now external plugins. - The VM is now a dynamic library. This is a first step towards embedding Pharo into other applications. - The main executable is a thin frontend (you can change it or implement your own). - Removing unused plugins. - Improved crash dump. Especially the crash dump works now in Windows 64bits. - Dummy implementation of Security plugin (it is going away eventually). - Cleanup of SSL, UUID, and Socket plugin. - Cleanup of conditional code (Still to improve). - Improving the types used in the functions (we have to be neat to be multiplatform/multi-arch). - Improving the lookup of modules - Improving the logging of the VM - Improving the handling of VM arguments Thanks a lot for reading so long!! We hope you enjoy the VM and please tell us all the problems you find!! Pablo, Guille, and Esteban
Re: [Pharo-users] Working VM for OS X for Pharo 7
Good morning, Last week I had a problem with a conflicting version of libgit installed by brew. In my case, brew had updated the version making it incompatible with the bindings in FFi. Could you check the execution of: DYLD_PRINT_LIBRARIES_POST_LAUNCH=1 ./pharo-vm/Pharo.app/Contents/MacOS/Pharo Pharo.image So we can see the libgit that is loading. This can be fixed in the image side, I remember I fixed a bug in the lookup of libgit. On Thu, 14 Feb 2019, 09:09 Hilaire Hi, > > Where is it possible to get a working OS X VM for Pharo7 ? > > Accoring to my test, the VM linked at http://pharo.org/download as error > with a libgit plugin (same for linux VM btw) > > Thanks > > Hilaire > > -- > Dr. Geo > http://drgeo.eu > > > >
Re: [Pharo-users] Unable to compile myself Pharo
Hi Alexandre, as Cédrick said there is no need to generate a new image from scratch. Pharo is basically divided in two parts an image (that is the one that it is generated by the process you want to run) and a virtual machine to run the image. The image is multi-OS you can download a 32 bits image and run it in any of the supported operating systems. Usually the VM will run in different OSs, there is a VM for Mac OS, one for Windows and one for Unix(es). The VM came in 32 and 64 bits flavors. You should try to run the pre built version of the pack. And again using the Pharo Launcher will be the simpler option. Cheers, Pablo On Wed, Nov 28, 2018 at 1:02 PM Cédrick Béler wrote: > Hi Alexandre, > > Do you really want to « bootstrap » an image ? You don’t need to (just use > an official image). > > Try here, either through the launcher or the curl command line: > > https://pharo.org/download (Linux for thé launcher or at the end of the > page from the command line. > > HTH, > > Cedrick > > Envoyé de mon iPhone > > Le 28 nov. 2018 à 11:23, Garreau, Alexandre a > écrit : > > Le 28/11/2018 à 11h17, Garreau, Alexandre a écrit : > > This VM uses a separate heartbeat thread to update its internal clock > > and handle events. For best operation, this thread should run at a > > higher priority, however the VM was unable to change the priority. The > > effect is that heavily loaded systems may experience some latency > > issues. If this occurs, please create the appropriate configuration > > file in /etc/security/limits.d/ as shown below: > > > cat < > * hardrtprio 2 > > * softrtprio 2 > > END > > > and report to the pharo mailing list whether this improves behaviour. > > > Btw changing this didn’t improve anything until then, since build still > fails (but the error disappeared). > > Sorry to clutter with a second mail. > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] question about FFI
Hi, could be the problem that you are using the same external array for both xm and ym?. The clone message just creates a shallow copy of the external array. It does not allocates a new external array, it only copies the address in both xm and ym. You should better do something like this: xm := FFIExternalArray externalNewType: 'float' size: 2. ym := FFIExternalArray externalNewType: 'float' size: 2. Cheers. On Mon, Nov 26, 2018 at 9:30 AM Yuriy Babah wrote: > Hi ! > > I'm trying to call a very simple function from C ++ lib, writed for the > test. > function with prototype: > > extern "C" float interpolationFunc(float* xm, float* ym, int size, float > x). > > In Pharo7 wrote: > FFIExamples class >> interpolationFunc_xm: xM ym: yM size: size x: x > ^ self ffiCall: #(float interpolationFunc #(float * xM , float * yM , > int size , float x)) module: 'libinterpolationLib.so' > > in Playground i'm doing: > xm := FFIExternalArray externalNewType: 'float' size: 2. > ym := xm clone. > #(2 3) doWithIndex: [:each :i | xm at: i put: each]. > #(3 4) doWithIndex: [:each :i | ym at: i put: each]. > FFIExamples interpolationFunc_xm: xm pointer ym: ym pointer size: 2 x: > 2.5 . > > last expression returninп me 0.0, but right is 3.5. > > I'm dit the same in Python3 ctypes, and there work's fine. > > In UnifiedFFI booklet is absent chapter "Arrays", anybody may help with > whot i'm doing wrong? > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] ZnClient 403 but 200 in Firefox
Hi Hernan, quite interesting. I have tried with curl and it works, but with wget it doesn't work. Both using the brew versions in my OSX machine. To me, it is a problem of the headers. Cheers. On Wed, Oct 10, 2018 at 10:07 PM Hernán Morales Durand < hernan.mora...@gmail.com> wrote: > When I visit this site http://ifconfig.me/ip using the web browser I > get the expected text output. However if I try to do it from Pharo 6.1 > (Windows 8.1) I get a 403 forbidden response using this code: > > ZnClient new > systemPolicy; > beOneShot; > accept: ZnMimeType textPlain; > timeout: 6000; > url: 'http://ifconfig.me/ip'; > get. > > 2018-09-16 03:06:18 011 Retrying ConnectionTimedOut: Cannot connect to > 153.121.72.212:80 > 2018-09-16 03:06:19 012 Connection Established ifconfig.me:80 > 153.121.72.212 288ms > 2018-09-16 03:06:19 013 Request Written a ZnRequest(GET /all.xml) 1ms > 2018-09-16 03:06:19 014 Response Read a ZnResponse(403 Forbidden > text/html;charset=iso-8859-1 209B) 318ms > 2018-09-16 03:06:19 015 GET /all.xml 403 209B 319ms > 2018-09-16 03:06:19 016 Connection Closed 153.121.72.212:80 > > In Firefox this is the output > > Request Headers Firefox: > > Host: ifconfig.me > User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:62.0) > Gecko/20100101 Firefox/62.0 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 > Accept-Language: en-US > Accept-Encoding: gzip, deflate > DNT: 1 > Connection: keep-alive > Upgrade-Insecure-Requests: 1 > > Response Headers Firefox: > > HTTP/1.1 200 OK > Date: Sun, 16 Sep 2018 16:47:02 GMT > Server: Apache > Vary: Accept-Encoding > Content-Encoding: gzip > Content-Length: 32 > Connection: close > Content-Type: text/plain > > > Any idea? > > Cheers, > > Hernán > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] is class-side name setter used by the system
Hi Peter, there is no more #name: in Class (or ClassDescription or Behavior). It is named #setName: It is only used by the class builder, some class methods and some tests. It could be hidden better if it is still a problem. Cheers. On Mon, Sep 17, 2018 at 9:57 AM Peter Uhnak wrote: > Hi, > > is the class-side "name:" setter used by the system itself? > Because I remember many times overriding it for my own needs and it never > broke anything as far as I know... which makes it strange why it even > exists (because it is a trap). > > Thanks, > Peter > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [Esug-list] Internet of Things in Smalltalk - meeting proposal
Nice idea. I will try to be there. On Mon, 10 Sep 2018, 16:09 Cédrick Béler, wrote: > Hi, > > We will have a meeting Tuesday afternoon on IoT at esug. > > More info later to see how we organize that. > > Should be after « show us your project » around 5 or 6 am. > > More info later especially on where the meeting will take place (might be > around the beach). > > See you later for those interested (maybe answer there so that we can > count and find an appropriate place). > > Cheers, > > Cedrick > ___ > Esug-list mailing list > esug-l...@lists.esug.org > http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org >
Re: [Pharo-users] Trait method override
Jajajja, yes I like the power that there is in the language. It opens a lot of doors and possibilities. You can check the implementation of deep alias that rewrites the users of the aliased method. There is also the ability to implement new operations to traits algebra. You can check how they are implemented and implement new operations. Cheers On Fri, Aug 17, 2018 at 1:23 PM Vitor Medina Cruz wrote: > Hello Pablo, > > Don't think it is ugly, I personally think it is wonderfull how those > extensions to the language can be done with normal messaging passing code! > But the information about this seems scattered a bit, I found in google and > was not certain if the information was official or correct. > > Also, there could be some default aliases in hand, in a way similar to > groovy: > http://docs.groovy-lang.org/latest/html/documentation/#_user_conflict_resolution > > So, if I use TraitA with a methodX, this method could be aliased by > default with something like TraitA_methodX. Don't know if this have some > problem, just an idea (maybe I will explore this here :) ) > > regards, > Vitor > > On Fri, Aug 17, 2018 at 4:37 AM, teso...@gmail.com > wrote: > >> Hi Vitor, >>as Julien correctly said there is no super call in traits. Currently >> the solution, maybe is a bit ugly, it is to use aliasing. >> Cheers, >> Pablo >> >> On Fri, Aug 17, 2018 at 12:10 AM Vitor Medina Cruz >> wrote: >> >>> Thanks Julian! >>> >>> On Thu, Aug 16, 2018 at 5:38 PM, Julien >>> wrote: >>> >>>> Hello Vitor, >>>> >>>> Yeah, I was talking about that with Pablo (who implemented stateful >>>> traits) some times ago. >>>> >>>> He told me that aliasing was he way to go. >>>> >>>> There is no other option to override a trait method without aliasing it. >>>> >>>> Cheers, >>>> >>>> Julien >>>> >>>> --- >>>> Julien Delplanque >>>> Doctorant à l’Université de Lille >>>> http://juliendelplanque.be/phd.html >>>> Equipe Rmod, Inria >>>> Bâtiment B 40, Avenue Halley 59650 >>>> <https://maps.google.com/?q=40,+Avenue+Halley+59650+Villeneuve+d'Ascq=gmail=g> >>>> Villeneuve >>>> <https://maps.google.com/?q=40,+Avenue+Halley+59650+Villeneuve+d'Ascq=gmail=g> >>>> d'Ascq >>>> <https://maps.google.com/?q=40,+Avenue+Halley+59650+Villeneuve+d'Ascq=gmail=g> >>>> Numéro de téléphone: +333 59 35 86 40 >>>> >>>> Le 16 août 2018 à 19:32, Vitor Medina Cruz a >>>> écrit : >>>> >>>> Well, found out about aliasing in >>>> http://pharo.gemtalksystems.com/book/LanguageAndLibraries/Traits/, is >>>> that the correct way of doint it? >>>> >>>> On Thu, Aug 16, 2018 at 11:30 AM, Vitor Medina Cruz < >>>> vitormc...@gmail.com> wrote: >>>> >>>>> Hello, >>>>> >>>>> In a class that uses a Trait, how can I override one of it's method by >>>>> appending behavior to the method implemented by the Trait? In a typical >>>>> override, this is done by calling super: >>>>> >>>>> method >>>>> >>>>>super method >>>>>"extended behavior" >>>>>... >>>>> >>>>> >>>>> Is there a way to change "super" to a reference the Trait? >>>>> >>>>> Regards, >>>>> Vitor >>>>> >>>> >>>> >>>> >>> >> >> -- >> Pablo Tesone. >> teso...@gmail.com >> > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Trait method override
Hi Vitor, as Julien correctly said there is no super call in traits. Currently the solution, maybe is a bit ugly, it is to use aliasing. Cheers, Pablo On Fri, Aug 17, 2018 at 12:10 AM Vitor Medina Cruz wrote: > Thanks Julian! > > On Thu, Aug 16, 2018 at 5:38 PM, Julien > wrote: > >> Hello Vitor, >> >> Yeah, I was talking about that with Pablo (who implemented stateful >> traits) some times ago. >> >> He told me that aliasing was he way to go. >> >> There is no other option to override a trait method without aliasing it. >> >> Cheers, >> >> Julien >> >> --- >> Julien Delplanque >> Doctorant à l’Université de Lille >> http://juliendelplanque.be/phd.html >> Equipe Rmod, Inria >> Bâtiment B 40, Avenue Halley 59650 >> <https://maps.google.com/?q=40,+Avenue+Halley+59650+Villeneuve+d'Ascq=gmail=g> >> Villeneuve >> <https://maps.google.com/?q=40,+Avenue+Halley+59650+Villeneuve+d'Ascq=gmail=g> >> d'Ascq >> <https://maps.google.com/?q=40,+Avenue+Halley+59650+Villeneuve+d'Ascq=gmail=g> >> Numéro de téléphone: +333 59 35 86 40 >> >> Le 16 août 2018 à 19:32, Vitor Medina Cruz a >> écrit : >> >> Well, found out about aliasing in >> http://pharo.gemtalksystems.com/book/LanguageAndLibraries/Traits/, is >> that the correct way of doint it? >> >> On Thu, Aug 16, 2018 at 11:30 AM, Vitor Medina Cruz > > wrote: >> >>> Hello, >>> >>> In a class that uses a Trait, how can I override one of it's method by >>> appending behavior to the method implemented by the Trait? In a typical >>> override, this is done by calling super: >>> >>> method >>> >>>super method >>>"extended behavior" >>>... >>> >>> >>> Is there a way to change "super" to a reference the Trait? >>> >>> Regards, >>> Vitor >>> >> >> >> > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [Pharo-dev] New Iceberg Version 1.2.1
Only adding a small detail, the Metacello expression is used to generate the project that is offered. Also I see it as the Detached head status for projects that are loaded using Metacello. Maybe we should display the dirtiness in other way, but I think that is not a problem. It is normal that a project is marked dirty while used. Cheers On Tue, Aug 7, 2018 at 4:01 PM Guillermo Polito wrote: > Hi, > > I'll write down some of the reasons of the project's design, like that I > can afterwards copy paste it in the wiki :). > > First, this design did not came up from an egg. We worked on it for about > two months. And it is thought to be backwards compatible and manage lots of > metacello particularities. It may have things that are perfectible, sure, > so let's discuss it. > > One of the main problems we saw in metacello, and that Iceberg inherited, > was the "source subdirectory" thing. This source directory had to be > specified in the CLIENT, meaning that every time we clone a repository we > should know by heart the directory chose by its developer. Moreover, we > lack a standard way to do it, so everybody does as he feels (root > directory, src, source, repository, mc). > > This has some bad consequences: > - once a repository is referenced by some other project, it is more > complicated to change its source directory. Imagine that tomorrow we set as > standard that all git repos should have the code in src. Then voyage should > change. And all its clients too. > - Making a typo in the code subdirectory means sometimes super ugly > errors from metacello that are difficult to debug and understand (e.g., > "Cannot resolve BaselineOfMetacello WTF") > > Moreover, there was another problem that people started stumbling on: the > fact that iceberg got confused sometimes thinking that an empty project was > in filetree (to keep backwards compatibility with projects without a > .properties). > > So we decided that for this release we wanted to revert a bit that > situation. Think object: let's put the meta-data used to interpret a > project's structure inside the project itself. > The idea is that: > > - each project should contain both a .project and a .properties file. The > first can contain arbitrary project meta-data (such as the source > directory). The second contains the cypress properties, which are needed to > correctly interpret the code inside the source directory. > - a project without a .project file is an old project and cannot be > interpreted, because we don't know the source directory > - a project without a .properties file is an old project and is by > default transformed in a project with a #filetree properties file > - an old project cloned from iceberg detects the missing .project file > and gives the user the opportunity to declare it (and then commit it > explicitly) > - an old project cloned and loaded from a Metacello expression defining a > source directory will honnor the source directory defined in the Metacello > expression (for backwards compatibility, and we have ~500 tests about this). > > # About defaults values / forcing the user to define a project > > First, notice that even when the repositories you load are just marked as > "dirty". > This is because in memory we add a project to your repository. > But you're not forced to commit it. > Actually, you can still load packages and baselines from that repository > without committing. > > This is in line with Iceberg's "explicitness". We try to not do any > destructive operation without asking the user first (that's why we have > several preview windows for pushing, pulling, checkout, merge..., and why > contrastingly with monticello we show the committed changes on the commit > window...). So, instead of transparently "adding the file" we have decided > to modify the project in memory and let the user the responsibility to > commit that file. > > If there's a drawback, is that the repository is marked as dirty. Which is > a bit noisy, yes, but still I think it's not so bad compared with the > previous drawbacks. > To solve this, we could have some default values, yes, and only mark it as > dirty if the project does not follow the default value. > This could work, but right now all projects use different names for their > source directories. > So the question is, what would be a good default? I'd like to use 'src' > since this is short, well known and less alien (all these in the sense that > we do not lose anything and we have a lot to gain by using it). > However, not much repositories use 'src' so it will still produce a lot of > "noise"... > > But still! Committing that file is a one-time operation. Once people fix > their repositories adding the project meta-data, you will not see them > dirty anymore. So we can see this as a transition noise too... > > Of course, new ideas are welcome. I'll let Pablo and Esteban add their > points of view on this too. > Guille > -- Pablo Tesone. teso...@gmail.com
[Pharo-users] New Iceberg Version 1.2.1
New Iceberg Version 1.2.1 [ https://github.com/pharo-vcs/iceberg/releases/tag/v1.2.0 + https://github.com/pharo-vcs/iceberg/releases/tag/v1.2.1] Thanks to all brave users, issue reporters, and contributors :). This version includes the implementation of projects. Projects are a way of defining basic metadata of the repository. Now, this metadata just includes the source directory. This means that people do not need anymore to provide ALL THE TIME the source directory. Instead, every repository includes a project file that provides it. Iceberg will guide people to create the given file. This file is managed by Iceberg and people should not touch it from the outside or accept the consequences :). This version is integrated in the latest Pharo 7 images. #New Features - #866 Introduce first version of Projects #Infrastructure - #870 Improving tests of Metacello Integration - #903 Split basic tests from metacello tests in CI - #914 Sync Wiki with documentation directory automatically - #934 Manually check metacello integration dialogs - #935 Try to refrite the metacello integration tests. - #940 Installation in new Pharo should also bootstrap pharo repository #Enhancements - #675 The History of a Method in Calypso should show a progress bar. - #788 Show progress during network operations (fetch,push, ...) Libgit. - #875 Tonel plugin does not delete .filetree Migration - #897 Update to OSSubprocess 1.0.1 - #911 Repair Checkout branch should appear in "no project found" - #933 Fix Edit repository dialog - #939 IceInteractiveErrorVisitor duplicates IceTipInteractiveErrorVisitor - #944 Extract pharo repository bootstrap code into iceberg #Bug Fixes - #828 Convert sources to tonel raises an Exception - #839 Infinite loop in IceGitLocalRepositoryType if the path is wrong - #849 VM crash while saving credentials Credential Manager - #851 .properties file is not create if project is imported and not cloned. - #869 Error msg after an http timeout is unreadable - #873 Error with credential provider Credential Manager - #874 The integration with Metacello does not work when there is a src directory, but not project file. - #880 Putting "." in project src field gives dnu - #884 Edit Project Dialog tries to select 'src' folder as default, but does not handle if it does not exists - #886 Edit Project Dialog does not allow to select the root of the repository as source directory - #888 Could not locate repository does not have subdirectory anymore. - #889 Loading an unborn project through metacello does not work - #894 GitHubAPI fails when the API responds with a 204 No Content - #901 I get a DNU projectName - #902 Edit project metadata does not detect default format - #918 Cloning pharo from a sync'ed repository does not correctly show dirty packages - #928 Pull request cancel - #930 Changed ivar/slot name in stateful trait not recognized as a change - #931 DNU when trying to unload an Iceberg pkg where underlying Pharo pkg has been removed - #932 Pharo repository forgets packages - #938 Do not catch assertion failures - #941 Iceberg pre-installed repository has wrong repair action - #946 Fixing Metacello Integration Tests - #948 Cloning from github creates an invalid remote - #950 Iceberg v1.2.0 breaks projects Metacello Integration bug - #951 New project window should be coherent on the vocabulary UI enhancement - #953 Make remote request anonymous enhancement - #952 Cannot Clone Pharo Repository Pharo plugin bug - #955 Repair actions for repositories with fetch required are wrong UI bug -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] transactions on pharo objects
Hello, A lot of time ago, we have implemented a basic support for STM in Java (it is written in Scala... dark dark dark ages). We have used aspect oriented programming to intercept the reading and writing of the instance variables of the classes that support the transactions. We kept a dictionary with the values for the transactions in course and a version, and the original object has the "commited" values. On a commit you can apply the changes to the object iff there is no conflict version. I think a similar implementation could be done in Pharo using Slots in a couple of hours. Also, you should use process specific values to detect and handle in witch transaction you are. Depending how much you want to guarantee ACID properties, you will have simpler or complex implementation. In those days, we only wanted only isolation. Sadly, the details of the implementation are in a Master Thesis in Spanish, I doubt they will be useful, but still I can point you to the source code of the solution. By the way, this is still in use as a part of a tool to teach UI design. https://github.com/uqbar-project/arena/tree/master/arena-pot Cheers, Pablo On Tue, Jul 31, 2018 at 8:48 AM Norbert Hartl wrote: > > > Am 31.07.2018 um 06:57 schrieb Richard O'Keefe : > > Basically, what you are talking about is Software Transactional Memory. > According to > https://en.wikipedia.org/wiki/Software_transactional_memory#Smalltalk > there *is* STM support for Pharo at > http://source.lukas-renggli.ch/transactional/ > although the last version there is from 2012, and there have been major > changes to Pharo > since then, so it probably doesn't work any longer. > > You could probably make a TransactionalObject class with a > 'lastTransaction' > instance variable, and a noteChange method that checks if lastTransaction > == > Transaction current, and if not, pushes self -> self shallowCopy onto a > stack > inside Transaction and sets lastTransaction to Transaction current. Then > to > roll back a transaction, peel back original -> backup records from the > stack > and do original copyFrom: backup for each of them. > > Please don't ask me to think about combining this with concurrency. > > You could delegate the transaction list and other objects to a process > specific variable. But the biggest problem with a copy approach is that all > identity checks fail with the copied objects > > Norbert > > On 31 July 2018 at 01:16, Peter Uhnák wrote: > >> Hi, >> >> is there some library or approach how to do transactions in pharo? >> And I don't mean database transactions, but directly in memory on Pharo >> objects... e.g. >> >> p := Person new. >> >> transaction do: [ >> p name: 'Nobody'. >> p age: 70. >> ] on: Error do: [ >> transaction rollback. >> ]. >> >> self assert: p name equals: 'Nobody'. >> self assert: p age equals: 70. >> >> transaction do: [ >> p name: 'Somebody'. >> p age: 1 / 0. >> ] on: Error do: [ >> transaction rollback. >> ]. >> >> self assert: p name equals: 'Nobody'. >> self assert: p age equals: 70. >> >> Any pointers appreciated. >> >> Thanks, >> Peter >> > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [ANN] Iceberg v1.0.0
Thanks a lot!! On Wed, May 30, 2018 at 10:42 AM, Esteban Lorenzano wrote: > yep… I will backport VM to 6.1 now. > > cheers, > Esteban > > > On 30 May 2018, at 09:58, teso...@gmail.com wrote: > > I am talking about the long paths issue. > > On Wed, May 30, 2018 at 9:57 AM, teso...@gmail.com > wrote: > >> Hello, >> Esteban maybe you can correct me, but in the new Pharo7 VM this issue >> with the long paths is not partially corrected? >> Maybe Andrei you can try with the Pharo 7 VM, even though it is not still >> marked as stable for Pharo 6. >> >> Cheers, >> >> On Wed, May 30, 2018 at 9:52 AM, Guillermo Polito < >> guillermopol...@gmail.com> wrote: >> >>> Hi! >>> >>> On Wed, May 30, 2018 at 7:51 AM, Esteban Lorenzano >>> wrote: >>> >>>> hi, >>>> >>>> On 30 May 2018, at 01:59, Andrei Stebakov wrote: >>>> >>>> On Pharo 7.0, Windows 10 when I try to clone from pillar-markup/pillar >>>> on Windows 10, it gives me an error "the filename or extension is too long” >>>> >>>> >>>> this is more a problem of pillar being in filetree format than iceberg. >>>> there is no clear way to fix that other than migrate to tonel. >>>> >>>> but you can try to get smaller paths, like putting your sources in >>>> C:\pillar >>>> >>> >>> I've opened an issue in pillar. I'll try to do it later this morning. >>> >>> https://github.com/pillar-markup/pillar/issues/300 >>> >>> >>>> >>>> Also I got a couple of questions: >>>> - How do I check the version of Iceberg >>>> >>>> >>>> not much way this days, since iceberg is installed outside iceberg. >>>> >>> >>> I've opened an issue in Iceberg. I believe we should be able to retrieve >>> the current installed version. Otherwise it will be far too difficult to >>> ask users for good feedback. >>> We already ask: What OS are you on? What pharo version are you on? We >>> should ask them "What Iceberg version are you on"? >>> >>> https://github.com/pharo-vcs/iceberg/issues/824 >>> >>> >>>> >>>> - How can I update from Iceberg 0.7.1 on Pharo 6.1 (installed using >>>> instructions from https://github.com/pharo-vcs/iceberg) to latest >>>> Iceberg 1.0.1? >>>> >>>> >>>> The instructions there are titled “updating iceberg” and “for Pharo >>>> 6.1” so yes :) >>>> the only difference is you have to change “0.7.?” with “1.0.?” (I need >>>> to update that). >>>> >>> >>> Done >>> >>> https://github.com/pharo-vcs/iceberg/commit/acd66a0b5cc22ffe >>> 1317434f9bc41b809b70571c >>> >>> >>>> >>>> Esteban >>>> >>>> >>>> Thanks! >>>> Andrei >>>> >>>> On Tue, May 29, 2018 at 5:30 AM, Guillermo Polito < >>>> guillermopol...@gmail.com> wrote: >>>> >>>>> Hi all, >>>>> >>>>> Time for a new Iceberg update, that will be available in the next >>>>> Pharo build. This time, there are lots of cleanups and enhancements. On >>>>> the >>>>> big highlights: >>>>> >>>>> - Tonel migration plugin is available in the "Other menu item" >>>>> - Tests are green on 64 bits! (meaning iceberg can be safely used in >>>>> 64 bits). >>>>> >>>>> Thanks to everybody that participated in reviewing, opening/closing >>>>> issues or even fixing a typo! >>>>> >>>>> # Documentation >>>>> >>>>> Just as a reminder, here you have a link to iceberg's wiki, convering >>>>> some info like terminology, how to help us, and so on... >>>>> >>>>> https://github.com/pharo-vcs/iceberg/wiki >>>>> >>>>> # And some videos ;) >>>>> >>>>> - Branching and merging https://www.youtube.com/watch?v=DBzkjwABPEI >>>>> - Loading a Baseline https://youtu.be/brUHEOr-p_E >>>>> - Contributing to Iceberg https://youtu.be/yGr5HvVWM0M >>>>> >>>>> # Changes Log >>>>> >>>>> https://github.com/pharo-vcs/iceberg/releases/tag/v1.0.0 >>>>>
Re: [Pharo-users] [ANN] Iceberg v1.0.0
Hello, Esteban maybe you can correct me, but in the new Pharo7 VM this issue with the long paths is not partially corrected? Maybe Andrei you can try with the Pharo 7 VM, even though it is not still marked as stable for Pharo 6. Cheers, On Wed, May 30, 2018 at 9:52 AM, Guillermo Polito wrote: > Hi! > > On Wed, May 30, 2018 at 7:51 AM, Esteban Lorenzano > wrote: > >> hi, >> >> On 30 May 2018, at 01:59, Andrei Stebakov wrote: >> >> On Pharo 7.0, Windows 10 when I try to clone from pillar-markup/pillar on >> Windows 10, it gives me an error "the filename or extension is too long” >> >> >> this is more a problem of pillar being in filetree format than iceberg. >> there is no clear way to fix that other than migrate to tonel. >> >> but you can try to get smaller paths, like putting your sources in >> C:\pillar >> > > I've opened an issue in pillar. I'll try to do it later this morning. > > https://github.com/pillar-markup/pillar/issues/300 > > >> >> Also I got a couple of questions: >> - How do I check the version of Iceberg >> >> >> not much way this days, since iceberg is installed outside iceberg. >> > > I've opened an issue in Iceberg. I believe we should be able to retrieve > the current installed version. Otherwise it will be far too difficult to > ask users for good feedback. > We already ask: What OS are you on? What pharo version are you on? We > should ask them "What Iceberg version are you on"? > > https://github.com/pharo-vcs/iceberg/issues/824 > > >> >> - How can I update from Iceberg 0.7.1 on Pharo 6.1 (installed using >> instructions from https://github.com/pharo-vcs/iceberg) to latest >> Iceberg 1.0.1? >> >> >> The instructions there are titled “updating iceberg” and “for Pharo 6.1” >> so yes :) >> the only difference is you have to change “0.7.?” with “1.0.?” (I need to >> update that). >> > > Done > > https://github.com/pharo-vcs/iceberg/commit/acd66a0b5cc22ffe1317434f9bc41b > 809b70571c > > >> >> Esteban >> >> >> Thanks! >> Andrei >> >> On Tue, May 29, 2018 at 5:30 AM, Guillermo Polito < >> guillermopol...@gmail.com> wrote: >> >>> Hi all, >>> >>> Time for a new Iceberg update, that will be available in the next Pharo >>> build. This time, there are lots of cleanups and enhancements. On the big >>> highlights: >>> >>> - Tonel migration plugin is available in the "Other menu item" >>> - Tests are green on 64 bits! (meaning iceberg can be safely used in 64 >>> bits). >>> >>> Thanks to everybody that participated in reviewing, opening/closing >>> issues or even fixing a typo! >>> >>> # Documentation >>> >>> Just as a reminder, here you have a link to iceberg's wiki, convering >>> some info like terminology, how to help us, and so on... >>> >>> https://github.com/pharo-vcs/iceberg/wiki >>> >>> # And some videos ;) >>> >>> - Branching and merging https://www.youtube.com/watch?v=DBzkjwABPEI >>> - Loading a Baseline https://youtu.be/brUHEOr-p_E >>> - Contributing to Iceberg https://youtu.be/yGr5HvVWM0M >>> >>> # Changes Log >>> >>> https://github.com/pharo-vcs/iceberg/releases/tag/v1.0.0 >>> >>> Enjoy, Guille >>> >>> PS, detailed changes log below: >>> >>> # Cleanups >>> >>> #819 Fix tooltip typo in settings >>> #800 Iceberg should be removed from the catalogue >>> #801 Remove not referenced packages >>> #803 Correct some lints in tests >>> #806 Bad repair options when local repository is missing >>> #725 Remove and clean old UI >>> #794 Some classes should use category "utilities" instead of "utility" >>> #791 Begin to remove old UI >>> #734 Begin to remove old UI >>> #576 Add link to github/gitlab ssh instructions >>> >>> # Enhancements >>> >>> #776 Upgrade to Commander 0.6.2 dependencies >>> #765 Add command to copy SHA from history window >>> #793 Add the commit message to history window >>> #785 Metacello conflicts are not handled Metacello Integration >>> >>> # Bug fixes >>> >>> #771 IceTipRemoveFromRepositoryPackageCommand >> execute is not >>> implemented >>> #748 Code subdirectory in empty repository >>> #767 Error while pulling with renamed packages &g
Re: [Pharo-users] [ANN] Iceberg v1.0.0
I am talking about the long paths issue. On Wed, May 30, 2018 at 9:57 AM, teso...@gmail.com wrote: > Hello, > Esteban maybe you can correct me, but in the new Pharo7 VM this issue > with the long paths is not partially corrected? > Maybe Andrei you can try with the Pharo 7 VM, even though it is not still > marked as stable for Pharo 6. > > Cheers, > > On Wed, May 30, 2018 at 9:52 AM, Guillermo Polito < > guillermopol...@gmail.com> wrote: > >> Hi! >> >> On Wed, May 30, 2018 at 7:51 AM, Esteban Lorenzano >> wrote: >> >>> hi, >>> >>> On 30 May 2018, at 01:59, Andrei Stebakov wrote: >>> >>> On Pharo 7.0, Windows 10 when I try to clone from pillar-markup/pillar >>> on Windows 10, it gives me an error "the filename or extension is too long” >>> >>> >>> this is more a problem of pillar being in filetree format than iceberg. >>> there is no clear way to fix that other than migrate to tonel. >>> >>> but you can try to get smaller paths, like putting your sources in >>> C:\pillar >>> >> >> I've opened an issue in pillar. I'll try to do it later this morning. >> >> https://github.com/pillar-markup/pillar/issues/300 >> >> >>> >>> Also I got a couple of questions: >>> - How do I check the version of Iceberg >>> >>> >>> not much way this days, since iceberg is installed outside iceberg. >>> >> >> I've opened an issue in Iceberg. I believe we should be able to retrieve >> the current installed version. Otherwise it will be far too difficult to >> ask users for good feedback. >> We already ask: What OS are you on? What pharo version are you on? We >> should ask them "What Iceberg version are you on"? >> >> https://github.com/pharo-vcs/iceberg/issues/824 >> >> >>> >>> - How can I update from Iceberg 0.7.1 on Pharo 6.1 (installed using >>> instructions from https://github.com/pharo-vcs/iceberg) to latest >>> Iceberg 1.0.1? >>> >>> >>> The instructions there are titled “updating iceberg” and “for Pharo 6.1” >>> so yes :) >>> the only difference is you have to change “0.7.?” with “1.0.?” (I need >>> to update that). >>> >> >> Done >> >> https://github.com/pharo-vcs/iceberg/commit/acd66a0b5cc22ffe >> 1317434f9bc41b809b70571c >> >> >>> >>> Esteban >>> >>> >>> Thanks! >>> Andrei >>> >>> On Tue, May 29, 2018 at 5:30 AM, Guillermo Polito < >>> guillermopol...@gmail.com> wrote: >>> >>>> Hi all, >>>> >>>> Time for a new Iceberg update, that will be available in the next Pharo >>>> build. This time, there are lots of cleanups and enhancements. On the big >>>> highlights: >>>> >>>> - Tonel migration plugin is available in the "Other menu item" >>>> - Tests are green on 64 bits! (meaning iceberg can be safely used in 64 >>>> bits). >>>> >>>> Thanks to everybody that participated in reviewing, opening/closing >>>> issues or even fixing a typo! >>>> >>>> # Documentation >>>> >>>> Just as a reminder, here you have a link to iceberg's wiki, convering >>>> some info like terminology, how to help us, and so on... >>>> >>>> https://github.com/pharo-vcs/iceberg/wiki >>>> >>>> # And some videos ;) >>>> >>>> - Branching and merging https://www.youtube.com/watch?v=DBzkjwABPEI >>>> - Loading a Baseline https://youtu.be/brUHEOr-p_E >>>> - Contributing to Iceberg https://youtu.be/yGr5HvVWM0M >>>> >>>> # Changes Log >>>> >>>> https://github.com/pharo-vcs/iceberg/releases/tag/v1.0.0 >>>> >>>> Enjoy, Guille >>>> >>>> PS, detailed changes log below: >>>> >>>> # Cleanups >>>> >>>> #819 Fix tooltip typo in settings >>>> #800 Iceberg should be removed from the catalogue >>>> #801 Remove not referenced packages >>>> #803 Correct some lints in tests >>>> #806 Bad repair options when local repository is missing >>>> #725 Remove and clean old UI >>>> #794 Some classes should use category "utilities" instead of "utility" >>>> #791 Begin to remove old UI >>>> #734 Begin to remove old UI >
Re: [Pharo-users] Restoring a class via Epicea didn't recompile a reference?
Two points. 1. Maybe we should centralize the removal of a class in a component as the class installer. So we can have it all in one place, and if we need to override and do fancy stuff. 2. Yes to the messages to the environment, I am doing so to have multiple environments sharing the same methods. We can check how much does it affect the performance, because it opens a lot of different options to extend the language. Cheers, Pablo On Wed, May 2, 2018 at 2:09 PM, Marcus Denker <marcus.den...@inria.fr> wrote: > > > > On 26 Apr 2018, at 09:28, Guillermo Polito <guillermopol...@gmail.com> > wrote: > > > > Hi, > > > > It looks you got bit by this issue: > > > > https://pharo.fogbugz.com/f/cases/21519/RemoveFromSystem- > does-not-work-well-with-Undeclareds > > > > It's not particular to Epicea. There should be a better management of > Undeclareds in general in all Pharo. > > > > It can be fixed by moving the binding to undeclared in #removeFromSystem: > > This is done by adding > > Undeclared declare: self name asSymbol from: Smalltalk globals. > > before the "forgetClass: self logged:" line. > > What we need to do in addition: Only do that when the class is referenced. > #isUsedClass: does that, but it does integrate over all methods in the > system. > > (I sometimes wonder if we should not late-bind accesses to globals, that > is, just compile them as message sends to the environment). > > Marcus > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Recover question at startup
Hi Cyril, I have taken your mail and added to the issue. Thanks On Mon, Apr 16, 2018 at 11:35 AM, Cyril Ferlicot D. < cyril.ferli...@gmail.com> wrote: > On 16/04/2018 11:30, teso...@gmail.com wrote: > > I have created an Issue > > (https://pharo.fogbugz.com/f/cases/21708/Epicea-should-not- > offer-to-recover-changes-if-the-ombu-file-does-not-exists) > > to follow the conversation and to notify Martín and listen to his > opinion. > > > > Hi, > > Indeed it would be cool to not show the recover window when there is no > ombu file. It was something I already raised in this message: > > http://forum.world.st/Problems-with-Epicea-on-Pharo-7-td5069768.html > > > Cheers, > > Pablo > > > > -- > > Pablo Tesone. > > teso...@gmail.com <mailto:teso...@gmail.com> > > > -- > Cyril Ferlicot > https://ferlicot.fr > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Recover question at startup
I have created an Issue ( https://pharo.fogbugz.com/f/cases/21708/Epicea-should-not-offer-to-recover-changes-if-the-ombu-file-does-not-exists ) to follow the conversation and to notify Martín and listen to his opinion. Cheers, Pablo On Sun, Apr 15, 2018 at 7:02 AM, Ben Coman <b...@openinworld.com> wrote: > On Sat, Apr 14, 2018 at 5:56 PM, Hilaire <hila...@drgeo.eu> wrote: >> >>> Replying to myself for the record, these two lines seem to inactivate >>> Epicea >>> >>> "Inactivate Epicea" >>> EpSettings monitorEnabled: false. >>> EpSettings lostEventsDetectorEnabled: false. >>> >>> >>> Now, there is still likely an issue I don't understand >> >> > > On 15 April 2018 at 00:32, teso...@gmail.com <teso...@gmail.com> wrote: > >> Hi, >>I have been checking this problem and the message is shown because is >> trying to find the ombu file for the current session. >> Usually what it does is comparing the file with the recorded size and >> timestamp in the image to check that the file has no new changes. >> If the file is newer or larger than the previous info of the image, the >> recover message appears. >> >> I think there is a bug here, although I am not sure, I think that Martín >> has to help to understand it. >> Because in the current implementation if the file does not exists it >> produces the recovery message. >> Even though it can show that there are changes, if there is no file with >> them I think is quite difficult to recover them. >> >> This behaviour is not happening in the machine where the image is built, >> because the file exists in the disk. They are stored in the pharo-local >> directory. >> >> Cheers, >> Pablo >> > > > I didn't have a chance to check for repeat-ability, but yesterday I > saved-quit and Image-A, > then in PharoLauncher did a Copy of Image-A to image-B, > then opening Image-B got a question about Recovery that I didn't expect or > want. > > cheers -ben > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Recover question at startup
Hi, I have been checking this problem and the message is shown because is trying to find the ombu file for the current session. Usually what it does is comparing the file with the recorded size and timestamp in the image to check that the file has no new changes. If the file is newer or larger than the previous info of the image, the recover message appears. I think there is a bug here, although I am not sure, I think that Martín has to help to understand it. Because in the current implementation if the file does not exists it produces the recovery message. Even though it can show that there are changes, if there is no file with them I think is quite difficult to recover them. This behaviour is not happening in the machine where the image is built, because the file exists in the disk. They are stored in the pharo-local directory. Cheers, Pablo On Sat, Apr 14, 2018 at 5:56 PM, Hilaire <hila...@drgeo.eu> wrote: > Replying to myself for the record, these two lines seem to inactivate > Epicea > > "Inactivate Epicea" > EpSettings monitorEnabled: false. > EpSettings lostEventsDetectorEnabled: false. > > > Now, there is still likely an issue I don't understand > > > > -- > Dr. Geo > http://drgeo.eu > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Frozen at start up
Hi Hilaire, to use the deferred action in the startup you can add it to the SessionManager >> addDeferredStartupAction:, this will execute after all the startup actions. However, I was wrong it will not solve the problem of the splash, as the deferred action is still running in maximum priority (maybe this should be changed). So the solution for the splash window will be to fork the process in a lower priority (with an explicit priority) Cheers On Wed, Apr 11, 2018 at 3:56 PM, Hilaire <hila...@drgeo.eu> wrote: > Removing the Splash screen avoid locking the image. About deferred action, > how do you do it? > > However why do I have this start up message about Pharo not been properly > claused? > > The installation of the app ends with a proper save and quit. > > DrGeoInstallerWorkstation>>install > super install. > DrGDefault beWorkstation. > self cleanUpForRelease. > Author fullName: 'MrCleaner'. > Smalltalk saveAs: 'drgeo'. > World submorphs > select: [:m | m class == (Smalltalk at: #DrGeoWindow)] > thenDo: [:drMorph | drMorph deleteWithoutConfirmation ]. > > self cleanMySelf. > Smalltalk fixObsoleteReferences. > Smalltalk garbageCollect. > Smalltalk garbageCollect. > Smalltalk garbageCollect. > > PharoChangesCondenser condense. > ExternalDropHandler registerHandler: > (ExternalDropHandler > type: nil > extension: 'fgeo' > action: [ :stream | DrGeo fullscreenOn: stream ]). > > Smalltalk snapshot: true andQuit: true. > > > What is even strange, when I run the buid in the system building it, this > message does not show up? > > Any idea? > > Thanks > > Hilaire > > Le 10/04/2018 à 21:36, teso...@gmail.com a écrit : > >> In Pharo 7 the startup of the session runs in higher priority so it >> cannot be interrupted. >> This is done in that way to fix some problems during the initialization >> of the session (Now, I could not remember what was fixed). >> > > -- > Dr. Geo > http://drgeo.eu > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Frozen at start up
Hi Sean, it is the exactly the same behavior. Cheers. On Tue, Apr 10, 2018 at 11:38 PM, Sean P. DeNigris <s...@clipperadams.com> wrote: > HilaireFernandes wrote > > Any idea? > > Can you try starting with `--no-default-preferences` and see if it's the > same? > > > > - > Cheers, > Sean > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Frozen at start up
Hi Hilaire, I have seen the same problem when trying to reproduce the error with FreeTypeFonts. I can see that the problem arise because there is a startUp of a class that is calling the #splash method. This method uses Delay. As this is run during the startup of the classes, it runs with the higher priority. Taking precedence over the Delay scheduling process. In Pharo 7 the startup of the session runs in higher priority so it cannot be interrupted. This is done in that way to fix some problems during the initialization of the session (Now, I could not remember what was fixed). I believe this actions should be executed as a deferred action. Also I have found a problem with the requirement of the UIThemeWatery class, I have fixed it extending UITheme with a new subclass (same behavior) so the code can be loaded. If you want I can help you to port DrGeo to Pharo7. Cheers, Pablo On Tue, Apr 10, 2018 at 8:32 PM, Hilaire <hila...@drgeo.eu> wrote: > Hi, > I have this strange situation with a DrGeo built against P7, where DrGeo > starts, but then get frozen with this message. > Strangely the start seems not to have completed as the UI messages are not > localized in French. > > What is strange, on my PC where I built the app, this problem does not > occur. > > Any idea? > > Thanks > > Hilaire > > > -- > Dr. Geo > http://drgeo.eu > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] FreeFontProvider unload [was] Re: Black screen on Mac OSX
Hi Hilaire, thanks for spliting the subject, I have missed the discussion in the other thread. The #unload message should be used to clean up the system in case the class is unload from the system. That's why the logic has been move to the #resetCurrent method that is called during the shutdown of the image. However, the question is not if the method should be included in a compatibility package or if the users should send #resetCurrent. The problem is why it is needed to clean up the font cache, it should not be needed. The only scenario I think is if you want to replace a font (in the Pharo world a Face, because there is a font per each combination of face and point size) named exactly the same with another one. I think this is no normal behavior. I will try to see why this is needed when loading DrGeo in Pharo7 and fix the FT implementation not to need it. Maybe it is hiding a bigger issue. Cheers, Pablo On Mon, Apr 9, 2018 at 9:52 PM, Hilaire <hila...@drgeo.eu> wrote: > I tracked the problem, it is related to change in the FreeTypeFontProvider > behavior. > > In P3, #unload message cleared the cache. In P7, #unload just does > nothing. Seems to be replaced by #resetCurrent > > Hilaire > > > Le 07/04/2018 à 17:43, Stephane Ducasse a écrit : > >> Hi Hilaire >> >> The app goes to the dock but nothing happens. What is strange is that >> it is assigned to none display. >> I tried to open the drgeo.image with my working Pharo6.1VM and it did not >> work. >> I tried to open the drgeo.image with my working Pharo70VM and it did not >> work. >> => did not open. >> >> I could open one of my Phaor 70 images with the VM you ship. >> >> I have no log files or others. So I do not know what to do. >> > > -- > Dr. Geo > http://drgeo.eu > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Ever growing image
Hi Hilaire, is it possible that is the wrong image? This is a 32bits image, and it is around 52 MB, quite similar to the Pharo base image. Thanks. On Fri, Mar 2, 2018 at 11:27 AM, Stephane Ducasse <stepharo.s...@gmail.com> wrote: > Thanks Pablo! and Hilaire! > > On Fri, Mar 2, 2018 at 9:30 AM, teso...@gmail.com <teso...@gmail.com> > wrote: > > Thank you > > > > On 2 Mar 2018 09:23, "Hilaire" <hila...@drgeo.eu> wrote: > >> > >> Sure, here is a DrGeo image of an unreasonnable size, you can > investigage > >> on: > >> > >> https://www.dropbox.com/s/wc18e21p371z28f/DrGeo.app-18.01a.zip?dl=0 > >> > >> > >> It is a based on a P7 64bits, don't use the shipped VMs, there are not > >> matching. > >> > >> Thanks > >> > >> Hilaire > >> > >> Le 02/03/2018 à 09:13, teso...@gmail.com a écrit : > >>> > >>> It will be great if somebody has images with this problem, and it can > be > >>> shared without trouble, to share it. So we can investigate if the > problem is > >>> image or vm related. > >> > >> > >> -- > >> Dr. Geo > >> http://drgeo.eu > >> > >> > >> > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Ever growing image
Thank you On 2 Mar 2018 09:23, "Hilaire" <hila...@drgeo.eu> wrote: > Sure, here is a DrGeo image of an unreasonnable size, you can investigage > on: > > https://www.dropbox.com/s/wc18e21p371z28f/DrGeo.app-18.01a.zip?dl=0 > > > It is a based on a P7 64bits, don't use the shipped VMs, there are not > matching. > > Thanks > > Hilaire > > Le 02/03/2018 à 09:13, teso...@gmail.com a écrit : > >> It will be great if somebody has images with this problem, and it can be >> shared without trouble, to share it. So we can investigate if the problem >> is image or vm related. >> > > -- > Dr. Geo > http://drgeo.eu > > > >
Re: [Pharo-users] Ever growing image
It will be great if somebody has images with this problem, and it can be shared without trouble, to share it. So we can investigate if the problem is image or vm related. On 1 Mar 2018 17:43, "Norbert Hartl"wrote: I use 64bits on Mac and I suffer from this. Today I started a new image because the old one was 1,2 GB in size and starting to behave sluggish. Norbert > Am 01.03.2018 um 15:55 schrieb Hilaire : > > Hi, > > Does the current 64bits VM suffers of the ever growing image syndrom? > > Thanks > > Hilaire > > -- > Dr. Geo > http://drgeo.eu > > >
Re: [Pharo-users] how to load compiled code in the image and to change methods already on the stack?
Hi Steven, 1. You can use Hermes through a socket or a file. The only pre-requisite is that both images run similar compatible compilers (usually you can use it from and to Pharo 6.1 and 7) 2. You can change the method, but if there is an activation context in the stack everything can be wrong. If you change a method you should update the program counter of the stack, and also any other thing can change (for example, temporaries or literals). Can you describe more the scenario where you want to change the method? Cheers, On Sat, Feb 24, 2018 at 11:23 AM, Steven Costiou <steven.cost...@kloum.io> wrote: > Hi, > > is this possible somehow to: > > - load compiled code in the image? like loading a compiled method instead > of loading source then compiling it? > > - dynamically change a method that is on the stack? > > > > If so, how? :) > > Steven. > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Embedded PDF viewer?
Hello Ben, UFFI does not allow you to call static libraries. Static libraries are not executable per se, they need to be linked in another program. As I know, the only way of using an static library from Pharo is to: - Build a plugin that wraps it. - Build a DLL exposing all the functions in the library and then they are used through UFFI. The second option is the easiest to me, but it depends how the library is built up. For example, if the library uses a lot of compile time code generation (like macros or templates) making a generic DLL is not so easy. I think it is better to see if not other project has already tackle this problem when using the desired static library. Cheers, Pablo On Sun, Nov 5, 2017 at 1:39 PM, Ben Coman <b...@openinworld.com> wrote: > I'm looking into calling PDFium from Pharo via FFI. > Currently I'm stalled a bit since it doesn't have a shared-library target. > > If you consider access to such a library would be useful to the community, > please take a few moments to star this issue... > https://bugs.chromium.org/p/pdfium/issues/detail?id=826 > > cheers -ben > > > P.S. Can anyone comment on calling into a static library via FFI? > > > > On Wed, Oct 11, 2017 at 2:05 PM, Ben Coman <b...@openinworld.com> wrote: > >> >> >> On Wed, Oct 11, 2017 at 2:03 PM, Ben Coman <b...@openinworld.com> wrote: >> >>> >>> > On Tue, Oct 10, 2017 at 8:58 PM, Manuel Leuenberger >>> > <leuenber...@inf.unibe.ch> wrote: >>> > > Hi, >>> > > >>> > > I want to view a PDF within Pharo. I found that Athens has a PDF >>> canvas, but I have no idea how to use it. Is there a way to view a PDF >>> within Pharo, so that I can scroll, zoom, click links etc. in the PDF? >>> > > >>> > > Cheers, >>> > > Manuel >>> >>> >>> On Wed, Oct 11, 2017 at 3:04 AM, Stephane Ducasse < >>> stepharo.s...@gmail.com> wrote: >>> > >>> > Hi manuel >>> > >>> > So far I do not know if we have this is Pharo. >>> > I imagine that we would have to build a renderer once we will have the >>> > PDF reader from Christian library. >>> > >>> > Stef >>> >>> >> [Edit: Update license link] >> >> >>> A renderer will have great synergy with PDFTalk, but I think a proof of >>> concept can be done independently. >>> I've been poking at this topic for a while looking for options. >>> Coincidentally a couple of days I discovered the PDFium library. >>> I haven't had time yet to give it a run, but it seems a good candidate >>> since... >>> * Its a successful commercial product by Foxit built into Chrome >>> converted to open source with Google's backing for use in Chromium >>>https://www.foxitsoftware.com/company/press.php?id=305 >>> * Its license is BSD style >>>*https://github.com/hfiguiere/pdfium/blob/master/LICENSE >>> <https://github.com/hfiguiere/pdfium/blob/master/LICENSE>* >>> * Although written in C++ it has a C interface >>> https://github.com/hfiguiere/pdfium/blob/master/public/fpdfview.h >>> * Search here on " Function: " to skim through >>> * Proof of concept seems to only need these key functions... >>> * voidFPDF_RenderPageBitmap( FPDF_BITMAP bitmap,FPDF_PAGE >>> page, ... ) >>> * FPDF_BITMAPFPDFBitmap_Create( int width, int height, int >>> alpha); >>> * FPDF_PAGE FPDF_LoadPage ( FPDF_DOCUMENT document, int >>> page_index ) >>> * FPDF_DOCUMENT FPDF_LoadMemDocument ( const void* >>> data_buf ... ) >>> * voidFPDF_InitLibrary () >>> * Has a concise getting started for POC... >>> https://github.com/hfiguiere/pdfium/blob/master/docs/getting >>> -started.md >>> * Maybe useful fork with V8 disabled by default >>> https://github.com/klokantech/pdfium >>> * Master repo here >>> https://pdfium.googlesource.com/pdfium/ >>> >>> So Pharo might load a PDF file into a ByteArray, pass that to >>> FPDF_LoadMemDocument() & FPDF_LoadPage(), >>> then get a bitmap back from FPDFBitmap_Create() & >>> FPDF_RenderPageBitmap() and display the result in a Pharo window. >>> >>> The rest of this week I'm working 12 hour days on a mine site. I could >>> try it out once I'm home, but in the meantime is anyone else keen to try >>> it? >>> >>> cheers -ben >>> >> >> > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Microsoft COM
Hi Ben, first sorry for answering late, I have seen your mail before, but the tons of mails of Pharo got over it. I will tell you the state of what I have and what maybe you will need. But, before my plan is to improve this, but as with everything it is easier to push it if I have some users. - I have implemented a way of expressing FFI calls to COM objects, I have solved all the problems of the Vtable and the different types. So it is possible to create a wrapper for any of the COM objects. I have done so for the objects used in the "reflective" API of COM. - My idea is to use the reflective API to generate automatically the Pharo Wrappers to the objects. This is nice, but if you need to use some known objects you don't need all this transparency as using known instances can be easily implemented. - I have some examples using the IE COM object as it is a nice thing to use, and also it uses many different things in the API (properties, variant, optional parameters, etc). However, the support in the Variant type is not full yet. You can receive and send variant type values, but reading the different contents is not implemented (it has like 30 different payloads in the type, I have only the basics). I have to check what I have know, because I have been working a little more, but I have to put it in Github and organize it a little. Now it is working in Pharo 6 32Bits. My plan is to first migrate it to Pharo7 also (I think it should be straight forward) and then implement it for 64 bits (this part is possible that requires a big rewritting, as the API has some changes from 32 to 64 bits). In the next days I will try to make a couple of examples to show how to map a known class. I remember that the reflective part now can query the interface and perform dynamic calls but the way of interacting with it should be improved. I really will love to have somebody using it, so I will try to help you if you (or other) has a use case. Usually having a use case is easy to move a project. Cheers, Pablo On Mon, Oct 30, 2017 at 6:11 PM, Ben Coman <b...@openinworld.com> wrote: > Hi Pablo, > > At work I managed to remote control Internet Explorer with Excel VBA like > this... > [1] http://www.automateexcel.com/vba/automate-internet-explorer > > and went looking for how similar might be achieved from Pharo. IIUC I > discovered this would be done via Microsoft's Component Object Model, and > then I bumped into your repo... > [2] https://github.com/tesonep/pharo-com > > Could you advise the status and your plans for this? Since I see its only > a few months old I've probably stumbled onto it prematurely, but I see no > documentation or tests to discover how to use it. So I'll curious whether > it makes something like [1] possible? And could you show how that would be > done? > > cheers -ben > > > P.S. For context, at work I automated IE since the intranet document > management system (OpenText) does authentication via a javascript function > in the browser, which doesn't compute with Microsoft's MSXML.DOMDocument > component. So I use IE to do the authentication and grab the raw XML from > IE to then stuff it into MSXML.DOMDocument from which I pull the data I > need. > > But I'd love to do it with Pharo instead (if I can get IT to white list it) > > cheers -ben > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Return value of a FFI call to a external function is its 2`s complement
Hi, the problem is that the Zq function has the following signature: int zmq_msg_recv (zmq_msg_t *msg, void *socket, int flags); And in your ffiCall you are putting #long. You should use the correct size of integers, as the binary numbers need to extend the size when they are negatives. 0x is a valid positive for a long, but a -1 for an int. Cheers. On Mon, Oct 30, 2017 at 4:26 PM, Dimitris Chloupis <kilon.al...@gmail.com> wrote: > Ah ok I know that one, just did not know it was named "two's complement" , > looks to me normal error. I have seen this value many times in case of > errors while debugging C code with GBP > > It returns error probably because of the reason I outlined in my previous > reply. > > On Mon, Oct 30, 2017 at 3:51 PM Paulo R. Dellani <dell...@pobox.com> > wrote: > >> "Two`s complement" is one possible way to represent signed integers in >> binary form (1). >> >> When the message apiZmqMsgRecv: message socket: socket withFlags: flags is >> sent, as >> shown in my prior message, a function from libzmq, zmq_msg_recv (2) is >> called >> and the return value should be either the number of bytes in the received >> message >> or -1, in case of an error. Well, I was expecting to get a -1 as return >> value when >> calling the function in non-blocking mode, but it returns 0x, >> which happens >> to be the 2's complement representation of -1. At least the old code for >> libZMQ >> was not expecting that. >> >> Cheers, Paulo >> >> (1) https://en.wikipedia.org/wiki/Two's_complement >> (2) http://api.zeromq.org/4-2:zmq-msg-recv >> >> >> On 10/30/2017 02:13 PM, Dimitris Chloupis wrote: >> >> >> I have no idea what you mean by "2's complement" >> >> In any case bare in mind that UFFI has a limited range of C types that >> does support. Here you use 2 custom types , ZmqApiMessage and ZmqApiSocket >> , both are pointers because of * . Now these types are definetly not >> included with UFFI so if you have not done so you will have to >> >> 1) Define a class that inherits from FFIExternalObject and make sure your >> class handles the pointer properly >> 2) Replace the custom type with an equivelant type that is supported by >> UFFI >> >> The type of the pointer does not affect the pointer itself, usually, but >> rather the data it points to. So a pointer knows from it type that the data >> consumes a x amount of bytes and is of specific type , this can help also >> with indexing as C arrays are nothing more than a pointer that uses the >> index as an offset depending on its type of x amount of bytes. >> >> So its crucial that you get these right or else you going have some super >> weird results and even crashes. >> >> Because if you use improper types the pointer will give access to an area >> of memory bigger or smaller than the inteded type . Smaller will give you >> corrupted data (you will be missing bytes of data), bigger may crash >> because it may extend to area of memory not allowed to access. >> >> Technically speaking you can use even incorrect types if you know what >> you doing because UFFI pointers have great flexibility allowing you define >> real time the excact position of the memory and the range. >> >> Bare in mind that C is a high level language (and not low level as many >> incorrect assume) and deal with types that is NOT a low level concept >> (excepts types that have to do only with the size/ amount of bits) . So the >> type gives crucial information to C how exactly to access the memory. >> On Mon, Oct 30, 2017 at 2:03 PM Paulo R. Dellani <dell...@pobox.com> >> wrote: >> >>> Dear uFFI experts, >>> >>> I am dealing with the port of the ZeroMQ >>> <http://smalltalkhub.com/#%21/%7Epanuw/zeromq> code to Pharo 6 and >>> found >>> something unexpected to me, at least: >>> >>> Zmq4Api>>apiZmqMsgRecv: message socket: socket withFlags: flags >>> ^ self ffiCall: #(long zmq_msg_recv (ZmqApiMessage* message, >>> ZmqApiSocket* socket, long flags ) ) >>> >>> Calling this returns the 2's complement of the return value >>> of the external function call. Is it expected that the code calling >>> this do the decoding of the 2'complement representation of >>> the return value? >>> >>> Cheers, >>> >>> Paulo >>> >> >> -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] why is adding instance variables so slow?
Hi, I think the problem was not clearly explained. This is the scenario that is problematic. This scenario does not happen in the new Spur implementation of forwarding, but I think is happening in the old one. 1. You have, let's say 3 instances of ClassA. 2. You add a new instance variable to ClassA. It produces 2a. A new ClassAv2 is created with the instances variables of ClassA and the newone 2b. 3 Instances of ClassAv2 are created 2c. The values of the instance variables of ClassA are copied to the ones in ClassAv2 (the ones missing are left in nil). 2d. The 3 instances of ClassA are becomed forward to the 3 instances of ClassAv2 2e. The ClassA is becomed forward ClassAv2 3. You add a new instance variable to ClassAv2. It produces 3a. A new ClassAv3 is created with the instances variables of ClassAv2 and the newone 3b. 3 Instances of ClassAv3 are created 3c. The values of the instance variables of ClassAv2 are copied to the ones in ClassAv3 (the ones missing are left in nil). 3d. The 3 instances of ClassAv2 are becomed forward to the 3 instances of ClassAv3 3e. The ClassAv2 is becomedFormeward ClassAv3 4. All the instances of ClassAV3 have the correct format and everything works. What is the problem: === - When you do the first add instance variable, the old instances (the one from ClassA) which are smaller (has 1 instance variable less) have its class changed (after you perform a become of ClassA to ClassAv2). So if you try to use them everything will explode, because you will trying to access an instance variable that does not exists. These instances are not referenced by anyone, however if you perform a ClassAv2>>allInstances you will find them. So if you modify the class adding two variables, one after another the second time you will be accessing the invalid instances. Considering the differences in the Become implementation However, the main difference is the implementation of the become forward. Let's start with the new implementation, as it has not problems. When you do a become forward, from object a to b, the primitive replaces the object a with a forwarder to b. When this forwarded is accessed the references to it are rewrited. If the objects are the same size (not this scenario) the object b replaces object a. It does not produces an error because the old. In the become forward the old instances are not keeped. In the old implementation the whole image is scanned, changing the references to the old instances, replacing with references to the new instances. The old instances are not removed, just kept there to let the GC do its work. Again if the objects are the same size there is special behavior. I hope know the problem is better explained Cheers, Pablo On Fri, Apr 14, 2017 at 10:50 AM, Igor Stasenko <siguc...@gmail.com> wrote: > > > On 14 April 2017 at 10:19, Stephane Ducasse <stepharo.s...@gmail.com> > wrote: > >> But I do not get how doing that would handle the old instances? >> Because you want to migrate the old instances. >> >> > +1 > there are no such thing as 'bad zombies', if they are there, it means you > either don't care about migrating data > or again, don't care about doing #becomeForward-ing them properly. > In any case i don't see how GC could help to fix these issues. You either > have consistency or don't have it, > and GC cannot do anything magical to fix it. > > > >> Stef >> >> On Wed, Apr 12, 2017 at 1:26 PM, Denis Kudriashov <dionisi...@gmail.com> >> wrote: >> >>> >>> 2017-04-12 13:17 GMT+02:00 Guillermo Polito <guillermopol...@gmail.com>: >>> >>>> 1) each instance of A is becomed into its corresponding instance of A' >>>> 2) finally we become class A into A' >>>> This step will make that old instances of A now have: >>>> - the old format >>>> - but point to the new class A >>>> >>> >>> step 1) ensures that there are no instances of class A anymore. >>> Check following script: >>> >>> c1 := Class1 new. >>> c2 := Class2 new. >>> c1 becomeForward: c2. >>> Class1 allInstances "=> #()". >>> >>> >>> And full migration is executed in high priority uninterrupted process to >>> ensure that between 1) and 2) nobody will instantiate Class1 >>> >>> >> > > > -- > Best regards, > Igor Stasenko. > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] why is adding instance variables so slow?
Hi Denis, in the script you are not generating instances of Class1, the problem is with the instances. Cheers, Pablo On Fri, Apr 14, 2017 at 10:04 AM, Denis Kudriashov <dionisi...@gmail.com> wrote: > > 2017-04-12 13:29 GMT+02:00 teso...@gmail.com <teso...@gmail.com>: > >> Hi, >> in non spur, the only improve that I think it can be made safely is >> moving the garbage collect operation to the migration of instances side, >> only executing the garbage collect if there are instances. >> >> In spur the garbage collect it is not needed anymore, because the way the >> become is working is not the same. >> > > I checked on prespur cogVM: my script produced same result as on spur. > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] why is adding instance variables so slow?
Hi, in non spur, the only improve that I think it can be made safely is moving the garbage collect operation to the migration of instances side, only executing the garbage collect if there are instances. In spur the garbage collect it is not needed anymore, because the way the become is working is not the same. In the old implementation, the old instances where in the image until they are removed by the garbage collector. So you can access them with the allInstances. In the new implementation, the old instances are marked as a forwarded to the new instances. So, there is no need for the garbage collect. This should be tried but I think it can work. Cheers, Pablo On Wed, Apr 12, 2017 at 1:17 PM, Guillermo Polito <guillermopol...@gmail.com > wrote: > > > On Wed, Apr 12, 2017 at 11:35 AM, Denis Kudriashov <dionisi...@gmail.com> > wrote: > >> >> 2017-04-12 10:55 GMT+02:00 Guillermo Polito <guillermopol...@gmail.com>: >> >>> PharoClassInstaller>>migrateClasses: old to: new using: >>>> anInstanceModification >>>> instanceModification := anInstanceModification. >>>> old ifEmpty: [ ^ self ]. >>>> [ >>>> 1 to: old size do: [ :index | >>>> self updateClass: (old at: index) to: (new at: index)]. >>>> old elementsForwardIdentityTo: new. >>>> " Garbage collect away the zombie instances left behind in garbage >>>> memory in #updateInstancesFrom: " >>>> " If we don't clean up this garbage, a second update would revive them >>>> with a wrong layout! " >>>> " (newClass rather than oldClass, since they are now both newClass) " >>>> Smalltalk garbageCollect. >>>> ] valueUnpreemptively >>>> >>>> Commenting garbage collection here increases performance 10 times. >>>> Then commenting class update loop increases performance 3 times more. >>>> But this loop is required. It adopts all instances of old class to new one. >>>> And time here spent in #allInstances method. >>>> >>>> Can we remove manual garbage collection here? Why it is needed? >>>> >>> >>> Well, there is the comment that explains it and makes pretty good sense. >>> >> >> But is does not explain why these bad zombies exist. We investigates >> possible reasons and could not reproduce them. We will try remove garbage >> collection here in Pharo 7 >> > > No, this will break stuff! I'll try to explain what does it mean by zombie > instances to make some sense: > > - Imagine that you have class A + 10 instances of A. > > - We add an instance variable to A. > - this means the class builder will generate class A' that is the new > version of A. > - then, it migrates all instances of A to class A'. > This migration is not magic: > - 10 new instances of A' are created > - the state is migrated from the instances of A to A' > - each instance of A is becomed into its corresponding instance of > A' > - finally we become class A into A' > This step will make that old instances of A now have: > - the old format > - but point to the new class A > > If we do not garbage collect, this means that doing > > A allInstances > > will return not only the new 10 instances of A, but the old instances of > A'. > And that will break LOOOTS of stuff. > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] How to remove a class ?
You can send the message #removeFromSystem to the class. Cheers On Thu, Mar 9, 2017 at 1:44 PM, Hilaire <hila...@drgeo.eu> wrote: > Hi, > > One creates by code a new class with: "Object subclass: #Situation". > What is the counter part API to remove it from the system? > > Thanks > > Hilaire > > -- > Dr. Geo > http://drgeo.eu > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Japanese Fonts
Great you can fixed it. Cheers, Pablo. On Tue, Dec 27, 2016 at 4:25 AM, Evan Donahue <emdon...@gmail.com> wrote: > Hi, thanks for the reply. > > FreeType disable/reenable seems to have done the trick. It loaded up my > system fonts, and I was able to select Noto Sans CJK JP, which seems to do > the trick. For reference, this is on Pharo 6 #60334. I also installed this > for text entry: http://smalltalkhub.com/#!/~tomooda/Tekka and it seems to > work like a charm. > > Thanks, > Evan > > > > > -- > View this message in context: http://forum.world.st/Japanese-Fonts- > tp4928056p4928161.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Japanese Fonts
Hi, which version of Pharo are you using? Where do you install your font in your linux system? This is because Pharo is looking for the fonts in the paths '/usr/share/fonts' '/usr/local/share/fonts' and ~/.fonts. So maybe it is not finding them. This is not the ideal solution, because if you have another font directory configured you can't use it (even though, adding your custom directory is as easy as modifying a method :) ). Have you tried to disable and reenable FreeType support in the settings browser. It will help as when freetype is enabled the font cache is reconstructed. Also you can try to set the font from that settings browser. If it is shown in the font dialog when using the system browser you can use the font. Cheers, Pablo. On Sat, Dec 24, 2016 at 1:40 AM, Evan Donahue <emdon...@gmail.com> wrote: > Hello, > > I am trying to get Japanese characters to show up in my Pharo image. > Following some advice I found on google, I have set my font to something > that I think should handle Japanese characters: > > defaultFont := LogicalFont familyName: 'Droid Sans Fallback' pointSize: 18. > StandardFonts defaultFont: defaultFont. > > I then used the settings browser to force that to all system fonts. I did > not notice a change to any of the text when I did this, so I am not sure it > worked. Also, Japanese text still shows up as spaces. Does anyone know > whether this is something I need to deal with in Pharo, on Ubuntu, or both? > As far as I can tell, the font is on my system. > > Thanks, > Evan > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] support for Croatian language
It seems that the directory lookup process is wrong, the directories are having less entries. If you check the class FreeTypeFontProvider has the methods to resolve the directories. You can change the implementation of #unixFontDirectories to add the missing directory, I will file an issue in fogbuz. Cheers. On Fri, Aug 26, 2016 at 10:57 AM, Gour <g...@atmarama.com> wrote: > On Fri, 26 Aug 2016 10:18:14 +0200 > "teso...@gmail.com" > <teso...@gmail.com> wrote: > > > Hi, > > sometimes running fc-cache is needed to update the FreeTypeFonts > > caches of fonts. > > Well, my fonts are already installed for some time and visible to other > apps. > > > It will list all the directories where is looking for classes and > > updates all the caches, It maybe take some minutes to run, but is > > needed if you added fonts in the different directories. > > It lists ~/.fonts, but Pharo tool does not see those fonts. > > Is there a way to log output when I press 'Update'? > > I see that it scans e.g. /usr/share/fonts, but would like to see > complete output? > > > Sincerely, > Gour > > -- > But for one who takes pleasure in the self, whose human life > is one of self-realization, and who is satisfied in the self only, > fully satiated — for him there is no duty. > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] support for Croatian language
Hi, sometimes running fc-cache is needed to update the FreeTypeFonts caches of fonts. Try just running in your terminal fc-cache It will list all the directories where is looking for classes and updates all the caches, It maybe take some minutes to run, but is needed if you added fonts in the different directories. Cheers, Pablo On Thu, Aug 25, 2016 at 7:22 PM, Gour <g...@atmarama.com> wrote: > On Thu, 25 Aug 2016 18:19:13 +0200 Esteban Lorenzano > <esteba...@gmail.com> wrote: > > > you mean the list after enabling free type library? > > Yes. > > > that has nothing to do with Pharo, it lists the fonts present (and > > findable) of your system. > > Ahh, now I got it...'language' simply denotes "demo string" and not > selecting support for the language...still, I see that it does not find > fonts installed in ~/.fonts. > > > Sincerely, > Gour > > -- > One must deliver himself with the help of his mind, and not > degrade himself. The mind is the friend of the conditioned soul, > and his enemy as well. > > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] File Policy
I think that using the stdout / stderr should be the way. It's the standard and expected way to behave. Even though, I recommend you to perform a little test to see how the output is generated in the terminal, if everything is mixed up or it is quite long, maybe generating a file is not as bad idea, it will improve the way Pharo can be used by the command line. Other tools have different logging levels or even options to send the logging to a file. But that maybe is asking too much for a first version. On Wed, Jun 22, 2016 at 2:12 PM, Christophe Demarey < christophe.dema...@inria.fr> wrote: > > > Le 22 juin 2016 à 14:05, Valentin Ryckewaert < > valentin.ryckewa...@gmail.com> a écrit : > > > > Hello everyone, > > > > i'm currently working on making Pharo able to manage if it writes on his > files.I created a class which can define it, then I'm already able, for > example, to define if Pharo writes on pharo.changes or not. > > > > The meaning of this is to make Pharo able to execute a script but > without being modified by it, a script shouldn't let any trace of its > execution on the image or on Pharo files. > > > > My problem concern PharoDebug.log, I would like to know what you prefer > Pharo to do with it in the case we configured it to not write on his files > (changes, source,image). > > Should Pharo writes the logs in the terminal ? in a tmp file ? or just > in PharoDebug.log ? > > If you want to use Pharo as a script interpreter, then just do like other > interpreter: report results and errors on stdout / stderr. > Then, you can redirect the output to also have it in a file if you want. I > would not use PharoDebug.log or any other file. > > Christophe > > > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] Hello World (found a RoelTyper Bug)
Hi Diego, Just yesterday I have added documentation explaining a bit how the process is working in my Type Inferer, it works in a different way than RoelTyper, but maybe you can get ideas of how enhance Roel's Any doubt please tell me. Pablo On Tue, Apr 19, 2016 at 2:41 AM, Diego Orellana <dorell...@gmail.com> wrote: > Hello, > My smalltalkhub user is dorellang. > > Cheers. > > 2016-04-15 17:27 GMT-03:00 stepharo <steph...@free.fr>: > >> Hello Diego >> >> Good initiative! >> RoelTyper is not a Moose project. It is just used in moose. >> Now it would be good to check a bit (RoelTyper was made to work on >> VisualWorks and Squeak/Pharo) and >> it would be nice to make sure that we do not need the VW specificities. >> >> RoelTyper is managed by RMoD >> so give me you login and we will add you to the project. >> >> >> >> Le 14/4/16 16:52, Diego Orellana a écrit : >> >> Hi, Pharo Users! >>> >>> I'm starting to work on types in Pharo. To be more precise, I'd like to >>> improve the RoelTyper (a package which "guesses" variable types in code). >>> What suggestions do you have? I have some ideas and I'm currently working >>> to find more, but it's always interesting to hear what the community has to >>> say :) >>> >>> Oh, and by the way, I've found a bug in RoelTyper. I have a fix, but it >>> seems that RoelTyper is a Moose thing, since it's not included in the >>> vanilla Pharo image. Do you know where I could submit the fix? >>> >>> Cheers, >>> Diego. >>> >> >> >> > -- Pablo Tesone. teso...@gmail.com
Re: [Pharo-users] [gsoc-mentors] GSoC: call for ideas
Project idea Description: Enhance refactorings with type information Skill level: Advance Possible Mentors: Guillermo Polito / Esteban Lorenzano / Santiago Bragagnolo Name of the Student: Pablo Tesone Keywords: tools, refactoring, code completion, type inference. Description: During the development of a program in any programming language, the IDE has a very important role. It will never replace the knowledge of the programmer but it can make his life easier. As Smalltalk doesn’t have explicit type information, the IDE can not perform the same mechanisms that are present in IDE like Eclipse or Intellij IDEA. These mechanisms can be very useful. The idea of this project is to add type inference mechanisms to try to provide more information to the refactoring and code completion tools. It is important to say that the idea is not to check types or correct the program, but to allow the programmer to have more information. On Thu, Feb 13, 2014 at 12:06 PM, Usman Bhatti usman.bha...@gmail.comwrote: [Anne Etien could not post this msg on the mentors list I m forwarding it on her behalf]. Title: FAST JavaScript model Level: advanced Possible mentor: Anne Etien Possible second mentor: Nicolas Anquetil or Yuriy Tymchuk Description: For in depth source code analysis a support of abstract syntax trees is required. FAST is an abstract syntax tree extension for FAMIX meta-model that is used by Moose technology. The goal of this project is to create a JavaScript version of FAST. Technical Details: As programming languages are different, their AST representations are different too. FAST model aims for creation of as generic as possible core that can be extended for different languages. Also the structure of a model allows creation of generic algorithms like symbol resolution, metrics calculation and rule checking that will work for any language. Prototypes of FAST for Smalltalk and Java are already implemented. During the project a student will implement the JavaScript model. More detailed information about FAST is provided in the Moose day presentation: http://youtu.be/dRr3WHOD3x4 Benefits to the Student: The student will gain a deep understanding of a JavaScript syntax and abstract syntax tree model. He will also learn about PetitParser framework, and gain knowledge about software modeling and analysis. Benefits to the Community: Community will get a FAST model for JavaScript that can be used for software assessment with Moose. Also this model can be used later in PhD projects such as automation of source code translation. With this third model, the community will have raw material to real think and improve generic algorithms based on AST. On Tue, Feb 11, 2014 at 10:42 AM, Damien Cassou damien.cas...@gmail.comwrote: Hi fellow Pharo hackers, ESUG, the European Smalltalk User Group, is applying for this year's Google Summer of Code. As you probably know, the Summer of Code provides the opportunity to fund students to work during the summer on Pharo. Please reply to this email (be sure to use Reply to all) if you have ideas you would like to propose. Please include a summary of the project and links to web pages that can help prospective students to write their application. Please also include the following information: - if applicable, other dialects that you would be willing to mentor this project for - the skill level - name of the mentor(s), email addresses, and possibly any IRC network/channel/nickname where they can be found. Thanks for contributing to ESUG's Summer of Code application! -- Damien Cassou http://damiencassou.seasidehosting.st Success is the ability to go from one failure to another without losing enthusiasm. Winston Churchill -- You received this message because you are subscribed to the Google Groups Smalltalk GSoC mentors group. To unsubscribe from this group and stop receiving emails from it, send an email to smalltalk-gsoc-mentors+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Smalltalk GSoC mentors group. To unsubscribe from this group and stop receiving emails from it, send an email to smalltalk-gsoc-mentors+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Pablo Tesone. teso...@gmail.com