Perl 6 - the future is here, just unevenly distributed

IRC log for #pdl, 2015-07-09

| Channels | #pdl index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
07:42 mohawk ha ha, oh dear
07:42 mohawk sivoais, nice work on 390! haven't looked at it yet myself - what does chm think?
09:19 sivoais don't know. Will have to wait
17:16 spintronic1 joined #pdl
17:28 spintronic1 left #pdl
18:07 sivoais i've been thinking more about the idea of having a Moo(se)-like implementation available to native code
18:07 sivoais and one thing that seems very much necessary is to have a MOP for C-level "classes"
18:08 sivoais but that would seem difficult to do at runtime
18:09 sivoais unless there was a VM or compiler that could be used to allow calling new code at runtime
18:09 sivoais in the future, I'd like to look more at p2/potion and tinycc
18:25 vicash sivoais: LLVM
18:33 sivoais yeah, been thinking about that too
18:33 sivoais Julia uses that
18:33 vicash probably more complex but also more cross-platform way of doing things
18:34 sivoais yeah, I'm thinking LLVM might have more optimisations than tinycc
18:34 vicash the purpose of LLVM is to write a generic front-end compiler to an intermediate language bytecode
18:35 vicash so you will get more advantages than tinycc
18:35 vicash because C as an intermediate language will have some limitations defined by Tinycc
18:35 sivoais yeah
18:35 vicash however, C as bytecode is more readable possibly than the LLVM bytecode
18:35 sivoais not compiler related, but I'm also looking at <https://en.wikipedia.org/wiki/Data,_context_and_interaction>
18:36 sivoais which is interesting because I do many of the same things with Moose
18:37 sivoais but from what I see in online discussions, DCI is a not performant
18:37 sivoais at least not in Ruby
18:37 sivoais in comparison to MVC
18:38 vicash anything that adds abstraction loses performance
18:39 sivoais true
18:40 sivoais which is why I'm also looking at <http://scala-lms.github.io/> (back to compilers) which promises "Abstraction Without Regret"
18:40 sivoais "Turn nice high-level programs into fast low-level code. Strip abstraction overhead from generic programs. Add domain-specific optimizations."
18:40 vicash PDL is already domain specific
18:40 vicash Scala is a general purpose language
18:40 * sivoais nods
18:41 sivoais LMS is also used to write embedded DSLs in Scala
18:41 sivoais for example, automatically generating DSP code
18:41 sivoais <http://www.spiral.net/software/spiral-scala.html>
18:41 sivoais which is how I came across this in the first place :-P
18:42 vicash yea i am doing that with Perl for VIC to generate microcontroller code... best to use optimizations for one backend, and when you feel abstraction is needed, add it .. allows you to not over-design the system
18:42 vicash i design my compilers and DSLs with ease-of-debugging in mind.. so that makes it easier to avoid a lot of fancy abstractions
18:44 sivoais yeah, I'll have to look more closely at VIC later :-)
18:44 vicash i just released a new version a couple of days back. you can now read/write to the UART port using a one-liner
18:46 vicash An example: https://github.com/selectiveintellect/vic/blob/master/share/examples/uart.vic . You can also simulate all of this in software so you don't need hardware to test
18:47 sivoais nice :-)
18:48 sivoais are the PICs fast enough for music DSP?
18:48 vicash https://github.com/selectiveintellect/vic/blob/master/share/examples/uartisr.vic this is better one.. it uses interrupt service routines for async reading and a blocking write
18:48 sivoais or would you offload that to another board?
18:48 vicash you need to use the dsPICs for that
18:49 vicash i don't have any of those chips to test on... i am focusing on the general PIC that Microchip gives with their programming kit. it does a variety of things but not USB or DSP work
18:52 vicash hardware is a fragmented field.. almost every company produces a special DSP chip for music... all depends on what kind of dev board and toolchain you want to use
18:54 vicash although I found an example to play a WAV file on a standard PIC, so i will add that as an example of how to store large files  (256KB) in the EEPROM and play music from there.. maybe i can add that as a built-in function in the language
22:40 sivoais also interesting <http://libccv.org/doc/doc-cache/>
22:40 sivoais this caches matrix operations by giving each matrix a signature
22:40 sivoais this is useful for large applications
22:41 sivoais but also may help with the incremental computation idea I talked about in here before
22:42 sivoais I'm interested in incremental computation because I don't like having to cache results to files by hand when experimentally building up data pipelines
22:42 sivoais <http://www.pgbovine.net/incpy.html> is the best explanation of what I mean
22:43 sivoais it's like having make(1) inside your code without having to write out the dependencies ;-)
22:44 sivoais wooo, bug fixed! time to go home

| Channels | #pdl index | Today | | Search | Google Search | Plain-Text | summary