|
Parrot 1.8.0 Zygodactyly released | Latest modified TT's: icanhaz.com/parrotbugs Set by moderator on 17 November 2009. |
|||
| darbelo | Tene: You are better off that way :) | 00:00 | |
| japhb | Tene: time heals all wounds. | ||
| Unfortunately, it may take more time than you have .... | 00:01 | ||
| darbelo | "Don't worry, it'll close up in a few days... If you don't bleed out in the next few minutes." | 00:02 | |
| dalek | rrot: r42572 | mikehh++ | trunk/t/examples/shootout.t: remove some skipped tests that pass |
00:03 | |
| dukeleto | how do you catch exceptions in NQP(-rx) ? | ||
| Tene | dukeleto: you could re-use the try() function from plumage. | 00:06 | |
|
00:13
Zak joined
|
|||
| Austin | Okay, this is just silly. | 00:18 | |
| NotFound | The MS and alike way: we'll show that managed code can be as fast as plain C code, by making C code as slow as possible. | 00:19 | |
| darbelo | Austin: Taxes? Always. | 00:20 | |
| Austin | Apparently pmichaud-- is a registered democrat. | ||
| I think I'm buying healthcare for everybody here. | |||
| darbelo is unfamiliar with USA politics. | |||
| Democrats == Big taxes? | 00:21 | ||
| Austin: to be fair. Old NQP is still available. This particular tax is opt-in until 2.1 | 00:22 | ||
| Austin | darbelo: www.cafepress.com/dd/36418669 | 00:24 | |
| And yeah, it's opt-in until 2.1, but I'm thinking I might as well change my handle to "Merriwether Lewis." | 00:25 | ||
| (Because in a lot of cases I think I'm one of the first guys to ever see this territory.) | |||
| darbelo | Austin: Welcome early adopter^W^Wproduction user! | 00:26 | |
| Austin | Yeah. One point oh. | ||
|
00:27
plobsing joined
|
|||
| dalek | TT #1309 created by getpsimon++: perl Configure.pl finds icu but doesn't set it up | 00:27 | |
| NotFound | If you don't like the new nqp, you can switch to winxed ;) | ||
| Competence! | |||
| purl | i think competence is a sign of political righteousness! | ||
| Austin | Does it work? | ||
| Belay that. Does it FTS? | |||
| NotFound | FTS? | 00:28 | |
| purl | somebody said FTS was fuck this shit or fuck the sun! | ||
| Austin | purl, forget FTS | ||
| purl | Austin: I forgot fts | ||
| Austin | FTS is "fail to suck" | ||
| japhb | Austin: Think of it like this. You work out all the dark corner cases for us, and NQP-rx will FTS for everyone else. :-) | 00:29 | |
| NotFound | With that definition, yes. At least for people that don't hate certian family of syntax. | ||
| Austin | Compiled or interpreted? | ||
| NotFound | Compile to pure pir. | 00:30 | |
| japhb | I hate a certain family of syntax! Of course, I don't think it's the certain family you're referring to .... | ||
| NotFound | japhb: C/C++/java/javascript | ||
| Austin | I'll have to take a look. | ||
| NotFound | A big familiy | ||
| Austin | (Sadly, Kakapo is intended as a nqp library. So I'm sort of committed to nqp-ness.) | 00:31 | |
| pmichaud | (registered democrat) Definitely not. | ||
| japhb | NotFound, the Algol family is insufficiently small to contain just the syntax family to which I refer. | ||
| I object to the "object orientation ought to HURT" subfamily thereof. | |||
| darbelo | japhb: If object orientation didn't hurt people would use it. | 00:32 | |
| chromatic | If Windows didn't hurt, people would use it. | ||
| NotFound | BTW, I don't spammed yet today my new site: winxed.org/ | 00:33 | |
| dalek | rrot: r42573 | jkeenan++ | branches/configtests/t (3 files): Specify exact number of tests in plan. |
||
| rrot: r42574 | jkeenan++ | branches/configtests (3 files): Correct overuse of '_provisional', particularly with respect to elements used in auto::headers. |
|||
| mikehh | All tests PASS (pre/post-config, smoke (#30020), fulltest) at r42572 - Ubuntu 9.10 amd64 (g++ with --optimize) | ||
| darbelo | japhb: And once you use it, boy do you feel less inclined to preach it as a silver bullet. | ||
| Austin | notfound: Probably needs more documentation than that. | 00:34 | |
| NotFound | Were's the werewolf? | ||
| japhb | NotFound, damn, beat me to the joke | ||
| Whiteknight | Where do I find documentation on the profiler? | ||
| I want to pimp it out on my blog | |||
| darbelo | Whiteknight: The pod in the format conversion script was pretty good. | 00:35 | |
| NotFound | Austin: not much doc, but t/ and examples/ shows syntax and features. | ||
| Whiteknight | darbelo: where is that? | ||
| purl | yes, that! | ||
| cotto_work | Whiteknight, there's not a whole lot to it apart from the pod in tools/dev/pprof2cg.pl | ||
| If you have suggestions as to what would make it more useful, I'd love to hear them. | 00:36 | ||
| darbelo | perldoc tools/dev/pprof2cg.pl | ||
| Whiteknight | cotto_work: how do we turn on the profiler? | ||
| chromatic | --runcore=profiler | ||
| --runcore=profile | |||
| one of those | |||
| cotto_work | -Rprofiling | ||
| or --runcore=profiling | |||
| darbelo | Wasn't it "-r profiling"? | ||
| cotto_work | timtowdi | 00:37 | |
| purl | i guess timtowdi is important, ... but can be quite an obstacle for nuB's | ||
| japhb | Dang, I've spent so much time with NQP I'm starting to have problems using = instead of := in Perl 5 code ... | ||
| darbelo | (:=)-- | ||
| japhb | A happy kid drooling a lot? | ||
| cotto_work | but -r doesn't do profiling | ||
| s/do profiling/determine the runcore/ | 00:38 | ||
| darbelo | s/r/R/ | 00:39 | |
| cotto_work | I'm trying to rewrite the script in nqp for a couple reasons, so I'll be updating the docs where I can't figure them out. | ||
| darbelo | cotto_work: The you'll be able to profile parrot when runing the profiler to profile the profiling posprocessor? | 00:40 | |
| *postprocessor | 00:41 | ||
| cotto_work | That's a fortunate side-effect. | ||
| darbelo | dogfooding++ | ||
| metacircularity++ | 00:42 | ||
| mikehh | winxed: make test PASS - PASSED 95 tests in 21 files at r179 on parrot r42572 (g++ with --optimize) - Ubuntu 9.10 amd64 | 00:44 | |
| Austin | pmichaud: does 'has' work in nqp-rx? | 00:45 | |
| pmichaud | only for private attributes, and no immediate initialization | 00:46 | |
| has $!x; # works | |||
| has $.x; # doesn't work (yet?) | |||
| has $!x = 5; # probably will never work | |||
| Austin | :( | ||
| pmichaud | PIR doesn't give a good way to attach initialization subs to objects | ||
| Austin | What can I do with $!x ? | ||
| pmichaud | you can bind it, same as any other variable :) | 00:47 | |
| $!x := 5; | |||
| Austin | method foo() { $!x := 1 } ? | ||
| pmichaud | eys. | ||
| *yes. | |||
| Austin | $obj.!x := 5; ? | ||
| pmichaud | not quite yet | ||
| the syntax for accessing a private attribute of a foreign object is still a little dicey in p6 | 00:48 | ||
| Austin | I'd have to write 7 method x(*@value) { if +@value { $!x := @value.shift; } return $!x; } ? | ||
| pmichaud | there's always pir::setattribute | 00:49 | |
| Austin snickers. | |||
| Seriously. | |||
| purl | I'm totally freaking serious. | ||
| pmichaud | I'm a bit limited by what Parrot provides here | ||
| Austin | Sure. | ||
| But subclassing works, sort of. | 00:50 | ||
| pmichaud | sure. | ||
| I might be able to eventually add some attribute initialization and support to P6object | |||
| Austin | And private attributes. | ||
| I can get rid of 'has()' in Kakapo. | 00:51 | ||
| No. | |||
| I get rid of 'extends'. | |||
| Keep 'has' and generate accessors. | |||
| pmichaud | I'm thinking of having has $.x automatically create readonly accessors | ||
| Austin | Why? | 00:52 | |
| pmichaud | convenience | ||
| purl | convenience is you not having to write a little bit of code to generate the files, and the cost is me modifying Loader to do it for you | ||
| pmichaud | I agree that writing explicit accessors isn't hard. | ||
| Austin | I was thinking "why readonly"? | ||
| dukeleto | purl: die in a grease fire | ||
| purl | dukeleto: excuse me? | ||
| pmichaud | oh. Because Parrot doesn't have an lvalue attribute | 00:53 | |
| in Perl 6, one would do $foo.x = 3; | 00:54 | ||
| but .x is still a method call | |||
| Austin | Actually, here's a problem: If I call "P6object::get_parrotclass" it sometimes returns null. | ||
|
00:54
abqar joined
|
|||
| pmichaud | it returns an lvalue object that is then assigned a value | 00:54 | |
| Austin | And -rx isn't automatically converting null into undef all the time, so I'm getting NPA faults. | ||
| pmichaud | what are you calling get_parrotclass on ? | 00:55 | |
| i.e., what are you trying to get the parrotclass of? | |||
| Austin | A string or namespace. | ||
| pmichaud | the tt you filed that showed the npa using INIT occurs because you're accessing the variable before it's been initialized | 00:56 | |
| I'm not sure that I want to do null checks on every variable access. | |||
| Austin | I know. | ||
| :| | |||
| The TT I filed showed (I think) that you're generating null checks if the `our` is inside the sub, but not generating them if it's outside the sub. | 00:57 | ||
| pmichaud | I don't understand inside/outside here | ||
| pmichaud goes to look at the TT again | |||
| Austin | our $G ; sub foo() { $G } | ||
| versus | |||
| sub bar() { our $G2; $G2; } | 00:58 | ||
| pmichaud | ah | ||
| the outer block isn't being invoked so the variable never gets initialized | |||
| okay, I get it. | |||
| maybe I'll go ahead and do the null checks on all package variables :-| | 00:59 | ||
| Austin | Anyway, the generated PIR is different for the two cases. The "inside the sub" case contains a null check, where the "outside the sub" case doesn't. | ||
| pmichaud | yeah, that seems weird. | ||
| Austin | Or give me a builtin. | ||
| pmichaud | I'll go look at it. | ||
| ...builtin? | |||
| Austin | isnull? | ||
| purl | hmmm... isnull is for real NULL pointers. | ||
| pmichaud | pir::isnull already works | 01:00 | |
| Austin | Does it? | ||
| I tried pir::typeof, but couldn't get it to work right. | |||
| pmichaud | not all of the opcodes have signatures yet | ||
| Austin | So I punted and went back to Q:PIR {...} | ||
| pmichaud | sometimes you have to also indicate the types of the operands | ||
| Austin | Hows that? | ||
| diakopter | I got pir::typeof__SP() to work | ||
| pmichaud | so you might need pir::typeof__SP | ||
| Austin | Ah. | ||
| Okay. | |||
| pmichaud | or pir::typeof__PP | ||
| but isnull has only one signature, and PAST knows about it already | |||
| Austin | __PP is for me. | ||
| So I could say 7 if pir::isnull($foo) { say("It's null"); } and expect it to work? | 01:01 | ||
| pmichaud | Yes. | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "example pir::isnull usage for Austin++" (12 lines) at nopaste.snit.ch/18762 | 01:03 | |
| NotFound | pmichaud: ? isnull has two signatures. | 01:04 | |
| nopaste | "pmichaud" at 72.181.176.220 pasted "another example of isnull" (12 lines) at nopaste.snit.ch/18763 | ||
| dalek | rrot: r42575 | jkeenan++ | trunk (158 files): [configure] Merge 'configtests' branch into trunk. Moves t/steps/*.t to run now rely on %Parrot::Config::PConfig rather than init::defaults. Most direct dependence on Perl 5 %Config in config steps after init::defaults has been eliminated. Cf.: trac.parrot.org/parrot/ticket/1189." |
||
| pmichaud | NotFound: PAST assumes the __IP one | ||
| rrot: r42576 | jkeenan++ | branches/configtests: Branch has been merged into trunk and is no longer needed at head. |
|||
| kid51 now recommends: make realclean && svn up && perl Configure.pl --test | |||
| Austin | Cool. Thanks. | 01:05 | |
| Ahh. "method 'run_tests' not found for non-object | |||
| My old enemy. We meet again. | 01:06 | ||
| japhb | kid51, how does --test interact with 'make reconfig'? | ||
| Austin | If I were a swarthy latino with a midget sidekick and a sexy accent, I'd put on a pair of leather pants and go shirtless. | 01:07 | |
| kid51 | japhb: Hmm, I'm not familiar with 'make reconfig' ... or, at least, not recently. Let me look. | 01:08 | |
| Austin | Hmm. Better make that Corinthian leather pants. | 01:09 | |
| kid51 | If I read the Makefile correctly, what I wrote would be equivalent to: svn up && make reconfig. | ||
| Perhaps 'make reconfig' was added when I wasn't looking | 01:10 | ||
| My hunch was correct: per 'svn blame', 'make reconfig' was added by reini in r36480. It escaped my attention. Patch should have no impact on that make target. | 01:12 | ||
| Trust, but verify. | 01:13 | ||
| Verified. | 01:15 | ||
| japhb | okie | 01:16 | |
| Austin | pmichaud: I'm not sure if this is a change or not, but it looks like two class/module declarations in a file (module A; class B; ) wind up nested. (A{ B { } }) instead of serialized. Is this on purpose? | ||
|
01:18
cconstantine joined
|
|||
| Austin | pmichaud: (That is, lexically nested.) | 01:19 | |
|
01:22
plobsing_ joined
|
|||
| plobsing | hi #parrot | 01:27 | |
| japhb | o/ | 01:29 | |
| plobsing | i've been stalled out a while on libjit_framebuilder, but i think i've got a plan to get it back on track | 01:30 | |
| but I don't have enough svn knowhow to make sure its feasible | |||
| 1) create a new branch from trunk. 2) apply all the commits in libjit_framebuilder resolving conflicts where necessary. | 01:34 | ||
| this should get the fixes in trunk into the branch easily, so that it can pass tests it fails now | 01:35 | ||
| basically a manual git rebase | 01:37 | ||
| unless maybe there's a better way to do things in svn? | |||
| mikehh | All tests PASS (pre/post-config, smoke (#30023), fulltest) at r42574 - Ubuntu 9.10 amd64 (gcc with --optimize) | 01:41 | |
| rakudo (c00de9d) builds on parrot r42574 - make test PASS / make spectest_smolder (up to r29128 -> #30026) FAIL - Ubuntu 9.10 amd64 | 01:42 | ||
| rakudo - t/spec/S02-lexical-conventions/unicode.rakudo - Parse errors: Bad plan. You planned 31 tests but ran 26 | |||
| rakudo does not build with g++ but does with gcc | 01:43 | ||
|
01:43
tetragon joined
|
|||
| Coke | nopaste? | 01:50 | |
| purl | i heard nopaste was at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl | ||
| mikehh | Coke: I can't connect to nopaste.snit.ch/ at the moment | 01:51 | |
| do any of the others paste here? | 01:54 | ||
| diakopter | just paste the url to the page it creates.. | 01:57 | |
| pmichaud | Austin: (lexically nested) yes, they may end up nested in that case. It's actually not valid Perl 6, though. I'm not sure what to do about that (the Perl 6 spec has some oddities there still also) | 01:59 | |
| Austin | pmichaud: I thought about that after I mentioned it. I know Larry explicitly talked about prohibiting two in-line class decls in the same file at YAPC. My concern was with e.g., two subclasses of a base class: would one of them wind up calling a lexical method from the other, rather than calling an inherited method? | 02:01 | |
| pmichaud | methods aren't lexical | ||
| (so no) | |||
| Austin | Man, I keep forgetting that they're going invisible now. | 02:02 | |
| diakopter | my guess is it will end up working like C#'s & Java's inner classes, as var as visibility goes... | ||
| Austin | Okay, never mind. I guess it's weird but not-quite-defined. | ||
| mikehh | I pasted it in #perl6 as paste.lisp.org/display/90706 | 02:04 | |
| diakopter | mikehh: on ubuntu 9.10, I had to install g++-4.3 and ln -s /usr/bin/g++ to it to get parrot latest to build | 02:05 | |
| oh wait. | |||
| wrong vm. | |||
| not even a lol. | |||
| mikehh: sorry; disregard... | 02:06 | ||
| mikehh | diakopter: I had build problems, but they got fixed | ||
| diakopter | then why the paste? | 02:07 | |
| mikehh: how did you go about trying to build rakudo? | |||
| mikehh | diakopter: build parrot -> sudo make install, in rakudo: - make realclean, git pull, perl Configure.pl --parrot-config=/usr/local/bin/parrot_config and if that works, make spectest_smolder | 02:12 | |
| diakopter: sorry missed the make -j test TEST_JOBS=5 | |||
| diakopter: that worked fine when I built with gcc, but fails with g++ | 02:14 | ||
|
02:14
allison joined
|
|||
| diakopter | mikehh: I don't know; I've never tried to build rakudo with a parrot built with g++ | 02:17 | |
| mikehh | I haven't been testing rakudo in the last couple of weeks - It wouldn't build after ther PCC_reapply barnch merged, but I have started doing language tests against parrot again | 02:20 | |
|
02:24
nopaste joined
02:25
preflex joined
|
|||
| mikehh | ha nopaste is back | 02:30 | |
|
02:30
lucian joined
02:38
kid51 joined
02:39
lucian_ joined
|
|||
| dalek | rrot: r42577 | jkeenan++ | trunk/config/init/defaults.pm: Delete commented-out code. |
02:49 | |
| rrot: r42578 | jkeenan++ | trunk/t/steps/auto/headers-01.t: Add test for previously untested branch in internal sub _list_extra_headers(). |
|||
| rrot: r42579 | jkeenan++ | trunk/config/gen/platform.pm: No need to pass $verbose in internal sub _set_limits(), as no verbose output is provided. |
03:03 | ||
| rrot: r42580 | jkeenan++ | trunk/lib/Parrot/Configure/Options/Test.pm: Delete unused variable and branch never entered. |
03:16 | ||
| rrot: r42581 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir: [past]: Enable anonymous parameters. |
|||
| tracwiki: v124 | jkeenan++ | WikiStart | 03:22 | ||
| tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff | |||
|
03:25
JimmyZ joined
03:29
mokurai joined
03:36
nopaste joined
03:39
nopaste joined
03:42
janus joined
|
|||
| dalek | rrot: r42582 | jkeenan++ | trunk/t/steps/gen/opengl-01.t: Write test to simulate case of no OpenGL available. |
03:56 | |
| mikehh | All tests PASS (pre/post-config, smoke (#30027), fulltest) at r42581 - Ubuntu 9.10 amd64 (g++ with --optimize) | 04:08 | |
| mikehh needs sleep | 04:09 | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "more tcl fun for Coke" (5 lines) at nopaste.snit.ch/18764 | 04:20 | |
|
04:30
dduncan joined
04:34
dduncan left
|
|||
| dukeleto | 'ello | 04:36 | |
| japhb | o/ | 04:39 | |
|
04:49
dduncan joined
|
|||
| dukeleto | japhb: how goes it? what are you hacking on lately? | 04:49 | |
| japhb | dukeleto, it goes. Doing $day_job tonight. | 04:50 | |
| you? | |||
| purl | i think you is very bed in engrish too | ||
| japhb | purl, forget you | ||
| purl | japhb: I forgot you | ||
| dukeleto | japhb: thinking about nqptap and plparrot and kea, but IRL is getting in the way | ||
| japhb | nodnod | ||
| dukeleto | japhb: what stuff needs doing in plumage that i can help with? | 04:51 | |
| Coke | pmichaud: nifty. I don't pretened to understand teh code at all, however. =-) | ||
| japhb | dukeleto, testing. | ||
| dukeleto | japhb: which things, in particular, need testing? | 04:52 | |
| japhb | Um, I think I already sent you my testing priorities, but if I didn't, I'll be happy to reiterate. | ||
| dukeleto | japhb: where are the testing priorities? maybe i misplaced or forgot | ||
| japhb | I'd like to get Glue.pir and Util.nqp to 100%, plus at least a full set of missing args and invalid args tests for plumage-the-fakecutable | 04:53 | |
| The impending refactor is going to play havoc with testing of lib/Metadata.nqp, and more detail of plumage.nqp, so the above should be a good start. | 04:54 | ||
| dukeleto | japhb: which functions need the most testing in Glue+Util? | ||
| japhb | Once that's dealt with, I can find more to test, I'm sure. :-) | ||
|
04:54
Khisanth joined
|
|||
| japhb | dukeleto, I hadn't prioritized them particularly. I really am going for 100% tested, and I don't really care what order they occur in, so low-hanging fruit is completely acceptable to me. | 04:55 | |
| I just want to get to the point that I can consider both files to be "Just Working". | |||
| Plus, I want to have a good solid test suite for those low level ops when we find the inevitable porting issues. | 04:56 | ||
| Workable for you? | |||
| dukeleto | japhb: sounds good | 05:00 | |
| japhb | :-) | ||
| Delegation. Such a wonderful feeling. | |||
| dukeleto | japhb: i will write tests for qx(), split() and slurp() first, since that is the subset of functions that nqpTAP needs | 05:02 | |
| japhb | Sounds great to me | ||
| dukeleto | languages? | 05:03 | |
| purl | hmmm... languages is trac.parrot.org/parrot/wiki/Languages | ||
| dukeleto | purl, languages is also icanhaz.com/parrotlang | 05:04 | |
| purl | okay, dukeleto. | ||
| moderator | Parrot 1.8.0 Zygodactyly released | Latest modified TT's: icanhaz.com/parrotbugs | Parrot Languages: icanhaz.com/parrotlang | 05:08 | |
|
05:09
theory joined
|
|||
| dalek | tracwiki: v108 | dukeleto++ | Languages | 05:09 | |
| tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff | |||
| dduncan | there seem to be multiple Python-on-Parrot implementations, pirate and pynie to name 2 of them ... is there any one that seems to be more complete and actively developed than the others, or is there no clear winner at this time? | 05:12 | |
| dalek | a: a4939f2 | dukeleto++ | LICENSE: Add a license file |
||
| dukeleto | dduncan: the only one i have heard of is pynie, and i think allison, the lead developer of parrot, works on it when she can | ||
| dduncan | okay | 05:13 | |
| dukeleto | dduncan: pirate is listed as retired | ||
| dduncan: pynie is 'active' | |||
| dduncan | I found both of the other names by a quick search-box look on parrot.org | ||
| dukeleto | languages? | ||
| purl | i guess languages is trac.parrot.org/parrot/wiki/Languages or icanhaz.com/parrotlang | ||
| dduncan | thank you, that's what I wanted to know | ||
| dukeleto | check out that link | ||
| dduncan: we would love more pynie devs | 05:14 | ||
| dukeleto goes to get $beer | |||
| dduncan | my situation here is that I've never used Python before but wanted to learn it in a hurry to help a job prospect, and since I wanted to know it anyway, so besides the official C implementation I wanted to check out the Parrot one | ||
| dukeleto | dduncan: does python have a spec test suite? | 05:15 | |
| dduncan: from what i know, pynie is python 3k, not 2.x | |||
| dduncan | I know it has a test suite ... you can run 'make test' when building the official python and it runs lots of tests | ||
| both 2.x and 3.x have one | |||
| don't know if that's a spec test though | 05:16 | ||
| that pynie-is-3k thing is good to know | |||
| I was thinking of starting with 3k but I did a general query to Python people last night who said development in v2 is still recommended more due to much wider support | 05:17 | ||
| still, I like to look to the future | |||
| dukeleto | dduncan: sounds like you should work on pynie :) | 05:30 | |
| pynie? | |||
| purl | somebody said pynie was code.google.com/p/pynie/ or a Python implementation for the Parrot virtual machine | ||
| dduncan | is there any effort to do a 2.x compatible Pynie or only a 3.x one? | 05:31 | |
| I'll look at Pynie anyway for details | |||
| dukeleto | dduncan: i really have no clue. | 05:32 | |
| dduncan: i have never touched pynie | |||
| dduncan: which languages are you familiar with? | 05:33 | ||
| dduncan | anyway, I thought the best way to learn Python was to actually try writing something useful in it, rather than just meaningless-result tutorials ... probably try to port my Perl 5 module Set::Relation | ||
| some Python people I talked to said that 2.6 was the best thing to write for at the moment | |||
| dukeleto | dduncan: interesting. | ||
| dduncan: you should work on what interests you | |||
| dduncan | I'm an expert in Perl 5, I'm trying to be an expert in Perl 6 (part way there), and I'm strong in PHP but don't like it | 05:34 | |
| I'm also writing my own language, which I intend to be parrot hosted, called Muldis D | |||
| dukeleto | dduncan: yes, i remember you from the gsoc mentor list | ||
| dduncan | mainly I'm learning Python because a job I like uses it, and also because its good to be familiar with all the popular languages | 05:35 | |
| dukeleto | dduncan: you should write Muldis D in the new NQP | ||
| nqp? | |||
| purl | somebody said nqp was github.com/perl6/nqp-rx | ||
| dduncan | that's what I had in mind | ||
| dukeleto | dduncan: then you are on the write track | ||
| right, even | |||
| dduncan | though my very first implementation will be in Perl 5 | 05:36 | |
| and then NQP will likely be the second | |||
| the language is designed from the start with both such uses in mind, and also implementations over SQL databases | |||
| dukeleto | dduncan: i am working on PL/Parrot, embedding Parrot in Postgres. you might be interested in that | 05:37 | |
| plparrot? | |||
| purl | plparrot is the postgres+parrot integration project or github.com/leto/plparrot | ||
| dduncan | sounds very interesting ... Postgres is my favorite SQL DBMS | ||
| dukeleto | dduncan++ | 05:38 | |
| dduncan | though ironically I haven't used it yet ... based more on what I know about it and what friends say | ||
| dukeleto | dduncan: PL/Parrot is a great reason to start ... | ||
| dduncan | since Muldis D is a SQL-alike language in terms of features, one challenge I may have with NQP is that I have a few data types and paradigms that are unlike common languages and so may not have a native Parrot type to map to | 05:39 | |
| for example, the "relation" (rowset) type | |||
| in Perl this is implemented naively as a set/array of hashes | |||
| now Parrot has native Array and Hash/etc, so I might have to do likewise here | 05:40 | ||
| what I read so far about Parrot didn't cover defining new collection types, so I'll have to look into the most elegant way to do this | 05:41 | ||
| on the other hand, defining all the operators should be quite straightforward | |||
| dukeleto | dduncan: it is reasonably easy to make your own data types | 05:50 | |
| pla? | |||
| purl | pla is probably really focusing on fast 2D data buffers | ||
| dduncan | I figured as much, just have to look into it | ||
| dukeleto | dduncan: this may be the best example of new data types: github.com/Whiteknight/parrot-linear-algebra | 05:51 | |
| diakopter | [somewhat OT, maybe] VM implementers: *very* interesting conversation about IE9's new JS engine. ecn.channel9.msdn.com/o9/ch9/2/7/8/...ok_ch9.mp4 | ||
| dukeleto | diakopter: any text transcript? | ||
| dduncan | hmm, yes, that does seem to be in the direction of what I may be trying to do | 05:52 | |
| high performance is good | |||
| a matrix and a relation are similar in some ways | 05:53 | ||
| diakopter | dukeleto: I don't see one, no | ||
| dduncan | part of a concern I have with my project, although it may be no trouble at all, is that I may be partly reinventing the wheel on some things Parrot provides ... | 05:57 | |
| mainly I speak to the native format of Muldis D code being a database | |||
| so when Muldis D string code (what people normally write) is parsed ... | 05:58 | ||
| it is turned into literal database tuples in a system catalog database, analagous to SQL's information schema | |||
| and then it is that data which is then compiled into Parrot instructions | |||
| so I can't exactly go straight from the string code to Parrot instructions like most languages | 05:59 | ||
| Austin | dduncan, it sounds like you need two different things: a string->tuple parser, and a tuple->parrot compiler. | ||
| dduncan | yes | 06:00 | |
| Austin | What's a tuple look like? | ||
| dduncan | now it would seem that NQP et al would do the first, sort of like generating a parse tree structure | ||
| it would likely do the second too though | |||
| a tuple looks like a Perl Hash | |||
| Austin | What's a tuple look like? | ||
| dduncan | or a SQL row | 06:01 | |
| Austin | Yeah, but with what contents? | ||
| Is it a particular 3-tuple (like most intermediate forms in compilers) or something else? | |||
| dduncan | the keys are always text strings, the values may be any value at all | ||
| a tuple may have N elements | |||
| Austin | Okay. | ||
| dduncan | like a SQL table may have N columns | ||
| Austin | Umm, yeah, but you usually fix the number of cols in the table once, and you're done. | 06:02 | |
| Is that true for the compiled form? | |||
| dduncan | let me think | ||
| in the general form, the number of columns in a tuple is not fixed ... but for tuples representing Muldis D code, the number of columns and their names and types are known at compile time | 06:04 | ||
| because the structure of the system catalog is system-defined and the users can't change it | |||
| Austin | Yowza. | ||
| dduncan | users can only change the structure of other databases that they define ... by updating the rows in the system catalog database | ||
| Austin | I'm looking at the stuff you put into Cpan. Does anyone actually use this? | 06:05 | |
| dduncan | I have no idea | ||
| Austin | Muldis-D, I mean, not cpan | ||
| dduncan | Muldis D is in development, so no one's using it yet ... | ||
| Austin | Okay. | 06:06 | |
| dduncan | but the Set::Relation module is complete and implements part of the language, and it might be in use by people | ||
| Austin | I'm reading this: search.cpan.org/dist/Muldis-D/lib/M...MD_STD.pod | ||
| That's the "string language" part you were talking about, right? | |||
| dduncan | yes | 06:07 | |
| diakopter | dukeleto: summary: IE9's JS engine compiles to native code, including js' RegExps, uses slot arrays in hidden classes for property access on the fast path and hashtable lookups when it needs to (polymorphic inline cache) fallback to the slow path. Each runtime object is essentially a void*, either a pointer to a small struct or a tagged integer or char. | ||
| dduncan | so PTMD_STD is what I expect people would write in when treating Muldis D like a normal language, and that is what I would be making a Parrot hosted implementation of | 06:08 | |
| Austin | Is this a university project? | 06:09 | |
| diakopter | On SunSpider, they're 1.15x as slow as Firefox 3.6beta1 and 2x as slow as Chrome 4dev | ||
| dduncan | no, its a personal project, though I fully intend it to go commercial and be supported by the company I own | ||
| Austin | Oh. | 06:10 | |
| dduncan | that said, it currently makes no income for me so I have to also seek other paid work to live on while I do it | ||
| I expect it will make income later | |||
| Austin | Sure. You might want to look at making the grammar a little more human-friendly. | 06:11 | |
| Is there a description of the database-tuple-language form of it? | 06:12 | ||
| dduncan | yes, mostly in the other files of the spec, especially Types_Catalog.pod | 06:14 | |
| that file describes the data structures that Muldis D string code would be parsed into | 06:15 | ||
| it describes the shape of the system catalog | |||
| a compiler would read those to generate the actual machine code that runs | |||
| to help explain with an example ... | 06:16 | ||
| the sample code at search.cpan.org/dist/Muldis-D/lib/M...nv_alt_syn ... | |||
| basically just a trivial function declaration | |||
| turns into the data structure shown at search.cpan.org/dist/Muldis-D/lib/M...de_as_data | |||
| Austin | So the types catalog (aforementioned) describes the various tuples, right? | ||
| dduncan | yes | 06:17 | |
| tuples and relations ... a relation is just a set of tuples, like a rowset | |||
| now unlike SQL, in Muldis D a tuple field value can itself be a tuple or relation | |||
| just like how Perl hashes can contain hash-refs etc | 06:18 | ||
| and so the catalog structure still sort of looks like normal code, sort of like a tree | |||
| and the string grammar takes it the rest of the way to fully look like normal code | |||
| Austin | I get the impression that the types catalog is essentially the syntax tree for multis. Is that so? | 06:19 | |
| dduncan | yes | 06:20 | |
| the catalog types are the native language syntax, and the string code is a human-friendly abstraction | |||
| Muldis D is homo-iconic, so all Muldis D code is also Muldis D data | 06:21 | ||
| so you get full introspection and runtime code generation or changing | |||
| a bit like SQL's information schema but you can update it too, and that's the native way to make schema changes | |||
| Austin | So converting string -> tuple -> PAST-> etc. would probably be the right way to go for Parrot. | ||
| dduncan | so I'm thinking | 06:22 | |
| I have to have the tuple step in order to have the data around to support the introspection/etc | |||
| Austin | That being the case, you probably want to bootstrap with some other string->tuple converter. | ||
| dduncan | if there was no system catalog, then that could be skipped | ||
| Austin | Like, write the tuples with P5, then read them with parrot, etc. | 06:23 | |
| dduncan | using any other language shouldn't be necessary | ||
| Austin | Sure, and you can implement any program with a really long magnetic tape. | 06:24 | |
| dukeleto | diakopter: that is some impressive speedup | ||
| dduncan | that said, I plan to implement Muldis D first using pure Perl 5, which is what the Muldis Rosetta module is | ||
| Austin | Yeah. | ||
| The string->tuple parsing and the tuple->parrot compiling are independent steps. Having one of the known-to-be-good while you develop the other seems like a faster development approach. | 06:25 | ||
| dduncan | once its working on Perl 5, then I'll evaluate how to do it in NQP/etc | ||
| yes, as you say | |||
| Austin | *one of the = one of them | ||
| If you can figure out a quick way of converting from tuples directly into PAST, you'll get the rest of it for free. | 06:26 | ||
| dduncan | well that is one part that has to be done built-in to the language, in order to support at-runtime code generation from user data | 06:27 | |
| Austin | Sure. | ||
| dduncan | at that time its all Parrot data to Parrot data | ||
| Austin | But, for example, regexes convert to code via PAST. | ||
|
06:28
JimmyZ joined
|
|||
| Austin | You can use your tuple->PAST->pir compiler on the fly. | 06:28 | |
| Just like regexes, etc. | |||
| ("eval", as it were) | |||
| dduncan | fyi, following Perl 6's STD.pm example, I will be writing as much as possible of Muldis D in Muldis D, so that part can also be done once and shared by the Perl 5 and Parrot and etc implementations | ||
| and the part that actually must be written in Perl 5 or NQP/etc can be minimized | 06:29 | ||
| Austin | Sounds good. | ||
| purl | rumour has it Sounds good. is there a good way for me to find out when branches are merged, other than read every svn commit | ||
| dduncan | of course, redundant parts will likely be made anyway to help performance, but that can be done after it simply works | 06:30 | |
| eg, Muldis D would let you define all the rational math ops in terms of integer math ops, but we'd likely have some redundancy shunting to Parrot's native numeric ops | 06:31 | ||
| anyway, thanks for the talk | 06:32 | ||
| Austin | np | ||
|
06:51
JimmyZ joined
07:04
dduncan left
07:10
JimmyZ joined
07:11
uniejo joined
07:23
davidfetter joined
07:35
TiMBuS joined
07:51
nopaste joined
07:55
fperrad joined
07:56
chromatic joined
07:59
barney joined
08:00
iblechbot joined
08:01
nopaste joined
08:08
slavorg joined
08:35
cotto joined
08:37
abqar_ joined
08:38
Zak joined
08:41
baest_ joined
08:42
preflex_ joined
08:43
gaz_ joined
08:44
allison joined,
jan joined
08:49
integral joined
08:50
ttbot joined
08:51
szabgab joined
08:53
TiMBuS joined,
fperrad joined
08:54
uniejo joined
|
|||
| dalek | a: 9155208 | fperrad++ | Makefile.in: remove staging |
09:12 | |
| a: c087e17 | fperrad++ | (24 files): remove libraries |
|||
| a: 3b2cf82 | fperrad++ | setup.pir: git submodule (t/lua-TestMore) |
|||
| a: a899688 | fperrad++ | setup.pir: clean Test/More.lua |
09:24 | ||
|
09:26
nopaste joined
09:43
mikehh joined
10:20
zak_ joined
10:22
lucian joined
10:35
bacek joined
10:41
nopaste joined
10:51
nopaste joined
11:18
payload joined
11:36
theory joined
11:48
cognominal joined
11:51
nopaste joined
11:58
cconstantine joined
12:08
payload joined,
bluescreen joined
12:14
cconstantine joined
|
|||
| dalek | kudo: b5d7e51 | pmichaud++ | docs/ChangeLog: Update ChangeLog for release. |
12:26 | |
| kudo: 6e6a5ac | pmichaud++ | docs/announce/2009-11: Add 2009-11 announcement draft. |
|||
| kudo: 40b555d | pmichaud++ | docs/ChangeLog: Oops, named argument binding to positional parameters was already done. |
|||
| kudo: b1a2db7 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 453 files, 32753 (85.5% of 38318) pass, 5 fail S02-lexical-conventions/unicode.rakudo aborted 5 test(s) S06-signature/named-parameters.rakudo passed 81 unplanned test(s) |
12:32 | ||
|
12:39
payload1 joined
12:43
bluescreen joined
12:54
ruoso joined
|
|||
| dalek | kudo: c5c2aae | pmichaud++ | docs/announce/2009-11: Update 2009-11 announcement with latest spectest numbers. |
12:56 | |
| kudo: 0fd222b | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to Parrot's 1.8.0 release. |
|||
|
13:33
payload joined
13:36
tetragon joined
13:43
payload joined
13:56
mikehh joined
14:03
tetragon joined
14:08
whiteknight joined
14:20
allison joined
|
|||
| whiteknight | good morning #parrot | 14:25 | |
|
14:26
iblechbot joined
14:34
allison joined
|
|||
| cconstantine | 'mornin | 15:00 | |
| whiteknight | hello cconstantine | 15:02 | |
| cconstantine | another day of staring at bit-tables | ||
| whiteknight | lucky | 15:06 | |
| I would be much happier doing some bittwiddling | 15:07 | ||
|
15:10
Psyche^ joined
15:24
payload joined
|
|||
| cconstantine | hehe, yeah... life is rough | 15:30 | |
|
15:36
lucian joined
|
|||
| Coke | IWBNI someone did the magic to add pmtcl to the updates here. | 15:39 | |
| moritz | is it on the Languages wiki page? | 15:40 | |
| Coke | pmichaud: can I get a commit bit to pmichaud/pmtcl ? | ||
| no, that's the magic. =-) | 15:44 | ||
| pmichaud | Coke: yes, or we can clone it into the partcl account if you wish | 16:01 | |
|
16:03
patspam joined
|
|||
| Coke | that would be somewhat spiffy. | 16:03 | |
| moritz | Coke: just log in with the partcl account and fork at | 16:05 | |
| and then add pmichaud as a commiter | |||
| Coke | I just gave pmichaud the partcl password because I am still gitn00b. | ||
| moritz | or that :-) | 16:06 | |
| pmichaud | I'm about to move the repo... but $otherjob just called so taking care of it first | 16:15 | |
| nopaste | "coke" at 72.228.52.192 pasted "for pmichaud" (29 lines) at nopaste.snit.ch/18768 | ||
| pmichaud | Coke: weird... will look at it shortly | 16:16 | |
|
16:20
darbelo joined
|
|||
| pmichaud | Coke: have a better name for this besides pmtcl? I just went with that out of habit and because I couldn't think of a better name immediately :) | 16:23 | |
| or perhaps we should take the pmtcl source and move it into the partcl repo? | |||
| Coke | probably best to keep it a separate repo for now, given how different it's going to be, but partcl/<foo> is ok. ... pmtcl... nqtcl ? tcl-ng ? I think the goal is, if we adopt it to eventually make this code be partcl/partcl/master | 16:25 | |
| pmichaud | agreed | ||
| I thought about nqtcl :) | |||
| Coke | +1, then. | ||
| nqt, even. | |||
| (nicked?) | 16:26 | ||
| pmichaud: ah. I think braced_word needs to allow for nested braces. | 16:33 | ||
| I think it's parsing { { } } as "{ { }" and "}" | |||
| does nqp-rx have something like <PGE::Text::bracketed: {}> | 16:34 | ||
| ? | |||
| pmichaud | Coke: oh, yes, you're right | 16:42 | |
| No, we don't have PGE::Text::bracketed, but we can write it. | |||
| dalek | tracwiki: v109 | darbelo++ | Languages | 16:43 | |
| tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff | |||
| darbelo | Crap. Forgot to add a comment to the changes. | 16:44 | |
| Coke | pmichaud: hurm. might be sufficient to make that a recursive rule? (www.perlmonks.org/index.pl?node_id=179555 seems to suggest this.) | 16:45 | |
| pmichaud | something like that, yes. | ||
| okay, repo created as partcl-nqp for now. (Feel free to rename it to something else if you want.) | 16:46 | ||
| Coke | nah, 'sfine. | 16:47 | |
|
16:47
hercynium joined
|
|||
| pmichaud | I think I have a braces fix in place | 16:51 | |
| (have to wait for parrot to rebuild first) | |||
| Coke | cannot build partcl-nqp. | 16:52 | |
| fixing... | |||
| purl | somebody said fixing was good, definitely. | ||
| pmichaud | oh, yeah | 16:53 | |
| src/gen doesn't get created in time | |||
| in rakudo and nqp-rx we just have a empty src/gen in the repo | 16:54 | ||
| for this I tried to dynamic create it but failed | |||
|
16:54
iblechbot joined
|
|||
| moritz | just put a .gitignore in it | 16:54 | |
| containing a * | 16:55 | ||
| pmichaud | oh, that's good. I've been putting IGNORE in it. .gitignore makes more sense | ||
| In general I tend to do a single .gitignore at the root | |||
| moritz | then it's always there, and the contents are automatically ignored | ||
| pmichaud | right | ||
| .gitignore +1 | |||
| braced_word fix pushed | |||
| actually, I think I'd just do .gitignore where its contents are .gitignore | 16:56 | ||
| it's not always the case that I want to ignore everything in src/gen/ | 16:57 | ||
| moritz | what do you not want to ignore in there? | ||
| pmichaud | I'd like to know if files are being generated / left there that I'm not aware of. | 16:58 | |
| it's nice if "git status" shows me those | 16:59 | ||
| (and then I explicitly ignore the ones that are 'okay') | |||
| moritz | good point | ||
| Coke | pmichaud: bah. I have a patch that just fixes deps on src/gen so it's created properly, but I can't push it. | 17:00 | |
| pmichaud | Coke: did you commit the patch? | ||
| nopaste | "coke" at 72.228.52.192 pasted "for pmichaud" (36 lines) at nopaste.snit.ch/18769 | 17:01 | |
| pmichaud | also, I didn't add you as a committer yet to the new repo :) | ||
| Coke | no, but I did. =-) | ||
| pmichaud | okay | ||
| Coke | if that looks sane to you, go ahead and apply it. | ||
| pmichaud | okay, you committed, so next do "git pull" to bring your repo in sync with the remote master | ||
| Coke | already did that. | ||
| pmichaud | so what happens with "git push" then? | 17:02 | |
| Coke | $ git push | ||
| Enter passphrase for key '/Users/coke/.ssh/id_rsa': | |||
| Permission denied (publickey). | |||
| fatal: The remote end hung up unexpectedly | |||
| pmichaud | hmmm | ||
| Coke | (*@#&$#@$ | ||
| nevermind, it's pushed. =-) | |||
| pmichaud | when you cloned, did you use the git@github.com:partcl/.... url? | ||
| or the http: one? | |||
| okay, good. | 17:03 | ||
| Coke | git. I was entering the wrong pp. | ||
| pmichaud | aha | ||
| yes, I see it in the repo now. | |||
| Coke | <- idiot. | ||
| pmichaud | okay, I want to rework the variable handling a bit more, then I'll do eval, then I suspect the #perl6 crowd would like to see a few commits from me over there :) | ||
| also it'll be time for lunch :) | 17:04 | ||
| btw, I'm *totally* okay with us renaming the "PmTcl" bits to something else -- again, I was just throwing something together at the outset | |||
| Coke | pmichaud: another bug. two procs back to back, the second proc is passed into the first one. | 17:07 | |
| ;(guessing that the closing } of the last word of the first command is not terminating the command. | |||
| (er, well, the newline immediately after it should be doing that.) | |||
| (PmTcl) even pmtcl would be nicer so I can avoid shifting. =-) | 17:08 | ||
| pmichaud | that's fine too :) | ||
| any name you prefer | |||
| Coke | but I may rename them to just 'tcl' at some point. | ||
| pmichaud | that works | ||
| that probably makes the most sense | |||
| I did "PmTcl" just because I didn't know if/when we'd be merging it into the existing 'Tcl' code | |||
| dalek | rrot: r42583 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] the 3rd parameter of 'install' is now optional |
||
| nopaste | "coke" at 72.228.52.192 pasted "for pmichaud" (21 lines) at nopaste.snit.ch/18770 | 17:09 | |
| pmichaud | ...weird | ||
| oh! | 17:10 | ||
| one of my other fixes didn't get committed | |||
| oops. | |||
| Coke | I don't see that command has a \\n check. | ||
| pmichaud | right | ||
| I did that earlier today... but I guess I didn't commit? | |||
| just a sec | |||
| Coke | yay, it's kind of making sense now. =-) | ||
| pmichaud | ah, I didn't push. | 17:11 | |
| okay, I'll just re-apply the patch. | |||
| pushed. | 17:14 | ||
| Coke | added partcl-nqp to dalek's list. | ||
| pmichaud | see if that fixes things. | ||
| Coke | yay. no more compiletime errors on test_more.tcl | 17:15 | |
| pmichaud++ | |||
| pmichaud | yeah, but it seems to be missing some stuff in the target=pir output | ||
| at least on this end :( | |||
| looking. | |||
| it's only parsing the one command. | 17:16 | ||
| ah | 17:17 | ||
| it doesn't know what to do with multiple newlines or separators | |||
| there. | 17:18 | ||
| pushed. | 17:20 | ||
| Coke | the code inside a proc is not executed anymore it seems. | ||
| pmichaud | ? | 17:21 | |
| argggh, another command separator bug | |||
| nopaste | "coke" at 72.228.52.192 pasted "for pmichaud" (7 lines) at nopaste.snit.ch/18771 | 17:22 | |
| Coke | Isn't tcl fun? =-) | ||
| <duck> | |||
| pmichaud | Perl 6 is harder. | ||
| :-) | |||
| Coke | no doubt. | 17:23 | |
| ah. yah, this works: | |||
| proc skip_all {} {puts 1..0;}; skip_all | |||
| pmichaud | right -- it's looking for an explicit terminator | 17:24 | |
| eos is a valid terminator at the end | |||
| Coke | just adding a * after the ;\\n check seems to work. | ||
| pmichaud | except that will allow zero command separators | 17:25 | |
| Coke | ah, right, want to alternate with $$ ? | ||
| pmichaud | $ | ||
| but that causes another issue | |||
| because we end up with an infinite loop | |||
| Coke | sounds like a good time for me to grab lunch. =-) | 17:26 | |
| pmichaud | yes, likely :) | ||
| dalek | rrot: r42584 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] add a step 'update' |
17:32 | |
| whiteknight | lunch does sound very good | 17:36 | |
| but I'm stuck in a stupid video conference | |||
| pmichaud | afk, lunch | ||
| (pushed fix to partcl-nqp) | 17:37 | ||
| dukeleto | 'ello | 17:39 | |
| dalek | kudo: d351043 | jnthn++ | docs/ (2 files): Tweak the release announcement and change log to clarify what the nested siggies thing really is. |
17:44 | |
| whiteknight | hello | ||
| dalek | kudo: b237f9c | masak++ | docs/announce/2009-11: [docs/announce/2009-11] filled in the name "Lisbon" |
17:49 | |
| Coke | pmichaud: added support for "" | 17:53 | |
| if an hllcompiler dies with a panic, how can I see what it was thinking at that point? add more panics? | 17:54 | ||
| whiteknight | it was thinking "panic!" | 17:57 | |
| Tene | panic("The world is so horrible... and all the diodes in my left side hurt.") | ||
| nopaste | "coke" at 72.228.52.192 pasted "message pmichaud" (6 lines) at nopaste.snit.ch/18773 | 17:58 | |
| Coke | here I am, brain the size of a planet. | ||
| so, can anyone here help me diagnose why that fails? =-) | |||
| dukeleto | Coke: i can try | 18:03 | |
| Coke | partcl-nqp is at github under partcl/ , nopaste shows the issue. | ||
| dukeleto++ | |||
| dalek | lscript: 867f3fb | fperrad++ | (5 files): remove Configure & Makefiles |
18:14 | |
| kudo: 1db377a | masak++ | docs/ChangeLog: [docs/ChangeLog] added a few more changes |
18:18 | ||
| lscript: ac7db73 | fperrad++ | .gitignore: update .gitignore |
18:20 | ||
|
18:20
lucian joined
18:23
payload joined
|
|||
| dalek | kudo: f5065b6 | masak++ | docs/release_guide.pod: [docs/release_guide.pod] rolled releases forward |
18:24 | |
| pmichaud | back from lunch | 18:38 | |
| whiteknight | w00t | ||
| Tene | yay lunch | 18:42 | |
|
18:49
amire80 joined
|
|||
| pmichaud | Coke: fix for {{r ""}} pushed. | 18:50 | |
| amire80 | Hi. I added the RSS for www.rakudo.org to Google Reader and the newest item is from Mar 2, 2009. | ||
| pmichaud | amire80: yes, we know. :-| | ||
| Coke | hurm. dalek hasn't picked up partcl-nqp. wonder if I put it in wrong. | 18:51 | |
| amire80 | pmichaud: Isn't it supposed to be a very easy thing to fix? | ||
| pmichaud | amire80: we've reported the problem numerous times to the site administrator; and we've not been able to get sufficient access to fix it ourselves. | ||
| (and we've not invested the energy to see about moving to a new site) | |||
| amire80 | pmichaud: Oh well. Thanks for the quick reply! | 18:52 | |
| pmichaud | perhaps we should disable that rss feed link altogether | ||
| since it doesn't work | |||
| PerlJam | I wonder if that's something you can fix as a Drupal admin or if you actually need to ssh in. | 18:54 | |
| pmichaud | I think we have to get an extension installed | ||
| PerlJam | Hrm. masak's announcement isn't on rakudo.org | 18:55 | |
| pmichaud | feel free to post it :) | ||
| or to check with him about posting it :) | |||
| Coke | pmichaud: whee. test_more.tcl now parses. | 19:03 | |
| pmichaud | yay | ||
| Coke | (runs even, but all it does is define a bunch of procs, so nothing happens. =-) | ||
| dalek | nxed: r180 | julian.notfound++ | trunk/examples/parser.winxed: parser example: now is able to compile a simple addition |
19:05 | |
|
19:05
joeri joined
|
|||
| nopaste | "coke" at 72.228.52.192 pasted "backslash newline substitution.." (6 lines) at nopaste.snit.ch/18774 | 19:06 | |
| Coke | pmichaud: fyi. I'll see if I can fix it later. (just the first thing I found trying to run an actual .t) | 19:07 | |
| (I will of course be very happy if you fix it. =-) | |||
|
19:08
chromatic joined
|
|||
| Coke | tcl_misc.t has a bunch of things that might be confusing, btw. (like a bare $) | 19:11 | |
| (and the {*} syntax) | |||
|
19:16
mokurai joined
|
|||
| pmichaud | I can do a quick fix for comments | 19:18 | |
| pushed. | 19:21 | ||
| cotto_work | pmichaud, are there any plans to allow :main subs in nqp so pure-nqp programs can work with cli args? (I know about plumage's approach.) | 19:23 | |
| PerlJam | nqp already supports INIT {}, MAIN {} can't be that much more trouble :) | 19:24 | |
| pmichaud | PerlJam: yeah, except we'd want it to be a sub. | ||
| and in Perl 6 semantics, MAIN is actually run *after* the mainline code, not instead of | |||
| so far I'm kind of liking plumage's approach | 19:25 | ||
| in a couple of places I've just done @*ARGS = getinterp[2] | |||
| er | |||
| in a couple of places I've just done @*ARGS = pir::getinterp[2] | |||
| cotto_work | That'd work. | ||
| (also, it's nice to know that that syntax works) | 19:26 | ||
| pmichaud | it only works as of last night | ||
| (I think I committed that change... checking) | |||
| oops, I did not commit that change. | |||
| cotto_work | npq-rx redefines "moving target" | 19:27 | |
| pmichaud | not at all. This is just a new feature :-) | ||
| cotto_work | Yes. I definitely appreciate that once a feature works and has tests, it's pretty safe to rely on it. | 19:28 | |
| pmichaud | okay, the following definitely works for now | ||
| my @ARGS := pir::getinterp__P[2] | |||
| PerlJam | It's still a moving target. But at least it's moving in a consistent direction at a consistent speed. | ||
| pmichaud | I'll want to get rid of that __P part. | ||
| cotto_work | pmichaud, so that works currently? | ||
| pmichaud | I'm pretty sure it does -- checking | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "pir::getinterp__P works" (13 lines) at nopaste.snit.ch/18775 | 19:30 | |
| pmichaud | so far I like this approach a bit better than having boilerplate in every NQP module that tries to set up an @ARGS variable | 19:32 | |
| er | 19:33 | ||
| than having NQP generate boilerplate in every output PIR/PBC that tries to set up an @ARGS variable | |||
| I think having it explicit works out slightly better | |||
| I've also been toying with the idea of having "sub foo is main { ... }" to designate subs to be flagged with :main.... but I haven't quite figured out how that should work yet. | 19:34 | ||
| cotto_work | getinterp__P works fine for me | 19:35 | |
| whiteknight | pmichaud: more perl6-ish might be "sub foo is pir::main { ... }" | 19:37 | |
| pmichaud | oh, "is main" isn't too bad, it's just a trait | ||
| pir::main should be a call to the pir::main opcode | 19:38 | ||
| moritz | sub foo is pir<main> { } | ||
| whiteknight | ah, yes | ||
| I obviously don't know all the syntax. I'm trying to think of a way to prefix it with a namespace so you don't add syntax to NQP that's not part of Perl6 | 19:39 | ||
| pmichaud | it's really not a problem, since in Perl 6 you're allowed to define custom traits | ||
| so, our "use pir;" module in Perl 6 would likely know how to handle the 'main' trait on subs. | 19:40 | ||
| whiteknight | ok | 19:45 | |
| whiteknight has just created the most convoluted system to convert ASCII characters into their decimal number equivalents ever | |||
| chromatic | sprintf? | 19:46 | |
| purl | sprintf is the only sane way to do fixed width numeric printing or the floating point version of the long distance phone company or ok. i was doing a bunch of pack/unpack recently so it is fresh | ||
| diakopter | it? | 19:47 | |
| purl | it is not current | ||
| whiteknight | here's a hint: it involves a serial cable, a celluar modem, a VPN, a server in Texas, and a database server in Chicago | ||
| particle | if you ask me, the modem is cheating. | ||
| whiteknight | I was trying to teach the embedded system to send smoke signals | 19:48 | |
| particle | hcf | ||
| whiteknight | or to use emac's Meta+Ctrl+Butterfly | ||
| like a real programmer | |||
| NotFound | whiteknight: Maybe is you who's smoking something? ;) | ||
| whiteknight | haha, entirely likely | ||
| and much to my disappointment, not a single damn step in this chain involves Parrot | 19:49 | ||
| pmichaud | Coke: I've now pushed 'eval' and 'if/then/elsif/else'. | 19:52 | |
| I'll probably start to refocus on rakudo a bit soon, but will gladly answer questions or prototype new features or fix easyish bugs :-) | 19:54 | ||
| diakopter | eval??!? in nqp-rx? | ||
| oh. tcl | |||
| pmichaud | eval already exists in nqp-rx | 19:55 | |
| NQP::Compiler.eval('something') | |||
| diakopter was unawares | |||
| diakopter ponders how to implement that | |||
| pmichaud | it doesn't handle lexically scoped values yet... but I'm not sure nqp wants to be doing that anyway :) | ||
|
19:57
fperrad_ joined
|
|||
| whiteknight | does NQP::Compiler.eval() allow you to specify the language? | 19:57 | |
| or do you have to manually create the new compiler automatically? | 19:58 | ||
| s/automatically// | |||
| NotFound | $ ../../parrot primes.pasm | 20:00 | |
| N primes up to 5000 is: 669 | |||
| last is: 5001 | |||
| $ ./primes | |||
| N primes up to 5000 is: 669 | |||
| last is: 4999 | |||
| Is this expected? | |||
| The "last is" different result. | |||
| cotto_work | NotFound, sounds buggy | 20:05 | |
| NotFound | The .pl says the same as the .c | 20:06 | |
|
20:06
bacek joined
|
|||
| cotto_work | hi bacek | 20:07 | |
| whiteknight | NotFound: how is it getting different results? | 20:08 | |
| that definitely doesn't look right | |||
| cotto_work | it's probably an implementation bug | ||
| NotFound | whiteknight: just by running it. | ||
| whiteknight | urg | ||
| I don't think that should be | |||
| NotFound | And adjusting the top number in the other versions, of course. | 20:09 | |
| PacoLinux is doing a primes.winxed and checking his results I noticed that. | 20:10 | ||
| pmichaud | NQP::Compiler.eval() assumes you're wanting to compile an NQP program (otherwise you wouldn't be sending it to NQP::Compiler :) | 20:13 | |
| it also assumes that the NQP::Compiler has been loaded, which might not be the case for separately compiled modules | |||
| I've been thinking that Parrot.eval(...) might be able to handle separate languages, though. At least, that's somewhat what Tene++ and I have been aiming towards | |||
| it might also end up being pir::compreg('Parrot').eval('...code...', :lang<OtherLang>) | 20:14 | ||
| where the Parrot compiler object knows how to automatically load OtherLang as needed. | |||
| or perhaps it'll be Parrot::Compiler.eval(...) | 20:15 | ||
| we're still working out the API we'd like to have/use. | |||
| or perhaps we end up using pir::load_language somehow. | |||
| nopaste | "pmichaud" at 72.181.176.220 pasted "[source] command in partcl-nqp (for Coke++)" (12 lines) at nopaste.snit.ch/18776 | 20:23 | |
| pmichaud | what's really scary is that nopaste #18776 is just a four-line change. :) | 20:24 | |
| cotto_work | So the takeaway is that npq-rx is a system that allows pmichaud to write new compilers really quickly. ;) | ||
| pmichaud | that's the takeaway at present, yes. | ||
| my next trick will be to write sufficient documentation so that others can use nqp-rx to write compilers really quickly. :) | 20:25 | ||
| now if only I could write the sufficient documentation really quickly | |||
| hey! | |||
| I know! | |||
| since I can write compilers quickly in nqp-rx, I should write a compiler that generates the documentation and tutorial! | |||
| that should speed up the process a lot, I guess. :-) | 20:26 | ||
| NotFound | You can write an AI that develops compiler based on a vague description ;) | 20:28 | |
| "I want an object oriented mixture of Cobol and Forth", for example X-) | 20:29 | ||
| cotto_work | pmichaud, I'd almost not put it past you. | ||
| japhb | NotFound, I believe both of them have had OO bolted on, but I'd guess WILDLY different ways of looking at OO. | 20:34 | |
| pmichaud | afk, kid pickups | 20:35 | |
| japhb | For that matter, there's IIRC over a dozen different ways that OO has been bolted on to ANSI FORTH, let alone all the Forth-like languages ... | ||
| NotFound | japhb: IAs are supposed to handle difficult tasks, isn't it? | 20:36 | |
| s/IA/AI | 20:37 | ||
| But maybe that's a lot hard than beating Kasparov at chess. | 20:39 | ||
| japhb | NotFound, well, I was just reading about IBM having computationally simulated the cortex of a mammalian brain more complex than a cat, so I guess we only have another couple decades before we can have an AI smart enough to tell you to "PUT DOWN THE COMPILERS AND BACK AWAY" | ||
| NotFound | Daisy, Daisy... | 20:40 | |
| Tene | whiteknight: NQP-rx is written in NQP. | ||
|
20:40
kthakore joined
|
|||
| kthakore | chromatic: around? | 20:40 | |
| whiteknight | Tene: I know | ||
| kthakore | hi calculus !!! | 20:41 | |
| Tene | whiteknight: "That's no small feat for a program written in the Parrot equivalent of assembly language." | ||
| japhb | The IBM announcement makes me think about Accelerando: If they can simulate a cat slower than real time, could they simulate a lobster faster than real time? | ||
| kthakore | japhb: lol | ||
| japhb: nice question | |||
| particle | ibm's new artificial lobster is as fast as ten fast lobsters! | ||
| japhb | particle, LOL | 20:42 | |
| NotFound | That remind me the joke: The new Cray can finish an infinite loop in less than minute. | ||
| japhb | "Lower chance of losing skin to a random claw, but more chance that you won't be able to afford the electric bill." | ||
| whiteknight | NQP is written in PIR for stage 0 bootstrapping | ||
| diakopter | NotFound: but how fast can a minute finish it? | 20:43 | |
| whiteknight | there's no way it can just be written in itself all the way down | ||
| particle | why on earth isn't nqp called turtle? | ||
| japhb | NotFound, in my mind the coolest Crays will always be the immersively cooled ones | ||
| particle, Because turtle is a fun language all its own | 20:44 | ||
| (well, turtle graphics for logo, technically) | |||
| whiteknight, what, you mean like C? | |||
| Tene | whiteknight: nqp-rx is written in nqp, and uses a precompiled version of itself to compile itself. | 20:45 | |
| whiteknight | japhb: yes, and C compilers have (or at least had) a bootstrapping stage at one point | ||
| Tene | whiteknight: it used old NQP to start the bootstrapping, iirc. | ||
| whiteknight | Tene: okay, then I was mistaken. I was under the impression that its stage 0 was written in PIR | ||
| NotFound | whiteknight: maybe they just used a flux condenser. | ||
| Tene | whiteknight: I could be wrong. :) | ||
| whiteknight | It's really not that big a deal | 20:46 | |
| moritz | I know that PGE was involved; not sure about NQP | ||
| japhb | whiteknight, the stage 0 is compiled NQP. | ||
| whiteknight | okay. I was wrong then | 20:47 | |
|
20:59
bluescreen joined
21:04
theory joined
21:05
lucian joined
|
|||
| Coke | pmichaud++ | 21:05 | |
| pmichaud | PGE and old NQP were used in the writing of nqp-rx, but they're no longer used | 21:07 | |
| the "stage 0" is a precompiled version of nqp | |||
| there no longer exists a set of files that can get you directly from pge/nqp-rx to the current nqp, except for what's in the repository history. | 21:08 | ||
| sorry | |||
| pge/nqp to the current nqp-rx | |||
|
21:12
davidfetter joined
|
|||
| Coke almost wants "svn up" to do "git pull" if I'm in a .git dir. :P | 21:13 | ||
| darbelo is pretty sure that can actually be done with a few clever aliases. | 21:14 | ||
| Coke | I suspect I'd end up shooting mysefl in the foot with it. =-) | ||
| Tene | Coke: write a script to do it. | 21:15 | |
| Coke | tene;yes, I could wrap 'svn' or create a new command. easier to just whinge once here and get over it. =-) | ||
| Tene | svn() { [ -d .git ] && git pull || svn $@ } | 21:16 | |
| might do it. | |||
| Coke | pmichaud: $ by itself is a word. is there a way to tell <variable> to leave that alone? | ||
| pmichaud | Coke: better is to recognize $ by itself | ||
| Coke | ok. will add that to <word> | ||
| japhb | Coke, Tene: Or go the old RCS route and make the usual second-level commands (commit, log, etc.) just be top-level scripts of their own. Instead of "git commit" or "svn commit" it's just "commit" | 21:17 | |
| pmichaud | is $ by itself a word only when it's standalone? | ||
| or can it occur in the midst of other characters? | |||
| japhb | Or if you really want to namespace them, call the top level script 'vcs' or somesuch generic thing | ||
| Tene | I never have problems getting confused between vcs programs, so wouldn't be much utility for me. | 21:18 | |
| japhb | Code from the "vcs mode" of most free editors ought to supply all the brains to be cover the set of common actions. | ||
| Coke | pmichaud: in the midst of other characters, you'd probably try to parse it as variable interpolation. | ||
| japhb | Tene, sorry. I'm in a bikeshed mood today. Sheesh. | 21:19 | |
| Coke | might work as a trailing char... | ||
| pmichaud | Coke: I'm asking mainly about something like $+3 | ||
| Tene | japhb: :) | ||
| darbelo | japhb: Opera Mauve! | ||
| Coke | pmichaud: "+3" is a valid variable name. | 21:20 | |
| japhb | "Oh. So *that's* puce." | ||
| Coke | also, asdfasdf$ seems to be reasonable. | ||
| darbelo | Pontificia Universidad Catolica del Ecuador? What's that got to do with bikesheds? | 21:21 | |
| ;) | |||
| Coke | pmichaud: ah, but $+7 is parsed as a literal and not interpreted. | ||
| pmichaud | Coke: not according to the syntax it's not a valid variable | ||
| Coke | % set +7 8 ; puts ${+7} | 21:22 | |
| 8 | |||
| pmichaud | it has to be letters, digits, underscores, or namespace separators | ||
|
21:22
theory_ joined
|
|||
| pmichaud | ${...} is different | 21:22 | |
| Coke | (that from an an 8.4 tcls) | ||
| pmichaud | variable should learn to parse ${...} | ||
| Coke | right, {} is special. | ||
| pmichaud | we don't want to treat it as separate $ and {...} words | ||
| Coke | my problem right ATM is that '$' all by itself is allowed. (just trying to get through tcl_misc.t) | 21:23 | |
| pmichaud | okay | ||
| Coke | pushing... | ||
| purl | i guess pushing is the answer | ||
| pmichaud | but I suspect we want to add it to quoted_atom and bare_atom rather than a separate word | ||
| because it can be a part of a larger word | 21:24 | ||
| Coke | once we can pass some tests, it'll be more obvious how to fix the edge cases, I think. | 21:25 | |
| pmichaud | oh, I think I have the answer | ||
| editing/pushing | |||
| ah, yes, it's pretty much what you did | 21:26 | ||
| Coke | set a [] is legal. | ||
| pretty sure it's the same as ;; | 21:27 | ||
| pmichaud | pushed. | 21:28 | |
|
21:28
payload joined
|
|||
| pmichaud | I'm guessing that | 21:29 | |
| token quoted_atom:sym<[ ]> { '[' ~ ']' <command> } | |||
| should be | |||
| token quoted_atom:sym<[ ]> { '[' ~ ']' <script> } | |||
| perhaps. | |||
| are semis allowed in the brackets? | |||
| Coke | % puts [;;;;;;] | 21:30 | |
| pmichaud | aha | ||
| "To do this it invokes the Tcl interpreter recursively to process the characters following the open bracket as a Tcl script. | |||
| *script* is right :) | |||
| I'll let you make that change. Don't forget to update the Actions.pm file | |||
| (haev to go pick up daughter) | 21:31 | ||
| bbiab | |||
| Coke | ... otherwise it'll blow up when you try to run a null command. =-) | ||
|
21:35
payload joined
|
|||
| pmichaud | (back) | 21:39 | |
| Coke: I also think I've come up with a scheme to precompile (constant) proc definitions at compile-time. | 21:40 | ||
| Coke | pmichaud: that would be spiffy, keeping in mind we need to allow non-compiling procs to explode only at runtime. | ||
| pmichaud: (I made a change from <command> to <script> and am now trying to find where the AST is going blam. | 21:41 | ||
| Method 'ast' not found for invocant of class 'Undef' | |||
| current instr.: 'parrot;PmTcl;Actions;bare_atom:sym<[ ]>' pc 10186 (src/gen/pmtc | |||
| l-actions.pir:650) | |||
| pmichaud | did you also change | 21:42 | |
| token quoted_atom:sym<[ ]> { '[' ~ ']' <command> } | |||
| ? | |||
| and | |||
| token bare_atom:sym<[ ]> { '[' ~ ']' <command> } | |||
| oh, wait, I'm in wrong file | |||
| method quoted_atom:sym<[ ]>($/) { make $<command>.ast; } | 21:43 | ||
| method bare_atom:sym<[ ]>($/) { make $<command>.ast; } | |||
| those need to e changed also | |||
| *be | |||
| (in general each rule in the grammar has a corresponding method in the actions) | |||
| Coke | ah, and that is exactly where the parrot backtrace was pointing, now that I read it right. | 21:44 | |
| PerlJam | pm: What's with the load_bytecode at the top of pmtcl's Grammar.pm? | 21:45 | |
| pmichaud | it's loading in the HLL compiler library | ||
| Coke | how do you say defined() in nqprx? | ||
| pmichaud | you shouldn't need to test for defined() | 21:46 | |
| you should just be able to s/command/script/ | |||
| Coke | I'm getting an error that an Undef is being passed in, so I'm trying to check for definedness. | ||
| pmichaud | the problem is that $<command> no longer exists, because we changed <command> to <script> in the rule | ||
| so now we need to look in $<script> | |||
| Coke | ... OH | ||
| [headplant] | |||
| PerlJam | pm: sure, but what does that mean? :) what requires HLL.pbc in that file? | 21:47 | |
| pmichaud | PerlJam: what line immediately follows the load_bytecode ? | ||
| PerlJam | okay, then why doesn't Actions.pm also need such a line? | 21:48 | |
| pmichaud | because it was already loaded by Grammar.pm, which comes first. | 21:49 | |
| we could put it in Actions.pm also, but it'd be redundant. | |||
| PerlJam | okay, so you are relying on load order | ||
| pmichaud | yes. | ||
| diakopter | Coke: pir::isa__IPS($obj, 'Undef') | 21:50 | |
| PerlJam | or you could put it in PmTcl.pir, right? | ||
| pmichaud | PerlJam: yes, I could do that | ||
| eventually I'm hoping to find a good way to eliminate the .pir file, though. | 21:51 | ||
| PerlJam | make it all nqp? | ||
| pmichaud | haven't decided if the answer is pir::include(...), or what. | ||
| yes, make it all nqp | |||
| (non-compiling procs explode at runtime) yeah, that part's a bit tricky I guess | 21:54 | ||
| dalek | nxed: r181 | julian.notfound++ | trunk/examples/parser.winxed: first step of register allocator in parser example |
||
| Coke | pmichaud: set a [;] yields set("a", ) # BOOM. where do I want to make an empty word return "" instead of nothing? | 21:55 | |
| pmichaud | what should it yield? | ||
| oh, I see. | 21:56 | ||
| inside of method script($/) | |||
| we probably want | |||
| (typing) | |||
| nopaste | "pmichaud" at 72.181.176.220 pasted "handle empty script (for Coke)" (8 lines) at nopaste.snit.ch/18778 | 21:57 | |
| pmichaud | which puts commands into the Stmts node if there are any, otherwise it puts in a constant "" (which means the result of the stmts will be a constant "") | 21:58 | |
| Coke | pmichaud++ | ||
| PerlJam | pm: What happens if you just don't do the push? | 22:00 | |
| pmichaud | then the stmts node doesn't have a result, and you get what Coke mentioned above | 22:01 | |
| "set"("a", ) # BOOM | |||
| PerlJam | ah | ||
| pmichaud | with the result, we'll get "set"("a", "") # no BOOM | ||
| Coke | that gets us through everything up to the {*} syntax in tcl_misc.t | 22:02 | |
| pmichaud | nice | 22:03 | |
| okay, let me look at {*} a bit | |||
| (scary to think that Perl 6 also has a {*} ) | |||
| particle | there are no new ideas. | ||
| Coke | pushed | ||
| pmichaud: it's kind of a compile time eval. sort of. | 22:04 | ||
| www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M9 | 22:05 | ||
| pmichaud | yeah, that's what I'm reading now | ||
| Coke | whee! | ||
| pmichaud | okay, stepping through this one piece at a time... | 22:06 | |
| PerlJam wonders what the consequences of lowering the barrier to creating compilers will be. | |||
| pmichaud | if a word starts with {*}, then we remove the {*} and parse the rest | ||
| that part I get | |||
| the substitutions happen immediately? | 22:07 | ||
| so that {*}[eval 3+5] is the same thing as {8} ? | |||
| Coke | s/eval/expr/, and yes. | ||
| pmichaud | er, yes, expr | ||
| and having done the substitution, we re-parse that for words? | 22:08 | ||
| but we don't substitute it | |||
| so we just split it up into whitespace | |||
| NotFound | PerlJam: You mean the new nqp, or parrot in general? | ||
| PerlJam | NotFound: both really. Parrot could be the universal substrate, and NQP the build-a-language tool. | 22:09 | |
| dalek | nxed: r182 | julian.notfound++ | trunk/examples/parser.winxed: add operator * to parser example, to see precedence working |
||
| pmichaud | Coke: I can't seem to get it to work in tclsh.... I must not know what I'm doing. | 22:10 | |
| Coke | pmichaud: it's an 8.5 thing. | ||
| if you're using 8.4, it'll fail. | 22:11 | ||
| ./tclsh \\n % echo $tcl_version | |||
|
22:11
viklund joined
|
|||
| pmichaud | ah, 8.4 on my laptop. I have 8.5 on my desktop - just a sec. | 22:11 | |
| PerlJam | If parrot were embedded into browsers, word processors, spreadsheets, databases, photoshop-like software, window managers, etc. and we could use NQP to target "any" language to it, even one of our own creation ... I think that would be awesome. | 22:12 | |
| pmichaud | oh wait, it's 8.4 there too :-( | ||
| I thought for sure I installed 8.5 | |||
| Coke | puts [llength [list {*}"There are four lights"] ] | ||
| pmichaud | well, I need to upgrade kubuntu anyway... maybe I'll get the new tclsh then :) | ||
| Coke | pmichaud: often "tclsh8.5" is an alias. | ||
| (even if primary tcl is 8.4) | 22:13 | ||
| pmichaud | installing. | ||
| purl | installing is one thing, using it is another. or in the 'famous last words' category | ||
| Coke | heading out, back later. | ||
| NotFound | PerlJam: I think the consequence can't only be one: lots of new languages, and new compilers for old languages. | 22:14 | |
| PerlJam | I'm not sure how I'd feel about the resurgence of old, presumed-dead languages. | ||
| NotFound | PerlJam: old languages never die. | 22:16 | |
| Even if you need a emulator to run them. | |||
|
22:17
joeri left
|
|||
| darbelo | fortran and lisp are both still alive. It doesn't get much more older than that ;) | 22:20 | |
| NotFound | darbelo: the depends if you count from birth or from losing most of his users. | 22:22 | |
| With the second, fotran and lisp are still zero old. | 22:23 | ||
| darbelo | I was counting from birth. FORTRAN is basically the first compiled 'High level' language. | 22:24 | |
|
22:26
Whiteknight joined
|
|||
| NotFound | darbelo: yes, but I don't think a lot of recent fortran programs can be compilled with the first dialects. | 22:27 | |
| pmichaud | Coke: {*} is just ... weird. | ||
| NotFound | Here you have a possible usage for poweful compiler writing tools: reconstructing old languages evolution. | 22:29 | |
| PerlJam | I talked with the owner of the skid-o-can company a couple of weeks ago. He has some software written in Clipper (that thing that came in between dBASE and FoxPro) that needed updating. I guess I should have sold him on writing a parrot based version that executes all the old code and can be extended with more modern libraries. :) | 22:30 | |
| pmichaud | that would seem eminently doable :) | ||
| NotFound | You just need to link some library for dbase files. | ||
| PerlJam | I don't really want to walk in Dan's footsteps even with more modern tools at my disposal | 22:31 | |
| NotFound | But take into account that lots of Clipper problems link parts written in C or assembler. | 22:32 | |
| s/problems/programs | |||
| darbelo | PerlJam: Wasn't there a open source clipper compiler written a few years back or so? | 22:33 | |
| PerlJam | Hmm. I wonder what the market is like there. (taking old software and making it viable into the future on newer hardware) | ||
| darbelo: dunno. I haven't used clipper in nigh on 20 years | |||
| pmichaud takes a short break | |||
| bbl | |||
| NotFound | PerlJam: you may be surprised. I wrote some years ago a Basic interpreter '80 style, and there are people around the whole world using it. | 22:34 | |
| (not a lot, of course) | |||
| PerlJam | NotFound: not much surprises me any more :) | ||
| I wouldn't be surprised if I ran into a business still storing critical data on an 8" floppy disk. | 22:35 | ||
| NotFound | But if for 'market' you mean money.... not much ;) | ||
| PerlJam | NotFound: yeah, I think the reason these people are still using these antique systems is that they have no money to switch | 22:36 | |
| The software does what they need; they're able to keep it running; why change? | |||
| NotFound | PerlJam: I've heard about industrial machinery still working using a Sinclair Spectrum mainboard. | ||
| PerlJam | (except the skid-o-can guy wanted to add google-maps style mapping to his app. He had a reason to change) | 22:37 | |
| NotFound | PerlJam: or just they learned that basic style in his day, and never programmed again. | 22:38 | |
| I think I have somewhere a Linux Journal article about a guy that updated the systems of a supermarket by porting a foxpro application to a dbase clone on linux. | 22:42 | ||
| japhb | NotFound, the leader of our local Perl Mongers owns a guitar factory, and he seems to specialize in using ancient machinery. He even has an industrial belt sander so old he couldn't find anyone who even knew how to forge the original style bearings for it. | ||
| Once of his metal cutting machines is controlled by a patched-in Commodore (Vic-20? C64? I forget), because the paper tape reader eventually wore completely out. | 22:43 | ||
| chromatic | Nice guitars, too. | ||
| japhb | HELL YEAH. | 22:44 | |
| NotFound | Paper tape reader? Sigh, I've never seen one working. | 22:45 | |
| darbelo | japhb: When speaking of guitars and related stuff, you have to say 'vintage'. | ||
| Tene | darbelo: is it still "vintage" if he's manufacturing new guitars? | ||
| chromatic | Why, are they made by vintners? | 22:46 | |
| japhb | alembic.stores.yahoo.net/guitinstocno.html | ||
| Tene | Guitar *does* start with the same letter as "Grape" | ||
| NotFound | A GUI for tar? | ||
| darbelo | Tene: Of course! There's a lot of monewy in making new old guitars! | 22:47 | |
| NotFound | darbelo: Specially if the buyer doesn't know about the "new" part? ;) | 22:48 | |
|
22:48
szabgab joined
|
|||
| darbelo | NotFound: Yeah, that too. But there's a lot of market for 'traditionally made' guitars. Sort of like the people who spend fortunes on old unreliable tube amps. | 22:50 | |
| NotFound | I like making bad jokes mixing guitarrero (guitar maker in spanish) and guitar-hero. | 22:51 | |
|
22:55
jan joined
22:56
nopaste joined
23:01
fperrad_ joined
23:06
PacoLinux joined,
nopaste joined
23:15
lucian joined
23:16
Zak joined
|
|||
| kthakore | chromatic: hi | 23:21 | |
| purl | salut, kthakore. | ||
|
23:26
kid51 joined
23:40
cotto_work joined
23:51
cconstantine joined
|
|||