Parrot 4.0.0 "Hyperstasis" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 January 2012.
dalek rrot/240/fix_cond_eval: dd05f0d | jkeenan++ | lib/Parrot/Configure/Compiler.pm:
Delete commented-out code.
01:07
sella: 3704e3f | Whiteknight++ | s (7 files):
Add in a basic matcher functionality for the Test library, so we can do more complex assertions
01:26
sella: f0287af | Whiteknight++ | / (3 files):
Add in the ability to have an initialization routine in Test.test and friends. Update the winxed test templates to use a setup function.
sella: 8c2ddf5 | Whiteknight++ | / (4 files):
test initializers take the context not the suite, since the suite really is not configurable. Cleanup the initialization code a little.
sella: 3e8eef2 | Whiteknight++ | / (3 files):
small cleanups to the test templates and docs for Test namespace
sella: d47c6ba | Whiteknight++ | src/test/Test.winxed:
Check that the initializer is not null, since the key always exists
rrot/240/fix_cond_eval: 60cce76 | jkeenan++ | t/myharness:
Delete spurious file.
01:56
rrot/240/fix_cond_eval: 965d4b3 | jkeenan++ | lib/Parrot/Configure/Compiler.pm:
Parens are not metacharacters inside bracketed character classes.
02:08
dukeleto anybody use chef? 02:11
dalek rrot/240/fix_cond_eval: dc7e0d8 | jkeenan++ | / (2 files):
Refactor code into Parrot::Configure::Compiler::_set_file_type_option() and then test that subroutine.
02:22
rrot/240/fix_cond_eval: 3544348 | jkeenan++ | lib/Parrot/Configure/Compiler.pm:
Merge branch '240/fix_cond_eval' of git@github.com:parrot/parrot into 240/fix_cond_eval
03:04 schmooster joined 03:38 Psyche^ joined 05:05 jjore joined
dukeleto ~~ 07:10
dalek kudo/nom: 63663bd | moritz++ | docs/release_guide.pod:
correct release date and copyright in release_guide.pod
08:30
08:40 mj41 joined 09:17 lucian joined 10:14 benabik_ joined, arnsholt joined, perlite joined 10:15 dalek joined, Timbus joined 10:16 wagle joined 10:21 ehiggs joined
dalek kudo/nom: 3ddd2fb | moritz++ | src/ (2 files):
throw typed exception on illegal use of placeholder parameters

also catches class A { $^x }, which used to live errornously
12:02
13:34 mtk joined 13:52 not_gerd joined
dalek kudo/nom: 2c3f642 | moritz++ | src/ (2 files):
include parameter name in error message

