Author Archives: Stéphane Ducasse

Roadmap progress report October 2019

Hello,
This is the log of what we have been working on last month.
As usual, they are just bullets because we assume you are already aware of most of them, but no hesitate to ask if you want more details 🙂
Also, I’m scheduling an open meeting next Thursday to talk with those who want to show up and ask questions, discuss something, comment something.
This are the connection details (yes, you need to install an application, but is free and quality of communication is very good):
Topic: Pharo open meeting
Time: Nov 14, 2019 04:00 PM Paris
Join Zoom Meeting
Meeting ID: 148 993 322
One tap mobile
+33170379729,,148993322# France
+33756784048,,148993322# France
Dial by your location
        +33 1 7037 9729 France
        +33 7 5678 4048 France
        +33 1 7037 2246 France
        +1 669 900 6833 US (San Jose)
        +1 929 205 6099 US (New York)
Meeting ID: 148 993 322
Find your local number: https://zoom.us/u/aewx54d7wE
Note: Meeting is 16h France time. Which is +1 UTC now, so it will be 15h UTC.
Roadmap progress report October 2019
Image
Spec2
  • Make “component list” part of the list family.
  • Work on a new SpRichTextPresenter (still WIP)
  • Implement first iteration of “application based styles” (the capability to add application styles to Spec2 applications)
    • Styles can now be nested (e.g. so you can say “make this label dim”)
  • Work on tables and lists properties:
    • sortable (working on morphic, WIP on gtk).
Spec2 – Morphic backend
  • Fix a problem when calculating width of toolbars.
  • Fix component list presenter
  • Make component list presenter able to show rows of different height.
Spec2 – Gtk backend
  • Make exception handling when inside a callback more solid (still need a couple of iterations)
  • Utils: GtkLeakFinder to track different kind of leaks (image side non-GC, vm side non-freed)
  • Utils: compiling a complete gtk3 distribution to allow debugging (not an easy task).
  • Remove all leaks from backend and fight with some incorrect referenced objects.
  • Making GtkRunLoop able to “defer” actions to be able to go back to the main thread.
NewTools
  • Inspector
    • “Remember” pages opened to follow the flow. For example, if you open a panel when you had selected “Items”, it will try to select “items” in the next pane. It also remembers the replaced selection (to allow for example the inspection of images when traversing a collection).
    • Add a “refresh” button to allow refreshing inspections other than the “raw” inspection (who gets refreshed automatically)
    • Migrate some inspector extensions.
  • Debugger
    • pre-debug window now uses a button bar instead a toolbar (which is more correct)
TFFI
  • fix some bugs around new literal syntax.
  • Working in the serialization of callbacks: Callbacks should always return in the order they are called
  • Working in the debugability of Callbacks, the callbacks code should be debuggable without affecting the stability
  • Improving Tests
Image – general
  • Create KMShortcutPrinter to unify the way to show shortcuts all around the image.
  • FastTable now can be configured to have rows of different height (using beRowNonHomogeneous method)
  • For the ones using the headless vm, window losing focus to stop showing the cursor (both gtk and sdl2). Until now, cycle continued drawing the cursor, consuming CPU and making things confusing.
  • create a way to target generic git repositories with iceberg (reacting to Sven request).
VM
  • VM now can sleep when idle.
  • VM now can run in a separated thread from the main thread.
  • Implementing Async I/O in Windows
  • Experiment running SDL2 and Gtk3 in the main thread (Done for the world rendering, WIP for Mars-Gtk).
  • Improving Debugging of callbacks in Gtk / SDL2
  • Preparing and Giving the Pharo Techtalk.
  • Working in GC compactor corruption.
  • Improving the handling of VM Parameters.
  • Improving the API to give support to different experiments.
  • Experimenting of running embedded images.
  • Improving String primitives with checks on Forwarders.
Cheers,
Esteban

[ann] Material Design Lite for seaside 2.2.0

Hi everyone!

I am happy to announce the version 2.2.0 of Material Design Lite for seaside.

https://github.com/DuneSt/MaterialDesignLite/releases/tag/v2.2.0

This version brings 3 new features:
– Expansion panel in the form of brushes or widget
– A table component that allows one to describe the columns content
instead of providing a collection of rows
– Predefined alerts as an extension of MDL

Thanks to Julien Delplanque who helped a lot to release this version.

You can find a demo of the MDL version at: https://mdl.ferlicot.fr/

