Parrot 4.5.0 "Buff-faced Pygmy Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 19 June 2012.
dalek : 0826c90 | kjs++ | src/ (4 files):
enum constants are now recognized by the lexer. for now they're just type of int.
00:05
00:13 wagle joined
dalek : fd0d156 | kjs++ | src/ (7 files):
start clarifying code a bit; better union names.
00:15
: da8af1d | kjs++ | src/ (3 files):
move struct grammar. enable multiple expressions in for-step.
00:51
00:52 wagle joined
dalek : 07abbd1 | kjs++ | src/ (3 files):
enable multiple inits in for loop.
00:55
rrot/whiteknight/io_cleanup1: 2c2a61b | Whiteknight++ | src/io/ (4 files):
Add in the missing function-level docs. Codetest now passes
01:16
whiteknight okay, I found a better solution to my codetest problem
Instead of adding the missing docs, I just deleted the undocumented functions
msg kid51 Updating the threads branch from master, I git a conflict lib/Parrot/Pmc2c/Attribute.pm is deleted in master. nine made some changes to that file. Can you help get me get his changes merged to where the code lives now? 01:21
aloha OK. I'll deliver the message.
02:24 arnsholt joined 02:26 kid51_ joined
kid51_ smolders m0 branch for 1st time 02:41
dalek rrot/m0: 6487fb3 | jkeenan++ | MANIFEST:
Add m0 source code and test files to MANIFEST.
03:05
rrot/m0: 3618e52 | jkeenan++ | MANIFEST.SKIP:
mk_manifest_and_skip.pl modified MANIFEST.SKIP as well.
03:39 Hunger joined 04:55 kuku joined 06:02 brrt joined
dalek d_bart: 9082974 | (Bart Wiegmans)++ | / (5 files):
Add debug version of cgi output handle, so i can finetune the algorithm
06:24
d_parrot: a36a49d | (Bart Wiegmans)++ | / (5 files):
Added header reading to cgi loader, although it is not perfect
06:26
07:11 brrt joined 07:52 mtk joined
dalek kudo/nom: 11b9d5e | pmichaud++ | src/core/Mu.pm:
Add zero and 1 argument forms of infix:<=:=> and infix:<eqv>.
08:12
08:15 lucian joined 08:20 kjs joined
dalek kudo/nom: 1ffd6cf | moritz++ | src/Perl6/Actions.pm:
add line annotations to assignment operator
09:03
09:04 Khisanth joined 09:28 kjs joined 10:33 kjs joined 11:01 JimmyZ joined 11:48 brrt joined
brrt moritz++ it works 11:48
11:55 kjs joined
Coke yawns 12:20
JimmyZ kjs:
kjs: failures/struct.m1 wokrs now 12:21
*works
12:22 ilbot2 joined
moderator Parrot 4.5.0 "Buff-faced Pygmy Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
12:27 whiteknight joined
whiteknight Good morning, #parrot 12:29
tadzik good morning whiteknight 12:30
whiteknight hello tadzik
brrt good afternoon whiteknight
whiteknight hello brrt
brrt i've mentally fixed the cgi header reading stuff
just not in winxed yet
and i have to go now! :-) 12:31
whiteknight awesome! I look forward to seeing the code
kjs hi JimmyZ 12:51
JimmyZ: have you uncommented the other function calls? 12:52
it's commented out because it doesn't work ;-) 12:53
13:02 PacoAir joined
JimmyZ kjs: yes 13:02
kjs it still segfaults here
... using ./run_m1.sh 13:03
JimmyZ kjs: it printed '42
kjs sure and then it segfalts
JimmyZ "42\\n42\\n42\\n"
kjs really?
interesting
since when? i didnt change anything in funcall code
which m0? 13:04
JimmyZ kjs: about 9 hours ago
kjs: c-m0
kjs usign run script?
JimmyZ ./run_m1.sh
kjs mm cool
which platform?
doesnt work here 13:05
mac os10.6
JimmyZ kjs: ubuntu 12.04 13:06
kjs and failures/funcall?
JimmyZ jimmy@jimmy-VirtualBox:~/m1$ ./run_m1.sh failures/struct.m1 13:07
42
jimmy@jimmy-VirtualBox:~/m1$ ./run_m1.sh failures/funcall.m1
foo()
bar() 13:08
kjs you sure it's c-m0?
i got it working with perl-m0
JimmyZ ./m0 $filename.m0b || { exit 1; }
kjs interesting
awesome, really :-) 13:09
JimmyZ kjs: ;)
kjs looks like a bug in cm0
JimmyZ maybe
kjs perlm0 works... 13:10
13:10 Psyche^ joined
JimmyZ kjs: I don't have mac os 13:10
kjs that's prob the dfif then. perhaps your environment is a bit more forgiving 13:11
JimmyZ: perhaps we should switch to perl m0 13:20
rather than c m0
JimmyZ kjs: make test fails some test by using perl m0 13:22
13:23 plobsing joined
kjs really? ok we need t fix that 13:23
JimmyZ: could you report those as bugs in perl-M0? 13:26
JimmyZ kjs: how? 13:28
kjs bugs in issue tracker parrot? 13:29
hopefully some M0-perl people pick it up.
Coke do we need to continue with perl-m0 ? 13:33
wasn't it a POC before M0-C ?
kjs Coke: well, the programs that fail on M0-C in failures/ folder run with M0-perl
so that's interesting
having 2 verisons might catch various bugs 13:34
bugs that are more ikely in C will be caught there, and likewise in perl, and these things can be double-checked in different implementations
Coke <shrug> ok. 13:35
kjs Coke: I actually have good hope that M1 is correct now I've seen the tests run on perl-m0 (in failures folder).
13:56 JimmyZ joined 13:58 bluescreen joined 14:14 jsut joined
dalek : 4267236 | kjs++ | / (5 files):
preparations for enabling "for (int i....".
14:15
rrot/m0: 55bed69 | jimmy++ | src/m0/perl5/m0_interp.pl:
fixed bugs
14:34
rrot/m0: b4f577d | jimmy++ | / (3 files):
Merge branch 'm0' of github.com:parrot/parrot into m0
kjs thanks JimmyZ 14:37
array_and_structs still fails 14:38
different failure now i think
JimmyZ kjs: that's a weird failure
kjs it is
JimmyZ kjs: I tried to fix it. but it's weird
kjs JimmyZ: I think the warning emitted by perl does pick up on some potential problem 14:48
it's hidden now with the "no strict ref" 14:49
JimmyZ kjs: I think so
15:08 dmalcolm joined 15:13 contingencyplan joined
benabik Hm. Looking at the Subroutine PMC.... Does parrot just dispatch on number of named arguments instead of the names? 15:52
Or is there some hidden way to find the names of the required arguments?
Sadly, I would not be surprised by either of these options.
whiteknight I don't know if Parrot's MMD takes named arguments into account 15:54
I suspect it does not
benabik Alrighty. 15:56
Also not surprised by that.
The argument information in the subroutine is a little odd wrt named arguments. "name_req" and "name_opt" are both integers. Where, really, you want to know what names are required. 15:57
whiteknight oh yeah, it's just a "little odd", and only with respect to the named arguments. Sure
benabik Heh.
whiteknight you don't get a bonus check from google for understating problems so dramatically 15:58
benabik Well, the slurpy flags and number of positionals make sense to me.
the mutli_sig is an FIA of type ints? 16:00
Interesting. 16:01
16:02 brrt left
whiteknight why are you talking about this? Every time you mention what the Sub PMC is doing, I get this violent urge to rewrite it 16:04
benabik Because I need to interface with it. 16:05
whiteknight AAAAHHHH
It's my worst nightmare, come to life
Nobody should ever use this stupid thing
benabik Sadly, at some point, a compiler has to. 16:06
So... how do you determine the type number for a type that's being created inside the packfile you're compiling? 16:07
16:11 rich joined 16:12 alester joined, jashwanth joined
whiteknight benabik: Type number of what? 16:19
benabik Hm. 16:22
whiteknight: I'm trying to figure out what multisigs are. I thought they were FIAs for a little while, but they appear to be FPAs with Integers for core types and Strings for not.
Oh, and keys for things in namespaces. How lovely. 16:26
moritz whiteknight: fwiw I've looked over socket.pmc in your iocleanup branch, and didn't find any methods for reading and writing bytebuffers, though your email to parrot-dev indicated that should be possible 16:27
oh, does it get those from Handle?
whiteknight yes, it should
moritz never mind then
whiteknight .read_bytes, I think
moritz speaking of sockets... 16:30
what does recv do?
it seems to neither return a bytebuffer, nor take care of character boundaries
whiteknight in the new branch?
moritz yes
this might be a topic for a later refactor, actually 16:31
whiteknight hmm, it goes through the same exact path as .read on FileHandle does, except it ends up at a call to the recv C function
recv will return whatever is available at the socket, so it may not return as much data as you're asking for
moritz that's ok, I'm not asking for anything 16:32
whiteknight please ask for things!
moritz just for whatever it receives
I mean, recv doesn't take a size arguments
so calling it doesn't ask for some specific size, but just "gimme whatever"
NotFound We should add a generic read function: readwim 16:34
Read What I mean
And automatically you get an HTTP header or a full DVD image depending on your intention, the current phase of the moon at execution time and the weather at compile time. 16:36
Or maybe a butterfly was flying around while writing the source. 16:37
moritz we should use libjustdoit for that functionality 16:38
NotFound A great project for next google Glacial Era of Code.
whiteknight moritz: recv in the new branch should respect character boundaries, which means some bytes might end up in the buffer if they don't represent a complete codepoint 16:47
moritz whiteknight: looking into the tests it seems that .recv now defaults to ASCII 16:48
whiteknight what does it default to in master?
moritz whiteknight: and the test sends 뻯 as UTF-8, so it blows up
whiteknight I thought master was defaulting to ascii too, but I might have read the code wrong
moritz dunno. it doesn't blow up in master 16:49
whiteknight okay, I'll have to research it more
I'll make sure that test passes tonight
moritz it's unfortunate, I don't really understand sockets; I'm just the guy ending up maintaining them in rakudo :/ 16:50
whiteknight heh
moritz it seems to be one of (UTF-8, Latin-1, Binary) 16:51
NotFound I think the initial design idea was that network IO must be the same as file IO. The idea failed miserably but the bizarre implementations succeed.
moritz I guess that leaves you as well-informed as you were before though :-)
whiteknight "bizarre" is correct. Some of the old code was batty 16:52
And I'm willing to say that because I wrote and modified so much of it
NotFound I mean the generic sockets design many moons ago, not the parrot one. 16:53
Listen, I will tell you the history of the magic PDP and the lonely programmer... 16:54
whiteknight gather 'round children and hear the tale
NotFound Or go else and read it on wikipedia. 16:55
benabik Interesting. A Sub's multisig isn't in the constants table. 17:01
17:03 zby_home joined
benabik Oh, that's also fun. IMCC saves the bytecode of immediate subs, but they're not in a subroutine. 17:05
zby_home kkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjjiiiiiiiik, 17:07
moritz vim != irrsi :-)
benabik Hm. How do you get the result of an immediate sub?
moritz you call it 17:08
oh wait, immediate
benabik No, that tries to invoke the object.
moritz you don't call it, something else[tm] does it...
benabik Wait... .const 'Sub' Does it.
moritz based on that answer, I'm pretty sure I've misunderstood the question 17:09
whiteknight benabik: yeah, immediate subs are wonderful in every possible way 17:10
benabik I was trying to figure out how IMCC converts type names to type numbers... It looks like it just tries to do the lookup and if it fails, it stores the string.
whiteknight if the :immediate sub returns a non-null PMC, that PMC is stored in the constants table in place of the :immediate Sub
benabik This is... LTA
whiteknight so we keep the bytecode in the packfile, even though you can't call it, and all the .const 'Sub' references point to something that is not a Sub and may not be const 17:11
EVERYBODY BE HAPPY
benabik I was worried that creating a class in an immediate would leak type numbers.
moritz "look, we already have a table for storing stuff!"
benabik It's stored in the constant table, which is fine.
But it's referred to as a Sub which is not.
So that's an exciting way to define classes in a PBC: store them as return values from immediate subs. 17:12
moritz exciting because there's no other way to put stuff int he constant table? 17:13
whiteknight not through PIR syntax and IMCC 17:14
benabik Well, that's a limitation of IMCC, really.
whiteknight in theory, the packfile PMCs will allow you to do it just fine
although nobody has ever figured out how to use those things
benabik is working on it. :-) 17:15
moritz: Exciting because class PMCs stored as constants become registered as global types when the packfile is loaded. I didn't really expect that. 17:16
whiteknight And that reminds me: The packfile loader! 17:17
blah
benabik: you're killing my mood today, reminding me of all this crap
benabik whiteknight: Sorry.
whiteknight :)
My upcoming projects are: 1) get threads merged, 2) get io_cleanup1 fixed and merged, and 3) 6model 17:23
I'll clean up the rest of this Sub crap after that
and still be in bed before 10PM 17:24
17:44 particle joined 17:58 lucian joined, brrt joined 18:17 kjs joined
dalek : 0968d9a | kjs++ | src/ (5 files):
enable local variables ina for loop (for (int i = ... ).
18:22
18:50 kjs joined 19:02 tuxit joined 19:05 bluescreen joined 19:14 jashwanth joined 19:23 zby_home joined 19:25 particle1 joined
benabik Hm. Interesting. I think the PackfileDebug PMC documentation lies. There should be far more line number mappings than filename mappings. 19:31
dalek p/toqast: cfbc76f | jnthn++ | src/HLL/Actions.pm:
Don't need Parrot namespace related stuff here any more.
19:33
p/toqast: 395aa0a | jnthn++ | src/QAST/Compiler.nqp:
Start to compile QAST::CompUnit. Set HLL and compile the contained top-level block.
kudo/toqast: e5c5266 | jnthn++ | src/QPerl6/Actions.pm:
Toss useless our statement and parameter.
19:34
kudo/toqast: 7928806 | jnthn++ | src/QPerl6/Actions.pm:
Start to refactor various parts of CompUnit to use QAST::CompUnit.
kudo/toqast: 0564728 | jnthn++ | src/QPerl6/Actions.pm:
type => returns in statementlist.
19:34 kjs joined
benabik Hm. Actually, it looks like PackfileDebug doesn't provide access to the line number mappings at all. :-( 19:35
oh. 19:36
dalek : 41c4326 | kjs++ | src/m1.y:
fix a bug.
19:37
: 0d40e57 | kjs++ | src/ (2 files):
cleanup for statement.
benabik Or the PDD lies? I don't see the described line number mappings in the packfile code.
19:38 birdwindupbird joined
benabik Bluh. Packfiles are a mess. 19:39
Okay, the PDD lies. I can accept that. 19:40
19:47 LizM joined
dalek rrot: 66923d2 | benabik++ | docs/pdds/draft/pdd13_bytecode.pod:
PDD13: The debug segment has no line numbers

The debug segment consists only of a list of offset to filename mappings. While a long table of opcodes to line numbers might be useful, it doesn't exist. So remove the pretty description of it.
19:47
20:15 travis-ci joined
travis-ci [travis-ci] parrot/parrot#471 (master - 66923d2 : Brian Gernhardt): The build was broken. 20:15
[travis-ci] Change view : github.com/parrot/parrot/compare/5...923d2f091f
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1714139
20:15 travis-ci left
benabik Hm. Looks like t/pmc/timer.t hung. Not caused by me though. 20:16
Or perhaps the build just took too long on that machine. *sigh* 20:17
20:22 PacoAir_ joined
dalek p/toqast: 6beda3d | jnthn++ | src/QAST/CompUnit.nqp:
Add some more SC-related bits to QAST::CompUnit.
20:33
p/toqast: 8302932 | jnthn++ | src/QAST/Compiler.nqp:
Sketch out compilation of load/main; it may even actually work...
20:37 jashwanth joined
dalek kudo/toqast: 93627fc | jnthn++ | src/QPerl6/Actions.pm:
First step of switching over to QAST::CompUnit for all the SC stuff.
20:38
kudo/toqast: 85bbebb | jnthn++ | src/QPerl6/Actions.pm:
Eliminate final .loadinit(...) usage.
20:44 brrt joined 20:58 kjs joined 21:11 davidfetter joined
dalek d_bart: 5af5ab9 | (Bart Wiegmans)++ | foo.winxed:
Fixed an algorithm for determining header and content apart
21:55
benabik ... Parrot subs have three names? 22:08
Oh, only two. That's alright. :-( 22:11
22:28 kid51 joined 23:01 particle joined 23:17 kjs joined