Parrot 3.7.0 "Wanda" | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 25 August 2011.
whiteknight let me tell you what: tabbed terminal is the best thing ever 00:03
soh_cah_toa definitely 00:04
whiteknight: once we have a working implementation that can be merged, we can rename anything "odius" to "debug" and nuke the old debug segment. the name "odius segment" doesn't really make it clear what it's for and it's also misleading since odius just refers to the format but it's fine for now in the branch 00:10
whiteknight okay 00:11
benabik odius? 00:32
Just explained it, nevermind. 00:33
soh_cah_toa benabik: it's a play on words for ODS: opcode debug serialization format. was suggested by kid51++
00:37 nbrown joined 01:09 woosley joined
plobsing soh_cah_toa: I wish I could come up for a complementing backronym for EVENS 01:27
soh_cah_toa plobsing: evens? 01:28
plobsing ODS -> odds
odds and evens
soh_cah_toa ha!
whiteknight soh_cah_toa: if you can prototype some of the data structures needed for odius, that would help us figure out how to do pack/unpack. Start prototyping structs for the descriptors and all 01:32
soh_cah_toa whiteknight: sure, i can start on some of the things that can be implemented independent of parrot-specifics. there's a lot of work that needs to be done in the spec (or maybe not that much) to implement pmc's b/c it mentions nothing about them 01:34
b/c right now it's mostly designed for a c compiler being born from dwarf an all 01:35
dalek op: e4b59f4 | Whiteknight++ | stage0/js/wast.js:
make sure to use the 'new' keyword when trying to create an array
01:39
op: 4526100 | Whiteknight++ | stage0/runtime/jsobject.winxed:
Start prototyping the JSObject base type.
op: 4abbf7a | Whiteknight++ | stage0/runtime/jsobject.winxed:
stub out logic for get/set attr in JSObject
01:45
whiteknight I'm heading to bed now. I'll take a look at things tomorrow, and might be able to hack tomorrow night
soh_cah_toa great 01:46
see ya :)
whiteknight goodnight
01:56 jkitazawa joined 02:07 herat joined 02:17 herat joined 02:32 soh_cah_toa_ joined
cotto ~~ 02:52
plobsing is there any way to catch the 'end' opcode? 02:57
cotto istr it being hard-coded to be uncatchable 02:58
plobsing ugh. more parrot is a program assumptions. 02:59
fun times.
cotto admitting we have a problem is the first step toward ars^H^H^Hrecovery 03:00
dalek rrot/nwellnhof/compiler_flags: 7eaf3f3 | jkeenan++ | config/ (5 files):
Refine init::hints::darwin. Move settings of certtain flags out of auto::gcc and into init::defaults or hints files.
plobsing cotto: why is it that most problems in life seem to be best solved with a time machine and a sniper rifle? 03:01
benabik What is the end opcode?
plobsing it is the end
cotto benabik, the end of all things
it's invoked once at the end of time
benabik End of the packfile or "shut down the VM"? 03:02
plobsing it is our subtle nod to jim morrison
but to be specific, it ends any runloop that executes it
which is less than awesome when you are trying to write a test that wraps such code 03:03
staying true to CPS, we should end the runloop by invoking a special continuation that jumps out of the runloop 03:05
soh_cah_toa just ordered a copy of 'the art of the metaobject protocol' and 'the garbage collection handbook' 03:15
nothing like getting a new book :)
cotto soh_cah_toa, I hope you like lisp
soh_cah_toa uh oh 03:16
why's that?
cotto The Art of the Metaobject Protocol uses CLOS.
plobsing becauth thath'th wat the bookth uthe
soh_cah_toa ugh
i guess that's why amazon recommended all those scheme books 03:17
cotto It teaches you enough lisp to get by, but you still have to resist the urge to clip your toenails and learn it.
lolz
soh_cah_toa ha! i love that quote
03:18 Coke joined
cotto I really wish I'd taken more of an interest in lisp-family languages in college. They're ugly, but their ugliness is their beauty. 03:18
sorear plobsing: we do that. how does the runloop know that it has reached the exit continuation? answer: the end opcode handles it.
soh_cah_toa now goes looking for a lisp tutorial 03:19
cotto soh_cah_toa, good idea
benabik I dislike Lisp just because the syntax flows together too much. I can't skim it because it's all ((())()(())) with nothing to distinguish it. Syntax highlighting helps some, but not a lot. 03:20
cotto benabik, I saw a convincing blog post that much of the turn-off of lisp is that it's poorly formatted.
cotto digs
soh_cah_toa i think that's the reason anybody who hates lisp hates it for
plobsing sorear: you could set up a special continuation that setjmped out of the runloop, no need for an opcode
sorear benabik: as TimToady puts it - "Different things should look different." 03:21
plobsing er longjmp
benabik sorear: Exactly.
cotto: Poor formatting exacerbates the problem, but the syntax itself doesn't lend itself to easy reading. 03:22
cotto benabik, agreed
well, the non-syntax
benabik Probably because S-exp weren't intended to be written by hand by the original designer.
Lisp M-exps aren't too bad and resemble modern functional languages (ML, Haskell, etc)
sorear There are undeniable advantages to a homoiconic language. 03:23
cotto wants cake-eating and cake-having 03:25
dalek rrot: 9fbe486 | plobsing++ | t/pmc/ (2 files):
add tests to prove subs originating from packfileconstanttable pmcs are runable (and therefore presumably reasonably sane)
04:45
rrot: bece867 | plobsing++ | src/pmc/packfile.pmc:
disable freeing of memory that might not be available yet

