Parrot 3.8.0 "Magrathea" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 29 September 2011.
dalek sella: b8d7d89 | Whiteknight++ | src/proxy/ (14 files):
cleanups for Proxy
00:40
sella: c9ac976 | Whiteknight++ | src/query/ (11 files):
Fixes to Query for consistency
sella: 1456d77 | Whiteknight++ | src/mockobject/ (11 files):
formatting updates for MockObject
00:46 whiteknight joined
cotto ~~ 01:01
01:18 alester_ joined
alester_ seen coke 01:19
aloha coke was last seen in #parrot 4 hours 46 mins ago joining the channel.
01:25 ScottD joined
ScottD Good evening everyone. 01:26
cotto hi ScottD 01:27
ScottD I do a fly-by of Parrot every so often to keep tabs on things. It's looking really good! I had some general "can it do" type questions, if you have a minute? 01:29
cotto fire away 01:30
ScottD I've been experimenting with "Avian" - an embeddable Java VM - to rewrite a game engine I did a number of years ago. I'd love to use Parrot for the variety of languages that can target it. However, I need to make a big static "runtime" of everything the games that run on it may need... 01:31
In Avian, I just statically compile everything together, use SWIG to generate Java bindings for the various libraries, and link it all together... 01:32
Is anything similar possible on Parrot? I looked around quite a bit and wasn't able to find an explanation of how languages other than PIR talk to native code. 01:33
cotto Hmmm. 01:34
The assumption is that HLLs will be built on top of PIR and will be able do anything PIR can do by generating the right PIR code. 01:35
that includes nci, which is what you'd use to talk to C libraries 01:36
ScottD Right. But say I compile in SDL and then want the HLLs to be able to access it... Right now, with Avian, an "SDL" class is just magically added to the HLL (Java in this case) thanks to the SWIG bindings. 01:37
cotto "compile in SDL"?
what do you mean by that? 01:38
ScottD I link SDL in with Avian and then add the Java side to the embedded class library. 01:39
From Java's point of view, I'm doing JNI. Except instead of to a loadable library of SDL stuff, it's just referencing the same binary the JVM is in. 01:40
cotto for Parrot, you'd write the bindings in nci
ok 01:41
ScottD But how does that get to the HLL? Or doesn't it as of yet?
cotto so sdl is build in to the interpreter. I'm not sure why that'd be better than a shared library, but ok.
ScottD Eases distribution on those, eh, "other" OSs. You know, the one where users aren't as smart. :-) 01:42
cotto any symbols that nci can find are capable of being exported to HLL code
hopefully coapp changes that
ScottD Coapp?
cotto apt-like package management for windows, still under active development but with a very capable bunch of hackers behind it 01:43
ScottD Nice. Windows needs sane package management. 01:44
cotto srsly
ScottD Or, it just needs to go away. :-)
cotto good luck with that 01:45
ScottD hehe
I can dream!
01:46 bubaflub joined, jsut joined
cotto ScottD, does that answer your question? 01:47
ScottD Yea, I think so. I'll continue to read. Parrot is neat stuff.
Thanks, cotto - gotta run for now. Hopefully I'll be back with better questions. :-) 01:52
cotto ScottD, have fun 01:53
dukeleto nice to see new nicks asking questions 02:15
cotto yup 02:16
dukeleto++ btw for recommending dircproxy
02:27 rfw joined 04:36 jsut_ joined
dalek rrot: 1406d01 | petdance++ | src/runcore/subprof.c:
Use NULL instead of 0 for pointers. Const some func parms and local vars. Localized some temp vars.
05:11
05:22 SHODAN joined 06:34 mtk joined 06:59 mj41 joined 07:48 baest joined 07:55 mj41 joined 08:02 lucian joined
dalek kudo/nom: 3d67ff2 | moritz++ | lib/Test.pm:
[Test] do not count dying will Null PMC access as a success
08:16
kudo/nom: 840ad74 | moritz++ | t/spectest.data:
run another test file
kudo/nom: fc304e3 | moritz++ | src/core/Exception.pm:
report errors to $*ERR
08:51
08:52 woosley joined 09:08 Coke joined
dalek kudo/nom: b7af9ff | moritz++ | src/Perl6/Actions.pm:
improve error message, masak++
09:16
09:43 woosley left 10:05 kurahaupo joined
dalek kudo/nom: bbe823d | moritz++ | src/Perl6/Actions.pm:
avoid @_ being reported as @^_