Have a nice day

Cyril Ferlicot
https://ferlicot.fr

2019 Lands Platform presentation

The Lands Platform: Lan.guages and D.omain S.yntax,
@sleconf 2019, co-located with @splashcon

Showcasing live magic tricks powered by the @pharoproject
Best,
Nick

[Ann] alpha … Pillar rendering

Cheers,
 

Rendering the Pillar markup inside the Pharo image

This is work in (early) progress, but I think it is far enough for a “technology preview”.

Goal of the project

The goal of the project is to be able to do better in-image documentation. To do this, I am working on several fronts:

  1. Rendering more pillar, expecially I would like to get a solution for tables.
  2. Rendering github markdown in addition to pillar markdown. This will allow me to pull markdown from git and display it in-image.
  3. Giving the “help-system” some love.
  4. In-image tools for writing markdown – a markdown editor
  5. A design for keeping the mark-down texts seamlessly outside of the image

Reg. 1., I can only figure out how to transform a morphic table into an image, and then add that image to the text (not included atm as I find it so ugly a solution). Any other ideas are greatly appreciated.

Reg. 2. I am nearly done on this one, at least for the easy aspects (headers, lists, emphasis, code-blocks).

Reg 3 and 4. Only loose ideas atm.

Trying it out

Load it using Metacello:

Metacello new
   baseline: 'PillarRichTextRender';
   repository: 'github://kasperosterbye/PillarRichTextRender';
   load.

At the moment it will load the whole of Pillar, but I hope to fix that soon.

Once loaded, the class PRRichTextComposer has some examples on the class side.

[Ann] bootstrapping tools

Hello,
I released a first version of the bootstrapping tools in https://github.com/carolahp/pharo/tree/candle


Follow the instructions in the readme for generating the environment for bootstrapping small kernels.
Once you build your development environment, two windows are shown in Pharo by default, each for bootstrapping a different small image: one is Pharo Candle, a tiny image that weights around 160kb and which logs some small benchmarks in a log.txt file. The second one is our minimal image of Pharo, which weights 1.7MB and is able to load precompiled code  using a tool called Hermes. (The generated images will initially have a size of 30mb, and will be resized after executing them for the firs time with the VM, this is a bug that I will fix soon)
The images are generated taking as input the source code of all the classes that will belong to the system (in tonel format) and they are located in the folders pharo/src for the sources of Pharo minimal and pharo/bootstrap/scripts/pharo/PharoCandleSrc for Pharo Candle.
You can check the content of these source files using the button show sources and you can export them in tonel format using the link “export to Tonel” shown in the Calypso view. (If you do that, you need to close the tool and open it again .. I will add an auto refresh soon :p )
When you click the button write , generated images are saved in the folder pharo/bootstrap/scripts/pharo/bootstrapped . You can execute these images using the pharo headless vm 32 bits (you can use the one in pharo/bootstrap/scripts/pharo/.pharo
The current tool also allows you to execute and debug code in the generated image after generating it and before writing it to disk (it has some limitations whose cause and extent I need to explore in the future), and it also allows you to inspect an already generated image (inspect button), showing you it’s special objects array for now.
This is just an early version, but it already allows to play with the bootstrapping in a more friendly way
Cheers
Caro

[Ann] Beta of the Commander20 booklet

Hi

Just a little post to notify you that we will be releasing the documentation of the new Command v2.0 framework in the coming weeks.
Enjoy.
S.

[ANN] HeySql v1.1

Hi, I have just released HeySql, version 1.1 – a database orm for Postgresql.

– Support for migrations
– Generation of migration templates based on classes
– Models can now be subclassed
– Updated license to MIT
– Updated docs
– Some minor stuff

https://github.com/pegesund/heysql

Petter

[Ann] ActiveX Data Objects (ADO) on Microsoft Windows

Dear all,

A working prototype of PharoADO is now available at
https://github.com/eftomi/pharo-ado. I’d be glad if you can find the time to
test it and report your observations to this list or on the GitHub. PRs are
welcome and much needed 🙂

Firstly, I would like to focus on various database data types. When using
ADOClient and ADORecordset, the availability of data types heavily depends
from PharoWin32/PharoCOM packages, so we have to update both repositories
🙂

The PharoADO package is not huge after all, since ActiveX Data Objects
itself is an abstraction layer and provides much of the needed
functionalities by itself.

Best wishes,
Tomaz