This prevents invalid memory access at the cost of a memory leak in the read functionality of the Packfile PMCs.
rrot: 9df4cee | plobsing++ | / (3 files):
eliminate an attribute in Sub by cacheing PackfileView in the packfile itself
05:30 jsut_ joined 06:03 fperrad joined 06:46 nopaste joined 06:54 baest joined 06:55 mj41 joined 08:03 dod joined 08:29 contingencyplan joined 08:53 SHODAN joined 09:19 jsut joined 09:32 schmooster joined 10:05 whiteknight joined
whiteknight good morning, #parrot 10:25
10:56 ambs joined 11:07 ambs joined 11:52 JimmyZ joined 12:02 herat joined 12:17 Coke joined 12:24 JimmyZ joined 12:38 lateau joined 12:47 Coke joined
bubaflub ~ 12:55
12:55 bluescreen joined
plobsing o/ 12:55
13:05 Util joined
dalek op: 8058b9a | Whiteknight++ | / (4 files):
Add makefile rules to build jsobject runtime. Fixes so jsobject.winxed builds. Fix object literal code generation
13:05
op: ccc8183 | Whiteknight++ | stage0/ (3 files):
Fix init and main routines. Add error reporting at the top level. generate some winxed code that actually executes
op: e41c88e | Whiteknight++ | js2w (2 files):
rename the driver program to make it clear it's just stage 0
op: 5b08501 | Whiteknight++ | / (2 files):
Redo the frontend to be more usable. Add --astdebug option which dumps ast and wast to stdout. Add -o option to pipe output to the console or a file
op: 71c89a9 | Whiteknight++ | .gitignore:
+simple .gitignore
op: 1aae5e7 | Whiteknight++ | README:
Update README
13:12 Util_ joined 13:21 Util joined
dalek op: 39bb071 | Whiteknight++ | / (5 files):
Change the grammar so that MemberExpr are coming out as raw literals, not string literals. Fix MemberExpr so we don't insert parens randomly where they don't belong. Make sure to print out the Exception message on error
13:27
13:30 lateau joined
dalek sella: af49ba8 | Whiteknight++ | setup.winxed:
Add several utilities to the build and install
13:31
JimmyZ \\o/, so many javascript compilers on parrot 13:34
13:37 Util joined 13:49 mtk joined, JimmyZ joined 13:50 snarkyboojum joined 13:59 PacoLinux joined 14:07 woosley joined 14:21 dmalcolm joined
dukeleto ~~ 14:23
bubaflub morning dukeleto 14:26
14:30 woosley joined
dukeleto bubaflub: jolly good day 14:42
14:50 logie joined 14:59 mtk joined 15:02 mtk joined 15:12 aloha joined 15:19 bacek_at_work joined 15:35 mtk joined
dalek rrot/whiteknight/frontend_parrot2: 0d38c70 | plobsing++ | config/gen/makefiles/root.in:
add boostrap-prt0 make target
15:47
rrot/whiteknight/frontend_parrot2: 5697b15 | plobsing++ | frontend/parrot2/prt0.pir:
check in generated prt0
15:58 whiteknight joined 16:00 Coke joined 16:07 woosley left 16:29 whiteknight joined 16:37 sjn joined 16:39 sjn joined 16:48 sjn left
cotto_work ~~ 16:51
benabik o/
tadzik hello #parrot 17:04
dalek rrot/whiteknight/frontend_parrot2: 3ecf705 | plobsing++ | config/gen/makefiles/root.in:
disable annotations in prt0

