Oct 4, 2018, 3:41:03 PM10/4/18
to fp-...@googlegroups.com, discu...@googlegroups.com
We had intended to have PLT meetings two weeks after each FP-Syd, but after attending ICFP in St Louis I am now in Europe and on the way to a work meeting in Zürich. If any Sydney Sliders want to have a PLT meeting in Sydney then I suggest that interested parties reply to this message saying “I’m coming”. If you get at least two responses then the meeting is on.
The usual configuration is:
The Local Taphouse
122 Flinders St, Darlinghurst NSW 2010
I myself am returning to Sydney on 27th October.
I’ve appended the notes I took from the previous meeting.
Meeting of 4th September 2018
Attendees (9): Amos, Josh P, Ben, Max, Erik, Josh M, Andrae, Rohan, Richard
Amos: Thesis Writing
Max: Trying to get Raspberry Pi working with bluetooth BTLE. There is no implementation on Linux in software. Existing hardware for this uses embedded ICs, talked to via I2C.
Erik: Working on Cardano, reducing the number of files needed when storing chain data.
Ben: Read The Types are Calling Conventions paper by Max Bolingbroke and Simon Peyton Jones. Experimenting with a new core language based on this, and planning a new version of the Shimmer library to build it on.
Richard: Described an indexing method from a book “The Fabric of Knowledge” by Jolley. The method maps book topics to a bit vector so that works on similar topics have similar vectors, part of the Library Science field from the 1970s. Andrae mentions this relates to recent work on structural linguistics.
Josh M: Working on stencil support in Accelerate. The current API uses nested tuples to represent stencils, but this does not scale to very large stencils. Ben mentions that the Repa Stencils paper from Haskell Symposium 2011 used a 3rd order function in the API to avoid limiting it to a maximum stencil size. This is basically applyStencil : ((Ix -> Elem) -> Value) -> Array Value -> Array Value, where the worker function that defines the stencil is passed a function that it can call to get elements from the source array.
Max: Describes an approach to “radical pointer tagging” when short literal strings are stored directly in pointers. In a 64 bit pointer there is often 3-4 whole bytes of available space to stash a string.
Max: Describes how good malloc implementations will talk to the kernel to find out which pages are currently resident in memory, and try to allocate new objects into these resident pages to avoid having an immediate cache miss when the memory is initialised. Such techniques make pointer values even more non-determinatic than they already are on modern systems that have address space randomisation.
Max: Mentions a company Azule that produces a JVM garbage collector wrapped into a kernel module. Kernel modules have a better understanding of what is in cache than a user space implementation. Azule’s first product was a hardware PCI card that implemented a JVM garbage collector in FPGAs