also more awesome error message stolen from STD and niecza
13:59
not_gerd could someone pull github.com/parrot/parrot/pull/704 into a branch so testing with NQP becomes easier? 14:02
(off again)
14:02 not_gerd left
aloha (parrot/parrot) Issues opened : 704 (cleanup and auto::sizes refactor) by gerdr : github.com/parrot/parrot/issues/704 14:06
dalek kudo/nom: bb2f072 | moritz++ | src/core/Exceptions.pm:
fix error message, lumi++
14:08
kudo/nom: 355430c | moritz++ | src/core/Exceptions.pm:
another spelling fix, kboga++ moritz--
14:10
14:39 PacoAir joined 15:36 not_gerd joined 15:41 dmalcolm joined
dalek rrot/auto-sizes: 3149464 | (Gerhard R)++ | config/gen/config_h/config_h.in:
char is allowed to be unsigned, so explictily request signed type
16:02
rrot/auto-sizes: d69401e | (Gerhard R)++ | / (3 files):
remove unnecessary type ptrcast_t
rrot/auto-sizes: 23acc8c | (Gerhard R)++ | / (2 files):
remove _set_ptrcast() from auto::memalign
rrot/auto-sizes: 368b18f | (Gerhard R)++ | config/auto/sizes/test_c.in:
fix misuse of %u to printf values of type size_t
rrot/auto-sizes: f5bb182 | (Gerhard R)++ | src/runcore/subprof.c:
remove needless inclusion of stdint.h
rrot/auto-sizes: 19dc8fb | (Gerhard R)++ | / (2 files):
re-introduce ptrcast_t and use it where actually appropriate
rrot/auto-sizes: 1457f9e | (Gerhard R)++ | config/auto/sizes.pm:
re-factor auto::sizes
rrot/auto-sizes: b8ea67c | (Gerhard R)++ | / (3 files):
Merge branch 'master' into gerdr/cleanup
16:34 contingencyplan joined 16:55 alester joined 18:02 fperrad joined 18:04 admiral0 joined
admiral0 hello 18:04
i am following the tutorial
and not getting expected results 18:05
what .annotate 'line', 1 means in pir?
moritz admiral0: it adds a so-called annotation with key 'line' and value 1 18:06
admiral0 i get that
moritz admiral0: compilers use that identify the location in the source file
admiral0 it should be an assignment
moritz so that they can produce backtraces with the correct line numbers
assignment to what?
admiral0 no, my bad 18:07
moritz afk
admiral0 code gets parsed but not executed...
aloha (parrot/parrot) Issues opened : 705 (Build breaks is sizeof (INTVAL) != sizeof (opcode_t), inter::types discards --opcode) by gerdr : github.com/parrot/parrot/issues/705 18:18
18:22 dmalcolm joined
dalek kudo/nom: d469892 | moritz++ | t/spectest.data:
enable kv.t, [Coke]++
18:45
kudo/nom: 268e0c9 | moritz++ | NOMMAP.markdown:
nom will not become master. [Coke]++
18:57
sella: b70b45a | Whiteknight++ | t/test/Assertions.t:
Add in a few quick tests for Array and Hash matchers
19:02
sella: e175ca8 | Whiteknight++ | src/test/ (4 files):
Add in two experimental new matchers. Change the matcher factory to not use type/role information for the first arg, and instead ask each matcher if the values can be accepted.
cotto ~~ 19:08
19:09 lucian joined 19:44 senf_statt_oel joined
alester Why are there still issues in the GitHub issues queue? 19:45
I thought when I converted all the issues over from Trac, everything would get fixed.
Slackers.
dalek kudo/nom: d83a1c0 | moritz++ | src/ (2 files):
typed Redeclaration errors
19:46
alester I've been tagging issues here and there when I'm bored. Not sure if that'll help anything, but I figure it can't hurt. 19:48
benabik alester++
aloha (parrot/parrot) Issues closed : 645 (This product has only a moose, not a pony) by petdance : github.com/parrot/parrot/issues/645 19:54
20:03 senf_statt_oel left
dukeleto ~~ 20:14
alester: will you take a pull request to ack if I add in *.winxed as a default extension ? 20:15
alester for what?
dukeleto alester: i want ack to look in *.winxed files by default
alester: too much to ask?
alester You mean --winxcd=*.winxcd?
What is winxcd?
dukeleto alester: winxed.org 20:16
alester: the language that comes with parrot
alester: whiteknight.github.com/Rosella/winxed/index.html
alester A user base of how many? 20:17
Two? Three? :-)
dukeleto alester: whiteknight, NotFound, bubaflub, Benabik, me, for starters 20:18
alester So, five.
I really don't want to add every new language. As much as I love Parrot and y'all.
dukeleto alester: and nontrivial projects that are outside of core that use it: github.com/letolabs/parrot-libgit2
alester: ok, so i have to add some config metadata to make it work? 20:19
alester: how do I tell ack to look in *.winxed files by default?
alester --type-add=winxed=*.winxed
benabik dukeleto: echo "--type-set=winxed=.winxed" >> ~/.ackrc # is what I did
alester put that in your ACK_OPTIONS
dukeleto benabik++
alester in this case, --type-add and --type-set are the same.
oh yeah, no *. benabik is right. 20:20
benabik It seems to have been working for me, so I'd hope so. :-D
dukeleto alester: does that just give me ack --winxed support, or do I need something else for "ack foo" to look in *.winxed files? 20:21
alester both
you have it all.
ack 1.x only searches files it knows about by default.
Telling it about --winxed means it now knows what *.winxed files are, sot hey get searched.
benabik My .ackrc: gist.github.com/1665348 20:22
dukeleto benabik++
alester: thanks for hitting me with the clue stick
benabik alester++
dukeleto benabik: looks like the wrong gist url
benabik dukeleto: WFM? 20:23
alester ack2 will also let you have global /etc/ackrc
and per-project ackrc.
benabik And a pony?
alester Biggest damn pony you ever sw.
dukeleto .wants("pony") 20:24
alester It's interesting that people don't realize how flexible ack is. 20:30
I need to tell that story better.
masak benabik++ # sharing his .ackrc 20:32
benabik Although I wonder why I added .pbc to --parrot 20:33
That's not a useful thing to ack.
alester @hoelzro and I are making the configging much more flexible. 20:34
and the diagnostics will tell you exactly what's getting searched and why.
20:42 mj41 joined
dalek kudo/nom: 00e5547 | moritz++ | src/ (2 files):
throw X::Phaser::Once exceptions when two CATCH or CONTROL blocks appear in a block
20:48
kudo/nom: ef67fd4 | moritz++ | src/ (2 files):
more typed redeclaration exceptions
21:12 mtk joined
dalek Heuristic branch merge: pushed 28 commits to nqp/qbootstrap by jnthn 21:12
kudo/nom: 71225d3 | jnthn++ | docs/ROADMAP:
A few difficulty estimates.
21:21
kudo/nom: ccd75fa | jnthn++ | src/Perl6/Metamodel/AttributeContainer.pm:
Catch case of a class that does 'has $.x; has @.x'.
kudo/nom: 4ffbd61 | jnthn++ | src/Perl6/Metamodel/AttributeContainer.pm:
Allow an explicit method to resolve an attribute accessor conflict.
21:24 robertle joined 21:25 not_gerd left
robertle hi folks, I have a quite off-topic thing I would like to run past you. stop me if you think this is the wrong place. but you might find it amusing or interesting. 21:38
I am trying to cook up a VM for toy MUD server, partially inspired by parrot and the lua vm
it is a register-based 3-address machine, dynamically typed and has a few built-in tyupes 21:39
the usual primitives: int, float, bool, nil
it also has strings. these are immutable, which I think works really nice. 21:40
benabik Immutable data structures are excellent.
robertle it also has maps and lists, and this is where my problems start: I don't know if these whoudl also be immutable or not! 21:41
I can see positive points: not needing to copy prior to passing, easier conceptual operatione etc
but there is one major drawback that you don't have with strings: making changes in a deeply nested structure is really difficult
because you essentially need to cascade your modification all the way up 21:42
so I was wondering: have other VMs used immutable lists/maps before? or have they not but wish they had?
any views on it?
benabik Immutable vs mutable really depends on your programming style. 21:43
Functional programming handles immutable structures very well.
Because you had to recurse down to that level anyway, so you can rebuild the structures on your way up.
(As far as complex data structures go, anyway.) 21:44
robertle hmm. I am thinking about a fairly imperative language. but I would have thought that a low-level VM would be programmable in both styles, depending on the compiler 21:45
I was thinking that I might need some sort of support for doing that kind of operation, but can't really think of a clean way 21:48
anyway, you can't immediately think of any terrible drawbacks? 21:49
benabik Often changing immutable structures generate a lot of intermediate objects. 21:52
That's about the only low-level technical drawback I can think of. Which type of structure is "better" really depends on what you're doing with it. 21:54
Really it's most useful if you support both. 21:55
robertle I thought about that, but then you need a way to convert between them, and more importantly your compiler needs to be pretty smart to figure out which to use when 22:00
benabik Not really. Which kind of structure is more useful depends on what you're doing with it. Some algorithms will use one, some would use the other. Trying to convert on the fly is not a good idea. 22:14
Or, rather, trying to convert transparently isn't a good idea.
robertle I see what you mean 22:24
I guess I'll see where I get with immutables
one thing i definitely want to do is some optimization in the vm, that avoids teh copy if the target register is the same as the source 22:25
I think that can quite neatly be utilised by the compiler
if you don't need it anymore overwrite it immediately :)
benabik There are lots of good optimizations that can be done. :-D
robertle I have an interesting one, can't wait to find out what it does! 22:26
my types are tagged unions, and I need the full 8 bytes for some (int, float) 22:27
so in memory they will > 8 bytes
with alignment and all 12 or 16 bytes
-> tremendous waste and cache churn 22:28
so you could re-arrange them so that you have less waste, still proper alignment and still the tag on teh same cacheline as the union 22:29
e.g. tag1,tag2,tag3,tag4,union1,union2,union3,union4,waste
number of them in each "block" of course depends on the size of the cahce lines
talk about premature optimizations :P
benabik Bleck. 22:30
robertle on this machine it would be 7 per cahce line. ofd all numbers...
benabik Optimizing based on the cache sizes per machine makes porting difficult at best. 22:32
robertle yeah, it would need to figure that out at runtime
anyway, i am far away from stuff like that
if only stealing bits from a float wasn't so hard, i wouldn't need tagged unions
if the int isn't full 64 bits, that would be fine 22:33
and the rest are handles anyway...
dalek p/bs: 1d0b7f2 | jnthn++ | src/6model/sixmodelobject.h:
Give STables a slot for marking them with an SC.
22:36
p/bs: 8071678 | jnthn++ | src/6model/knowhow_bootstrapper.c:
Mark STables created during bootstrap with the bootstrap SC also.
dukeleto ~~ 23:14
23:18 whiteknight joined
whiteknight good evening, #parrot 23:28
dukeleto whiteknight: wazzup 23:44
whiteknight: i have started to ride the crazy train of attempting to buy a house. I am glad I read about your trials+tribulations first :)
23:49 kid51 joined
whiteknight dukeleto: I think my experiences were much worse than average 23:54
so, do your best not to approach them asypmtotically
dukeleto whiteknight: 10-4 23:55
aloha: how do I make another one of you? 23:58