These leak into other code which lacks annotations, making it appear that throwing code originates from frontend/parrot2/prt0.winxed.
17:05
rrot/whiteknight/frontend_parrot2: 41f7556 | plobsing++ | frontend/parrot2/prt0.pir:
regenerate prt0.pir
rrot/whiteknight/frontend_parrot2: 9408460 | plobsing++ | t/compilers/imcc/syn/pcc.t:
remove "end" ops from PASM->PIR mistranslation
rrot/whiteknight/frontend_parrot2: 58f04ba | plobsing++ | compilers/imcc/pcc.c:
don't fudge :main subs to terminate with an 'end' op

This is unecessary, the runloop will exit when main returns anyways, and causes confusing problems, such as unexpected termination or segfaults when main is re-used.
whiteknight plobsing++ 17:07
dalek op: 9f38519 | Whiteknight++ | / (5 files):
Add in a quick Rosella-based test harness. Add in a sanity test for stage 0. Has a hardcoded dependency on node, but that's fine for now
17:08
plobsing whiteknight: we're down to 4 failing tests, one of which is checkdepend 17:09
dalek sella: 1e97a1e | Whiteknight++ | src/harness/ (4 files):
rearrange some of the Harness.TestFile logic so parts of it can be more subclassable
17:17
op: 22fb0ff | Whiteknight++ | / (3 files):
silence some winxed warnings. if we can't compile stage0 tests to winxed, abort the test and tell the user what happened
17:19
whiteknight plobsing: that's great to hear. And it looks like we're making some real general improvements as well
the main/end thing is ncie
nice
17:19 ambs joined
plobsing yeah, when I figured out that was causing a problem, I was quite happy 17:20
I've been looking for an excuse to kill crufty stuff like that for ages
dukeleto Yo dawg, I heard you like X86 assembly... blog.cdleary.com/2011/08/understand...jit-spray/
plobsing objdump -d $(which as) # an assembler in assembly (so you can compile while u compile) 17:22
17:22 davidfetter joined
tadzik ooh, Parrot is evolving nicely when I'm not looking :) 17:23
whiteknight tadzik: shh! Don't tell nobody 17:24
tadzik I mean, 6model? Wow 17:25
plobsing tadzik: the usual cautions about counting unhatched eggs applies. 17:26
cotto_work +1
tadzik shh
dalek op: 85692b8 | Whiteknight++ | / (3 files):
Some fixes. Add in a new test file showing how we can do basic use of Rosella.Test from JS
17:46
whiteknight having automated tests for this is going to make further progress much easier 17:47
benabik Are you calling Winxed code from JS? Isn't that HLL interop? Isn't that difficult, tricky, and possibly even blasphemous? ;-) 17:48
whiteknight well, I'm compiling JS to Winxed
so technically, if you look at it cross-eyed, no 17:49
benabik Ah, fair enough.
dalek rrot/whiteknight/frontend_parrot2: 00926ad | plobsing++ | t/tools/pbc_dump.t:
main no longer contains an "end" opcode, fix test
17:50
rrot/whiteknight/frontend_parrot2: 5d12d63 | plobsing++ | t/op/gc.t:
add hack to drop tailcalling prt0 frame and fix recursion limit test
plobsing whiteknight: are you doing a JS/Winxed polyglot? 17:51
or are you keeping them separate?
whiteknight plobsing: js->winxed compiler
benabik That tail call hack seems… tacky.
hacky.
whiteknight stage 0 is written completely in JS to produce a winxed stage 1
plobsing benabik: that's what you get with a calling convention that expects the callee to copy arguments 17:52
whiteknight then the winxed stage 1, once it sucks less, will be used to compile a pure JS->JS stage 2
plobsing ah, so you're keeping them separate. 17:54
winxed and JS are so similar, it is tempting to write code that is both, but (from experience), it turns out to be harder than it sounds
dalek kudo/nom: ebd4957 | (Martin Berends)++ | / (2 files):
[src/core/List.pm] categorize() method and sub, add test to spectest.data
17:56
sella: 2279a25 | Whiteknight++ | s (4 files):
Add a new test_list function to Test, for testing objects which contain an array of functions
18:00
tadzik /home/tadzik/src/parrot/install/parrot/include/3.7.0-devel/parrot/parrot.h:89:19: fatal error: ffi.h: No such file or directory 18:10
this happens during Rakudo build, have you seen anything like this maybe? 18:11
cotto_work tadzik: doesn't rakudo require ffi?
cotto_work moves to #perl6
tadzik cotto_work: not sure
also, cc1: warning: /usr/lib/libffi-3.0.9/include: No such file or directory [enabled by default]
maybe something fscked on my system 18:12
cotto_work tadzik: that's probably the same cause
tadzik yeah
I've just updated gcc too
cotto_work tadzik: do you have the libffi headers installed?
something like libffi-dev on debian-based systems
tadzik no -dev packages on my linux I believe 18:13
I mean, I'm not on debian :)
I have /usr/lib/libffi-3.0.10/include/ffi.h
tadzik tries parrot-realclean
oh, versioning
cotto_work tadzik: which os? 18:15
tadzik Arch Linux
I've just had some gcc update I believe, maybe they've screwed it up
plobsing tadzik: I thought I was the only one 18:16
(re: Arch)
tadzik :)
dalek rrot/whiteknight/frontend_parrot2: 64b5979 | plobsing++ | config/gen/makefiles/root.in:
fix makefile dependency issues (checkdepend++)
18:20
tadzik okay, realcleaning everything, nqp included, has helped 18:28
plobsing one fail remaining on frontend_parrot2 - profiling.t 18:31
moritz whiteknight: fwiw I get a build failure in whiteknight/6model branch: Class '/usr/local/lib/parrot/3.7.0-devel/include/config.fpmc' not found (in step ./parrot pbc_to_exe.pbc pbc_to_exe.pbc) 18:35
whiteknight: there's no /usr/local/lib/parrot on my system
plobsing whiteknight: profiling.t is failing because the profiling runcore expects IGLOBALS_EXECUTABLE to be set before it starts executing prt0 18:38
thoughts?
whiteknight plobsing: my thoughts: *facepalm* 19:08
I moved that to prt0.pir to try and cut down an extra API call, but there is no real reason why it must be moved 19:10
in fact, it was kind of an ugly hack to even make it set-able from PIR
19:17 particle joined
cotto_work that profiling test is causing trouble for a lot of people lately 19:32
plobsing cotto_work: oh? who else is having prof problems?
cotto_work plobsing: not_gerd is seeing failures on msys
if he drops by, I'd like to try to duplicate his setup. 19:33
19:34 TiMBuS joined 19:48 dukeleto joined 20:02 whiteknight joined 20:03 mj41 joined 20:06 soh_cah_toa joined
dalek rrot/whiteknight/frontend_parrot2: b1a3ae2 | plobsing++ | / (2 files):
Revert "Set the executable name from prt0, to avoid an API call. Show usage messages from prt0 if necessary, fix handling of -h and -V. a few other related cleanups"

