Camelia, the Perl 6 bug

IRC log for #parrot, 2009-06-04

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 cotto and bacek too, apparently
00:01 Austin_Hastings Next time, pucker up.
00:12 Austin_Hastings Anyone know what the set_*_namespace opcodes do?
00:14 mugwump aren't those like writing 'package Foo;' in Perl ?
00:15 Austin_Hastings Nerp.
00:15 Austin_Hastings In pir, that would be .namespace ['Foo']
00:15 mugwump that's not an opcode
00:15 Austin_Hastings As far as I can tell, set_*_namespace edits the namespace tree and inserts a namespace PMC into some named place.
00:16 Austin_Hastings So I could say $P0 = get_root_namespace [ 'parrot' ; 'Foo' ; 'Bar' ]
00:16 Austin_Hastings and then say set_root_namespace [ 'parrot' ; 'Blorf' ], $P0
00:16 Austin_Hastings And now the Blorf namespace "is", or "is a copy of", the Foo::Bar namespace.
00:16 cotto Austin_Hastings, those don't appear to be actual opcodes.
00:17 cotto The only reference I can find is in the docs.
00:17 Austin_Hastings Yeah, that's what I was reading when I asked the question.
00:17 Austin_Hastings Building my little parrot glossary.
00:19 cotto so it looks like your answer is "syntax error" ;)
00:20 Austin_Hastings What a pity. It looked like something really fun.
00:22 * cotto wonders why it's nyi and if the references should be removed
00:23 Austin_Hastings The namespace.pmc has a set_keyed method that appears to do the same thing from the "informal" interface side.
00:23 Austin_Hastings Based on a cursory read, it should probably be queued for implementation.
00:25 Austin_Hastings But I'd dearly like to know what is supposed to be implemented with that opcode. Is that the "cheat" for use Foo; ?
00:26 bacek_ joined #parrot
00:27 Austin_Hastings rehai, bacek
00:28 bacek_ rehai Austin_Hastings
00:33 cotto bacek_, I've gotten myself (temporarily?) unstuck wrt the vtdumper.  I'll let you know if I get jammed again.
00:36 bacek_ cotto: ok. I almost resurrected compilers/PIR. It will be useful for L1
00:37 bacek_ cotto: I'm going to implement proper handling of MULTIs in next few days, btw.
00:37 cotto in pmcc or pmc2c?
00:39 Whiteknight joined #parrot
00:44 cotto I guess pmcc.
00:45 cotto meaning that it'll require some rewriting once pcc_rewiring lands
00:45 cotto Whiteknight++ #blogging in general
00:46 Whiteknight thanks!
00:48 cotto It's interesting to know what you're up to.
00:49 bacek_ cotto: pmcc
00:50 cotto I guess it'll be good to get that code working, even if it'll need rewriting later.
00:53 bacek_ METHODs are slightly more complex beast...
00:53 bacek_ So, until after pcc_rewiring merge it's waste of time to implement them in pmcc. (IMHO)
00:55 cotto Got it.  I confused METHODs and MULTIs.
01:01 Tene pmichaud: I got it working... I now can now subclass ruby classes from Perl 6
01:02 cotto Tene is a madman
01:02 cotto Tene?
01:02 purl i guess Tene is Stephen Weeks
01:02 cotto Tene is also a madman
01:02 purl okay, cotto.
01:02 cotto Tene++ #we like madness
01:02 cotto and Madness
01:03 * cotto starts sing Our House
01:05 kid51 joined #parrot
01:09 dalek TT #515 closed by jkeenan++: Remove old parrot versions from CPAN
01:25 dduncan joined #parrot
01:32 dduncan left #parrot
01:46 dalek parrot: r39373 | jkeenan++ | branches/pdd30install_stage4:
01:46 dalek parrot: Removing branch from HEAD per discussion in
01:46 dalek parrot: https://trac.parrot.org/parrot/ticket/733.
01:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39373/
01:49 dalek parrot: r39374 | jkeenan++ | trunk/config/init/defaults.pm:
01:49 dalek parrot: Delete assignment of empty string to 'cygchkdll' per discussion in https://trac.parrot.org/parrot/ticket/733.
01:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39374/
02:00 silug joined #parrot
02:04 Tene ... Oh, pynie's clss handling is pretty primitive.
02:05 Tene I should fix it.
02:06 dalek parrot: r39375 | cotto++ | branches/pmc_pct (5 files):
02:06 dalek parrot: [vtdumper] implement actions.pm for the vtable.tbl compiler
02:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39375/
02:09 dalek parrot: r39376 | cotto++ | branches/pmc_pct/compilers/pmcc/src/nodes.pir:
02:09 dalek parrot: [pmcc] minor wording fix (VTABLE method -> VTABLE function)
02:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39376/
02:10 Coke joined #parrot
02:14 Coke bacek_: ping
02:14 particle1 joined #parrot
02:15 bacek_ Coke: short pong.
02:15 Coke partcl only builds against an installed parrot.
02:15 Coke (I have a script setup to clean, up, configure, build, and install into my homedir, so I can "quickly" test changes to parrot.
02:16 Coke bacek_: did you see my comment that your branch breaks tcl?
02:16 bacek_ Coke: erm. "nan"?
02:16 Coke I fixed the nan issue. and then you fixed it.
02:16 Coke but t/tcl_misc.t was still failing.
02:16 Coke It was the same failure we had in trunk for a while. you need a merge, perhaps?
02:17 bacek_ I've got only one failure (and in trunk too). But can't remember what is was.
02:17 bacek_ ok, I'll merge trunk first and retest partcl.
02:17 Coke trunk to branch?
02:18 Coke there should be no partcl failures in trunk; one that looks bad, but all tests pass.
02:18 Coke (that's [lsort])
02:18 bacek_ Ah!. lsort.  "All 22 tests passed"
02:19 bacek_ This is only one failure that I had in branch and trunk
02:20 bacek_ Anyway, I'll run rakudo's spectest and partcl test affter merge-before-commit  to be sure.
02:22 cotto bacek_, I'm syncing pmc_pct with trunk.  It should be done in a few minutes.
02:23 Coke bacek++
02:25 bacek_ cotto: ok. I'll jump on this train tonight.
02:25 cotto bacek_, did you make any changes to compilers/nqp/src/Grammar/Actions.pm?
02:25 bacek_ Coke: too early ;)
02:25 cotto it's showing some conflicts
02:25 Coke bacek_: I'm just glad you're able to run partcl's test suite.
02:25 bacek_ cotto: many false attempts to speed-up parsing.
02:25 Coke thank you for taking the time to do that, I /really/ appreciate it.
02:25 Coke In return, I'm trying to speed it up. =-)
02:25 cotto so they're safe to clobber?
02:28 bacek_ cotto: go ahead.
02:28 cotto thanks
02:29 bacek_ Coke: I'll try too speed-it up too :)
02:30 cotto here we go
02:35 janus joined #parrot
02:35 dalek parrot: r39377 | cotto++ | branches/pmc_pct (356 files):
02:35 dalek parrot: [pmcc] bring branch up-to-date with trunk
02:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39377/
02:39 dalek parrot: r39378 | cotto++ | branches/pmc_pct/MANIFEST:
02:39 dalek parrot: [manifest] update the MANIFEST, just in case someone feels like trying to build from this branch
02:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39378/
02:40 cotto I know it's unlikely, but it's good to be be prepared.
02:44 cotto shopping time!
03:12 darbelo joined #parrot
03:29 dalek partcl: r426 | coke++ | trunk/ (3 files):
03:29 dalek partcl: Replace history stub with stdlib variant.
03:29 dalek partcl: history.test now skips everything instead of complaining.
03:29 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=426
03:29 dalek partcl: r427 | coke++ | wiki/SpecTest (2 files):
03:29 dalek partcl: library/history.tcl changes this from a failure to a full skip
03:29 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=427
03:39 dalek partcl: r428 | coke++ | trunk/library/auto.tcl:
03:39 dalek partcl: pass some of autoMkindex.test
03:39 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=428
03:39 dalek partcl: r429 | coke++ | trunk/library/README:
03:39 dalek partcl: docs - improve
03:39 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=429
03:40 ruoso joined #parrot
04:00 Austin_Hastings left #parrot
04:08 petdance joined #parrot
04:14 japhb joined #parrot
04:29 tetragon joined #parrot
04:39 szabgab joined #parrot
05:10 cotto joined #parrot
05:30 tetragon joined #parrot
06:08 burmas joined #parrot
06:11 tetragon joined #parrot
06:22 iblechbot joined #parrot
06:41 tetragon joined #parrot
06:41 snarkyboojum joined #parrot
06:58 GeJ joined #parrot
07:45 muixirt joined #parrot
08:08 HG` joined #parrot
08:11 cotto Does freeze/thaw on a past dtrt?
08:13 iblechbot joined #parrot
08:18 bacek_ cotto: 50/50
08:18 purl 1
08:20 cotto purl is optimistic
08:21 cotto What would be more certain?  yaml and json don'd seem to dtrt at all
08:21 burmas left #parrot
08:22 cotto From looking at the dump with a hexeditor, it looks like much of the data are there, but it's also only 9.3KB.
08:32 bacek_ cotto: for which pmc?
08:33 cotto for the vtable dumper
08:33 bacek_ bacek@illusion:~/src/parrot/src$ ls -la vtable.tbl
08:33 bacek_ -rw-r--r-- 1 bacek bacek 9288 2009-03-03 11:01 vtable.tbl
08:33 bacek_ looks about same :)
08:34 cotto I guess we'll see if everything's there once that dump gets some exercise
08:34 bacek_ indeed.
08:34 bacek_ time to go home.
08:34 bacek_ see you soon
08:34 cotto bye for now
08:43 tetragon joined #parrot
08:43 dalek parrot: r39379 | fperrad++ | trunk/src/pmc/sub.pmc:
08:43 dalek parrot: [codingstd] remove hard tabs
08:43 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39379/
08:53 dalek parrot: r39380 | tene++ | trunk/runtime/parrot/languages/parrot/parrot.pir:
08:53 dalek parrot: Fix an issue with PIR library exporting
08:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39380/
09:14 cotto perhaps the fact that I've been staring at my computer for the last several minutes indicates that I should go to sleep.
09:14 * cotto sleeps
09:33 bacek joined #parrot
09:52 masak joined #parrot
09:52 AndyA joined #parrot
09:55 kj joined #parrot
10:06 skids joined #parrot
10:18 kj left #parrot
10:56 tetragon joined #parrot
11:57 zz_coke joined #parrot
12:04 zz_coke joined #parrot
12:07 bkuhn joined #parrot
12:11 zz_coke joined #parrot
12:14 ruoso joined #parrot
12:50 bacek cotto?
12:50 purl cotto is probably Christoph Otto <mailto:christoph@mksig.org>
12:56 bacek *incoming*
12:56 dalek parrot: r39381 | bacek++ | branches/pmc_pct/compilers/pmcc (4 files):
12:56 dalek parrot: [pmcc] Disallow nameless function arguments
12:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39381/
13:00 dalek parrot: r39382 | bacek++ | branches/pmc_pct/compilers/pmcc/src/parser (2 files):
13:00 dalek parrot: Simplify c_type parsing to be just list of identifiers
13:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39382/
13:00 dalek parrot: r39383 | bacek++ | branches/pmc_pct/compilers/pmcc/t (2 files):
13:00 dalek parrot: [pmcc] Add test for MULTIs
13:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39383/
13:00 dalek parrot: r39384 | bacek++ | branches/pmc_pct/compilers/pmcc/t/08-multi.t:
13:00 dalek parrot: [t] Add first real test.
13:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39384/
13:00 dalek parrot: r39385 | bacek++ | branches/pmc_pct/compilers/pmcc/src/nodes.pir:
13:00 dalek parrot: Implement add_multi in PMC.
13:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39385/
13:00 dalek parrot: r39386 | bacek++ | branches/pmc_pct/compilers/pmcc/TODO.pod:
13:00 dalek parrot: Rename TODO to TODO.pod
13:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39386/
13:00 dalek parrot: r39387 | bacek++ | branches/pmc_pct/compilers/pmcc/TODO.pod:
13:00 dalek parrot: Podify TODO.pod
13:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39387/
13:00 dalek parrot: r39388 | bacek++ | branches/pmc_pct/compilers/pmcc/TODO.pod:
13:00 dalek parrot: Create some real TODO.
13:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39388/
13:04 pdcawley joined #parrot
13:05 Whiteknight joined #parrot
13:06 dalek parrot: r39389 | bacek++ | branches/pmc_pct/compilers/pmcc/README.pod:
13:06 dalek parrot: Update AUTHORs section in README.
13:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39389/
13:06 dalek parrot: r39390 | bacek++ | branches/pmc_pct/compilers/pmcc (2 files):
13:06 dalek parrot: Implement MULTIs PASTing
13:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39390/
13:08 bacek msg Infinoid I've got crazy idea for dalek - use nopaste for automatic handling of git svn dcommits...
13:08 purl Message for infinoid stored.
13:08 pmichaud is there a way in a PIR sub to determine the number of return values requested by the caller?
13:09 pmichaud actually, just knowing if any return values have been requested would be sufficient for my purposes (i.e., detecting void context)
13:10 gryphon joined #parrot
13:12 sjn joined #parrot
13:13 Whiteknight pmichaud: Not that I'm currently aware o
13:13 Whiteknight of
13:14 Whiteknight the changes Allison are working on now should enable it though
13:17 pmichaud hmmm.
13:18 pmichaud seems like it ought to be visible somehow.
13:25 bacek pmichaud: results_signature isn't exposed in ParrotInterp. But it can be added easily
13:26 pmichaud it's not critical -- would just give me a useful optimization for postfix:<++>
13:29 bacek In C++ Russia no-one use postfix++ :) Because of performance issues.
13:31 nopaste "bacek" at 114.73.27.220 pasted "results_signature exposure from ParrotInterp" (16 lines) at http://nopaste.snit.ch/16785
13:32 bacek pmichaud: code from nopaste should work. But it will give performance hit, because you'll have to create new pmc for ParrotInterp...
13:33 pmichaud why create new PMC?  Why not just use getinterp ?
13:34 bacek Ah. getinterp doesn't create new PMC?
13:34 pmichaud it returns the current interpreter, I think.
13:34 bacek $1 = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
13:34 bacek IGLOBALS_INTERPRETER);
13:35 bacek I never look at this part of Parrot...
13:35 pmichaud it does clone the results signature, though, which is ugly.
13:36 pmichaud If checking the calling status requires making a clone, that invalidates the optimization I was hoping to make in the first place.
13:37 bacek Returning bare signature is little bit dangerous.
13:37 pmichaud yes, allison++ and I have had this discussion.
13:37 pmichaud introspection needs to be inexpensive, though.
13:37 bacek But if we can make it read-only, than we can return it
13:41 bacek (checked code) Looks like it's possible to make CallSignature read-only after build and return bare pointer to it.
13:46 bacek Ok, It's not...
13:46 pmichaud It's not that important.  We'll live with what we have now, and I'll put it as a todo for allison to consider as part of the calling conventions refactor.
14:02 dukeleto joined #parrot
14:05 Steve_H joined #parrot
14:11 NotFound If we have inf and infinity, why we don't have nanity togheter with nan?
14:12 szbalint I'm sure there are inf reasons but nan occurs to me atm
14:12 szbalint I jest, I jest
14:12 NotFound :D
14:17 pmichaud I think it would be naninity, wouldn't it?
14:18 * bacek vote for "not-a-number-at-all"
14:19 hudnix joined #parrot
14:20 NotFound maybe-a-number%(some percent)
14:22 NotFound Togheter with a new pmc: FuzzyFloat
14:22 bacek Don't forget "just my 2¢" :)
14:23 NotFound € ¢ or $ ¢ ?
14:23 bacek de ja vu.
14:23 bacek It's not a number anyway.
14:23 NotFound maybe
14:23 bacek Oh! "*" should produce NaN too.
14:24 bacek no, it can be number...
14:24 bacek Ah! "*" will give you some random float!
14:25 NotFound Then '/' must give you the winner.
14:27 bacek Problem is that "$N0 = *; $N0 == ORLY" should produce string "YRLY!"
14:27 bacek And no one understand IMCC guts to implement it
14:27 particle this isn't LOLPIR
14:28 * particle likes IaNaN
14:28 particle "i am not a number"
14:28 * bacek singing IaNaNaNaN
14:28 NotFound She's got the look!
14:28 bacek ..with gipsy tune
14:31 Steve_H joined #parrot
14:32 bacek Anyway, it's tomorrow there already. Bed time.
14:32 bacek .zzZZZ( $bacek.ooO( .zzz ) )
14:40 mugwump oh, the inanity
14:45 NotFound Did we have some version of parrot logo in some vector format?
14:47 particle hey mugwump!
14:47 purl i guess mugwump is in a fantasy world of delusions and poor punctuation. or a purl hacker or mr. 20/20 hindsight or hungry
14:52 Tene Whiteknight: ping
14:52 pmichaud oh how cool:   http://www.snopes.com/photo​s/natural/parrotflower.asp
14:59 dalek cardinal: 533154c | tene++ | src/builtins/eval.pir:
14:59 dalek cardinal: Fix encoding issues
14:59 dalek cardinal: review: http://github.com/cardinal/cardinal/commit​/533154ca820e8af85acd2d1ce2dd246c44fc88b4
14:59 dalek rakudo: b88c33d | tene++ | src/parser/actions.pm:
14:59 dalek rakudo: Register foreign types at compile time.
14:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​88c33d13f863e6e50a7489bc4b4e944677207a9
14:59 dalek rakudo: 2653235 | tene++ | perl6.pir:
14:59 dalek rakudo: Fix an issue with foreign languages loading Perl6 libraries without exported symbols... probably the wrong fix
14:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​653235134667e07f05fb29b445115f5a70a93aa
15:01 mugwump hello particle ... how's the mini running?  :)
15:01 particle lovely, thanks.  needs a wash, though :)
15:02 Tene I got my steme compiler loading foreign libraries too... but it segfaults in the GC.
15:02 particle you hot-tubbing your way across the usa this year?
15:02 Tene When I run it with -G it runs fine.
15:02 mugwump heh, nothing planned yet
15:02 particle tene: gcdebug runcore is your slow, but helpful friend
15:03 Tene particle: yes, crashes under gcdebug too, and always in the same place
15:03 Tene when trying to mark a continuation.
15:03 Tene poking around with gdb, it looks like it has some nonsense values
15:03 particle does parrot default to optimized build yet?
15:04 Tene No.
15:04 mugwump particle: but the 2010 linux.conf.au is in my home town :D
15:04 particle didn't think so
15:04 particle mugwump: i'm tossing around the idea of osdc this year
15:04 Tene I had to rebuild without --optimize to get a reasonable bt
15:06 mugwump ah, 3am...
15:06 viklund joined #parrot
15:06 * mugwump zonks
15:06 HG` joined #parrot
15:14 whoppix joined #parrot
15:21 rdice joined #parrot
15:22 Whiteknight Tene: pong
15:24 dalek joined #parrot
15:25 pmichaud_ joined #parrot
15:25 pmichaud_ ping feather.perl6.nl
15:25 purl 10 packets transmitted, 10 received, 0% packet loss, time 9013ms, rtt min/avg/max/mdev = 120.713/121.442/122.195/0.521 ms
15:29 dalek rakudo: 5745c6b | pmichaud++ | src/ (7 files):
15:29 dalek rakudo: Convert 'deref_objectref' dynop to 'deobjectref' and 'descalarref'.
15:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​745c6b180dbfb2e25a184937ccbafe8e874470a
15:29 dalek rakudo: 9e2b9ad | pmichaud++ | src/builtins/assign.pir:
15:29 dalek rakudo: Better handling of assignment of ObjectRef values.  Fixes RT #66280.
15:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​e2b9ad960e6a7d70f6dd6e4f7bd02bbfe10875e
15:29 dalek rakudo: 10a9b23 | pmichaud++ | :
15:29 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
15:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​0a9b23a4dad1f5974e725c161a8c5ee656cfb56
15:30 Tene Whiteknight: I've got a GC segfault... interested?
15:30 NotFound CAN I HAZ SEZFAULT?
15:31 Tene U WANTZ?
15:31 Theory joined #parrot
15:31 NotFound Gimme two
15:31 Tene NotFound: go download and build steme: http://github.com/tene/steme/
15:31 sekimura joined #parrot
15:33 NotFound Tene: done
15:33 NotFound make test pass
15:33 Tene NotFound: do you have Parrot installed somewhere, or only dev uninstalled copy?
15:33 NotFound Installed
15:33 purl Installed is easy as well.
15:34 NotFound Eh, no, I was using the build tree only
15:35 Tene I'm trying to remember how to set up symlinks to get languages to work with load_language from a non-installed copy of Parrot
15:35 Tene Ah.
15:36 Tene cd .../parrot/runtime/parrot/languages ; ln -s ~/src/rakudo perl6
15:36 Tene or, I guess, just cd ~/src/steme ; ln -s ~/src/rakudo perl6
15:36 Tene will work too
15:36 NotFound Done again using the installed one. Do you want I test again with the parrot build tree renamed?
15:36 Tene http://gist.github.com/123673 -- running nap.scm fails with a segfault
15:37 Tene I haven't put it in the test suite yet, as I haven't set up different test targets, and I don't want to require properly-configured rakudo just to run the tests.
15:37 Whiteknight Tene: Sure
15:38 Tene Whiteknight: http://gist.github.com/123673
15:39 pmichaud lunchtime -- bbl
15:39 Tene Whiteknight: it requires building steme and setting up symlinks so Parrot can find rakudo by name
15:40 rdice joined #parrot
15:40 Whiteknight don't have a smaller test case?
15:41 Tene No, I don't.
15:41 NotFound Did we have some guide on how to install languages?
15:42 Tene NotFound: put a symlink named 'perl6' that points to the rakudo dir in either the current directory or in ~/src/parrot/runtime/parrot/languages/
15:42 Tene or, if you have an installed parrot, /.../parrot/lib/1.2.0-devel/languages/
15:44 dalek partcl: r430 | coke++ | trunk/ (2 files):
15:44 dalek partcl: Remove some crufty reloads of the .pbc file which are no longer needed.
15:44 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=430
15:44 NotFound Tene: segfaults even without the Naptime.pm file
15:44 Tene Yes, it segfaults when load_bytecode-ing perl6.pbc
15:44 Tene (or cardinal.pbc)
15:45 Tene (Well, load_language-ing, but effectively the same)
15:47 NotFound backtrace shows that is instantiating something while doing sub pragmas, I suppose that is some :load sub.
15:50 NotFound $ parrot steme.pbc nap.scm
15:50 NotFound Null PMC access in get_string()
15:50 Tene That's not what I get at all.
15:50 NotFound Segfaults only using the fakecutable
15:50 Tene NotFound: did you run with --gc-debug?
15:51 NotFound No
15:51 Tene For me, it segfaults however I try to run it.  fake, installed, or dev parrot
15:51 NotFound current instr.: 'parrot;P6metaclass;register' pc 654 (runtime/parrot/library/P6object.pir:434)
15:51 NotFound called from Sub 'perl6;Perl6Role;onload' pc 3721 ((unknown file):-1)
15:51 NotFound called from Sub 'load_language' pc 20189 (src/gen_actions.pir:2032)
15:53 iblechbot joined #parrot
16:03 NotFound There is no load_language around src/gen_actions.pir:2032
16:04 Tene no, the PIR reporting lies.
16:04 cotto imcc-- #I was running into that too
16:04 NotFound Isn't even in that file
16:07 NotFound load_language is called from a sub that is under .HLL 'parrot'. P6object guess the HLL namespace from the caller. Np wonder it fails.
16:07 Tene ...
16:07 Tene um, no, not quite.
16:07 Tene p6object is being called from perl6.pir
16:07 Tene which is .HLL 'perl6'
16:08 Tene You need to put the load_language call in .HLL parrot right now to deal with a Parrot bug with loadlib and PMCs.
16:08 Tene so that the .loadlib 'perl6_group' happens in .HLL 'parrot'
16:09 Tene otherwise you end up with Perl6MultiSub being created in .HLL 'steme'
16:09 Tene instead of 'parrot'
16:09 NotFound Tene: yes, but I'm not sure if putting the .HLL 'parrot' after the lang HLL is a tested way. All test I've do doed it before the .HLL 'lang'
16:09 Tene but rakudo definitely works just fine when loaded like that.  I can load and use rakudo from cardinal exactly the same way.
16:10 Tene NotFound: rakudo currently relies on that behavior working.  it uses .HLL 'parrot' in just a few files to add things to core parrot classes.
16:10 NotFound Tene: yes, but that bunch of hacks and workarounds does not help to debug the problems.
16:11 Tene What hacks and workarounds?
16:11 Tene The only workaround is putting the load_bytecode call in .HLL 'parrot', which I'm quite confident wouldn't cause problems here.
16:12 Tene And works fine in several other contexts.
16:12 NotFound Mixing HLLs in one file,  guessing HLLs, using include instead of loading...
16:13 Tene What is being guessed?
16:13 NotFound The HLL in the 'register' method
16:15 Tene It doesn't guess the HLL, it fetches it.  It's not wrong there.  Add a 'say' after it's fetched to confirm.  That part of P6object has worked properly for a very long time.
16:16 particle mixing hll in one file is not a hack, it's a supported feature.
16:17 NotFound particle: I remember have seen a question about that in the mailing list without a clear answer.
16:17 nopaste "tene" at 166.70.38.237 pasted "confirming the HLL in P6object" (73 lines) at http://nopaste.snit.ch/16786
16:17 particle ok, well for a long time it's been a supported feature, but maybe there are more recent questions i don't know about it.
16:18 particle s/it/.$/./
16:19 Tene I don't remember seeing that question.  I must have missed it.
16:19 NotFound Maybe I'm wrong, I'll try to find it later.
16:23 nopaste "NotFound" at 213.96.228.50 pasted "Another test..." (25 lines) at http://nopaste.snit.ch/16787
16:23 NotFound Is something wrong in this test?
16:24 Tene did you trim 'parrot' lines from the output?
16:25 NotFound No, is all the output except last lines of backtrace
16:26 AndyA joined #parrot
16:27 NotFound $ ./steme nap.scm
16:27 NotFound parrot
16:27 NotFound parrot
16:27 NotFound perl6(13 times)
16:27 NotFound Segmentation fault
16:27 purl (Core dumped)
16:27 Tene look at my paste for the same thing
16:27 Tene ... oh, I know what it is.
16:27 Tene I think
16:27 NotFound Strange that difference between the pbc and the fakecutable
16:28 nopaste "tene" at 166.70.38.237 pasted "Oops, forgot that step" (5 lines) at http://nopaste.snit.ch/16788
16:29 Tene Parrot doesn't complain when it's unable to find things that are loadlib'd, it just doesn't load them, and then later Rakudo references classes from custom PMCs that aren't loaded.
16:29 Tene try that.
16:30 Tene check with strace to confirm that they get found
16:30 Austin_Hastings joined #parrot
16:30 Tene strace -estat is what you want.
16:31 NotFound The difference between the fakecutable and the pmc, then, smells like they are using different configs
16:31 Tene That sounds possible.  They work identically for me.
16:32 Tene So, I'm no help here.
16:33 NotFound Yes, with that links the pbc fails the same way as the fakecutable
16:33 Tene OK, good
16:34 Psyche^ joined #parrot
16:34 NotFound But with just one perl6 in the output in both now.... uh... let me build steme again
16:36 NotFound No, the pbc now crash with just 2 parrot and 1 perl6, and without the die message
16:40 NotFound The segfault is inside a deep stack of mark calls, triggered by some object instantiation.
16:40 Tene Yes, that's what I see too.  I posted my bt on gist.
16:40 Tene does yours look the same?
16:41 cotto seen allison
16:41 purl allison was last seen on #parrot 1 days, 15 hours, 3 minutes and 36 seconds ago, saying: and, yes, base_type comparisons will work fine for this (and be very fast)  [Jun  3 01:33:45 2009]
16:42 NotFound Tene: no, there is a PMCProxy in mine
16:43 Tene NotFound: you run under gc-debug?
16:43 NotFound Tene: no, default options for all
16:45 NotFound In both cases the marks are triggered by get_new_pmc_header. Looks like a gc related problem somewhere before.
16:49 darbelo joined #parrot
16:50 cotto Hi darbelo.  How goes the test writing?
16:51 NotFound Regarding the loadlib failing silently, I think a dlfunc_nonull, or alternatively a dlfunc_maybenull, will  be helpful.
16:51 NotFound Triggering an excpetion if you absolutely need that func.
16:54 NotFound Someone objects adding dlfunc_nonnull to experimental.ops?
16:54 darbelo NotFound: ISTR that, in PIR, if you do $Pn = loadlib 'foo', the truth value of $Pn tells you if the loadlib failed.
16:54 NotFound darbelo: yes, but lots of code doeesn't check at all
16:56 NotFound Mmmm... I can try a simpler approach: check the result in the debugger runloop
16:58 NotFound Or maybe a more generic solution may be to have a NCI PMC that evaluates to false and dies if invoked.
17:01 NotFound Looks like the NCI PMC need no changes to do that.
17:02 darbelo cotto: slow, lots of interrruptions lately as I'm planning my birthday party.
17:02 cotto Well, happy birthday then!
17:04 NotFound excepcion = new 'Birthday'
17:04 darbelo Thanks, I'll be mostly useless today, but should be back on track by tomorrow.
17:05 darbelo NotFound: you didn't check if the loadlib failed :)
17:06 NotFound darbelo: I also didn't check my ortography
17:07 darbelo Don't worry, I don't expect people to use accented letters on IRC ;)
17:07 pmichaud (loadlib)  does it help at all if perl6.pir does the .loadlib directives _before_ the .HLL ?
17:07 pmichaud (since it doesn't really matter to the loadlib itself)
17:07 NotFound darbelo: english ortography, not spanish :D
17:09 cotto party = new ['Happy';'Birthday']
17:09 cotto throw party
17:09 NotFound I'm testing now returning an unitialized NCI instead of Undef in dlfunc, nothing changes in the steme problem.
17:16 NotFound Forget what I said before, the difference between the pbc and the fakecutable was because a wrong symlink. I still don't understand why the symlink absence does not affect both.
17:16 purl NotFound, I didn't have anything matching what i said before, the difference between the pbc and the fakecutable was because a wrong symlink. i still don't understand why the symlink absence does not affect both
17:16 NotFound purl: no wonder
17:16 purl NotFound: huh?
17:16 particle hee
17:22 NotFound AFK for a while
17:36 dalek partcl: r431 | coke++ | trunk/runtime/builtin/ (50 files):
17:36 dalek partcl: Add a tcl-only faux-profiler so we can at least figure out which functions
17:36 dalek partcl: are often-invoked.
17:36 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=431
17:43 cotto When calling subs in pir, is 'foo'() or foo() the preferred form?
17:43 cotto for a sub named foo
17:53 jonathan cotto: I tend to use foo if it's all \w+ chars.
17:53 jonathan cotto: But the method form that let you write $P0.bar went away, so maybe the unquoted version of the sub one may too...though I haven't heard any plans for that.
17:55 particle i prefer quotes
17:55 cotto ok.  For some reason I though the unquoted version was going away, but I don't like all the extra quotes.
17:55 dalek partcl: r432 | coke++ | trunk/runtime/ (3 files):
17:55 dalek partcl: - collapse several pir.'emit'() calls into a single call.
17:55 dalek partcl: - fixup some .prof() calls.
17:55 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=432
17:56 particle i don't like the quotes, but i use them defensively
17:58 pmichaud I haven't heard anything definitively about sub quotes and names.  I tend to always use them to avoid the possibility of conflicting with a symbol name (which does occur).
17:59 dalek parrot: r39391 | cotto++ | branches/pmc_pct/compilers/vtdumper/vtdumper.pir:
17:59 dalek parrot: [vtdumper] add code to freeze the past to a file
17:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39391/
17:59 cotto speedy
18:01 dalek partcl: r433 | coke++ | trunk/tools/profiler.pl:
18:01 dalek partcl: Add script to dump to summarize the .prof output
18:01 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=433
18:03 dalek parrot: r39392 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (3 files):
18:03 dalek parrot: [vtdumper] start writing some tests
18:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39392/
18:13 Infinoid particle: ping
18:13 particle Infinoid: pong
18:19 Tene pmichaud: no, that doesn't help with loadlib.
18:21 pmichaud Tene: so, it has to do with the load_bytecode/load_library being called from a HLL?
18:30 dalek partcl: r434 | coke++ | trunk/runtime/variables.pir:
18:30 dalek partcl: use more .tailcall
18:30 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=434
18:35 dalek partcl: r435 | coke++ | trunk/runtime/variables.pir:
18:35 dalek partcl: remove unneeded clones, use .tailcall
18:35 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=435
18:39 Tene pmichaud: yes, exactly
18:39 dalek partcl: r436 | coke++ | trunk/runtime/builtin/ (2 files):
18:39 dalek partcl: code cleanup, remove unused vars
18:39 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=436
18:44 pmichaud I would not be at all opposed to having HLLCompiler provide a 'load_bytecode' method that does the load_bytecode from the Parrot HLL :-)
18:44 pmichaud so that instead of
18:44 pmichaud load_bytecode file
18:44 pmichaud one does
18:44 pmichaud compiler.'load_bytecode'(file)
18:45 pmichaud (which would then occur from the 'parrot' HLL :-)
18:45 pmichaud or something equally silly like that.
18:45 pmichaud maybe even
18:45 pmichaud compiler.'parrot_load_bytecode'
18:46 pmichaud or even still
18:46 pmichaud $P0 = get_root_symbol ['parrot';'PCT';'HLLCompiler'], 'load_bytecode'
18:46 pmichaud $P0(file)
18:46 pmichaud those might be reasonable (as in "workable") workarounds.
18:47 particle .'load_root_bytecode'()
18:47 pmichaud it's not really loaded at root, so no.
18:48 particle oops, sorry, think-o
18:48 particle i meant 'load_parrot_bytecode', following 'get_root_namespace' etc
18:49 particle however that sorta implies load_hll_bytecode and load_current_bytecode, and that last one is confusingly named
18:50 Whiteknight Tene++ # finding me a helper
18:51 pmichaud except there's no concept in parrot of 'load_hll_bytecode' or 'load_current_bytecode.
18:51 gryphon joined #parrot
18:51 pmichaud bytecode is loaded into the namespace given by information in the bytecode itself, not in the caller.
18:51 pmichaud really the code is just
18:52 pmichaud .namespace ['PCT';'HLLCompiler']
18:52 pmichaud .sub 'load_bytecode'
18:52 pmichaud .param string filename
18:52 pmichaud load_bytecode filename
18:52 pmichaud .end
18:53 pmichaud actually, come to think of it, I suspect I can solve it in rakudo's actions.pm.
18:53 pmichaud and not need the extra stuff.
18:54 ruoso joined #parrot
19:17 Tene Whiteknight: looks like he's going to work out?
19:19 Whiteknight yeah, hes on the team
19:23 cotto "he"?
19:23 purl "he" is, like, a typo for "she"
19:24 autark joined #parrot
19:28 Whiteknight cotto: Tene helped me find a developer for a contract I'm working on
19:30 cotto This is nice. I seem to have found a 1-line imcc segfault.
19:30 Whiteknight really? Do tell
19:30 nopaste "cotto" at 96.26.202.243 pasted "one-line imcc segfault" (3 lines) at http://nopaste.snit.ch/16789
19:31 cotto tecnhically 3 lines, but 2 aren't interesting
19:32 cotto it'll probably be an easy fix
19:35 Whiteknight wow, that one function call causes a segfault?
19:35 cotto Anyone here care to fix it?  If not I'll just file a quick tt.
19:35 Whiteknight that's rediculous
19:35 Whiteknight yeah, do the TT
19:42 burmas joined #parrot
19:44 darbelo joined #parrot
19:45 dalek TT #737 created by cotto++: imcc segfault when assigning to undefined retval
19:52 cotto iwbn if the tickets from trac had something less redundant than '[parrot-tickets] [Parrot]' as a prefix
19:52 burmas left #parrot
20:04 Steve_H left #parrot
20:23 dalek parrot: r39393 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (2 files):
20:23 dalek parrot: [vtdumper] add some more tests for function parsing
20:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39393/
20:59 cotto It's surprisingly painless to manipulate a past in pir.
21:00 dalek parrot: r39394 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (3 files):
21:00 dalek parrot: [vtdumper] add tests for sections, factor out some repeated code
21:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39394/
21:03 Austin_Hastings joined #parrot
21:13 Tene I should post that segfault to the list...
21:23 cotto Mine or another?
21:25 Tene Mine.
21:34 particle what's with all the segfaults recently?  did chromatic go on a bender and put easter eggs in the gc?
21:34 Tene this is the first one I've seen in a while.
21:36 jonathan I'm generally managing to make Parrot segfault less these days that I used to.
21:37 jonathan I did find one the other day, but it was the first segfault that wasn't self-induced I'd had for a while.
21:37 Whiteknight joined #parrot
21:37 Tene That GC segfault with steme and other langauges is frustrating, though
21:38 jonathan Rakudo is in a bizzare situation where we can't run it under -G (at least, last I checked) because it explodes.
21:38 particle 'tis bizarre, indeed
21:38 jonathan On Win32 anyway.
21:38 Tene Ah.
21:39 jonathan I didn't manage to make much headway into why.
21:39 Tene I was gonna say... works fine for me.
21:39 jonathan Well, I didn't try for a few days at least, maybe over a week.
21:41 Tene purl: msg masak Had something to talk to you about... maybe I'll have remembered by the time you get this
21:41 purl Message for masak stored.
21:54 eternaleye joined #parrot
21:56 * cotto has had enough of tests for the day
21:57 dalek parrot: r39395 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (5 files):
21:57 dalek parrot: [vtdumper] add the last set of tests, plus some code simplification
21:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39395/
21:58 Limbic_Region joined #parrot
22:03 eternaleye_ joined #parrot
22:07 dalek parrot: r39396 | cotto++ | branches/pmc_pct/compilers/vtdumper (2 files):
22:07 dalek parrot: [vtdumper] fix whitespace and remove an unneeded file
22:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39396/
22:09 mj41 joined #parrot
22:32 rg joined #parrot
22:33 kid51 joined #parrot
22:34 bacek joined #parrot
22:48 dan joined #parrot
22:50 bacek Good morning
22:50 purl And good moroning to you, bacek.
22:50 dan Is there functional data structures PMCs planned?
22:51 bacek Infinoid: (dalek) Yes. At least for branches.
22:51 bacek dan: for example?
22:53 dan For instance a list where I can add an item and get a new list back that include the new element leaving the old list intact but that shares much of the old list so it incurs minimal overhead.
22:53 dan Data structures that are the bread and butter of functional languages.
22:54 dalek parrot: r39397 | jkeenan++ | trunk/MANIFEST:
22:54 dalek parrot: Add some files that came in with recent merges.
22:54 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39397/
22:54 Austin_Hastings Ah, the infamous LinkedList PMC.
22:55 dan The point of functional data structures is to be immutable. Every "modification" only yield a new structure. Linked List are not immutable.
22:57 Austin_Hastings I stand corrected.
22:57 Austin_Hastings In that case, probably not.
22:57 bacek dan: I don't that anyone going to implement them in parrot. But you can implement them as DynPMC in your HLL
22:58 dan What are DynPMCs?
22:58 purl DynPMCs are treated the same way as pmcs, as far as dumps go
22:59 Whiteknight dan: dynpmcs are PMC types, written in C, that get dynamically loaded into Parrot at runtime
22:59 dan So they are exactly like PMCs but user-written and loaded at runtime?
23:01 Austin_Hastings They're better than regular PMC's, because when your DynPMC causes the tcl regression tests to fail, Coke's head will explode.
23:01 Austin_Hastings :)
23:02 darbelo Actually, that would only happen if Coke incorporated those DynPMCs into partcl.
23:02 bacek dan: yes, they are regular PMCs.
23:02 Austin_Hastings Of course, you have to load them. So they can't be primitive types without going through the load-and-install process first. But after that, you're okay.
23:03 Austin_Hastings darbelo: Are you sure?
23:03 purl You still have ALL THREE lifelines left!
23:04 darbelo I've broken the decnum-dynpmcs a few times and nobody noticed.
23:05 Austin_Hastings I was under the impression that Bacek had committed pod update changes to a separate branch and *still* caused partcl to regress.
23:05 darbelo a dynpmc that you haven't loadlib-ed can't harm you. So to speak.
23:05 bacek Austin_Hastings: I didn't touch pods!
23:05 Austin_Hastings laugh
23:06 darbelo dan: Undocumented as it is the decnum-dynpmcs project might be of interest to you.
23:06 dan What is it?
23:06 purl it's it!
23:07 darbelo decnum-dynpmcs is http://code.google.com/p/decnum-dynpmcs/
23:07 dalek TT #266 reopened by jkeenan++: Packfile API cleanup: rename Parrot_readbc to Parrot_pbc_read, _loadbc => ...
23:08 darbelo decnum-dynpmcs is also a 2009 GSoC porject
23:08 purl okay, darbelo.
23:09 darbelo decnum-dynpmcs is also a set of 'big' decimal arithmetic types for parrot.
23:09 purl okay, darbelo.
23:09 darbelo dan: sorry, just trainig the bot a bit.
23:09 darbelo purl: decnum-dynpmcs?
23:09 purl it has been said that decnum-dynpmcs is http://code.google.com/p/decnum-dynpmcs/ or a 2009 GSoC porject or a set of 'big' decimal arithmetic types for parrot.
23:11 darbelo It is an example of how to build dynpmcs that live outside the parrot core and the scope of a particular language.
23:12 dan How hard would it be to share structural data between PMCs?
23:13 Austin_Hastings dan: You mean between separate instances of the same PMC (class) ?
23:13 dan Yes
23:14 Austin_Hastings It's fairly easy. (Maybe too easy.)
23:14 Austin_Hastings Think of them as C++ classes.
23:15 Austin_Hastings You've got some "initial" data item.
23:15 Austin_Hastings You create a new PMC, based on the "initial" pmc, which "edits" the initial value somehow.
23:15 dan Lots of functional data structures are trees. I can get a tree to give me another tree that points at most of his own leafs plus some new ones execpt some old ones. I want the leafs that no tree is looking at anymore (because it has been garbage collected) to be garbage collected to.
23:16 Austin_Hastings I was just going to say that you have to maintain your references correctly, for GC purposes.
23:17 Austin_Hastings If you have a look at the "Namespace" pmc, you'll see an example of this. Each namespace has a link to its parent. (Namespaces are a tree. Surprise.)
23:17 darbelo dan: What you probably want is for the leaves to be PMC's themselves, and make the 'tree' PMC a collection of pointers.
23:18 Austin_Hastings Yeah.
23:18 Austin_Hastings darbelo++
23:18 Austin_Hastings Maybe a resizable array of node indices, with the ancestor as backing store.
23:19 bacek Actually you don't even need new PMC. Hash behave exactly in this way iirc
23:19 bacek Hash.clone makes shallow copy leaving values untouched
23:20 darbelo bacek: Yes but the interface for a lispy-list is quite different from a hash.
23:20 tetragon joined #parrot
23:20 darbelo It might work as a subclass, tho.
23:21 bacek darbelo: you can implement your class in PIR on top of Hash
23:21 dan Yes, it makes a lot of sense to do that.
23:21 Austin_Hastings dan: What behavior are you looking for?
23:23 snarkyboojum joined #parrot
23:23 dan What behaviour am I looking for in what?
23:23 Austin_Hastings In your data structures.
23:23 dan Immutability and cheap creation of new structures.
23:24 Austin_Hastings For instance, parrot arrays tend to be lists, more than arrays. This wouldn't be a great thing if you wanted indexes to be one of your inherited traits.
23:25 dan There's a functional structure called a finger tree that lets you make a list out of a tree so you don't have to reindex everything all the time you create a new list but I haven't completely grokked it yet.
23:25 dan It's based around having nodes know how many leaves are under them so you can compute the index quickly.
23:26 Austin_Hastings Sure. Similar to nested sets.
23:26 Austin_Hastings But if I have a list, like @a = (1, 2, 3), and I say @b := @a, that's a cheap copy. (Both ref the same data)
23:27 Austin_Hastings Now when I say @b.unshift(0), presumably you want to fork @a and @b, so that @a = (1, 2, 3), while @b = (0, 1, 2, 3), right?
23:27 dan yes
23:28 Austin_Hastings So one way to do that would be to treat the two "arrays" as "lists." In that case, you could still be storage-efficient, because you could make @a be a sub-list or sub-tree of @b, right?
23:28 dan Probably.
23:28 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
23:29 Austin_Hastings But if you wanted them to be "arrays" and not "lists" it wouldn't work so well, because you would want a[2] to return 3, and b[2] to return 2, etc.
23:29 Austin_Hastings Someone has been teaching the robot bad things.
23:30 dan Conceptually, they are frozen arrays because they are immutable but in practice, they don't have to be.
23:30 Austin_Hastings If you store them as trees, or lists, then your index operation is expensive.
23:30 Austin_Hastings If you store them as arrays, some other stuff gets expensive.
23:30 Austin_Hastings (Insert, delete, you know the drill.)
23:31 Austin_Hastings So you should probably develop a priority list of operations.
23:31 dan There are clever algorithms to work around that but I'm just starting to get into them.
23:31 Austin_Hastings Right.
23:31 Austin_Hastings It's a question of priorities.
23:32 Austin_Hastings Some things you will get "for free" based on implementation. Other things you have to work at.
23:32 patspam joined #parrot
23:33 darbelo Austin_Hastings: the finger-trees dan mentioned are a way to make "lists" have O(1) indexing.
23:34 darbelo They are trees where all the leaves are at the same (bottom-most) level
23:35 dan I heard about a vlist that would do the same job, provided you only append at the end. Clojure uses them.
23:36 darbelo A "list you only append at the end" sounds like an array to me.
23:36 Austin_Hastings Okay, sounds like dan will be working on a set of Tree PMCs.
23:36 Austin_Hastings :)
23:36 dan Yes, sounds like it :)
23:38 dan Lots of functional structures are built around laziness, is easy it to do in parrot?
23:38 darbelo It depends on how lazy you want to be :)
23:38 darbelo Laziness would probably require a lot of work ;)
23:39 dan Isn't Larry Wall touting the benefits of laziness since years? :-P
23:40 darbelo That's becouse he already did the hard work. Now he just reaps the beneffits.
23:41 dan By laziness I mean lazy evaluation.
23:41 darbelo And now that you mention it: rakudo is supposed to have some lazy stuff in it. So lazy behaviour must be possible on parrot.
23:42 darbelo I don't know how easy it is to do.
23:43 Austin_Hastings Well, closures + continuations + coroutines = defer as much as ever you can.
23:44 dan Is there an O'Reilly book planned to come out when Parrot 2.0 is released?
23:47 Austin_Hastings dan: Don't know.
23:50 dan Gotta go. Thanks for the help
23:50 Austin_Hastings sure. adios

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

Parrot | source cross referenced