www.parrotcode.org/ | Last release: 0.7.1 "Manu Aloha"
Set by moderator on 17 September 2008.
00:10 AndyA joined 00:14 confound joined 00:28 kid51 joined 00:44 TiMBuS joined 00:47 bacek joined 00:48 Zaba joined
cotto_work the more that I use busybox, the more I wish that t and y weren't next to eachother on my keyboard 00:50
dalek r31353 | coke++ | trunk: 01:05
: [tcl] Fix recent update to exception handling
diff: www.parrotvm.org/svn/parrot/revision?rev=31353
Tene coke++ # cleaning up after me 01:06
01:12 Zaba_ joined
dalek r31354 | coke++ | trunk: 01:13
: [tcl] unTODO another test that recently started working.
diff: www.parrotvm.org/svn/parrot/revision?rev=31354
01:14 Ontolog joined 01:54 Ontolog joined 02:02 petdance joined
Ontolog in PIR I want to do if has_count && count < 0 goto no_count 04:00
do I really have to make a label and jump to it for each atomic condition? 04:01
because as it stands now parrot is not accepting if has_count && count < 0 goto no_count
cotto_home yup
there's some syntactic sugar, but having to deal with the low-level stuff is part of writing (parrot's) assembly 04:02
pmichaud no compound expressions in PIR 04:03
Ontolog i see
pmichaud but you can do it with 04:04
$I0 = islt count, 0
$I1 = istrue has_count
$I2 = and $I0, $I1
if $I2 goto no_count
Ontolog haha i guess that is slightly better than adding all sorts of lables
*labels 04:05
pmichaud: while you are here, I have a question about the behavior of LIMIT with split. According to Perl 5's docs, If LIMIT is unspecified or zero, trailing null fields are stripped (which potential users of "pop" would do well to remember).
in the Perl 6 docs however it says null fields are not stripped
but it is not clear if this special case with limit overrides that
pmichaud well, if limit is unspecified, then null fields are not stripped (per S29) 04:07
Ontolog so an explicit limit of 0, the null fields are not stripped 04:08
ok makes it easier for me haha
what is this istrue about?
we can't just do and $I0, has_count ? 04:09
in fact the opcode istrue is not even found 04:11
04:12 Zaba joined
cotto_home istrue expects a PMC as its input 04:13
Ontolog ahh
cotto_home you could do iseq has_count, 1 04:14
Ontolog i went back to using the labels anyway since we can't deal with count until we know has_count is true
pmichaud if has_count is already an int, then just use it and directly 04:22
$I0 = islt count, 0
$I1 = and has_count, $I0
if $I1 goto no_count
Ontolog ah i see 04:28
so an explicit limit of 0 should behave the same as if it was unspecified? 04:31
so the string (or whatever) is split into as many pieces as possible and returned? 04:32
pmichaud right.
Ontolog cool just making sure
Tene Anyone know the best way to iterate over an RPA from C? 04:33
Eh, nm. 04:35
cotto_home fine
04:35 tetragon joined
Tene I'm sure a for loop is fine. 04:36
pmichaud there's an example or two in src/pmc/codestring.pmc, I think.
oops, never mind, I guess not. :-(
(that one is iterating by index + length of array, not using an iterator) 04:37
Tene This list should be small enough that iterating by hand should be fine.
04:38 Zaba_ joined 04:42 Zaba joined
Tene pmichaud: check out r31355 04:59
dalek r31355 | tene++ | exceptionmagic:
: [exceptionhandler]
: Add an attribute to hold a list of exception types to catch
: Add a handle_types(types :slurpy) method to set the list of types to catch 05:00
: Add a check against the types to catch in can_handle
diff: www.parrotvm.org/svn/parrot/revision?rev=31355
Tene Let's see if I can post to parrot-dev successfully. 05:07
It would be great to get that merged to trunk before #ps tomorrow. 05:08
It might be nice to get some PIR sugar for setting up a typed EH. Maybe a macro. 05:12
cotto_home did the range idea get nixed or were you thinking that it'd be part of the sugar? 05:14
Tene range is for severity, there's a list for exception types. 05:15
05:16 iblechbot joined
cotto_home right 05:16
Tene "push_eh label" is more concise than "$P0 = new 'ExceptionHandler'\\n$P0.handle_types(.CONTROL_RETURN_\\nset_addr $P0, label\\npush_eh $P0"
So something like .push_typed_eh(label, .CONTROL_RETURN) maybe 05:17
cotto_home sounds Canadian 05:18
confound take off, eh 05:19
ya hoser
cotto_home can pir macros be variadic? 05:27
Tene dunno
cotto_home I don't think so from looking at the pdd and tests
since pir is supposed to be generated, isn't the only point of syntactic sugar like push_typed_eh to make writing tests easier? 05:38
05:42 Zaba joined 05:48 johbar joined
johbar moin 05:49
Tene cotto_home: we've still got a decent amount of hand-written PIR 05:53
... huh. My message to parrot-dev awaits moderation. 06:06
I must be subscribed... I'm getting messages.
06:08 uniejo joined
dalek r31356 | chromatic++ | trunk: 06:15
: [OO] Removed unused function find_vtable_meth_ns().
diff: www.parrotvm.org/svn/parrot/revision?rev=31356
06:16 uniejo joined 06:25 Zaba joined 06:27 bacek joined 06:53 bacek joined 08:03 Zaba joined
dalek r31357 | kjs++ | trunk: 08:11
: [pirc/new] implement string re-use
: + implement hashtable
: + conversions from symbol lists to hashtables is next.
diff: www.parrotvm.org/svn/parrot/revision?rev=31357
08:12 clunker3__ joined, braceta joined, Zaba joined
johbar hey 08:19
is there something like a ebnf compiler which prints out syntax-trees? 08:28
moritz PGE does something very similar 08:29
it uses Perl 6 regexes, which are a bit like EBNF
for example you can build parrot, then 'cd languages/perl6/; make' 08:30
then write something into test.t
then run ../../parrot perl6.pbc --target=parse test.t
that will give you a parse tree of a Perl 6 program
the grammar is in src/parser/grammar.pg 08:31
johbar ah nice. i'll have a look 08:32
thanks 08:33
moritz you're welcome
if you don't want to write your own Perl 6 code, the test suite has some 08:34
for example t/00-parrot/01-literals.t
08:52 sheepmullet joined 09:02 bacek joined 09:16 iblechbot joined
dalek r31358 | moritz++ | trunk: 09:28
: [rakudo] correct Str.split with $limit argument, Ontolog++
: Patch courtesy by Chris Davaz
diff: www.parrotvm.org/svn/parrot/revision?rev=31358
r31359 | moritz++ | trunk: 09:30
: [CREDITS] added Chris Davaz (Rakudo patches)
diff: www.parrotvm.org/svn/parrot/revision?rev=31359
09:49 vhold joined 10:48 Zaba joined 10:49 pjcj joined 10:53 Whiteknight joined 11:16 kid51 joined 11:50 kj joined 11:53 Ontolog joined 12:07 masak joined 12:19 braceta joined 12:24 Wknight8111 joined 12:40 d4l3k_ joined 12:43 xiaoyafeng joined
Ontolog is there an html conversion of docs/book/* online? 12:49
Wknight8111 not that I am aware of, no
it shouldn't be too hard to set up though, since it's all POD formatted 12:50
moritz Ontolog: there's one of the things in the pugs repo, but it's a bit out of date 12:53
and the quality isn't all that good
Wknight8111 is working on that too
There is a lot to do with those books, they are both very out of date
moritz moritz.faui2k3.org/pugs/ # search for docs/tutorial/ch01_overview.pod 12:54
Ontolog it would be nice to have everything under doc/* automatically generated to html and up on a parrotcode.org/docs
s/generated/converted/ ... lol
Wknight8111 We could probably put in a bug request or something.
It would be a nice way for people to keep track of progress on it, that's for sure 12:55
moritz and it would be nice to have a location where both parts of the book are combined
PerlJam There's been progress? ;)
Wknight8111 I've been working on the books pretty aggressively, yes 12:56
Added about 3 new chapters to the parrot book already
diakopter [OT] ...[lack of] apologies in advance for the [OT] message.. please /msg me if you're interested in owning the perlblog.org domain name. it's zero-currency to one I deem worthy, or even just willing to take it.
PerlJam Wknight8111: you should find self-contained pieces and publish them to perl.com (or perhaps parrot needs a corresponding "news outlet") 12:57
Wknight8111 There is parrotblog.org that is under-used, I think
Ontolog hmm
PerlJam Wknight8111: indeed! I'd forgotten about it until you mentioned it.
Ontolog i think all the docs being in different places is really confusing
it would be nice if it was all under parrotcode.org/docs
Wknight8111 Allison wants to have something publishable by the time 1.0 is released, so I've been trying to focus on that requirement. 12:58
moritz Ontolog: yes, taht's a real problem
Wknight8111 But yes, publishing to other venues as well would be a good idea
masak Ontolog++ # for not being satisfied with status quo 13:00
Ontolog maybe i'm a total bonehead but i can't find where to create a new ticket through the web interface at rt.perl.org
masak Wknight8111++ # for focusing on requirements
Ontolog masak++ got giving me such easy karma ;-)
masak karma is easy to give :) 13:01
purl is easy to give :) has neutral karma
Ontolog haha
masak and at least on of purl and me is stupid
s/on/one/
Wknight8111 Ontalog, send an email to parrot-bug@perl.org to create a new ticket
moritz Ontolog: you can't from the web interface, you need to send a mail to parrotbug@parrotcode.org
Wknight8111 sorry parrotbug@parrot.org
masak parrotbug 13:02
purl rumour has it parrotbug is mailto:parrotbug@parrotcode.org or svn.perl.org/parrot/trunk/docs/submissions.pod or see also "rakudobug"
13:10 gryphon joined
masak I haz a patch for ord and chr in Rakudo. 13:28
should I send it to rakudobug, or first extend it to handle list of things, not just the bare minimum?
moritz I CAN HAZ PATCH?
masak moritz: YES RLY!
moritz I hope that answers your question ;) 13:29
commit(or patch) early, commit often
masak can't commit, so that leaves sending via rakudobug
rafb.net/p/QfqPIS11.html 13:30
moritz sendiing patches is the substitute action for non-commiters
masak aye :)
but I expect to be able to extend it during the day to handle lists and strings of more than one character
but already this level of functionality is very good news for my favorite Perl 6 application. 13:31
moritz I know ;)
and the good news is that rakudo doesn't hang on parsing /spec/S29-conversions/ord_and_chr.t any more
heh, your patch makes all these tests pass 13:32
masak++ 13:33
running tests now... 13:34
masak: if spectest_regression is successful, I can commit right away if you want 13:35
masak: but you can open a ticket anway to increase your visibility for the other parrot hackers, thus increasing your chances of getting a commit bit ;) 13:36
masak moritz: hold on, be right with you
Wknight8111 votes for masak's commit bit 13:38
moritz we could suggest that on today's #ps meeting (if you want, masak) 13:39
masak moritz: sure, why not? :) 13:42
just don't tell my two employers 13:43
masak creates RT ticket
pmichaud masak haz sent cla? 13:45
masak pmichaud: no. I know it's needed, but how to actually do it?
moritz cla?
purl cla is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement
moritz masak: print that thing, sign it...
masak: send it to the address on that sheet... 13:46
masak oh, dead-tree style.
moritz masak: your employers have to know if the laws in $your_country grant them copyright to whatever you do (which some countries do)
masak moritz: good to know.
ok, I'll try to find a printer to connect to :) 13:47
t/spec/S29-conversions/ord_and_chr.t is woefully incomplete, btw 13:49
moritz masak: Patches welcome ;)
masak I'll try remedy that, too. before I go coding more on chr and ord
masak likes to have failing tests before coding begins
moritz it doesn't test the form of chr() with slurpy argument list
masak indeed not. 13:50
also, it doesn't test the 'use graphemes' business
moritz which no implementation yet supports
masak nevertheless. 13:51
moritz rakudo currently works as if 'use codes' where in effect
aye, needs tests
but I don't know how to test ofr a grapheme ID, because it's not a common Unicode concept 13:52
a test (in perl 5 pseudo syntax) might be ord("A\\N[COMBINIG DIAERESIS]) == ord("Ƅ") 13:53
and list(ord("a\\N[weird]\\N[combiners]")).elems == 1 13:54
masak moritz++ # I will use that.
(IRC logs)++ # but not right now. 13:55
moritz I think the Perl 6 syntax is actually \\c[Character name]
masak aye. 13:57
moritz oh an in Perl 5 it's \\N{...}, not \\N[...] 13:58
after writing the tests for Perl6::Str I should know ;) 13:59
14:10 Lorn joined 14:19 pjcj joined
NotFound What encoding actually assumes rakudo for strings in sources? 14:23
masak NotFound: UTF-8?
purl UTF-8 is probably the way of the future or Unicode Transformation Format 8 bit, a variable width encoding of Unicode or en.wikipedia.org/wiki/Utf-8
moritz yes, it does 14:24
Tene So, who controls auth on parrot-dev? 14:28
dalek r31360 | moritz++ | trunk: 14:29
: [rakudo] implement chr() and ord(), and add tests to spectest_regression
: Patch courtesy by Carl Mļæ½sak <cmasak at gmail dot com>, masak++
diff: www.parrotvm.org/svn/parrot/revision?rev=31360
Tene I recieve mail from there, but my mail to there is pending moderation, 'cos it claims I'm not subscribed. 14:30
moritz Tene: allison does 14:32
Tene Ah, 'kay. Thought so. 14:33
dalek r31361 | julianalbo++ | trunk: 14:49
: exchange roles of elements and get_integer in FixedIntegerArray
diff: www.parrotvm.org/svn/parrot/revision?rev=31361
14:59 cjfields joined 15:03 jhorwitz joined 15:10 sjansen joined 15:17 sjansen joined 15:31 hercynium joined 15:32 sjansen joined 15:34 Lorn_ joined
dalek r31362 | julianalbo++ | trunk: 15:34
: replace elements and PMC_int_val with get_integer and add bounds checking to delete_keyed_int in ResizableIntegerArray
diff: www.parrotvm.org/svn/parrot/revision?rev=31362
r31363 | coke++ | trunk: 15:38
: [tcl] - add a TODO'd test. Getting this test to pass will get us one step closer to running tcltest.tcl
diff: www.parrotvm.org/svn/parrot/revision?rev=31363
r31364 | Whiteknight++ | pdd27mmd:
: [pdd27mmd] Add some notes about how to further unify functions when we get around to it, and a few comments explaining how some things are working.
diff: www.parrotvm.org/svn/parrot/revision?rev=31364
15:43 braceta joined 15:50 braceta_ joined
dalek r31365 | moritz++ | trunk: 15:56
: [rakudo] make chr() and ord() methods of Any, and moved chr() to be in
: alphabetical order with the rest of the methods.
diff: www.parrotvm.org/svn/parrot/revision?rev=31365
moritz pmichaud: should the patch in RT #59222 be applied? (with s/isxdigit/isalnum/) 15:59
dalek r31366 | moritz++ | trunk: 16:13
: [rakudo] implement Hash.pairs, cjfields++. Patch courtesy by Chris Fields.
diff: www.parrotvm.org/svn/parrot/revision?rev=31366
16:14 iblechbot joined
dalek r31367 | moritz++ | trunk: 16:33
: [rakudo] added S29-hash/pairs.t to spectest_regression
diff: www.parrotvm.org/svn/parrot/revision?rev=31367
16:51 Hinrik joined
pmichaud moritz: don't apply 31366 just yet, I need to review it more. 17:15
sorry, I mistped -- don't apply 59222 just yet. 17:16
(31366 is fine, although it's all about to be rewritten anyway based on references.txt that jonathan and I discussed last week :-)
moritz pmichaud: ok 17:18
Tene Bah. I'm scheduled to start class again right at #ps time 17:30
cotto_work you don't really need to go to class 17:31
that's just what they want you to believe
17:31 chromatic joined
moritz unless you happen to be the lecturer, of course ;) 17:33
pmichaud I never found that being the lecturer was a particularly strong reason to go to class. :-P 17:37
chromatic Not if you can find a grad student.
17:38 ruoso joined
pmichaud (At one time I was well known for being "a little late" to my lectures. :-) 17:38
I was also often unprepared, although nobody ever caught on to that fact. :-P
PerlJam pm: you were "a little late" to my job interview the first time I was hired at CBI :-)
pmichaud ...you had a job interview? ;-) 17:39
PerlJam I seem to recall showing up at the appropriate time and no one knew where you were. Then I hung out for the rest of the day bascially and didn't see you until the next day. 17:40
pmichaud I seem to remember something like that happening, yes. Things were a bit hectic back then.
chromatic kj, is 113 a prime number? 17:42
Wknight8111 I think it might be, yes 17:47
chromatic It's the initial size of a hash table in pirc. Just curious. 17:48
kj chromatic: dunno, it was a wild guess to be hones. gotta do that when there's no internet (at home) 17:49
cotto_work it's better than a subprime number 17:50
kj chromatic: but I wonder what works better for a hash algorithm: a prime number, or a number which is a power of 2
particle why? the government will bail out subprime hash tables.
kj I think imcc does the latter (init at 16)
chromatic The theory is that using a prime number of buckets in a hash table reduces the chance of collisions for keys.
kj ah, that's what i vaguely remember reading some day. 17:51
chromatic There are no common factors between key values and the number of buckets.
I saw it in the Kernighan/Pike book. The Practice of Programming?
Yeah, that's the one.
particle i suspect perl 5.8.4's hv to be instructive
kj I think I read the Dragon book of compilers about this. Not sure.
particle *expect
PerlJam chromatic: there should not be any common factors :)
chromatic Just 1. 17:52
kj anyway, I'm not even sure a hashtable is really faster
cotto_work premature optimization
purl premature optimization is, like, the root of all evil or when you make the mistake of optimising for speed when really you should optimise for maintainability and correctness, in the first instance. or unnecessary optimization is premature by definition. or hacking with tequila in preference to wine
kj cotto_work: well, not if I want to finish the thing :-) 17:53
chromatic Hmm, changing INITIAL_BUCKETS to 17 in src/hash.c makes miniparrot hang.
cotto_work nice\\ 17:54
s/\\//
Tene moritz: yes, I'm teaching the class 17:55
kj: is ncigen supposed to work? I see you listed as a maintainer. 17:56
kj Tene: i'm not ncigen's maintainer...
wasn't ncigen a GSoC project?
Tene Huh, okay, I'm insane today then.
kj where do you see me listed?
Tene kj == kjs? 17:57
PerlJam kj: i think it was a gsoc proj.
kj yes
Tene compilers/ncigen/MAINTAINER
kj but someone 's using 'kjs' on this server :-( So I switched to kj
chromatic Apparently something wants the number of buckets in a hash to be evenly divisible by 4.
PerlJam chromatic: that sounds really wrong 17:58
chromatic It sounds really collidey anyway.
expand_hash always doubles the size of the hash.
kj I wonder what's the break-even point where a hashtable is faster than a linked list... 17:59
chromatic It's average bucket length + amortized time of key creation.
particle tewk is the ncigen maintainer 18:00
kj ah. it seems the tewk-kjs confusion strikes again :-) 18:01
Tene kj: eh? 18:02
particle tene: tewk is the ncigen maintainer 18:03
pmichaud SEE!? IT'S NOT JUST ME!!
:-D
kj pmichaud: ha ha :-)
Tene Then why is kjs listed in compilers/ncigen/MAINTAINER?
kj Tene: well I wish I could claim that credit, but I can't 18:04
particle svn blame
purl rumour has it svn blame is just like p4 annotate, only better
PerlJam Tene: probably because some confused individual added it.
particle bet it was pmichaud
kj hehe
Tene no, it was tewk
pmichaud 30452 tewk N: Klaas-Jan Stol (kjs)
30452 tewk E: parrotcode@gmail.com
Tene tewk LIES
PerlJam He was trying to repel the blame.
Tene Looks like I'm posting my report early again. :( 18:05
particle tewk-- # silly programmer
PerlJam ah, it's #ps day again.
kj well, at *some* point I did work on languages/c a bit
PerlJam prepares to lurk (assuming the kids and wife let me)
pmichaud tewk did something similar in r30493 18:06
r30493 | tewk | 2008-08-23 13:36:47 -0500 (Sat, 23 Aug 2008) | 2 lines
removed Patrick Michaud as author, shamefull attempt to send all bugs to pmichaud seems to have been discovered. :)
moritz lol 18:07
Tene Hah. I'm first again.
I'm so much cooler than EVERYONE ELSE HERE
That's obviously what it means.
moritz TENE can haz c00nez 18:08
Wknight8111 Yes! Tene caught a channel participation exception! 18:09
dalek r31368 | pmichaud++ | trunk:
: [rakudo]: spectest-progress.csv update: 167 files, 3434 passing tests
diff: www.parrotvm.org/svn/parrot/revision?rev=31368
Wknight8111 it's like a control flow exception, except it actually displaces the user!
particle catch that exception magic :P 18:10
dalek r31369 | kjs++ | trunk: 18:11
: [ncigen] remove kjs as a maintainer.
diff: www.parrotvm.org/svn/parrot/revision?rev=31369
chromatic 5 minutes until #ps 18:26
pmichaud btw, I'm getting 26 failed tests in spectest_regression 18:27
6 in S29-str/split-simple.t
moritz pmichaud: is your t/spec copy up-to-date?
pmichaud: I have no failures here
pmichaud moritz: it should be.
I'll run again.
moritz sometimes I get failures that disappear when run again 18:28
moritz blames the GC
pmichaud yes, it appears there were some updates to t/spec since I started my build+test. re-testing. 18:29
18:32 cotto_work joined 18:42 DietCoke joined
DietCoke ~~ 18:42
tewk Sorry for the confusion, that file came from c99 where kjs is a maintainer I believe. 18:46
chromatic Wknight8111, I sent in a patch ages ago. Let me see if I can find it. 18:49
Wknight8111 a patch for a profiling runcore? 18:50
chromatic Wknight8111, "Profile PIR with Devel::DProf's dprofpp" on 25 March 2008.
Wknight8111 okay, let me look at that a little bit 18:51
dont know when I would have the tuits to work on such a thing, but i can read up on it
chromatic In further research, the Callgrind format is the proper approach.
Though tracking in/out for sub calls and control flow is tricky in PIR.
tewk ~/srcs/parrot/languages/c99/MAINTAINER
25984 kjs N: Klaas-Jan Stol (kjs) 18:52
25984 kjs E: parrotcode@gmail.com
pmichaud no failures in latest spectest regression -- thanks.
Wknight8111 chromatic, where is that patch at? RT? 18:54
chromatic Just on the mailing list.
Wknight8111 oh, okay
thanks 18:55
chromatic If you can't find it, I'll nopaste it or upload it.
Wknight8111 I'll find it, I'll dig around tonight 18:56
cognominal pmichaud, does your proposal allow for an eval that is not a closure? That's what we want for a interactive rakudo and what does pugs.
18:57 baest joined 18:59 cotto_work joined
tewk NotFound: I'm building it right now to find out how it handles Xlib.h 19:02
DietCoke win 3 19:03
moritz (cross-post with the list) is there a PIR function that lets me find a multi sub by name, and that later does dispatch based on the types of the arguments? 19:05
chromatic Provided there's only one MultiSub PMC in a namespace under a name, yes. 19:06
At least, until the MMD branch merges back in, in which case I'm not sure.
Wknight8111 Allison claims the MMD branch is merging in soon, like tonight if she has time 19:07
The work I was doing on the PCCINVOKE stuff is on hold for now until we create a new branch specifically for calling convetion stuff
moritz chromatic: how?
chromatic find_global $Px, "name" 19:08
19:08 rurban_away joined
DietCoke wonders if there's a find_hll_global variant. 19:10
moritz that seems to do it, thanks
chromatic++
DietCoke hopes we go through and make the opnames consistant before 1.0
19:11 Tene joined
moritz there's get_hll_global 19:11
Tene chromatic: have you recieved dmknopp's CLA yet?
chromatic Not yet. 19:12
Tene Huh.
Okay, thanks.
chromatic Someone will probably check today or tomorrow.
NotFound Snail mail: www.boredomresearch.net/rsm/ 19:13
19:13 johbar joined
Tene jhorwitz: Is three a ticket describing what you need with interpolated namespaces in rakudo? 19:15
jhorwitz probably
jhorwitz rummages around
moritz isn't there even a patch in RT?
jhorwitz i believe i posted the patch from mod_parrot as a starting point 19:16
can't find the ticket in my inbox 19:17
jhorwitz wonders if he posted just to the list...
chromatic Hm, not all tests on the MMD branch pass for me yet.
Pheme works though.
moritz I have some failures, and even 'make tests' in rakudo fails
jhorwitz Tene: #56700 19:18
chromatic Rakudo mostly passes for me.
jhorwitz Tene: i'm sure pmichaud has many thoughts on how to implement it
particle tias? 19:19
purl tias is Try It And See! or turnips in a sack
NotFound tias is also 'girls' in spanish slang 19:23
purl okay, NotFound.
19:24 DietCoke left
chromatic "Girls" and not "Aunts"? 19:25
NotFound chromatic: we are all crazy in Spain. 19:26
chromatic Apparently; yo soy tio chromatic!
NotFound chromatic: real meaning is aunt, but "tia buena" means "a nice girl", for example. 19:27
moritz nice aunt - my girlfriend would kill me for that name ;) 19:28
(although she has two nephews)
baaaah, multis are driving me mad 19:29
chromatic tu novia?
NotFound This is Spain's jargon, not exported to the other side of the ocean. 19:32
chromatic Then my modest preschool Spanish is no help!
cotto_work um... no comprendo 19:33
19:34 Zaba joined
NotFound cotto_work: don't worry, many spanish natives also doen't understand mr. 19:37
s/mr/me
tewk NotFound: unsigned max_request_size; is valid C, I need to fix the parser to recognize unsigned all by itself. 19:44
This is another area where longest token matching would have prevented this bug. 19:46
Tene tewk: a while back I heard someone say that ncigen was very complete, but it's failed on every header I've tried to feed it. 19:49
Am I mistaken or am I doing it wrong?
NotFound Where are the problems, in ncigen itself or in c99? 19:50
tewk Parsing C is difficult, I followed the C99 grammar, but have had to make modifications for it to work with PGE. 19:52
NotFound And parsing libraries that use a lot of compilers predefined symbols is even worse. 19:53
headers of libraries, I mean.
tewk I had to modify rule builtin_type to force longest token matching, but whenever you modify a grammar you usually change its meaning, and I did in this case also.
I use GCC to preprocess, so preprocessing is handled for me. The parser actually parses quite a bit of GNC specific extensions. 19:54
Most sane C programmers would use "unsigned int max_request_size;", but X is a very old code base so somewhere along it history someone used "unsigned max_request_size;" 19:56
NotFound That can be problematic by himself, gcc soemtimes converts common macros to gcc specific symbols.
tewk You have to scope your work, I wanted to do ncigen in a summer, you can write a gcc compatible preprocessor, parser, and have a life in one summer. 19:58
chromatic I don't think we promised you a life.
moritz lol
tewk NotFound: what do you mean by gcc specific symbols? 19:59
s/can/can't/
cotto_work I was about to be really impressed.
tewk Maybe pmichaud could give me some tips on compilers/ncigen/src/parser/grammar.pg:builtin_type 20:02
Note "int unsigned myint;" is also valid C
pmichaud find_global is deprecated, btw.
tewk I've been using llvm to do some simple static analysis, its so nice when someone else writes the preprocessor, parser, and ast generation for you. 20:04
Tene: ncigen will parse sqlite3.h and postgres' spi.h
20:05 NotFound joined
Tene tewk: Okay. Thanks. 20:06
tewk: Also, we need to hang out and hack sometime. You live pretty close to me, iirc. 20:07
pmichaud what's the question on builtin_type ? 20:09
tewk I'm about to just enumerate all the possible combinations of signed, unsigned, int, long, etc. 20:10
pmichaud: There has got to be a better way, but I though you had told me that it would require longest token matching. 20:11
NotFound Don't forget long int
pmichaud where can I find the original c99 grammar? 20:12
Tene <[signed unsigned int long]>+
;)
tewk taken from n869.pdf
google for n869.pdf
std.dkuug.dk/JTC1/SC22/WG14/www/doc...869.pdf.gz
cotto_work long long unsigned int long signed? 20:13
tewk documented at the top of grammar.pg
NotFound signedness must be before main type, if I remember well.
moritz Tene's regex would even match a single space ;) 20:14
tewk I originally implemented the grammar from the spec, but it would match just unsigned and return.
I though I new c pretty well before I started to parse it, well I've learned a lot. 20:16
pmichaud the essential idea is 20:18
rule declaration_specifiers { [ <storage_class_specifier> | <type_specifier> | <type_qualifier> | <function_specifier> ]+ } 20:19
dalek r31370 | julianalbo++ | trunk:
: applied patches from RT#56468, bacek++
diff: www.parrotvm.org/svn/parrot/revision?rev=31370
pmichaud token type_specifier { 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | '_Bool' | '_Complex' | '_Imaginary' } 20:20
tewk pmichaud: I'll give it a try. 20:25
20:30 clunker3__ joined 20:33 cjfields joined 20:34 cjfields_ joined
tewk pmichaud: do hyperoperators and junctions work in rakudo, I've got to give a lecture in a parallel programming class and I'd like to show them some perl6 stuff 20:36
I need some interesting demos. 20:37
moritz tewk: Junctions do basically work
rakudo: if 2 == any(1, 2, 3) { say "yes" } else { say "no" }
pmichaud hyperoperators don't work, no.
moritz pugs implements them a bit better 20:38
20:38 cotto_work joined
pmichaud for that we need some parsing support. 20:38
tewk Cool I'll use pugs for hyperoperators then, but I'll see what I can show with rakudo
moritz no polyglotbot?
pmichaud junctions "work" by cheating -- we don't really use autothreading dispatch yet.
so they really only work for some of the relational ops. 20:39
tewk I just want to show the language constructs
NotFound tewk: show them pirric, will be nice to hear some ideas about using retro basic for parallel programming ;)
moritz slaps NotFound ;)
tewk pirric?
NotFound tewk: examples/pir/pirric.pir 20:40
tewk We need QBasic emulation so I can pull out my old menu launchers 20:41
NotFound tewk: this is more retro than qbasic.
purl: pirric is PIR Retro basIC 20:45
purl OK, NotFound.
cjfields pmichaud: I have an additional patch for .trans which I plan on posting to RT. However I have a quick question: 20:59
According to S05, the argument to .trans should be a List of Pairs. So, should it accept a Hash (a bit more DWIM'my)? Or should it be '$str.trans(%hash.pairs)'
I can adapt it for either case. 21:01
moritz afaict a hash is different from a list of pairs 21:03
(although pugs things that Hash isa List)
that's why the first example in S05 uses %mapping.pairs, I guess 21:04
dalek r31371 | julianalbo++ | trunk: 21:05
: add MID$ function to pirric
diff: www.parrotvm.org/svn/parrot/revision?rev=31371
cjfields yes, that's why I was hesitant about using a Hash (particularly when the spec is using %mapping.pairs.sort) 21:06
moritz it seems that .trans is much more generan than .subst 21:08
except that .trans always does global replacement 21:09
cjfields Like .subst in parallel
(all changes made at once)
moritz .subst doesn't support constant strings, iirc 21:10
Method 'shift' not found for invocant of class 'Sub'
oops
./rakudo -e 'my $x = "a0b0c0d0"; my $c = 0; $x.trans(/\\d/ => { ++$c }); say $x'
that's what produces the above error message
ah, it seems you don't do closures as RHS yet 21:11
cjfields not yet, but getting there.
moritz and neither regexes on the LHS
well, it's a start ;)
I think that .trans is a real beast to implement, and get right 21:12
cjfields I can probably add a 'not implemented' exception
moritz thinks about writing some more tests
cjfields BTW, have you tried to check the type for Pair key/values? It 21:13
's illuminating...
21:14 clunker3__ joined
moritz the value's type seems to be preserved 21:14
why?
cjfields unfortunately I'm not sure
moritz any examples? 21:15
cjfields perl6: my %x=(('a' => 1, 'b' => 2), 'c' => { say 'foo'}, /\\d/ => 3); for %x.pairs -> $y {say $y.WHAT; say $y.key.WHAT; say $y.value.WHAT; say} 21:17
I think I broke it
moritz what did you break? 21:20
I can't see what's wrong...
the coercion to Hash casts all keys to Str 21:21
that's why you get Str\\nInt\\n in the last case, not Block\\nInt\\n
> say (/a/ => 1).key.WHAT
Block
cjfields Hmm....
pmichaud cjfields: .trans should accept a list (or a slurpy list) 21:25
it shouldn't do anything special with hash -- in fact, it would never actually see a hash 21:26
a hash in list context becomes a list of Pairs
cotto_work shiny. the mmd branch is only failing 4 tests (and passing one todo'd) now 21:27
moritz pmichaud: maybe you sohuld turn our last discussion into a ticket...
pmichaud moritz: for FixedPMCArray and MultiSub?
moritz pmichaud: I guess so, yes
pmichaud yes, it's definitely a "deep Parrot" issue. 21:28
I'll turn my example PIR code into a ticket.
cjfields trying not to make a bad joke about 'deep Parrot' 21:29
I can fake the list context for a hash (just check type and directly convert to a List of Pairs) 21:31
pmichaud moritz: done.
moritz pmichaud: good. 21:32
pmichaud cjfields: yes, you can go ahead and do that for now -- but I hope to have list context fixed in the next day or so.
dalek r31372 | julianalbo++ | trunk:
: pirric: store variables in Runner object, instead of making them globals
diff: www.parrotvm.org/svn/parrot/revision?rev=31372
cjfields ok. will post a patch to RT soonish. 21:33
Tene Is that anything like a 'deep crow'? 21:36
moritz Tene: you seem to be the Perl 6 exception guy... how close are we to last,next,redo control exceptions? 21:37
NotFound (bad jokes)++
moritz indeed
Tene Those aren't covered by what I'm doing right now, but... 21:38
Looks like PCT needs to add support for them.
As far as I know, they're not actually blocking on anything. 21:39
Want me to look into that tonight?
pmichaud just time for me, and that someone indicate it's a big priority. :-) 21:40
Tene s/anything/anything parrot-related/
pmichaud: Just need appropriate handlers generated by the PAST nodes, right?
moritz I can't say it's big priority, but it might real-world usage a lot
chromatic seen tetragon? 21:42
purl tetragon was last seen on purl 22 hours, 19 minutes and 52 seconds ago, saying: <private message>
chromatic Might be nice to fix some of her segfaults too. 21:43
pmichaud Tene: for simple next/last/redo, perhaps. 21:44
however, the exceptions also need to be able to carry an indication of *which* loop they're manipulating -- e.g., for "next LABEL"
Tene LABEL is a label on a loop, right? 21:45
pmichaud yes 21:46
Tene That shouldn't be too bad.
pmichaud possibly not.
Tene Is that syntax parsed right now?
pmichaud I don't think it is in Rakudo.
anyway, if you want to give next,last,redo a shot, I'd be glad to review a patch :-)
I'd be even more interested in having PCT use the new exception types filter, if you haven't done that already. 21:47
I don't know if that was part of the branch you merged
also, the implementation of if/unless/while/until/etc. nodes needs to change a bit, so that we can pass the condition as an argument to the execution bodies 21:49
so that might affect while/until somewhat.
I was kinda hoping to get lexicals solved first before investing too much code into that.
Tene pmichaud: filter isn't merged. waiting on review from allison. 21:50
svn.perl.org/parrot/branches/except...nhandler.t
pmichaud okay.
oops, time for dinner here -- bbl 21:51
Tene moritz: if you can give me an example of next/while/redo with labels and such, I'll work on it tonight.
moritz Tene: t/spec/S04-statements/{last,redo,next}.t 21:53
Tene Oh, clever.
I'm not all here. Trying to pay attention to students for another hour.
moritz laziness++
bacek morning everyone. 21:55
moritz good evening ;)
bacek moritz: :)
dalek r31373 | julianalbo++ | trunk: 22:01
: add missing --without-... options to Configure --help output
diff: www.parrotvm.org/svn/parrot/revision?rev=31373
22:21 hercynium joined 22:52 xiaoyafeng_ joined
dalek r31374 | moritz++ | trunk: 23:05
: [rakudo] 5 more test files for spectest_regression
diff: www.parrotvm.org/svn/parrot/revision?rev=31374
r31375 | coke++ | trunk: 23:10
: [tcl] provide a simple version of [namespace import]
diff: www.parrotvm.org/svn/parrot/revision?rev=31375
r31376 | moritz++ | trunk: 23:18
: [rakudo] three more tests for spectest_regression
diff: www.parrotvm.org/svn/parrot/revision?rev=31376
23:21 slightlyoff joined 23:24 slightlyoff joined 23:25 slightlyoff left 23:29 tetragon joined 23:42 Theory joined