This reverts commit 3631eece3b1ac11c034dfdf70a0de886fe171d59.
The profiling runcore expects the executable name to be available before entering the runcore (and executing prt0).
Conflicts:
  \tfrontend/parrot2/prt0.pir
20:12
rrot/whiteknight/frontend_parrot2: 662d82d | plobsing++ | frontend/parrot2/prt0.winxed:
don't set exe name in prt0
rrot/whiteknight/frontend_parrot2: 4611f4c | plobsing++ | frontend/parrot2/prt0.pir:
regen prt0.pir
20:15 Eclesia joined
Eclesia hi 20:15
20:25 bluescreen joined
cotto_work soh_cah_toa: what's with name of "odius"? 20:28
soh_cah_toa cotto_work: ah, that was suggested to me by kid51++ 20:29
cotto_work: see line 28 of the spec
gist.github.com/1133182
cotto_work really? It seems negative.
looking
Hmm. ok. 20:30
I'm not a fan of the connotation, but you can name it how you see fit.
soh_cah_toa how come? 20:32
i mean, i'm still open to anything else but i'm just curious
cotto_work Is "odius" an intentional misspelling of odious?
which means something like hateful
soh_cah_toa ah man, are you serious?
cotto_work nope
soh_cah_toa man, i keep picking the worst names
20:32 not_gerd joined
not_gerd hello #parrot 20:33
cotto_work duckduckgo.com/?q=odious
hio not_gerd
soh_cah_toa: I'm glad to hear that you didn't do that on purpose. I was worried.
soh_cah_toa ugh, time for another name
cotto_work sorry to keep poking holes in the names you pick
dalek op: 86b3225 | Whiteknight++ | / (4 files):
Dont generate code in an HLL. is broken. Implement closures. Fix parameter lists to allow 0 or more than 1 parameters. JSObject should be iterable like a hash. JSObject can hold a separate store of hidden attributes that aren't enumerated
20:34
soh_cah_toa :)
cotto_work not_gerd: how did you set up your windows build environment? 20:35
dalek op: 7aaf0ea | Whiteknight++ | t/stage0/01-rosella_test.t:
Add in a test for null means null
cotto_work I'd like to try to duplicate the profiling test failure you're seeing.
not_gerd cotto_work: you can use the installer from sourceforge.net/projects/mingw/ 20:38
for msys-MINGW32, you need mingw and the msys base system, for msys-MSYS the msys developer package
cotto_work not_gerd: is it reasonably easy to keep that separate from cygwin? 20:39
not_gerd cotto_work: if you don't manually add things to PATH, there shouldn't be any problems 20:40
soh_cah_toa msg whiteknight looks like we need *another* name. again. duckduckgo.com/?q=odious
aloha OK. I'll deliver the message.
not_gerd I think I also neede to install the msys-crypt package 20:41
plobsing soh_cah_toa: that wasn't intentional?
soh_cah_toa plobsing: no, i had no idea
dalek op: 2892516 | Whiteknight++ | js0.sh:
Add in a quick js0.sh driver program that compiles .js files to .winxed, and uses the winxed binary to execute them
20:42
not_gerd cotto_work: mingw recently got a minimal package manager - you can get msys-crypt via `mingw-get install msys-crypt`
cotto_work not_gerd: that sounds nice 20:43
plobsing looks like odio.us/plan is down. :( 20:53
21:11 RobertLJ joined
dalek rrot/whiteknight/frontend_parrot2: 3803c5c | plobsing++ | frontend/parrot2/ (3 files):
inform about missing program name from prt0
21:13
cotto_work blog.cdleary.com/2011/08/understand...jit-spray/ 21:51
21:52 bluescreen joined
plobsing cotto_work: dukeleto beat you to it 21:53
cotto_work d'oh 21:56
dalek op: c292b19 | Whiteknight++ | / (2 files):
Add in a test file for object and attribute syntax. Some things are commented out that don't work yet
22:08 RobertLJ joined
dalek rrot/whiteknight/frontend_parrot2: b4a2811 | plobsing++ | / (109 files):
Merge branch 'master' into whiteknight/frontend_parrot2

Conflicts:
  \tcompilers/imcc/imclexer.c
  \tcompilers/imcc/imcparser.c
  \tcompilers/imcc/imcparser.h
  \tsrc/pmc/imccompiler.pmc
22:20
rrot/soh-cah-toa/odius: 47fad85 | soh_cah_toa++ | include/parrot/packfile.h:
Started prototyping DDE and other related structures.
22:31
not_gerd bye, #parrot
soh_cah_toa msg whiteknight i started prototyping the dde and other structs. build still fails and i think it's b/c of pbc_to_exe. let me know where to go from here 22:33
aloha OK. I'll deliver the message.
dalek rrot/whiteknight/frontend_parrot2: d2a21d4 | plobsing++ | MANIFEST (2 files):
mk_manifest_and_skip
22:36
plobsing msg whiteknight frontend/parrot2 is passing all tests on my box. should we begin merge preparations or are there other goals you have for the branch?
aloha OK. I'll deliver the message.
22:44 rfw joined 22:54 Coke joined 23:07 jevin joined
dalek TT #621 closed by cotto++: native exec support resurrection 23:13
TT #621: trac.parrot.org/parrot/ticket/621