It seems easier to pass the full variable name to add_placeholder_parameter than to reconstruct it from sigil, identifier and the twigil
10:17
10:18 kurahaupo_mobi joined 10:24 kurahaupo_mobi joined 10:40 AndChat- joined
tewk_ 3 10:58
dalek kudo/nom: 4f19b79 | Coke++ | t/spectest.data:
run unfudged test
11:12
11:36 Psyche^ joined 11:48 whiteknight joined
whiteknight good morning, #parrot 11:48
11:54 bluescreen joined
dalek kudo/nom: ff78b5b | moritz++ | tools/build/Makefile.in:
clean up CORE.setting
11:58
12:11 AzureStone joined
Coke I'm working on a replacement for smolder, not taptinder. 12:17
taptinder is mj41. 12:18
seen alester
aloha alester was last seen in #parrot 17 hours 57 mins ago saying "What's wrong with the existing one?".
Coke seen alester_\\
aloha Sorry, I haven't seen alester_\\.
Coke seen alester_
aloha alester_ was last seen in #parrot 10 hours 59 mins ago saying "seen coke".
Coke aloha, you should consider treating those as the same guy.
12:19 bluescreen joined 12:41 atrodo joined 13:08 cosimo joined 13:13 cosimo_ joined 13:15 benabik joined, Tene joined
tewk_ api.yaml = "automated communication", "automated communication" isn't communication its only notification.compiler IR 13:25
benabik o/ #parrot 13:27
dukeleto ~~ 13:29
tewk_: huh? 13:30
alester Coke: I'm here
Coke alester: what's up? 13:33
oh, I have a picture I took on the way into work today I need to send you.
bah, it's nearly illegible. it's the car in front of me on the way to work, and he's got a white oval stick with the letters "ACK" in it. zoom in, and it's illegible though. ah well. I'll try to catch him in the neighborhood. ;) 13:35
alester: you were looking for me earlier. was it about taptinder?
13:40 bubaflub_ joined
dalek nxed: 9d2eebd | NotFound++ | winxedst1.winxed:
fix bug in passing null args introduced in a recent refactor
14:00
nxed: 03a193a | NotFound++ | t/advanced/05mreturn.t:
one more test for multiple return
14:01
alester Coke: Yeah, someone said you were the guy behind taptinder. 14:03
I see that tt.taptinder.org/buildstatus/parrot/master hasn't had any updates since 9/19, and wondered if there was anythign I could do to get things going again.
Coke taptinder is mj41. 14:04
I have access to run a client, but have to remember to restart it after a reboot.
alester OK
Coke I can try to start it up and see if anything answers. momentito.
alester The site is up. It just hasn't had any updates in weeks. 14:05
Coke New msjobp_cmd_id not found.
Waiting for 15 s ...
looks like the server isn't handing out work.
aloha, seen mj41? 14:06
aloha Coke: mj41 was last seen in #perl6 6 hours 11 mins ago joining the channel.
Coke aloha, tell mj41 that taptinder server isn't handing out work units.
aloha, msg mj41 that taptinder server isn't handing out work units.
aloha Coke: OK. I'll deliver the message.
Coke grumbles at the 8 different perl bots he has to interact with that all speak different languages.
alester the clientmonitor page 500s
14:07 dodathome joined, dngor joined
Coke kills his client and restarts it in another screen so it'll start working when TT comes back. 14:08
alester++ #reminder.
alester I actually wanted to use it to check the commits I'd been making. 14:09
Coke alester++ !
alester Crazy, I know. 14:10
Coke I can fire up a build on windows today to keep you honest if you like.
alester At first I thought that my commits weren't getting through, until I noticed 9-19-2011
dalek kudo/eval-throws: 741a933 | moritz++ | src/core/control.pm:
Do not catch exceptions from eval()
14:12
dukeleto wow, people have test bots that comment on github: github.com/andreasgal/pdf.js/pull/...nt-2297103 14:14
benabik Awesome!
dukeleto it even has good instructions to install/maintain it: github.com/arturadib/pdf.js-bot 14:20
benabik Instructions? What are those? ;-) 14:22
dukeleto github.com/pdfjsbot
benabik Heh. I would have made the bot's code a repo for the bot.
dalek kudo/eval-throws: fa2d5c5 | moritz++ | lib/Test.pm:
Test.pm needs to deal with eval() not catching exceptions
14:23
14:33 contingencyplan joined 15:11 klavs joined 15:12 klavspr_android joined 15:17 klavspr_android joined 15:21 klavs joined
klavs Hello, #parrot ! 15:21
benabik Hello, klavs ~ 15:22
s/~/!
atrodo error: Substitution replacement not terminated 15:26
klavs i am back. i was here for a few weeks in june. now, in fact, i am studying computer science in university, so i hope i will be able to do something for parrot. I am rewriting dm0 - m0 disassembler in perl6, i really hope i will finish it. i was reading your conversations about m0. so... what`s new about m0? i am reading some m0+ and m0-. what are they?
benabik klavs: I don't remember who came up with them, but they're something like macro and microcode on a processor. m0+ is roughly m0 and m0- is the bare minimums. 15:29
Anybody have a link?
benabik digs through the logs... 15:31
atrodo github.com/gerdr/m0-pm
benabik atrodo++ # stopping me from digging.
atrodo And github.com/gerdr/on-parrot for his basic thoughts about m0+/-
klavs the instruction set for m0 is going to be changed? i read something about variable instruction length. 15:32
benabik klavs: gerd was having problems with making m0+ efficient on both 32/64 bit. 15:33
whiteknight not_gerd, not gerd 15:34
benabik ...
atrodo whiteknight++ 15:35
benabik gerdr == not_gerd. Right.
whiteknight and gerd != not_gerd 15:37
clearly
:)
benabik I apparently need to finish my coffee first. 15:38
atrodo and gerd ne not_gerd, for the perl folks like me
benabik whiteknight: I'm trying to extract a README from "design.md", which I'm tempted to rename something like "brainstorming.md".
That's true. In perl, 'gerd' == 'not_gerd'. Which always confuses me for a moment.
atrodo benabik> It's both a blessing and curse. And it's only a curse when I forget, which is more rare these days 15:40
benabik atrodo: I've been using too many strongly typed functional languages, where == : A -> A -> Bool. The fact that == : Num -> Num -> Bool and eq : Str -> Str -> Bool bothers me every time I notice. 15:41
I'm more used to `2 == '2'` being a type error these days, rather than true.
nine I always found Perl's approach rather elegant. Better than in fact having types, but not being able to influence them like PHP, or getting errors when trying to concatenate two things that should be strings like "foo" + 2 in languages like Python. 15:47
whiteknight I was never a fan of the perl approach. It makes no sense to me that using == with two strings would perform a non-string comparison 15:49
benabik I rather appreciate the elegance of strong type systems. Perl's typing often confuses me. I rather appreciate ~~ in P6.
odd phrasing there from me. Whatever. 15:50
whiteknight I've had more programs be subtly broken because I used == instead of eq or vice-versa
benabik whiteknight: +1, although I always remember "oh, yeah P5 doesn't have types" after using it for a while.
whiteknight benabik: after a while, I stopped using perl5
benabik Yeah.
I tend to use Ruby or sh these days. 15:51
nine Of course, if you want strong typing a dynamically typed language cannot be good for you :)
benabik You can have strongly typed dynamic languages.
whiteknight I don't recommend that course of action for everybody, but it was important for my own sanity to pick languages that better fit my personality
benabik Not sure why you would.
The point of strong typing (IMHO) is getting errors very quickly.
whiteknight: Scala was wonderful while I was using it. 15:52
whiteknight I haven't tried scala yet. I might have to pick it up some day
I get plenty of recommendations about it
benabik Major problem with it is that it's big. Uses lots of objects, has a large runtime. 15:53
I was reading about people using it on Android. That's fun. Default heap size won't even run simple scala programs. 15:54
But pattern matching, lazy lists, and functional style in the JVM is awesome.
But this is #parrot, not #scala, so I'll get back to that PACT thing. 15:55
16:01 dmalcolm joined
dalek CT: 2f8b563 | dukeleto++ | README.md:
Add a readme
16:04
benabik ack
atrodo benabik++ I've been too busy to see this start. I have high hopes for it 16:05
benabik atrodo: I have no idea how much time I have for it right now, but I'll do what I can. 16:06
cotto ~~ 16:08
16:25 not_gerd joined
not_gerd hello, #parrot 16:25
benabik o/ not_gerd. Were your ears burning? 16:26
not_gerd benabik: should they?
benabik not_gerd: klavs was interested in your m0+/- work. 16:27
TimToady I think if Perl 5 had always had strict and warnings, you guys wouldn't be carping about == now, which usefully distinguishes the semantics desired, rather than overloading one symbol with too many different meanings 16:37
Perl 5 put its precision into its operators, not its types; Perl 6 lets you do it both ways
(and defaults to telling you when you've misused ==) 16:38
whiteknight Like I said, it's not a bad decision. It didn't mesh well with the way my head works
benabik Perl6 does, in fact, do it better. And while the different semantics of ==/eq are very useful, the lack of a generic same-type equality operator tends to trip me up. 16:39
TimToady it's like, what does '+' mean in other languages, other than, "I dunno, ask the type system."
benabik: eh, that's what eqv and === are
benabik TimToady: Should have specified "lack in Perl 5". Do those exist in P5? 16:40
TimToady not yet :)
otoh, past attempts to cargo cult syntax back into P5 have not been entirely successful, in the absense of a sane type system :) 16:41
benabik See ~~ ?
TimToady indeed
not_gerd for an example on how not to do ==, see Javascript
benabik Perl6 does many more things right… And I'm fascinated by it as far as studying language design goes. I'm not quite ready to use it on a regular basis. 16:42
PerlJam To be fair(er), smart matching was still in flux when p5p adopted it.
TimToady sure, but it's really the type system that is the killer here, not the assumption of symmetry 16:43
benabik type systems FTW
benabik is currently learning formal type systems and is enjoying it.
not_gerd klavs: if you're interested in m0±, see github.com/gerdr/on-parrot/commit/9940dc for some additional comments 16:55
klavs: I'm currently implementing a prototype to see if the vague ideas mentioned there are fasible in pratice
16:59 klavs joined 17:03 klavs joined 17:05 klavspr_android joined
cotto ~~ 17:06
dalek CT: d004ddd | benabik++ | / (3 files):
Organization, part 1: README

Having a repository full of just my brainstorming seems less than useful. Let's mark my brainstorming notes as that and pull out the goals into the README so others can see why we're bothering.
I plan on separating out other useful parts of brainstorming.md soon.
17:23
benabik I can get wordy really quickly.
cotto What's pact going to be written in? 17:25
benabik cotto: Current thought is Winxed. 17:26
cotto so pir, just indirectly
benabik Basically.
cotto unless winxed starts generating pbc directly, which would be awesome
benabik But pure-PIR is heinous for new people to get into.
cotto a language only a code generator could love 17:27
benabik Except no, because it assumes too much so that us poor humans can use it. :-D 17:28
cotto sigh
benabik I'll note that replacements for PASM/PIR are part of my manifesto^W^Wthe goals for PACT. 17:29
cotto I saw that. That's why I ask.
benabik NotFound expressed interest in using PACT for Winxed, so that might be useful. I imagine as the project goes, we'll hit some level of bootstrapping so we can avoid PIR. Or I'll implement a newPASM compiler in C for libparrot. 17:30
cotto That's where I'd expect it to go.
atrodo And if I ever get time, I'd like to be able to use it for draak 17:31
cotto It sounds like it'd be a good thing for a hypothetical php compiler to target too. 17:32
benabik Ideally it's be a good thing for everything to target. I plan 100% world domination. :-D 17:33
17:38 fperrad joined 17:40 bluescreen joined
nine Aaah...a cup of coffee, a glass of wine, ready for code. 17:44
dalek CT: 8e2319b | benabik++ | / (2 files):
Organization: TODO

Split out the implementation plan into its own document for ease of finding. Turns out I had already been fairly verbose there, so little addition was required.
17:45
kudo/optimizer: ad8f64a | moritz++ | src/core/Int.pm:
more native int ops
17:49
not_gerd nine: careful with the wine - hitting for the Ballmer Peak is not an easy endeavour 17:50
nine but a worthwhile oen ;) 17:51
s/oen/one/
not_gerd (btw, my beverage of choice is green tea and cider)
nine cider++
moritz nine: mixed together? :-) 18:02
sorry, meant not_gerd
not_gerd moritz: well, no, so that should probably have read beverages ;) 18:03
however, I do find cider as a nice basis for adding various other fruit juices, so now that you have mentioned it, I might actually try it out... 18:04
s/as// 18:05
moritz well, fruit juices are sweet, green tee not so :-)
not_gerd some experimentation on the ratio of various compounds is probably necessary 18:07
dalek CT: a34eb92 | benabik++ | / (3 files):
Organization, part 1: README

Having a repository full of just my brainstorming seems less than useful. Let's mark my brainstorming notes as that and pull out the goals into the README so others can see why we're bothering.
I plan on separating out other useful parts of brainstorming.md soon.
CT: b05010e | benabik++ | / (2 files):
Organization: TODO

Split out the implementation plan into its own document for ease of finding. Turns out I had already been fairly verbose there, so little addition was required.
whiteknight holy crapamole
cotto srsly
benabik Yes, those might look familiar. The first commit didn't pick up the deletion, so I just fixed it and pushed the fixed version. Figured the # of users for the repo is very very low right now. :-D
benabik-- # rebasing pushed branches 18:09
whiteknight whatev
cotto who's played with the install process? Hard-coded paths make Rakudo * hard to install to a non-fixed location. 18:10
whiteknight I stay as far away from the install process as possible 18:11
18:11 bluescreen joined
dalek CT: 8e34f71 | benabik++ | TODO.md:
Organization: TODO

Split out the implementation plan into its own document for ease of finding. Turns out I had already been fairly verbose there, so little addition was required.
18:24
benabik ARG.
DIE FILE FIE
dalek kudo/optimizer: b6c5071 | moritz++ | src/core/Num.pm:
native num trig ops
18:32
kudo/optimizer: e19f726 | moritz++ | src/core/Num.pm:
more num builtins, including log() and the rest of the trig functions
nine longjmp(square, 1) 18:55
benabik ?
nine well, another path turned out to be a dead end 18:56
atrodo nine++ # clever
nine except, if I want to manually save part of the stack and restore it later. But I am really really not sure if I want to go down that road... 18:58
whiteknight doing that in a way that is going to work on multiple systems is not a good idea 18:59
19:00 bluescreen joined
nine Well according to homepage.mac.com/sigfpe/Computing/c...tions.html it works surprisingly well. But I'd rather explore other options before turning to such desperate measures. 19:00
whiteknight okay
nine The other option being: trying to find out why continuations depend on their runloops and if I can change that. 19:02
benabik If we expect to call back to returned functions, implementing C continuations is the only option. Really you can only longjmp to a function that called you or longjmped to you. 19:05
Actually, I think scratch the second.
I think longjmping down the call stack is hazardous. 19:06
whiteknight nine: The reason why continuations depend on their runloops is because runloops can be nested on the C stack, and you don't want to be invoking a continuation that's in a different place on the C stack
nine: if we restrict preemption to only happen in the top-level runloop, we can avoid that problem
nine benabik: jumping down does not work. Except if you restore the stack beforehand manually
dalek kudo/optimizer: 2146e92 | moritz++ | / (14 files):
Merge branch 'nom' into optimizer
19:07
whiteknight Like, if we have a "runloop depth" counter, we can only preempt when the runloop depth == 1
benabik This is why we want M0. We want to be in an environment with GC and continuations as rapidly as possible.
nine we do have runloop_level
nine is getting interested in M0
whiteknight nine: okay, I was unaware. So use that to try and keep track of when we are in a top-most runloop, which will stay inside the stack until we exit parrot
if we do exit the top-most runloop and call back into parrot from external code, we can update our jumpbufs to point to the new top-level runloop instead 19:08
benabik whiteknight: ew.
whiteknight ew?
benabik updating jumpbufs? 19:09
nine Calling back into parrot will do that anyway, since it certainly will end up calling runops
whiteknight right 19:11
nine: definitely take a look at the embedding API in src/embed/* and include/parrot/api.h
the callin/callout sequences are both instructive and open for modification
nine Restricting to runloop level 1 is trivial. So if I do that it's save to give a resumed task's continuation a new runloop? 19:14
whiteknight if every task is scheduled in runloop 1, you can keep sharing the same runloop, I think. longjmp back to it because it's always there 19:17
at least, I think so
nine Well as it happens, there's already a interp->current_runloop_level <= 1 in Parrot_cx_run_scheduler 19:23
whiteknight oh, nice 19:30
nine But I cannot longjmp back to the runloop, because it's down the C stack. And the scheduler calls several other functions in between so runops' stack gets overwritten 19:31
benabik Tasks likely require implementing continuations in C.
Including manipulation of the C stack. 19:32
moritz I thought we did that long ago
benabik get/setcontext may be more useful than set/longjmp
moritz we do CPS after all
benabik Our C code isn't CPS.
nine Having continuations in C would make this tremendously easier. But with the restriction to preempting only in the top level runloop, I might still be able to get this working without. 19:33
benabik nine: Are you doing preemption or cooperative multitasking only? 19:34
whiteknight we can do things however they need to be done, if we have to change the way runloops work we can definitely do that
if it's going to be a lot less work overall to throw out the baby with the bathwater and start rewriting our fail from scratch, that's fine
benabik Oh! I renamed design.md, but left it open in Vim. No wonder! 19:36
nine benabik: preemption
19:37 bluescreen_ joined
dalek CT: 05f6f99 | benabik++ | / (2 files):
Organization: Nodes

This leaves really only information on compilation and stages in the brainstorming doc. Cleaning those up is the last task.
19:38
benabik I guess putting it in a repo was a good idea. Putting it somewhere not in my direct control gave me a lot more incentive to clean it up. 19:39
dukeleto++ whiteknight++ 19:40
whiteknight we're nefarious like that
benabik Although I think this is something like 99% of my free time for the week. :-)
not_gerd blog post: gerdr.github.com/on-parrot/introduc...0--pm.html 19:42
awwaiid nine (re:preemption) still think you're crazy (though I have very little basis)
benabik Preemption is really tough.
nine What's life without a little challenge?
awwaiid death?
benabik nine: That's more like a lot of challenge. 19:43
tadzik it depends
moritz benabik: if you just preempt on the runloop level, is it really that tough? 19:57
or is that the not-so-interesting type of preemption?
benabik moritz: Generally speaking preemption makes implementing multitasking much much harder. If a task knows when it's handing over control, it's much simpler. Less worry about stacks and atomic operations and the like. 19:58
moritz: I will admit that that's generally speaking. It may be fairly simple in parrot with large enough granularity. 19:59
moritz benabik: makes a lot of sense
not_gerd good night, #parrot 20:06
nine holy hell, core tests pass! (almost...some expected task related failures) 20:09
benabik nine++
20:10 perlite joined 20:11 mj41 joined
nine so simple...the only thing I had to do was reseting the runloop_id_counter to 0, so the new runloop had id 1. As I allow preemption only in the top most runloop, by definition there cannot be any other active runloop than the one that just gets created 20:11
So no way that there could be an id clash
dalek kudo/optimizer: 5b40d01 | moritz++ | src/core/ (4 files):
use native types in the setting a bit more
20:13
whiteknight nice 20:14
nine full parrot build now worked for the first time :) 20:19
tadzik wow
nine++
benabik What's the multi syntax in winxed? 20:20
Eh. I'll go pseudo-codeish.
whiteknight GABADAGABAGOO
it's not very readable
nine I think at this point I earned myself an hour of reading a good book before going to sleep. Good night #parrot
whiteknight :)
benabik whiteknight: :-P
whiteknight benabik: for simple multi, you would just write a normal function with var/string/int/float 20:21
for complex, it would be something like thisL:
tadzik g'night nine
whiteknight function foo[multi(string, class Foo.Bar, int, class ResizablePMCArray)](string s, var b, int i, var r) { } 20:22
benabik Bleh. Definitely going pseudocode then. :-D 20:24
20:54 mj41 joined
dalek CT: f3a2189 | benabik++ | / (3 files):
Organization Finished: Compilers and Stages

Split the remaining notes into information on stages and the compiler object structure in general. None of my ugly brainstorming remains, only something that resembles very hand-wavey design documents.
21:06
benabik aloha: msg whiteknight You might want to take a look at PACT now. I think my notes are a little more understandable now. 21:07
aloha benabik: OK. I'll deliver the message.
benabik dukeleto: cotto: ^^, if you want more readable thoughts on PACT 21:08
aloha: msg NotFound You expressed interest in PACT, so I thought you might want to know I have more readable notes on it now. github.com/parrot/PACT 21:09
aloha benabik: OK. I'll deliver the message.
benabik Wheeeeeee....
dalek kudo/nom: d3e6519 | moritz++ | src/core/Int.pm:
add some missing :D markers on Int ops, masak++
21:14
cotto benabik: how long did it take you to write that? 21:17
benabik cotto: The notes have been bubbling for a few weeks, since the end of GSoC. Cleaning it up took my lunch break and most of my between work task time today. 21:18
cotto I'm excited. This has good potential. 21:20
benabik cotto: It should be noted that I really intend this to be more like a violent refactoring of PCT than a reaction of "PCT sucks". But it'll be easier to get bytecode right baking it in from the start and then adding back in things from PCT, I think. 21:21
dalek CT: 3195755 | benabik++ | TODO.md:
Update TODO

My brainstorming notes are mostly done, but the resulting docs are probably fairly incomplete.
21:32
sorear what's pact? 21:33
benabik Blog post incoming on the topic for more publicity.
PACT = Parrot Alternate Compiler Toolkit
IMNSHO, PCT needs some serious rewrites to generate bytecode correctly and efficiently. So if we're going to do that, why not do some more tinkering. 21:34
dalek kudo/nom: fb53581 | moritz++ | src/core/Cool.pm:
missing coercers, gfldex++
benabik dalek'll probably squawk about it in a minute, but: www.parrot.org/content/pact-design-notes 21:53
And with that I'm off
dalek website: benabik++ | PACT - Design Notes 21:55
website: www.parrot.org/content/pact-design-notes
benabik And there it is. I'll check the backlog and page for comments. The design's in a repo for a reason, feel free to fork/hack/etc.
22:55 alvis joined
dalek kudo/optimizer: a47b0cd | jnthn++ | src/Perl6/Actions.pm:
Tighten up what we admit for inlining; require that the arguments are *all* mentioned.
23:13
kudo/optimizer: fb111db | jnthn++ | / (3 files):
Add support for --optimize=[off|1|2|3]. The default is level 2. 'off' will not even enter the optimizer, so it skips CHECK time could-never-work analysis. Classify inlining and compile-time multi selection as level 2 for now; block inlining gets level 3 initially but should drop to two in the not too distant future; it needs some more aggressive testing. We build the setting with --optimize=3.
kudo/optimizer: c191cfe | jnthn++ | src/Perl6/Optimizer.pm:
Improve error reporting. When we determine a call could never work, shows the desired signature(s) in the error.
23:42
23:43 nbrown_ joined
dalek kudo/optimizer: b5d2c9b | jnthn++ | src/Perl6/Actions.pm:
Try to get better line reporting for calls.
23:45